diff --git a/FOSS_course/data/web_os.csv b/FOSS_course/data/web_os.csv
index 098231a5320f2669838a7441a73d63a50c7f0be7..77dd4ffe1148c53f029541ab1e893759444a97a7 100644
--- a/FOSS_course/data/web_os.csv
+++ b/FOSS_course/data/web_os.csv
@@ -1,3 +1,3 @@
 Name,percent
-Unix,71.4
-Windows,28.6
+Unix,71.0
+Windows,29.0
diff --git a/FOSS_course/data/web_servers.csv b/FOSS_course/data/web_servers.csv
index 677f32a54e46bda108b267e7454ca0656e391bd6..534b287ac5f804e0547578617e3c11fb151ddc2c 100644
--- a/FOSS_course/data/web_servers.csv
+++ b/FOSS_course/data/web_servers.csv
@@ -1,6 +1,6 @@
 Name,percent
-Apache,40.5
-Nginx,31.7
-Cloudflare Server,13.2
-Microsoft-IIS,7.8
-other,5.8
+Apache,36.1
+Nginx,32.5
+Cloudflare Server,16.0
+Microsoft-IIS,7.7
+other,7.7
diff --git a/FOSS_course/resouces_for_revision.md b/FOSS_course/resouces_for_revision.md
new file mode 100644
index 0000000000000000000000000000000000000000..c52f7a6764ae9d164af5b5963fffb576a7724402
--- /dev/null
+++ b/FOSS_course/resouces_for_revision.md
@@ -0,0 +1,3 @@
+# for the slide detailing that cryptography/security should be FOSS
+
+https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle
diff --git a/FOSS_course/slides.pdf b/FOSS_course/slides.pdf
index 8b7159f6a519d05933328900c8abfa67a8734237..20de9efdcb4bfe712c3dd53c31e0589d3ed679d5 100644
Binary files a/FOSS_course/slides.pdf and b/FOSS_course/slides.pdf differ
diff --git a/FOSS_course/slides.tex b/FOSS_course/slides.tex
index 236806249b6d788d82b1c58fd6f91840d3beb1f3..c693934fc7cc55f5292f9b65045f95d194a97052 100755
--- a/FOSS_course/slides.tex
+++ b/FOSS_course/slides.tex
@@ -1,7 +1,7 @@
 \input{../.style/header}
 
 \title{Free and Open Source Software}
-\author{Horea Christian}
+\author{Alexander Schoch}
 \institute{SSC TheAlternative | ETHZ and UZH}
 
 \DTLloaddb{server}{data/web_servers.csv}
@@ -340,7 +340,7 @@
 						\vspace{-0.75em}
 						\centering\tiny
 							\DTLpiechart{radius=0.235\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={1-2}}{server}{\name=Name,\quantity=percent}
-							\caption{Web Server Market Share 2020-02-26 via \href{http://w3techs.com/technologies/overview/web_server/all}{w3techs}}
+							\caption{Web Server Market Share 2020-10-06 via \href{http://w3techs.com/technologies/overview/web_server/all}{w3techs}}
 						\end{figure}
 					\column{0.5\linewidth}
 						\begin{figure}[htbp]
@@ -349,7 +349,7 @@
 	\DTLsetpiesegmentcolor{1}{green!40}
 	\DTLsetpiesegmentcolor{2}{red!40}
 							\DTLpiechart{radius=0.265\textheight,variable=\quantity,innerlabel={\DTLpiepercent\%},outerlabel=\name,cutaway={2}}{os}{\name=Name,\quantity=percent}
-							\caption{Website OS Market Share 2020-02-26 via \href{http://w3techs.com/technologies/overview/operating_system/all}{w3techs}}
+							\caption{Website OS Market Share 2020-10-06 via \href{http://w3techs.com/technologies/overview/operating_system/all}{w3techs}}
 						\end{figure}
 				\end{columns}
 			\end{frame}
@@ -436,7 +436,7 @@
 					\item Come to the next “Linux Days” events:
 					\textcolor{lg}{\url{http://thealternative.ch/}}
 					\item Join the next “Stammtisch”:\\
-					\textcolor{lg}{18:00 Thursday, March 5 - Katholische Hochschulgemeinde Zürich AKI, 2nd floor, Hirschengraben 86, 8001}
+					\textcolor{lg}{This will not take place due to the coronavirus}
 					\item Give us feedback!\\
 					\textcolor{lg}{\url{https://feedback.thealternative.ch/}}
 				\end{itemize}
@@ -448,7 +448,7 @@
 				\end{itemize}
 				%separate sources from info so it looks nicer
 				\begin{itemize}
-					\item \textcolor{lg}{License:} \href{https://creativecommons.org/licenses/by-sa/3.0/}{CC BY-SA 4.0}
+					\item \textcolor{lg}{License:} \href{https://creativecommons.org/licenses/by-sa/3.0/}{Slides by Alexander Schoch/Christian Horea, CC BY-SA 4.0}
 				\end{itemize}
 			\end{frame}
 			\begin{frame}{References}
diff --git a/README.md b/README.md
index 400404b35b46a5bf6ba905b17992922f6254ed64..263bbb2358cc9bb368f6604bf6d8b697e1b54cbd 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,23 @@
-This is a public repository that contains a collection of our current (and past) LinuxDays courses.
-
-# Downloading the course material
+# Courses
 
-Our course material (slides and several guides) are available as PDFs:
-
-- [Free and Open Source Software](https://gitlab.ethz.ch/thealternative/courses/blob/master/FOSS_course/slides.pdf)
-- [Introduction to Linux](https://gitlab.ethz.ch/thealternative/courses/blob/master/intro_course/slides.pdf)
-- [Install Guide](https://gitlab.ethz.ch/thealternative/courses/blob/master/install_event/installguide_complete.pdf)
-- [Console Toolkit Part 1](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_1.pdf)
-- [Console Toolkit Part 1&2](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_2.pdf)
-- [Console Toolkit Exercises](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/exercise_files/exercises.pdf)
-- [Bash Course (Slides)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/pres/pres.pdf)
-- [Bash Course (Guide)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/guide/guide.pdf)
-- [Bash Course Exercises](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sheet.pdf) and [Solutions](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sol.pdf)
+This is a public repository that contains a collection of our current (and past) LinuxDays courses.
 
+Introduction:
+- [Free and Open Source Software (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/FOSS_course/slides.pdf)
+- [Introduction to Linux (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/intro_course/slides.pdf)
+- [Install Guide](https://thealternative.ch/guides/install.php)
+- [Bash Guide](https://thealternative.ch/guides/bash.php)
+
+Console & Bash:
+- [Console Toolkit Part 1 (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_1.pdf)
+- [Console Toolkit Part 1&2 (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/console_toolkit_2.pdf)
+- [Console Toolkit Exercises (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/console_toolkit/exercise_files/exercises.pdf)
+- [Bash Course (Slides) (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/pres/pres.pdf)
+- [Bash Course (Guide) (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/guide/guide.pdf)
+- [Bash Course Exercises (.pdf)](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sheet.pdf) and [Solutions](https://gitlab.ethz.ch/thealternative/courses/blob/master/bash_course/exercisesheet/sol.pdf)
+
+Tools:
+- [Git](https://thealternative.ch/courses/git/git.html)
 
 # Cloning the repository
 
diff --git a/bash_course/exercisesheet/sheet.pdf b/bash_course/exercisesheet/sheet.pdf
index 0fb401707f40a816a740914f61d3d6a06e010c2b..a6d2cc7f307dc1126295644b3fb1e104fc50fcb7 100644
Binary files a/bash_course/exercisesheet/sheet.pdf and b/bash_course/exercisesheet/sheet.pdf differ
diff --git a/bash_course/exercisesheet/sol.pdf b/bash_course/exercisesheet/sol.pdf
index 4c930b2bb59f56da7e135c8956e53739f807ada1..e4c054075ab89fed89757751b98f1f6585c13da3 100644
Binary files a/bash_course/exercisesheet/sol.pdf and b/bash_course/exercisesheet/sol.pdf differ
diff --git a/bash_course/guide/guide.pdf b/bash_course/guide/guide.pdf
index 8fd03ae7d7bfbba571d68ef4e353f44b2fe98e38..3228c88d4a3b83885304c858e0623be6d8b8bc95 100644
Binary files a/bash_course/guide/guide.pdf and b/bash_course/guide/guide.pdf differ
diff --git a/bash_course/pres/firstslide.md b/bash_course/pres/firstslide.md
index 621565ae6ceddfca20d6db54236c67c21fe1319b..a3d5496391bad3193728aeb5f20d0199e814b625 100644
--- a/bash_course/pres/firstslide.md
+++ b/bash_course/pres/firstslide.md
@@ -1,8 +1,5 @@
 # Welcome to the Bash Workshop!
 
-  * If you prefer to work on your own, already know programming or are confident in your abilities, please **sit in the back**.
-
-<!-- -->
-
- * If you prefer guided exercises, are completely new to programming, or want to have your hands held, please **sit in the front**.
+* Please turn of your camera for the lecture part of the course, we only have 2GB of RAM on this server
 
+* If there are any technical problems, let me know!
diff --git a/bash_course/pres/pres.md b/bash_course/pres/pres.md
index 58e8f271cd2c994c1f828654d76f6531e301d92b..c9ecdf1b0ffaf1f0f30e8d3c301dfd70cca524ff 100644
--- a/bash_course/pres/pres.md
+++ b/bash_course/pres/pres.md
@@ -1,6 +1,6 @@
 ---
 author:
-- Aline Abler
+- Nicolas König
 title: Bash Workshop
 ---
 
@@ -78,19 +78,19 @@ title: Bash Workshop
 
 ### Meaning of strings
 
-    echo Hello World
+    ls my file 
 
-* `echo`, `Hello` and `World` are single strings
+* `ls`, `my` and `file` are single strings
 * The first string becomes the command, all following become
     *arguments*
 
 <!-- -->
 
-    echo 'Hello World'
+    ls 'my file'
 
-* Here, `Hello World` is just one string
+* Here, `my file` is just one string
 
-### Repeat after me
+### Remember!
 
 \bigtext{Every word is a single argument unless you use quotes.}
 
@@ -111,7 +111,7 @@ title: Bash Workshop
 
         [[1==3]]
 
-* Bash's answer:        
+* Bash's answer:
 
         bash: [[1==3]]: command not found
 
@@ -119,7 +119,7 @@ title: Bash Workshop
 
         [[ 1 == 3 ]]
 
-### Repeat after me
+### Remember!
 
 \bigtext{If there's brackets, you probably need spaces.}
 
@@ -151,7 +151,7 @@ title: Bash Workshop
 * What bash sees
 
         0
-                        
+
 ### Why is that important?
 
 * *&&*, *||*, *if* and *while* all act based on the return value of something
@@ -207,10 +207,41 @@ becomes
 
         rm "$var"
 
-### Repeat after me:
+### Remember!
 
 \bigtext{If there's a dollar, you probably need quotes!}
 
+## Piping
+
+### Glueing programs together
+
+* Pipes allow us to connect different programs
+* The output of one program is used as the input for another
+
+### Glueing programs together
+
+	du -b
+
+lists the size of all directories within the current one
+
+	sort -n
+
+sorts the input numerically. So
+
+	du -b | sort -n
+
+gives us a list of all subdirectories sorted by size.
+
+### Glueing programs together
+
+	ls -l | cut -d' ' -f3 | sort | uniq
+
+Complicated functionality can be created from very simple programs.
+
+### Remember!
+
+\bigtext{If you want to connect programs, you probably want pipes!}
+
 # What bash is used for
 
 ## The whole point of bash
@@ -252,22 +283,20 @@ becomes
 ## What happens now?
 
 ### Hands on!
+#### Guided exercises
+* Solve easy exercises in plenum
+* Tailored to complete beginners
+
 #### Self-driven exercises
 * Self study using a guide
 * Try some of our exercises
 * Choose the exercises you find interesting! No need to go in order.
 
-#### Guided exercises
-* Solve easy exercises in plenum
-* Tailored to complete beginners
-* Please sit in the front
-
 ### Course material
 * These slides, exercise sheet and bash guide: \
     \soft{http://thealternative.ch}
-* Please leave some feedback! \
-    \soft{http://feedback.thealternative.ch}
 
 <!-- -->
 
 * \soft{Theme by} Christian Horea, [CC BY](https://creativecommons.org/licenses/by/4.0/)
+* \soft{Original Presentation by} Aline Abler
diff --git a/bash_course/pres/pres.pdf b/bash_course/pres/pres.pdf
index 7a5be2433e24a3bf00536cd8d3a375a4122ad081..bdea99bb5fde218a8ee0af7173626949d93d8d96 100644
Binary files a/bash_course/pres/pres.pdf and b/bash_course/pres/pres.pdf differ
diff --git a/console_toolkit/ctkII_cheatsheet.pdf b/console_toolkit/ctkII_cheatsheet.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5e4099bf536645fd9c9b3478a4bfdd49e7d7f552
Binary files /dev/null and b/console_toolkit/ctkII_cheatsheet.pdf differ
diff --git a/console_toolkit/source/exercises/Makefile b/console_toolkit/source/exercises/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e5ed4c88f0517ee4d5b7599791ff71f0dfa51bbe
--- /dev/null
+++ b/console_toolkit/source/exercises/Makefile
@@ -0,0 +1,34 @@
+TEX=latexmk
+TEXOPTS=-output-directory=build \
+		-pdf \
+		-latexoption=-interaction=nonstopmode \
+		-latexoption=-file-line-error
+
+# Set PREVIEW=1 to enable preview. Make sure an appropriate viewer is
+# configured in $HOME/.latexmkrc.
+# Example usage: make PREVIEW=1 opendata
+ifdef PREVIEW
+PREVIEWOPTS=-pvc
+endif
+
+defaul: exercises
+
+# To include the current git revision in the header, write it to 'GIT_TAG'
+# file, which the LaTeX source can include.
+gitrev:
+	@printf "r%s.%s" "$$(git rev-list --count HEAD)" "$$(git rev-parse --short HEAD)" > GIT_TAG
+
+# Create build directory if it doesnt exist
+builddir:
+	@[ -d build ] || mkdir build
+
+# All documents need to be compiled twice.
+# This is because some necessary information is only available after
+# the first compiler run, like \pageref{LastPage}.
+exercises: exercises.tex gitrev builddir
+	@$(TEX) $(TEXOPTS) $(PREVIEWOPTS) $<
+	mv build/exercises.pdf .
+
+clean:
+	@rm -rf build/*
+
diff --git a/console_toolkit/source/exercises/TheAlternativeCourse.cls b/console_toolkit/source/exercises/TheAlternativeCourse.cls
new file mode 100644
index 0000000000000000000000000000000000000000..d9c64a177f045eb3a9ff0c7ffb6f1bc25f533166
--- /dev/null
+++ b/console_toolkit/source/exercises/TheAlternativeCourse.cls
@@ -0,0 +1,87 @@
+% vim: set ft=tex:
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{TheAlternativeCourse}
+
+% packages
+\LoadClass[11pt]{scrartcl}          % Base class: KOMA script article
+\RequirePackage[utf8]{inputenc}     % Support for german 'umlaut' (ä, ö, ü)
+\RequirePackage{lastpage}           % \pageref{LastPage}
+\RequirePackage{scrlayer-scrpage}   % KOMA Script header/footer package
+\RequirePackage{graphicx}           % \includegraphics{...}
+\RequirePackage[showseconds=false,showzone=false]{datetime2}
+\RequirePackage[table]{xcolor}
+\RequirePackage[most]{tcolorbox}
+\RequirePackage{hyperref}
+
+% helvetica font
+% \RequirePackage[scaled]{helvet}
+% \RequirePackage[T1]{fontenc}
+% \renewcommand\familydefault{\sfdefault}
+
+% header / footer
+\KOMAoptions{headsepline,headheight=27.5pt}
+\setkomafont{pagehead}{\normalfont\normalcolor} % non-italic header font
+\setkomafont{pagefoot}{\normalfont\normalcolor} % non-italic footer font
+\newcommand{\builddate}{\footnotesize Revision: \input{GIT_TAG} \\ Build: \DTMNow}
+\newcommand{\thealtlogo}{\includegraphics[width=4.5cm]{assets/logo.png}}
+\lohead[\thealtlogo]{\thealtlogo}
+\rohead[\builddate]{\builddate}
+\cofoot[\footnotesize \thepage~/~\pageref{LastPage}]{\thepage~/~\pageref{LastPage}}
+\recalctypearea%
+
+\setlength{\voffset}{-1.2cm} % space before header
+\setlength{\textheight}{1.15\textheight} % height of text
+
+\definecolor{ldorange}{HTML}{F18A20}
+\definecolor{ldblue}{HTML}{254471}
+\definecolor{grey1}{HTML}{aaaaaa}
+\definecolor{grey2}{HTML}{efefef}
+\definecolor{lightblue}{HTML}{d9edfc}
+\definecolor{exclamred}{HTML}{db1515}
+
+\colorlet{lightyellow}{yellow!6!white}
+\colorlet{darkeryellow}{red!15!yellow!40!white}
+
+\newtcolorbox[auto counter, number within=section]{exercisebox}[2][]{%
+    colback=lightyellow,
+    fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+    colframe=ldorange,
+    coltitle=black,
+    enhanced,
+    fonttitle=\bfseries,
+    title=Task~\thetcbcounter: #2,#1}
+
+\newtcolorbox{cmdbox}{%
+    colback=grey2,
+    fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+    enhanced,
+    colframe=grey1,
+    coltitle=black,
+    enhanced}
+
+\newtcolorbox{tcbhintbox}{%
+    enhanced,
+    skin=bicolor,
+    segmentation at break=true,
+    boxrule=0.8pt,
+    left=3.5mm,
+    top=0.5mm,
+    bottom=0.5mm,
+    arc=1pt,
+    boxsep=2pt,
+    lefthand ratio=0.06,
+    sidebyside,
+    colframe=ldorange,
+    coltext=black,
+    colback=darkeryellow,
+    colbacklower=lightyellow,
+}
+
+\newcommand{\hintbox}[1]{%
+\begin{tcbhintbox}
+    \includegraphics[width=8mm]{img/light_bulb.pdf}%
+    \tcblower%
+    #1
+\end{tcbhintbox}}
+
diff --git a/console_toolkit/source/exercises/assets/CC-BY-SA_icon.pdf b/console_toolkit/source/exercises/assets/CC-BY-SA_icon.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9d9a88f33ab59a85506d86727aaef5b2ebf4ed40
Binary files /dev/null and b/console_toolkit/source/exercises/assets/CC-BY-SA_icon.pdf differ
diff --git a/console_toolkit/source/exercises/assets/CC-BY-SA_icon.svg b/console_toolkit/source/exercises/assets/CC-BY-SA_icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3e37597934e654c78c47687763565302230788e0
--- /dev/null
+++ b/console_toolkit/source/exercises/assets/CC-BY-SA_icon.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [<!ENTITY st0 "fill:#AAB2AB;"><!ENTITY st1 "fill:#FFF;">]>
+<svg xmlns="http://www.w3.org/2000/svg" height="31px" width="88px" version="1.1" y="0px" x="0px" viewBox="0 0 88 31">
+ <title>Creative Commons “Attribution-Share Alike” license icon</title>
+ <path d="m2.499 0.352l83.127 0.148c1.161 0 2.198-0.173 2.198 2.333l-0.102 27.552h-87.321v-27.655c0-1.235 0.119-2.378 2.098-2.378z" fill="#AAB2AB"/>
+ <path d="m25.316 14.449c0.003 5.557-4.471 10.065-9.993 10.069-5.522 0.003-10.001-4.5-10.005-10.057v-0.012c-0.003-5.558 4.471-10.066 9.994-10.069 5.522-0.004 10.001 4.5 10.005 10.057-0.001 0.003-0.001 0.007-0.001 0.012zm21.148-11.143c4.349 0 7.875 3.548 7.875 7.925s-3.526 7.926-7.875 7.926c-4.35 0-7.875-3.548-7.875-7.926-0.001-4.377 3.525-7.925 7.875-7.925zm28.632 7.751c0.003 4.314-3.47 7.814-7.757 7.818-4.286 0.003-7.765-3.492-7.769-7.806v-0.012c-0.002-4.314 3.471-7.814 7.758-7.817s7.765 3.492 7.768 7.806v0.011z" fill="#FFF"/>
+ <path d="m23.446 6.252c2.217 2.232 3.326 4.964 3.326 8.197s-1.089 5.936-3.269 8.11c-2.313 2.289-5.046 3.434-8.2 3.434-3.116 0-5.802-1.135-8.057-3.405-2.256-2.271-3.383-4.982-3.383-8.138s1.127-5.889 3.383-8.198c2.198-2.232 4.884-3.348 8.057-3.348 3.212 0 5.926 1.116 8.143 3.348zm-14.707 1.501c-1.875 1.905-2.812 4.138-2.812 6.698 0 2.561 0.928 4.773 2.783 6.64s4.064 2.801 6.627 2.801 4.791-0.942 6.684-2.829c1.797-1.752 2.697-3.955 2.697-6.611 0-2.636-0.914-4.874-2.74-6.712s-4.04-2.757-6.641-2.757-4.801 0.923-6.598 2.77zm4.933 5.572c-0.287-0.628-0.715-0.942-1.287-0.942-1.011 0-1.516 0.685-1.516 2.054 0 1.37 0.505 2.055 1.516 2.055 0.667 0 1.145-0.333 1.431-1.002l1.401 0.751c-0.668 1.194-1.67 1.792-3.006 1.792-1.03 0-1.856-0.317-2.476-0.954-0.621-0.636-0.931-1.512-0.931-2.629 0-1.099 0.32-1.97 0.959-2.616s1.436-0.968 2.39-0.968c1.413 0 2.424 0.56 3.035 1.679l-1.516 0.78zm6.593 0c-0.287-0.628-0.707-0.942-1.261-0.942-1.031 0-1.547 0.685-1.547 2.054 0 1.37 0.516 2.055 1.547 2.055 0.669 0 1.137-0.333 1.404-1.002l1.433 0.751c-0.667 1.194-1.667 1.792-3.001 1.792-1.029 0-1.853-0.317-2.473-0.954-0.619-0.636-0.928-1.512-0.928-2.629 0-1.099 0.314-1.97 0.943-2.616 0.628-0.646 1.428-0.968 2.4-0.968 1.41 0 2.42 0.56 3.029 1.679l-1.546 0.78zm66.088-13.325h-84.706c-0.908 0-1.647 0.744-1.647 1.658v28.967c0 0.207 0.167 0.375 0.372 0.375h87.256c0.205 0 0.372-0.168 0.372-0.375v-28.967c0-0.914-0.739-1.658-1.647-1.658zm-84.706 0.749h84.705c0.498 0 0.903 0.408 0.903 0.909v20.109h-60.541c-2.219 4.038-6.494 6.779-11.401 6.779-4.908 0-9.183-2.738-11.4-6.779h-3.169v-20.109c0-0.501 0.405-0.909 0.903-0.909zm65.63 1.751c-2.355 0-4.349 0.827-5.98 2.481-1.675 1.712-2.512 3.737-2.512 6.077s0.837 4.351 2.512 6.034c1.674 1.683 3.668 2.524 5.98 2.524 2.342 0 4.371-0.849 6.089-2.546 1.616-1.611 2.427-3.616 2.427-6.012s-0.824-4.422-2.471-6.077c-1.645-1.654-3.66-2.481-6.045-2.481zm0.022 1.54c1.93 0 3.569 0.685 4.918 2.054 1.361 1.355 2.043 3.01 2.043 4.964 0 1.968-0.666 3.602-2.001 4.9-1.405 1.397-3.058 2.096-4.96 2.096-1.901 0-3.541-0.691-4.917-2.074-1.376-1.384-2.064-3.024-2.064-4.921s0.695-3.552 2.086-4.964c1.332-1.371 2.965-2.055 4.895-2.055zm-3.791 5.809c0.34-2.153 1.846-3.304 3.733-3.304 2.716 0 4.369 1.982 4.369 4.626 0 2.58-1.76 4.584-4.411 4.584-1.824 0-3.457-1.13-3.755-3.347h2.143c0.063 1.151 0.806 1.556 1.866 1.556 1.209 0 1.994-1.13 1.994-2.857 0-1.812-0.679-2.771-1.951-2.771-0.934 0-1.739 0.341-1.909 1.513l0.623-0.003-1.687 1.697-1.686-1.697 0.671 0.003zm-14.765-0.911c0-0.306-0.246-0.553-0.55-0.553h-3.478c-0.303 0-0.55 0.247-0.55 0.553v3.5h0.971v4.145h2.636v-4.145h0.971v-3.5zm-2.288-3.408c0.656 0 1.189 0.536 1.189 1.197s-0.533 1.197-1.189 1.197c-0.657 0-1.189-0.536-1.189-1.197s0.532-1.197 1.189-1.197zm-0.012-3.03c-2.355 0-4.349 0.827-5.981 2.481-1.675 1.711-2.512 3.737-2.512 6.076s0.837 4.351 2.512 6.034c1.674 1.683 3.668 2.524 5.981 2.524 2.342 0 4.371-0.849 6.088-2.547 1.619-1.611 2.428-3.615 2.428-6.012s-0.823-4.421-2.47-6.076c-1.645-1.654-3.661-2.48-6.046-2.48zm0.022 1.539c1.93 0 3.569 0.685 4.917 2.054 1.363 1.355 2.044 3.01 2.044 4.963 0 1.968-0.666 3.602-2.001 4.9-1.405 1.398-3.058 2.096-4.96 2.096-1.901 0-3.541-0.691-4.917-2.075-1.377-1.383-2.065-3.023-2.065-4.921 0-1.896 0.695-3.551 2.086-4.963 1.334-1.369 2.966-2.054 4.896-2.054z"/>
+ <path d="m69.277 24.171l1.816 4.888h-1.109l-0.367-1.089h-1.816l-0.381 1.089h-1.074l1.836-4.888h1.095zm0.062 2.997l-0.612-1.793h-0.014l-0.633 1.793h1.259zm-6.079 0.682c0.059 0.115 0.137 0.207 0.234 0.277 0.098 0.071 0.211 0.124 0.342 0.158 0.133 0.034 0.268 0.051 0.408 0.051 0.095 0 0.197-0.008 0.306-0.023s0.21-0.047 0.306-0.093c0.094-0.046 0.174-0.108 0.236-0.188 0.064-0.08 0.096-0.181 0.096-0.305 0-0.132-0.042-0.238-0.126-0.321-0.083-0.083-0.194-0.15-0.329-0.206-0.136-0.055-0.29-0.102-0.461-0.143-0.173-0.042-0.348-0.088-0.523-0.138-0.182-0.046-0.358-0.102-0.531-0.167-0.171-0.066-0.325-0.152-0.461-0.258-0.137-0.104-0.246-0.235-0.33-0.393-0.083-0.158-0.125-0.349-0.125-0.572 0-0.252 0.053-0.469 0.16-0.654 0.105-0.184 0.246-0.338 0.418-0.462 0.172-0.123 0.366-0.214 0.584-0.274 0.217-0.059 0.436-0.088 0.652-0.088 0.254 0 0.497 0.028 0.73 0.086 0.232 0.057 0.44 0.149 0.621 0.277 0.182 0.127 0.326 0.291 0.432 0.49 0.107 0.198 0.16 0.439 0.16 0.723h-1.036c-0.009-0.146-0.04-0.268-0.091-0.363-0.053-0.096-0.121-0.172-0.207-0.227s-0.184-0.094-0.295-0.115c-0.11-0.023-0.23-0.035-0.361-0.035-0.086 0-0.172 0.01-0.258 0.027-0.086 0.019-0.163 0.051-0.232 0.096-0.07 0.047-0.129 0.104-0.174 0.172s-0.067 0.155-0.067 0.26c0 0.096 0.019 0.174 0.054 0.232 0.037 0.061 0.109 0.115 0.215 0.165s0.254 0.101 0.441 0.151c0.188 0.049 0.434 0.113 0.736 0.191 0.092 0.018 0.217 0.051 0.377 0.1 0.161 0.047 0.32 0.123 0.479 0.229 0.159 0.105 0.296 0.246 0.412 0.422 0.115 0.176 0.173 0.4 0.173 0.674 0 0.225-0.044 0.432-0.13 0.623-0.086 0.192-0.214 0.357-0.384 0.496-0.171 0.141-0.381 0.248-0.632 0.326-0.252 0.078-0.544 0.116-0.874 0.116-0.268 0-0.527-0.033-0.779-0.1-0.251-0.065-0.474-0.171-0.667-0.312-0.192-0.143-0.346-0.323-0.459-0.543-0.113-0.219-0.168-0.479-0.163-0.78h1.036c-0.001 0.165 0.028 0.304 0.087 0.418zm-17.287-3.679h1.198l1.138 1.931 1.13-1.931h1.19l-1.803 3.012v1.876h-1.07v-1.903l-1.783-2.985zm-1.975 0c0.231 0 0.442 0.021 0.633 0.062s0.354 0.108 0.491 0.201c0.136 0.094 0.241 0.219 0.316 0.373 0.075 0.155 0.112 0.348 0.112 0.575 0 0.247-0.055 0.451-0.167 0.616-0.11 0.164-0.276 0.298-0.493 0.402 0.3 0.088 0.523 0.239 0.672 0.456 0.148 0.218 0.223 0.479 0.223 0.784 0 0.246-0.049 0.46-0.144 0.641-0.095 0.18-0.224 0.327-0.386 0.441-0.161 0.114-0.346 0.199-0.552 0.254-0.207 0.055-0.419 0.082-0.638 0.082h-2.358v-4.888h2.291v0.001zm-0.137 1.976c0.191 0 0.347-0.046 0.47-0.136 0.123-0.092 0.185-0.239 0.185-0.444 0-0.114-0.021-0.208-0.062-0.28s-0.095-0.129-0.164-0.17-0.146-0.07-0.235-0.086c-0.089-0.016-0.181-0.023-0.276-0.023h-1v1.14h1.082zm0.062 2.075c0.105 0 0.205-0.01 0.3-0.03 0.095-0.021 0.18-0.055 0.252-0.104 0.073-0.047 0.13-0.112 0.174-0.194s0.065-0.187 0.065-0.315c0-0.25-0.071-0.43-0.212-0.536-0.141-0.107-0.328-0.161-0.559-0.161h-1.166v1.341h1.146z" fill="#FFF"/>
+</svg>
diff --git a/console_toolkit/source/exercises/assets/TheAlt_original.svg b/console_toolkit/source/exercises/assets/TheAlt_original.svg
new file mode 100644
index 0000000000000000000000000000000000000000..07a81acf69a1e41d244549a0e573051a172952f7
--- /dev/null
+++ b/console_toolkit/source/exercises/assets/TheAlt_original.svg
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="297mm"
+   height="210mm"
+   viewBox="0 0 1052.3622 744.09448"
+   id="svg5247"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Logo_cmyk.svg">
+  <defs
+     id="defs5249">
+    <color-profile
+       name="ISO-Coated-v2-300---ECI-"
+       xlink:href="/home/alinea/.local/share/color/icc/ISOcoated_v2_300_eci.icc"
+       id="color-profile4201" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.5"
+     inkscape:cx="651.23994"
+     inkscape:cy="428.23605"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1596"
+     inkscape:window-height="864"
+     inkscape:window-x="1280"
+     inkscape:window-y="16"
+     inkscape:window-maximized="0"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-bbox="true"
+     inkscape:snap-to-guides="true"
+     inkscape:snap-page="true"
+     inkscape:snap-global="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     inkscape:snap-bbox-edge-midpoints="true"
+     inkscape:snap-bbox-midpoints="true"
+     inkscape:snap-center="true"
+     inkscape:snap-object-midpoints="true"
+     inkscape:snap-nodes="false">
+    <sodipodi:guide
+       position="0,0"
+       orientation="0,1052.3622"
+       id="guide8267" />
+    <sodipodi:guide
+       position="1052.3622,0"
+       orientation="-744.09449,0"
+       id="guide8269" />
+    <sodipodi:guide
+       position="1052.3622,744.09449"
+       orientation="0,-1052.3622"
+       id="guide8271" />
+    <sodipodi:guide
+       position="0,744.09449"
+       orientation="744.09449,0"
+       id="guide8273" />
+    <sodipodi:guide
+       position="0,744.09448"
+       orientation="372.04721,0"
+       id="guide8277" />
+    <sodipodi:guide
+       position="0,372.04727"
+       orientation="0,526.18109"
+       id="guide8279" />
+    <sodipodi:guide
+       position="526.1811,372.04727"
+       orientation="-372.04721,0"
+       id="guide8281" />
+    <sodipodi:guide
+       position="526.1811,744.09448"
+       orientation="0,-526.18109"
+       id="guide8283" />
+    <sodipodi:guide
+       position="627.91083,185.28604"
+       orientation="0,1"
+       id="guide8569" />
+    <sodipodi:guide
+       position="126.11443,139.94813"
+       orientation="0,1"
+       id="guide8573" />
+    <sodipodi:guide
+       position="62.769399,265.16504"
+       orientation="1,0"
+       id="guide4260" />
+    <sodipodi:guide
+       position="186.23327,567.52678"
+       orientation="1,0"
+       id="guide4262" />
+    <sodipodi:guide
+       position="186.23327,629.2587"
+       orientation="0,1"
+       id="guide4264" />
+    <sodipodi:guide
+       position="208.54007,243.79702"
+       orientation="1,0"
+       id="guide6346" />
+    <sodipodi:guide
+       position="343.6539,260.18578"
+       orientation="0,1"
+       id="guide6348" />
+    <sodipodi:guide
+       position="823.97289,500.95193"
+       orientation="1,0"
+       id="guide5551" />
+    <sodipodi:guide
+       position="987.21847,267.75"
+       orientation="1,0"
+       id="guide5553" />
+    <sodipodi:guide
+       position="1022.4764,557.33325"
+       orientation="0,1"
+       id="guide4240" />
+    <sodipodi:guide
+       position="124.50133,505.79487"
+       orientation="0,1"
+       id="guide4242" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata5252">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-308.26772)">
+    <rect
+       transform="scale(1,-1)"
+       style="display:inline;fill:#244471 icc-color(ISO-Coated-v2-300---ECI-, 0.89266804, 0.64203861, 0.1369192, 0.35045396);fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect5011-3"
+       width="1055.5399"
+       height="372.04724"
+       x="0.15418348"
+       y="-1052.3622" />
+    <rect
+       style="fill:#ffffff icc-color(ISO-Coated-v2-300---ECI-, 0, 0, 0, 0);fill-opacity:1;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect8365"
+       width="1052.3622"
+       height="372.04721"
+       x="-1.1368684e-13"
+       y="308.26773" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-166.8772"
+       y="810.53168"
+       id="text6399"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan6401"
+         x="-166.8772"
+         y="810.53168" /></text>
+    <g
+       id="g9826">
+      <g
+         id="g9817">
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:113.10722351px;line-height:125%;font-family:Vegur;-inkscape-font-specification:'Vegur Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;fill-rule:nonzero;stroke:none;"
+           x="208.54005"
+           y="494.9006"
+           id="text17736-7-4-8"
+           sodipodi:linespacing="125%"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:102.82551575px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;letter-spacing:2.01660895px;writing-mode:lr-tb;text-anchor:start;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;fill-rule:nonzero;"
+             sodipodi:role="line"
+             id="tspan17738-47-7-6"
+             x="208.54005"
+             y="494.9006"
+             dx="0 0 0.048014499"
+             dy="0">The</tspan></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:113.10722351px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#f28a20 icc-color(ISO-Coated-v2-300---ECI-, 0.00866712, 0.55040818, 0.92869459, 0.00906386);fill-opacity:1;stroke:none;stroke-width:0.18092053;stroke-opacity:1"
+           x="384.63541"
+           y="495.02896"
+           id="text18508-6-4-5"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan18510-7-1-1"
+             x="384.63541"
+             y="495.02896"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:102.82551575px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;letter-spacing:2.01660895px;writing-mode:lr-tb;text-anchor:start;fill:#f28a20 icc-color(ISO-Coated-v2-300---ECI-, 0.00866712, 0.55040818, 0.92869459, 0.00906386);fill-opacity:1;stroke:none;stroke-width:0.18092053;stroke-opacity:1">Alternative</tspan></text>
+        <g
+           id="g5905-4-0-8-8"
+           transform="matrix(0.4050561,0,0,0.4050561,513.72016,151.02668)"
+           style="fill:#244471 icc-color(ISO-Coated-v2-300---ECI-, 0.89266804, 0.64203861, 0.1369192, 0.35045396);fill-opacity:1">
+          <text
+             sodipodi:linespacing="125%"
+             id="text17736-8-2-1-1"
+             y="849.27069"
+             x="1004.0612"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:140.0774231px;line-height:125%;font-family:Vegur;-inkscape-font-specification:'Vegur Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;fill-rule:nonzero;stroke:none;"
+             xml:space="preserve"><tspan
+               y="849.27069"
+               x="1004.0612"
+               id="tspan17738-4-1-3-8"
+               sodipodi:role="line"
+               style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:127.34356689px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;letter-spacing:4.97859192px;writing-mode:lr-tb;text-anchor:start;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;fill-rule:nonzero;">.ch</tspan></text>
+        </g>
+      </g>
+      <g
+         id="g9812">
+        <path
+           style="fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 85.266611,423.10351 c -12.463146,0 -22.497218,10.03408 -22.497218,22.49722 l 0,78.46947 c 0,12.46313 10.034072,22.49714 22.497218,22.49714 l 78.469449,0 c 12.46313,0 22.49721,-10.03401 22.49721,-22.49714 l 0,-78.46947 c 0,-12.46314 -10.03408,-22.49722 -22.49721,-22.49722 l -78.469449,0 z m 2.302078,7.44779 70.752411,0 c 11.33741,0 20.46438,9.12693 20.46438,20.46439 l 0,70.75234 c 0,11.33742 -9.12697,20.46436 -20.46438,20.46436 l -70.752411,0 c -11.33743,0 -20.46437,-9.12694 -20.46437,-20.46436 l 0,-70.75234 c 0,-11.33746 9.12694,-20.46439 20.46437,-20.46439 z"
+           id="rect4200-0-3-7-1"
+           inkscape:connector-curvature="0" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:53.71383667px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#244471 icc-color(ISO-Coated-v2-300---ECI-, 0.89271382, 0.64199283, 0.13690394, 0.35049973);fill-opacity:1;stroke:none;stroke-width:0.06922398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;"
+           x="97.518784"
+           y="487.94351"
+           id="text4322-4-9-8-2-7-3"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4324-5-0-9-6-4-1"
+             x="97.518784"
+             y="487.94351"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:53.71375275px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#244471 icc-color(ISO-Coated-v2-300---ECI-, 0.89271382, 0.64199283, 0.13690394, 0.35049973);fill-opacity:1;stroke-width:0.06922398;stroke-miterlimit:4;stroke-dasharray:none;">Alt</tspan></text>
+      </g>
+      <text
+         sodipodi:linespacing="125%"
+         id="text6350"
+         y="546.64551"
+         x="225.7021"
+         style="font-style:normal;font-weight:normal;font-size:38.93792343px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+         xml:space="preserve"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:38.93792343px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Normal';text-align:start;letter-spacing:8.17108536px;writing-mode:lr-tb;text-anchor:start;fill:#254371 icc-color(ISO-Coated-v2-300---ECI-, 0.89266807, 0.64203858, 0.1369192, 0.35045397);fill-opacity:1;"
+           y="546.64551"
+           x="225.7021"
+           id="tspan6352"
+           sodipodi:role="line">for a sustainable digital world</tspan></text>
+    </g>
+    <g
+       id="g9856">
+      <g
+         id="g9847">
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:117.78444672px;line-height:125%;font-family:Vegur;-inkscape-font-specification:'Vegur Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;fill-rule:nonzero;stroke:none"
+           x="208.54005"
+           y="866.9425"
+           id="text17736-7-4-8-9"
+           sodipodi:linespacing="125%"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:107.07756805px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;fill-rule:nonzero"
+             sodipodi:role="line"
+             id="tspan17738-47-7-6-2"
+             x="208.54005"
+             y="866.9425">The</tspan></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:117.78444672px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#f28a20 icc-color(ISO-Coated-v2-300---ECI-, 0.00866712, 0.55040818, 0.92869459, 0.00906386);fill-opacity:1;stroke:none;stroke-width:0.18092053;stroke-opacity:1"
+           x="387.91733"
+           y="867.07617"
+           id="text18508-6-4-5-6"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan18510-7-1-1-5"
+             x="387.91733"
+             y="867.07617"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:107.07756805px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#f28a20 icc-color(ISO-Coated-v2-300---ECI-, 0.00866712, 0.55040818, 0.92869459, 0.00906386);fill-opacity:1;stroke:none;stroke-width:0.18092053;stroke-opacity:1">Alternative</tspan></text>
+        <g
+           id="g5905-4-0-8-8-6"
+           transform="matrix(0.42180603,0,0,0.42180603,498.34,508.84867)"
+           style="fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1">
+          <text
+             sodipodi:linespacing="125%"
+             id="text17736-8-2-1-1-8"
+             y="849.27069"
+             x="1004.0612"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:140.0774231px;line-height:125%;font-family:Vegur;-inkscape-font-specification:'Vegur Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             xml:space="preserve"><tspan
+               y="849.27069"
+               x="1004.0612"
+               id="tspan17738-4-1-3-8-7"
+               sodipodi:role="line"
+               style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:127.34356689px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;fill-rule:nonzero">.ch</tspan></text>
+        </g>
+      </g>
+      <g
+         id="g9842">
+        <path
+           style="fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 87.90493,792.17645 c -12.137478,0 -21.909353,9.77189 -21.909353,21.90935 l 0,76.41898 c 0,12.1375 9.771875,21.9093 21.909353,21.9093 l 76.419,0 c 12.13745,0 21.90934,-9.7718 21.90934,-21.9093 l 0,-76.41898 c 0,-12.13746 -9.77189,-21.90935 -21.90934,-21.90935 l -76.419,0 z m 2.241923,7.25318 68.903607,0 c 11.04116,0 19.92963,8.88844 19.92963,19.92964 l 0,68.90355 c 0,11.04116 -8.88847,19.92956 -19.92963,19.92956 l -68.903607,0 c -11.041176,0 -19.929624,-8.8884 -19.929624,-19.92956 l 0,-68.90355 c 0,-11.0412 8.888448,-19.92964 19.929624,-19.92964 z"
+           id="rect4200-0-3-7-1-6"
+           inkscape:connector-curvature="0" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-weight:normal;font-size:53.71383667px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;stroke:none;stroke-width:0.06922398;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="97.518799"
+           y="857.01648"
+           id="text4322-4-9-8-2-7-3-6"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4324-5-0-9-6-4-1-7"
+             x="97.518799"
+             y="857.01648"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:53.71375275px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#faf8f7 icc-color(ISO-Coated-v2-300---ECI-, 0.02832074, 0.03012131, 0.02754253, 0);fill-opacity:1;stroke-width:0.06922398;stroke-miterlimit:4;stroke-dasharray:none">Alt</tspan></text>
+      </g>
+      <text
+         sodipodi:linespacing="125%"
+         id="text6350-90"
+         y="913.07501"
+         x="226.08276"
+         style="font-style:normal;font-weight:normal;font-size:38.93792343px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#faf8f8 icc-color(ISO-Coated-v2-300---ECI-, 0.02685588, 0.02555886, 0.02499428, 0);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+         xml:space="preserve"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:38.93792343px;line-height:125%;font-family:Sansation;-inkscape-font-specification:'Sansation, Normal';text-align:start;letter-spacing:8.17108536px;writing-mode:lr-tb;text-anchor:start;fill:#faf8f8 icc-color(ISO-Coated-v2-300---ECI-, 0.02685588, 0.02555886, 0.02499428, 0);fill-opacity:1;"
+           y="913.07501"
+           x="226.08276"
+           id="tspan6352-3"
+           sodipodi:role="line">for a sustainable digital world</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/console_toolkit/source/exercises/assets/logo.png b/console_toolkit/source/exercises/assets/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..67fe0c54766b39016a060b5fa55cf41de5edd551
Binary files /dev/null and b/console_toolkit/source/exercises/assets/logo.png differ
diff --git a/console_toolkit/source/exercises/exercises.tex b/console_toolkit/source/exercises/exercises.tex
new file mode 100644
index 0000000000000000000000000000000000000000..66407001ff75eeb13983ce8b63dfc55e6d82fdcf
--- /dev/null
+++ b/console_toolkit/source/exercises/exercises.tex
@@ -0,0 +1,804 @@
+\documentclass{TheAlternativeCourse}
+
+\usepackage{menukeys}
+\usepackage{tabularx}
+\usepackage{float}
+\usepackage{caption}
+
+\title{Console Toolkit Exercises}
+\date{}
+\author{}
+
+\begin{document}
+\maketitle
+
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{12pt}
+
+\section{Introduction}
+
+Welcome to this exercise session! This is a practical exercise on the Linux
+command line.  If you have any question about the exercises, feel free to ask
+the helpers for assistance.
+
+\subsection*{Difficulty}
+
+The exercises are designed in such a way that you will have to find solutions
+by reading the manuals and using search engines. You are expected to come up
+with appropriate solutions on your own, there will be no step-by-step guided
+exercises!
+
+There will be quite simple exercises for complete beginners at the start,
+but there are also some much more difficult ones further into the exercise.
+Feel free to skip ahead!
+
+\subsection*{Liability}
+
+By taking part in this exercise, you acknowledge that you alone are responsible
+for your computer. TheAlternative and its parent organisation, the Student
+Sustainability Commission, will not be held liable for any damages or loss of
+data.
+
+\pagebreak
+
+\section{Basics}
+
+To solve some of the exercises, you will need to download some files. Whenever
+you see an orange box like below, this means you have a task to solve.
+
+\begin{exercisebox}{Getting the repository}
+    Open a terminal and enter the following (all on one line): \\
+    \texttt{curl https://files.project21.ch/LinuxDays-Public/HS18-exercise.zip
+        -o exercises.zip} \\\\
+    Then extract the zip archive like this: \\
+    \texttt{unzip exercises.zip}
+\end{exercisebox}
+
+\subsection{Running a command}
+
+To run a command, you just type it into the console and hit enter.  Most useful
+commands require some arguments. Arguments are given after the name of the
+command, separated by spaces. There are also so-called \emph{flags}, which set
+some options to alter the behaviour of a command. They have the form
+\texttt{-x} (single letter form) or \texttt{--long-option} (long format).
+
+An example of a more involved command:
+
+\begin{cmdbox}
+\texttt{ls -l --human-readable \textasciitilde/Downloads}
+\end{cmdbox}
+
+\subsection{Getting help}
+
+\texttt{man} is a command you will need throughout the following
+exercises.  It stands for ``manual'' and shows you what almost any given
+command can do and which options are available for it.  Almost all commands
+provide such a ``manpage'', which is typically written by the developers
+themselves.
+
+\begin{exercisebox}{The manual's manual}
+    The \texttt{man} command itself has its own manpage. Type \texttt{man man}
+    to access it, use the arrow keys to scroll, and press \keys{q} to exit.
+    Have a look around, especially at the different section numbers.
+    What is the section number for system calls?
+\end{exercisebox}
+
+An alternative to using the man pages is to try and see if a command has a help
+option. This is usually displayed by appending the option \texttt{--help} after
+the name of the command, which will often display much shorter and concise
+instructions
+on how to use a command.
+
+\begin{exercisebox}{The help option}
+    Look at the help output of \texttt{ls}. What is the flag to see hidden
+    files?
+\end{exercisebox}
+
+\subsection{Navigating directories}
+
+You can navigate your file system in the terminal, just like you could with
+a graphical program. Below are the most important commands.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        width=1.0\linewidth,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Commands for navigating directories}]
+        \textbf{Command} & \textbf{Description} \\
+        \texttt{pwd} & Display the current working directory. \\
+        \texttt{tree DIR} & Get a visualization of the directory tree under
+	    \texttt{DIR}. \\
+        \texttt{ls DIR} & List all files and directories in the current
+            working directory. \\
+        \texttt{cd DIR} & Change the current working directory to the given
+            directory. \\
+    \end{tcolorbox}%
+    \label{tab1}
+\end{table}
+
+\begin{exercisebox}{Making yourself at home}
+    Have a look around your home directory and try out the mentioned commands.
+    You will most likely recognise the layout from your graphical file browser.
+    Remember you can always return to your home directory by running
+    \texttt{cd} without any arguments.
+\end{exercisebox}
+
+\subsection{Modifying directories}
+
+Just like in graphical programs, you can create and delete directories on the
+command line.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Commands for modifying directories}]
+        \textbf{Command} & \textbf{Description} \\
+        \texttt{mkdir DIR} & Create a new directory with the given name. \\
+        \texttt{rmdir DIR} & Remove a directory. Will not work with
+            non-empty directories. \\
+        \texttt{rm -r DIR} &  Remove a directory and its contents.
+            {\color{exclamred}Attention! There is no trashcan on the command
+            line!  Files and directories will be deleted irrevocably.} \\
+        \texttt{cp -r SOURCE TARGET} &  Copy a source directory
+            (recursively with all its contents) to a target. \\
+        \texttt{mv SOURCE TARGET} & Move a file or directory.
+            Also used to rename files/directories. \\
+    \end{tcolorbox}%
+    \label{tab2}
+\end{table}
+
+\begin{exercisebox}{Creating your first directory}
+    Create a directory for the following exercises (you can call it
+    \texttt{console-toolkit}). Change into that directory and create a file
+    called \texttt{notes}. Then move the exercise file directory you downloaded
+    in task 2.1 into your newly created directory.
+\end{exercisebox}
+
+\subsection{Viewing files}
+If you want to view the contents of a text file, you have the following
+options:
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Commands for viewing files}]
+        \textbf{Command} & \textbf{Description} \\
+        \texttt{cat FILE} & Output a file to the terminal. \\
+        \texttt{head FILE} & Output the first couple of lines to the terminal. \\
+        \texttt{tail FILE} & Output the last couple of lines to the terminal. \\
+        \texttt{less FILE} & Browse a file in a visual viewer. \\
+    \end{tcolorbox}%
+    \label{tab3}
+\end{table}
+
+\begin{exercisebox}{Log files}
+    \texttt{tail} is often used to inspect errors log files. Use tail to find the
+    last three lines of \texttt{dmesg\_log} (in the exercise files).
+\end{exercisebox}
+
+\hintbox{\texttt{dmesg} is tool to view the log output of your kernel.}
+
+\subsection{Console tips \& tricks}
+
+There are many small things that can make your life when using the terminal
+little bit easier.  Following is a table with the most important keyboard
+shortcuts you can use to speed up your workflow.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Terminal keyboard shortcuts}]
+        \keys{\ctrl}+\keys{w} & Delete one word backwards. \\
+        \keys{\ctrl}+\keys{u} & Delete the entire line. \\
+        \keys{\ctrl}+\keys{l} & Clear the terminal. \\
+        \keys{\ctrl}+\keys{a} & Go to the beginning of the line. \\
+        \keys{\ctrl}+\keys{e} & Go to the end of the line. \\
+        \keys{\ctrl}+\keys{c} & Terminate the currently runnig process. \\
+        \keys{\ctrl}+\keys{d} & Quit the shell. \\
+    \end{tcolorbox}%
+    \label{tab4}
+\end{table}
+
+\section{Files \& Permissions}
+
+This section introduces you to basic commands related to files. We will first
+look at a command that can be used for creating empty files.
+
+The \texttt{touch} command is most frequently used for creating new, empty
+files. If you check the manual, you will see that it can also change certain
+file timestamps (access and modification times).
+
+\begin{exercisebox}{The magic touch}
+    Switch to your home directory. Execute \texttt{touch file}. A new file
+    should have been created. Confirm that this is the case.
+\end{exercisebox}
+%
+We already saw \texttt{cat} in the previous section. Another tool to look at
+files is \texttt{less}. This command is great if you want to look at large
+bodies of text because unlike \texttt{cat}, it has a built-in scroll function.
+Once you are done looking at the file, you can quit with \keys{q}.
+
+\subsection{Permissions}
+
+We will now look at two commands to manage permissions.
+
+\texttt{chown} stands for ``change owner''. It is used to change the owner of a
+given file. It can also change the group ownership.
+
+\begin{exercisebox}{Get off my lawn}
+    Create a new, empty file (hint: \texttt{touch}) and use \texttt{chown} to
+    change its ownership to the \texttt{root} user (you will probably need
+    \texttt{sudo} for this). Try deleting it. Then change the ownership back to
+    your own user.
+\end{exercisebox}
+%
+A very similar command is \texttt{chmod}. \texttt{chmod} stands for ``change
+file mode bits'' and controls the following permissions on any given file:
+
+\begin{itemize}
+    \setlength\itemsep{-9pt}
+	\item Read: Who can see the file data.
+	\item Write: Who can modify the file.
+	\item Execute: Who is allowed to run the file (like a program or a script)
+\end{itemize}
+
+\hintbox{Permissions can be viewed using \texttt{ls -l}.}
+
+\begin{exercisebox}{{Read, Write, Execute}}
+    The read, write and execute permissions do different things, depending on
+    whether they are set for directories or for files. Find out what they mean
+    for files and directorues by playing around with the \texttt{chmod}
+    command, readings its manual or searching on the internet.
+\end{exercisebox}
+
+\subsection{File tools}
+
+There are a number of other commands that are frequently used to get
+information on files:
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Commands for getting information about files}]
+        \textbf{Command} & \textbf{Description} \\
+	    \texttt{wc \$file} & Display line, word, and character count of a file \\
+        \texttt{diff \$file1 \$file2} & Show differences between files \\
+	    \texttt{ln \$target \$link\_name} & Create a link \\
+        \texttt{du \$file} & Estimate file space usage \\
+        \texttt{df} & Report file system disk usage \\
+    \end{tcolorbox}%
+    \label{tab5}
+\end{table}
+
+In the next exercise we are going to read some text from the standard input
+(also called \texttt{stdin}). Reading from \texttt{stdin} means you can just
+type text into the console. When you are done, hit \keys{Enter} to enter a
+newline and then hit \keys{\ctrl}+\keys{d}. This is the universal end-of-file
+character in Unix-like systems. It signals to the command that it the input has
+finished. You can even use this key shortcut to close your terminal.
+
+\begin{exercisebox}{Cat tricks}
+    Type the command \texttt{cat -}. This starts \texttt{cat} to read from
+    \texttt{stdin}. Enter some text and observe what happens when you press
+    \keys{Enter}. \texttt{cat} will just keep reading until the end-of-file
+    character, so you can enter multiple lines of text. When you are done,
+    terminate the input as described above.
+\end{exercisebox}
+
+\begin{exercisebox}{Counting words}
+    Sometimes you might want to know the length of some text. First, consult
+    \texttt{wc}'s manual to find out how you can read from standard input. Copy
+    a line of text of your choice from the \texttt{wc} manual, then use the
+    \texttt{wc} syntax that you looked up to read from standard input. Paste
+    the text and terminate the input as before.
+\end{exercisebox}
+
+\hintbox{%
+Copying and pasting in the console usually works with
+\keys{\ctrl}+\keys{\shift}+\keys{c} and \keys{\ctrl}+\keys{\shift}+\keys{v},
+this depends on the terminal though.}
+
+\paragraph{Hardlink}
+A hardlink is a pointer to a specific, physical location on a hard disk. If the
+file name of the file that is linked to changes, the link still works. However,
+if the file is replaced by a different file with the same name, the hardlink
+will now \emph{not} point to the new file!  It will still point to the location
+of the old file.
+
+\paragraph{Symlink}
+A symlink (short for symbolic link) points to a file name, to an actual file
+path. If the data behind the file name is changed, the symbolic link will then
+point to this new file, as long as the name stays the same. This is a higher
+level concept than a hardlink, as it operates above the concept of file names.
+Most of the time, a symlink is preferrable to a hardlink.
+
+\begin{exercisebox}{Symlinks}
+    Have a look at the \texttt{ln} manual to find out how to create a symbolic
+    link. Then create a link in your home directory to a directory you use
+    frequently.
+\end{exercisebox}
+
+Lastly, two commands that are loosely related to files are \texttt{df} and
+\texttt{du}. These commands are used to find out how much space files take up.
+\texttt{df} shows coarse-grained disk usage as reported by the file system.
+\texttt{du} counts the disk usage of individual files and directories.
+
+\begin{exercisebox}{Reporting disk usage}
+    When you run \texttt{df} and \texttt{du}, the sizes of files are reported
+    in multiples of blocks. The size of a block depends on your file system,
+    but typically is between 512 bytes and 1 kilobyte. This means that you
+    would have to multiply by this size the true size, in bytes. Find out how
+    to make the output of \texttt{df} and \texttt{du} more readable for humans
+    by looking at their options in the manual (hint: the option is the same for
+    both tools).
+\end{exercisebox}
+
+\section{Leveraging the command line}
+
+\subsection{Globbing (Wildcards)}
+
+Globbing is a useful tool to work with files that share a pattern. For example,
+to refer to all \texttt{jpg} images in a directory, you can use \texttt{*.jpg}.
+The \texttt{*} means `any number of any characters', so this pattern will give
+you all files that end with \texttt{.jpg}. Similarly, \texttt{dir/*} will give
+you \emph{all} files in \texttt{dir}, \emph{except} hidden files.
+
+There are a few more useful patterns, like \texttt{?} (question mark) which
+matches any \emph{single} character, or \texttt{\string{*.jpg,*.png\string}},
+which is a list that matches both \texttt{.jpg} and \texttt{.png} files. To
+learn more, you can have a look at \texttt{man 7 glob}.
+
+\begin{exercisebox}{{Printing text, again}}
+    Ouput all \texttt{.txt} files in \texttt{notes/} to the terminal in
+    a single command. The output will tell you if you did it correctly.
+\end{exercisebox}
+
+\begin{exercisebox}{Managing cat pictures}
+    Create a new directory called \texttt{cats}. Copy all cat pictures in
+    \texttt{pictures/} (in the exercise files) to your new \texttt{cats}
+    directory, with a single command.
+\end{exercisebox}
+
+\subsection{Pipes}
+
+Pipes are useful to connect multiple commands together. One of the design
+principles of Unix was ``do one thing, and do it well''. This means, tools
+should be simple and powerful in their specific domain, but there should also
+be a mechanism to combine multiple programs in an easy way. This mechanism is
+the \emph{pipe}, the \texttt{|} symbol. It allows you to connect the output of
+one program to the input of another program.
+
+For example, we can combine \texttt{du} and \texttt{sort} to work together.
+\texttt{du} analyses the usage of disk space, and sort just sorts lines
+it is given. This pipe analyzes your home directory and tells you which
+directory uses the most space:
+
+\begin{cmdbox}
+    \texttt{du -sh * | sort -h}
+\end{cmdbox}
+
+Here the \texttt{*} globbing pattern stands for ``every file in the current
+directory''.
+
+\begin{exercisebox}{Counting lines in multiple files}
+    \texttt{wc} (word count) can be used to count the number of lines in a file
+    (\texttt{-l} flag). Use \texttt{cat} to output all files in the
+    \texttt{notes} directory (exercise files) at the same time and connect it
+    to \texttt{wc} to count the lines.
+\end{exercisebox}
+
+\subsection{Find}
+
+Looking for specific files on your system is a task that one has to do fairly
+regularly. Two very popular tool for finding files with certain properties are
+\texttt{find} and \texttt{grep}. In this section, we cover \texttt{find}.  As a
+rule of thumb, \texttt{find} is best used when you know that your file has
+certain metadata: Maybe you know approximately when you have created the file,
+when you last looked at it, how large it is etc. In contrast, \texttt{grep} is
+usually used when you want to look at \emph{the content} of a file.
+
+\texttt{find} works by essentially filtering all files through a chain of
+conditions, given by flags. Working with \texttt{find} is
+fairly straight forward and almost like verbally explaining what you are
+looking for.
+
+\begin{cmdbox}
+    \texttt{find -mtime -1 -size +100k}
+\end{cmdbox}
+
+This searches for all files that have been modified (\texttt{-mtime}) less than
+one day ago (\texttt{-1}) and have size (\texttt{-size}) larger than 100
+Kilobytes (\texttt{+100k}). \texttt{find} has a lot of conditions where it
+makes sense to specify ``greater than'' or ``smaller than''. This is specified
+by prefixing the amount with a \texttt{+} or a \texttt{-}. This is why the
+condition ``larger than 100 Kilobytes'' is written as \texttt{-size +100k}.
+
+If we additionally knew that our file was smaller than one gigabyte, we would
+type:
+\begin{cmdbox}
+    \texttt{find -mtime -1 -size +100k -size -2G}
+\end{cmdbox}
+
+It's necessary to use \texttt{-2G} here, since file sizes are rounded up.
+A file that has 800M will be rounded to 1G. The semantics of find use strictly
+smaller (\texttt{<}), therefore we have to compare to 2G.
+
+Here is an overview of options for \texttt{find} that are useful to know.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Useful find flags}]
+        \textbf{Flag} & \textbf{Description} \\
+        \texttt{-name} & Matches the name of a file. \\
+	    \texttt{-size} & Condition on the size of a file. \\
+        \texttt{-atime} & Condition on when file was last accessed. \\
+        \texttt{-mtime} & Condition on when file was last modified. \\
+        \texttt{-type} & Specifies type of file (directory, regular file
+        \ldots). \\
+    \end{tcolorbox}%
+    \label{tab6}
+\end{table}
+
+\begin{exercisebox}{The largest cat}
+    Use \texttt{find} to find all cat pictures (\texttt{cat*}) with a size over
+    200 kilobytes in the exercise directory. There should be more than one!
+\end{exercisebox}
+
+\subsection{Grep and regular expressions}
+
+\includegraphics[width=\textwidth]{img/regex_golf.png}
+{\footnotesize xkcd 1313, https://xkcd.com/1313/}
+
+While working with many files in different folders, you can find yourself
+losing track of what is in what file. To quickly find something in one of many
+files, you can use \texttt{grep}. Grep is a tool for searching a body of text
+for a specific pattern. Those patterns are specified with a syntax called
+``Regular Expressions'' or regexes.
+
+Regexes can easily become \emph{very} complicated (there are entire books on
+this topic).  We'll have a look at the very basics here. Regexes are comprised
+of a string of characters, e.g. \texttt{foo.bar[0-9]}. Let's look at it in more
+detail:
+
+\begin{itemize}
+    \setlength\itemsep{-9pt}
+    \item{\makebox[1.5cm]{\: \texttt{foo\hfill}} Matches the literal word ``foo''.}
+    \item{\makebox[1.5cm]{\: \texttt{.\hfill}} Matches any single character.}
+    \item{\makebox[1.5cm]{\: \texttt{bar\hfill}} Matches the literal word ``bar''.}
+    \item{\makebox[1.5cm]{\: \texttt{[0-9]\hfill}} Matches a single digit between 0 and 9.}
+\end{itemize}
+
+For example, this regex \texttt{foo.bar[0-9]} would match on all of these
+strings:
+
+\begin{itemize}
+    \setlength\itemsep{-9pt}
+    \item \texttt{foo\_bar1}
+    \item \texttt{fooobar9}
+    \item \texttt{foozbar5}
+    \item \texttt{foo1bar2}
+\end{itemize}
+
+An important thing to note is that regular expressions don't have to match the
+entire string. So the example regex would also match on
+\texttt{XXXXfoo1bar2XXXX}, because \texttt{foo1bar2} is part of that string.
+
+So how do we try that on the command line? Simple, to test out \texttt{grep},
+we can use \texttt{echo} to pipe a string into grep to match. Like this:
+
+\begin{cmdbox}
+    \texttt{echo foo1bar2 | grep foo.bar[0-9]}
+\end{cmdbox}
+
+This should output \texttt{foo1bar2}, because grep outputs all lines from its
+input that match the regex.
+
+There are a few command line options that you should know about \texttt{grep}.
+These can also be combined, like so: \texttt{grep -rnoh PATTERN FILE}.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Useful grep flags}]
+        \textbf{Command} & \textbf{Description} \\
+        \texttt{-r} & Recursively look at all files under the given directory. \\
+        \texttt{-o} & Only print the matching strings, not the entire line. \\
+        \texttt{-h} & Don't print the filename, just the matching string/line. \\
+        \texttt{-n} & Prefix the output with the linenumber where the match occured. \\
+    \end{tcolorbox}%
+    \label{tabgrepopts}
+\end{table}
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Regex building blocks}]
+        \textbf{Regex} & \textbf{Example} & \textbf{Description} \\
+
+		\textbf{Match Expressions} & & \\
+        \texttt{<character literal>} & \texttt{f} &
+            Matches the character \texttt{<character literal>}.
+            The example matches on \texttt{f}. \\
+        \texttt{.} & \texttt{.} & Matches any single character. \\
+        \texttt{[<char1>-<char2>]} & \texttt{[a-z]} &
+            Matches a single character in the range from \texttt{<char1>} to
+            \texttt{<char2>} (inclusive). The example matches on any lowercase
+            character. The character range can be specified multiple times,
+            like so: \texttt{[a-zA-Z0-9]}. This would match any lower- or
+            uppercase character or digit. \\
+        \texttt{[[:alnum:]]} & \texttt{[[:alnum:]]} &
+            Alphanumeric characters (letters and digits). \\
+        \texttt{[[:alpha:]]} & \texttt{[[:alpha:]]} & Letters. \\
+        \texttt{[[:digit:]]} & \texttt{[[:digit:]]} & Digits. \\
+        \texttt{[[:xdigit:]]} & \texttt{[[:xdigit:]]} & Hexadecimal digits. \\
+        \texttt{[[:blank:]]} & \texttt{[[:blank:]]} & Blank space (spaces and tabs). \\
+        \texttt{[[:word:]]} & \texttt{[[:word:]]} & Digits, letters and underscores. \\
+
+		\textbf{Modifiers} & & \\
+        \texttt{?} & \texttt{.?} &
+            The preceding expression appears zero times or exactly once. The
+            example would match on an empty string or any string of length one. \\
+        \texttt{*} & \texttt{.*} &
+            The preceding expression appears zero, one or many times. The
+            example would match on a string of arbitrary length, including an
+            empty one.\\
+        \texttt{+} & \texttt{.+} &
+            The preceding expression appears one or many times. The example
+            matches on a string of any length greater than zero. \\
+        \texttt{\string{<num>\string}} & \texttt{\string{3\string}} &
+            Matches on a string if the preceding expression appears exactly
+            \texttt{<num>} times. \\
+        \texttt{\string{<num1>,<num2>\string}} & \texttt{\string{3,6\string}} &
+            Matches on a string if the preceding expression appears between
+            \texttt{<num1>} and \texttt{<num2>} times (inclusive). \\
+    \end{tcolorbox}%
+    \label{tabgreplarge}
+\end{table}
+
+\paragraph{Note} When using the characters \texttt{|, +, ?} with their regex
+meaning, they must be escaped with a backslash like this: \verb@\|, \+, \?@. If
+you want to use any of the ofter special characters as regular characters, i.e.
+to match a literal \texttt{.} you can use \verb@\.@
+
+\begin{exercisebox}{Finding email addresses}
+    Somewhere in the exercise files, there is an email address hidden in a text
+    file. Create a regular expression that matches email addresses that end in
+    .ch and find it!
+\end{exercisebox}
+
+\section{Remote machines}
+
+This section will be about working with remote machines. You will
+connect to one and move files from and to it. Additionally, you will set up
+your SSH so you can log in without entering a password.
+
+\texttt{ssh} (secure shell) is an extremely useful tool, as it allows you to
+manage servers, connecting to your home computer from a laptop, running
+computations on super computers, and even using graphical applications that are
+installed on a different computer. \texttt{scp} (secure copy) works just like
+\texttt{cp}, but allows you to copy files to and from remote machines.
+\texttt{scp} is based on the SSH protocol, so it works similiarly and the
+public key authentication in exercise 5.2 will automatically also apply to
+\texttt{scp}.
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Remote access tools}]
+        \texttt{ssh user@hostname} &
+            Open an SSH session with a specific user on a host. \\
+        \texttt{scp user@hostname:file.txt .} &
+            Copy a file from remote machine to the current directory. \\
+        \texttt{scp file.txt user@hostname:file.txt} &
+            Copy a file from current directory to remote host. \\
+    \end{tcolorbox}%
+    \label{tab7}
+\end{table}
+
+\hintbox{%
+If you don't have an ETH account, use\\
+\texttt{hackingsession@pterodactyl.vsos.ethz.ch} with password\\
+\texttt{BoredHacker} for the following exercises instead.}
+
+\begin{exercisebox}{Establishing an SSH connection}
+    Use SSH to connect to the Euler supercomputer at
+    \texttt{nethz-login@euler.ethz.ch}, where \texttt{nethz-login} is your
+    \emph{nethz} account name. You can login using your regular credentials.
+\end{exercisebox}
+%
+It is inconvenient that you have to enter your password every time you want to
+log in. You can set up SSH in a way where you \emph{don't} have to provide your
+password!  This is done with public key cryptography. Basically, you generate a
+public key and a private key.  The private key you keep safe and only for
+yourself. The public key you can distribute to anyone.  Now you can
+authenticate yourself for anyone that has your public key: You can create a
+signature with your private key, that can be verified using the public key.
+However, only the owner of the private key can create the signature that is
+verifiable by the public key! This can be used by an SSH server to authenticate
+clients that want to open an SSH session.
+
+\begin{exercisebox}{Generating your key}
+    Generate your private/public key pair using \texttt{ssh-keygen}.
+    Then copy your generated public key (\texttt{.ssh/id\_rsa.pub}) to
+    \texttt{.ssh/authorized\_keys} on the server. Try logging in with SSH now,
+    it should no longer require a password.
+\end{exercisebox}
+
+
+\section{Jobs \& Processes}
+
+Jobs are groups of processes that are running in the current shell. Often, a
+job only consists of one process but sometimes a job is a process
+\emph{pipeline} consisting of multiple jobs, such as
+\texttt{echo "Hello" | cat -}. Consult the \texttt{JOB CONTROL} section
+of the \texttt{bash} manual if you want to study the details.
+
+Knowing how to control jobs is essential if you want to be able to
+simultaneously run multiple processes from the same shell.
+
+\subsection{Job control}
+
+Jobs can be put into the background, started in the background, brought to the
+foreground and killed. We say a job is running in the background when it is
+currently running, but not blocking the shell. In other words, when a job is
+running in the background, you can still use your shell normally (although the
+job might produce output that will get displayed on your terminal which can be
+quite annoying).
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Working with jobs}]
+	    \texttt{jobs} & List all jobs in the current shell\\
+	    \texttt{cmd \&} & Start \texttt{cmd} in the background\\
+	    \texttt{fg} & Bring a job into the foreground\\
+	    \texttt{bg} & Bring a job into the background\\
+    \end{tcolorbox}
+    \label{tabjobcmds}
+\end{table}
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Controlling jobs}]
+		\texttt{\keys{\ctrl}+\keys{z}} & Suspend current job. Processes may ignore this.\\
+		\texttt{\keys{\ctrl}+\keys{c}} & Kill current job. Processes may ignore this.\\
+        \texttt{kill \%N} & Kill job, where N is its number as listed in
+        \texttt{jobs}.Processes may \emph{still} ignore this.\\
+	    \texttt{kill -9 \%N} & Kill job with number N for sure.\\
+    \end{tcolorbox}
+    \label{tab8}
+\end{table}
+
+You can \emph{usually} use \keys{\ctrl}+\keys{c} to terminate a job in the
+foreground and \keys{\ctrl}+\keys{z} to suspend a job in the foreground.
+Suspended jobs are paused until they are resumed with either \texttt{fg} or
+\texttt{bg}. Note that processes can choose to overwrite these shortcuts so
+they are not guaranteed to work. If they don't work, we can always use more
+drastic measures \ldots
+
+\subsection{Processes}
+
+Processes operate system-wide. Each process has a unique process ID, called the
+PID for short. You can think of processes as separate programs running
+independent of each other. For example, an \texttt{echo} command spawns a new
+process that is separated from the shell process that you are in (which is
+typically \texttt{bash}).
+
+\begin{table}[H]
+    \centering
+    \rowcolors{1}{lightblue}{white}
+    \begin{tcolorbox}[%
+        enhanced,
+        fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+        width=1.0\linewidth,
+        tabularx={>{\centering\arraybackslash}l|>{\centering\arraybackslash}X},
+        title={Managing}]
+        \texttt{top} & Display info about all currently running processes. Quit
+        with \keys{q}\\
+        \texttt{htop} & A more modern equivalent of \texttt{top}. It is not
+        installed by default on most distributions, but can be installed it
+        with your package manager. \\
+        \texttt{kill \texttt{PID}} & Send a termination signal to the process
+        \texttt{PID}. This is the preferred way to terminate a process, as it
+        allows it to exit normally and perform clean up. \\
+        \texttt{kill -9 \texttt{PID}} & Send a killing signal to the
+        process \texttt{PID}. The process is killed by the operating system
+        immediately. Useful for unresponsive processes. \\
+        \texttt{pkill \texttt{PATTERN}} & Like \texttt{kill}, but kills
+        processes whose names match a pattern instead. \\
+	    \texttt{pkill -9 \texttt{PATTERN}} & Send a kill signal instead. \\
+        \texttt{ps} & Utility to display information about processes. Most
+        commonly used as \texttt{ps aux}. \\
+    \end{tcolorbox}%
+    \label{tab9}
+\end{table}
+
+\texttt{kill} and \texttt{pkill} actually send so-called signals to processes.
+There are many signals that all do different things. When you call \texttt{kill
+PID}, the signal \texttt{15} is sent to the process \texttt{PID}. This signal
+is called the \texttt{SIGTERM} signal and is used to \emph{ask} a process to
+terminate. When we write \texttt{kill -9 PID}, we are actually sending the
+signal \texttt{9} which is also known as \texttt{SIGKILL} and kills a process
+instantly. Read \texttt{man 7 signal} if you want to know more about signals.
+
+
+\begin{exercisebox}{Killed in their sleep}
+    Start a new process by typing \texttt{sleep 1000} in your shell. Open
+    another shell. Use \texttt{top}, \texttt{htop} or \texttt{ps} to figure out
+    the PID of the \texttt{sleep} process. Kill it.
+\end{exercisebox}
+
+\begin{exercisebox}{A job for kill}
+    \texttt{kill} also works on jobs. Start \texttt{sleep 1000} in the
+    background (or start it in the foreground, suspend it, then bring it to the
+    background). Then type \texttt{kill \%N} where \texttt{N} is the job's number
+    (probably \texttt{1}). Check the output of the \texttt{jobs} command and
+    confirm that the job is not displayed anymore.
+\end{exercisebox}
+
+\section{License}
+
+This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
+International License. See also:
+\url{http://creativecommons.org/licenses/by-sa/4.0/}.
+
+\vspace{0cm}
+\includegraphics[width=3cm]{assets/CC-BY-SA_icon.pdf}
+
+\end{document}
diff --git a/console_toolkit/source/exercises/img/Light_Bulb_or_Idea_Flat_Icon_Vector.svg b/console_toolkit/source/exercises/img/Light_Bulb_or_Idea_Flat_Icon_Vector.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e007b5beb522f86b68325ae8da939bfc22453112
--- /dev/null
+++ b/console_toolkit/source/exercises/img/Light_Bulb_or_Idea_Flat_Icon_Vector.svg
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 960 960" style="enable-background:new 0 0 960 960;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#E6E6E6;}
+	.st1{fill:#FBB03B;}
+	.st2{fill:#FFC06C;}
+	.st3{fill:none;stroke:#FFFFFF;stroke-width:14.9358;stroke-miterlimit:10;}
+	.st4{fill:#CCCCCC;}
+	.st5{fill:#B3B3B3;}
+	.st6{fill:none;stroke:#FBB03B;stroke-width:24.893;stroke-miterlimit:10;}
+	.st7{fill:none;}
+</style>
+<g>
+	<circle class="st0" cx="478.7" cy="792.5" r="35.9"/>
+	<path class="st1" d="M488.4,222.2c-2.7-0.1-5.3-0.2-8-0.2c-2.6,0-5.2,0.1-7.9,0.2c-130.1,5.2-227.4,145.4-170,262.3l2.7,5.4
+		c30.5,52.5,70.4,38.5,70.4,98.3v42.3h210.6v-42.8c0-59.5,36-47.4,65.6-97.5l3.1-6.4C711.2,366.8,618.1,227.4,488.4,222.2z"/>
+	<g>
+		<path class="st2" d="M488.4,222.2c-2.7-0.1-5.3-0.2-8-0.2c-2.6,0-5.2,0.1-7.9,0.2c-57.2,2.3-108,30.6-142.1,71.6
+			c31.8-26.6,72.1-43.9,116.2-45.7c2.6-0.1,5.2-0.2,7.9-0.2c2.7,0,5.3,0.1,8,0.2c129.7,5.3,222.9,144.6,166.6,261.6l-3.1,6.4
+			c-2.3,3.9-4.6,7.4-7,10.5c10.4-8.2,22.1-18.2,32.9-36.4l3.1-6.4C711.2,366.8,618.1,227.4,488.4,222.2z"/>
+	</g>
+	<path class="st3" d="M500.2,615.4c-3.8-33.6-7.5-67.3-6.2-101.1s8.1-67.8,24.2-97.5c4.1-7.5,8.9-14.9,15.9-19.9
+		c11.7-8.3,28.8-8.1,40.3,0.6s16.3,25.1,11.5,38.6c-4.8,13.3-17.2,22.3-30.1,28.2c-25.6,11.8-134.3,11.8-159.9,0
+		c-12.8-5.9-25.3-14.9-30.1-28.2c-4.9-13.5,0-29.9,11.5-38.6s28.6-8.9,40.3-0.6c7,5,11.8,12.4,15.9,19.9
+		c16.1,29.7,22.9,63.7,24.2,97.5s-2.4,67.5-6.2,101.1"/>
+	<path class="st4" d="M556.9,792.5H406.2c-12.1,0-30.9-9.4-30.9-20.9l0,0V619.9c0-8.1,6.5-14.6,14.6-14.6h183.3
+		c8.1,0,14.6,6.5,14.6,14.6V771v0.6C587.8,783.1,568.9,792.5,556.9,792.5z"/>
+	<path class="st0" d="M588.2,630.5l-225.6,27.2c-9.6,1.2-18.3-5.7-19.5-15.3l-0.4-3.4c-1.2-9.6,5.7-18.3,15.3-19.5l225.6-27.2
+		c9.6-1.2,18.3,5.7,19.5,15.3l0.4,3.4C604.7,620.6,597.8,629.3,588.2,630.5z"/>
+	<path class="st0" d="M595.9,693.9l-225.6,27.2c-9.6,1.2-18.3-5.7-19.5-15.3l-0.4-3.4c-1.2-9.6,5.7-18.3,15.3-19.5l225.6-27.2
+		c9.6-1.2,18.3,5.7,19.5,15.3l0.4,3.4C612.3,684,605.5,692.8,595.9,693.9z"/>
+	<path class="st0" d="M603.5,757.4l-225.6,27.2c-9.6,1.2-18.3-5.7-19.5-15.3l-0.4-3.4c-1.2-9.6,5.7-18.3,15.3-19.5l225.6-27.2
+		c9.6-1.2,18.3,5.7,19.5,15.3l0.4,3.4C620,747.5,613.1,756.2,603.5,757.4z"/>
+	<polygon class="st5" points="375.3,720.5 375.3,732.6 587.8,707 587.8,694.9 	"/>
+	<path class="st5" d="M586.5,630.7l-211.2,25.5v12.1l211.2-25.5c0.4-0.1,0.8-0.2,1.2-0.3v-12.1C587.3,630.5,587,630.6,586.5,630.7z"
+		/>
+	<path class="st5" d="M382.8,784c6.6,5.1,16.2,8.5,23.4,8.5h6.5l175.1-21.1V771v-11.7L382.8,784z"/>
+	<g>
+		<g>
+			<g>
+				<g>
+					<line class="st6" x1="242.2" y1="605.2" x2="298" y2="557.6"/>
+					<line class="st6" x1="242.2" y1="605.2" x2="298" y2="557.6"/>
+					<path class="st7" d="M275,466.8c0,0,0.1,0.3,0.3,0.9c0.2,0.6,0.5,1.5,0.9,2.6c0.8,2.2,1.8,5.4,3.3,9.2c0.4,0.9,0.7,1.9,1.1,2.9
+						c0.2,0.5,0.4,1,0.6,1.6c0.2,0.5,0.5,1,0.7,1.6c0.9,2.1,1.9,4.4,2.9,6.7c1.1,2.3,2.3,4.6,3.4,7c0.5,1.2,1.2,2.4,1.9,3.5
+						c0.6,1.2,1.3,2.4,1.9,3.6c5.2,9.4,11.3,18.4,16.1,24.9c2.4,3.2,4.6,5.9,6.1,7.7s2.4,2.8,2.4,2.8l-85,72.6c0,0-1.3-1.5-3.6-4.3
+						s-5.5-6.8-9.2-11.7c-1.8-2.5-3.7-5.2-5.8-8.1c-1-1.4-2.1-2.9-3.1-4.4s-2.1-3.1-3.1-4.7c-1-1.6-2.1-3.2-3.2-4.9
+						c-1.1-1.6-2.1-3.4-3.1-5.1c-1-1.7-2.1-3.5-3.1-5.2l-1.6-2.6l-1.5-2.7c-1-1.8-2-3.6-2.9-5.4c-1-1.8-2-3.6-2.8-5.4
+						c-1.8-3.6-3.5-7.2-5.2-10.7c-1.5-3.5-3-6.9-4.4-10.2c-0.3-0.8-0.7-1.6-1-2.4c-0.3-0.8-0.6-1.6-0.9-2.4c-0.6-1.5-1.2-3-1.7-4.5
+						c-2.3-5.7-3.9-10.6-5-14c-0.6-1.7-1-3-1.3-4c-0.3-0.9-0.5-1.4-0.5-1.4L275,466.8z"/>
+				</g>
+				<g>
+					<line class="st6" x1="177.9" y1="482.7" x2="248.7" y2="463.9"/>
+					<line class="st6" x1="177.9" y1="482.7" x2="248.7" y2="463.9"/>
+					<path class="st7" d="M267.3,371.9c0,0-0.2,1.3-0.4,3.7c-0.1,1.2-0.3,2.6-0.5,4.2c-0.1,0.8-0.2,1.7-0.3,2.6
+						c-0.1,0.9-0.1,1.9-0.2,2.9c-0.7,8.1-0.9,19-0.3,29.7c0.1,1.3,0.2,2.7,0.3,4c0.1,1.3,0.1,2.7,0.3,4c0.3,2.6,0.6,5.2,0.9,7.7
+						c0.8,5,1.4,9.7,2.3,13.6c0.4,2,0.7,3.8,1.1,5.4s0.7,3,1,4.1c0.6,2.3,0.9,3.6,0.9,3.6l-108.1,28.7c0,0-0.5-2-1.4-5.5
+						c-0.4-1.7-0.9-3.9-1.5-6.3s-1.1-5.2-1.7-8.2c-1.3-6-2.3-13.1-3.5-20.7c-0.4-3.8-0.9-7.8-1.3-11.8c-0.3-2-0.3-4-0.5-6.1
+						c-0.1-2-0.3-4.1-0.4-6.1c-0.9-16.4-0.6-32.7,0.5-45c0.1-1.5,0.2-3,0.3-4.4c0.2-1.4,0.3-2.7,0.4-3.9c0.3-2.5,0.5-4.6,0.8-6.4
+						c0.4-3.6,0.7-5.6,0.7-5.6L267.3,371.9z"/>
+				</g>
+				<g>
+					<line class="st6" x1="172.9" y1="344.5" x2="244.9" y2="358"/>
+					<line class="st6" x1="172.9" y1="344.5" x2="244.9" y2="358"/>
+					<path class="st7" d="M301.2,283.2c0,0-0.2,0.3-0.5,0.8s-0.8,1.3-1.5,2.3c-0.6,1-1.4,2.2-2.3,3.6c-0.4,0.7-0.9,1.4-1.4,2.2
+						c-0.5,0.8-0.9,1.6-1.4,2.5c-1,1.8-2.1,3.7-3.2,5.7c-0.6,1-1.1,2.1-1.6,3.2s-1.1,2.2-1.7,3.3c-0.6,1.1-1.2,2.3-1.7,3.4
+						c-0.6,1.2-1.1,2.4-1.6,3.6s-1.1,2.4-1.6,3.7c-0.5,1.2-1.1,2.4-1.6,3.7c-1,2.5-1.9,5-2.9,7.5c-0.5,1.2-0.9,2.5-1.3,3.7
+						s-0.8,2.5-1.2,3.7c-0.4,1.2-0.8,2.4-1.2,3.5c-0.4,1.2-0.6,2.3-1,3.4c-0.6,2.2-1.2,4.3-1.7,6.3c-0.3,1-0.5,1.9-0.7,2.8
+						s-0.4,1.8-0.6,2.6c-0.4,1.6-0.7,3-0.9,4.1c-0.3,1.2-0.5,2-0.6,2.7c-0.1,0.6-0.2,1-0.2,1L159,341.9c0,0,0.1-0.5,0.3-1.5
+						c0.1-1,0.5-2.3,0.8-4.1c0.4-1.8,0.9-3.9,1.4-6.3c0.3-1.2,0.6-2.5,0.9-3.9c0.3-1.4,0.6-2.8,1-4.3c0.8-3,1.7-6.2,2.6-9.6
+						c0.5-1.7,0.9-3.5,1.5-5.2c0.6-1.8,1.2-3.6,1.8-5.4s1.2-3.7,1.8-5.6s1.2-3.8,2-5.7c1.5-3.8,2.9-7.6,4.4-11.4
+						c0.7-1.9,1.6-3.8,2.4-5.7c0.8-1.9,1.7-3.7,2.5-5.6c0.8-1.8,1.6-3.7,2.5-5.5s1.8-3.5,2.6-5.2c0.9-1.7,1.7-3.4,2.5-5.1
+						c0.8-1.6,1.6-3.3,2.5-4.8c1.7-3.1,3.4-6,4.9-8.7c0.8-1.3,1.5-2.6,2.2-3.8s1.5-2.3,2.1-3.4c1.3-2.1,2.5-4,3.5-5.5
+						s1.7-2.7,2.2-3.5s0.8-1.2,0.8-1.2L301.2,283.2z"/>
+				</g>
+				<g>
+					<line class="st6" x1="228" y1="217.5" x2="287" y2="260.9"/>
+					<line class="st6" x1="228" y1="217.5" x2="287" y2="260.9"/>
+					<path class="st7" d="M370.2,217.7c0,0-0.3,0.2-0.8,0.5s-1.4,0.8-2.4,1.4c-2,1.3-4.8,3.1-8.2,5.3c-6.6,4.7-15.3,11.1-23.3,18.4
+						c-1,0.9-2,1.8-3,2.8c-1,0.9-1.9,1.9-2.9,2.8c-1,0.9-1.9,1.8-2.8,2.7c-0.9,1-1.8,1.9-2.6,2.8c-0.9,0.9-1.7,1.8-2.6,2.7
+						c-0.8,0.9-1.7,1.7-2.4,2.6c-1.5,1.8-2.9,3.4-4.2,5c-0.7,0.8-1.3,1.5-1.9,2.2s-1.1,1.4-1.6,2.1c-1,1.3-1.9,2.4-2.6,3.4
+						c-0.7,0.9-1.3,1.7-1.7,2.2c-0.4,0.5-0.6,0.8-0.6,0.8l-90.1-66.2c0,0,0.3-0.4,0.9-1.2c0.6-0.8,1.4-1.9,2.5-3.3
+						c1.1-1.4,2.4-3.1,4-5.1c0.8-1,1.6-2,2.4-3.1c0.9-1.1,1.9-2.2,2.8-3.4c2-2.3,4.2-4.9,6.5-7.5c1.1-1.4,2.4-2.6,3.7-4
+						c1.3-1.3,2.6-2.7,3.9-4.1c1.3-1.4,2.7-2.8,4-4.2c1.4-1.4,2.8-2.8,4.3-4.2s2.9-2.8,4.4-4.2c1.5-1.4,2.9-2.9,4.5-4.2
+						c12.1-11.1,25.3-20.9,35.3-27.9c5.2-3.4,9.4-6.1,12.5-8.1c1.5-1,2.8-1.6,3.6-2.1c0.8-0.5,1.3-0.7,1.3-0.7L370.2,217.7z"/>
+				</g>
+				<g>
+					<line class="st6" x1="332.4" y1="126.9" x2="367" y2="191.4"/>
+					<line class="st6" x1="332.4" y1="126.9" x2="367" y2="191.4"/>
+					<path class="st7" d="M460.6,188.4c0,0-1.3,0.1-3.7,0.3c-2.3,0.2-5.7,0.8-9.7,1.3c-2,0.2-4.1,0.7-6.4,1.1
+						c-1.1,0.2-2.3,0.4-3.5,0.7c-1.2,0.2-2.4,0.4-3.6,0.7c-2.5,0.6-5,1.2-7.6,1.8c-1.3,0.3-2.6,0.7-3.9,1.1
+						c-1.3,0.4-2.6,0.8-3.9,1.1c-1.3,0.4-2.6,0.7-3.9,1.1c-1.3,0.4-2.5,0.9-3.8,1.3c-1.3,0.4-2.5,0.9-3.7,1.3
+						c-1.2,0.4-2.5,0.8-3.6,1.3c-2.3,0.9-4.6,1.9-6.8,2.7c-0.5,0.2-1.1,0.4-1.6,0.6c-0.5,0.2-1,0.5-1.5,0.7c-1,0.5-1.9,0.9-2.9,1.3
+						c-1.8,0.8-3.5,1.6-5,2.3c-1.5,0.8-2.7,1.4-3.8,2c-2.1,1.1-3.3,1.7-3.3,1.7l-52.9-98.5c0,0,1.8-0.9,5-2.6c1.6-0.8,3.5-1.8,5.7-3
+						c2.3-1.1,4.8-2.2,7.6-3.5c1.4-0.6,2.9-1.3,4.4-2c0.8-0.3,1.5-0.7,2.3-1s1.6-0.7,2.4-1c3.3-1.3,6.7-2.7,10.3-4.1
+						c1.8-0.7,3.6-1.4,5.5-2c1.9-0.7,3.8-1.3,5.7-2c1.9-0.7,3.8-1.3,5.8-2c2-0.6,3.9-1.2,5.9-1.7c2-0.6,3.9-1.2,5.9-1.7
+						c2-0.6,3.9-1.2,5.9-1.6c3.9-0.9,7.8-1.9,11.5-2.8c1.9-0.5,3.7-0.8,5.5-1.1c1.8-0.3,3.6-0.7,5.3-1c3.5-0.6,6.7-1.3,9.8-1.7
+						c6.1-0.8,11.2-1.6,14.7-1.9c3.6-0.3,5.6-0.5,5.6-0.5L460.6,188.4z"/>
+				</g>
+				<g>
+					<line class="st6" x1="465.8" y1="90.2" x2="469.1" y2="163.4"/>
+					<line class="st6" x1="465.8" y1="90.2" x2="469.1" y2="163.4"/>
+					<path class="st7" d="M554.9,201c0,0-0.3-0.1-0.9-0.4c-0.6-0.2-1.4-0.6-2.6-0.9c-2.2-0.7-5.4-1.8-9.3-3
+						c-1.9-0.5-4.1-1.1-6.3-1.7c-1.1-0.3-2.3-0.6-3.4-1c-1.2-0.3-2.4-0.5-3.6-0.8c-2.5-0.5-5-1.1-7.6-1.7c-2.6-0.4-5.3-0.9-7.9-1.3
+						c-10.7-1.6-21.5-2.5-29.6-2.5c-2,0-3.9-0.1-5.5-0.1s-3.1,0.1-4.3,0.1c-2.4,0.1-3.7,0.1-3.7,0.1l-5-111.7c0,0,2-0.1,5.6-0.2
+						c1.8,0,4-0.2,6.5-0.2s5.3,0.1,8.4,0.1c12.3,0,28.6,1.4,44.8,3.8c4,0.7,8.1,1.4,12.1,2.1c4,0.8,7.8,1.7,11.6,2.5
+						c1.9,0.4,3.7,0.8,5.5,1.3s3.5,1,5.2,1.4c3.4,0.9,6.6,1.8,9.6,2.6c5.9,1.9,10.7,3.5,14.1,4.6c1.7,0.5,3,1.1,3.9,1.4
+						s1.4,0.5,1.4,0.5L554.9,201z"/>
+				</g>
+				<g>
+					<line class="st6" x1="601.9" y1="114.6" x2="573.4" y2="182"/>
+					<line class="st6" x1="601.9" y1="114.6" x2="573.4" y2="182"/>
+					<path class="st7" d="M634.4,253.1c0,0-0.9-1-2.6-2.7c-0.8-0.9-1.9-1.8-3.1-3c-1.2-1.1-2.5-2.4-4-3.8c-1.4-1.4-3.2-2.8-4.9-4.3
+						c-0.9-0.8-1.8-1.5-2.7-2.3c-0.5-0.4-0.9-0.8-1.4-1.2s-1-0.8-1.5-1.2c-2-1.6-4.1-3.2-6.2-4.8c-2.1-1.6-4.4-3.1-6.6-4.7
+						c-8.9-6.1-18.2-11.6-25.5-15c-1.8-0.9-3.4-1.8-4.9-2.5s-2.8-1.2-3.9-1.7c-2.2-1-3.4-1.5-3.4-1.5l43.6-102.9
+						c0,0,1.9,0.8,5.2,2.3c1.6,0.7,3.6,1.6,5.9,2.6c2.3,1,4.8,2.4,7.5,3.7c11.1,5.4,25.3,13.6,38.8,22.9c3.3,2.4,6.7,4.7,10,7.1
+						c3.2,2.5,6.3,4.9,9.4,7.3c0.8,0.6,1.5,1.2,2.2,1.8s1.4,1.2,2.1,1.8c1.4,1.2,2.8,2.4,4.1,3.5c2.7,2.3,5.2,4.4,7.4,6.6
+						c2.2,2.1,4.3,4,6.1,5.7s3.4,3.2,4.6,4.5c2.5,2.6,3.9,4,3.9,4L634.4,253.1z"/>
+				</g>
+				<g>
+					<line class="st6" x1="714.1" y1="195.4" x2="659.3" y2="244"/>
+					<line class="st6" x1="714.1" y1="195.4" x2="659.3" y2="244"/>
+					<path class="st7" d="M683.8,334.3c0,0-0.4-1.3-1.2-3.5c-0.4-1.1-0.9-2.5-1.4-4c-0.6-1.5-1.3-3.2-2.1-5.1
+						c-0.4-0.9-0.8-1.9-1.2-2.9c-0.2-0.5-0.4-1-0.6-1.5c-0.2-0.5-0.5-1-0.7-1.6c-1-2.1-2-4.3-3-6.6c-0.5-1.2-1.1-2.3-1.7-3.4
+						c-0.6-1.2-1.2-2.3-1.8-3.5s-1.2-2.4-1.8-3.6c-0.7-1.2-1.4-2.3-2.1-3.5c-0.7-1.2-1.4-2.3-2-3.5l-1-1.7c-0.4-0.6-0.7-1.1-1.1-1.7
+						c-1.4-2.2-2.9-4.4-4.2-6.5c-1.4-2.1-2.9-4-4.2-5.9c-0.7-0.9-1.3-1.9-2-2.7c-0.6-0.9-1.3-1.7-2-2.5c-1.3-1.6-2.4-3-3.4-4.3
+						c-0.5-0.6-1-1.3-1.4-1.8c-0.5-0.5-0.9-1-1.3-1.5c-1.6-1.8-2.5-2.8-2.5-2.8l83.8-74c0,0,1.3,1.5,3.7,4.2c0.6,0.7,1.2,1.4,2,2.2
+						c0.7,0.8,1.4,1.7,2.2,2.7c1.6,2,3.3,4.2,5.2,6.6c0.9,1.2,2,2.4,3,3.8c1,1.3,2,2.7,3,4.2c2,2.9,4.3,5.8,6.4,9
+						c2.1,3.2,4.3,6.5,6.5,9.9c0.5,0.8,1.1,1.7,1.6,2.6c0.5,0.9,1,1.8,1.5,2.6c1,1.8,2.1,3.5,3.1,5.3s2.1,3.5,3.1,5.3
+						s1.9,3.6,2.8,5.4c0.9,1.8,1.9,3.6,2.8,5.3c0.9,1.8,1.8,3.5,2.6,5.2c1.6,3.5,3.2,6.9,4.6,10.1c0.4,0.8,0.7,1.6,1.1,2.4
+						c0.3,0.8,0.6,1.6,1,2.3c0.6,1.5,1.2,3,1.8,4.4c1.1,2.9,2.2,5.5,3.1,7.8c0.8,2.4,1.6,4.4,2.2,6.1c1.2,3.4,1.8,5.3,1.8,5.3
+						L683.8,334.3z"/>
+				</g>
+				<g>
+					<line class="st6" x1="780.6" y1="316.8" x2="710.1" y2="336.8"/>
+					<line class="st6" x1="780.6" y1="316.8" x2="710.1" y2="336.8"/>
+					<path class="st7" d="M692.8,425.6c0,0,0.1-0.3,0.2-0.9c0.1-0.3,0.1-0.7,0.2-1.1c0.1-0.4,0.1-0.9,0.2-1.4c0.2-1,0.4-2.3,0.6-3.7
+						c0.1-0.7,0.1-1.4,0.2-2.1c0-0.4,0.1-0.7,0.1-1.1s0.1-0.8,0.1-1.1c0-0.7,0.1-1.4,0.1-2.2c0.1-0.6,0.1-1.9,0.1-3
+						c0-2.3,0.1-4.8,0.1-7.3c0.1-1.3,0-2.6-0.1-3.9c0-1.3-0.1-2.6-0.1-3.9s-0.1-2.7-0.1-4s-0.2-2.7-0.3-4
+						c-0.6-10.8-2.7-21.4-4.2-29.3c-0.9-3.9-1.7-7.2-2.3-9.5c-0.7-2.3-1.1-3.5-1.1-3.5L794,313c0,0,0.6,2,1.6,5.4
+						c0.8,3.5,2,8.5,3.5,14.5c2.5,12.1,5.4,28.3,6.4,44.6c0.2,2,0.4,4.1,0.5,6.1s0.1,4.1,0.2,6.1c0.1,2,0.1,4,0.2,6
+						c0.1,2,0.1,3.9,0.1,5.8c-0.1,3.8-0.1,7.5-0.2,11.1c0,1.8,0,3.3-0.2,5.5c-0.1,2-0.3,3.9-0.4,5.8c-0.1,1-0.2,1.8-0.2,2.6
+						c-0.1,0.8-0.2,1.6-0.3,2.4c-0.2,1.6-0.4,3.1-0.5,4.5c-0.4,2.7-0.7,5-1,6.9c-0.1,0.9-0.3,1.8-0.4,2.5c-0.1,0.7-0.2,1.3-0.3,1.8
+						c-0.2,1-0.3,1.5-0.3,1.5L692.8,425.6z"/>
+				</g>
+				<g>
+					<line class="st6" x1="786" y1="457.2" x2="714.7" y2="440.4"/>
+					<line class="st6" x1="786" y1="457.2" x2="714.7" y2="440.4"/>
+					<path class="st7" d="M657.2,524c0,0,0.7-1.4,1.9-3.7c1.2-2.4,2.8-5.8,4.8-9.9c3.8-8.3,8.7-19.5,13-30.8
+						c4.4-11.3,8.1-22.7,10.5-31c1.1-4.1,2.1-7.6,2.7-10c0.3-1.2,0.5-2.1,0.7-2.8c0.2-0.6,0.2-1,0.2-1l108.9,25.5
+						c0,0-0.1,0.5-0.3,1.4s-0.6,2.2-1,3.9c-0.8,3.4-2.1,8.2-3.7,13.8c-3.2,11.3-8,25.8-13.4,39.8c-5.4,14.1-11.3,27.8-16.1,38
+						c-2.4,5.1-4.4,9.3-5.9,12.3s-2.3,4.6-2.3,4.6L657.2,524z"/>
+				</g>
+				<g>
+					<line class="st6" x1="738.3" y1="579.7" x2="673.8" y2="545"/>
+					<line class="st6" x1="738.3" y1="579.7" x2="673.8" y2="545"/>
+					<path class="st7" d="M607.2,594.4c0,0,0.2-0.2,0.5-0.4c0.1,0,0.1,0,0.2-0.1c0.1-0.1,0.2-0.2,0.3-0.3c0.2-0.2,0.5-0.4,0.7-0.5
+						c0.1-0.1,0.3-0.2,0.4-0.3c0.2-0.1,0.4-0.3,0.6-0.5c0.4-0.3,0.8-0.7,1.3-1.1c0.4-0.3,1-0.9,1.5-1.4c0.6-0.5,1.1-1.1,1.7-1.6
+						c0.6-0.7,1.3-1.4,2-2.1c0.3-0.3,0.7-0.7,1-1.1c0.3-0.3,0.7-0.8,1.1-1.2c0.7-0.8,1.5-1.7,2.2-2.5c0.8-0.8,1.5-1.9,2.3-2.8
+						c1.6-1.9,3.2-4,4.8-6.1c6.4-8.5,12.6-18.5,17.1-26c2.2-3.9,4.1-7,5.3-9.4c1.3-2.3,2-3.6,2-3.6l98.5,52.8c0,0-0.9,1.7-2.5,4.6
+						c-1.6,2.9-4,7.1-6.8,12.1c-5.9,10-14,23.2-24,36.4c-2.5,3.3-5,6.6-7.7,9.9c-1.4,1.6-2.6,3.2-4,4.8s-2.8,3.2-4.2,4.7
+						c-0.7,0.8-1.3,1.5-2.1,2.3c-0.7,0.8-1.5,1.5-2.2,2.3c-1.5,1.5-2.9,3-4.3,4.4c-1.5,1.4-3,2.9-4.5,4.2c-1.5,1.4-2.8,2.6-4.4,3.9
+						c-1.5,1.3-3,2.5-4.3,3.6c-0.7,0.6-1.3,1.1-2.1,1.7c-0.7,0.5-1.5,1.1-2.2,1.6c-1.4,1-2.7,2-4,2.9c-0.6,0.4-1.2,0.9-1.8,1.2
+						c-0.6,0.4-1.3,0.8-1.8,1.2c-4.7,2.9-7.5,4.5-7.5,4.5L607.2,594.4z"/>
+				</g>
+			</g>
+		</g>
+	</g>
+</g>
+</svg>
diff --git a/console_toolkit/source/exercises/img/light_bulb.pdf b/console_toolkit/source/exercises/img/light_bulb.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8a28a0373b2424d33e0c79ab4f76316e7ab3a518
Binary files /dev/null and b/console_toolkit/source/exercises/img/light_bulb.pdf differ
diff --git a/console_toolkit/source/exercises/img/regex_golf.png b/console_toolkit/source/exercises/img/regex_golf.png
new file mode 100644
index 0000000000000000000000000000000000000000..10bb8ecc3fc76f92747e4f940c8c19bf0d3f1651
Binary files /dev/null and b/console_toolkit/source/exercises/img/regex_golf.png differ
diff --git a/console_toolkit/source/slides/Makefile b/console_toolkit/source/slides/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0b08d6330ce69532de4c90dbdeae8adca89a6cff
--- /dev/null
+++ b/console_toolkit/source/slides/Makefile
@@ -0,0 +1,25 @@
+TEX=latexmk
+TEXOPTS=-output-directory=build \
+		-pdf \
+		-latexoption=-interaction=nonstopmode \
+		-latexoption=-file-line-error
+
+# set PREVIEW=1 to enable preview
+# example usage: make PREVIEW=1 target
+ifdef PREVIEW
+PREVIEWOPTS=-pvc
+endif
+
+default: pres
+
+# create build directory if it doesnt exist
+builddir:
+	@[ -d build ] || mkdir build
+
+pres: pres.tex builddir
+	@$(TEX) $(TEXOPTS) $(PREVIEWOPTS) $<
+	mv build/pres.pdf .
+
+clean:
+	@rm -rf build/*
+
diff --git a/console_toolkit/source/slides/img/GullBraceLeft.svg b/console_toolkit/source/slides/img/GullBraceLeft.svg
new file mode 100644
index 0000000000000000000000000000000000000000..36bee5293df133b06e78e4e27042bb7184b5f238
--- /dev/null
+++ b/console_toolkit/source/slides/img/GullBraceLeft.svg
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<svg:svg
+   xmlns:ns2="http://ns.adobe.com/Extensibility/1.0/"
+   xmlns:ns1="http://ns.adobe.com/Flows/1.0/"
+   xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"
+   xmlns:xap="http://ns.adobe.com/xap/1.0/"
+   xmlns:ns0="http://ns.adobe.com/SaveForWeb/1.0/"
+   xmlns:ns="http://ns.adobe.com/Variables/1.0/"
+   xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
+   xmlns:x="adobe:ns:meta/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   i:viewOrigin="247.6001 506.4004"
+   i:rulerOrigin="-8 24.8896"
+   i:pageBounds="8 817 603.2754 -24.8896"
+   i:viewBoxInterpretation="asCropBox"
+   width="46.667"
+   height="167.666"
+   viewBox="-0.6 -0.6 46.667 167.666"
+   enable-background="new -0.6 -0.6 46.667 167.666"
+   xml:space="preserve"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45"
+   sodipodi:docname="GullBrace.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="G:\Documents and Settings\Jesse\Desktop"
+   sodipodi:modified="true"><svg:defs
+   id="defs18" /><sodipodi:namedview
+   inkscape:window-height="998"
+   inkscape:window-width="1280"
+   inkscape:pageshadow="2"
+   inkscape:pageopacity="0.0"
+   guidetolerance="10.0"
+   gridtolerance="10.0"
+   objecttolerance="10.0"
+   borderopacity="1.0"
+   bordercolor="#666666"
+   pagecolor="#ffffff"
+   id="base"
+   inkscape:zoom="2.2485179"
+   inkscape:cx="23.3335"
+   inkscape:cy="88.280374"
+   inkscape:window-x="1276"
+   inkscape:window-y="-4"
+   inkscape:current-layer="svg2" />
+	<svg:metadata
+   id="metadata4">
+		<ns:variableSets>
+			<ns:variableSet
+   varSetName="binding1"
+   locked="none">
+				<ns:variables />
+				<ns:sampleDataSets />
+			</ns:variableSet>
+		</ns:variableSets>
+		<ns0:sfw>
+			<ns0:slices />
+			<ns0:sliceSourceBounds
+   x="210"
+   y="54.523"
+   width="119.998"
+   height="475.477"
+   bottomLeftOrigin="true" />
+		</ns0:sfw>
+<xpacket /><x:xmpmeta
+   x:xmptk="XMP toolkit 3.0-29, framework 1.6">
+
+<svg:metadata
+   id="metadata20"><rdf:RDF>
+
+ <rdf:Description
+   rdf:about="">
+ </rdf:Description>
+
+ <rdf:Description
+   rdf:about="">
+ </rdf:Description>
+
+ <rdf:Description
+   rdf:about="">
+  <xap:CreateDate>2006-10-15T04:46:54Z</xap:CreateDate>
+  <xap:ModifyDate>2006-10-15T04:46:54Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li
+   rdf:parseType="Resource">
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>68</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAABEAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYql+sXurWkSy6fpv6T+16sKTJDLsPh4erxjap68nWnvirz+P/AJyH8j2nmAeXvNFvqHlL
+VzTjFrEKxwty2DJcQvPEYyQQJCwXbrir06OSOWNZI2DxuAyOpBVlIqCCOoOKrsVdirsVdirsVdir
+sVeN/wDOVfkmx1/8q77VTEv6U8vlby0noOfpcgk8fLrxMbcqeKjFUo/5w6853utfl7eaJeytNL5e
+uVitnYkkWs6l4kqf5HWQDwWg7Yq97xV2KuxV2KuxV2KuxVhX51/+Sj83/wDbKuv+TRxV4V/zgx/0
+23/br/7HMVfVWKuxV2KuxV2KuxV2KsK/Ov8A8lH5v/7ZV1/yaOKvCv8AnBj/AKbb/t1/9jmKvqrF
+XYq7FXYq7FXYq7FWGfnQjv8AlJ5vCAsRpN2xA8FhYk/QBirwf/nBl0D+dYyRzYaYyr3IX62Cfo5D
+FX1XirsVdirsVdirsVdiqC1zSbbWdF1DSLr/AHl1G2mtJ6UJ9OeMxt19mxV8hfklqF3+Sv5uaj5a
+88J+jrHVovqyalJVbZmiflb3CyHYxOCyk/slvipRqKvseGaGeJJoZFlhkUNHIhDKykVBUjYg4qvx
+V2KuxV2KuxV2KrZpYoYnmlcRxRqXkdjRVVRUkk9gMVfJ+o/mF5q/P/zzL5H8vLbaZ5NhDzXV5cW0
+VxcG2jYI09ZVf03dnHprHxYV3brir6D/AC5/Kzyt+X+nGx0E3bLIAJpLq5ll5kb8vSqIEPukYxVl
++KuxV2KuxV2KuxViP5v3ctp+Vfm6eI0kXSL1VYGhBeBlqCO4rXFXz5/zg3aI195xuzTnDFYRLtvS
+Vrhjv/zyGKvrHFXYq7FXYq7FXYq7FWFfnX/5KPzf/wBsq6/5NHFXhX/ODH/Tbf8Abr/7HMVfVWKu
+xV2KuxV2KuxV2KsK/Ov/AMlH5v8A+2Vdf8mjirwr/nBj/ptv+3X/ANjmKvqrFXYq7FXYq7FXYq7F
+Xnn/ADkFqtvpn5N+aZp2AE1mbSMHqXuWWFQPH7dcVeT/APOD+kXMOheatXZSLe9ubW1ibsWtY5He
+n0XS4q+m8VdirsVdirsVdiqXa1q1zp0KvbaXd6rK9QtvZ+gGqP5muJYI1r7tirxL8xPy6/OH83by
+10/WY7Xyb5OtJRN9UM63t7NJQqJJBAfRJVSeK86LU7tir2PyX5O0Pyd5as/L2iRGKwslIUseUjux
+5PJI3dnYkn7hQUGKp3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/
+AP/Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description
+   rdf:about="">
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+<cc:Work
+   rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+     rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></svg:metadata></x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <xpacket />
+			</svg:metadata>
+		<svg:g
+   id="image"
+   i:layer="yes"
+   i:dimmedPercent="3"
+   i:rgbTrio="#4F008000FFFF"
+   transform="matrix(-1,0,0,1,44.655574,0.8894748)">
+			<svg:switch
+   i:objectNS="http://ns.adobe.com/Flows/1.0/"
+   i:objectType="pointText"
+   display="none"
+   id="switch7"
+   style="display:none">
+				<svg:foreignObject
+   requiredExtensions="http://ns.adobe.com/Flows/1.0/"
+   x="0"
+   y="0"
+   width="1"
+   height="1"
+   display="inline"
+   overflow="visible"
+   id="foreignObject9">
+					<ns1:flowDef>
+						<ns1:region
+   textMatrix="1 0 0 1 0 0">
+							<ns1:path
+   d="M-37.6,148.4" />
+						</ns1:region>
+						<ns1:flow
+   font-family="'LetterGothicStd'"
+   font-size="200">
+							<ns1:p><ns1:span>}</ns1:span></ns1:p>
+							<ns1:p />
+						</ns1:flow>
+					</ns1:flowDef>
+					<ns2:targetRef
+   xlink:href="#XMLID_1_" />
+				</svg:foreignObject>
+				<svg:text
+   id="XMLID_1_"
+   transform="translate(-37.6001,148.4004)"
+   display="inline"
+   style="display:inline"><svg:tspan
+     x="0"
+     y="0"
+     font-size="200"
+     id="tspan12"
+     style="font-size:200px;font-family:LetterGothicStd">}</svg:tspan></svg:text>
+
+			</svg:switch>
+			<svg:g
+   id="raster"
+   i:knockout="Off">
+				<svg:path
+   i:knockout="Off"
+   d="M 19.8,25.8 C 19.8,11.2 15.6,2.2 0,0.4 L 0.4,0 C 23,0.4 29.2,7.2 29.2,29 L 29.2,59.2 C 29.2,72.6 30.6,79 45.2,82.6 L 45.2,83 C 30.8,86.6 29.2,93 29.2,106.2 L 29.2,138.4 C 29.2,159.4 21.4,165.4 0.4,166 L 0,165.601 C 16,163.201 19.8,155.201 19.8,140 L 19.8,107.8 C 19.8,94.2 21.6,86.4 36.6,83 L 36.6,82.6 C 21.4,79 19.8,70.6 19.8,57 L 19.8,25.8 z "
+   id="path15" />
+			</svg:g>
+		</svg:g>
+	</svg:svg>
\ No newline at end of file
diff --git a/console_toolkit/source/slides/img/borg_logo.png b/console_toolkit/source/slides/img/borg_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd34398154b15d69666140cc5bd25f4142784196
Binary files /dev/null and b/console_toolkit/source/slides/img/borg_logo.png differ
diff --git a/console_toolkit/source/slides/img/cl.png b/console_toolkit/source/slides/img/cl.png
new file mode 100644
index 0000000000000000000000000000000000000000..e96122c3da92bc985061e650bad9be082bb6934f
Binary files /dev/null and b/console_toolkit/source/slides/img/cl.png differ
diff --git a/console_toolkit/source/slides/img/consoles.png b/console_toolkit/source/slides/img/consoles.png
new file mode 100644
index 0000000000000000000000000000000000000000..f95972fbea4bf3da76fba6a7b0173bcf3f004a90
Binary files /dev/null and b/console_toolkit/source/slides/img/consoles.png differ
diff --git a/console_toolkit/source/slides/img/dirtree.png b/console_toolkit/source/slides/img/dirtree.png
new file mode 100644
index 0000000000000000000000000000000000000000..227dfc3ee5d51003ffa32ad90517fd8f5def1d15
Binary files /dev/null and b/console_toolkit/source/slides/img/dirtree.png differ
diff --git a/console_toolkit/source/slides/img/fs.png b/console_toolkit/source/slides/img/fs.png
new file mode 100644
index 0000000000000000000000000000000000000000..f621d635ab566d46d4ec4e998c3c9cc03153dce1
Binary files /dev/null and b/console_toolkit/source/slides/img/fs.png differ
diff --git a/console_toolkit/source/slides/img/fsf.png b/console_toolkit/source/slides/img/fsf.png
new file mode 100644
index 0000000000000000000000000000000000000000..c99c00175520c7304f769b6c819ee9330e673cc2
Binary files /dev/null and b/console_toolkit/source/slides/img/fsf.png differ
diff --git a/console_toolkit/source/slides/img/git_branches.png b/console_toolkit/source/slides/img/git_branches.png
new file mode 100644
index 0000000000000000000000000000000000000000..0298d1f4950ca7ba92d239e5ffa39073c57d34dd
Binary files /dev/null and b/console_toolkit/source/slides/img/git_branches.png differ
diff --git a/console_toolkit/source/slides/img/git_logo.png b/console_toolkit/source/slides/img/git_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..53e1d53355bfcc9ddf9ef1f8d5bd4d57ec6156ff
Binary files /dev/null and b/console_toolkit/source/slides/img/git_logo.png differ
diff --git a/console_toolkit/source/slides/img/matrix.png b/console_toolkit/source/slides/img/matrix.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb3e1fc322189568d0fba5d1d4898901c50525b4
Binary files /dev/null and b/console_toolkit/source/slides/img/matrix.png differ
diff --git a/console_toolkit/source/slides/img/package-icon.pdf b/console_toolkit/source/slides/img/package-icon.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..43f33df8498a9355d09438d1faf858f14175e678
Binary files /dev/null and b/console_toolkit/source/slides/img/package-icon.pdf differ
diff --git a/console_toolkit/source/slides/img/package-icon.svg b/console_toolkit/source/slides/img/package-icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ca41d7757b6a5bb08ab16f28e3f3196ba70839ec
--- /dev/null
+++ b/console_toolkit/source/slides/img/package-icon.svg
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="emblem-package.svg"
+   sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/emblems"
+   inkscape:version="0.45"
+   sodipodi:version="0.32"
+   id="svg2963"
+   height="48px"
+   width="48px"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient3703">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop3705" />
+      <stop
+         id="stop3711"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3707" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3681">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop3683" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3685" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4532">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop4534" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop4536" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4559">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4561" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4563" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4770">
+      <stop
+         style="stop-color:#fcf3e6;stop-opacity:1;"
+         offset="0"
+         id="stop4772" />
+      <stop
+         style="stop-color:#fcf3e6;stop-opacity:0;"
+         offset="1"
+         id="stop4774" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4760">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop4762" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop4764" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4210">
+      <stop
+         id="stop4212"
+         offset="0.0000000"
+         style="stop-color:#eaba6f;stop-opacity:1.0000000;" />
+      <stop
+         id="stop4214"
+         offset="1.0000000"
+         style="stop-color:#b97a1b;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4210"
+       id="linearGradient3845"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.329903,0,-8.66441)"
+       x1="24.990499"
+       y1="49.424099"
+       x2="23.451571"
+       y2="14.38251" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4760"
+       id="linearGradient4766"
+       x1="28.0625"
+       y1="19"
+       x2="23.9375"
+       y2="19"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4770"
+       id="linearGradient4776"
+       x1="23.157747"
+       y1="7.1424866"
+       x2="30.007845"
+       y2="11.473516"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4559"
+       id="linearGradient4565"
+       x1="23.451576"
+       y1="30.554907"
+       x2="43.00663"
+       y2="45.934479"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4532"
+       id="linearGradient4538"
+       x1="35.1875"
+       y1="17.5"
+       x2="26.5625"
+       y2="17.4375"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3681"
+       id="radialGradient3718"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.990017,0,0,1.1,32.1147,-5.15)"
+       cx="5"
+       cy="41.5"
+       fx="5"
+       fy="41.5"
+       r="5" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3681"
+       id="radialGradient3720"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.99001,0,0,1.1,-14.88523,-86.15)"
+       cx="5"
+       cy="41.5"
+       fx="5"
+       fy="41.5"
+       r="5" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3703"
+       id="linearGradient3722"
+       gradientUnits="userSpaceOnUse"
+       x1="17.554192"
+       y1="46.000275"
+       x2="17.554192"
+       y2="34.999718"
+       gradientTransform="matrix(1.179548,0,0,1,-4.219389,0)" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="131"
+     inkscape:window-x="605"
+     inkscape:window-height="891"
+     inkscape:window-width="1051"
+     stroke="#c17d11"
+     fill="#e9b96e"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="6.8455345"
+     inkscape:cx="39.429646"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.16470588"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Package</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>package</rdf:li>
+            <rdf:li>archive</rdf:li>
+            <rdf:li>tarball</rdf:li>
+            <rdf:li>tar</rdf:li>
+            <rdf:li>bzip</rdf:li>
+            <rdf:li>gzip</rdf:li>
+            <rdf:li>zip</rdf:li>
+            <rdf:li>arj</rdf:li>
+            <rdf:li>tar</rdf:li>
+            <rdf:li>jar</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/SourceCode" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       id="g3713"
+       transform="matrix(1.000001,0,0,0.818184,-3.376531e-6,7.363559)"
+       style="opacity:0.4">
+      <rect
+         y="35"
+         x="37.064781"
+         height="11"
+         width="4.9352183"
+         id="rect1907"
+         style="opacity:1;fill:url(#radialGradient3718);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
+      <rect
+         transform="scale(-1,-1)"
+         y="-46"
+         x="-9.9351835"
+         height="11"
+         width="4.9351835"
+         id="rect3689"
+         style="opacity:1;fill:url(#radialGradient3720);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
+      <rect
+         y="35"
+         x="9.9351835"
+         height="11"
+         width="27.129599"
+         id="rect3693"
+         style="opacity:1;fill:url(#linearGradient3722);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
+    </g>
+    <path
+       style="color:#000000;fill:url(#linearGradient3845);fill-opacity:1;fill-rule:nonzero;stroke:#a0670c;stroke-width:1.00000083;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 11.76152,11.650434 L 23,10.962934 L 23.03125,11.650434 L 34.76662,11.650434 C 36.109591,11.650434 36.940755,12.155856 37.503255,13.544878 L 39.440755,19.375 L 39.440755,39.993876 C 39.440755,41.320398 38.359591,42.38832 37.01662,42.38832 L 9.8865199,42.38832 C 8.543549,42.38832 7.4623847,41.320398 7.4623847,39.993876 L 7.4623847,19.375 L 9.3373847,13.419878 C 9.7123847,12.343356 10.418549,11.650434 11.76152,11.650434 z "
+       id="rect3115"
+       sodipodi:nodetypes="ccccccccccccc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       sodipodi:nodetypes="ccccccccccc"
+       id="path3847"
+       d="M 12.492646,12.612816 L 34.058961,12.612816 C 35.31794,12.612816 36.097121,13.086589 36.624441,14.388632 L 38.440766,19.853678 L 38.440766,39.55642 C 38.440766,40.799877 37.80222,41.425927 36.543242,41.425927 L 10.234912,41.425927 C 8.9759334,41.425927 8.4623872,40.737377 8.4623872,39.49392 L 8.4623872,19.853678 L 10.220121,14.27146 C 10.571668,13.262348 11.233667,12.612816 12.492646,12.612816 z "
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4565);stroke-width:1.00000095;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.50549451" />
+    <path
+       style="opacity:0.50549454;color:#000000;fill:#000000;fill-opacity:0.75568181;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 8.375,19.875 L 23.0625,20.25 L 23.024674,15.562832 C 23.024674,15.562832 29.583743,15.406064 29.583743,15.406064 C 29.583743,15.406064 23.018096,15.187889 23.018096,15.187889 L 23,13.125 L 22.710804,13.093243 L 22.625,19 L 8.375,19.875 z "
+       id="path4740"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       style="opacity:1;color:#000000;fill:#f5ddb8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 8.5,19.8125 L 22.625,19.03125 L 22.75,12.125 L 22.28125,18.53125 L 9.3125,19.4375 L 8.5,19.8125 z "
+       id="path4742"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="opacity:1;color:#000000;fill:#dcbd8e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 22.3125,18.5625 L 8,19.6875 L 9.875,13.4375 C 10.374807,12.447628 11.271594,12.053224 12.4375,12.0625 L 22.78125,11.4375 L 22.3125,18.5625 z "
+       id="path4744"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="opacity:0.42857143;color:#000000;fill:url(#linearGradient4538);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 23,13.125 L 23,19.0625 L 37.6875,19.125 L 35.464619,13.195313 L 23,13.125 z "
+       id="path4746"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="opacity:1;color:#000000;fill:#c68b31;fill-opacity:1;fill-rule:evenodd;stroke:#a0670c;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 39.3125,19.375 L 24.75,12.625 L 24.5,4.9375 L 36.07369,11.644276 C 36.504454,11.959366 36.976863,12.399526 37.25,12.9375 L 39.3125,19.375 z "
+       id="path4748"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="opacity:0.23076923;color:#000000;fill:url(#linearGradient4766);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 23,19 L 23,20 L 38,20 L 37.5625,19 L 23,19 z "
+       id="path4758"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:1;color:#000000;fill:url(#linearGradient4776);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 25.190679,12.246913 L 25.013902,5.8387581 L 35.001786,11.628195 L 25.500038,6.4132823 L 25.676815,11.937554 L 29.168155,14.103069 L 25.190679,12.246913 z "
+       id="path4768"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:0.10989009;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 23,19 L 22.9375,15.5625 L 29.8125,15.4375 L 30.1875,15.6875 L 23.1875,15.75 L 23,19 z "
+       id="path4528"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+  </g>
+</svg>
diff --git a/console_toolkit/source/slides/img/permissions_example.png b/console_toolkit/source/slides/img/permissions_example.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1361e026810050707ea7e8baf6fdfb7bf982ea3
Binary files /dev/null and b/console_toolkit/source/slides/img/permissions_example.png differ
diff --git a/console_toolkit/source/slides/img/permissions_example.xcf b/console_toolkit/source/slides/img/permissions_example.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..99a1c64640ad09a3ec00c4c4c885db1ddb812e86
Binary files /dev/null and b/console_toolkit/source/slides/img/permissions_example.xcf differ
diff --git a/console_toolkit/source/slides/img/permissions_overview.png b/console_toolkit/source/slides/img/permissions_overview.png
new file mode 100644
index 0000000000000000000000000000000000000000..af066f9dac5308138697f1cfd2a61918e0cdf607
Binary files /dev/null and b/console_toolkit/source/slides/img/permissions_overview.png differ
diff --git a/console_toolkit/source/slides/img/permissions_overview.xcf b/console_toolkit/source/slides/img/permissions_overview.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..62113c6c7219614da0d11a4de482cd1ae238c54b
Binary files /dev/null and b/console_toolkit/source/slides/img/permissions_overview.xcf differ
diff --git a/console_toolkit/source/slides/img/ranger.png b/console_toolkit/source/slides/img/ranger.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac178d0af7810370caa189b567eed680da807a6f
Binary files /dev/null and b/console_toolkit/source/slides/img/ranger.png differ
diff --git a/console_toolkit/source/slides/img/ranger1.png b/console_toolkit/source/slides/img/ranger1.png
new file mode 100644
index 0000000000000000000000000000000000000000..945d1f03a319058ad74f35cb6f26e12532ae4a36
Binary files /dev/null and b/console_toolkit/source/slides/img/ranger1.png differ
diff --git a/console_toolkit/source/slides/img/ranger_img_preview.png b/console_toolkit/source/slides/img/ranger_img_preview.png
new file mode 100644
index 0000000000000000000000000000000000000000..12a282efcbfe4dfe9b0fe987ecd8e21be4eb4305
Binary files /dev/null and b/console_toolkit/source/slides/img/ranger_img_preview.png differ
diff --git a/console_toolkit/source/slides/img/ssh.png b/console_toolkit/source/slides/img/ssh.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5a2ad68fcc114b34c5e8a90a96abc3262213e64
Binary files /dev/null and b/console_toolkit/source/slides/img/ssh.png differ
diff --git a/console_toolkit/source/slides/img/tux.png b/console_toolkit/source/slides/img/tux.png
new file mode 100644
index 0000000000000000000000000000000000000000..49eac9383a52605b404a6abaad89b1988d9810a6
Binary files /dev/null and b/console_toolkit/source/slides/img/tux.png differ
diff --git a/console_toolkit/source/slides/pres.tex b/console_toolkit/source/slides/pres.tex
new file mode 100644
index 0000000000000000000000000000000000000000..654cdb328b67b89e50be8b158664d598fbb017d7
--- /dev/null
+++ b/console_toolkit/source/slides/pres.tex
@@ -0,0 +1,1179 @@
+\input{template}
+
+\title{The Console Toolkit}
+\author{Nils Leuzinger}
+\institute{TheAlternative, SSC | ETHZ and UZH}
+\date{HS 2020}
+
+\begin{document}
+	\begin{frame}
+		\titlepage%
+	\end{frame}
+
+    \section{Introduction}
+
+    \begin{frame}[t,fragile]{Why the console? It's already current year!}
+        \begin{itemize}
+            \item People asked for it
+            \item Still an excellent interface for complex tasks
+            \item Many advanced tools only available on the command line
+            \item Can be much faster than GUI tools
+            \item Allows easy remote access to other computers
+            \item Skills portable to every Unix-like system
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Course outline}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \textbf{Part 1}
+            \begin{itemize}
+                \item Getting used to the console
+                \item Navigating the file system
+                \item Modifiying files
+                \item Working with text files
+                \item{Users \& permissions}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \textbf{Part 2}
+            \begin{itemize}
+                \item{Managing software}
+                \item{SSH}
+                \item{Git}
+                \item{Backups}
+                \item{Scripting}
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{What is the console}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Keyboard-only interface to your computer
+                \item Related terms: \emph{console}, \emph{terminal},
+                    \emph{shell}, \emph{bash}, \emph{command prompt},
+                    \emph{command line interface}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \includegraphics[width=\columnwidth]{img/matrix.png}
+        \end{columns}
+    \end{frame}
+
+    \section{Navigation}
+
+    \begin{frame}[t,fragile]{The 70s were interesting times, or so I'm told}
+        \textbf{Unix dogma: \emph{Everything is a file!}} \\
+        \begin{itemize}
+            \item Data files
+            \item Directories (or ``folders'')
+            \item Storage devices
+            \item Keyboards
+            \item Printers
+            \item Cameras
+            \item \emph{But not network sockets \ldots}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{File system}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \vspace{-0.6cm}
+            \begin{center}
+            \includegraphics[width=0.4\columnwidth]{img/fs.png}
+            {\tiny [1]}
+            \end{center}
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item File system organized as tree
+                \item Everything under \texttt{/}, the root directory
+                \item In the console, you will be at some point in the tree,
+                    the \emph{working directory}
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Working directory}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Where am I? \textrightarrow \: \texttt{pwd}
+                \item \underline{P}resent \underline{w}orking \underline{d}irectory
+                \item Also sometimes directly shown in the prompt
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ pwd
+/home/luke
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Listing files}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item What is in here? \textrightarrow \: \texttt{ls}
+                \item \emph{list}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ ls
+§\textcolor{dirblue}{Desktop}§
+§\textcolor{dirblue}{Documents}§
+§\textcolor{dirblue}{Downloads}§
+§\textcolor{dirblue}{Music}§
+§\textcolor{dirblue}{Pictures}§
+§\textcolor{dirblue}{Videos}§
+cat1.jpg
+cat2.jpg
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Commands \& arguments}
+        \vspace{0.5cm}
+        \texttt{\tikzmark{a}{l}s \tikzmark{b}{-}a
+            \tikzmark{c}{-}-human-readable \tikzmark{d}{/}home/luke/pictures}\\
+        \begin{tikzpicture}[remember picture,overlay]
+            \node[align=left,xshift=0.4cm,yshift=-1.0cm,rounded corners,
+            fill=red!20,draw=red!70!black] (b1)
+            {\footnotesize{command}};
+            \draw[red!70!black,->] (b1) edge ([yshift=-0.05cm,xshift=7.0pt]a.south);
+
+            \node[align=left,xshift=3.0cm,yshift=-2.3cm,rounded corners,
+            fill=green!20,draw=green!70!black] (b2)
+            {\footnotesize{single letter option}};
+            \draw[green!70!black,->] (b2) edge ([yshift=-0.05cm,xshift=9.5pt]b.south);
+
+            \node[align=left,xshift=3.7cm,yshift=-0.7cm,rounded corners,
+            fill=green!20,draw=green!70!black] (b3)
+            {\footnotesize{long option}};
+            \draw[green!70!black,->] (b3) edge ([yshift=-0.05cm,xshift=1.5cm]c.south);
+
+            \node[align=left,xshift=6.7cm,yshift=-0.7cm,rounded corners,
+            fill=orange!40,draw=orange!70!black] (b4)
+            {\footnotesize{arguments}};
+            \draw[orange!70!black,->] (b4) edge ([yshift=-0.05cm,xshift=1.7cm]d.south);
+        \end{tikzpicture}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Advanced listing}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{ls} has advanced options
+                \item \texttt{-a}: show hidden files
+                \item \texttt{-h}: print numbers in human readable format
+                \item \texttt{-l}: show the long output format.
+                \item \texttt{ls -lah} and \texttt{ls -l -a -h} are
+                    equivalent
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\tiny]
+[luke@arch-x270 ~]$ ls -lah
+total 52K
+drwx------ 8 luke luke 4.0K Sep  3 23:27 .
+drwxr-xr-x 4 root root 4.0K Sep  3 23:26 ..
+-rw-r--r-- 1 luke luke   21 Jun  4 10:54 .bash_logout
+-rw-r--r-- 1 luke luke   57 Jun  4 10:54 .bash_profile
+-rw-r--r-- 1 luke luke  141 Jun  4 10:54 .bashrc
+-rw-r--r-- 1 luke luke    0 Sep  3 23:27 cat1.jpg
+-rw-r--r-- 1 luke luke    0 Sep  3 23:27 cat2.jpg
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Desktop}§
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Documents}§
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Downloads}§
+-rw-r--r-- 1 luke luke   24 Sep  3 23:28 .hidden_file
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Music}§
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Pictures}§
+-rw-r--r-- 1 luke luke 3.7K Oct 23  2017 .screenrc
+drwxr-xr-x 2 luke luke 4.0K Sep  3 23:27 §\textcolor{dirblue}{Videos}§
+[luke@arch-x270 ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Getting help}
+        \begin{itemize}
+            \item Where can I find out what options are available?
+            \item Manual pages!
+            \item \texttt{man}
+            \item E.g.: \texttt{man ls}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{}
+        \begin{bashenv}[\tiny]
+LS(1)                                        User Commands                                       LS(1)
+
+NAME
+       ls - list directory contents
+
+SYNOPSIS
+       ls [OPTION]... [FILE]...
+
+DESCRIPTION
+       List  information  about the FILEs (the current directory by default).  Sort entries alphabeti-
+       cally if none of -cftuvSUX nor --sort is specified.
+
+       Mandatory arguments to long options are mandatory for short options too.
+
+       -a, --all
+              do not ignore entries starting with .
+
+       -A, --almost-all
+              do not list implied . and ..
+
+       --author
+              with -l, print the author of each file
+
+       -b, --escape
+              print C-style escapes for nongraphic characters
+        \end{bashenv}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{More on manual pages}
+        \begin{itemize}
+            \item{Search by typing \keys{/}}
+            \item{Quit by typing \keys{q}}
+            \item{Sometimes there are multiple manuals! \textrightarrow \: Choose the right section}
+            \begin{itemize}
+                \item{\texttt{man 1 printf} vs. \texttt{man 3 printf}}
+            \end{itemize}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Go somewhere else}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item I want to go to some other directory! \textrightarrow \: \texttt{cd}
+                \item \emph{Change directory}
+                \item Absolute path: Whole path from the root, like:
+                    \texttt{/home/luke/pictures/cat1.png}
+                \item Relative path: Path relative to the current working
+                    directory, like \texttt{pictures/cat1.png}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ cd
+[luke@host ~]$ pwd
+/home/luke
+[luke@host ~]$ cd /sys
+[luke@host sys]$ pwd
+/sys
+[luke@host sys]$ cd ~
+[luke@host ~]$ pwd
+/home/luke
+[luke@host ~]$ cd pictures/
+[luke@host pictures]$ pwd
+/home/luke/pictures
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Special places}
+        \begin{itemize}
+            \item{\makebox[1.3cm]{\:\texttt{\textasciitilde\hfill}}User's home directory}
+            \item{\makebox[1.3cm]{\:\texttt{. }\hfill}The current directory}
+            \item{\makebox[1.3cm]{\:\texttt{..}\hfill}The directory above in the tree}
+        \end{itemize}
+    \end{frame}
+
+    \section{Modifiying files}
+
+    \begin{frame}[t,fragile]{Copying files}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+                \begin{itemize}
+                    \item Copy command: \texttt{cp}
+                    \item Syntax: \texttt{cp source destination}
+                \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ cp diary diary_copy
+[luke@host ~]$ cat diary_copy
+Dear diary, today I downloaded
+cat pictures from the internet.
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Moving files}
+        \begin{columns}[T]
+            \column{0.47\textwidth}
+                \begin{itemize}
+                    \item Move command: \texttt{mv}
+                    \item Syntax: \texttt{mv source destination}
+                    \item Use \texttt{mv} to rename files
+                \end{itemize}
+            \column{0.53\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ mv diary secret_diary
+[luke@host ~]$ cat secret_diary
+Dear diary, today I downloaded
+cat pictures from the internet.
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Creating and deleting directories}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{mkdir} creates a new directory
+                \item \texttt{rmdir} removes a directory
+                \item \texttt{rmdir} only works for empty directories!
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ mkdir new_dir
+[luke@host ~]$ ls
+§\textcolor{dirblue}{new\_dir}§
+[luke@host ~]$ rmdir new_dir
+[luke@host ~]$ ls
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Deleting files}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{rm} removes files and directories
+                \item \texttt{rm -r} removes a directory and everything in it
+                    \emph{(recurisive)}
+                \item \texttt{rm} is \textcolor{red}{irreversible!}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ ls
+cat1.jpg
+cat2.jpg
+[luke@host ~]$ rm cat1.jpg
+[luke@host ~]$ ls
+cat2.jpg
+            \end{bashenv}
+        \end{columns}
+        \vspace{0.7cm}
+        \begin{WarningBox}
+            \texttt{rm} is a shotgun without safety! There is no trashcan.
+            You can delete your entire file system with \texttt{sudo rm -rf /},
+            or your entire home directory with \texttt{rm -rf \textasciitilde}\:!%
+        \end{WarningBox}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Hidden files}
+        \begin{itemize}
+            \item{Hidden files start with a dot}
+            \item{\texttt{.hidden\_file}}
+            \item{Show them using \texttt{ls -a}}
+        \end{itemize}
+    \end{frame}
+
+    \section{Text files}
+
+    \begin{frame}[t,fragile]{Showing text files}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Output a file's contents to the console with
+                    \texttt{cat}
+                \item Used to stand for \emph{concatenate}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ cat diary
+Dear diary, today I downloaded
+cat pictures from the internet.
+[luke@host ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Reading long files}
+        \begin{itemize}
+            \item What if the text doesn't fit on the terminal?
+            \item Use the \texttt{less} file viewer
+            \item Scroll up and down with \keys{\arrowkeyup}, \keys{\arrowkeydown}
+            \item Exit with \keys{q}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Editing files}
+        \begin{itemize}
+            \item Need a \emph{text editor}!
+            \item \emph{nano, vim, vis, emacs}
+            \item Simple, intuitive, no learning required? \textrightarrow\:\texttt{nano}
+            \item Powerful, efficient and extreme nerd cred? \textrightarrow\:\texttt{vim}
+            \item Obscure, eccentric and even more powerful? \textrightarrow\:\texttt{emacs}
+            \item Has some advantages to using a big GUI tool
+                \begin{itemize}
+                    \item Navigation and editing in the same interface
+                    \item Quick and efficient
+                    \item Very powerful tools available
+                    \item You can talk down on people using Notepad++
+                \end{itemize}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Nano}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Syntax: \texttt{nano [filename]}
+                \item Key bindings shown on the bottom
+                \item Save: \keys{\ctrl} + \keys{o}
+                \item Save: \keys{\ctrl} + \keys{x}
+                \item Navigate with arrow keys \keys{\arrowkeyleft}
+                    \keys{\arrowkeydown} \keys{\arrowkeyup}
+                    \keys{\arrowkeyright}
+                \item \texttt{\textasciicircum} stands for the \keys{\ctrl} key (universal)
+            \end{itemize}
+            \column{0.5\textwidth}
+        \begin{bashenv}[\scriptsize]
+[luke@host ~]$ nano diary.txt
+        \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{}
+        \begin{bashenv}[\scriptsize]
+~                                                                                       
+~                                  VIM - Vi IMproved                                    
+~                                                                                       
+~                                   version 8.1.333                                     
+~                               by Bram Moolenaar et al.                                
+~                     Vim is open source and freely distributable                       
+~                                                                                       
+~                            Become a registered Vim user!                              
+~                    type  :help register<Enter>   for information                      
+~                                                                                       
+~                    type  :q<Enter>               to exit                              
+~                    type  :help<Enter>  or  <F1>  for on-line help                     
+~                    type  :help version8<Enter>   for version info                     
+~                                                                                       
+~                            Running in Vi compatible mode                              
+~                    type  :set nocp<Enter>        for Vim defaults                     
+~                    type  :help cp-default<Enter> for info on this                     
+~                                                                                       
+~                                                                                       
+        \end{bashenv}
+    \end{frame}
+
+    \section{Users \& permissions}
+
+    \begin{frame}[t,fragile]{Users \& permissions}
+        \begin{itemize}
+            \item{Linux is a \emph{multi-user operating system}}
+            \item{There can be many user accounts}
+            \item{Different users can even use the computer at the same time!}
+            \item{You usually only use your personal user account}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Users}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \textbf{Personal user}
+            \begin{itemize}
+                \item{Home directory in \texttt{/home/userx}}
+                \item{Can only access files in home directory}
+                \item{Can only stop processes started by itself}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \textbf{Root user}
+            \begin{itemize}
+                \item{Also \emph{called the superuser}}
+                \item{''System administrator``}
+                \item{Can do anything on the system}
+                \item{Access to all files}
+                \item{Can kill any process}
+                \item{Home directory in \texttt{/root}}
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Unix file permissions}
+        \vspace{0.7cm}
+        \begin{center}
+            \includegraphics[width=1.0\textwidth]{img/permissions_overview.png}
+        \end{center}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Permissions}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \includegraphics[width=1.0\columnwidth]{img/permissions_example.png}
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{r}: Permission to read file
+                \item \texttt{w}: Permission to write to file
+                \item \texttt{x}: Permission to execute file
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Changing permissions}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+chmod {u,g,a}{+,-}{r,w,x} file
+chown OWNER:GROUP file
+            \end{bashenv}
+            \vspace{0.65cm}
+            \begin{bashenv}[\small]
+chmod +x program.sh
+chmod u-x program.sh
+chmod g+rw file.txt
+chown luke:luke file.txt
+            \end{bashenv}
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{chmod}: Change permissions
+                \item \texttt{chown}: Change owner, group
+                \vspace{0.8cm}
+                \item Allow everyone to execute
+                \item Remove execution permission for user
+                \item Allow group to read/write
+                \item Change ownership to user \texttt{luke}, group \texttt{luke}
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Octal permissions}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+chmod 744 program.sh
+            \end{bashenv}
+            \begin{itemize}
+                \item \texttt{4: read}
+                \item \texttt{2: write}
+                \item \texttt{1: execute}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Octal representation allows setting all permissions in one go
+                \item Desired permissions are added up
+                \item \texttt{7 = read + write + execute}
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \section{Meta}
+
+    \begin{frame}[t,fragile]{Tab completion}
+        \begin{itemize}
+            \item Hit \keys{\tab} to automatically complete a word you are typing
+                (Command, file, ...)
+            \item Hit \keys{\tab} twice to show all possible options
+            \item Extremely useful terminal feature! Use always!
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Command History}
+        \begin{itemize}
+            \item Scroll up in your command history by pressing the
+                \keys{\arrowkeyup} key
+            \item Press \keys{\ctrl} + \keys{r} to search the history
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Killing a running process}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+	    \begin{itemize}
+		    \item Every process has a unique ID on Linux
+		    \item View processes with \texttt{ps aux}
+            \item Kill a process with \texttt{kill id}
+		    \item If ID is unknown, use \texttt{pkill name}
+		    \item The \texttt{-9} flag works like a shotgun
+	    \end{itemize}
+            \column{0.5\textwidth}
+	    \begin{bashenv}[\small]
+[luke@host ~]$ ps -e
+PID TTY        TIME CMD
+1 ?        00:00:04 systemd
+2 ?        00:00:00 kthreadd
+[luke@host ~]$ kill 16740
+[luke@host ~]$ pkill -9 emacs
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \section{PATH}
+
+    \begin{frame}[t,fragile]{The PATH variable}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item How does the shell know where programs are?
+                \item The shell searches the \texttt{PATH} variable
+                \item \texttt{ls} \textrightarrow \: \texttt{/usr/bin/ls}
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ echo $PATH
+/usr/sbin:/usr/bin
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Adding your own paths}
+        \begin{itemize}
+            \item Let's say you want to add your script directory
+            \item Temporarily: \texttt{export PATH=\$PATH:\textasciitilde/scripts}
+            \item Permanently: Add the above to \texttt{\textasciitilde/.bashrc}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t, fragile]{Writing shell scripts}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item Scripts are just a sequence of commands
+			    \item Very easy automation!
+				    \begin{itemize}
+					    \item (for more, come to the Bash course)
+				    \end{itemize}
+		    \end{itemize}
+		    \column{0.5\textwidth}
+            File \texttt{~/scripts/music.sh}:
+		    \begin{bashenv}[\scriptsize]
+#!/usr/bin/env bash
+filename="$2.%(ext)s"
+echo "$1"
+youtube-dl -x "$1" -o "$filename"
+		    \end{bashenv}
+	    \end{columns}
+		    \vspace{0.5cm}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ cd scripts
+[luke@host ~]$ chmod +x music.sh
+[luke@host ~]$ ~/scripts/music.sh "https://www.youtube.com/watch?v=dQw4w9WgXcQ" music
+# or:
+[luke@host ~]$ ./music.sh "https://www.youtube.com/watch?v=dQw4w9WgXcQ" music
+		    \end{bashenv}
+    \end{frame}
+
+    \section{Piping and Redirection}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Complicated needs}
+	    How would you design an interface that can...
+	    \begin{itemize}
+		    \item ...delete files larger than 100MB?
+		    \item ...show the last 2 lines of a file?
+		    \item ...sort files by length?
+		    \item ...search calendar entries and create reminders?
+	    \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Complicated needs}
+	    Many possible answers:
+	    \begin{itemize}
+		    \item Big GUI that does everything
+		    \item A simple tool that users can extend themselves
+		    \item Domain specific language that users write queries with
+		    \item Many simple and combinable tools
+	    \end{itemize}
+	    Unix chooses the last two approaches
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Piping and redirection}
+	    \begin{itemize}
+		    \item Unix has small and orthogonal tools
+		    \item Piping and redirection are how to combine them
+	    \end{itemize}
+    \end{frame}
+
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Piping and redirection}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item Piping sends output from one command to another command
+			    \item Redirection writes to files (streams)
+		    \end{itemize}
+		    \column{0.5\textwidth}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ cat numbers | sort
+five
+four
+one
+three
+two
+zero
+		    \end{bashenv}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ cat numbers > same_numbers
+		    \end{bashenv}
+	    \end{columns}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Piping}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item Uses the pipe symbol: \texttt{|}
+			    \item Useful for sequential composition
+			    \item Only works in "one direction"
+			    \item Internally connects output of one process to output of other process
+		    \end{itemize}
+		    \column{0.5\textwidth}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ cat numbers | tail -n 2
+nine
+ten
+		    \end{bashenv}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ cat numbers | grep "..."
+one
+two
+six
+ten
+		    \end{bashenv}
+	    \end{columns}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Piping}
+
+	    List unique owners of files in current directory:
+	    \begin{itemize}
+		    \item List files in directory
+		    \item Omit first two lines
+		    \item Truncate whitespace
+		    \item Cut (delete) all columns except the third
+		    \item Sort alphabetically
+		    \item Only show unique entries
+	    \end{itemize}
+	    \vspace{0.1cm}
+	    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ ls -l | tail -n +2 | sed 's/\s\s*/ /g' | cut -d ' ' -f 3 | sort | uniq
+	    \end{bashenv}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Redirection}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item{\makebox[1.7cm]{\:\texttt{>  file\hfill}}} Write output to file
+			    \item{\makebox[1.7cm]{\:\texttt{>\hspace{0cm}> file\hfill}}} Append output to file
+			    \item{\makebox[1.7cm]{\:\texttt{<  file\hfill}}} Read input from file
+		    \end{itemize}
+		    \column{0.5\textwidth}
+		    \begin{bashenv}[\small]
+[luke@host ~]$ echo "Hello!" > hello.txt
+[luke@host ~]$ cat hello.txt
+Hello World!
+[luke@host ~]$ cat < hello.txt
+Hello World!
+		    \end{bashenv}
+	    \end{columns}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Redirection}
+	    Redirection is useful!
+	    \begin{itemize}
+		    \item Store final or intermediate results
+		    \item Append output to files
+	    \end{itemize}
+	    \vspace{0.3cm}
+	    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ ls -l | tail -n +2 | sed 's/\s\s*/ /g' > result
+[luke@host ~]$ cut -d ' ' -f 3 < result | sort | uniq
+	    \end{bashenv}
+    \end{frame}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Redirection}
+	    Redirection is useful! (cont.)
+	    \begin{itemize}
+		    \item Store final or intermediate results
+		    \item Append output to files
+	    \end{itemize}
+	    \vspace{0.3cm}
+	    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ ./logger_script >> log.txt
+
+[luke@host ~]$ echo "Logging done!" >> log.txt
+	    \end{bashenv}
+    \end{frame}
+
+    \section{Ranger}
+
+    \begin{frame}[t, fragile]
+	    \frametitle{Ranger}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item File manager on the console
+				    \begin{itemize}
+					    \item Usable over SSH
+				    \end{itemize}
+			    \item Can move files, change permissions, bulk rename...
+			    \item Bookmarks
+			    \item Keyshortcuts for frequent locations
+			    \item Plugins
+			    \item Preview functionality
+		    \end{itemize}
+		    \column{0.5\textwidth}
+		    \includegraphics[width=1.0\columnwidth]{img/ranger1.png}
+	    \end{columns}
+    \end{frame}
+
+	\begin{frame}[t, fragile]
+		\frametitle{Ranger image preview}
+		\begin{center}
+			\includegraphics[width=0.9\textwidth]{img/ranger_img_preview.png}
+		\end{center}
+	\end{frame}
+
+
+    \section{Managing software}
+
+    \begin{frame}[t,fragile]{How you get software on Linux}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Don't download installers from the internet!
+                \item Software is managed by the distribution and available
+                    through a central repository.
+                \item Software is \emph{packaged}
+                \item Similiar to Microsoft's or Apple's app stores
+            \end{itemize}
+            \column{0.5\textwidth}
+            \vspace{-1cm}
+            \begin{center}
+                \includegraphics[width=0.7\columnwidth]{img/package-icon.pdf}
+                {\tiny [2]}
+            \end{center}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Installing packages}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Depends on distribution!
+                \item Package Manager is most important feature of a
+                    Linux distribution
+            \end{itemize}
+            \column{0.5\textwidth}
+            Debian, Ubuntu, Mint:
+            \begin{bashenv}[\small]
+sudo apt install firefox
+            \end{bashenv}
+            OpenSUSE:
+            \begin{bashenv}[\small]
+sudo zypper install firefox
+            \end{bashenv}
+            RedHat, Fedora:
+            \begin{bashenv}[\small]
+sudo dnf install firefox
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Searching for packages}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            Debian, Ubuntu, Mint:
+            \begin{bashenv}[\small]
+apt search firefox
+            \end{bashenv}
+            OpenSUSE:
+            \begin{bashenv}[\small]
+zypper search firefox
+            \end{bashenv}
+            RedHat, Fedora:
+            \begin{bashenv}[\small]
+dnf search firefox
+            \end{bashenv}
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item The basic package search is usually quite limited
+                \item Consult the internet for finding the right programs!
+            \end{itemize}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Updating packages}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item All packages can be upgraded at once
+                \item Do this every other week!
+            \end{itemize}
+            \column{0.5\textwidth}
+            Debian, Ubuntu, Mint:
+            \begin{bashenv}[\small]
+sudo apt update
+sudo apt upgrade
+            \end{bashenv}
+            OpenSUSE:
+            \begin{bashenv}[\small]
+sudo zypper update
+            \end{bashenv}
+            RedHat, Fedora:
+            \begin{bashenv}[\small]
+sudo dnf update
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Building from source}
+            \begin{itemize}
+                \item Sometimes software is unavailable in the repositories
+                \item Can download sources and compile them manually
+                \item Careful! No automatic updates, malware, package manager
+                    conflicts, \ldots
+            \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Building from source}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item Download the sources
+                \item Follow the build instructions in the documentation
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+git clone https://github.com/i3/i3
+            \end{bashenv}
+            \begin{bashenv}[\small]
+autoreconf -fi
+            \end{bashenv}
+            \begin{bashenv}[\small]
+mkdir -p build && cd build
+            \end{bashenv}
+            \begin{bashenv}[\small]
+../configure
+            \end{bashenv}
+            \begin{bashenv}[\small]
+make
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \section{SSH}
+
+    \begin{frame}[t,fragile]{SSH}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \emph{Secure shell}
+                \item SSH allows to log in to another computer over the network
+                \item Server administration, running jobs on supercomputers,
+                    log in to your computer at home
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{center}
+                \includegraphics[width=0.6\columnwidth]{img/ssh.png}
+            \end{center}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Logging in to Euler (cluster)}
+        \begin{bashenv}[\tiny]
+[luke@host ~]$ ssh lutobler@euler.ethz.ch
+Last login: Tue Sep  4 00:06:01 2018 from vpn-global-125-dhcp.ethz.ch
+
+      ____________________   ___
+     /  ________   ___   /__/  /
+    /  _____/  /  /  /  ___   /
+   /_______/  /__/  /__/  /__/
+   Eidgenoessische Technische Hochschule Zuerich
+   Swiss Federal Institute of Technology Zurich
+   -------------------------------------------------------------------------
+                                        E U L E R  C L U S T E R
+
+
+                                                     https://scicomp.ethz.ch
+                                          http://tinyurl.com/cluster-support
+                                                  cluster-support@id.ethz.ch
+
+   =========================================================================
+        \end{bashenv}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Using SSH}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item \texttt{ssh alice@bob.ch}
+                \item Will ask for user password
+            \end{itemize}
+            \column{0.5\textwidth}
+            \begin{bashenv}[\small]
+[luke@host ~]$ ssh alice@bob.ch
+alice@bob.ch's password:
+[alice@bob ~]$
+            \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Login without password}
+        \vspace{0.5cm}
+        Generate an SSH key with \texttt{ssh-keygen} and copy the
+        key in \texttt{\textasciitilde/.ssh/id\_rsa.pub} to
+        \texttt{\textasciitilde/.ssh/authorized\_keys} on the server.\\
+        \vspace{0.5cm}
+        Neat key copying trick when password login already works:
+        \vspace{0.2cm}
+        \begin{bashenv}[\scriptsize]
+cat ~/.ssh/id_rsa.pub | ssh username@euler.ethz.ch 'cat - >> .ssh/authorized_keys'
+        \end{bashenv}
+    \end{frame}
+
+    \section{Version control}
+
+    \begin{frame}[fragile]{Git}
+        \begin{center}
+            \includegraphics[width=0.3\textwidth]{img/git_logo.png}
+		{\tiny [4]}
+        \end{center}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Git}
+        \begin{itemize}
+            \item{\texttt{thesis.pdf}}
+            \item{\texttt{thesis\_old.pdf}}
+            \item{\texttt{thesis\_copy.pdf}}
+            \item{\texttt{thesis\_finalversion.pdf}}
+            \item{\texttt{thesis\_finalversion2.pdf}}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[fragile]{Git}
+        \emph{Git is a version-control system for tracking changes in computer files
+        and coordinating work on those files among multiple people.} \\
+        \hspace{10cm}--- Wikipedia
+    \end{frame}
+
+    \begin{frame}[fragile]{Git}
+        \begin{center}
+            \includegraphics[width=0.8\textwidth]{img/git_branches.png}
+            {\tiny [3]}
+        \end{center}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Git}
+        \begin{itemize}
+            \item{Track changes to your code}
+            \item{Comment your changes}
+            \item{Easily revert back to older versions}
+            \item{Avoid/manage conflicts when working in teams}
+            \item{Manage release versions and development versions}
+            \item{Work on different branches at the same time}
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Git example}
+        \begin{columns}[T]
+            \column{0.5\textwidth}
+            \begin{itemize}
+                \item{Initialize a git repository}
+                \item{Add files you want to include in a commit}
+                \item{Create a commit for your selected changes}
+                \item{Push changes to server}
+            \end{itemize}
+            \column{0.5\textwidth}
+        \begin{bashenv}[\small]
+git init
+        \end{bashenv}
+        \begin{bashenv}[\small]
+git add changed_file.txt
+        \end{bashenv}
+        \begin{bashenv}[\small]
+git commit
+        \end{bashenv}
+        \begin{bashenv}[\small]
+git push
+        \end{bashenv}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}[t,fragile]{Sharing a repository}
+        \begin{itemize}
+            \item{You can use services like \emph{Github} or \emph{Gitlab} to collaborate
+                with others on your project}
+            \item{Or host your repositories yourself!}
+                \begin{itemize}
+                    \item{You can pull from/push to any server you can access via SSH}
+                \end{itemize}
+        \end{itemize}
+    \end{frame}
+
+    \section{Backup}
+    \begin{frame}[t, fragile]{Borg Backup}
+	    \begin{columns}[T]
+		    \column{0.5\textwidth}
+		    \begin{itemize}
+			    \item Backup data
+			    \item Does compression and deduplication automatically
+			    \item Possibility to encrypt
+			    \item Runs over ssh, network storage etc.
+		    \end{itemize}
+		    \column{0.5\textwidth}
+		    \begin{center}
+			    \includegraphics[width=0.6\columnwidth]{img/borg_logo.png}
+			    \vspace{2cm}
+		    \end{center}
+	    \end{columns}
+    \end{frame}
+
+    \begin{frame}[t, fragile]{Borg Example}
+		    \vspace{0.5cm}
+		    \begin{itemize}
+			    \item Repos are collections of backups
+			    \item Create new backups with \texttt{borg create}
+			    \item Restore files with \texttt{borg extract <archive>}
+		    \end{itemize}
+		    \vspace{0.5cm}
+		    \begin{bashenv}[\scriptsize]
+[luke@host ~]$ borg init --encryption=repokey /path/to/repo
+Enter passphrase:
+Repeat passphrase:
+[luke@host ~]$ borg create /path/to/repo
+[luke@host ~]$ borg create --stats /path/to/repo::Backup1 ~/dir_to_backup
+[luke@host ~]$ borg create --stats /path/to/repo::Backup2 ~/dir_to_backup
+[luke@host ~]$ borg extract /path/to/repo::Backup1
+		    \end{bashenv}
+		    \vspace{0.5cm}
+    \end{frame}
+
+    \section{Epilogue}
+
+    \begin{frame}[t,fragile]{Sources}
+        \footnotesize
+        \begin{itemize}
+            \item[1] \url{https://commons.wikimedia.org/wiki/File:Linux_Filesystem_Hierarchy_Standard.png}
+            \item[2] \url{https://en.wikipedia.org/wiki/File:Gnome-emblem-package.svg}
+	    \item[3] \url{https://commons.wikimedia.org/wiki/File:OneFlow_Example.png}
+	    \item[4] \url{https://git-scm.com/images/logos/logomark-orange@2x.png}
+        \end{itemize}
+    \end{frame}
+
+    % \begin{frame}[t,fragile]{INSERT TITLE}
+    %     \begin{columns}[T]
+    %         \column{0.5\textwidth}
+    %         \column{0.5\textwidth}
+    %     \end{columns}
+    % \end{frame}
+
+\end{document}
diff --git a/console_toolkit/source/slides/template.tex b/console_toolkit/source/slides/template.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d8830dba88e01c7d4c43cb09491127e257898024
--- /dev/null
+++ b/console_toolkit/source/slides/template.tex
@@ -0,0 +1,81 @@
+\documentclass[aspectratio=169]{beamer}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{listings}
+\usepackage{xcolor}
+\usepackage{hyperref}
+\usepackage{graphicx}
+\usepackage{textcomp}
+\usepackage{tikz}
+\usepackage{tcolorbox}
+\usepackage{menukeys}
+\usepackage{pdfpages}
+
+\tcbuselibrary{listings}
+
+\usefonttheme[onlymath]{serif}
+
+\usecolortheme[RGB={37,68,113}]{structure}
+\usetheme{Dresden}
+
+\setbeamertemplate{headline}{}
+
+% generic colors
+\definecolor{dirblue}{HTML}{9bc1ff}
+
+% TheAlternative colors
+\definecolor{ldorange}{HTML}{F18A20}
+\definecolor{ldblue}{HTML}{254471}
+
+%Apply TheAlt colors to theme
+\setbeamercolor{section in head/foot}{fg=ldorange}
+\setbeamercolor{author in head/foot}{fg=white}
+\setbeamercolor{subsection in head/foot}{fg=white}
+\setbeamercolor{caption name}{fg=vlg}
+\setbeamercolor{caption}{fg=vlg}
+\setbeamercolor{frametitle}{fg=ldblue}
+\setbeamercolor{title}{fg=ldorange}
+\setbeamercolor{institute}{fg=ldblue}
+\setbeamertemplate{itemize item}[circle]
+\setbeamercolor{itemize item}{fg=ldorange}
+
+% make including pdfs work
+\setbeamercolor{background canvas}{bg=}
+
+\setbeamerfont{title}{series=\bfseries}
+
+\setbeamertemplate{caption}{\raggedright\insertcaption\par}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{bibliography item}[text]
+
+% white-on-black lstlisting env with rounded corners
+\newenvironment{bashenv}[1][\small]{%
+    \tcblisting{listing only,colback=black,colframe=black,
+        enlarge top by=0mm,left=-0mm,top=-2mm,bottom=-2mm,
+        listing options={language=bash,
+            escapechar=§,
+            basicstyle=#1\color{white}\ttfamily,
+            commentstyle=#1\color{white}\ttfamily,
+            backgroundcolor=\color{black},
+            breaklines=true,
+            keepspaces=true,
+            showstringspaces=false,
+            columns=fullflexible}}}
+{\endtcblisting}
+
+% mark a spot for e.g. drawing an arrow to it
+\newcommand\tikzmark[1]{\tikz[remember picture,overlay]\node[inner xsep=0pt](#1){};}
+
+% \newcommand\Warning{%
+%     \makebox[1.4em][c]{\raisebox{-0.45em}{%
+%         \makebox[0pt][c]{\raisebox{0.25em}{\large!}}%
+%         \makebox[0pt][c]{\color{red}\Huge$\bigtriangleup$}}}%
+%         \hspace{0.7em}%
+% }
+
+% a red warning box
+\definecolor{lred}{HTML}{ffd6dd}
+\newtcolorbox{WarningBox}{%
+    colframe=red,
+    colback=lred}
+
diff --git a/git_gitlab_course/README.md b/git_gitlab_course/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..97f7001bf2e328473930313fced775e39f628989
--- /dev/null
+++ b/git_gitlab_course/README.md
@@ -0,0 +1 @@
+Please see here: https://gitlab.uzh.ch/zi-it-training/git
\ No newline at end of file
diff --git a/git_gitlab_course/css/remark.css b/git_gitlab_course/css/remark.css
deleted file mode 100644
index 32db76c5b673bb2bb7840489ff50f2eb3d7357d2..0000000000000000000000000000000000000000
--- a/git_gitlab_course/css/remark.css
+++ /dev/null
@@ -1,6 +0,0 @@
-body { font-family: sans-serif; }
-h1, h2, h3 {
-  font-family: serif;
-  font-weight: normal;
-}
-.remark-code, .remark-inline-code { font-family: monospace; }
\ No newline at end of file
diff --git a/git_gitlab_course/git.html b/git_gitlab_course/git.html
deleted file mode 100644
index f8a4272cf341949ff2330f907a9e39d8ccdc3b4b..0000000000000000000000000000000000000000
--- a/git_gitlab_course/git.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>Git & Gitlab</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <link rel="stylesheet" href="css/remark.css">
-  </head>
-  <body>
-    <textarea id="source">
-
-class: center, middle
-
-# Collaboration with git & Gitlab
-
-<img src="images/UZH-logo.png" width="30%">
-<br/>
-<img src="images/thealternative-logo.jpg" width="30%">
-
----
-
-# Why _git_
-
-**Change control**
-- keep track of who changed what
-- revert changes easily
-```bash
-no more presentation_v2_final_FINAL.pptx
-```
-
-**Backup & distribute**
-- store important files remotely
-- easily copy and maintain on different devices
-- share and edit with collaborators
-```bash
-no more inconsistent state
-```
-
-**Focus**
-- strict version control helps you to work goal oriented 
-```bash
-no more chaotic changes
-```
-
----
-
-# Installing _git_
-Download *git* for your operating system from [https://git-scm.com/downloads](https://git-scm.com/downloads)
-
-<img src="images/git_download.png" width="100%">
-
----
-
-class: center, middle
-
-# Local workflow with Command Line
-
----
-
-# Creating a local repository
-open your `Git-Bash`
-
-create a new directory
-```bash
-mkdir mywebsite
-```
-
-change into that directory
-```bash
-cd mywebsite
-```
-
-turn this folder into a git repository
-```bash
-git init
-```
-
----
-# Checking your local repository
-you check the status of your repository using
-```bash
-git status
-```
-
-which should give you 
-```bash
-On branch master
-
-No commits yet
-
-nothing to commit (create/copy files and use "git add" to track)
-```
----
-
-# Change something & commit it
-In your folder `mywebsite` create a file `helloworld.html` with the content
-
-```html
-<html>
-	<body>
-		<h1>Hello World!</h1>
-	</body>
-</html>
-```
-
-check how git sees that file
-```bash
-git status
-```
-
-which tells you that there are
-```bash
-No commits yet
-
-Untracked files:
-  (use "git add <file>..." to include in what will be committed)
-	helloworld.html
-
-nothing added to commit but untracked files present (use "git add" to track)
-```
-
----
-
-# Change something & commit it
-so let's follow the advice and do 
-
-```bash
-git add helloworld.html
-```
-
-and then **commit** this change
-
-```bash
-git commit -m 'add my first file'
-```
-you can always check everything you did with
-```bash
-git log
-```
-
-```bash
-commit 3b5616d1ba962e7a2e4af1f1bdd54f5d65d4e22d (HEAD -> master)
-Author: Oscan Openness <oscar@freedom.org>
-Date:   Sun Jan 12 12:20:28 2020 +0100
-
----
-
-class: center, middle
-
-# Remote workflow with Gitlab
-
-
----
-
-# Login to gitlab
-
-create an account (with switch edu) if you have none
-
----
-
-# Create a gitlab project (1/2)
-
-<img src="images/gitlab_create_new_project.jpg" width="100%">
-
----
-
-# Create a gitlab project (2/2)
-
-<img src="images/gitlab_create_new_project_2.jpg" width="100%">
-
----
-
-# Finish setup gitlab
-
-create a password in the settings  
-add an SSH key (optional)
-
-<img src="images/gitlab_project_created.jpg" width="100%">
-
-
----
-
-# Finish local setup
-
-<img src="images/gitlab_local_setup_account.jpg" width="100%">
-<img src="images/gitlab_local_setup_repository.jpg" width="100%">
-
-(skip the `git init`, `git add .` and `git commit -m "Initial commit` steps)
-
----
-
-# Add a readme
-
-explain your project for others and your future self
-
-<img src="images/gitlab_add_readme.jpg" width="100%">
-
----
-
-# Add a license
-
-everything you write has Copyright  
-Copyright gives you exclusive rights (no one can use it without permission)  
-
-use a license to define permissions for others  
-MIT to allow usage without restrictions  
-GPL to allow usage if basic freedom granted to users  
-(many others)
-
-<img src="images/gitlab_add_license.jpg" width="100%">
-
----
-
-class: center, middle
-
-# Github Desktop to simplify
-
----
-
-# Install github desktop
-
-download from https://desktop.github.com/ 
-then open your repository folder
-
-<img src="images/github_add_repository.jpg" width="100%">
-
----
-
-# Pull changes
-
-download the changes made on gitlab
-
-<img src="images/github_pull_pending.jpg" width="100%">
-
----
-
-# Commit changes
-
-change your local file  
-then preview the changes and then commit
-
-<img src="images/github_changes.jpg" width="100%">
-
----
-
-# Push changes
-
-push the changes
-
-<img src="images/github_push_pending.jpg" width="100%">
-
----
-
-# View history
-
-see the changes you've made in the past
-
-<img src="images/github_history.jpg" width="100%">
-
----
-
-# Introduction done
-
-play around with it!  
-we are here to answer questions.
-
-inspiration:
-- add some of your documents to git
-- change two files but only commit one
-- revert changes
-
-ressources:
-- https://education.github.com/git-cheat-sheet-education.pdf
-- https://git-scm.com/book/en/v2
-
-in 30 Minutes we will start with advanced topics.
-
----
-
-# Advanced topics
-
-best-practices for commits  
-create branch & merge request  
-create issue & mention it in commit  
-use SSH key  
-fork & merge back into origin  
-add different remotes  
-
----
-
-# Best practices for commits
-
-- single purpose
-```bash
-Improve best practice slide
-```
-- short, imperative subject line
-```bash
-Add best practice slide
-```
-- tell why, not how
-```bash
-Make wording on slides consistent
-```
-
----
-
-# Create branch & merge request
-
-- create branch
-```bash
-git checkout -b new-branch
-```
-- push
-```bash
-git push --set-upstream origin new-branch
-```
-- merge (on gitlab)
-
----
-
-# Create issue & mention it in commit  
-
-- create issue on gitlab
-- commit local change with `#1` for `1` the issue number
-```bash
-git commit -m "resolve #1"
-```
-- push
-- go to the issue on gitlab.com and observe
-
----
-
-# Use SSH key  
-
-- create SSH key
-```bash
-ssh-keygen -t rsa -b 4096 -C "florian.moser3@uzh.ch" && eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
-```
-- copy `~/.ssh/id_rsa.pub`
-- add the public key on gitlab.com
-- clone with SSH
-- try out push/pull to see it working
-
-    </textarea>
-    <script src="js/remark.min.js" type="text/javascript"></script>
-    <script src="js/remark.driver.js" type="text/javascript"></script>
-  </body>
-</html>
diff --git a/git_gitlab_course/images/git_download.png b/git_gitlab_course/images/git_download.png
deleted file mode 100644
index 03a1746c47ce364334b8c985fca1236f3e385699..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/git_download.png and /dev/null differ
diff --git a/git_gitlab_course/images/github_add_repository.jpg b/git_gitlab_course/images/github_add_repository.jpg
deleted file mode 100644
index a15c39c5d2699945ce68595502f149f031e799bb..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/github_add_repository.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/github_changes.jpg b/git_gitlab_course/images/github_changes.jpg
deleted file mode 100644
index e5db729e25e87f6d38f79619c575c46a90fa1bde..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/github_changes.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/github_history.jpg b/git_gitlab_course/images/github_history.jpg
deleted file mode 100644
index bffa887f275f49ab68eeeab56f0b0f9a346c1819..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/github_history.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/github_pull_pending.jpg b/git_gitlab_course/images/github_pull_pending.jpg
deleted file mode 100644
index 3f3e86ada7903d9e86bd65d4ce1d4c9900fbfa93..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/github_pull_pending.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/github_push_pending.jpg b/git_gitlab_course/images/github_push_pending.jpg
deleted file mode 100644
index fc09133b3f59d310c8c8b3def9d6dad67c74a958..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/github_push_pending.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_add_license.jpg b/git_gitlab_course/images/gitlab_add_license.jpg
deleted file mode 100644
index 1a874ee78026db10a5b5a6cad50ed9d7e8c7239c..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_add_license.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_add_readme.jpg b/git_gitlab_course/images/gitlab_add_readme.jpg
deleted file mode 100644
index 6c81d99d3399bbe5abe2b5f6fbba48beeba78656..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_add_readme.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_create_new_project.jpg b/git_gitlab_course/images/gitlab_create_new_project.jpg
deleted file mode 100644
index 02f7b204c084233fabdcd2e0145237d3b154ad20..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_create_new_project.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_create_new_project_2.jpg b/git_gitlab_course/images/gitlab_create_new_project_2.jpg
deleted file mode 100644
index 92ccb2977d7ce74c2952c68a26c3ca451590e236..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_create_new_project_2.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_first_push.jpg b/git_gitlab_course/images/gitlab_first_push.jpg
deleted file mode 100644
index b72b4e13635adac26024e51fc12520d05db2ddf9..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_first_push.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_local_setup_account.jpg b/git_gitlab_course/images/gitlab_local_setup_account.jpg
deleted file mode 100644
index bf4ead871c325c265384ce7c69c65a1b216d722f..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_local_setup_account.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_local_setup_repository.jpg b/git_gitlab_course/images/gitlab_local_setup_repository.jpg
deleted file mode 100644
index 7be373c82aeddb146a6e9341edea0a45a588681b..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_local_setup_repository.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/gitlab_project_created.jpg b/git_gitlab_course/images/gitlab_project_created.jpg
deleted file mode 100644
index 88234b946c7d3c90a5df3b0f896261a01e83d7f1..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/gitlab_project_created.jpg and /dev/null differ
diff --git a/git_gitlab_course/images/xkcd_git.png b/git_gitlab_course/images/xkcd_git.png
deleted file mode 100644
index 3f35d2d7abeed15e161dcc2b92d4851533c53aac..0000000000000000000000000000000000000000
Binary files a/git_gitlab_course/images/xkcd_git.png and /dev/null differ
diff --git a/git_gitlab_course/outline.txt b/git_gitlab_course/outline.txt
deleted file mode 100644
index 96059f914284d1afe070fe56db22b063f6ab32be..0000000000000000000000000000000000000000
--- a/git_gitlab_course/outline.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-git /gitlab tutorial planned for UZH zentrale informatik
-
-target group:
-	bachelor informatik
-	master/phd students 
-	both mostly want to use git with code or latex
-
-targets:
-	version control (backup, recover old state, make changes visible)
-	publish (how, which license)
-	contribute (work together on same project)
-	
-structure:
-	presentation and then practical examples for each topic
-	for each topic add link/resource to more advanced explanations
-	motivation 10'/5':
-		demonstrate how git can recover files and make visible who changed what
-		explain service provider benefits (backup, collaboration)
-		ask what interest of participants are to focus advanced topics
-	git intro 5'/15':
-		install git
-		create first local repository
-		do first commit
-		show it worked with git status / git log
-	remote intro 10'/30':
-		create repository online
-		do steps of git global config on welcome screen
-		do steps of create new repository on welcome screen 
-		edit Readme to learn about markdown
-		do add license on gitlab webpage
-	git GUI client 5'/15':
-		install github desktop
-		open repo & do commit
-		sync with push/pull
-		view changes of previous commits
-	advanced topics sorted by preference (each around 20'):
-		create branch & merge request
-		create issue & mention it in commit
-		fork & merge back into origin
-		add different remotes
-		use SSH key
-
-resources considered:
-	compicampus course gives a good overview, but not suitable structured
-	git-scm.com has many advanced resources
-	git boot on git-scm.com has many advanced resources
-	cheatsheet github
-	"git for ages 4 and up" (well made youtube tutorial)
-	personal experience
\ No newline at end of file
diff --git a/install_event/.gitignore b/install_event/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..3ec6da25964af4453acb9d0436c71610c12d9156
--- /dev/null
+++ b/install_event/.gitignore
@@ -0,0 +1,16 @@
+*.toc
+*.log
+*.aux
+*.out
+*.pdf
+*.html
+*.synctex.gz
+*~
+
+*.swp
+
+*.tex.bak
+
+parts
+*.html
+build/
diff --git a/install_event/10_introduction.md b/install_event/10_introduction.md
new file mode 100644
index 0000000000000000000000000000000000000000..0b3f4794e8de663bf7043ad3ad2a81eed214190d
--- /dev/null
+++ b/install_event/10_introduction.md
@@ -0,0 +1,59 @@
+# Introduction
+
+This is a concise guide to install Linux. It can be used as a
+standalone guide, although we recommend that you attend our Install Events
+during the LinuxDays so that experienced users can help you with your
+installation.
+
+The guide help you to create an install stick, prepare your existing operating system
+and finally install Linux. We also included some links to distribution-specific 
+installation resources, for the most up-to-date instructions.
+
+At the end of the guide, we include some software recommendations.
+
+## Overview
+
+Installing Linux is done in three steps:
+
+- Flash an USB Stick with the Linux installer
+- Prepare your existing operating system
+- Install Linux
+
+We will help you at each step. If you encounter problems or have suggestions how to improve this guide feel free to reach out!
+
+## LinuxDays Install Event
+
+_You can skip this part if you do not physically attend the install events_
+
+Welcome to the LinuxDays Install Event! We are happy you could make it.
+
+### Staff
+
+Our staff is easily recognizable by their blue T-Shirts. Feel free to ask them
+about Linux, TheAlternative, Free Software or anything else.
+
+We will help you if you are unable to proceed with the install guide or have
+any other questions. If we do not have an immediate answer, we know who to ask
+or where to look it up.
+
+Also, feel free to stay and just chat :)
+
+### Demolaptops
+
+We have prepared some laptops with different distribution and desktop
+environments. You can try them out, and decide what you like best.
+
+If you do not really care or can not decide, we will try to recommend
+something based on what you want to use Linux for.
+
+### USB Install Sticks & Install Guide Copies
+
+We have prepared USB Install Sticks so you can get started right away with 
+installing Linux.
+
+Further, we have printed copies of the Install Guide if you rather have a 
+printed version than look at it on you phone. 
+
+### Anything else?
+
+We have adapters (like USB to LAN), hubs, mouse and keyboards, ...
diff --git a/install_event/20_flashstick.md b/install_event/20_flashstick.md
new file mode 100644
index 0000000000000000000000000000000000000000..9273727bfe0b5bdda0e068c7b1bfc95616144846
--- /dev/null
+++ b/install_event/20_flashstick.md
@@ -0,0 +1,35 @@
+# Flash Stick
+
+You will prepare a stick from which you can install Linux from.
+
+_If you are at one of our Install Events, we already prepared USB sticks. Choose a distribution (read on) then come to the welcome desk to get your stick._
+
+## Choosing a distribution
+
+In the words of Richard Stallman:
+
+> What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system > made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX."
+
+In simpler terms: Linux by itself is not a full operating system (rather than a vital technical part of it). You need to choose a distribution (a "wrapper" around Linux) which will define to a large extend how you as a user will interact with the operating system (like installing new programs, how the desktop looks by default, ...).
+
+As choosing a distribution is heavily opiniated, we describe it here very short. Feel free to reach out to us for a personal recommendation based on your specific needs.
+
+If you "just want Linux", we recommend you go with [Ubuntu](https://ubuntu.com/). As a more open but also very stable alternative we recommend [Fedora](https://getfedora.org/). Truly Free (as in Freedom!) is [FreeBSD](https://www.freebsd.org/).
+
+For each of these distributions we give you starting points for a successful installation. If you want to install other distributions feel free to do so; and we will do our best to help you. If you are an enthusiast and want to try to install something more advanced (like [Arch Linux](https://www.archlinux.org/)) come join us :).
+
+## Download ISO
+
+You need to download an image containing the operating system installer. Visit the webpage of your favourite distribution and download it.
+
+If you have to choose from multiple versions, here some guidance of commonly used terms:
+
+- `amd64`, `i386`, ... refers to the architecture of your device. If you have a laptop / PC, it is very likely that you need `amd64` (else you'd probably know it).
+- `LTS` stands for long term support; meaning this specific version of the distribution will receive security updates for much longer than other versions.  
+
+## Create install USB Stick
+
+Get a USB stick of at least 8 Gb (make sure you do not need the data on it anymore!).
+Flash (="Put") the .iso file you have just downloaded on the USB stick.
+
+On windows, you can use [rufus](https://rufus.ie/). On macOS, you can use [etcher](https://www.balena.io/etcher/).
diff --git a/install_event/30_prepare.md b/install_event/30_prepare.md
new file mode 100644
index 0000000000000000000000000000000000000000..05fba23447a739f876d700b03e5910c7b8a0dc54
--- /dev/null
+++ b/install_event/30_prepare.md
@@ -0,0 +1,150 @@
+# Prepare Windows / Mac
+
+If you want to keep your existing operating system (Windows or macOS) you need to prepare it.
+This will allow you to "double-boot", hence choose at startup which operating system to run.
+
+If you do not want to keep your existing operating system, you can skip this section.
+
+## About Partitioning
+
+Disk partitioning is the separation of different regions on a hard drive or an SSD. 
+This separation is used to install two different operating systems on a computer or 
+simply to have different regions for different purposes (like a partition for your data and one for the programs).
+
+We recommend to have at least 40GB of space partitioned for Linux. If you know you
+need programs for your studies (e.g. Matlab, which is around 30GB), please have enough free disk
+space to install the desired programs and probably some extra, just in case.
+
+Be aware that repartitioning later is practically impossible, so try to be on the safe side.
+If you do not have space constraints, with 100Gb all you wildest wishes should be fulfillable.
+
+## Windows 10
+
+If you have Windows (and want to keep it) follow on.
+
+### Making Space for Linux
+
+Shrink Windows partition:
+
+- Open `create and format hard disk partitions` or `diskmgmt.msc`.
+- Look for the large Windows partition at the bottom.
+- Right-click on it and select `Shrink Volume...`
+- Shrink it so you have enough space available.
+
+If you are unable to shrink the partition, use a tool like `EaseUS Partition Master`
+or try it in the Linux installer. Ask a helper for assistance.
+
+If you do not have enough space, you can free up disk space with these tips:
+
+- Open `Disk Cleanup` and click on `Clean up system files`. Select all that apply.
+- Open `Add or Remove Programs` and remove unneeded programs
+- Download `WinDirStat` from https://windirstat.net/ and find where the large files are hiding
+
+### Disable Bitlocker
+
+Bitlocker encrypts your disk, but unfortunately it is not compatible with Linux
+boot loaders.
+
+Disable Bitlocker:
+
+- Open `cmd` as administrator: Press Windows Key, type `cmd`, then 
+  right click on `Command Prompt` and select `Run as administrator`)
+- Type `manage-bde -status` and look for `Conversion Status: Fully Decrypted`
+- For any drive which is not `Fully Decrypted`, type `manage-bde -unlock C:` 
+  (replace `C:` with the drive you need to decrypt), and press Enter. 
+- Wait for decryption to end (execute `manage-bde -status` for status
+  updates)
+
+You can also try to disable Bitlocker over the UI (look for `Manage Bitlocker`)
+but it has been confusing to do so in the last few years.
+
+### Fast Boot
+
+`Fast boot` allows Windows to boot faster, but when it is active, the windows 
+file system will be inaccessible to other OSes (like Linux).
+
+You can avoid the `Fast boot` mode by explicitly choosing to `Restart` (rather than `Shut down`)
+in windows.
+
+Alternatively, you can simply disable fast boot:
+
+- Find the battery icon in the task bar
+- Right-click and select `Power Options`
+- Select `Choose what the power buttons do`
+- Select `Change settings that are currently unavailable`
+- Remove the check mark at `Turn on fast startup`
+
+### Booting the installer 
+
+Make sure your Linux install stick is plugged into your PC.
+
+Click `Restart` in the Windows start menu, while holding down the `Shift` key.
+A `Please wait`-text appears, after which Windows should enter the troubleshooting
+menu.
+
+From this menu you can choose a startup device, or enter the UEFI settings.
+
+- To choose the startup device, select `Use a device`. As we want to boot from the
+  Linux USB stick choose `USB FDD` or similar.
+- To enter the UEFI settings, select `Troubleshoot`, `Advanced Options` and then `UEFI
+  Firmware Settings`.
+
+If none of this works, you can try to change the startup device immediately after booting.
+This guide will explain how in the next chapter.
+
+## macOS
+
+<span style="color:red">
+Note that on modern Apple computers it is generally not advisable to install Linux
+(MacBooks after 2016 simply are not very compatible with Linux.)
+</span>
+
+Up-to-date information on the status of Linux support on MacBooks can be found
+[here](https://github.com/Dunedan/mbp-2016-linux).
+
+### Shrink your OS X partition
+
+On OS X, we will resize your existing partition to make
+space for your new Linux system.
+
+- Go to `/Applications/Utilities` and open the `Disk Utility`.
+- Select your main disk in the list to the left (usually the first or the largest).
+- Select the tab `Partition`.
+- On the left side there is a white rectangle with some blue threshold indicating the space consumed by Mac OS X.
+- Click and hold the lower right corner of that rectangle and draw the cursor upwards, to shrink the volume.
+- The text on the right will give you information about the freed memory.
+- Once you are satisfied, click `Apply` to confirm the shrinking operation.
+
+### Install rEFInd
+
+We will install the bootloader on OS X before the Linux
+installation. *rEFInd* will boot your USB Install Medium as well as your
+operating system later on.
+
+- Browse the web for [http://www.rodsbooks.com/refind/getting.html](http://www.rodsbooks.com/refind/getting.html) and scroll down a bit to click the link *A binary zip file*.
+- Once the download has completed, go to the *Download folder* and extract the file.
+- Open a Mac terminal by going to `Application/Utilities` and opening `Terminal`.
+- Type `cd ` (with a space afterwards, but do **not** press *Enter*  yet) and drag the extracted folder into the terminal.
+- Now, hit *Enter* and then type `./refind-install`.
+- When prompted for your password, enter it. (You won't see what you enter at the password prompt at all. You have to enter your password blindly.)
+
+### Troubleshoot
+
+In case you get an error message saying *ALERT: SIP ENABLED*, you need to do the following:
+
+- Turn off your Mac and start it again, pressing `Cmd + R` immediately after turning it on again (you might want to hold it for a while).
+- Your Mac should boot in `recovery mode`. Go to `Utilities` and open up a terminal.
+- Now type: `csrutil disable`.
+- Then reboot back into your normal system and try to install *rEFInd* again.
+- After installation, feel free to go once more into recovery and type `csrutil enable`.
+
+### Booting the installer
+
+We will now boot from your USB Install Medium.
+
+- Plug your USB Install Medium into your laptop.
+- Reboot your machine and *rEFInd* should see the USB key.
+- Your USB installer may have several ways to boot. They all will show up and have a little USB icon to the bottom right.
+- Usually the first USB installer is correct. If it doesn't work, reboot and try the others.
+- If your USB installer doesn't show up, hit `Escape` to refresh the list. It should show up now.
+- If you see multiple USB keys, try each of them until you find the Linux installer.
diff --git a/install_event/50_install.md b/install_event/50_install.md
new file mode 100644
index 0000000000000000000000000000000000000000..74d2ff27fe957815546f8a644be37a219bde0f45
--- /dev/null
+++ b/install_event/50_install.md
@@ -0,0 +1,83 @@
+# Install
+
+You are all set to install Linux on your device.
+
+If you have not yet done so; ensure you have backed up all your data!
+In the (unlikely) case something goes terribly wrong, you can recover your data.
+
+## Boot from Stick
+
+You now want to boot from the USB stick (if you have not already done so, depending on your existing operating system).
+
+This step can be tricky, as the way to accomplish this is different over different devices and brands.
+Generally you need to look for something like "BIOS" or "startup device". 
+You then need to choose the USB stick as the startup device.
+
+You can enter the BIOS or change the startup device usually with the function keys (such as F1, F8, F10, F12) or with other keys like ESC or Enter.
+
+The most common keys by brand:
+- Lenovo: Enter
+- HP: Esc
+
+## Partitioning
+
+This can either be done automatically by the Linux distributions
+installer, or manually if you want more control over your setup. If you are
+unsure about what setup you want, it might be best to follow the automatic setup.
+
+![Example partitions for a system with Linux only](images/partitions.png)
+
+![Example partitions for a dual boot system](images/partitions2.jpg)
+
+### Automatic setup
+
+The various installers usually offer an option to either install alongside an
+existing operating system (Windows/Mac), or to use the entire disk and erase
+previously installed systems. If you choose to install alongside something
+else, there is usually an option to choose how much space you want to allocate
+for the new system. Note that the partition for the old system will also have
+to shrink by this amount.
+
+### Manual setup
+
+If you want a manual setup these are some partitions you might consider:
+
+- `/boot`: This is the boot partition for EFI. This already exists and will be reused when installing your new operating system.
+- `/` (root). A root partition is required for all installations. This is where
+  all the operating system files live.
+- `/home`: Some users like to their home directory on a different partition.
+  This can make re-installation of a distribution easier. However, this is
+  entirely optional.
+- `/swap`: A swap partition is used as an extension for your machines memory,
+  if it ever fills up. Nowadays, a lot of people omit this on personal computers.
+
+You will also be able to choose a file system for `/` and `/home`. Almost
+always the `ext4` filesystem should be used. If you know what you are doing,
+you can of course also choose something else.
+
+## Ubuntu
+
+We recommend to follow the [official install-guide](https://ubuntu.com/tutorials/tutorial-install-ubuntu-desktop) for installing Ubuntu.
+
+As further resources, we recommend the [Ubuntu Wiki](https://wiki.ubuntu.com/) and the [askubuntu StackExchange](https://askubuntu.com/).
+
+## Fedora
+
+The top-level documentation for Fedora can be found on the official [Fedora
+docs website](https://docs.fedoraproject.org/en-US/docs/).
+
+The following links are a good starting point:
+
+- The Fedora [install guide](https://docs.fedoraproject.org/en-US/fedora/f31/install-guide/Introduction/)
+- The [usage and customization guide](https://docs.fedoraproject.org/en-US/quick-docs/)
+- The guide for upgrading to a new [release](https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/)
+
+## Open SUSE
+
+For getting started with OpenSuse we recommend going through [Unofficial
+openSUSE Guide](https://www.opensuse-guide.org), since it gives a good overview
+and can save you some time.
+
+Also check out the [Start-Up Guide](https://doc.opensuse.org/documentation/leap/startup/single-html/book.opensuse.startup/index.html)
+from their website and the [documentation](https://en.opensuse.org/Portal:Documentation) if you have
+further questions or want to work with the official material.
diff --git a/install_event/90_software.md b/install_event/90_software.md
new file mode 100644
index 0000000000000000000000000000000000000000..8e960cd18bee50148b453aa1d25f95ec8c42cd0f
--- /dev/null
+++ b/install_event/90_software.md
@@ -0,0 +1,91 @@
+# Software
+
+These are software recommendations for Linux. Most of these are graphical
+programs, but there are some programs that run in the terminal only. Note that
+these programs have various licenses, some might not even be "libre" software
+(due to them becoming closed source at a later point, or this list having
+errors)!
+
+Some programs are annotated if they are best used on GNOME or KDE. This does
+not mean they cannot be used on the other environment, but the visual
+integration might be lacking in these cases.
+
+## Office
+
+| Use case                    | Application                            | Comment                                                                                                   |
+| :---                        | :---                                   | :---                                                                                                      |
+| Office suite                | LibreOffice                            |                                                                                                           |
+| Office suite                | OnlyOffice                             | Looks much nicer than LibreOffice                                                                                                           |
+| PDF viewer                  | Zathura                                | All desktop environments include a PDF viewer. Zathura is another, more simple option.                    |
+| Note taking, PDF annotation | Xournal                                |                                                                                                           |
+| LaTeX editor                | Texstudio, Texmaker, GNOME LaTeX       | Texstudio/Texmaker are "what you see is what you get", GNOME LaTeX uses a "write, then compile" workflow. |
+| Mindmapping                 | vym                                    |                                                                                                           |
+| Design/Publishing           | Scribus                                |                                                                                                           |
+| Simple Text Editor          | Gedit/Geany (GNOME), Kwrite/Kate (KDE) |                                                                                                           |
+| Advanced Text Editor        | vim, emacs                             | These are a bit more difficult to learn, but are very popular with power users.                           |
+| File manager                | PCManFM, ranger/nnn (Terminal)         | All desktop environments include a file manager, these are other more advanced options.                   |
+| CAD                         | FreeCAD                                |                                                                                                           |
+
+## Graphics
+
+| Use case               | Application                        | Comment                                                                                     |
+| :---                   | :---                               | :---                                                                                        |
+| Image editing          | GIMP, Pinta                        | GIMP is a more fully featured editor, similar to Photoshop. Pinta is inspired by Paint.NET. |
+| Painting               | Krita                              |                                                                                             |
+| 3D Animation           | Blender                            |                                                                                             |
+| Photo management       | Darktable, Digikam                 |                                                                                             |
+| Scanning               | Skanlite (KDE), SimpleScan (GNOME) |                                                                                             |
+| OCR (Text Recognition) | OCRGui, OCRmyPDF (Terminal)        |                                                                                             |
+
+## Multimedia
+
+| Use case                        | Application               | Comment                                                                                  |
+| :---                            | :---                      | :---                                                                                     |
+| Video Player                    | mpv, VLC, Totem (GNOME)   | Desktop environments have a default video player, but mpv/VLC are usually more powerful. |
+| Audio editing                   | Audacity                  |                                                                                          |
+| MP3 tagging                     | Picard                    |                                                                                          |
+| Digital Audio Workstation (DAW) | Ardour                    |                                                                                          |
+| YouTube downloader              | youtube-dl (Terminal)     | Requires regular updates, because YouTube changes their website rather often             |
+| Screen recording                | OBS, SimpleScreenRecorder | OBS is very powerful, SimpleScreenRecorder is more simple option.                        |
+
+## Scientific
+
+| Use case   | Application          | Comment                                                                       |
+| :---       | :---                 | :---                                                                          |
+| Matlab     | Python+Numpy, Octave | Octave tries to be similar to Matlab, while Python+Numpy is rather different. |
+| Statistics | R, PSPP              |                                                                               |
+| ArcGIS     | QGIS, GRASS GIS      |                                                                               |
+
+## Internet
+
+| Use case             | Application                                                       | Comment                                                       |
+| :---                 | :---                                                              | :---                                                          |
+| Web Browser          | Firefox, Chromium, qutebrowser                                    | We recommend using Chromium instead of Google Chrome on Linux |
+| Mail                 | Thunderbird, KMail (KDE), Evolution (GNOME), mutt (Terminal)      |                                                               |
+| Instant Messaging    | Telegram, Pidgin, Empathy (GNOME)                                 |                                                               |
+| Torrent client       | Transmission (GNOME), Ktorrent (KDE), Deluge, rtorrent (Terminal) |                                                               |
+| Voice chat           | Mumble, Empathy (GNOME)                                           |                                                               |
+| File synchronization | Syncthing, Nextcloud, OwnCloud, Seafile                           |                                                               |
+
+## System
+
+| Use case       | Application                                      | Comment                                                         |
+| :---           | :---                                             | :---                                                            |
+| Disk usage     | Baobab (GNOME), Filelight (KDE), ncdu (Terminal) |                                                                 |
+| Virtualization | virt-manager, VirtualBox, GNOME Boxes            |                                                                 |
+| Backup         | borg backup, Déjà Dup                            |                                                                 |
+| System monitor | htop (Terminal)                                  | The desktop environment have their own system monitor included. |
+
+## Development
+
+| Use case | Application                                                                       | Comment                                          |
+| :---     | :---                                                                              | :---                                             |
+| IDE      | IntelliJ, Eclipse, Code::Blocks, Android Studio, Geany, Qt Creator, Gnome Builder | Some of these might not be Free and Open Source! |
+
+## Other
+
+| Use case          | Application                     | Comment                                                        |
+| :---              | :---                            | :---                                                           |
+| Dropdown terminal | Guake (GNOME), Yakuake (KDE)    |                                                                |
+| Clipboard manager | Glipper (GNOME), Clipman (XFCE) | The desktop environment each have their own clipboard manager. |
+
diff --git a/install_event/95_troubleshooting.md b/install_event/95_troubleshooting.md
new file mode 100644
index 0000000000000000000000000000000000000000..73a872fbfa1c8c22ed26628d367107fca950e381
--- /dev/null
+++ b/install_event/95_troubleshooting.md
@@ -0,0 +1,176 @@
+# Troubleshooting
+
+A chapter for some advanced troubleshooting. If you need something contained 
+in this chapter, better ask some advanced user for help (or one of our helpers if you are at our Install Event).
+
+## Microsoft Surface
+
+### Something doesn't work
+
+Microsoft Surface devices usually require a patched kernel.
+[See this project](https://github.com/linux-surface/linux-surface) to install
+such a kernel.
+
+## Wireless
+
+### Broadcom on Ubuntu doesn't work
+
+[See this.](https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx)
+
+### Installing Broadcom Firmware
+
+*openSUSE:*
+
+`sudo zypper install b43-fwcutter`
+`sudo /usr/sbin/install_bcm43xx_firmware`
+
+[See also this site.](https://www.opensuse-guide.org/wlan.php)
+
+*Ubuntu:*
+
+`sudo apt install firmware-b43-installer`
+
+[See also this site.](http://linuxwireless.org/en/users/Drivers/b43/)
+
+## OpenSUSE
+
+### Installing Broadcom Wireless Drivers (broadcom-wl)
+
+-   Add the packman repo: YaST -> Software repos -> Add -> Select community -> repos -> Next -> Select packman -> Finish
+-   `zypper ref`
+-   `zypper install broadcom-wl`
+
+## Graphics drivers
+
+## System hangs at boot (NVIDIA present)
+
+Boot with `nomodeset` kernel parameter, then either install proprietary NVIDIA
+drivers or disable the NVIDIA graphics entirely.
+
+## I want to disable the Nouveau driver
+
+`echo 'blacklist nouveau' | tee /etc/modprobe.d/blacklist.conf`
+
+## Acer
+
+Some types of newer Acer notebooks need special settings for Secure Boot in order to boot an installed GNU/Linux system at all. If you installed eg. Ubuntu but it directly boots Windows without giving you a GRUB selection screen, try the following guide:
+https://askubuntu.com/questions/771455/dual-boot-ubuntu-with-windows-on-acer-aspire/771749#771749
+
+## System
+
+### chroot into an installed system
+
+To chroot into an installed system from a live iso, do the following:
+
+- `sudo su`
+- `mount /dev/sdaX /mnt`, where `sdaX` is your root partition
+- If you have EFI: `mount /dev/sda1 /mnt/boot/efi` (assuming `sda1` is your EFI partition)
+- `mount -t proc proc /mnt/proc/`
+- `mount -t sysfs sys /mnt/sys/`
+- `mount -o bind /dev /mnt/dev/`
+- `chroot /mnt /bin/bash`
+
+### Cleaning up boot entries
+
+-   `efibootmgr` prints all boot entries.
+-   `efibootmgr -o XXXX,YYYY,ZZZZ` sets the boot order.
+-   `efibootmgr -b <number> -B` deletes an EFI boot entry.
+
+### Drives are not found in the installer
+
+Especially newer laptops (2018+) have options to switch between RAID and AHCI
+boot mode.
+
+If the laptop is running in RAID mode and Linux does not recognize its drives,
+it will have to be switched to AHCI. Unfortunately, this also means Windows
+needs to be reconfigured, otherwise it won't boot anymore.
+
+1. Click the Start Button and type `cmd`
+2. Right-click the result and select *Run as administrator*
+3. Type this command and press *ENTER:* `bcdedit /set {current} safeboot minimal` (ALT: `bcdedit /set safeboot minimal`)
+4. Restart the computer and enter BIOS Setup
+5. Change the SATA Operation mode to AHCI from either IDE or RAID
+6. Save changes and exit Setup and Windows will automatically boot to Safe Mode.
+7. Right-click the Windows Start Menu once more. Choose Command Prompt (Admin).
+8. Type this command and press ENTER: `bcdedit /deletevalue {current} safeboot` (ALT: bcdedit /deletevalue safeboot)
+9. Reboot once more and Windows will automatically start with AHCI drivers enabled.
+
+### 32-bit EFI is used
+
+- No provided install image will boot.
+- Windows is installed in 32-bit mode.
+- Some older Macbooks have this configuration.
+- To install 64-bit Linux (we never encountered an actual 32-bit CPU with this problem!),
+  manually replace the bootloader with a grub standalone.
+  [See the Arch Wiki.](https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Booting_64-bit_kernel_on_32-bit_UEFI)
+
+### I need to turn off Bitlocker
+
+**Do not change any BIOS/UEFI settings before disabling BitLocker!** You will
+have to provide the decryption key otherwise, which the user typically has no
+access to.
+
+- Launch a command prompt with administrator rights and use `manage-bde -off
+  C:`, where `C:` is the drive you want to decrypt.
+- Use the command `manage-bde -status` to query the decryption status.
+- You will need to wait until decryption is complete, which can take a long
+  time.
+
+### Unlock BitLocker Encrypted Devices
+
+If you change any UEFI settings on a BitLocker encrypted device (typically
+Surface devices), you will be prompted for the BitLocker key on next boot.
+
+Since Surface devices come encrypted out of the box, the user does typically
+not have that key and Windows will refuse to boot. If this happens, resetting
+the UEFI settings to factory settings should fix the issue.
+
+Alternatively, you can just enter the correct Bitlocker key. This works only if
+the user has a Microsoft account linked to the device. You can get the
+BitLocker key as follows:
+
+* On another device, google for "BitLocker Recovery Key". You should find
+  several Microsoft Support or FAQ pages on how to recover the key.
+* Search for a link saying "To get your recovery key, go to BitLocker Recovery
+  Keys" or similar. Go there.
+* Ask the user to sign in using their Microsoft account. The website will then
+  display their recovery key, which can be used to unlock the device.
+
+### System will not boot under any circumstance
+
+Some very bad firmwares just refuse to boot GRUB, however you configure it.
+This "bootloader hack" can be applied in these cases.
+
+- Try to boot the actual distro that has been installed by "using a device"
+  to boot. Do so by holding shift while clicking on "reboot" in Windows.
+- If that doesn't work, boot a live system and chroot into the installed
+  system.
+- Once booted or chrooted into the Linux system, become root (sudo su) and
+  go to `/boot/efi/EFI/Microsoft/Boot` and locate a file named
+  `bootmgfw.efi`. Rename it to `bootmgfw-original.efi`.
+- Go to `/boot/efi/EFI/grub2` (sometimes also just `grub`) and locate the
+  file `grubx64.efi`. Copy it over to `/boot/efi/EFI/Microsoft/Boot/`. If a
+  file called `shimx64.efi` exists, copy that one over as well.
+- Find the file `grub.cfg` in `/boot/efi/EFI/grub2` and copy it over to
+  `/boot/efi/EFI/Microsoft/Boot/`.
+- Go back to `/boot/efi/EFI/Microsoft/Boot/`. If `shimx64.efi` exists,
+  rename it to `bootmgfw.efi`. If it does not exist, rename `grubx64.efi` to
+  `bootmgfw.efi`.
+- Now go to `/boot/grub/`, or `/boot/opensuse/` (the exact folder path may
+  vary). Find the file `grub.cfg` and open it. Find the `menuentry` block
+  for Windows (usually called "Windows Bootloader (on /dev/sdx)" or 
+  similar). Copy the entire block.
+- Uninstall the package `os-prober`.
+- Now go to /etc/grub.d. If a file with `os-prober` in its name exists,
+  delete it.
+- Find the file `40-custom.cfg`. If it doesn't exist, create it. Paste the
+  menuentry block you copied earlier in this file.
+- In the text you just pasted, look for `bootmgfw.efi` and change it to
+  `bootmgfw-original.efi`.
+- Save the file.
+- Run `grub-mkconfig -o /boot/grub/grub.cfg`. Make sure the file path
+  matches the path where you originally found the `grub.cfg` you copied the
+  menuentry from.
+- Reboot and verify that grub now loads properly. Also test whether Windows
+  boots!
+
diff --git a/install_event/LICENSE b/install_event/LICENSE
deleted file mode 100644
index 890a3062d1be4e4b6eea055ab5855e2e597f350c..0000000000000000000000000000000000000000
--- a/install_event/LICENSE
+++ /dev/null
@@ -1,54 +0,0 @@
-License
-THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
-
-BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
-
-1. Definitions
-
-"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
-"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
-"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
-"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
-"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
-"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
-"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
-"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
-"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
-2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
-
-3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
-
-to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
-to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
-to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
-to Distribute and Publicly Perform Adaptations.
-For the avoidance of doubt:
-
-Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
-Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
-Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
-The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
-
-4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
-
-You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
-If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
-Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
-5. Representations, Warranties and Disclaimer
-
-UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
-
-6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. Termination
-
-This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
-Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
-8. Miscellaneous
-
-Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
-Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
-If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
-No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
-This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
-The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
\ No newline at end of file
diff --git a/install_event/Makefile b/install_event/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f8f7dfd1fa2d585c2d2ee43e50a33bef69b66117
--- /dev/null
+++ b/install_event/Makefile
@@ -0,0 +1,44 @@
+html_out := build/installguide.html
+pdf_out  := build/installguide.pdf
+full_tex := full-guide.tex
+tmp_tex  := $(pdf_out:.pdf=.tex)
+git_tags := build/GIT_TAG
+
+PANDOC_FLAGS_HTML=\
+	--table-of-contents \
+	--number-sections \
+	--highlight-style tango \
+	--metadata-file metadata.yaml
+
+PANDOC_FLAGS_TEX=--from markdown+link_attributes
+
+TFLAGS=\
+	-pdf \
+	-output-directory=build
+
+.PHONY: clean distclean default
+
+default: builddir html pdf
+
+html: *.md
+	pandoc $(PANDOC_FLAGS_HTML) $? -o $(html_out)
+
+pdf: $(pdf_out)
+
+$(pdf_out): $(tmp_tex) $(git_tags)
+	latexmk $(TFLAGS) $(full_tex)
+
+$(tmp_tex): *.md
+	pandoc $(PANDOC_FLAGS_TEX) $? -o $@
+
+builddir:
+	@[ -d build ] || mkdir build
+
+$(git_tags):
+	printf "r%s.%s" "$$(git rev-list --count HEAD)" "$$(git rev-parse --short HEAD)" > $@
+
+clean:
+	$(RM) -rf $(tmp_tex) $(git_tags) build/*
+
+distclean: clean
+	$(RM) $(html_out) $(pdf_out)
diff --git a/install_event/helpers_cheat_sheet.pdf b/install_event/archive/helpers_cheat_sheet.pdf
similarity index 100%
rename from install_event/helpers_cheat_sheet.pdf
rename to install_event/archive/helpers_cheat_sheet.pdf
diff --git a/install_event/archive/helpers_cheat_sheet/.gitignore b/install_event/archive/helpers_cheat_sheet/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7f9ec9cc1a19947d1e298de5a4c47441ea09863f
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/.gitignore
@@ -0,0 +1,6 @@
+*.pdf
+*.aux
+*.log
+*.out
+*.swp
+*~
diff --git a/install_event/archive/helpers_cheat_sheet/00-introduction.md b/install_event/archive/helpers_cheat_sheet/00-introduction.md
new file mode 100644
index 0000000000000000000000000000000000000000..f706676c81e43cd95d4e3019f1cd1d01e6376b8a
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/00-introduction.md
@@ -0,0 +1,3 @@
+# Introduction
+
+<!-- Not sure if we need an introduction, might come in handy though-->
diff --git a/install_event/archive/helpers_cheat_sheet/000-emptypage.md b/install_event/archive/helpers_cheat_sheet/000-emptypage.md
new file mode 100644
index 0000000000000000000000000000000000000000..6aa85154745100692d790401b9de7a8e4f60a19a
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/000-emptypage.md
@@ -0,0 +1 @@
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/10-before-installation.md b/install_event/archive/helpers_cheat_sheet/10-before-installation.md
new file mode 100644
index 0000000000000000000000000000000000000000..3fc435bbe80ac66fce5989f924e5e162cca07976
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/10-before-installation.md
@@ -0,0 +1,127 @@
+Before installing
+=================
+
+Switch from RAID to AHCI
+------------------------
+
+Especially newer laptops (2018+) have options to switch between RAID and AHCI boot mode.
+
+If the laptop is running in RAID mode and Linux does not recognize its drives, it will have to be switched to AHCI. Unfortunately, this also means Windows 
+needs to be reconfigured, otherwise it won't boot anymore. Just google [windows 10 switch from raid to ahci](http://triplescomputers.com/blog/uncategorized/solution-switch-windows-10-from-raidide-to-ahci-operation/).
+
+If the drive still is not visible, try to look for an entry called `Fastboot` and set it to off (or  how Dell calls it, `Thorough`).
+
+Disable fast boot in Windows 8/8.1/10
+-------------------------------------
+
+-   Open the control panel (Win 10: the old-style control panel, not the
+    newish one) and select the power options
+
+-   Click on „Choose what the power buttons do“ on the left bar
+
+-   By acquiring admin rights click „Change settings that are currently
+    unavailable“
+
+-   scroll down and uncheck the box for fast startup
+
+ThinkPad T.40 Serie BIOS Version
+
+-   BIOS version should be greater or equal to 1.14. 2.x to be sure not
+    to brick the system
+
+How to detect 32bit EFI and how to deal with it
+-----------------------------------------------
+
+-   No provided install image will boot
+
+-   Windows is installed in 32bit mode
+
+-   Some older Macbooks have this config
+
+-   To install a 64bit Linux (we never encountered a 32bit CPU with
+    that), manually replace the bootloader with a grub standalone and
+    boot the kernel manually. Reference\
+    https://wiki.archlinux.org/index.php/Unified\_Extensible\_Firmware\_Interface\#Booting\_64-bit\_kernel\_on\_32-bit\_UEFI
+
+Useful Macbook hardware bitwidth table
+--------------------------------------
+
+-   http://www.everymac.com/mac-answers/snow-leopard-mac-os-x-faq/mac-os-x-snow-leopard-64-bit-macs-64-bit-efi-boot-in-64-bit-mode.html
+
+Getting to BIOS in Windows 8/8.1/10
+-----------------------------------
+
+-   Get to the power button (metro bar in 8/8.1, start menu in 10)
+
+-   Press the shutdown button
+
+-   Press and hold SHIFT while selecting Restart
+
+-   In the appearing GUI select „Extended options“ or similar until „Go
+    to UEFI firmware“
+
+Find out boot type, disable hybrid boot mode: UEFI or BIOS?
+-----------------------------------------------------------
+
+-   MUST do this before booting the Linux live system, otherwise
+    existing systems might be broken!
+
+-   In the BIOS, go to the boot options and set either BIOS (often
+    called legacy) XOR UEFI mode! **DO NOT USE HYBRID MODES.**
+
+-   If available (e.g. on Lenovo Workstation laptops), disable CSM when
+    using UEFI / enable it when using BIOS mode.
+
+-   Save, reboot and check if the existing OS starts
+
+    -   If yes, you found the right mode
+
+    -   If no, it’s the other mode, so switch it and don’t forget to
+        attempt to boot the existing OS again, this time it must work or
+        there’s a real problem.
+
+Find out the partition table type: EFI or MBR?
+----------------------------------------------
+
+-   MUST find this out before installing, can mess up the system
+    otherwise!
+
+-   Check for a partition labeled “EFI” and formatted as FAT32
+    (generally pretty small). Note that this partition might not be
+    visible from Windows.\
+    If there is such a partition, it’s EFI, else it’s an MBR table.
+    Remember that type!
+
+-   At the last step of installing, double-check that the installer
+    detected partition type correctly.
+
+
+Turn off Bitlocker
+------------------
+
+On some laptops (including all Surface devices) BitLocker Drive Encryption is enabled by default. It needs to be disabled first.
+
+**Do not change any BIOS/UEFI settings before disabling BitLocker!** You will have to provide the decryption key otherwise, which the user typically has no access to, which in turn makes the entire disk unreadable.
+
+### Disabling BitLocker
+
+To disable BitLocker, do the following:
+
+* Launch a command prompt with administrator rights and use `manage-bde -off C:`, where `C:` is the drive you wish to decrypt.
+* Use the command `manage-bde -status` to query the decryption progress.
+* You will need to wait until decryption is complete, which can take up to an hour depending on the number of files on the drive. 
+
+After decryption, continue installing Linux as usual.
+
+### Unlock BitLocker Encrypted Devices
+
+If you change any UEFI settings on a BitLocker encrypted device (typically Surface devices), you will be prompted for the BitLocker key on next boot.
+
+Since Surface devices come encrypted out of the box, the user does typically not have that key and Windows will refuse to boot. If this happens, resetting the UEFI settings to factory settings should fix the issue.
+
+Alternatively, you can just enter the correct Bitlocker key. This works only if the user has a Microsoft account linked to the device. You can get the BitLocker key as follows:
+
+* On another device, google for "BitLocker Recovery Key". You should find several Microsoft Support or FAQ pages on how to recover the key.
+* Search for a link saying "To get your recovery key, go to BitLocker Recovery Keys" or similar. Go there.
+* Ask the user to sign in using their Microsoft account. The website will then display their recovery key, which can be used to unlock the device.
+
diff --git a/install_event/archive/helpers_cheat_sheet/100-windows.md b/install_event/archive/helpers_cheat_sheet/100-windows.md
new file mode 100644
index 0000000000000000000000000000000000000000..16c84d0e0a7d9d1ccf79cd7567b776b2f65f9cb9
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/100-windows.md
@@ -0,0 +1,3 @@
+\mysection{Windows}
+\label{sec:win}
+
diff --git a/install_event/archive/helpers_cheat_sheet/110-windows_4-mbr-partitions.md b/install_event/archive/helpers_cheat_sheet/110-windows_4-mbr-partitions.md
new file mode 100644
index 0000000000000000000000000000000000000000..e370ea480bada67d40d4d27f93bde8815f91f20c
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/110-windows_4-mbr-partitions.md
@@ -0,0 +1,14 @@
+\mysubsection*{4 Primary Partitions In MBR}
+\label{subsec:win-4pparts}
+
+MBR can have a maximum of 4 primary partitions, so if you already have this many,
+you'll need to do something about it. 
+To fix the problem do the following:
+
+* Delete any primary partition not needed anymore. (On HP -> `HP_TOOLS`, on 
+  Lenovo check which ones are not needed.).
+* Resize any one partition you want the data from.
+* Use the data freed from the resized partition and create a new partition of 
+  type `Extended Partition`.
+* Use that container for any future partitions.
+
diff --git a/install_event/archive/helpers_cheat_sheet/120-windows_shrink-partition.md b/install_event/archive/helpers_cheat_sheet/120-windows_shrink-partition.md
new file mode 100644
index 0000000000000000000000000000000000000000..3d017ec79ed04a0a2dfa131e5169997969075224
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/120-windows_shrink-partition.md
@@ -0,0 +1,24 @@
+\mysubsection*{Shrinking Partitions}
+\label{subsec:win-sparts}
+
+Sometimes it happens that windows doesn't allow resizing a partition for some
+reasons. Here is a list of helpful hints to try and make Windows comply again.
+ 
+* Defragment Disk.
+* Disable Hibernation. Restart.
+    * [Win + x] -> `Command Prompt (Admin)`
+    * `powercfg /h off`
+* Disable Pagefile. Restart.
+    * [Win + R] -> `SystemPropertiesPerformance.exe` -> Pick `Advanced`
+    * In `Virtual Memory` pick `Change` and unchange `Automatically manage `
+      `paging file size for all drives`
+    * Set `No paging file` on partition you want to remove it from
+* Disable System Protection. Restart.
+    * [Win + R] -> `SystemPropertiesProtection.exe`
+    * Select partition to remove protection from and click `Configure`
+    * `Disable system protection` -> `Apply`
+* If none of the above help, there are tools specifically made to move files around, such as EaseUS. Ask Florian Moser for a license of the tool. If you don't know who that is, ask around.
+
+For more help: [https://technet.microsoft.com/en-us/library/cc731894.aspx](https://technet.microsoft.com/en-us/library/cc731894.aspx)
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/20-partitioning.md b/install_event/archive/helpers_cheat_sheet/20-partitioning.md
new file mode 100644
index 0000000000000000000000000000000000000000..ccf634bf9f5eec1224abffb58fa1e22980a4e6f6
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/20-partitioning.md
@@ -0,0 +1,75 @@
+Partitioning
+============
+
+Watch for hybrid HDD/SSD systems
+--------------------------------
+
+-   Intel provides an SSD cache (found on a HP laptop). It doesn’t even
+    show under Windows. On OpenSuse, it show up as an extra hard disk
+    labeled: Intel Fast Flash.
+
+    DO NOT TOUCH this disk.
+
+-   We experienced problems resizing the hard disk on that machine (it
+    said it’s inconsistent). To solve this, you have to start up Windows
+    and disable Intel Smart Response in the utility installed on
+    Windows.
+
+MBR system setup
+----------------
+
+-   make sure system has no EFI! See above: “Find out the partition
+    table type: EFI or MBR?”
+
+-   Each HDD can only have max. 4 partitions which are either primary or
+    logical, so I recommend first creating a new logical partition which
+    again can contain 4 partitions, which we can all use for the Linux
+    installation
+
+-   If there are already 4 primary partitions on the disk (e.g. old HP
+    laptops), you must delete a partition. We typically choose the ones
+    like „HP TOOLS“.
+
+-   More on this topic can be found here:\
+    http://wiki.project21.ch/Partitionierung\_von\_HDs\_mit\_vier\_primären\_Partitionen
+
+EFI system setup
+----------------
+
+-   make sure the system has EFI! See above: “Find out the partition
+    table type: EFI or MBR?”
+
+-   Lenovo \*\*40 =&gt; BIOS update before proceeding!
+
+<!-- -->
+
+-   make sure, that the system has booted in EFI mode (check whether
+    /sys/firmware/efi exists)
+
+-   make sure the system found the efi partition and it is mounted at
+    /boot/efi (type ’mount’ in console, which lists all mounted devices)
+
+-   when selecting the partition scheme for installation, check whether
+    the efi partition is recognized and will be mounted at /boot/efi
+
+-   If any EFI bugs occur, check the wiki article for EFI, which
+    contains workarounds for many bugs.
+
+Recommended partitions on a Linux system:
+-----------------------------------------
+
+-   At least 20 GB for /
+
+-   swap partition at least as large as total amount of installed RAM
+
+-   optional own partitions for /home, /usr, /var, … whatever the
+    clients wish. Note that this is a religious question without clear
+    answer which option is better:
+
+    -   Advantage of separate home: More clear to backup (e.g. with dd),
+        more independent of system
+
+    -   Advantage of just one partition („/“): The entire space can be
+        used for whatever, no separate and fix space constraint for
+        system and home.
+
diff --git a/install_event/archive/helpers_cheat_sheet/200-mac.md b/install_event/archive/helpers_cheat_sheet/200-mac.md
new file mode 100644
index 0000000000000000000000000000000000000000..a4ecb7c51c9797172a043dddd7f769ede516f531
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/200-mac.md
@@ -0,0 +1,3 @@
+\mysection{Mac OS X}
+\label{sec:mac}
+
diff --git a/install_event/archive/helpers_cheat_sheet/210-bootcamp.md b/install_event/archive/helpers_cheat_sheet/210-bootcamp.md
new file mode 100644
index 0000000000000000000000000000000000000000..7f6f5891a1e1c3778efbefb5608fe2664050dc2c
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/210-bootcamp.md
@@ -0,0 +1,34 @@
+\mysubsection*{Repair Bootcamp After Repartition On BIOS Macs}
+\label{subsec:mac-bios}
+
+*(tested on Macbook Pro 13-inch, Early 2011)*
+
+`Disk Utility` will delete Hybrid MBR, so we need to fix it.
+
+*Replace `diskX` with your disk, e.g. `disk0`*
+
+- `sudo fdisk /dev/diskX` to see MBR
+- `sudo gpt show /dev/diskX` to see GPT
+- Install GPT fdisk from [https://sourceforge.net/projects/gptfdisk/](https://sourceforge.net/projects/gptfdisk/)
+  (or use gdisk on Linux)
+- **ALWAYS BACKUP** current partition table to an **external location** first:
+    - `sudo gdisk /dev/diskX` , `p` , `b`, enter backup file
+- Create Hybrid MBR:
+    - `sudo gdisk /dev/diskX` , `x`, `r`
+    - `p`, remember partition number of Bootcamp/Windows
+    - `h`, enter Bootcamp partition number
+    - Place EFI GPT (0xEE) partition first in MBR (good for GRUB)?
+    (Y/N): `Y`
+    - Enter an MBR hex code [\[]{}For bootcamp partition[\]]{}: `07`
+    - Set the bootable flag? (Y/N): `Y`
+    - Unused partition space(s) found. Use one to protect more partitions?
+    (Y/N): `N`
+    - `p`, `o`, check if MBR is correct
+    - `w` to write hybrid MBR to disk
+- In case something goes wrong: Restore GPT
+    - `sudo gdisk /dev/diskX`
+    - `x`, `r`, `l`, enter backup file, `w`
+- If Mac OS X does not let you modify the MBR:
+    - Reboot recovery, open Terminal, `csrutil disable`, reboot
+    - `csrutil enable` after done
+
diff --git a/install_event/archive/helpers_cheat_sheet/220-refind.md b/install_event/archive/helpers_cheat_sheet/220-refind.md
new file mode 100644
index 0000000000000000000000000000000000000000..ce638e3997df9b221b55224cf066af5c18008d16
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/220-refind.md
@@ -0,0 +1,60 @@
+\mysubsection*{Installing rEFInd}
+\label{subsec:mac-refind}
+
+*(tested on Macbook Pro 13-inch, Early 2011)*
+
+The installation of rEFInd fails under El Capitan (Mac OS X 10.11). The reason is 
+the activated system integrity protection ('rootless', more info here: 
+http://www.rodsbooks.com/refind/sip.html). Ignoring the error message (ALERT: 
+SIP ENABLED) will result in the files being copied into the ESP but the device 
+not being able to start from it. This is because the NVRAM variables weren't 
+properly adjusted.
+
+### Workaround 1: Clemens' Suggestion
+
+Reference: [http://www.rodsbooks.com/refind/installing.html#manual_renaming](http://www.rodsbooks.com/refind/installing.html#manual_renaming)
+
+- Ignore SIP error, attempt installation with `Y`
+- Open a terminal and enter (maybe using sudo):
+    - `diskutil list` (find ESP, usually `disk0s1`)
+    - `diskutil mount /dev/disk0s1`
+    - `cd /Volumes/EFI/EFI`
+    - `mv refind BOOT`
+    - `cd BOOT`
+    - `mv refind_x64.efi bootx64.efi`
+- Restart, hold down [Alt] and pick `EFI BOOT` for rEFInd
+
+Advantage: Mac detects rEFInd automatically on the ESP, survives NVRAM resets
+and no need to boot into recovery. 
+
+Disadvantage: Mac OS X boots per default, not rEFInd
+
+Solution:  Boot into recovery [Option + R] -> Utilities -> Terminal
+    
+- `diskutil mount /dev/disk0s1`
+- `bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/bootx64.efi --shortform`
+
+Refind should boot automatically henceforth.
+
+Should Recovery not exist then use a bootable installer [https://support.apple.com/en-us/HT201372](https://support.apple.com/en-us/HT201372).
+
+
+### Workaround 2: Recommended By rEFInd
+
+Reference: [http://www.rodsbooks.com/refind/sip.html#disable](http://www.rodsbooks.com/refind/sip.html#disable) 
+
+- Boot recovery
+- Do one of the following:
+    - Install rEFInd from there **OR**
+    - `csrutil disable`
+    - Reboot into Mac OS X
+    - Install rEFInd
+    - Reboot into recovery
+    - `csrutil enable`
+
+On newer MacBooks (Clemens' Early 2011 doesn't have an `csr-active-config` 
+entry, `nvram -p` for listing all available entries) it is also possible to 
+toggle the SIP state with rEFInd. Mount ESP, follow **Workaround 1** and
+finally edit `refind.conf` (see: [http://www.rodsbooks.com/refind/sip.html#refind_manage](http://www.rodsbooks.com/refind/sip.html#refind_manage)).
+
+\pagebreak
diff --git a/install_event/archive/helpers_cheat_sheet/25-ubuntu.md b/install_event/archive/helpers_cheat_sheet/25-ubuntu.md
new file mode 100644
index 0000000000000000000000000000000000000000..0d775157d87d5851ef98d873f9e821003ca502be
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/25-ubuntu.md
@@ -0,0 +1 @@
+# Using Ubuntu
diff --git a/install_event/archive/helpers_cheat_sheet/30-opensuse.md b/install_event/archive/helpers_cheat_sheet/30-opensuse.md
new file mode 100644
index 0000000000000000000000000000000000000000..e1f5111a09ddd1c39070b9c3eb5757cd224c6343
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/30-opensuse.md
@@ -0,0 +1,124 @@
+Using openSUSE
+==============
+
+Booting openSUSE in BIOS / EFI mode
+-----------------------------------
+
+-   To check how the USB key has booted compare the screen to the
+    pictures below
+
+![image](suse_efi_mode.jpg)
+
+BIOS mode\
+![image](suse_bios_mode.jpg)
+
+EFI mode
+
+Installing software in Yast
+---------------------------
+
+-   Open Yast via start menu → settings → yast
+
+-   Open “Install Software” (or so)
+
+-   There you can search for keywords and select packages to install
+
+Very small zypper HOWTO
+-----------------------
+
+-   Search for packages: \# zypper se &lt;name&gt;
+
+-   Get recest versions: \# zypper ref
+
+-   Install a package: \# zypper in &lt;package&gt;
+
+-   Update packages: \# zypper up
+
+-   Upgrade system: \# zypper dup
+
+-   Remove package: \# zypper remove &lt;package&gt;
+
+-   Get help: \# zypper help
+
+-   zypper shell: \# zypper sh (so you can drop the “zypper” prefix)
+
+-   List repos: \# zypper lr
+
+-   Add repo: \# zypper ar &lt;url&gt; &lt;name&gt;
+
+-   Need more help: \$ man zypper and Google Fu
+
+### Adding the custom repository
+
+-   Our custom repo contains kernels for exotic hardware and some other
+    useful stuff.
+
+-   Add it via:\
+    \# zypper ar -f
+    http://download.opensuse.org/repositories/home:/maxf:/LD/openSUSE\_Leap\_42.1/
+    TheAlt
+
+Exotic problems
+---------------
+
+### Secure Boot
+
+-   The openSUSE kernel maintained by Max cannot be secure booted!
+
+### Get rid of graphic driver
+
+-   \# echo ‘blacklist nouveau’ tee
+    /etc/modprobe.d/my\_cool\_blacklist.conf
+
+-   Maybe add nomodeset:
+
+    -   Edit /etc/default/grub to add ‘nomodeset’ to the kernel cmdline
+
+    -   \# grub2-mkconfig -o /boot/grub2/grub.cfg
+
+### Get rid of grub on Macs and set rEFInd to default
+
+-   \# efibootmgr gives you all boot entries
+
+-   \# efibootmgr -o XXXX,YYYY,ZZZZ sets the boot order. Put refind
+    first here
+
+-   \# efibootmgr -b &lt;grub-no&gt; -B deletes the efi entry of grub
+
+### Get broadcom-wl
+
+-   Add packman repo: YaST → Software repos → Add, select community
+    repos → Next → select packman → finish
+
+-   \# zypper ref
+
+-   \# zypper install broadcom-wl
+
+### Installation worked fine, but instead of GRUB only Windows is booting
+
+-   Disable secure boot (which would prevent GRUB from chainloading)
+
+-   Find /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi (Windows boot loader)
+
+-   Rename it such that any Linux expert can still find it!
+
+-   Find /boot/efi/EFI/&lt;distro\_name&gt;/grubx64.efi (GRUB)
+
+-   copy GRUB to the location that was previously owned by the windows
+    boot loader
+
+-   open the os\_prober file in /etc/grub.d and search for the Windows
+    boot entry
+
+-   update the position of the (renamed) windows boot loader and copy
+    the text of the menuentry to /etc/grub.d/40\_custom
+
+-   remove os\_prober
+
+-   ’grub-mkconfig -o /boot/grub/grub.cfg’
+
+-   Document all changes so a future linux expert helping our client can
+    figure out what you did!
+
+-   In case of a problem ask Maximilian or Jan
+
diff --git a/install_event/archive/helpers_cheat_sheet/300-boot.md b/install_event/archive/helpers_cheat_sheet/300-boot.md
new file mode 100644
index 0000000000000000000000000000000000000000..d49658d8f78d0f89d549d9730b92d6652fe94681
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/300-boot.md
@@ -0,0 +1,3 @@
+\mysection{Boot Problems}
+\label{sec:boot}
+
diff --git a/install_event/archive/helpers_cheat_sheet/310-32-bit-EFI.md b/install_event/archive/helpers_cheat_sheet/310-32-bit-EFI.md
new file mode 100644
index 0000000000000000000000000000000000000000..7b352e974759f839beace5538b6626df5d11008f
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/310-32-bit-EFI.md
@@ -0,0 +1,40 @@
+\mysubsection*{Detecting 32bit EFI \& Dealing With It}
+\label{subsec:boot-32bit}
+
+-   No provided install image will boot
+-   Windows is installed in 32bit mode
+-   Some older Macbooks also have this configuration
+
+It is possible to install Linux on such devices, but requires some more handwork. Note that we only ever found this configuration on 64 bit processors, so it's usually possible to install 64 bit Linux.
+
+* Ask the Patrol for a 32-bit-Grub-USB.
+* Plug both the 32-bit-Grub-USB and the Linux Installer USB in the device
+* Boot from the 32-bit-Grub-USB
+* You should land in a grub shell. The command prompt should say `grub>`, not `grub-rescue>`. If you see `rescue`, something went wrong.
+* Type `ls`, you should see a list of partitions in the form `(HD0,GPT1)`. Try to guess which disk (HD0, HD1, HD2...) is the USB Installer - they usually have two GPT partitions. 
+* Type `set root=(HDX,GPT1)`, X being the number of the disk you think is the installer.
+* If you get some error, it was the wrong partition or disk. Reboot and try another.
+* The Kernel files reside in `/casper/vmlinuz.efi` and `/casper/initrd.lz` for Ubuntu installers, `/boot/x86_64/loader/linux` and `/boot/x86_64/loader/initrd` for opensuse.
+* Load the vmlinuz by typing: (change path as required)
+        `vmlinuz casper/vmlinuz.efi`
+* Load the initial ramdisk by typing: (change path as required)
+        `initrd casper/initrd.lz`
+* You can use tab completion in the above step. If there are multiple files starting with `vmlinuz` or `initrd`, you usually need the one with the shortest file name.
+* If you can't find the kernel files, you probably loaded the wrong partition or disk. Reboot and try again.
+* Type `boot`, hit enter and pray.
+* If all goes well, the installer now boots. Install Linux as normal.
+
+After the install, you might still need to install the 32 bit version of grub in order to boot anything at all. If Linux doesn't boot now, do the following:
+
+* Plug in the 32-bit-Grub-USB, unplug all other USB keys.
+* Boot the 32-bit-Grub-USB. Type 'ls'. Try to guess on which partition you installed Linux before (root partition)
+* `set root=(HD0,GPTX)`, X being the partition number you installed Linux on. 
+* The kernel files usually reside in `/boot/grub` or `/boot/distroname`. Just like before, load the vmlinuz.efi and initrd files.
+* Type `boot`, hit enter and PRAY.
+* If you're lucky, the freshly installed Linux now comes up.
+* once it is up, `sudo grub-install --target=i386-efi /dev/sda1` (if your boot partition is not `sda1`, change accordingly).
+* regenerate the grub config (`grub-mkconfig -o /boot/grub/grub.cfg`). Change the path accordingly.
+* Test whether Linux now boots.
+
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/320-rm-grub-refind-default.md b/install_event/archive/helpers_cheat_sheet/320-rm-grub-refind-default.md
new file mode 100644
index 0000000000000000000000000000000000000000..fcd1123a9ceb9958b4aeb5942d849220937fd98b
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/320-rm-grub-refind-default.md
@@ -0,0 +1,14 @@
+\mysubsection*{Exchange GRUB To rEFInd}
+\label{subsec:boot-grubrefind}
+
+Use `efibootmgr` to set the boot order.
+
+-   `efibootmgr` or `efibootmgr -v` (for verbose output) gives you the current
+    boot order. Relevant outputs are `BOOTXXXX` where `XXXX` are four numerical
+    digits.
+-   Set the boot order with `efibootmgr -o XXXX,YYYY,ZZZZ`
+-   Delete the GRUB boot entry with `efibootmgr -b XXXX -B` where `XXXX` is the
+    number of the GRUB boot entry.
+-   You can remove duplicate entries with `efibootmgr -D` if cleanup is needed.
+
+
diff --git a/install_event/archive/helpers_cheat_sheet/330-grub-config.md b/install_event/archive/helpers_cheat_sheet/330-grub-config.md
new file mode 100644
index 0000000000000000000000000000000000000000..9502aa4717a8da6da137f5d4e970f5cad32d71b7
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/330-grub-config.md
@@ -0,0 +1,13 @@
+\mysubsection*{GRUB Configuration}
+\label{subsec:boot-grubconf}
+
+### Ubuntu
+
+See `/etc/default/grub` to edit kernel parameters.
+GRUB configuration can be regenerated with `update-grub`.
+
+### OpenSUSE
+
+Try to configure GRUB with YaST. (-> Boot Loader Settings).
+
+\pagebreak
diff --git a/install_event/archive/helpers_cheat_sheet/350-bootloader-hack.md b/install_event/archive/helpers_cheat_sheet/350-bootloader-hack.md
new file mode 100644
index 0000000000000000000000000000000000000000..09b0046be52ec38e0cc0b6b36bf57fdb0427acef
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/350-bootloader-hack.md
@@ -0,0 +1,51 @@
+\mysubsection*{Bootloader Hack}
+\label{subsec:boot-hack}
+
+Some EFI systems do not implement the EFI standard properly, which leads to
+problems.
+
+### Symptoms
+
+* No matter what boot order you set with `efibootmgr`, Windows still boots.
+* Settings you change with `efibootmgr` keep disappearing on reboot.
+* Sometimes, it's possible to get to GRUB by "using a device" to boot. A boot
+  device named "opensuse", "ubuntu" or "grub" might show up.
+
+### How-To (Non-Mac Computers)
+
+-    Try to boot the actual distro that has been installed by "using a device"
+     to boot. Do so by holding shift while clicking on "reboot" in Windows.
+-    If that doesn't work, boot a live system and chroot into the installed
+     system. If you don't know how to do that, ask the Patrol for the manual.
+-    Once booted or chrooted into the Linux system, become root (sudo su) and
+     go to `/boot/efi/EFI/Microsoft/Boot` and locate a file named
+     `bootmgfw.efi`. Rename it to `bootmgfw-original.efi`.
+-    Go to `/boot/efi/EFI/grub2` (sometimes also just `grub`) and locate the
+     file `grubx64.efi`. Copy it over to `/boot/efi/EFI/Microsoft/Boot/`. If a
+     file called `shimx64.efi` exists, copy that one over as well.
+-    Find the file `grub.cfg` in `/boot/efi/EFI/grub2` and copy it over to
+     `/boot/efi/EFI/Microsoft/Boot/`.
+-    Go back to `/boot/efi/EFI/Microsoft/Boot/`. If `shimx64.efi` exists,
+     rename it to `bootmgfw.efi`. If it does not exist, rename `grubx64.efi` to
+     `bootmgfw.efi`.
+-    Now go to `/boot/grub/`, or `/boot/opensuse/` (the exact folder path may
+     vary). Find the file `grub.cfg` and open it. Find the `menuentry` block
+     for Windows (usually called "Windows Bootloader (on /dev/sdx)" or 
+     similar). Copy the entire block.
+-    Uninstall the package `os-prober`.
+-    Now go to /etc/grub.d. If a file with `os-prober` in its name exists,
+     delete it.
+-    Find the file `40-custom.cfg`. If it doesn't exist, create it. Paste the
+     menuentry block you copied earlier in this file.
+-    In the text you just pasted, look for `bootmgfw.efi` and change it to
+     `bootmgfw-original.efi`.
+-    Save the file.
+-    Run `grub-mkconfig -o /boot/grub/grub.cfg`. Make sure the file path
+     matches the path where you originally found the `grub.cfg` you copied the
+     menuentry from.
+-    Reboot and verify that grub now loads properly. Also test whether Windows
+     boots!
+
+For reference, ask Aline, Max or Jan.
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/40-surface.md b/install_event/archive/helpers_cheat_sheet/40-surface.md
new file mode 100644
index 0000000000000000000000000000000000000000..c2523e746bd8c160465ab478f9ad847dc319b2c8
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/40-surface.md
@@ -0,0 +1,58 @@
+Surface Pro 4
+=============
+
+These little things need some special treatment to get the touchscreen
+to work.
+
+After the installation, add the following repository:
+
+http://download.opensuse.org/repositories/home:/maxf:/LD/openSUSE\_Leap\_42.1/
+
+From there, install kernel-default-ipts and kernel-firmware-ipts (for
+intel precose touch support)
+
+After that, you need to copy some hardware descriptor files from the
+windows partition:
+
+-   Descriptor.bin: A HID descriptor file provided by vendor. The HID
+    Driver appends the panel’s HID descriptor to information.
+
+-   iaPreciseTouchDescriptor.bin: A HID descriptor file. A bare minimum
+    HID descriptor descripting the device. The HID Driver appends the
+    panel’s HID descriptor to information.
+
+-   KernelSKL.bin: Touch Vendor provided OpenCL kernel includes touch
+    algorithms.
+
+-   SFTConfig.bin: Touch Vendor provided configuration binary.
+
+These files are located in:
+
+%Windir%\\inf\\PreciseTouch\\
+
+Kernel will look for these user space binaries in /itouch folder under
+specific names.
+
+-   /itouch/vendor\_kernel\_skl.bin
+
+-   /itouch/integ\_sft\_cfg\_skl.bin
+
+-   /itouch/vendor\_descriptor.bin
+
+-   /itouch/integ\_descriptor.bin
+
+So to be able to try different vendor kernels using softlinks can be
+used as:
+
+-   ln -sf /itouch/KernelSKL.bin /itouch/vendor\_kernel\_skl.bin
+
+-   ln -sf /itouch/SFTConfig.bin /itouch/integ\_sft\_cfg\_skl.bin
+
+-   ln -sf /itouch/Descriptor.bin /itouch/vendor\_descriptor.bin
+
+-   ln -sf /itouch/iaPreciseTouchDescriptor.bin
+    /itouch/integ\_descriptor.bin
+
+For further reference, ask Max or Aline or see
+
+https://github.com/ipts-linux-org/ipts-linux/wiki\#user-space-components
diff --git a/install_event/archive/helpers_cheat_sheet/400-suse.md b/install_event/archive/helpers_cheat_sheet/400-suse.md
new file mode 100644
index 0000000000000000000000000000000000000000..a3ed721b878587722ba5cf864e656bfff4d3f38e
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/400-suse.md
@@ -0,0 +1,3 @@
+\mysection{openSUSE}
+\label{sec:suse}
+
diff --git a/install_event/archive/helpers_cheat_sheet/410-zypper.md b/install_event/archive/helpers_cheat_sheet/410-zypper.md
new file mode 100644
index 0000000000000000000000000000000000000000..725516ec2900ab78c7c65b44836036dc4a2cd9d4
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/410-zypper.md
@@ -0,0 +1,15 @@
+\mysubsection*{Zypper Crashcourse}
+\label{subsec:suse-zypper}
+
+- Search for packages: `zypper se <name>`
+- Get recent versions: `zypper ref`
+- Install a package: `zypper in <package>`
+- Update packages: `zypper up`
+- Upgrade system: `zypper dup`
+- Remove package: `zypper remove <package>`
+- Get help: `zypper help`
+- zypper shell: `zypper sh` (so you can drop the “zypper” prefix)
+- List repos: `zypper lr`
+- Add repo: `zypper ar <url> <name>`
+- Need more help: `man zypper` & Google
+
diff --git a/install_event/archive/helpers_cheat_sheet/420-yast.md b/install_event/archive/helpers_cheat_sheet/420-yast.md
new file mode 100644
index 0000000000000000000000000000000000000000..74696d8ce54defb9bd7a9cb6c8bd5da23cadc3ee
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/420-yast.md
@@ -0,0 +1,8 @@
+\mysubsection*{How To `YaST`}
+\label{subsec:suse-yast}
+
+- Open `YaST` via `Start Menu` -> `Settings` -> `YaST`
+- Open `Software Management`
+- There you can search for keywords and select packages to install
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/50-broadcom.md b/install_event/archive/helpers_cheat_sheet/50-broadcom.md
new file mode 100644
index 0000000000000000000000000000000000000000..a43654ca6ba322b6801945922214df321dbe7af4
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/50-broadcom.md
@@ -0,0 +1,15 @@
+Fixing Broadcom Wireless
+========================
+
+If Wireless is not working properly under Ubuntu or openSUSE it might be
+a firmware problem:
+
+-   Under openSUSE:\
+    \#sudo zypper install b43-fwcutter\
+    \#sudo /usr/sbin/install\_bcm43xx\_firmware
+
+-   Under Ubuntu:\
+    \# sudo apt install firmware-b43-installer
+
+For further reference, see:\
+http://linuxwireless.org/en/users/Drivers/b43/
diff --git a/install_event/archive/helpers_cheat_sheet/500-ubuntu.md b/install_event/archive/helpers_cheat_sheet/500-ubuntu.md
new file mode 100644
index 0000000000000000000000000000000000000000..db89fead0d19e412e3c55372cafa1092e19ff598
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/500-ubuntu.md
@@ -0,0 +1,2 @@
+\mysection{Ubuntu}
+\label{sec:buntu}
diff --git a/install_event/archive/helpers_cheat_sheet/510-apt.md b/install_event/archive/helpers_cheat_sheet/510-apt.md
new file mode 100644
index 0000000000000000000000000000000000000000..16e92658b806b365593a5104161be805fb909f34
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/510-apt.md
@@ -0,0 +1,18 @@
+\mysubsection*{apt Crashcourse}
+\label{subsec:buntu-apt}
+
+-   Sync the repos: `sudo apt update`
+-   Upgrade packages: `sudo apt upgrade`
+-   Upgrade distro (handles changing repositories): `sudo apt dist-upgrade`
+-   Install packages: `sudo apt install $packages`
+-   Remove packages: `sudo apt remove $packages`
+-   Diagnostic check (update package cache, check for broken dependencies): `sudo apt check`
+-   Clean package cache: `sudo apt clean`
+-   Only clean cached files that can no longer be downloaded: `sudo apt autoclean`
+
+Important options:
+
+-   -f : Attempt to fix broken dependencies
+-   --reinstall : reinstall a package 
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/60-bootcamp.md b/install_event/archive/helpers_cheat_sheet/60-bootcamp.md
new file mode 100644
index 0000000000000000000000000000000000000000..b33cb0a023ff5a2f463974f3e790f4b8e22a64af
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/60-bootcamp.md
@@ -0,0 +1,126 @@
+Repair Bootcamp after repartitioning on older Macs (the ones with BIOS emulation) {#sec:Fix Bootcamp}
+=================================================================================
+
+Disk Utility will delete Hybrid MBR, so we need to fix it *(tested on
+Macbook Pro 13-inch, Early 2011)*
+
+*replace `diskX` with your disk, e.g. `disk0`*
+
+-   `sudo fdisk /dev/diskX` to see MBR
+
+-   `sudo gpt show/dev/diskX` to see GPT
+
+-   Install GPT fdisk from https://sourceforge.net/projects/gptfdisk/
+    (or use gdisk on linux)
+
+-   **ALWAYS BACKUP** current Partition table to an **external
+    location** first:
+
+-   `sudo gdisk /dev/diskX` , `p` , `b`, enter backup file
+
+-   Create Hybrid MBR:
+
+    -   `sudo gdisk /dev/diskX` , `x`, `r`\
+
+    -   `p`, remember partition number of bootcamp/windows
+
+    -   `h`, enter Bootcamp partition number\
+
+    -   Place EFI GPT (0xEE) partition first in MBR (good for GRUB)?
+        (Y/N): `Y`\
+
+    -   Enter an MBR hex code [\[]{}For bootcamp partition[\]]{}: `07`\
+
+    -   Set the bootableflag? (Y/N): `Y`
+
+    -   Unused partition space(s) found. Use one to protect more
+        partitions? (Y/N): `N`\
+
+    -   `p`, `o`, check if MBR is correct
+
+    -   `w` to write hybrid MBR to disk
+
+-   Restore GPT if something goes wrong:
+
+    -   `sudo gdisk /dev/diskX`\
+
+    -   `x`, `r`, `l`, enter backup file, `w`
+
+-   If MacOS does not let you modify the MBR:
+
+    -   reboot into recovery, open terminal, `csrutil disable`, reboot
+
+    -   `csrutil enable` it after you are done
+
+Install refind
+--------------
+
+*(tested on Macbook Pro 13-inch, Early 2011)*
+
+> Bei [\[]{}Install Procedure; 1. Mac OS X[\]]{} schlägt die
+> Installation von refind unter der neusten Version von Mac OS X (El
+> Capitan, 10.11) fehl Grund dafür ist, dass Apple System Integrity
+> Protection (‘rootless’) aktiviert hat. Genaueres dazu hier:
+> http://www.rodsbooks.com/refind/sip.html Wenn man die Fehlermeldung
+> (ALERT: SIP ENABLED) ignoriert und trotzdem installiert wird refind
+> auf die EFI Partition kopiert, das MacBook kann davon aber nicht
+> starten. Grund ist, dass der Installer von refind im gebooteten OS
+> keine Rechte hat die efi boot Variablen im nvram zu ändern und der
+> standard Booteintrag deshalb nicht geändert werden kann
+
+#### Workaround 1: (würd ich vorschlagen) {#workaround-1-wuxfcrd-ich-vorschlagen}
+
+-   siehe:
+    http://www.rodsbooks.com/refind/installing.html\#manual\_renaming
+
+-   SIP error bei refind Installation ignorieren, attempt installation
+    `Y`
+
+-   im Terminal: (evtl. mit sudo falls kein Adminaccount, verschieben
+    und umbenennen geht auch von Hand im Finder) - `diskutil list` ( EFI
+    partition finden, normalerweise disk0s1) -
+    `diskutil mount /dev/disk0s1` - `cd /Volumes/EFI/EFI` -
+    `mv refind BOOT` - `cd BOOT` - `mv refind_x64.efi bootx64.efi`
+
+-   neu starten, Option Key (alt) gedrückt halten, und EFI BOOT
+    auswählen für refind
+
+> Vorteil: mac erkennt refind auf der EFI system partition automatisch,
+> überlebt auch nvram reset, kein reboot in Recovery nötig damit es
+> funktioniert
+
+> möglicher Nachteil: mac bootet nicht automatisch von refind, sondern
+> Mac OS X
+
+> Lösung:
+
+-   in recovery booten (Option+R), Utilities, terminal aufmachen,
+
+    -   `diskutil mount /dev/disk0s1`
+
+    -   `bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/bootx64.efi --shortform`
+
+> jetzt sollte refind automatisch booten
+
+-   Falls keine recovery partition vorhanden geht auch bootable
+    Installer (https://support.apple.com/en-us/HT201372)
+
+#### Workaround 2: (wie von refind vorgeschlagen)
+
+siehe: http://www.rodsbooks.com/refind/sip.html\#disable basically:
+
+-   in recovery booten
+
+-   refind von dort installieren
+
+-   oder `csrutil disable`, reboot in osx, refind installieren, reboot
+    in recovery, `csrutil enable`
+
+> auf neueren MacBooks (mein 2011er hat keinen csr-active-config Eintrag
+> im nvram , `nvram -p` um zu ckecken) ist es auch möglich sip mit
+> refind aus- und wieder einzuschalten, dazu die EFI system Partition
+> mounten, **Workaround 1**, und dann und wie hier
+> http://www.rodsbooks.com/refind/sip.html\#refind\_manage beschrieben
+> refind.conf editieren oder aber das wie beschrieben per stick oä
+> machen
+
diff --git a/install_event/archive/helpers_cheat_sheet/600-snowflakes.md b/install_event/archive/helpers_cheat_sheet/600-snowflakes.md
new file mode 100644
index 0000000000000000000000000000000000000000..fd4a2b7b73a90d1ac98d8d62da9643f2396f2d28
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/600-snowflakes.md
@@ -0,0 +1,3 @@
+\mysection{Special Snowflakes}
+\label{sec:sflake}
+
diff --git a/install_event/archive/helpers_cheat_sheet/610-surface-pro-4-and-book.md b/install_event/archive/helpers_cheat_sheet/610-surface-pro-4-and-book.md
new file mode 100644
index 0000000000000000000000000000000000000000..424f292549617d313d426265a548e5277cdd4c7e
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/610-surface-pro-4-and-book.md
@@ -0,0 +1,67 @@
+\mysubsection*{Surface Pro 4 \& Surface Book}
+\label{subsec:sflake-sp4b}
+
+These little things need some special treatment to get the touchscreen
+to work. We only support them under OpenSUSE, so this manual assumes
+OpenSUSE is installed.
+
+After the installation, add the following repository:
+
+`http://download.opensuse.org/repositories/home:/maxf:/LD/openSUSE\_Leap\_42.2/`
+
+From there, install kernel-default-ipts and kernel-firmware-ipts (for
+intel precise touch support). **Uninstall the default kernel**.
+Unfortunately, the SP4 drivers are only available for kernel 4.4, so you
+are effectively downgrading the Linux kernel. If you leave the default
+kernel installed, grub will boot it since it is newer.
+
+After that, you need to copy some hardware descriptor files from the
+Windows partition:
+
+-   iaPreciseTouchDescriptor.bin
+
+-   SurfaceTouchServicingDescriptorMSHW0078.bin
+
+-   SurfaceTouchServicingKernelSKLMSHW0078.bin
+
+-   SurfaceTouchServicingSFTConfigMSHW0078.bin
+
+These files are located in:
+
+`\\Windows\\inf\\PreciseTouch\\Intel`
+
+Note that the name might vary slightly. Specifically, there might be different versions of the latter three files, which different numbers at the end (76, 78, 79...). If that is the case, use the files with the highest number.
+
+Kernel will look for these user space binaries in /itouch folder under
+specific names (same order as above):
+
+-   /itouch/integ\_descriptor.bin
+
+-   /itouch/vendor\_descriptor.bin
+
+-   /itouch/vendor\_kernel\_skl.bin
+
+-   /itouch/integ\_sft\_cfg\_skl.bin
+
+After that, reboot and verify the touchscreen works.
+
+For further reference, ask Max or Aline or see
+
+https://github.com/ipts-linux-org/ipts-linux/wiki\#user-space-components
+
+###Touchscreen Inverted
+
+On the Surface Book, we have observed that the touchscreen is inverted after the above steps (the y axis is mirrored, so when you type in the bottom left corner, the reaction happens in the top left corner). To fix this, we use xinput to set the coordinate transformation matrix.
+
+Note that only finger touch is affected, touch with the Surface Pen is correct.
+
+* Install xinput (sometimes named xorg-xinput).
+* Run `xinput` and look for a touch device that might be the touchscreen. There should be two devices, one named something like `0000:0000` and the other `0000:0000 Pen`. You want the one without the `Pen` suffix.
+* Run `xinput set-prop "Device Name" "Coordinate Transformation Matrix" 1 0 0 0 -1 1 0 0 1`, where "Device Name" is the name of the touchscreen you found previously.
+* Test whether the touchscreen behaves properly now.
+
+Note that this solution is temporary. We have not yet tested any ways to
+make it permanent. You could try to put the above `xinput
+set-prop` command in `~/.xinitrc` or some other auto-start script. The proper solution would be to create a file for the touchscreen in `/etc/X11/xorg.conf.d/` and set the `TransformationMatrix` option. If you find a working solution, please tell the Patrol.
+
+\pagebreak
diff --git a/install_event/archive/helpers_cheat_sheet/620-broadcom.md b/install_event/archive/helpers_cheat_sheet/620-broadcom.md
new file mode 100644
index 0000000000000000000000000000000000000000..0969792a2fc82e240f34f0265c75f01b11ef1a37
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/620-broadcom.md
@@ -0,0 +1,25 @@
+\mysubsection*{Broadcom Problems}
+\label{subsec:sflake-bcom}
+
+In general, it's a good idea to look at what broadcom card you have, so you know what drivers you need:
+`lspci -nn -d 14e4:`
+
+### Broadcom Under openSUSE
+
+Most likely, installing the broadcom-wl drivers will fix it:
+
+-   Add packman repo: YaST → Software repos → Add, select community
+    repos → Next → select packman → finish
+
+-   `zypper ref`
+
+-   `zypper install broadcom-wl`
+
+
+### Broadcom Under Ubuntu
+
+For reference, use: [https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx](https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx)
+
+
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/630-bumblebee.md b/install_event/archive/helpers_cheat_sheet/630-bumblebee.md
new file mode 100644
index 0000000000000000000000000000000000000000..9c3fcbc949e9e404a5837b139f1c90ad15523230
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/630-bumblebee.md
@@ -0,0 +1,135 @@
+\mysubsection*{Bumblebee}
+\label{subsec:sflake-bbee}
+
+Devices with new NVIDIA graphics chips often don't work right out of the box.
+The best option is to use Bumblebee. `bbswitch` is used to power off
+the NVIDIA chip at startup, this greatly improves battery life.
+
+Bumblebee often doesn't work without fiddling with configuration.
+(See troubleshooting section)
+
+### Ubuntu Setup
+
+If in doubt, check the Ubuntu wiki.
+
+-   `sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic primus primus-libs-ia32`
+-   `bbswitch` should be installed and enabled by default.
+-   If setting up a specific driver from some repository, make sure the right
+    driver is set up with Bumblebeee. See `/etc/bumblebee/bumblebee.conf`
+    (Read the comments in the file)
+-   Reboot
+
+### OpenSUSE Setup
+
+If in doubt, check the OpenSUSE wiki.
+
+-   `sudo zypper in bumblebee bbswitch Mesa-demos-x`
+-   Add user to 'bumblebee' group. `sudo usermod -aG bumblebee $username`
+-   Start/enable bumblebee daemon. `sudo systemctl enable --now bumblebeed`
+-   Blacklist nouveau. `echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/99-local.conf`
+
+    Regenerate initramfs. `sudo mkinitrd`
+-   If you want 32-bit applications (e.g. Steam, Games) to work:
+
+    `zypper in Mesa-libGL1-32bit libX11-6-32bit primus-32bit`
+-   Install the proprietary NVIDIA driver:
+
+        zypper addrepo --refresh http://http.download.nvidia.com/opensuse/leap/<version> NVIDIA
+        zypper install-new-recommends
+
+    Make sure all lines in `/etc/ld.so.conf.d/nvidia-gfxG*.conf` are commented
+    out.  If not, make it look like this:
+
+        #/usr/X11R6/lib64
+        #/usr/X11R6/lib
+
+    and run `sudo ldconfig`.
+
+    Blacklist the nvidia module:
+
+        echo "blacklist nvidia" | sudo tee -a /etc/modprobe.d/99-local.conf
+        sudo mkinitrd
+
+    Setup xorg module directory:
+
+        sudo mkdir -p /usr/lib64/nvidia/xorg/modules/extensions
+        sudo ln -s /usr/lib64/xorg/modules/extensions/nvidia/nvidia-libglx.so /usr/lib64/nvidia/xorg/modules/extensions/libglx.so
+
+    Configure bumblebee: Set the following in `/etc/bumblebee/bumblebee.conf`:
+
+        [bumblebeed]
+        TurnCardOffAtExit=true
+        Driver=nvidia
+
+        [driver-nvidia]
+        LibraryPath=/usr/X11R6/lib64:/usr/X11R6/lib
+        XorgModulePath=/usr/lib64/nvidia/xorg/modules,/usr/lib64/xorg/modules
+
+-   Reboot
+
+### Troubleshooting
+
+Check the distro wikis first, but keep in mind they don't have a lot of 
+troubleshooting information. Other sources:
+
+-   Arch Wiki: https://wiki.archlinux.org/index.php/Bumblebee#Troubleshooting
+-   FAQ of the Bumblebee project on Github:
+    
+    https://github.com/Bumblebee-Project/Bumblebee/wiki
+
+Starting the proprietary NVIDIA settings programm:
+
+`optirun -b none nvidia-settings -c :8`
+
+Common problems:
+
+-   `Bumblebee daemon is not running`
+
+    Start the Bumblebee daemon. `systemctl enable --now bumblebeed.service`
+    (If there is no systemd, use the appropriate init system)
+
+-   `No permission to communicate with the Bumblebee daemon`
+
+    Add the user to the 'bumblebee' group: 
+
+    `gpasswd -a $user bumblebee`
+    And log the user out and in again.
+
+-   If you see flickering or bad performance (under a compositing WM),
+    synchronize primus' display thread with the application's rendering thread:
+    `PRIMUS_SYNC=1 primusrun ...`
+
+-   Mouse lag in games: disable vsync. See 'Running applications'.
+-   Capped to 60 FPS in games: disable vsync. See 'Running applications'.
+
+### Running Applications
+
+Applications can be run on the NVIDIA graphics card by prefixing the command
+with `optirun $command` or `primusrun $command`  (if available, possibly gives
+better framerate sometimes). Note that `optirun $command` doesn't use vsync by
+default, but `primusrun $command` does. It can be disabled by using
+`vblank_mode=0 primusrun $command`.
+
+Launching games from Steam on the NVIDIA graphics card: Go to 'Library', then
+right click on a game and click 'Properties'. Click on 'Set launch options'
+and use a command like `vblank_mode=0 primusrun %command%` (Steam substitues
+%command% for the game).
+
+### Testing The Setup
+
+Check if the graphics card is on:
+
+-   `cat /proc/acpi/bbswitch`
+
+Find out if bumblebee setup works correctly:
+
+-   Run `optirun glxgears` resp. `primusrun glxgears`
+
+(If errors occur, see Troubleshooting section.)
+
+Find out what graphics driver is currently running the desktop:
+
+-   `glxinfo` (look for vendor string)
+-   On GNOME/similiar: Can also use the "Details" GUI tool 
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/640-new-lenovos.md b/install_event/archive/helpers_cheat_sheet/640-new-lenovos.md
new file mode 100644
index 0000000000000000000000000000000000000000..241636e8dee288dedd91fd5fef0c83c8f18a419d
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/640-new-lenovos.md
@@ -0,0 +1,41 @@
+\mysubsection*{openSUSE Install On 2017 Lenovo's}
+\label{subsec:sflake-lenovo}
+
+Some newer Lenovo laptops, including the X1 Carbon and the T470s, refuse to boot the OpenSUSE install medium. Any other install media, e.g. ubuntu sticks, work fine.
+
+To get OpenSUSE on these laptops, do the following:
+
+* Ask the Patrol for a refind stick.
+* Plug in both the refind stick and the openSUSE install stick.
+* Boot the laptop from the refind stick.
+* Once refind shows up, press `esc` to refresh the list of boot media.
+* You should see an entry for opensuse. Select it and hit enter to boot.
+* The OpenSUSE installer should come up now.
+
+### rEFInd Stick Doesn't Work Either
+
+In that case, you can use an ubuntu installer to boot the openSUSE installer:
+
+* Tell the participant to go to the supply desk and request an ubuntu installer (or xubuntu, kubuntu - any kind is fine).
+* Plug in both the ubuntu and opensuse sticks.
+* Boot from the ubuntu stick. 
+* When Grub shows up, press `c` to get to the command line.
+* Type `ls`, you should see a list of partitions in the form `(HD0,GPT1)`. Try to guess which disk (HD0, HD1, HD2...) is the openSUSE Installer - they usually have two partitions. 
+* Type `set root=(HDX,GPT1)`, X being the number of the disk you think is the installer.
+* If you get some error, it was the wrong partition or disk. Reboot and try another.
+* The Kernel files reside in `/boot/x86_64/loader/linux` and `/boot/x86_64/loader/initrd`.
+* Load the vmlinuz by typing: 
+        `vmlinuz /boot/x86_64/loader/linux`
+* Load the initial ramdisk by typing: (change path as required)
+        `initrd /boot/x86_64/loader/initrd`
+* If you can't find the kernel files, you probably loaded the wrong partition or disk. Reboot and try again.
+* Type `boot`, hit enter.
+* If all goes well, the openSUSE installer now boots. Install Linux as normal.
+
+### Booting, But "Invalid Null Terminator String" Error Or "Invalid Repository" Error
+
+In this case, the OpenSUSE install disk is bad. Ask the user to go to the Supply Desk and exchange the usb installer. 
+
+Note that the USB Installer works fine for most other devices - only Lenovos show this kind of error.
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/700-tricks.md b/install_event/archive/helpers_cheat_sheet/700-tricks.md
new file mode 100644
index 0000000000000000000000000000000000000000..d4ecfba44060a09270a5e9325012e16dfd6989f0
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/700-tricks.md
@@ -0,0 +1,3 @@
+\mysection{Various Tricks}
+\label{sec:tricks}
+
diff --git a/install_event/archive/helpers_cheat_sheet/710-tethering.md b/install_event/archive/helpers_cheat_sheet/710-tethering.md
new file mode 100644
index 0000000000000000000000000000000000000000..3997779068b2b78519cadc8f60cd93e6a476c9fa
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/710-tethering.md
@@ -0,0 +1,9 @@
+\mysubsection*{Phone Tethering}
+\label{subsec:tricks-tethering}
+
+In case you have no internet connection:
+
+- Take out your phone (or someone else's phone, don't steal though!) and plug it into your PC via USB
+- On your phone, go to your Network Settings and navigate to USB tethering and turn that on. The exact procedure is different on a case-by-case basis.
+- Be sure to activate WLAN on your phone so you don't use your mobile data.
+
diff --git a/install_event/archive/helpers_cheat_sheet/720-chroot.md b/install_event/archive/helpers_cheat_sheet/720-chroot.md
new file mode 100644
index 0000000000000000000000000000000000000000..a660e6306d61e61e2be669d7a60f774dc71666ab
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/720-chroot.md
@@ -0,0 +1,16 @@
+\mysubsection*{Chroot}
+\label{subsec:tricks-chroot}
+
+To chroot into an installed system from a live iso, do the following:
+
+* `sudo su`
+* `mount /dev/sdaX /mnt`, where `sdaX` is your root partition
+* If you have EFI: `mount /dev/sda1 /mnt/boot/efi` (assuming `sda1` is your EFI partition)
+* `mount -t proc proc /mnt/proc/`
+* `mount -t sysfs sys /mnt/sys/`
+* `mount -o bind /dev /mnt/dev/`
+* `chroot /mnt /bin/bash`
+
+You're in the installed system now, as root. Congrats.
+
+\cleartooddpage
diff --git a/install_event/archive/helpers_cheat_sheet/README.md b/install_event/archive/helpers_cheat_sheet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..952897f8a647125fdb9688cca99dc126d13bde5c
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/README.md
@@ -0,0 +1,5 @@
+# Install Guide Cheatsheet
+
+This repository contains a collection of common problems and their solutions we face during our Install Events. This "cheatsheet" should be printed each Install Event and handed out to our helpers on demand (typically not all helpers need a sheet). The document is written in very shorthand form because the helpers are expected to have enough Linux knowledge to make use of the cheatsheet. In principle, it could also be handed out to course attendants, but it would likely be entirely useless to them.
+
+The format is markdown; we use Pandoc to build a PDF. The buildscript is included in [build.sh](build.sh).
diff --git a/install_event/archive/helpers_cheat_sheet/TODO b/install_event/archive/helpers_cheat_sheet/TODO
new file mode 100644
index 0000000000000000000000000000000000000000..3f77bf1d5319da6cbd408326925097537d7d1a75
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/TODO
@@ -0,0 +1,7 @@
+[X] What do if no shrink partitions? -- Mickey
+[ ] Ubuntu Broadcom
+[ ] Bootcamp on older Macs
+[ ] How to 32-bit EFI
+[ ] SP4 needs testing on hardware
+[x] How to GRUB config
+[x] Ubunut: How to use apt
diff --git a/install_event/archive/helpers_cheat_sheet/before_body.latex b/install_event/archive/helpers_cheat_sheet/before_body.latex
new file mode 100644
index 0000000000000000000000000000000000000000..ff464f3813edcb5009d458ac3e50c95a35a2fcc6
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/before_body.latex
@@ -0,0 +1 @@
+\pagestyle{installguide}
diff --git a/install_event/archive/helpers_cheat_sheet/build.sh b/install_event/archive/helpers_cheat_sheet/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..937f6db1eec5cd81e19089863c8b95973a9977cc
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/build.sh
@@ -0,0 +1,2 @@
+#! /bin/sh
+pandoc [0-9][0-9][0-9]-*.md --include-in-header=headers.latex --include-before-body=before_body.latex --listings --metadata=paragraph:"0" --metadata=subparagraph:"0" --variable=papersize:"a4paper" --number-section --toc --toc-depth=4 -o cheatsheet.pdf
diff --git a/install_event/archive/helpers_cheat_sheet/headers.latex b/install_event/archive/helpers_cheat_sheet/headers.latex
new file mode 100644
index 0000000000000000000000000000000000000000..93491fb601aae15525fccb87cf8ff3bcba43eeff
--- /dev/null
+++ b/install_event/archive/helpers_cheat_sheet/headers.latex
@@ -0,0 +1,309 @@
+\makeatletter % undo the wrong changes made by mathspec
+\let\RequirePackage\original@RequirePackage
+\let\usepackage\RequirePackage
+\makeatother
+
+% New - Start
+\usepackage{nameref} % Better references used by hyperref implicitly - We need it though explicitly called for GetTitleStringSetup
+\usepackage{setspace}
+\usepackage[dvipsnames,usenames]{color} % for background color
+\usepackage{graphicx} % import graphics/images
+\usepackage[font=scriptsize,format=plain,labelfont=bf,textfont=it,justification=justified,singlelinecheck=false,skip=0.05cm,labelsep=endash]{caption} % manage captions of figures
+\usepackage[a4paper,left=20mm,right=20mm,top=28mm,bottom=26mm]{geometry} % manage global document page setup
+% New - End
+
+\usepackage{array}
+\usepackage[compact,pagestyles,extramarks]{titlesec} % Set pagestyle, header and footer
+
+\usepackage{etoolbox} % Manipulate commands by pre/appending to them and patching them
+\usepackage{xparse} % New way of defining document-wide commands with more flexibility
+\usepackage{xspace} % Smart spacing when using \newcommand for global strings
+\usepackage[most]{tcolorbox} % Another way of drawing textboxes
+
+% New - Start
+\usepackage{wasysym} % provides \ocircle and \Box
+\usepackage{forloop} % used for \Qrating and \Qlines
+\usepackage{ifthen} % used for \Qitem and \QItem
+
+\usepackage{booktabs} % Beautiful tables
+
+\usepackage{stackengine} % Used for drawing the graphic in \warn
+\usepackage{scalerel} % Used for scaling the graphic in \warn
+
+\usepackage{colortbl}
+\usepackage{xcolor}
+% New - End
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% Counter manipulation %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Allow only section numbering
+\setcounter{secnumdepth}{1}
+
+
+%%%%%%%%%%%%%%%%%%%
+% Custom sections %
+%%%%%%%%%%%%%%%%%%%
+
+\makeatletter
+\def\refaddtocounter#1#2{
+        \addtocounter{#1}{#2}
+        \protected@edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname }
+}
+
+% Section that is not visible but still behaves like a section, may have a relative offset
+\DeclareDocumentCommand{\sectionunlisted}{ m O{1} }{
+        \refaddtocounter{section}{#2}
+        \protected@edef \@currentlabel {\csname p@section\endcsname \csname thesection\endcsname}
+        \NR@gettitle{#1}
+        \sectionmark{#1} % Add section mark (header)
+        \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1} % Add section to ToC
+}
+
+% Emit a new section with a relative offset section number
+\DeclareDocumentCommand{\sectionrelnum}{ m O{-1}} {
+        \refaddtocounter{section}{#2} % Increment section counter by #1
+        \section{#1} % Print the section
+        \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% Add section to ToC
+}
+
+% Subsection that is not visible but still behaves like a subsection, may have a relative offset
+\DeclareDocumentCommand{\subsectionunlisted}{ m O{1} }{
+        \refaddtocounter{subsection}{#2}
+        \protected@edef \@currentlabel {\csname p@subsection\endcsname \csname thesubsection\endcsname}
+        \NR@gettitle{#1}
+        \subsectionmark{#1} % Add subsection mark (header)
+        \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1} % Add subsection to ToC
+}
+
+% Emit a new subsection with a relative offset subsection number
+\DeclareDocumentCommand{\subsectionrelnum}{ m O{-1} }{
+        \refaddtocounter{subsection}{#2} % Increment section counter by #2
+        \subsection{#1} % Print the subsection
+        \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1}% Add subsection to ToC
+}
+
+% Emit a hidden subsection that is not listed in the ToC but still sets the relative counter
+\DeclareDocumentCommand{\subsectionhidden}{ m O{0} }{
+        \refaddtocounter{subsection}{#2}
+        \protected@edef \@currentlabel {\csname p@subsection\endcsname \csname thesubsection\endcsname}
+        \NR@gettitle{#1}
+        \subsectionmark{#1} % Add subsection mark (header)
+}
+
+% Call a new customized section
+% Arg1: Input * if we want an empty and hidden subsection
+% Arg2: Switch for special section types
+% Arg3: Passed to the special section type
+% Arg4: Section name
+\DeclareDocumentCommand{\mysection}{ s o o m }{
+        \IfNoValueTF {#2}{
+                \section{#4}
+        }{
+                \IfValueTF {#3}{
+                        \csname section#2\endcsname{#4}[#3]
+                }{
+                        \csname section#2\endcsname{#4}
+                }
+        }
+        \IfBooleanT {#1}{
+                % Emit the special empty subsection
+                \mysubsection{}[hidden]
+        }
+}
+
+% Call a new customized subsection
+% Arg1: Input * if we want to mirror our subsection prepended with {\ --\ }
+% Arg2: Switch for special subsection types
+% Arg3: Passed to the special subsection type
+% Arg4: Subsection name
+\DeclareDocumentCommand{\mysubsection}{ s o o m }{
+        \IfBooleanT {#1}{
+                % We want a mirrored and hidden subsection
+                \subsectionhidden{\ --\ #4}
+        }
+        \IfNoValueTF {#2} {
+                \subsection{#4}
+        }{
+                \IfValueT {#3}{
+                        \csname subsection#2\endcsname{#4}[#3]
+                }{
+                        \csname subsection#2\endcsname{#4}
+                }
+        }
+        \IfBooleanT {#1}{
+                % We want a mirrored and hidden subsection
+                \subsectionhidden{\ --\ #4}
+        }
+}
+
+
+%%%%%%%%
+% MISC %
+%%%%%%%%
+
+% Fix the linebreaks for source code listings
+\lstset{
+    basicstyle=\ttfamily,
+    frame=single,
+    breaklines=true,
+    postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}}
+    %postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookrightarrow\space}}
+}
+
+% Default label
+\def\labelitemi{--}
+
+% Default path for images
+\graphicspath{{img/}}
+
+% Default graphics extensions when not explicitly mentioned - Ordered list
+\DeclareGraphicsExtensions{.png,.jpg,.pdf}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Document layout & spacings %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Spacings in the document
+\setlength{\columnsep}{1.5\baselineskip}
+\titlespacing{\section}{0pt}{2.5ex plus 0.5ex minus 0.5ex}{0.5ex plus 0.5ex}
+\titlespacing{\subsection}{0pt}{2.5ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\titlespacing{\subsubsection}{0pt}{2.5ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\titlespacing{\subsubsubsection}{0pt}{2.5ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\setlength{\parskip}{1mm}
+\setlength{\parsep}{0pt}
+
+% Penalties for widows/orphans (lines at top/bottom of page ending/starting)
+\widowpenalty = 500 % default: 150
+\clubpenalty = 500 % default: 150
+
+% Hyphenation penalties and settings
+\hyphenpenalty = 1000
+\tolerance = 2000
+%\emergencystretch=10pt
+\lefthyphenmin = 4
+\righthyphenmin = 4
+
+% Make sure next chapter starts on odd page
+\newcommand{\cleartooddpage}{
+	\clearpage
+	\ifodd
+		\value{page}
+	\else
+		\null
+		\clearpage
+	\fi
+    %\setcounter{page}{1}
+}
+
+
+%%%%%%%%%%%%%%%%%%%
+% Custom commands %
+%%%%%%%%%%%%%%%%%%%
+
+% Draws a danger sign, accepts a bordercolour and size as optional arguments
+\DeclareDocumentCommand{\dangersign}{ O{red} O{3ex} }{
+        \renewcommand\stacktype{L}
+    \scaleto{\stackon[1.3pt]{\color{#1}$$\triangle$$}{\tiny\bfseries !}}{#2}
+}
+
+% Monospaced shell commands
+\newcommand{\shellcommand}[1]{\indent\indent\texttt{#1}}
+\newcommand{\shellcommandr}[1]{\indent\indent\texttt{#1}}
+
+% Troubleshooting box
+\DeclareDocumentCommand{\troubleshoot}{ +m }{
+        \begin{tcolorbox}[breakable,enhanced]
+                #1
+        \end{tcolorbox}
+}
+
+% Free space recommendations for Linux installs
+\newcommand{\freespacerec}{40\,GB\xspace}
+\newcommand{\freespacemin}{20\,GB\xspace}
+
+% Some default shortcuts for everyone to use
+\newcommand{\eg}{e.g.\xspace}
+\newcommand{\ie}{i.e.\xspace}
+\newcommand{\os}{operating system\xspace}
+\newcommand{\Os}{Operating system\xspace}
+\newcommand{\mac}{\mbox{Max\,OS\,X}\xspace}
+\newcommand{\winseven}{\mbox{Windows\,7}\xspace}
+\newcommand{\wineight}{\mbox{Windows\,8}\xspace}
+\newcommand{\winten}{\mbox{Windows\,10}\xspace}
+\newcommand{\deskenvs}{Desktop Environment\xspace}
+%\newcommand{}{}
+
+% Reference section by number and name
+\newcommand{\secref}[1]{\mbox{\ref{#1}.\,\nameref{#1}}}
+
+% Reference subsection by sectionnumber, sectionname and subsectionname
+\newcommand{\subsecref}[2]{\mbox{\ref{#1}.\,\nameref{#1}\nameref{#2}}}
+
+% Standardized info; Informs the reader of why something is done, can be ommitted
+\DeclareDocumentCommand{\info}{ m }{
+        \virtualbox{\emph{Info: }}[#1]
+}
+
+% Standardized note; Requires to be read and adapt the solution accordingly
+\DeclareDocumentCommand{\note}{ m }{
+        \virtualbox{\textbf{Note: }}[#1]
+}
+
+% Standardized warning; Give a general warning about things to happen
+\DeclareDocumentCommand{\warn}{ m }{
+        \virtualbox{\dangersign\textbf{\textsc{Warning: }}}[#1]
+}
+
+% Standardized caution; Pay extra attention on this.
+\DeclareDocumentCommand{\caution}{ m }{
+        \virtualbox{\dangersign[yellow]\textbf{\textsc{Caution: }}}[#1]
+}
+
+% Standardized important; Important notification of what can be ignored for now.
+\DeclareDocumentCommand{\important}{ m }{
+        \virtualbox{\textbf{\textsc{Important: }}}[#1]
+}
+
+% Standardized suggestions; Our official suggestion on a topic
+\DeclareDocumentCommand{\suggestions}{ m }{
+        \virtualbox{\textbf{Suggestions: }}[#1]
+}
+
+% A quick command for a nicer DE mentioning
+\DeclareDocumentCommand{\de}{ m }{
+        \virtualbox{\textbf{DEs: }}[#1]
+}
+
+\DeclareDocumentCommand{\virtualbox}{ m O{Fill me in!} }{
+        \parbox[t]{\widthof{#1}}{#1}
+        \parbox[t]{\linewidth-\widthof{#1}}{#2}
+}
+
+
+%%%%%%%%%%%%%%%
+% Page styles %
+%%%%%%%%%%%%%%%
+
+% Required to keep access all these different extramarks
+\settitlemarks*{section,subsection}
+
+% Style applied to the page when a section is defined
+\newpagestyle{installguide}{
+        \setheadrule{.55pt}
+        \setfoot[][][] % even pages
+    	{\includegraphics[width=2cm]{by-nc-sa_eu}} % odd-left
+        {} % odd-centre
+        {\includegraphics[width=4cm]{TheAlt-bw}} % odd-right
+        \sethead[][][] % even pages
+        {Cheat Sheet -- Version 1.0 } % odd-left
+        %{\firstextramarks{section}\textsc{\textbf\sectiontitle}{ }\emph{\firstextramarks{subsection}\subsectiontitle}}
+        {\firstextramarks{section}\textbf\sectiontitle \firstextramarks{subsection}\subsectiontitle}
+        {\firstextramarks{section}\thesection{ -- }\thepage} % odd-right
+}
+
+\makeatother
+\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
diff --git a/install_event/archive/helpers_cheat_sheet/img/TheAlt-bw.png b/install_event/archive/helpers_cheat_sheet/img/TheAlt-bw.png
new file mode 100644
index 0000000000000000000000000000000000000000..d85dcf6dbd40da64ecbbdc860f4dc5a21ce62ea9
Binary files /dev/null and b/install_event/archive/helpers_cheat_sheet/img/TheAlt-bw.png differ
diff --git a/install_event/archive/helpers_cheat_sheet/img/by-nc-sa_eu.png b/install_event/archive/helpers_cheat_sheet/img/by-nc-sa_eu.png
new file mode 100644
index 0000000000000000000000000000000000000000..433bc81751d21ffbfc2c13456a23ff60dc341eff
Binary files /dev/null and b/install_event/archive/helpers_cheat_sheet/img/by-nc-sa_eu.png differ
diff --git a/install_event/archive/helpers_cheat_sheet/img/suse_bios_mode.jpg b/install_event/archive/helpers_cheat_sheet/img/suse_bios_mode.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e3f1a7cfcca5863ffa9024935640a0c2270764c4
Binary files /dev/null and b/install_event/archive/helpers_cheat_sheet/img/suse_bios_mode.jpg differ
diff --git a/install_event/archive/helpers_cheat_sheet/img/suse_efi_mode.jpg b/install_event/archive/helpers_cheat_sheet/img/suse_efi_mode.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..542513fd6311ef0b699319074a91978385e2a7f3
Binary files /dev/null and b/install_event/archive/helpers_cheat_sheet/img/suse_efi_mode.jpg differ
diff --git a/install_event/installguide_complete.pdf b/install_event/archive/installguide_complete.pdf
similarity index 100%
rename from install_event/installguide_complete.pdf
rename to install_event/archive/installguide_complete.pdf
diff --git a/install_event/archive/installguide_complete/README.md b/install_event/archive/installguide_complete/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..cd88b607287018008c6c05ea7d4b2ebc5298a03c
--- /dev/null
+++ b/install_event/archive/installguide_complete/README.md
@@ -0,0 +1,9 @@
+# Install Guide
+
+This repository contains the Linux installation guide handed out to our course attendants each Install Event. The guide is written in such a way that a person with no Linux knowledge (and only average IT knowledge) should be able to understand it.
+
+The guide is split into multiple parts: There are separate installation instructions that explain how to install Linux alongside Windows 7, Windows 10, OS X, etc., and sections that explain how to install Ubuntu, OpenSUSE etc.. Thus, the central feature of this guide is that attendants do not receive the entire installation guide, which would be confusing, but instead only receive the parts relevant to them. To facilitate this, the guide is split into multiple parts that are found in the various subdirectories. Course attendants each fill out a questionnaire handed to them at the beginning of the Install Events so that we know which parts of the guide they need. We then staple together the printed sheets of these parts and hand them to the course attendants. This way, each attendant gets a "complete" installation guide that only consists of a subset of all the material in this repository - we wouldn't want a Mac user to also get installation instructions for Windows 10.
+
+The build script is found in [build.sh](build.sh) and the separate PDFs for the parts land in the `parts` directory (not present in this repository!). This script also builds the **entire** guide and outputs it to `installguide.pdf`. Remember: We do **not** hand out this entire guide to the attendants. `installguide.pdf` primarily exists because compiling `installguide.tex` while editing the guide and then looking at a PDF containing all of it, is much easier than running the build script every time and look at the individual parts (the build script is also quite slow).
+
+
diff --git a/install_event/archive/installguide_complete/TODO b/install_event/archive/installguide_complete/TODO
new file mode 100644
index 0000000000000000000000000000000000000000..acd4773251cb67fe37cc8793e3fa4e024b7b5a07
--- /dev/null
+++ b/install_event/archive/installguide_complete/TODO
@@ -0,0 +1,106 @@
+- = pending
+x = done
+a = assigned (assignment is valid until due date)
+? = maybe (we still need to decide whether we do this)
+
+TODO:
+- Latex related: Add documentation for each command used and a short info on each package imported
+- Add more consistency to the guide (e.g. orderings, capitalisations, etc.)
+- mention basic mouseless controls for installer or mention that ppl can use usb mouse
+- Verify OpenSUSE graphic drivers configuration
+- How to enable natural scrolling
+- Control reading of Shrinking partitions on Windows (all)
+- rework VPN instructions. From an email from visvanath:
+	2. Das Einrichten von ETH-VPN ueberarbeiten
+
+	Die Instruktionen auf dem TN-Blatt stimmen nicht, bzw. so kann
+	man nicht connecten. Das Blatt habe ich nicht, aus dem Kopf
+
+	a. Dort hiess es networkmanager-openconnect zu installieren.
+	Aber wenn man dann eine neue VPN-Konfig. beginnt hat man nur die
+	Moeglichkeit eine vorhandene Konfigdatei auszuwaehlen. Hingegen
+	wenn  man networkmanager-vpnc und vpnc-gnome installiert, dann
+	unter Neue Verbindung steht VPNC zur Wahl.
+
+	b. Das nachfolgende Dialog hat einige Parameter, eine Doku ist
+	fast ein muss. Wieder aus dem Kopf, und sinngemaess:
+	VPN-Server: sslvpn.ethz.ch
+	User: deine E-Mail
+	Passwort: Falls eingeben moechte, das Feld am Knopf rechts
+	entsperren und eingeben (sonst interaktiv)
+
+	Group: ETHZ-special
+	Group Password: ETHZ.special, ebenfalls entsperren
+
+	Gruss
+	Visvanath
+
+
+DONE:
+x Distro cnfig suse: explain how to get rid of suse repo
+x Make the config section less crap
+x We need some sort of guideline as to how much disk space one should give to linux.
+x We're currently not listing any disadvantages for OpenSUSE, pls fix
+x DE Flowchart: A non-HiDPI laptop does not NEED to use xfce, we should branch once more there (minimal vs. all the features).
+x DE Flowchart: We should add a rough heuristic as to what is considered a 'fast' PC
+x Fragebogen: add a blank line for additional comments i.e. if the pc is 32bit or has other special needs (not to be filled in by the installee but by the helpers as an info if another person will help that pc ... useful when queens get preempted)
+x Distro desc: tell about demo laptops to test distros
+x The partitioning plan => list (p. 2) is contradictory to the size recommendations on the first page (Chapter 7 and 8 missing)
+x Up minimum recommended space to free to at least 30GB to accomdate for a swap partition as well (Mickey recommends 40 to allow installing one or two large programs)
+x openconnect not mentioned in ubuntu config section
+x Mention OpenSUSE Leap being 64bit only!
+x Plus, we should point out in the testing section that 'if graphics don't work, refer to the config section to install additional drivers' (similarly for wifi). It's confusing as it is now.
+x On multiple occasions, 'Super Key (Windows Key)' is used. We should also mention the corresponding Mac key.
+x KDE config: The dolphin section should be a bit more precise as to how to disable the single click thing.
+x Search the entire document for "apt autoremove" and if found replace by "apt-get autoremove" because the feature doesn't seem to be implemented in apt yet.
+x Add an MBR vs GPT question to the questionnaire
+x Fill out distro section for the different new fields.
+x HiDPI Unity
+x HiDPI KDE
+x Keyboard layout KDE
+x Fix subsection references
+x The OpenSUSE config section doesn't explain how to install graphics drivers.(added solution from SUSI website no clue if that works... it looked sort of nice)
+x Verify whether actions need to be taken to prevent suse from fucking up refind on macs -> yes
+x Preparation win8+: Typo and confusing sentence: "Right click the partitn that you freed space on from last step and click Shrink Volume..." => rephrase!
+x Preparation on Windows systems: Partition size contradiction with the partitionning guide! Instead of proposing a size, refer to the partitionning guide.
+x Preparation on Windows systems: Disable Fast Boot: The Power options are not visible in the Control Panel on all systems (fuck Windoof...) - replace by typing "power" in the start menu
+x Questionnaire: pt. 5: Move Mac below Windows, because some people thought: "Oh, I don't have mac, therefore it's not EFI, therefore it's Legacy"
+x Testing -> Testing your new Linux System: My folks ended up in Windows (due to the last step) and didn't know what to do. Below "Important", add a note that tells people to restart the computer, then pick their Linux.
+x Distro Config *buntu, Upgrading: My folks didn't know what method to pick. Sounds obvious to us, but if you don't know what GUI or console means. It's important to point out that either way may be chosen and that it doesn't matter later on.
+x Distro Config *buntu, Upgrading: Say that the "Software Updater" is called "Aktualisierungsverwaltung" and that one can start it by typing "update" in the start menu.
+x Distro Config *buntu, Upgrading: After installing the system updates, the user should reboot the computer (first time Update only)
+x Distro Config *buntu, Finding software, pt. 2: The search field is in the top middle under Xubuntu (maybe it has moved on all *buntus)
+x Distro Config *buntu, Codecs: Those damn extras can't be found in the software center anymore (german system) => specify console method. Attention: The command alone is not enough: for the EULA, one must press arrow key (to go to "ok"), then enter, then left (to go to "Yes"), then Enter again
+x DE config XFCE: Under Xubuntu, the panel is in the top, because fuck you. So we can't write "bottom panel".
+x DE config XFCE: Under Xubuntu, Workspaces are not visible by default (yes, also because fuck you). Rephrase or case distinction.
+x DE config XFCE: Under Xubuntu, Whiskermenu is already default (Wohoo!) so "Replace the classic start menu" is not necessary for Xubuntu.
+x DE config (all): Since we have no space on the next page, we should say here what the table on the last page is and say goodbye (maybe also refer to the Stammtische etc.)
+x Adjust text / sizes in order to fit on the pages
+x Mention in the testing section that people should return their USB key
+x Add a "if this doesn't work ask a helper" clause to the win8+ prepare (BIOS config) as well as boot section (because setting EFI vars might not work on very old systems and F-keys must be used instead)
+x Preparation Win8+: Setting UEFI/Legacy: On very old system, there is no such setting (needs to be pointed out)
+x Questionnaire: pt. 2 and 3 have confusing links ("We have provided you a summary of some popular ones on 1. Welcome to the Install Event! Distribution"). Use something like "next page" instead.
+x Windows 7 and earlier partitioning guides
+x Windows 8 and later partitioning guides
+x Installer Overview *buntu: Welcome screen and prep, pt. 5: Not clear that the partitioning page is actually in this guide (test person searched on the computer's screen) => clarify
+
+UNCERTAIN:
+? Distro Config *buntu: On newer Ubuntu systems (at least Xubuntu), there is a new software center thingy that integrates the updater of all programs such as system, Additional Drivers and Language support. The program is, however, not very responsive (it didn't show the progress when I tried). It might be worth to look at it and decide if we want to replace the three tasks by one.
+? Distro desc: maybe create a pro-contra-table?  (with a nice-to-know section maybe)
+? Distro desc: maybe add links to websites with more info.
+
+
+Cheatsheet:
+- OpenSUSE broadcom b43-fwcutter --- THIS should go into the cheatsheet
+- Mac Diagnosis List
+- 32bit EFI and how to deal with it
+- 32bit guide
+- That bootloader hack that's already on it
+- Our openSUSE repo and how to add it
+- Blacklist nouveau / use nomodeset
+- how to OpenSUSE fallback install interface
+- how to uninstall grub (to get refind back on macs with suse)
+- broadcom wifi drivers under opensuse (package broadcom-wl in packman repo)
+  or: command install_bcm43xx_firmware 
+- overview of package manager commands
+- mention the possibility of legacy boot win8+ devices and how to go about booting usb keys off them
diff --git a/install_event/archive/installguide_complete/build.sh b/install_event/archive/installguide_complete/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a8de50631e43ce17ed8ba2995ea0441b7734a0fc
--- /dev/null
+++ b/install_event/archive/installguide_complete/build.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+# print a short help text
+printhelp() {
+    echo "This script separates the TheAlternative Install Guide into its subchapters to simplify printing."
+    echo "It is designed to be used within the Install Guide's git directory."
+    echo "The PDF is separated based on its section titles, so if these change, this script needs to be modified."
+    echo "Make sure the installguide.pdf is generated and up to date."
+    echo "Usage: build.sh [-vh]"
+    echo "-v: verbose mode, print all the warnings from ghostscript"
+    echo "-h: print this help and exit"
+}
+
+extract() {
+# Extracts consecutive pages from installguide.pdf where the first page is the first one containing begin-regexp
+# and the last page is the last one containing end-regexp. Output is saved to parts/output-filename.pdf
+# 
+# usage: extract begin-regexp end-regexp output-filename
+#        extract begin-and-end-regexp output-filename
+
+    begin_str="$1"
+
+    # assign end_str and output based on the number of arguments
+    if [[ $# -eq 2 ]]; then
+        end_str="$1"
+        output="$2"
+    fi
+    if [[ $# -eq 3 ]]; then
+        end_str="$2"
+        output="$( echo $3 | sed -e 's/ /_/g' )"
+    fi
+
+    echo " ---- Extracting $output.pdf ..."
+
+    # find the page numbers of the first appearance of begin_str and the last appearance of end_str
+    begin="$( pdfgrep -n -C 1 "$begin_str" installguide.pdf | head -n 1 | grep -Eo '^[0-9]*' )"
+    end="$( pdfgrep -n -C 1 "$end_str" installguide.pdf | tail -n 1 | grep -Eo '^[0-9]*' )"
+
+    # command used to extract page range from PDF
+	gscommand="gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
+	   -dFirstPage=$begin \
+	   -dLastPage=$end \
+	   -sOutputFile=parts/$output.pdf \
+	   installguide.pdf" 
+
+    if [[ "$verbose" == "true" ]]; then
+        $gscommand
+    else # If not verbose, discard warnings. (There always appear tons of warnings because invalid hyperlinks are discarded, which is fine but annoying)
+        $gscommand 2>/dev/null
+    fi
+
+}
+
+# parse options
+verbose="false"
+while getopts ":hv" opt; do
+    case $opt in
+        h)
+            printhelp
+            exit 1
+            ;;
+        v)
+            verbose="true"
+            ;;
+        \?)
+            printhelp
+            exit 1
+            ;;
+    esac
+done
+
+# check for dependencies
+if ! pdfgrep -V; then
+    echo "This script requires pdfgrep. Please install pdfgrep and try again."
+    exit 2
+fi
+
+if ! gs -v; then
+    echo "This script requires ghostscript. Please install ghostscript and try again."
+    exit 2
+fi
+
+pdflatex installguide.tex
+echo
+echo
+
+mkdir -p parts
+
+
+# extract all the needed parts
+
+# If you need to add a section to this ugly hard coded mess:
+# - find a regexp such that the first matching page is the first page of your section
+# - find another regexp such that the last matching page is the last page of your section
+# - add another extract statement below. First argument is begin-regexp, second argument is end-regexp, 
+#   third argument is name of output file. If both regexp are the same, the second argument can be omitted.
+#
+# You can test your regexp with pdfgrep -n
+
+extract 'Welcome to the Install Event!' 'Welcome to the Install Event! – Desktop Environment' '1_introduction'
+extract 'Preparation.{0,20}Windows 7' 'Boot – Windows 7' '2_prep_win7'
+extract 'Preparation.{0,20}Windows 8' 'Boot – Windows 8' '2_prep_win8-10'
+extract 'Preparation – Mac OS X' 'Boot – Mac OS X' '2_prep_mac'
+
+# This hardcoding sucks D (big time) please fix this in the future !!
+extract 'Installer overview – OpenSUSE' 'Version {0,100}.{0,100}Partitioning – OpenSUSE' '3_install_partition_suse'
+extract 'Installer overview – \*buntu' 'Version {0,100}.{0,100}Partitioning – \*buntu' '3_install_partition_buntu'
+extract 'Installer overview – Fedora' 'Version {0,100}.{0,100}Partitioning – Fedora' '3_install_partition_fedora'
+extract 'Version {0,100}.{0,100}Partitioning Plan' 'Partitioning Plan' '4_partitionplan'
+extract 'Version {0,100}.{0,100}Testing' '5_testing'
+extract 'Distribution Configuration – OpenSUSE' '6_distroconfig_suse'
+extract 'Distribution Configuration – \*buntu' '6_distroconfig_buntu'
+extract 'Distribution Configuration – Fedora' '6_distroconfig_fedora'
+extract 'Desktop Environment Configuration – GNOME' '7_deconfig_gnome'
+extract 'Desktop Environment Configuration – KDE' '7_deconfig_kde'
+extract 'Desktop Environment Configuration – XFCE' '7_deconfig_xfce'
+extract 'Desktop Environment Configuration – Unity' '7_deconfig_unity'
+extract 'The End' 'Software Recommendations' '8_software'
+
+
+
+
diff --git a/install_event/archive/installguide_complete/buntu/config.tex b/install_event/archive/installguide_complete/buntu/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..15d55a067aa75407e8c9f084be69a9ba502a1bef
--- /dev/null
+++ b/install_event/archive/installguide_complete/buntu/config.tex
@@ -0,0 +1,81 @@
+% vim: ft=tex
+% ubuntu config
+
+\input{commons/config}
+
+\subsubsection{Upgrading \& important packages}
+You should update your system as soon as possible to get the newest packages after the installation. You can do this through the GUI or using the console. Either method is fine.
+\begin{itemize}
+	\item \textbf{GUI method:} \\
+	Start the program \textit{Software Updater} (german: \textit{Aktualisierungsverwaltung}). You can find it by typing \textit{update} into your console on most Desktop Environments.
+    \item Accept to install the proposed updates.
+    \item Reboot your computer.
+	\item \textbf{Console method:} \\
+	This updates the repositories: \shellcommand{sudo apt update} \\
+	This upgrades the packages on the system: \shellcommand{sudo apt upgrade}
+    This reboots your laptop: \shellcommand{sudo reboot}
+\end{itemize}
+
+\subsubsection{Finding software \& packages}
+To install new software, you can use either Ubuntu's Software Center or the console (faster). Note that both methods use the built-in package manager, so the software you install using either method will automatically be taken care of when installing updates. That means it does not matter which one you choose. 
+
+\begin{enumerate}
+	\item Open the program \textit{Software Center}.
+	\item Type the name of the software you are looking for in the search field on the top.
+\end{enumerate}
+
+The Software Center is both a place to get Free Software as well as a store for magazines and programs. You can use it to install and remove packages to / from your system.
+
+\textbf{-- Console method:}
+\begin{enumerate}
+	\item Search for packages on the command line using \shellcommand{apt search your-search-term}
+	\item Once you found what you were looking for, install it with \shellcommand{sudo apt install your-favourite-package}
+	\item To uninstall software, use \shellcommand{sudo apt-get autoremove package-to-uninstall}
+\end{enumerate}
+
+\subsubsection{Additional Drivers}
+\begin{itemize}
+	\item Start the program \textit{Additional Drivers}. The system will check if your hardware needs any.
+	\item For graphics drivers, only install them if your current performance is insufficient.
+	\item For WiFi / network drivers (e.g.\ Broadcom), always install them if available.
+	\item Sometimes, there are strange options like coprocessors, leave them unchanged.
+\end{itemize}
+
+\subsubsection{Connecting to ETH WiFi}
+\begin{enumerate}
+	\item Set the \textit{Authentification} field (usually 2nd from top) to \textit{Tunneled TLS} and \textit{Inner Authentification} to \textit{MSCHAPv2}.
+	\item Fill in your ETH credentials into \textit{User Name} and \textit{Password} in the bottom (for the eduroam network, type yournethzusername@ethz.ch as username).
+	\item Leave the other fields as they are.
+	\item Confirm that you don't want to use a CA certificate.
+\end{enumerate}
+
+\pagebreak
+\subsubsection{Connecting to ETH VPN}
+No need for Cisco AnyConnect, simply do the following:
+\begin{enumerate}
+	\item Install the package \textit{network-manager-openconnect}.
+	\item Click on the network icon in your system tray.
+	\item Now in your WiFi menu, pick \textit{VPN Connections} (you may have to right click your network icon to see the option).
+	\item \textit{Add a VPN connection...}.
+	\item Enter a name on top (e.g.\ ETH VPN), then in \textit{VPN > Gateway} enter \textit{sslvpn.ethz.ch}, save (leave all options as they are).
+	\item Click on the network icon in your system tray again, and select your newly created network under \textit{VPN connections}.
+\end{enumerate}
+
+\subsubsection{Language support}
+\begin{enumerate}
+	\item In the system settings, go to the point \textit{Language Support}.
+	\item Your system might complain about missing translations because they didn't fit on the install stick. Tell Ubuntu to install those now.
+	\item You can also install additional languages (e.g.\ for spelling in LibreOffice).
+	\item The main system language can be changed by re-arranging languages (drag 'n drop).
+\end{enumerate}
+
+\subsubsection{Get more codecs}
+Your system may not have support for playing mp3's, DVDs etc. yet because those are proprietary packages that some Free Software enthusiasts dislike. To get those codecs, do the following:
+\begin{itemize}
+	\item install the package \textit{ubuntu-restricted-extras} (respectively lubuntu-... / xubuntu-... / kubuntu-restricted-extras).
+\end{itemize}
+
+\note{If you can't find \textit{ubuntu-restricted-extras} in the Software Center, use the console method (see above under \textit{Finding software}. When you do that, you will have to accept the EULA by selecting \textit{ok} and \textit{yes} with your arrow keys when prompted.}
+
+\medskip
+At this point, any problem you detected in the Testing Section should be solved. If not, don't hesitate to ask a helper.
diff --git a/install_event/archive/installguide_complete/buntu/overview.tex b/install_event/archive/installguide_complete/buntu/overview.tex
new file mode 100644
index 0000000000000000000000000000000000000000..cb6d7e548d4356a422ff47a8e017658f4fa563e7
--- /dev/null
+++ b/install_event/archive/installguide_complete/buntu/overview.tex
@@ -0,0 +1,46 @@
+\subsubsection{Starting the installer}
+The behaviour of the Ubuntu installer differs slightly depending on whether you have an EFI or Legacy system.
+
+On an \emph{EFI} system, a text menu pops up.
+
+\begin{enumerate}
+	\item Select \textit{Install Ubuntu} using your arrow keys.
+	\item Confirm with \textit{Enter}.
+	\item \note{If you wait for too long, the menu will disappear and use the default option \textit{Try Ubuntu}. If that happens, wait for the system to start up completely and then use the shortcut \textit{Install Ubuntu} that appears on the desktop.}
+\end{enumerate}
+
+On a \emph{Legacy} system, a loading screen appears, and after a while you will be prompted whether you want to try or install Ubuntu. Select \textit{Install Ubuntu}.
+
+If you want, you can now plug in an ethernet (LAN) cable to your computer. If you don't have a LAN port, you can get a LAN to USB adapter at the Supply Desk.
+
+\subsubsection{Welcome screen and preparation}
+
+\begin{enumerate}
+	\item Ubuntu now asks for your preferred language. Select it and press Next.
+	\item If you don't use an ethernet cable, the installer will now ask you to connect to a WiFi network. You can use the ETH WiFi. Do not use the Public WiFi. If you can't get it to work right away, select \textit{Don't connect to a WiFi network} and continue without an internet connection. Don't worry, you can upgrade your software later on.
+	\item Be sure to select to install 3rd party software.
+	\item If you are connected to the Internet, you may check the box that installs updates during install.
+	\item After pressing Next, you will arrive at the partitioning screen. Please refer to \emph{\subsecref{sec:part}{subsec:part-buntu}} for more information on this.
+\end{enumerate}
+
+\subsubsection{Partitioning}
+Now we partition your system and assign Linux some sections of the hard drive. Please refer to \emph{\subsecref{sec:part}{subsec:part-buntu}} for this part.
+
+\subsubsection{Language and keyboard}
+Here, we will set the
+\begin{enumerate}
+	\item After partitioning, the installer will ask you where you are. Select the according city. This will affect the time zone settings of your new Ubuntu. Click \textit{continue}.
+	\item On the next screen, you can set your keyboard layout. If you don't know what it's called, click on \textit{Detect Keyboard Layout} and follow the instructions.
+\end{enumerate}
+
+\subsubsection{User account}
+
+\begin{enumerate}
+	\item Now, you will create your user account. Fill in the details in this form.
+	\item Note that you can give your computer a name. Name it something cool!
+	\item You can select whether you want to be logged in automatically when you start your PC or not. That is more convenient, but less secure. Pick whatever you want.
+	\item If you're concerned about security, you can encrypt your home folder by ticking the corresponding box. Note that this might slow down file access. There are better options of encrypting your laptop than this - if you're interested in that, ask a helper.
+	\item If you're done, click \textit{Continue}. The install will now start. This will take a while - take a break and get some food.
+\end{enumerate}
+
+Once the process has completed, the computer will ask you to reboot. Proceed, the system will then ask you to remove the installation media (e.g.\ the stick we gave you). Unplug it and press Enter to complete the reboot. When the boot manager (GRUB or rEFInd) shows up, press Space to pause the countdown. Then, proceeed to the section \emph{\secref{sec:testing}} in this guide.
diff --git a/install_event/archive/installguide_complete/buntu/partitioning.tex b/install_event/archive/installguide_complete/buntu/partitioning.tex
new file mode 100644
index 0000000000000000000000000000000000000000..350ca23294791f6607c525182087442cdf7a30c9
--- /dev/null
+++ b/install_event/archive/installguide_complete/buntu/partitioning.tex
@@ -0,0 +1,45 @@
+\input{commons/partitioning}
+
+The Ubuntu installer will try its best to find the optimal partitioning for you. Still, it is important that you check all these changes to prevent things from going wrong.
+
+In the \textit{Installation Type} menu, you can select whether you want to keep your existing Operating System or throw it away.
+
+\begin{enumerate}
+	\item Pick the option you want and click on \textit{Install Now}.
+	\item If you install Ubuntu alongside something else, you can now decide how much space you want to give it. Then click on \textit{install now}.
+	\item A dialog will pop up that summarizes the changes to be made.
+	\item Carefully look through the changes. Check that all the partitions you need according to \emph{\secref{sec:partplan}} are created.
+	\item Make sure no important partitions are deleted or formatted. Ask a helper if you're unsure about this.
+	\item If you see no issues, click \textit{Continue}.
+	and configure your installation according to the overview.
+\end{enumerate}
+
+\troubleshoot{
+	\textbf{Help, the option I want is not here!}
+
+	If you want to install Ubuntu alongside Windows or Mac OS, but that option is not available, the Ubuntu installer wasn't able to determine a feasible partitioning for that. In this case, pick \textit{Something else...} and manually partition the disk.
+
+	\input{commons/partitions-delete}
+}
+
+\subsubsection{Manually partitioning your disk}
+
+Ideally, the automatic partitioning suits your needs and you don't need to do this. But if the automatic tool fails, you can try creating your needed partitions by hand. To do this, pick \textit{Something else...}
+
+\begin{enumerate}
+	\item You see a list of your current partitions. If you haven't done that alraedy from within Windows or Mac OS X, you should now shrink your existing operating system partition (usually the largest in size).
+		\begin{enumerate}
+			\item Select the partition in the list and click \textit{Change...} at the bottom.
+			\item Enter a new size in the text field. A good measure is to use half the current size. Linux needs at least 20GB (20000MB). In the \textit{Use as} dropdown menu, select \textit{Do not use the partition}.
+			\item Click OK. You should now see some free space in the list.
+		\end{enumerate}
+	\item Now create all the partitions you need. If you have MBR, it is advisable to select \textit{logical} as a partition type, if possible.
+		\begin{enumerate}
+			\item Select the free space in the list, and click on the plus icon.
+			\item Select your partition size according to \emph{\secref{sec:partplan}}. Note that the size here is in MB.
+			\item Select your partition's usage. \textit{Ext4 journaling file system} is for the root and home partition, \textit{Swap area} is for your swap partition.
+			\item Under \textit{Mount point}, choose the mount point you need according to \emph{\secref{sec:partplan}}. Click \textit{OK}.
+		\end{enumerate}
+	\item You can also edit the mount point and formatting options of existing partitions by selecting them and clicking on \textit{Change...}. This is sometimes required in order to designate an EFI boot partition.
+\end{enumerate}
+
diff --git a/install_event/archive/installguide_complete/clearspaces.sh b/install_event/archive/installguide_complete/clearspaces.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7e2f008507188ffb089a5e325d286026954980bb
--- /dev/null
+++ b/install_event/archive/installguide_complete/clearspaces.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# This script sets up a somewhat normalized file layout. Please use it before
+# adding and commiting changes.
+
+# Get the script's full path
+# May not work all the time
+pushd . > /dev/null
+SCRIPT_PATH="${BASH_SOURCE[0]}";
+while([ -h "${SCRIPT_PATH}" ]); do
+    cd "`dirname "${SCRIPT_PATH}"`"
+    SCRIPT_PATH="$(readlink "`basename "${SCRIPT_PATH}"`")";
+done
+cd "`dirname "${SCRIPT_PATH}"`" > /dev/null
+SCRIPT_PATH="`pwd`";
+popd  > /dev/null
+#echo "script=[${SCRIPT_PATH}]"
+#echo "pwd   =[`pwd`]"
+
+DIR="${SCRIPT_PATH}"
+BAK=".bak"
+
+if [ "$DIR" = "" ]; then
+    exit -1;
+else
+    # Change 4 spaces to \t
+    find "${DIR}" -iname "*tex" -print0 | xargs -0 sed -r -s -i${BAK} 's/\ {4}/\t/g'
+    # Clean up any space on end of line
+    find "${DIR}" -iname "*tex" -print0 | xargs -0 sed -r -s -i${BAK} 's/\ +$//g'
+    # Clean up double spacings
+    find "${DIR}" -iname "*tex" -print0 | xargs -0 sed -r -s -i${BAK} 's/\ {2}/\ /g'
+    # Change any spacing >1 to single space
+    find "${DIR}" -iname "*tex" -print0 | xargs -0 sed -r -s -i${BAK} 's/\ {2,}/\ /g'
+
+    # To remove extraneous files
+    #find "${DIR}" -iname "*tex${BAK}" -print0 | xargs -0 rm
+fi
diff --git a/install_event/archive/installguide_complete/commons/boot.tex b/install_event/archive/installguide_complete/commons/boot.tex
new file mode 100644
index 0000000000000000000000000000000000000000..161dfcfffdb264c2f844b10bf08664c4ec9a7708
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/boot.tex
@@ -0,0 +1 @@
+Now control is passed to the Linux installer. Refer to the sheet concerning the installation of your distribution for instructions how to go on.
diff --git a/install_event/archive/installguide_complete/commons/config.tex b/install_event/archive/installguide_complete/commons/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a6224bb188ff15f228ac63f85f6f168420ae9e7a
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/config.tex
@@ -0,0 +1,5 @@
+This section helps you to complete your setup and make your sytem fit you. A list of tips for ETH students (using the built-in VPN, connecting to ETH WiFi and more) is included.
+
+First, you will find instructions specific to your distribution. If you don't know how to start the programs described below, have a look at the next section. It will get you started with the basics of your Desktop Environment.
+
+Once done configuring your distribution, the next section will contain instructions to use and configure your Desktop Environment.
diff --git a/install_event/archive/installguide_complete/commons/partitioning.tex b/install_event/archive/installguide_complete/commons/partitioning.tex
new file mode 100644
index 0000000000000000000000000000000000000000..21f782ee5656095ac1af42cd15755840c0716e48
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/partitioning.tex
@@ -0,0 +1,11 @@
+\important{If you feel lost, feel free to ask for help at any point in time during this process. We will gladly help you.}
+
+% TODO: What is meant with 'it' in "figure it all out"?
+Partitioning your hard disk is probably the scariest step of the entire installation process. This is where you can destroy your data. But don't worry\,---\,the installer will figure it all out for you in most cases.
+
+The install guide provides you with this partitioning page, that explains how you go through the partitioning step, plus an informational section \emph{\secref{sec:partplan}}.
+
+You need to decide whether you want a separate home partition, and how much space you want to dedicate to Linux (if you are dual-booting). \emph{\secref{sec:partplan}} provides some explanations to help you make better decisions. It also contains a list of all the partitions you need.\\
+\note{If you are new to Linux or have never partitioned your drive then we recommend you to read \emph{\secref{sec:partplan}} before commencing further in this section.}
+
+\subsubsection{Guided partitioning}
diff --git a/install_event/archive/installguide_complete/commons/partitions-delete.tex b/install_event/archive/installguide_complete/commons/partitions-delete.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e58c5c010f33c9a0af97c6541062baead1a03678
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/partitions-delete.tex
@@ -0,0 +1,7 @@
+\textbf{Help, my partitions are being deleted!}
+
+There are two main reasons for this:
+\begin{itemize}
+	\item \textit{You have the MBR partition scheme, and you already had four main partitions.} In this case, you need to delete one partition\,---\,there's no way around it. Now you need to make sure the partition that's deleted is not important. On HP laptops, you often find a partition called HP-TOOLS which doesn't contain anything important. On other laptops, you may find a windows recovery partition that you can get rid of. Ask a helper if you're not sure about this.
+	\item \textit{Your existing Windows/Mac OS partition can't be shrunk.} This can be a major problem. Try manually creating a partitioning setup using \textit{Create Partition Setup}. If that doesn't work, please ask a helper.
+\end{itemize}
diff --git a/install_event/archive/installguide_complete/commons/preparation-win-post.tex b/install_event/archive/installguide_complete/commons/preparation-win-post.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b9ede015fd2cb2d0fd6849a76231d0751199e889
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/preparation-win-post.tex
@@ -0,0 +1,10 @@
+The navigation in your BIOS setup highly depends on your computer. Usually, a key description can be found in the bottom. Try to find the boot options (sometimes called \textit{startup}). Now, check again on your cover sheet whether you have Legacy or UEFI BIOS:
+
+\begin{itemize}
+\item Legacy: Set your UEFI/BIOS boot mode to Legacy.
+\item UEFI: Set your UEFI/BIOS boot mode to UEFI.
+\end{itemize}
+\note{If you see an option called CSM (typically on Lenovo), make sure it's enabled for Legacy and disabled for UEFI.}
+\note{If you can't find this setting at all, it simply doesn't exist on your laptop. That is perfectly fine. You can continue with the guide.}
+
+Finally, some distros won't boot with SecureBoot enabled. Look for a page called Security and disable the option SecureBoot.
diff --git a/install_event/archive/installguide_complete/commons/preparation-win-pre.tex b/install_event/archive/installguide_complete/commons/preparation-win-pre.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e3ca0db7e7e074548a341740b05d0ace59efde0f
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/preparation-win-pre.tex
@@ -0,0 +1,19 @@
+\subsubsection{Make space}
+We recommend to have at least \freespacemin of free space on your disk. If you know you need programs for your studies (e.g.\ Matlab), please have at least \freespacerec of free space on your disk. In case you are missing space, you can empty the trash and cleanup your disk:
+\begin{enumerate}
+	\item In Windows Explorer, go to \textit{My computer} and right click \textit{your main drive} (typically C:\textbackslash), then pick \textit{Properties} and select \textit{Disk Cleanup} in the bottom right.
+	\item In the opening window, select \textit{Clean up system files}, select as many boxes as you can and press \textit{ok}. This takes a while.
+\end{enumerate}
+
+\subsubsection{Shrink your Windows partition}
+If you already have unallocated disk space on your computer, you can skip this step. Normally, however, you will now need to shrink your Windows partition so Linux can use the new space.
+\begin{itemize}
+	\item Navigate to your system panel. Under the section \textit{Administrative Tools}, click \textit{Create and format hard disk partitions}. If you can't find it, just press \textit{Windows} + \textit{R} and type \textit{diskmgmt.msc}, then press \textit{Enter}.
+	\item A new window opens up. Take a look at the bottom half of the window, where you should see a graphical representation of which partitions take up how much space. Right click the partition that you want to shrink and click \textit{Shrink Volume...}. (Usually, you want to shrink your Windows partition, which is the largest).
+	\item Shrink the volume as much as necessary. As mentioned before, is recommended to at least shrink it by \freespacemin. If you need some programs for studies (e.g.\ Matlab), at least \freespacerec is advisable.
+\end{itemize}
+
+If you have done everything correctly, you should now see some disk space that says \textit{unallocated} (\textit{Nicht zugeordnet} in German).
+
+\note{Sometimes Windows will refuse to shrink the partition, even if there is still enough space available on the drive and all of the above steps have been tried. Fixing this issue is not easy, so it's best if you just contact a helper in this case.}
+
diff --git a/install_event/archive/installguide_complete/commons/preparation.tex b/install_event/archive/installguide_complete/commons/preparation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..91fe185b0985901ba6829cded13b0a6b4901f766
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/preparation.tex
@@ -0,0 +1,12 @@
+\subsubsection{Safety}
+Some of the following points may seem a little scary. Don't be afraid: in almost all cases, nothing bad happens. For your security though, we will be assuming the worst case scenario. Please check the following points:
+\begin{enumerate}
+	\item Make sure you have signed the document at the welcome desk, stating with your signature that you take the responsibility for your hardware and data.
+	\item Please rethink whether you have backed up any important data. You will be re-partitioning your hard drive. If anything goes wrong with that (which is unlikely but possible), any data not on your backup is lost!
+	\item It's advisable to connect your laptop to the power outlet.
+\end{enumerate}
+
+\subsubsection{Supply}
+We have some supplies that you can borrow in case you need any. At the Supply Desk you will find USB Install Sticks for Ubuntu and OpenSUSE, USB to LAN adapters, USB hubs and USB keyboards.
+
+Make sure you have gotten a USB key with your chosen distribution from the Supply Desk . The Supply Desk will create install media for other distributions for you as well.
diff --git a/install_event/archive/installguide_complete/commons/tweaktool.tex b/install_event/archive/installguide_complete/commons/tweaktool.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ef5dac0adf24d4fafaa7f800377bb926db18afcc
--- /dev/null
+++ b/install_event/archive/installguide_complete/commons/tweaktool.tex
@@ -0,0 +1,21 @@
+\subsubsection{Tweak Tool}
+
+Under GNOME and Unity there is a specialized application called the \textit{GNOME tweak tool} that can be used to configure various settings, much like the Control Panel under Windows or the System Preferences under OS X. Unlike the GNOME / Unity settings center, the GNOME tweak tool focuses on slightly more specific settings that may be especially interesting for power users. The name of the tool is misleading as it can tweak both GNOME and Unity.
+
+To use it, first install the package \textit{gnome-tweak-tool} (refer to the previous pages to learn how to install software).
+
+Once you have opened the program, you are greeted with various categories arranged in a list on the left-hand side of the application window. It's best to experiment with these settings yourself. To make it easier to find what you're looking for, here's a quick run-down of what can be configured in the different categories:
+
+\begin{itemize}
+	\item \textbf{Appearance:} Choosing between themes and turning animations on/off.
+	\item \textbf{Desktop:} Setting visibility of desktop icons and changing the background of both desktop and lock screen.
+	\item \textbf{Extensions:} Turning on and off various GNOME Shell extensions that can be downloaded on the official GNOME website.
+	\item \textbf{Fonts:} Setting font size and style.
+	\item \textbf{Keyboard and Mouse:} In this category you can enable/disable rather specific mouse and keyboard settings such as keythemes. Note that more general settings for keyboard and mouse, like setting keyboard shortcuts or changing the mouse sensitivity, can be accessed in the GNOME settings center (for GNOME users) or in the System Settings (for Unity users).
+	\item \textbf{Power:} Configure actions for when the power button is pressed or when the laptop lid is closed.
+	\item \textbf{Startup Applications:} Add applications that are executed on login.
+	\item \textbf{Top Bar:} Show/Hide elements on your top bar (the bar at the top of your screen that tells the time).
+	\item \textbf{Typing:} This category contains a \textit{lot} of settings for configuring what your mode keys (control, shift etc.) do. You can also add keyboard options for typing non-latin letters.
+	\item \textbf{Windows:} For configuring the behaviour of window focus, and titlebar actions.
+	\item \textbf{Workspaces:} Tuning workspace creation settings.
+\end{itemize}
diff --git a/install_event/archive/installguide_complete/de.tex b/install_event/archive/installguide_complete/de.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2c7192975e787c72f94a9a2e088769e10df7c9ba
--- /dev/null
+++ b/install_event/archive/installguide_complete/de.tex
@@ -0,0 +1,24 @@
+\begin{center}
+\textbf{\Large Desktop Environment Flowchart}
+\end{center}\vskip1em
+
+Apart from the distro, you also need to choose a Desktop Environment (DE) for your new Linux system.
+
+Typically, a Linux distro ships with a given Desktop Environment. But most distros come in multiple versions, which offer different Desktop Environments but otherwise work the same. This lets you choose how your new Linux system will look. For Ubuntu, there is a special distro for each DE (e.g.\ Ubuntu with KDE is called Kubuntu, the XFCE flavour is called Xubuntu etc.). OpenSUSE however lets you pick your DE when installing.
+
+This flowchart is to help you decide what Desktop Environment you could pick. It is not mandatory, though. You can use any DE on pretty much any machine.
+
+\textbf{Again, to get a feel for each DE, test them in real life on our demo machines.} They are located in the auxiliary room. It's important that you feel good and comfortable in your daily use with your DE.
+
+Distinction ``slow'' vs. ``fast'' computer:
+\begin{itemize}
+	\item indicators for a slow machine:\\ Processor (look for a sticker saying one of): AMD; Intel: Pentium, Core 2 Duo, Core M, Centrino, Atom\\ RAM (``Arbeitsspeicher''): 1GB or less (2GB could still be considered slow)
+	\item indicators for a fast machine: Intel i5/i7 or recent i3 processor, SSD, 4GB RAM or more
+\end{itemize}
+Of course you gain speed and resources for your programs when installing a minimal DE instead of a feature-rich DE even on a fast machine.
+
+
+\begin{figure}[!h]
+	\centering
+	\includegraphics[scale=0.6]{img/inst-guide-yed.pdf}
+\end{figure}
diff --git a/install_event/archive/installguide_complete/distro.tex b/install_event/archive/installguide_complete/distro.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fa584bcac1da2afb70e0d66d2dbdcb9d64d1b94b
--- /dev/null
+++ b/install_event/archive/installguide_complete/distro.tex
@@ -0,0 +1,129 @@
+\begin{center}
+\textbf{\Large What distribution should I pick?}
+\end{center}\vskip1em
+
+Linux is an operating system of choices, which can be overwhelming for beginners.
+
+\textbf{First, you need to pick your Linux distribution.} This page gives you an overview of the various distributions and their advantages.
+
+In order to help you with the choice of distribution, we have two resources ready for you:
+\begin{itemize}
+	\item Below you find a quick overview of some distributions we picked out for you.
+	\item To get a hands-on experience, you can try some distributions on our demo laptops in the auxiliary room.
+\end{itemize}
+
+Note that at this point, we have prepared guides for \textbf{Ubuntu and OpenSUSE}. If you want anything
+other than that, we will gladly help you find appropriate guides online.
+
+If you want more information or advice, you can ask a helper. Note, though, that every helper might have a different opinion on the distributions.
+
+\begin{description}
+	\item[Ubuntu]
+		is a beginner-friendly, popular distro, which requires nearly no
+		configuration. It comes with the Unity desktop, which OS X users may
+		find familiar. There are also official Ubuntu spinoffs with other
+		desktop environments (DEs). Due to Ubuntu's popularity, it's easy to
+		find help on the internet when you have a problem, which makes it a
+		good choice for newcomers. Unlike most other distributions, which are
+		maintained by independent communities, Ubuntu is developed by
+		Canonical, a software company. Be warned that many have concerns with
+		Canonicals controversial stance on the ideals of open source software,
+		the rest of the FOSS community, and privacy practices.\\
+        \textbf{Versions:} Ubuntu has two different release versions, the current version,
+        and the LTS (Long term support) version. LTS is usually supported for
+        four years, and is supposed to be as stable as possible. Because of this,
+        it often has older versions of software. Choose LTS if you are after extreme
+        stability or if you have
+        specific requirements. If you want a more modern user experience, the current
+        release is the better option.\\
+		\suggestions{Beginners}
+        \de{Xfce (with Xubuntu), KDE 5 (with Kubuntu), Gnome}
+
+	\item[OpenSUSE]
+		is a unique distro that targets both experienced and new users. It offers a
+		great compromise between configurability and ease of use, making all
+		its features accessible without ``dumbing down'' the interface. It is known
+		for its YaST system configuration tool, which you can use to do tweaks
+		you would otherwise need the terminal for. This distribution is
+		maintained by the openSUSE community, but is based on the commercial
+		Suse Linux Enterprise Edition. This makes it a stable, well
+		rounded distro. We distinguish between OpenSuse Tumbleweed (rolling release,
+		bleeding-edge software) and Leap (versionned as Ubuntu, more stable than Tumbleweed).
+		\\
+		\suggestions{For users wanting a sophisticated and user-friendly system.}
+		\de{KDE, Xfce, Gnome, LXDE}
+		\note{OpenSUSE Leap is only for modern 64-bit computers. Additionally,
+		the OpenSuse installer will not work with newer Lenovo devices (released in 2017
+		or later), such as the T470 Thinkpad and the Yoga 370.
+		If you have one of these devices, you will need to install a different Distro.}
+
+	\item[CentOS]
+		is the free brother of Red Hat Enterprise Linux (RHEL). RHEL is built for professional
+		purposes and comes with a support contract that companies pay for. If you'd like to take
+		advantage of the technologies of Red Hat Enterprise, but as an individual, without paying
+		for it, then CentOS is the choice for you. It is basically RHEL without the commercial
+		aspect. This makes it a very stable and mature distribution, backed by Red Hat.\\
+		\suggestions{experienced users and developers}
+		\de{Gnome 3 (default); KDE Plasma}
+
+	\item[Fedora]
+		is community maintained, yet corporately backed by Red Hat; similarly to
+		openSUSE. The difference to CentOS is that Fedora is the ``Playground'' for
+		Red Hat. Fedora is normally the first distro to introduce new features,
+		which are eventually adopted by other distros. Many Linux developers
+		(including Linus Torvalds himself) use Fedora. It normally comes with
+		the GNOME 3 desktop, but also offers "spins" with different DEs. The
+		default software repositories (repos) only include free software, but you
+		can enable the RPMFusion repos which contain the non-free software.
+		It is the distribution installed on most ETH desktop computers.\\
+		\suggestions{experienced users and developers}
+		\de{Gnome 3 (default); KDE Plasma, Xfce, LXDE, MATE-Compiz, Cinnamon}
+
+ 	\newpage
+
+	\item[Linux Mint]
+		is a Ubuntu-based distro, which focuses on preserving
+		the traditional desktop (like Windows 7).
+        Its community is a lot smaller than for example Ubuntu's, which
+		makes it hard to find help when problems occur. Also, it is maintained
+		by a rather small group of developers, which means it usually takes a
+		while for them to react on user feedback.\\
+		\suggestions{Beginners}
+		\de{MATE, Cinnamon}
+
+	\item[Debian]
+		is a universal distro, which has been going strong for over 20 years, and is
+		the most forked distro. Debian is rather lightweight, requiring you to pick your own
+		components, but configures them automatically to a degree.
+		It strictly follows its principles of free software, although it includes
+		non-free software on non-free repositories. It has 3 branches: stable,
+		unstable, and testing. Debian has a reputation
+		of being very conservative about implementing new features in their stable release.\\
+		\suggestions{more experienced users who already know what they want}
+		\de{Gnome, KDE, Xfce, LXDE, MATE}
+		
+	\item[Arch Linux]
+		is a distribution that focuses on simplicity and bleeding-edge software. It is rolling
+		release, meaning that software is shipped as soon as it is released and Arch does not
+		have version numbers (such as ``Ubuntu 16.04'' or ``Fedora 27''). Unlike
+		the other distros presented above, Arch has no default Desktop Environment, browser,
+		mail client etc: it leaves the choice up to you. This makes Arch Linux a distribution
+		for more advanced Linux users. It is \textit{possible} for particularly motivated
+		enthusiasts to make Arch their first Linux experience, but the learning curve is extremely
+		steep. We do not recommend installing Arch Linux in the Install Events. If you choose
+		Arch, better ask someone if they are willing to set down with you personally for a few
+		hours and help you getting started.
+\end{description}
+
+\vspace{15pt}
+
+In the following graph, we try to give an overview of the distributions presented above. Keep in mind that this representation is not objective but reflects the opinion of the authors. There are no exact measures concerning novelty and user-friendliness.
+
+We consider distros on the left side easier to dive into for people who never used Linux. In principle, it is possible to start with any distro, but the learning curve is steeper for distros on the right in the diagram.
+
+The higher a distro appears in the diagram, the more ``bleeding-edge'' it is. When a new version of a software comes out, it will be included in the bleeding-edge distros first. This comes at the price of having lower reliability since many bugs are yet undetected. On the other hand, distros on the lower part are more conservative, but more stable.
+
+\begin{figure}[!h]
+	\centering
+	\includegraphics[scale=0.6]{img/distros_property_graph.png}
+\end{figure}
diff --git a/install_event/archive/installguide_complete/end.tex b/install_event/archive/installguide_complete/end.tex
new file mode 100644
index 0000000000000000000000000000000000000000..06e7782f99e3331c51be355b8fbd1baee12905a4
--- /dev/null
+++ b/install_event/archive/installguide_complete/end.tex
@@ -0,0 +1,21 @@
+\medskip
+
+\textbf{Congratulations!} You are now the proud owner of your personal Linux laptop. Have a lot of fun with it!
+
+On the last page of this guide, you will find a table that lists alternatives for programs that are not available under Linux. The software products you're used to might not work on Linux, but there are always alternatives that you can use. Check them out!
+
+You can now continue playing with your new Linux system, or you can go home. Be sure to return all the hardware you borrowed before you leave. Also return your USB key, please. 
+
+And if you want to help us, consider filling out a feedback form. You can get these at the welcome desk. Your feedback is very important to us and will help us improve these events even more.
+
+\medskip
+
+If you were to run into issues with your Linux system some time later, we won't leave you hanging! We have a regular Stammtisch where you can meet us, and we'll help you solve your Linux problems there. You can find our Stammtisch dates on our website, and you can just drop by without signing up. Of course, you can also stop by if you don't have a Linux problem and just want to talk to us!
+
+And if you want to become part of our team, just ask! We're always looking for new members. Linux knowledge is not mandatory--if you like what we do and would like to help and learn, you are very welcome. Just ask one of the helpers!
+
+\medskip
+
+Cheers, and thank you for attending
+
+your TheAlternative team
diff --git a/install_event/archive/installguide_complete/fedora/config.tex b/install_event/archive/installguide_complete/fedora/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3f68fb982809e9191db6cba502e4bbc23e571387
--- /dev/null
+++ b/install_event/archive/installguide_complete/fedora/config.tex
@@ -0,0 +1,72 @@
+% fedora config 
+
+\input{commons/config}
+
+\subsubsection{Network configuration and host name}
+Hit the Super key (The Windows key) to open an overview of you active Window. Now start typing \textit{Netzwerk/Network} and select the menu entry as it shows up. Here you can connect to the WiFi. At a later point you can also add VPNs here.
+
+Should you have trouble connecting to the WiFi, please call a helper.
+
+Click the \textit{Zurück/Back} arrow in the upper left corner of the network settings to get back to the main page of the settings. Now go to \textit{Details}. Here, among other information, you can see and change the name of your computer. This name is your used as your hostname. If you don't know what that is, just choose any name. Don't include any sensitive information in it though (putting your living address in there is probably a bad idea).
+
+
+\subsubsection{Upgrading and important packages}
+You should update your system as soon as possible to get the newest packages after the installation.
+\begin{itemize}
+\item Recommended method: Try to turn off your system and agree to install the newest updates. This is the safest way to performe any updates.
+\item GUI method: start the program \textit{Software}. At the top of the window select \textit{Aktualisierungen} and then use the \textit{Alle aktualisieren} button. 
+\item Console method: \shellcommand{sudo dnf update} (Note: the first time you run sudo, it warns you to act responsibly.)
+\end{itemize}
+
+
+\subsubsection{Finding software \& packages}
+Fedora offeres a vast collection of software by default. However there are some packages that are not available in the main repositories. Most of them can be found in the \textit{RPM Fusion Repository}. Run the following commands to add the it
+\shellcommand{sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-\$(rpm -E \%fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-\$(rpm -E \%fedora).noarch.rpm}
+and
+\shellcommand{sudo dnf update}
+
+Call a helper or visit https://rpmfusion.org/Configuration for more detailed instruction.
+
+\subsubsection{Connecting to ETH WiFi} 
+Set the \textit{Authentification} field (usually 2nd from top) to \textit{Tunneled TLS} and \textit{Inner Authentification} to \textit{MSCHAPv2}. Fill in your ETH credentials into \textit{User Name} and \textit{Password} in the bottom (for the eduroam network, type yournethzusername@ethz.ch as username). Leave the other fields as they are. Confirm that you don't want to use a CA certificate.
+
+\subsubsection{Connecting to ETH VPN} 
+Under Linux, there's no need for Cisco AnyConnect. Instead, use the \textit{openconnect} package:
+The \textit{NetworkManager-openconnect} plugin for Networkmanager needs to be installed: \\ \shellcommand{sudo dnf install networkmanager-openconnect}
+
+With this done, you can now connect to the ETH VPN:
+\begin{enumerate}
+        \item Hit the Super key (Windows Key) and type \textit{Netzwerk}. Select the presented settings entry
+	\item In the settings for your network use the \textit{+} button to add e new connection.
+        \item Select \textit{Cisco AnyConnect kompatibles VPN} from the list
+	\item Enter a name on top (e.g.\ ETH VPN), then in \textit{VPN > Gateway} enter \textit{sslvpn.ethz.ch}, save (leave all options as they are).
+	\item Click on the network icon in your system tray again, and select your newly created network under \textit{VPN connections}.
+\end{enumerate}
+
+\subsubsection{NVIDIA Graphics drivers} 
+On some devices you might need extra propretary graphics drivers for your NVIDIA graphics card.
+\begin{enumerate}
+     \item Add the \textit{RPM Fusion Repository as discriped above}
+	\item Run the command \shellcommand{ dnf install xorg-x11-drv-nvidia akmod-nvidia "kernel-devel-uname-r == \$(uname -r)" }
+        \item Run the command \shellcommand{ dnf update -y }
+	\item After this is done, reboot your computer.
+\end{enumerate}
+
+\subsubsection{Using the package manager}
+If you are allready familiar with package managers, you will find that dnf works similar to most other package managers. If you never used a package manager this small introduction will teach you the basics of the dnf package manager.
+
+\begin{itemize}
+    \item Searching for packages: \shellcommand{sudo dnf search <search-string>}
+    \item Installing packages: \shellcommand{sudo dnf install <package-name>}
+    \item Removing packages: \shellcommand{sudo dnf remove <package-name>}
+    \item Updating all packages: \shellcommand{sudo dnf upgrade}
+    \item Updating specific packages \shellcommand{sudo dnf update <package-name>}
+    \item Listing installed packages \shellcommand{sudo dnf list installed}
+    \item Listing available repos \shellcommand{sudo dnf repolist}
+    \item Adding a repo \shellcommand{dnf config-manager --add-repo <repo-url>}
+    \item Enabling a repo \shellcommand{dnf config-manager --set-enabled <repo-id>}
+    \item Disabling a repo \shellcommand{dnf config-manager --set-disabled <repo-id>}
+\end{itemize}
+
+\medskip
+At this point, any problem you detected in the Testing Section should be solved. If not, don't hesitate to ask a helper.
diff --git a/install_event/archive/installguide_complete/fedora/overview.tex b/install_event/archive/installguide_complete/fedora/overview.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2b72a2450a2dc0e759ffa9c37925dd6d1c6a2ee9
--- /dev/null
+++ b/install_event/archive/installguide_complete/fedora/overview.tex
@@ -0,0 +1,35 @@
+\subsubsection{Starting the installer}
+After successfully booting from a Fedora installation medium you will be presented with a menu offering the following options: \textit{Start Fedora Workstation Live 25} and \textit{Test this medium \& Start Fedora Workstation Live 25 }. Select the first option with the arrow keys and press \textit{Enter}.
+
+Now the Fedora Live Environment is loaded. This might take a few moments. During the process a lot of text is scrolling by, if everything goes well you should see a lot of lines starting with a green \textit{OK}. After the desktop is loaded you are greeted with a window that lets you choose between \textit{Try Fedora} and \textit{Install to Hard Drive}. Selecting the latter one will cause the Anaconda installer (the Fedora installer we're using) to start.
+
+The first screen lets you choose the language and the keyboard layout that the installer will use during the installation. Select \textit{Deutsch/English} from the list and you should notice that the interface immediately switches. Next select your preferred keyboard layout. Beware that \textit{Deutsch (Deutschland)} and \textit{Deutsch (Schweiz)} have different layouts regarding special characters. If you wish to use a completely different keyboard layout you can change this on the next screen. Click \textit{Fortfahren/Continue} to continue to the Anaconda main menu.
+
+Now you are in the Anaconda main menu. From here you can access all available settings and change them until you press the \textit{Installieren/Install} button in the lower right corner. Please make sure you configure all the items below before starting you installation.
+
+\subsubsection{Tastatur/Keyboard}
+This setting defaults to the keyboard layout you initially choose for the installer. However, if you use a different keyboard layout than what is traditionally associated with the your chosen interface language, you can change this here. If you have finished, use the \textit{Fertig/Done} in the upper left corner to save your changes and return to the main menu.
+
+\subsubsection{Netzwerk und Rechnername/Networking and Hostname}
+\info{We will do the installation without networking to speed up the process. No worries, we will update your system later on.}
+
+\subsubsection{Zeit und Datum/Time and Date}
+The installer should choose the correct time zone for your current location. Should this not be the case or should you wish to change your time zone for some reason you can change this here. Use the combo boxes to the upper left to select you region and a major city near you. Use the \textit{Fertig/Done} button in the upper left corner when you are done with your changes.
+
+\subsubsection{Partitioning}
+Now we partition your system and assign Linux some sections of the hard drive. Click on \textit{Partitionierung/Partitioning} and refer to
+\emph{\subsecref{sec:part}{subsec:part-fedora}} for further instructions
+
+\subsubsection{Starting the installation}
+
+\warn{Clicking the \textit{Installation starten/Start installation} button will start the installation and your settings will be applied}
+
+After you configured all the items mentioned above you can start the installation by clicking on the \textit{Installation starten/Start installation} button in the lower right corner. If there is anything wrong with your settings, a yellow bar at the bottom of the screen will inform you about potential configuration errors. If everything is fine the installation will now start.
+
+\subsubsection{User Information}
+During the installation you can add a user for yourself. Give yourself a full name, user name and password. Also tick the box "Dieser Benutzer ist ein Administrator"/"This user is an administrator". You also have the option set a password for the user \textit{ROOT}. We recommend to leave this field blank, this will prevent direct login as \textit{ROOT}\\
+
+The installation process will take a while now. Relax, take a break and get some food.
+
+Once it has completed, the computer will reboot automatically. You may now remove the installation media (i.e.\ the stick we gave you). When the boot manager (i.e.\ GRUB) shows up, press the space bar to pause the countdown. You may now proceed to \emph{\secref{sec:testing}} in this guide.
+
diff --git a/install_event/archive/installguide_complete/fedora/partitioning.tex b/install_event/archive/installguide_complete/fedora/partitioning.tex
new file mode 100644
index 0000000000000000000000000000000000000000..eaad404da0534419c40cc1a2035c73acbc6b33b3
--- /dev/null
+++ b/install_event/archive/installguide_complete/fedora/partitioning.tex
@@ -0,0 +1,15 @@
+\input{commons/partitioning}
+
+The Anaconda partitioning menu is designed to give you offers for sane default choices, but if you wish you can take full control of you partition layout. To install Fedora alongside Windows some manual interaction is needed.
+
+\begin{enumerate}
+        \item Click on on the drive you want to install Fedora to. Usually this is something like \textit{sda}.
+        \item Next select \textit{Manuelle Konfiguration der Partitionierung}
+        \item Click the \textit{Fertig} button and continue to the advanced partitioning screen
+        \item From the drop down menu selec \textit{Traditionelle Partitionierung} and click \textit{Diese autamatisch generieren}
+        \item Now click the \textit{Fertig} button again
+\end{enumerate}
+
+Carefully read summary that is presented on the screen. Pay attention that no existing partitions are deleted or formatted, as this will destroy data. Shrinking an existing partition is fine.
+
+Compare the summary with your partition plan and make sure all the required partitions are created. If so, you can continue. If not, you can manually partition your disk using \textit{Create Partition Setup}. Should you not feel confident in what you are doing, feel free to ask one of the helpers to assist you.
diff --git a/install_event/archive/installguide_complete/gnome/config.tex b/install_event/archive/installguide_complete/gnome/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ca47cfc721393719f293f40ffb0d5e5adba50e6e
--- /dev/null
+++ b/install_event/archive/installguide_complete/gnome/config.tex
@@ -0,0 +1,33 @@
+% vim: ft=tex
+% gnome config
+
+\subsubsection{Overview}
+The interaction with GNOME almost entirely takes place in the top left corner. It serves as a start menu, application launcher and window picker at once. To get to it, either move your mouse to the very top left corner or press the Super key (``Windows key'' or ``Command Key'') on your keyboard.\\
+In the center of the screen, all open windows are displayed and you can switch to them with a click. If you start typing, a search for the text you entered (e.g.\ Firefox) will be launched. Also, note the personalizable quick launch bar in the left. Finally, in the right edge, you find multiple workspaces. If you find that you have too many windows open, you can move them to a free workspace in that section. A new empty workspace is automatically created. When all windows are dragged out of a workspace, it is automatically deleted.
+
+\subsubsection{Keyboard Shortcuts}
+Most keyboards shortcuts you know are also valid in GNOME. For example, use \textit{Alt+F4} to close a window or \textit{Alt+Tab} to switch between applications. Special in GNOME / Unity: \textit{Alt+§} will change between windows of the same application. To quickly switch between workspaces, use \textit{Ctrl+Alt+Up/Down}.
+
+\subsubsection{Keyboard layout}
+If you don't have the correct keyboard layout set (which usually becomes evident when you press \textit{z} and the laptop types \textit{y} instead, or vice versa), you need to change it.
+
+\begin{enumerate}
+	\item Open your launcher by clicking in the top left corner or pressing the \textit{Windows} or \textit{Command} key. Search for \textit{Language}.
+	\item Click on \textit{Region and Language} in the search results.
+	\item Under \textit{input sources}, you can see the keyboard layout(s) you currently have in use. You can have more than one.
+	\item To add a layout, click on the plus icon, search for the correct layout (e.g.\ \textit{German (Switzerland)}), select it and click on \textit{Add}.
+	\item To remove a layout, select it and click on the minus icon.
+	\item If you have more than one active layout, you can switch between them by pressing \textit{Super} (i.e.\ \textit{Windows key} or \textit{Command key}) and \textit{Space}.
+\end{enumerate}
+
+\subsubsection{Theming}
+If you dislike the rather bland default look,
+consider using a theme. There are plenty available on the internet, but one of
+the nicest is the Arc theme. On \underline{https://github.com/horst3180/arc-theme} (under
+Installation) you will find instructions on how to install it. \\
+There are also icon themes, that will exchange the icons to get a nice uniform
+look across the entire system. Nice examples are: Numix:
+\underline{https://github.com/numixproject/numix-icon-theme} or Moka:
+\underline{https://github.com/moka-project/moka-icon-theme}.
+
+\input{commons/tweaktool}
diff --git a/install_event/archive/installguide_complete/img/TheAlt-bw.png b/install_event/archive/installguide_complete/img/TheAlt-bw.png
new file mode 100644
index 0000000000000000000000000000000000000000..d85dcf6dbd40da64ecbbdc860f4dc5a21ce62ea9
Binary files /dev/null and b/install_event/archive/installguide_complete/img/TheAlt-bw.png differ
diff --git a/install_event/archive/installguide_complete/img/by-nc-sa_eu.png b/install_event/archive/installguide_complete/img/by-nc-sa_eu.png
new file mode 100644
index 0000000000000000000000000000000000000000..433bc81751d21ffbfc2c13456a23ff60dc341eff
Binary files /dev/null and b/install_event/archive/installguide_complete/img/by-nc-sa_eu.png differ
diff --git a/install_event/archive/installguide_complete/img/distros_property_graph.png b/install_event/archive/installguide_complete/img/distros_property_graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f2380f61ec8fe92a54fcfd9bdc323e75bfb83c4
Binary files /dev/null and b/install_event/archive/installguide_complete/img/distros_property_graph.png differ
diff --git a/install_event/archive/installguide_complete/img/distros_property_graph.svg b/install_event/archive/installguide_complete/img/distros_property_graph.svg
new file mode 100644
index 0000000000000000000000000000000000000000..663c8b8f599450ba8c23b2fff257fd3796253c9d
--- /dev/null
+++ b/install_event/archive/installguide_complete/img/distros_property_graph.svg
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="149.32518mm"
+   height="148.31018mm"
+   viewBox="0 0 149.32518 148.31018"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+   sodipodi:docname="distros_property_graph.svg"
+   inkscape:export-filename="/home/sandro/Dropbox/ETH/TheAlternative/git/documents/installguide/img/distros_property_graph.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="-248.76171"
+     inkscape:cy="303.55739"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1916"
+     inkscape:window-height="1041"
+     inkscape:window-x="0"
+     inkscape:window-y="18"
+     inkscape:window-maximized="0"
+     inkscape:snap-global="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-39.677541,-72.000236)">
+    <g
+       id="g3705"
+       style="stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3699"
+         d="M 49.712131,210.93921 H 188.15774 l -5.78583,-5.78583"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3701"
+         d="m 188.13614,210.96081 -5.81384,5.81382"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       transform="rotate(-90,50.060281,210.94267)"
+       id="g3705-3"
+       style="stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3699-6"
+         d="M 49.712131,210.93921 H 188.15774 l -5.78583,-5.78583"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3701-7"
+         d="m 188.13614,210.96081 -5.81384,5.81382"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:8.23995686px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.20599891px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-140.27039"
+       y="45.937977"
+       id="text4554"
+       transform="rotate(-90)"><tspan
+         sodipodi:role="line"
+         id="tspan4552"
+         x="-140.27039"
+         y="45.937977"
+         style="stroke-width:0.20599891px">bleeding-edge</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:8.23995686px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.20599891px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-206.78697"
+       y="47.25362"
+       id="text4558"
+       transform="rotate(-90)"><tspan
+         sodipodi:role="line"
+         id="tspan4556"
+         x="-206.78697"
+         y="47.25362"
+         style="stroke-width:0.20599891px">stable</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:7.45884085px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.18647102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="49.758945"
+       y="218.75893"
+       id="text4562"><tspan
+         sodipodi:role="line"
+         id="tspan4560"
+         x="49.758945"
+         y="218.75893"
+         style="stroke-width:0.18647102px">user-friendly</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:7.45884085px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.18647102px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="143.3497"
+       y="218.75893"
+       id="text4566"><tspan
+         sodipodi:role="line"
+         id="tspan4564"
+         x="143.3497"
+         y="218.75893"
+         style="stroke-width:0.18647102px">advanced</tspan></text>
+    <g
+       id="g4577"
+       transform="translate(-11.528274,40.443451)">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572"
+         y="156.50116"
+         x="138.48798"
+         style="font-style:normal;font-weight:normal;font-size:7.65300369px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1913251px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="156.50116"
+           x="138.48798"
+           id="tspan4570"
+           sodipodi:role="line">Debian</tspan></text>
+    </g>
+    <g
+       transform="translate(-29.553279,-24.701638)"
+       id="g4577-5">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568-3"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572-5"
+         y="152.2897"
+         x="138.48798"
+         style="font-style:normal;font-weight:normal;font-size:7.65300369px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1913251px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="152.2897"
+           x="138.48798"
+           sodipodi:role="line"
+           id="tspan4663">O.SUSE</tspan><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="161.85596"
+           x="138.48798"
+           sodipodi:role="line"
+           id="tspan4675">Leap</tspan></text>
+    </g>
+    <g
+       transform="translate(-70.626637,-28.453187)"
+       id="g4577-2">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568-9"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572-1"
+         y="153.0614"
+         x="138.95738"
+         style="font-style:normal;font-weight:normal;font-size:7.10555315px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.17763883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.17763883px"
+           y="153.0614"
+           x="138.95738"
+           sodipodi:role="line"
+           id="tspan4669">Ubuntu,</tspan><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.17763883px"
+           y="161.94334"
+           x="138.95738"
+           sodipodi:role="line"
+           id="tspan4671">Mint</tspan></text>
+    </g>
+    <g
+       transform="translate(-9.8058511,2.4585294)"
+       id="g4577-6">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568-06"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572-2"
+         y="156.50116"
+         x="138.48798"
+         style="font-style:normal;font-weight:normal;font-size:7.65300369px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1913251px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="156.50116"
+           x="138.48798"
+           id="tspan4570-61"
+           sodipodi:role="line">CentOS</tspan></text>
+    </g>
+    <g
+       transform="translate(-14.796868,-63.394524)"
+       id="g4577-8">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568-7"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572-92"
+         y="156.50116"
+         x="138.48798"
+         style="font-style:normal;font-weight:normal;font-size:7.65300369px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1913251px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="156.50116"
+           x="138.48798"
+           id="tspan4570-0"
+           sodipodi:role="line">Fedora</tspan></text>
+    </g>
+    <g
+       transform="translate(28.618579,-63.125903)"
+       id="g4577-23">
+      <circle
+         r="15.686011"
+         cy="153.55803"
+         cx="138.90625"
+         id="path4568-75"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.98000004;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+      <text
+         id="text4572-922"
+         y="151.42303"
+         x="138.48798"
+         style="font-style:normal;font-weight:normal;font-size:7.65300369px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1913251px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="151.42303"
+           x="138.48798"
+           id="tspan4570-8"
+           sodipodi:role="line">Arch</tspan><tspan
+           style="text-align:center;text-anchor:middle;stroke-width:0.1913251px"
+           y="160.98929"
+           x="138.48798"
+           sodipodi:role="line"
+           id="tspan4665">Linux</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/install_event/archive/installguide_complete/img/inst-guide-yed.graphml b/install_event/archive/installguide_complete/img/inst-guide-yed.graphml
new file mode 100644
index 0000000000000000000000000000000000000000..d43c3b6bfbdc0582118c59d6a4db697dd95d1433
--- /dev/null
+++ b/install_event/archive/installguide_complete/img/inst-guide-yed.graphml
@@ -0,0 +1,2500 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
+  <!--Created by yEd 3.16-->
+  <key attr.name="Beschreibung" attr.type="string" for="graph" id="d0"/>
+  <key for="port" id="d1" yfiles.type="portgraphics"/>
+  <key for="port" id="d2" yfiles.type="portgeometry"/>
+  <key for="port" id="d3" yfiles.type="portuserdata"/>
+  <key attr.name="url" attr.type="string" for="node" id="d4"/>
+  <key attr.name="description" attr.type="string" for="node" id="d5"/>
+  <key for="node" id="d6" yfiles.type="nodegraphics"/>
+  <key for="graphml" id="d7" yfiles.type="resources"/>
+  <key attr.name="url" attr.type="string" for="edge" id="d8"/>
+  <key attr.name="description" attr.type="string" for="edge" id="d9"/>
+  <key for="edge" id="d10" yfiles.type="edgegraphics"/>
+  <graph edgedefault="directed" id="G">
+    <data key="d0"/>
+    <node id="n0">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="44.39999999999998" width="113.20000000000005" x="58.395381451009655" y="156.78073298429317"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="75.361328125" x="18.919335937500023" y="13.215624999999989">Look / Feel?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n1">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="44.39999999999998" width="113.20000000000005" x="6.256323859386612" y="87.7122513089005"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="87.00390625" x="13.098046875000023" y="13.215624999999989">Touchscreen?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n2">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="44.39999999999998" width="181.20000000000005" x="95.10553851907247" y="314.07748691099465"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="150.953125" x="15.123437500000023" y="13.215624999999989">Recent / Fast computer?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n3">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="44.39999999999998" width="139.5926694542208" x="-77.39624088279231" y="314.07748691099465"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="114.09765625" x="12.747506602110406" y="13.215624999999989">What distribution?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n4">
+      <data key="d6">
+        <y:ImageNode>
+          <y:Geometry height="93.59999999999997" width="93.59999999999997" x="-100.79990615568187" y="631.9373570545737"/>
+          <y:Fill color="#CCCCFF" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="35.529296875" x="29.035351562499983" y="84.61562499999991">Unity<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Image alphaImage="true" refid="1"/>
+        </y:ImageNode>
+      </data>
+    </node>
+    <node id="n5">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="60.80000000000001" width="159.20000000000005" x="106.10553851907247" y="402.1194638676009"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="127.515625" x="15.842187500000023" y="14.431249999999977">Screen Resolution
+higher than Full-HD?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-4.440892098500626E-16" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n6">
+      <data key="d6">
+        <y:ImageNode>
+          <y:Geometry height="53.76000000000005" width="53.76000000000005" x="248.32061705310372" y="651.8573570545738"/>
+          <y:Fill color="#CCCCFF" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="35.083984375" x="9.33800781250011" y="57.75999999999999">XFCE<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="5.551115123125783E-16" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Image alphaImage="true" refid="2"/>
+        </y:ImageNode>
+      </data>
+    </node>
+    <node id="n7">
+      <data key="d6">
+        <y:ImageNode>
+          <y:Geometry height="62.26451311111118" width="60.799999999999955" x="130.1964285714286" y="647.6051004990181"/>
+          <y:Fill color="#CCCCFF" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="28.69140625" x="16.054296874999977" y="66.26451311111123">KDE<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Image alphaImage="true" refid="3"/>
+        </y:ImageNode>
+      </data>
+    </node>
+    <node id="n8">
+      <data key="d6">
+        <y:ImageNode>
+          <y:Geometry height="60.799999999999955" width="60.799999999999955" x="22.8000938443181" y="648.3373570545738"/>
+          <y:Fill color="#CCCCFF" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="sandwich" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.65625" x="5.571874999999977" y="64.79999999999995">GNOME</y:NodeLabel>
+          <y:Image alphaImage="true" refid="4"/>
+        </y:ImageNode>
+      </data>
+    </node>
+    <node id="n9">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="47.856323859386634" y="38.749135092022975"/>
+          <y:Fill hasColor="false" transparent="false"/>
+          <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n10">
+      <data key="d6">
+        <y:ShapeNode>
+          <y:Geometry height="60.80000000000001" width="93.59999999999997" x="172.85852281226616" y="499.25059370909685"/>
+          <y:Fill color="#E2E1E1" transparent="false"/>
+          <y:BorderStyle color="#000000" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="80.7578125" x="6.421093749999983" y="14.431249999999977">Minimal or
+feature-rich?<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-4.440892098500626E-16" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <edge id="e0" source="n1" target="n3">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="-34.61261719648716" sy="17.54603322391945" tx="0.0" ty="-22.19999999999999"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="24.96484375" x="-31.32804094138096" y="5.728196669972959">Yes<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="1.7792473809392222" distanceToCenter="false" position="right" ratio="-3.951132092270265" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e1" source="n1" target="n0">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="42.17566213085871" sy="14.79517897664229" tx="0.0" ty="-22.19999999999999"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="20.318359375" x="7.85076297483586" y="2.010922546775589">No<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="1.5701719811277153" distanceToCenter="false" position="left" ratio="-4.793582627049037" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e2" source="n0" target="n2">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="33.61245037791119" sy="17.83308472797333" tx="0.0" ty="-22.19999999999999"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="right" anchorX="7.288298876692522" anchorY="3.4846296207674357" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" upX="0.9534259353622028" upY="-0.30162722983628104" verticalTextPosition="bottom" visible="true" width="116.470703125" x="7.288298876692522" y="-1.9352346653532395">More like Windows<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="true" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="14.882160787738872" distanceToCenter="true" position="left" ratio="0.0" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e3" source="n0" target="n3">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="-34.93276344513984" sy="17.45356073153431" tx="48.7576418045791" ty="-15.864216207018785"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" anchorX="-51.89365976434647" anchorY="93.87336387919459" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="90.0" textColor="#000000" upX="0.29940675278124734" upY="-0.9541255663637722" verticalTextPosition="bottom" visible="true" width="86.9453125" x="-51.89365976434647" y="10.916618347456918">More like Mac<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="true" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="4.71238898038469" distance="12.422367785097828" distanceToCenter="true" position="right" ratio="0.08244854975617015" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e4" source="n3" target="n8">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="52.535588867498674" sy="14.606250000000045" tx="-8.264411132501309" ty="-28.598125665248233"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="right" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="71.46484375" x="-73.46484524228481" y="136.5184144144248">OpenSUSE,
+Ubuntu<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="0.0" distance="2.0" distanceToCenter="false" position="right" ratio="0.5" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e5" source="n3" target="n4">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="-46.39999999999998" sy="16.55625000000009" tx="0.0" ty="-32.768749999999955"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="47.921875" x="-49.921876523113525" y="133.35354014684663">Ubuntu<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="2.0" distanceToCenter="false" position="right" ratio="0.5" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e6" source="n2" target="n5">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="22.19999999999999" tx="0.0" ty="-30.400000000000006"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="74.62890625" x="-77.02994501357847" y="9.846421035389824">Not too bad<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="39.715494518979085" distanceToCenter="true" position="right" ratio="0.30921597480576085" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e7" source="n2" target="n6">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="77.54939952046686" sy="11.461261062940508" tx="2.6916096199036588" ty="-25.72460554015896">
+            <y:Point x="277.8922266730074" y="434.81915671902266"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="right" anchorX="1.7015469430975827" anchorY="7.537866953998275" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="0.3440384864807129" textColor="#000000" upX="0.9861654667922176" upY="-0.16576390471537358" verticalTextPosition="bottom" visible="true" width="87.490234375" x="1.7015469430975827" y="4.472267898110692">Slow machine<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="true" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="0.0" distance="0.4284982624539544" distanceToCenter="false" position="left" ratio="0.05067225714284426" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="true"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e8" source="n5" target="n7">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="-25.1091099476439" sy="28.856042915575813" tx="0.0" ty="-24.601006555555614"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="24.96484375" x="-28.92008418105928" y="6.543945068772814">Yes<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="16.437655330612866" distanceToCenter="true" position="right" ratio="0.0" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e9" source="n9" target="n1">
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-22.19999999999999"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e10" source="n10" target="n6">
+      <data key="d9"/>
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="-15.676428571428687" ty="-23.908203124999886"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" anchorX="7.241532202797771" anchorY="24.09164290516196" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" upX="0.9528462999142019" upY="-0.30345333865326785" verticalTextPosition="bottom" visible="true" width="51.00390625" x="7.241532202797771" y="18.638965726236055">Minimal<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="true" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="8.573746070880942" distanceToCenter="true" position="left" ratio="0.4686926696141699" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e11" source="n5" target="n10">
+      <data key="d9"/>
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="33.95298429319365" sy="27.47599793319398" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="20.318359375" x="5.440819565195852" y="7.220912027775455">No<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="15.600000000000023" distanceToCenter="true" position="left" ratio="-0.669071859356734" segment="-1"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e12" source="n10" target="n7">
+      <data key="d9"/>
+      <data key="d10">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="10.443987900343217" ty="-20.54963816331042"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:EdgeLabel alignment="center" anchorX="-20.23757232508632" anchorY="2.1751472102848766" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" rotationAngle="359.9007263183594" textColor="#000000" upX="0.9353285508374605" upY="0.353780301865856" verticalTextPosition="bottom" visible="true" width="77.06640625" x="-47.513122316075254" y="2.1751472102848766">Feature-rich<y:LabelModel>
+              <y:SmartEdgeLabelModel autoRotationEnabled="true" defaultAngle="0.0" defaultDistance="10.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="9.108114029843534" distanceToCenter="true" position="right" ratio="0.0" segment="0"/>
+            </y:ModelParameter>
+            <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
+          </y:EdgeLabel>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+  </graph>
+  <data key="d7">
+    <y:Resources>
+      <y:Resource id="1" type="java.awt.image.BufferedImage">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&#13;
+ieL4/9Iwn+YhTDG5AAAAAElFTkSuQmCC</y:Resource>
+      <y:Resource id="2" type="java.awt.image.BufferedImage">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</y:Resource>
+      <y:Resource id="3" type="java.awt.image.BufferedImage">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</y:Resource>
+      <y:Resource id="4" type="java.awt.image.BufferedImage">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&#13;
+Ov7AwSQAAAAASUVORK5CYII=</y:Resource>
+    </y:Resources>
+  </data>
+</graphml>
diff --git a/install_event/archive/installguide_complete/img/inst-guide-yed.png b/install_event/archive/installguide_complete/img/inst-guide-yed.png
new file mode 100644
index 0000000000000000000000000000000000000000..a711801192450f38a3e0d1c3b28835106ef2a180
Binary files /dev/null and b/install_event/archive/installguide_complete/img/inst-guide-yed.png differ
diff --git a/install_event/archive/installguide_complete/img/inst-guide-yed.svg b/install_event/archive/installguide_complete/img/inst-guide-yed.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7041ac7b32bab151e4a8d40c0352717783832705
--- /dev/null
+++ b/install_event/archive/installguide_complete/img/inst-guide-yed.svg
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="437" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="727" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
+  <!--Generated by ySVG 2.5-->
+  <defs id="genericDefs"/>
+  <g>
+    <defs id="defs1">
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+        <path d="M0 0 L437 0 L437 727 L0 727 L0 0 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+        <path d="M-119 23 L318 23 L318 750 L-119 750 L-119 23 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+        <path d="M-251.9871 226.5838 L-120.176 -190.0633 L572.9646 29.2197 L441.1535 445.8668 L-251.9871 226.5838 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+        <path d="M211.0134 -220.4514 L341.8542 196.5015 L-351.7951 414.1702 L-482.6359 -2.7827 L211.0134 -220.4514 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+        <path d="M-389.4159 344.4034 L-319.5661 -86.9781 L398.0869 29.2252 L328.2371 460.6067 L-389.4159 344.4034 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+        <path d="M-641.9232 186.5028 L-509.3141 -229.891 L183.4052 -9.2804 L50.796 407.1134 L-641.9232 186.5028 Z"/>
+      </clipPath>
+      <clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+        <path d="M472.7563 -477.1559 L626.6498 -68.15 L-53.7786 187.8697 L-207.6722 -221.1362 L472.7563 -477.1559 Z"/>
+      </clipPath>
+    </defs>
+    <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="translate(119,-23)" stroke="white">
+      <rect x="-119" width="437" height="727" y="23" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="56.6" ry="22.2" clip-path="url(#clipPath2)" cx="114.9954" cy="178.9807" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="79.3147" xml:space="preserve" y="183.135" clip-path="url(#clipPath2)" stroke="none">Look / Feel?</text>
+      <ellipse rx="56.6" fill="none" ry="22.2" clip-path="url(#clipPath2)" cx="114.9954" cy="178.9807"/>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="56.6" ry="22.2" clip-path="url(#clipPath2)" cx="62.8563" cy="109.9123" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="21.3544" xml:space="preserve" y="114.0666" clip-path="url(#clipPath2)" stroke="none">Touchscreen?</text>
+      <ellipse rx="56.6" fill="none" ry="22.2" clip-path="url(#clipPath2)" cx="62.8563" cy="109.9123"/>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="90.6" ry="22.2" clip-path="url(#clipPath2)" cx="185.7055" cy="336.2775" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="112.229" xml:space="preserve" y="340.4318" clip-path="url(#clipPath2)" stroke="none">Recent / Fast computer?</text>
+      <ellipse rx="90.6" fill="none" ry="22.2" clip-path="url(#clipPath2)" cx="185.7055" cy="336.2775"/>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="69.7963" ry="22.2" clip-path="url(#clipPath2)" cx="-7.5999" cy="336.2775" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="-62.6487" xml:space="preserve" y="340.4318" clip-path="url(#clipPath2)" stroke="none">What distribution?</text>
+      <ellipse rx="69.7963" fill="none" ry="22.2" clip-path="url(#clipPath2)" cx="-7.5999" cy="336.2775"/>
+      <image stroke-linecap="square" x="-100" y="631" clip-path="url(#clipPath2)" width="93" xlink:href="data:image/png;base64,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&#10;ia5yhF51jDhI5j+gX79+VzF6kEWcPoRehfysalPNPahfPknPlIwK2i7Kab2N20N0&#10;EkISOKhJIUmjevvtt++031nbDyQiC77uiSeeuMsX9rPV/HUkAG0JrDhR8n2qEJ1J&#10;pof4XajYisMUtQ6E+3XnzJnzCqp7aisxb3LtJUuWeOpMSXmmpI7knwYqnVeEpkyk&#10;kYJtHO+//35iOdXatWs78+fPz+x+SM7l0tLSD+l6jNNJtWUEbUbUjmoECiJ04jgy&#10;dRaW6xyRWAbaUCvnwn33AijevHnzEt2KqOluFZ01KI+ZlDF9+OGHd/GUOPQZndEt&#10;yPOSxEHhP8kG6op1owcJVQdvZFnaD+7vtm7dWlZcXNworref43mafp70b6EjULgc&#10;Uh3OF4cThni0cWT+888/vxOau0Tu7lISPqfzKQ7H4sWLnZKSkkQG1d1www1K/VOk&#10;0CdJiZj28k3hIKNKYi9J6K7Wq1fP64DL4n5wWq/9z3XPqbORsD+fx6LAM5kcoRCB&#10;yVwHSOavyJ8OHjy4H0Jq5vL6pOvpGg7KnSZBOj/xxBM9IRGEFSENCZG8Hod8nhQO&#10;YjlcdNFFiTAsaBZVTlwmi/uhkp8MPu+pp556lFg3qrA/aYFpk5RQdmupKYoDqnsq&#10;KEh5+dNq1arVmz59+mjdqZHoLB9pyI8+jyr7rVu3tn4RH3rooc7XX3/tSAp5pidx&#10;cr6XJHGUlpY6bdu2tf5dUNdWTuIvS/uBeqVBHO45/PHee+9dP0ifSpvIb3INljJ+&#10;VGcSErar5kZxlahUYig1atRovHHjxvkIvcOEJ4kqnUtJ/lRpt52/o152mkeP8m25&#10;RRJU/Z3L+00Dx+TJk51atWpZT724Xl3m9oPLUc39u3379g3169dvHKBPKcfS2zSG&#10;yFQRtkHlTBhNMl+BtriG5U9p8qL7JW7TSepzDaGEvhLHIcz9TPzP0047zfrF26tX&#10;L++9uLxG7sWIanFmHcfgwYPF47nRg9p8c91TWdwPrpxl7969T+XmUblj6nUL6jo4&#10;RCpP0nYuCV+VsZ7foNa+++67L+MaO06Yz5lxjuSi4rzc2bNne1QamxfuEUcc4Sxd&#10;ulRJHOdcWKoiG7eLJ2s41q5d63Ts2NF61EDyflnbD9QgB392b0K3huVRJSR93b/b&#10;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" font-family="'Dialog'" height="93" preserveAspectRatio="none" stroke-miterlimit="10"/>
+      <text x="-69.7646" xml:space="preserve" y="729.6917" clip-path="url(#clipPath2)" stroke="none">Unity</text>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="79.6" ry="30.4" clip-path="url(#clipPath2)" cx="185.7055" cy="432.5195" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="131.4184" xml:space="preserve" y="429.6894" clip-path="url(#clipPath2)" stroke="none">Screen Resolution</text>
+      <text x="123.9477" xml:space="preserve" y="443.6581" clip-path="url(#clipPath2)" stroke="none">higher than Full-HD?</text>
+      <ellipse rx="79.6" fill="none" ry="30.4" clip-path="url(#clipPath2)" cx="185.7055" cy="432.5195"/>
+      <image stroke-linecap="square" x="248" y="651" clip-path="url(#clipPath2)" width="53" xlink:href="data:image/png;base64,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" font-family="'Dialog'" height="53" preserveAspectRatio="none" stroke-miterlimit="10"/>
+      <text x="259.6586" xml:space="preserve" y="722.756" clip-path="url(#clipPath2)" stroke="none">XFCE</text>
+      <image stroke-linecap="square" x="130" y="647" clip-path="url(#clipPath2)" width="60" xlink:href="data:image/png;base64,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&#10;AOAE/w9TsLziMn95OgAAAABJRU5ErkJggg==" font-family="'Dialog'" height="62" preserveAspectRatio="none" stroke-miterlimit="10"/>
+      <text x="148.2507" xml:space="preserve" y="727.0083" clip-path="url(#clipPath2)" stroke="none">KDE</text>
+      <image stroke-linecap="square" x="22" y="648" clip-path="url(#clipPath2)" width="60" xlink:href="data:image/png;base64,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" font-family="'Dialog'" height="60" preserveAspectRatio="none" stroke-miterlimit="10"/>
+      <text x="30.372" xml:space="preserve" y="726.276" clip-path="url(#clipPath2)" stroke="none">GNOME</text>
+    </g>
+    <g fill="rgb(226,225,225)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke="rgb(226,225,225)">
+      <ellipse rx="46.8" ry="30.4" clip-path="url(#clipPath2)" cx="219.6585" cy="529.6506" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <text x="188.1116" xml:space="preserve" y="526.8205" clip-path="url(#clipPath2)" stroke="none">Minimal or</text>
+      <text x="181.2796" xml:space="preserve" y="540.7892" clip-path="url(#clipPath2)" stroke="none">feature-rich?</text>
+      <ellipse rx="46.8" fill="none" ry="30.4" clip-path="url(#clipPath2)" cx="219.6585" cy="529.6506"/>
+      <path fill="none" d="M105.0417 124.7388 L112.6221 149.1409" clip-path="url(#clipPath2)"/>
+      <path d="M114.9954 156.7807 L116.2104 143.8376 L112.3254 148.1859 L106.6605 146.8042 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="114.8925" xml:space="preserve" y="139.8884" clip-path="url(#clipPath2)" stroke="none">No</text>
+      <path fill="none" d="M148.6169 196.8425 L183.2925 306.4501" clip-path="url(#clipPath2)"/>
+      <path d="M185.7055 314.0775 L186.8531 301.1282 L182.9909 305.4966 L177.3189 304.1445 Z" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.3016,0.9534,-0.9534,0.3016,292.0371,171.9072)" stroke-linecap="butt">
+      <text x="2" xml:space="preserve" y="13.1387" clip-path="url(#clipPath3)" stroke="none">More like Windows</text>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <path fill="none" d="M28.235 127.5038 L-6.0909 306.2211" clip-path="url(#clipPath2)"/>
+      <path d="M-7.5999 314.0775 L-0.4262 303.236 L-5.9023 305.2391 L-10.2467 301.3498 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="-1.0931" xml:space="preserve" y="146.3707" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Yes</text>
+      <path fill="none" d="M80.0531 196.4646 L43.5625 312.75" clip-path="url(#clipPath2)"/>
+      <path d="M41.1672 320.383 L49.5307 310.4305 L43.8619 311.7959 L39.9895 307.4365 Z" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.2994,-0.9541,0.9541,0.2994,147.1595,267.3379)" stroke-linecap="butt">
+      <text x="2" xml:space="preserve" y="13.1387" clip-path="url(#clipPath4)" stroke="none">More like Mac</text>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <path fill="none" d="M-53.9999 352.8695 L-53.9999 637.9686" clip-path="url(#clipPath2)"/>
+      <path d="M-53.9999 645.9686 L-48.9999 633.9686 L-53.9999 636.9686 L-58.9999 633.9686 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="-101.9218" xml:space="preserve" y="499.3617" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Ubuntu</text>
+      <path fill="none" d="M185.7055 358.4775 L185.7055 394.0768" clip-path="url(#clipPath2)"/>
+      <path d="M185.7055 402.0768 L190.7055 390.0768 L185.7055 393.0768 L180.7055 390.0768 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="110.6756" xml:space="preserve" y="381.4626" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Not too bad</text>
+      <path fill="none" d="M263.2621 347.7813 L276.2346 424.9575 L277.8922 444.8192 L277.8922 645.0128" clip-path="url(#clipPath2)"/>
+      <path d="M277.8922 653.0128 L282.8922 641.0128 L277.8922 644.0128 L272.8922 641.0128 Z" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.1598,0.9871,-0.9871,0.1598,402.2194,329.36)" stroke-linecap="butt">
+      <text x="2" xml:space="preserve" y="13.1387" clip-path="url(#clipPath5)" stroke="none">Slow machine</text>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <path fill="none" d="M160.5964 461.3755 L160.5964 646.1364" clip-path="url(#clipPath2)"/>
+      <path d="M160.5964 654.1364 L165.5964 642.1364 L160.5964 645.1364 L155.5964 642.1364 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="133.6763" xml:space="preserve" y="481.0581" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Yes</text>
+      <path fill="none" d="M44.9357 350.9203 L44.9357 642.1392" clip-path="url(#clipPath2)"/>
+      <path d="M44.9357 650.1392 L49.9357 638.1392 L44.9357 641.1392 L39.9357 638.1392 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="-26.5292" xml:space="preserve" y="500.5773" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">OpenSUSE,</text>
+      <text x="-2.9862" xml:space="preserve" y="514.5461" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Ubuntu</text>
+      <path fill="none" d="M62.8563 68.7491 L62.8563 79.7122" clip-path="url(#clipPath2)"/>
+      <path d="M62.8563 87.7122 L67.8563 75.7122 L62.8563 78.7122 L57.8563 75.7122 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <path fill="none" d="M219.6585 460.0295 L219.6585 491.2506" clip-path="url(#clipPath2)"/>
+      <path d="M219.6585 499.2506 L224.6585 487.2506 L219.6585 490.2506 L214.6585 487.2506 Z" clip-path="url(#clipPath2)" stroke="none"/>
+      <text x="227.0993" xml:space="preserve" y="480.3891" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">No</text>
+      <path fill="none" d="M229.1393 559.4203 L257.0966 647.2064" clip-path="url(#clipPath2)"/>
+      <path d="M259.5242 654.8291 L260.647 641.8777 L256.7931 646.2535 L251.1185 644.9122 Z" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.3035,0.9528,-0.9528,0.3035,372.5023,555.0593)" stroke-linecap="butt">
+      <text x="2" xml:space="preserve" y="13.1387" clip-path="url(#clipPath6)" stroke="none">Minimal</text>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,119,-23)" stroke-linecap="butt">
+      <path fill="none" d="M208.4921 559.1726 L174.5747 648.8438" clip-path="url(#clipPath2)"/>
+      <path d="M171.7445 656.3264 L180.6665 646.8713 L174.9285 647.9084 L171.3132 643.3335 Z" clip-path="url(#clipPath2)" stroke="none"/>
+    </g>
+    <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.3522,-0.9359,0.9359,0.3522,280.1039,610.5064)" stroke-linecap="butt">
+      <text x="2" xml:space="preserve" y="13.1387" clip-path="url(#clipPath7)" stroke="none">Feature-rich</text>
+    </g>
+  </g>
+</svg>
diff --git a/install_event/insatall_guide_assembled/Mac/fedora/IG_mac_fedora.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Mac/fedora/IG_mac_fedora.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Mac/fedora/IG_mac_fedora.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Mac/fedora/IG_mac_fedora.pdf
diff --git a/install_event/insatall_guide_assembled/Mac/opensuse/IG_mac_opensuse.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Mac/opensuse/IG_mac_opensuse.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Mac/opensuse/IG_mac_opensuse.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Mac/opensuse/IG_mac_opensuse.pdf
diff --git a/install_event/insatall_guide_assembled/Mac/ubuntu/IG_mac_ubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Mac/ubuntu/IG_mac_ubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Mac/ubuntu/IG_mac_ubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Mac/ubuntu/IG_mac_ubuntu.pdf
diff --git a/install_event/insatall_guide_assembled/Mac/xubuntu/IG_mac_xubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Mac/xubuntu/IG_mac_xubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Mac/xubuntu/IG_mac_xubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Mac/xubuntu/IG_mac_xubuntu.pdf
diff --git a/install_event/insatall_guide_assembled/Win7/fedora/IG_win7_fedora.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win7/fedora/IG_win7_fedora.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win7/fedora/IG_win7_fedora.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win7/fedora/IG_win7_fedora.pdf
diff --git a/install_event/insatall_guide_assembled/Win7/opensuse/IG_win7_opensuse.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win7/opensuse/IG_win7_opensuse.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win7/opensuse/IG_win7_opensuse.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win7/opensuse/IG_win7_opensuse.pdf
diff --git a/install_event/insatall_guide_assembled/Win7/ubuntu/IG_win7_ubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win7/ubuntu/IG_win7_ubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win7/ubuntu/IG_win7_ubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win7/ubuntu/IG_win7_ubuntu.pdf
diff --git a/install_event/insatall_guide_assembled/Win7/xubuntu/IG_win7_xubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win7/xubuntu/IG_win7_xubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win7/xubuntu/IG_win7_xubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win7/xubuntu/IG_win7_xubuntu.pdf
diff --git a/install_event/insatall_guide_assembled/Win8-10/fedora/IG_win8-10_fedora.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/fedora/IG_win8-10_fedora.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win8-10/fedora/IG_win8-10_fedora.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/fedora/IG_win8-10_fedora.pdf
diff --git a/install_event/insatall_guide_assembled/Win8-10/opensuse/IG_win8-10_opensuse.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/opensuse/IG_win8-10_opensuse.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win8-10/opensuse/IG_win8-10_opensuse.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/opensuse/IG_win8-10_opensuse.pdf
diff --git a/install_event/insatall_guide_assembled/Win8-10/ubuntu/IG_win8-10_ubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/ubuntu/IG_win8-10_ubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win8-10/ubuntu/IG_win8-10_ubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/ubuntu/IG_win8-10_ubuntu.pdf
diff --git a/install_event/insatall_guide_assembled/Win8-10/xubuntu/IG_win8-10_xubuntu.pdf b/install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/xubuntu/IG_win8-10_xubuntu.pdf
similarity index 100%
rename from install_event/insatall_guide_assembled/Win8-10/xubuntu/IG_win8-10_xubuntu.pdf
rename to install_event/archive/installguide_complete/insatall_guide_assembled/Win8-10/xubuntu/IG_win8-10_xubuntu.pdf
diff --git a/install_event/archive/installguide_complete/installguide.tex b/install_event/archive/installguide_complete/installguide.tex
new file mode 100644
index 0000000000000000000000000000000000000000..592c03e77b4af69d64e72c36ce75bef006da5d9d
--- /dev/null
+++ b/install_event/archive/installguide_complete/installguide.tex
@@ -0,0 +1,518 @@
+%%%%%%%%%%%
+% Authors %
+%%%%%%%%%%%
+
+% This install guide was produced by a bunch of students of ETH Zurich part of TheAlternative.ch
+% It was first written for our LinuxDays HS'16 and if it works, we might adapt it in the future.
+% A participant first fills out the questionnaire, then gets a selection of the pages
+% that fit his / her setup.
+%
+% Authors:
+% Aline Abler
+% Sandro Kalbermatter
+% Mickey Vänskä
+% Nicole Thurnherr
+% Nils Leuzinger
+% Lukas Tobler
+% Christoph Müller
+% Jonas Rembser
+% Maximilian Falkenstein
+
+
+%%%%%%%%%%%
+% License %
+%%%%%%%%%%%
+
+% This document is licensed under the Creative Commons BY-NC-SA 4.0 license
+% http://creativecommons.org/licenses/by-nc-sa/4.0/
+
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% Hierarchy Reasoning %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+% You might think the way the documents in this folder are organized is bad.
+% You might say it would be more sensible to group them by topic than by distro, boot type and whatnot.
+% You might say it would be easier to find single files that way.
+% You would be right. It would be easier and more intuitive.
+%
+% However, we organized the files in this way for one specific reason: extensibility.
+%
+% Say we want to add another distro to the guide. What would we do?
+% We simply need to copy an existing distro's folder to a new folder, and
+% then modify all the files inside accordingly.
+% Then we need to link these files in here. That's it.
+%
+% Now imagine the files were organized by topic: first you'd need to find
+% out which topics even do distinguish by distro. Then, you'd need to copy
+% all the single files and keep track of which ones you still need to edit,
+% because they're not in a single location. It would be an unmaintainable
+% mess. So that's why :-)
+
+
+%%%%%%%%%%%%%%%%%
+% Document Base %
+%%%%%%%%%%%%%%%%%
+
+\documentclass[a4paper,10pt]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[pdfborder={0 0 0}]{hyperref} % Smart framework to reference labels
+\usepackage{nameref} % Better references used by hyperref implicitly - We need it though explicitly called for GetTitleStringSetup
+\usepackage{parskip}
+\usepackage{setspace}
+\usepackage{url}
+\usepackage{float} % modify and manage floats
+\usepackage{hypcap}
+\usepackage{multicol} % manage column counts for each page
+\usepackage{enumitem} % control topsep and leftmargin for lists
+\usepackage[pdftex,dvipsnames,usenames]{color} % for background color
+\usepackage[pdftex]{graphicx} % import graphics/images
+\usepackage[font=scriptsize,format=plain,labelfont=bf,textfont=it,justification=justified,singlelinecheck=false,skip=0.05cm,labelsep=endash]{caption} % manage captions of figures
+\usepackage[a4paper,left=20mm,right=20mm,top=28mm,bottom=26mm]{geometry} % manage global document page setup
+\usepackage[compact,pagestyles,extramarks]{titlesec} % Set pagestyle, header and footer
+\usepackage{listings}
+\usepackage{array}
+\usepackage{multirow}
+
+\usepackage{etoolbox} % Manipulate commands by pre/appending to them and patching them
+\usepackage{xparse} % New way of defining document-wide commands with more flexibility
+\usepackage{xspace} % Smart spacing when using \newcommand for global strings
+\usepackage[most]{tcolorbox} % Another way of drawing textboxes
+
+\usepackage{wasysym} % provides \ocircle and \Box
+\usepackage{forloop} % used for \Qrating and \Qlines
+\usepackage{ifthen} % used for \Qitem and \QItem
+
+\usepackage{booktabs} % Beautiful tables
+
+\usepackage{stackengine} % Used for drawing the graphic in \warn
+\usepackage{scalerel} % Used for scaling the graphic in \warn
+
+\usepackage{colortbl}
+\usepackage{xcolor}
+
+%%%%%%%%
+% Misc %
+%%%%%%%%
+
+% Set automatic linebreaks for source code listings
+\lstset{breaklines=true}
+
+% Default label
+\def\labelitemi{--}
+
+% Default path for images
+\graphicspath{{img/}}
+
+% Default graphics extensions when not explicitly mentioned - Ordered list
+\DeclareGraphicsExtensions{.png,.jpg,.pdf}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Document layout & spacings %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Spacings in the document
+\setlength{\columnsep}{1.5\baselineskip}
+\titlespacing{\section}{0pt}{2ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\titlespacing{\subsection}{0pt}{2ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\titlespacing{\subsubsection}{0pt}{2ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\titlespacing{\subsubsubsection}{0pt}{2ex plus 0.5ex minus 0.5ex}{0ex plus 0.5ex}
+\setlength{\parskip}{1mm}
+\setlength{\parsep}{0pt}
+
+% Penalties for widows/orphans (lines at top/bottom of page ending/starting)
+\widowpenalty = 500 % default: 150
+\clubpenalty = 500 % default: 150
+
+% Hyphenation penalties and settings
+\hyphenpenalty = 1000
+\tolerance = 2000
+%\emergencystretch=10pt
+\lefthyphenmin = 4
+\righthyphenmin = 4
+
+% to make sure next chapter starts on odd page
+\newcommand{\cleartooddpage}{
+	\clearpage
+	\ifodd
+		\value{page}
+	\else
+		\null
+		\clearpage
+	\fi
+	\setcounter{page}{1}
+}
+
+\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% Counter manipulation %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Allow only section numbering
+\setcounter{secnumdepth}{1}
+
+
+%%%%%%%%%%%%%%%%%%%
+% Custom sections %
+%%%%%%%%%%%%%%%%%%%
+
+\makeatletter
+\def\refaddtocounter#1#2{
+	\addtocounter{#1}{#2}
+	\protected@edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname }
+}
+
+% Section that is not visible but still behaves like a section, may have a relative offset
+\DeclareDocumentCommand{\sectionunlisted}{ m O{1} }{
+	\refaddtocounter{section}{#2}
+	\protected@edef \@currentlabel {\csname p@section\endcsname \csname thesection\endcsname}
+	\NR@gettitle{#1}
+	\sectionmark{#1} % Add section mark (header)
+	\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1} % Add section to ToC
+}
+
+% Emit a new section with a relative offset section number
+\DeclareDocumentCommand{\sectionrelnum}{ m O{-1}} {
+	\refaddtocounter{section}{#2} % Increment section counter by #1
+	\section{#1} % Print the section
+	\addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% Add section to ToC
+}
+
+% Subsection that is not visible but still behaves like a subsection, may have a relative offset
+\DeclareDocumentCommand{\subsectionunlisted}{ m O{1} }{
+	\refaddtocounter{subsection}{#2}
+	\protected@edef \@currentlabel {\csname p@subsection\endcsname \csname thesubsection\endcsname}
+	\NR@gettitle{#1}
+	\subsectionmark{#1} % Add subsection mark (header)
+	\addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1} % Add subsection to ToC
+}
+
+% Emit a new subsection with a relative offset subsection number
+\DeclareDocumentCommand{\subsectionrelnum}{ m O{-1} }{
+	\refaddtocounter{subsection}{#2} % Increment section counter by #2
+	\subsection{#1} % Print the subsection
+	\addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1}% Add subsection to ToC
+}
+
+% Emit a hidden subsection that is not listed in the ToC but still sets the relative counter
+\DeclareDocumentCommand{\subsectionhidden}{ m O{0} }{
+	\refaddtocounter{subsection}{#2}
+	\protected@edef \@currentlabel {\csname p@subsection\endcsname \csname thesubsection\endcsname}
+	\NR@gettitle{#1}
+	\subsectionmark{#1} % Add subsection mark (header)
+}
+
+% Call a new customized section
+% Arg1: Input * if we want an empty and hidden subsection
+% Arg2: Section name
+% Arg3: Switch for special section types
+% Arg4: Passed to the special section type
+\DeclareDocumentCommand{\mysection}{ s m o o }{
+	\IfNoValueTF {#3}{
+		\section{#2}
+	}{
+		\IfValueTF {#4}{
+			\csname section#3\endcsname{#2}[#4]
+		}{
+			\csname section#3\endcsname{#2}
+		}
+	}
+	\IfBooleanT {#1}{
+		% Emit the special empty subsection
+		\mysubsection{}[hidden]
+	}
+}
+
+% Call a new customized subsection
+% Arg1: Input * if we want to mirror our subsection prepended with {\ --\ }
+% Arg2: Subsection name
+% Arg3: Switch for special subsection types
+% Arg4: Passed to the special subsection type
+\DeclareDocumentCommand{\mysubsection}{ s m o o }{
+	\IfBooleanT {#1}{
+		% We want a mirrored and hidden subsection
+		\subsectionhidden{\ --\ #2}
+	}
+	\IfNoValueTF {#3} {
+		\subsection{#2}
+	}{
+		\IfValueT {#4}{
+			\csname subsection#3\endcsname{#2}[#4]
+		}{
+			\csname subsection#3\endcsname{#2}
+		}
+	}
+	\IfBooleanT {#1}{
+		% We want a mirrored and hidden subsection
+		\subsectionhidden{\ --\ #2}
+	}
+}
+
+
+%%%%%%%%%%%%%%%%%%%
+% Custom commands %
+%%%%%%%%%%%%%%%%%%%
+
+% Draws a danger sign, accepts a bordercolour and size as optional arguments
+\DeclareDocumentCommand{\dangersign}{ O{red} O{3ex} }{
+	\renewcommand\stacktype{L}
+	\scaleto{\stackon[1.3pt]{\color{#1}$\triangle$}{\tiny\bfseries !}}{#2}
+}
+
+% Monospaced shell commands
+\newcommand{\shellcommand}[1]{\indent\indent\texttt{#1}}
+\newcommand{\shellcommandr}[1]{\indent\indent\texttt{#1}}
+
+% Troubleshooting box
+\DeclareDocumentCommand{\troubleshoot}{ +m }{
+	\begin{tcolorbox}[breakable,enhanced]
+		#1
+	\end{tcolorbox}
+}
+
+% Free space recommendations for Linux installs
+\newcommand{\freespacerec}{40\,GB\xspace}
+\newcommand{\freespacemin}{20\,GB\xspace}
+
+% Some default shortcuts for everyone to use
+\newcommand{\eg}{e.g.\xspace}
+\newcommand{\ie}{i.e.\xspace}
+\newcommand{\os}{operating system\xspace}
+\newcommand{\Os}{Operating system\xspace}
+\newcommand{\mac}{\mbox{Max\,OS\,X}\xspace}
+\newcommand{\winseven}{\mbox{Windows\,7}\xspace}
+\newcommand{\wineight}{\mbox{Windows\,8}\xspace}
+\newcommand{\winten}{\mbox{Windows\,10}\xspace}
+\newcommand{\deskenvs}{Desktop Environment\xspace}
+%\newcommand{}{}
+
+% Reference section by number and name
+\newcommand{\secref}[1]{\mbox{\ref{#1}.\,\nameref{#1}}}
+
+% Reference subsection by sectionnumber, sectionname and subsectionname
+\newcommand{\subsecref}[2]{\mbox{\ref{#1}.\,\nameref{#1}\nameref{#2}}}
+
+% Standardized info; Informs the reader of why something is done, can be ommitted
+\DeclareDocumentCommand{\info}{ m }{
+	\virtualbox{\emph{Info: }}[#1]
+}
+
+% Standardized note; Requires to be read and adapt the solution accordingly
+\DeclareDocumentCommand{\note}{ m }{
+	\virtualbox{\textbf{Note: }}[#1]
+}
+
+% Standardized warning; Give a general warning about things to happen
+\DeclareDocumentCommand{\warn}{ m }{
+	\virtualbox{\dangersign\textbf{\textsc{Warning: }}}[#1]
+}
+
+% Standardized caution; Pay extra attention on this.
+\DeclareDocumentCommand{\caution}{ m }{
+	\virtualbox{\dangersign[yellow]\textbf{\textsc{Caution: }}}[#1]
+}
+
+% Standardized important; Important notification of what can be ignored for now.
+\DeclareDocumentCommand{\important}{ m }{
+	\virtualbox{\textbf{\textsc{Important: }}}[#1]
+}
+
+% Standardized suggestions; Our official suggestion on a topic
+\DeclareDocumentCommand{\suggestions}{ m }{
+	\virtualbox{\textbf{Suggestions: }}[#1]
+}
+
+% A quick command for a nicer DE mentioning
+\DeclareDocumentCommand{\de}{ m }{
+	\virtualbox{\textbf{DEs: }}[#1]
+}
+
+\DeclareDocumentCommand{\virtualbox}{ m O{Fill me in!} }{
+	\parbox[t]{\widthof{#1}}{#1}
+	\parbox[t]{\linewidth-\widthof{#1}}{#2}
+}
+
+
+%%%%%%%%%%%%%%%
+% Page styles %
+%%%%%%%%%%%%%%%
+
+% Required to keep access all these different extramarks
+\settitlemarks*{section,subsection}
+
+% Style applied to the page when a section is defined
+\newpagestyle{installguide}{
+	\setheadrule{.55pt}
+	\setfoot[][][] % even pages
+    {\includegraphics[width=2cm]{by-nc-sa_eu}} % odd-left
+	{} % odd-centre
+	{\includegraphics[width=4cm]{TheAlt-bw}} % odd-right
+	\sethead[][][] % even pages
+	{Install Guide -- Version 1.04} % odd-left
+	%{\firstextramarks{section}\textsc{\textbf\sectiontitle}{ }\emph{\firstextramarks{subsection}\subsectiontitle}}
+	{\firstextramarks{section}\textbf\sectiontitle \firstextramarks{subsection}\subsectiontitle}
+	{\firstextramarks{section}\thesection{ -- }\thepage} % odd-right
+}
+
+\makeatother
+\begin{document}
+	\pagestyle{installguide}
+	\mysection{Welcome to the Install Event!}
+	\label{sec:welcome}
+	\input{overview}
+	\pagebreak
+
+	\mysubsection*{My system}[unlisted]
+	\label{subsec:welcome-system}
+	\input{system}
+	\pagebreak
+
+	\mysubsection*{Distribution}[unlisted]
+	\label{subsec:welcome-distri}
+	\input{distro}
+	\pagebreak
+
+	\mysubsection*{Desktop Environment}[unlisted]
+	\label{subsec:welcome-de}
+	\input{de}
+	\cleartooddpage
+
+	% Preparation and Boot for Win 7
+	\mysection{Preparation}
+	\label{sec:prep}
+	\mysubsection*{Windows 7 or earlier}[unlisted]
+	\label{subsec:prep-win7}
+	\input{win7/preparation}
+	\mysection{Boot}[relnum]
+	\label{sec:boot}
+	\mysubsection*{Windows 7 or earlier}[unlisted]
+	\label{subsec:boot-win7}
+	\input{win7/boot}
+	\cleartooddpage
+
+	% Preparation and Boot for Win 8
+	\mysection{Preparation}[relnum]
+	\mysubsection*{Windows 8 or later}[unlisted]
+	\label{subsec:prep-win8}
+	\input{win8-10/preparation}
+	\mysection{Boot}[relnum]
+	\mysubsection*{Windows 8 or later}[unlisted]
+	\label{subsec:boot-win8}
+	\input{win8-10/boot}
+	\cleartooddpage
+
+	% Preparation and Boot for Mac OS X
+	\mysection{Preparation}[relnum]
+	\mysubsection*{Mac OS X}[unlisted]
+	\label{subsec:prep-mac}
+	\input{mac/preparation}
+	\mysection{Boot}[relnum]
+	\mysubsection*{Mac OS X}[unlisted]
+	\label{subsec:boot-mac}
+	\input{mac/boot}
+	\cleartooddpage
+
+	% Installation and Partitioning for OpenSUSE
+	\mysection{Installer overview}
+	\label{sec:inst}
+	\mysubsection*{OpenSUSE}[unlisted]
+	\label{subsec:inst-suse}
+	\input{suse/overview}
+	\cleartooddpage
+	\mysection{Partitioning}
+	\label{sec:part}
+	\mysubsection*{OpenSUSE}[unlisted]
+	\label{subsec:part-suse}
+	\input{suse/partitioning}
+	\cleartooddpage
+
+	% Installation and Partitioning for *buntu
+	\mysection{Installer overview}[relnum][-2]
+	\mysubsection*{*buntu}[unlisted]
+	\label{subsec:inst-buntu}
+	\input{buntu/overview}
+	\cleartooddpage
+	\mysection{Partitioning}
+	\mysubsection*{*buntu}[unlisted]
+	\label{subsec:part-buntu}
+	\input{buntu/partitioning}
+	\cleartooddpage
+
+	% Installation and Partitioning for Fedora
+	\mysection{Installer overview}[relnum][-2]
+	\mysubsection*{Fedora}[unlisted]
+	\label{subsec:inst-fedora}
+	\input{fedora/overview}
+	\cleartooddpage
+	\mysection{Partitioning}
+	\mysubsection*{Fedora}[unlisted]
+	\label{subsec:part-fedora}
+	\input{fedora/partitioning}
+	\cleartooddpage
+
+	% Partitioning Plan for EFI and Legacy
+	\mysection*{Partitioning Plan}
+	\label{sec:partplan}
+	\input{partitionplan}
+	\cleartooddpage
+
+	\mysection*{Testing}
+	\label{sec:testing}
+	\input{testing}
+	\cleartooddpage
+
+	% Distro Configuration for OpenSUSE, *buntu, Fedora
+	\mysection{Distribution Configuration}
+	\label{sec:distconf}
+	\mysubsection*{OpenSUSE}[unlisted]
+	\label{subsec:distconf-suse}
+	\input{suse/config}
+	\cleartooddpage
+
+	\mysection{Distribution Configuration}[relnum]
+	\mysubsection*{*buntu}[unlisted]
+	\label{subsec:distconf-buntu}
+	\input{buntu/config}
+	\cleartooddpage
+
+	\mysection{Distribution Configuration}[relnum]
+	\mysubsection*{Fedora}[unlisted]
+	\label{subsec:distconf-fedora}
+	\input{fedora/config}
+	\cleartooddpage
+	
+
+	\mysection{Desktop Environment Configuration}
+	\label{sec:deconf}
+	\mysubsection*{GNOME}[unlisted]
+	\label{subsec:deconf-gnome}
+	\input{gnome/config}
+	\cleartooddpage
+	\mysection{Desktop Environment Configuration}[relnum]
+	\mysubsection*{KDE}[unlisted]
+	\label{subsec:deconf-kde}
+	\input{kde/config}
+	\cleartooddpage
+	\mysection{Desktop Environment Configuration}[relnum]
+	\mysubsection*{Unity}[unlisted]
+	\label{subsec:deconf-unity}
+	\input{unity/config}
+	\cleartooddpage
+	\mysection{Desktop Environment Configuration}[relnum]
+	\mysubsection*{XFCE}[unlisted]
+	\label{subsec:deconf-xfce}
+	\input{xfce/config}
+	\cleartooddpage
+
+    \mysection*{The End}
+    \input{end}
+    \pagebreak
+	\mysection*{Software Recommendations}[unlisted]
+	\label{sec:software}
+	\input{software}
+\end{document}
diff --git a/install_event/archive/installguide_complete/kde/config.tex b/install_event/archive/installguide_complete/kde/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9041be5c104523d7b6a6e96c583bae4b3f4ed1b1
--- /dev/null
+++ b/install_event/archive/installguide_complete/kde/config.tex
@@ -0,0 +1,36 @@
+% kde config
+
+KDE is very similar to the Windows desktop, so you should find it easy to get around. It is also highly customizable. Pretty much anything you see can be changed in some way, just open System Settings and look around.
+
+\subsubsection{HiDPI}
+If everything looks smaller than usual or you want to enlarge the content do the following:
+\begin{itemize}
+	\item \emph{Configure Desktop} > \emph{Display and Monitor} > \emph{Scale Display}
+	\item \emph{Configure Desktop} > \emph{Font} > Check \emph{Force fonts DPI} > Set ``200''
+	\item Log out and log back in.
+	\item If anything still looks odd, please repeats steps 1--3-
+\end{itemize}
+
+\subsubsection{Keyboard layout}
+Should your keyboard layout not be set correctly, then you may adjust it like this: \emph{Configure Desktop} > \emph{Input Devices} > \emph{Keyboard} > \emph{Layouts} > Check \emph{Configure layouts}
+
+\subsubsection{Widgets}
+Widgets are little applications that are placed either on your desktop or on your panel, such as a calendar or a clock. Everything you can see on your desktop when no application is open is a widget. KDE comes with lots of widgets included. You can right click anywhere on the desktop, click \textit{Add widget...} and then browse through the various widgets available. You can place them on your desktop, drag them around, and delete them again. Most widgets also have a separate configuration.
+
+Widgets can be placed directly on the desktop or inside a panel, most Widgets appear differently depending on whether they are placed on the desktop or inside a panel. Per default, a panel is placed at the bottom of the screen (the one that contains your start menu and notification area). You can move this panel anywhere, add new panels, or remove it entirely (not recommended). If you remove it by accident, just right click on your desktop and do \textit{Add panel} and then \textit{Default panel}.
+
+\subsubsection{Launcher}
+In KDE, you can easily change the look and feel of your launcher (start menu). Right click it and select \textit{Alternatives}. You can now choose among the installed launchers. Try which one you like best.
+
+\subsubsection{Dolphin}
+Dolphin, the default file manager of Plasma desktop, is one of the most powerful file managers around. It’s extremely feature rich. By default, Dolphin is configured to open any file with a single click, which can be annoying for those of you who are used to double clicking to open a file. You can change this by going to \textit{(Start menu)} > \textit{type ``mouse'' or ``maus''} > Open \textit{Mouse Controls} > \textit{Icons} > \textit{Single-click to open files and folders}
+
+\subsubsection{Themeing}
+Like most things in KDE, themes are configurable via System Settings. However, KDE has multiple kinds of themes, which can be confusing: \begin{itemize}
+	\item \textit{Workspace Theme} > \textit{Desktop Theme}: This is the theme your widgets use. It controls the general appearance of panels, your application launcher, etc.
+	\item \textit{Workspace Theme} > \textit{Cursor Theme}
+	\item \textit{Worksapce Theme} > \textit{Color}
+	\item \textit{Application Style} > \textit{Widget Style}: This is the theme applications use, for example, this changes how an applications buttons look like.
+	\item \textit{Application Style} > \textit{Windows Decorations}: This is the theme for your window decorations, i.e.\ the part of each window containing the name.
+\end{itemize}
+Per default, all four themes are set to Breeze and the default color scheme is Breeze. Themes can be installed either directly from the respective area of System Settings or manually, which is often required for complex application styles(Virtuality, to name the most popular example).
diff --git a/install_event/archive/installguide_complete/mac/boot.tex b/install_event/archive/installguide_complete/mac/boot.tex
new file mode 100644
index 0000000000000000000000000000000000000000..52e88a44af2d2e9baf5c927ef65e333a266db949
--- /dev/null
+++ b/install_event/archive/installguide_complete/mac/boot.tex
@@ -0,0 +1,14 @@
+We will now boot from your USB Install Medium.
+
+\begin{enumerate}
+	\item Plug your USB Install Medium into your laptop.
+	\item Reboot your machine and \textit{rEFInd} should see the USB key.
+	\item Your USB installer may have several ways to boot. They all will show up and have a little USB icon to the bottom right.
+	\item Usually the first USB installer is correct. If it doesn't work, reboot and try the others, or ask a helper.\\
+		\note{You should avoid entries that say \textit{Legacy}.}
+	\item If your USB installer doesn't show up, hit \textit{Escape} to refresh the list. It should show up now.
+	\item If you see multiple USB keys, try each of them until you are satisfied.
+
+\end{enumerate}
+
+\input{commons/boot}
diff --git a/install_event/archive/installguide_complete/mac/preparation.tex b/install_event/archive/installguide_complete/mac/preparation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..46234ee8b8fac13be93b8e4e16aad627ce707ea4
--- /dev/null
+++ b/install_event/archive/installguide_complete/mac/preparation.tex
@@ -0,0 +1,44 @@
+\input{commons/preparation}
+\subsubsection{Make space}
+We recommend to have at least \freespacemin of free space on your disk. If you know you need programs for your studies (e.g.\ Matlab), please have at least \freespacerec of free space on your disk. In case you are missing space, you can empty the trash.
+
+
+\subsubsection{Shrink your OS X partition}
+On Macs, we will resize your existing partition before the installation of Linux. The idea is to shrink your OS X partition in order to make space for your new Linux system.
+\begin{enumerate}
+	\item Go to \textit{/Applications/Utilities} and open the \textit{Disk Utility}.
+	\item Select your main disk in the list to the left (usually the first or the largest).
+	\item Select the tab \textit{Partition}.
+	\item On the left side there is a white rectangle with some blue threshold indicating the space consumed by Mac OS X.
+	\item Click and hold the lower right corner of that rectangle and draw the cursor upwards, to shrink the volume.
+	\item The text on the right will give you information about the freed memory.
+    \item If you are unsure as to how much space you need for Linux, please refer to \textit{\secref{sec:partplan}}.
+	\item Once you are satisfied, click \textit{Apply} to confirm the shrinking operation.
+\end{enumerate}
+
+
+\subsubsection{Install rEFInd}
+Unlike on PCs, we will install the bootloader on Macs before the installation. \textit{rEFInd} will boot your USB Install Medium as well as your operating system later on.
+
+\begin{enumerate}
+	\item Browse the web for \underline{http://www.rodsbooks.com/refind/getting.html} and scroll down a bit to click the link \textit{A binary zip file}.
+	\item Wait a moment for the download.
+	\item Go to the \textit{Download folder} and extract the file.
+	\item Open a Mac terminal by going to \textit{Application/Utilities} and opening \textit{Terminal}.
+	\item Type \shellcommand{cd\textvisiblespace} (with a space afterwards, but do \textbf{not} press \textit{Enter} yet) and drag the extracted folder into the terminal.
+	\item Now, hit \textit{Enter} and then type \shellcommand{./refind-install}.
+	\item When prompted for your password, enter it.\\
+		\note{You won't see what you enter at the password prompt at all. You have to enter your password blindly.}
+\end{enumerate}
+
+\troubleshoot{
+\textbf{In case you get an error message saying \textit{ALERT: SIP ENABLED}, you need to do the following:}
+
+\begin{enumerate}
+	\item Turn off your Mac and start it again, pressing \textit{Cmd+R} immediately after turning it on again (you might want to hold it for a while).
+	\item Your Mac should boot in \textit{recovery mode}. Go to \textit{Utilities} and open up a terminal.
+	\item Now type: \shellcommand{csrutil disable}.
+	\item Then reboot back into your normal system and try to install \textit{rEFInd} again.
+	\item After installation, feel free to go once more into recovery and type \shellcommand{csrutil enable}.
+\end{enumerate}
+}
diff --git a/install_event/archive/installguide_complete/overview.tex b/install_event/archive/installguide_complete/overview.tex
new file mode 100644
index 0000000000000000000000000000000000000000..05c5cb50b09d2df8d2a514b0dfe189834ed8a6da
--- /dev/null
+++ b/install_event/archive/installguide_complete/overview.tex
@@ -0,0 +1,23 @@
+Welcome to the LinuxDays Install Event. This document is designed to help you understand where you can find everything you need. Please also pay attention to any announcements we make.
+
+%\subsection{Material}
+\mysubsection*{Material}
+You will need a variety of things for the installation. You can find power outlets and LAN cables on the table, ready to be used. For all the other material we have set up a supply desk. 
+There, you can not only get the installation guides and the USB installers but also USB hubs, LAN adapters and keyboards if you need them. Whenever you need to get material, please go to that desk and ask for what you need.
+When you go for the first time you will have to present your \textbf{Legi or ID card} and leave it there as a deposit. You will get your Legi back as soon as you have returned all the material you got from us. This is so we can prevent the material from getting lost.
+
+\subsection{Staff}
+Our staff is easily recognizable by their blue T-Shirts with our logo on the front and a large penguin on the back. We distinguish three types of helpers:
+\begin{itemize}
+\item General Helpers: Those are either TheAlternative members or volunteers. They are here to help you with the installation in case any problems arise.
+\item Patrol: Those helpers can be recognized by their orange armbands. Their job is to schedule the General Helpers. It often happens that certain helpers have special skills which are needed in some particular case or other, so the Patrol will inform those helpers of a problem that needs their special attention. Please do not ask the Patrol for help with your installation. If, however, you have been waiting for a helper for a while, please refer to the Patrol and they will make sure someone will attend to you as soon as possible.
+\item Auxiliary Staff: Those helpers are marked with green armbands. Their job is to do all the non-technical work, such as preparing food or handing out supplies. Please do not ask them installation-related questions. They are, however, very happy to answer your questions about the events or TheAlternative.
+\end{itemize}
+
+\subsection{Demolaptops}
+We have some laptops prepared with different Distributions and Desktop Environments on them. If you have any troubles deciding which Distro or Desktop Environment you want, please feel free to go to the demo table and have a look at these laptops. There should be a staff member present near the demolaptops to answer any questions you might have.
+
+\subsection{Food}
+We have free sandwiches and drinks ready for you. During the installation, there will oftentimes be moments when you have to wait for your computer to do things. You can use these moments to take a break.
+
+Have fun, and welcome to the wonderful world of Linux!
diff --git a/install_event/archive/installguide_complete/partitionplan.tex b/install_event/archive/installguide_complete/partitionplan.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f6ecea381caf0a95c82a97881e500b57a3736711
--- /dev/null
+++ b/install_event/archive/installguide_complete/partitionplan.tex
@@ -0,0 +1,76 @@
+This is an overview designed to help you in the partitioning step and teach you some of the Linux file system basics.\\
+\important{Please check again whether you have a Legacy setup or use EFI. Check the questionnaire again if you cannot remember.}
+
+\subsubsection{EFI}
+This is only relevant if you have a system using EFI. EFI systems require a special boot partition to boot from, called the \emph{ESP (EFI System Partition)}. It will likely already be present on your system as \emph{/dev/sda1} or \emph{/dev/sda2} (see below for more details) when Linux is booted up. If you use EFI but it isn't present then please ask for more help.
+
+\subsubsection{Home partiton}
+The home folder is where all your personal files and user configurations are stored. It is possible to move it to a separate partition. That means your files will be physically separated from your system. Most installers do this automatically by default, but you can decide to not use a seperate home partition.
+
+\begin{itemize}
+	\item Advantages
+		\begin{itemize}
+			\item You can easily switch to a different distro and keep all your files and configuration.
+			\item It is easier to create a full backup of just your files.
+		\end{itemize}
+	\item{Disadvantages}
+		\begin{itemize}
+			\item You have less flexibility in managing your disk space. If you install lots of programs, your root partition might be full even though there's still a lot of space left on your home partition. This would not happen if you did not have a separate home partition. If you only have little disk space to spare for Linux, this can be a real problem.
+		\end{itemize}
+\end{itemize}
+
+With OpenSUSE, disabling the creation of a separate home partition is easy and straightforward. Refer to \emph{\subsecref{sec:part}{subsec:part-suse}} for more instructions.
+
+In Ubuntu, though, there is no simple option to disable a separate home partition. If you don't want one, you will have to manually partition your disk. Refer to \emph{\subsecref{sec:part}{subsec:part-buntu}} for more instructions. Our helpers will gladly assist you if you're uncomfortable with doing this on your own.
+
+\subsubsection{Swap partiton}
+This is a partition which can be used to extend your RAM, and is required for hibernating your laptop. There are no disadvantages in having one, and thus we highly recommend it. Your installer should automatically create one for you but you can decide to not use a swap partition.
+
+\subsubsection{Disk space needed for Linux}
+Another decision you have to make here is how much of your disk space you want to dedicate to Linux. This mostly depends on how much you intend to use it and what for.
+
+In theory, Linux can be used with very little space at the expense of functionality. But we want you to experience Linux and many of its features so we came up with the following recommendations. If you have little space to spare then try to give Linux \freespacemin. This should suffice for most but we recommend you give Linux \freespacerec or more to have enough headroom for even the largest of program.
+
+The following 3 aspects can be helpful in your decision:
+\begin{enumerate}
+	\item \emph{What will you use Linux for?} This is a minimal requirement and indicates how much space you should give at least to Linux. If you just want to play around with Linux without downloading\,/\,installing lots of things, you can decide around 5--10\,GB. However, keep in mind that changing a partition layout is cumbersome\,---\,you might regret this choice later when you start to like Linux more and want to switch to it. If you want to actively use Linux for some time, 20--50\,GB are recommended at least. Finally, if you want to make Linux your main system, you need to additionally allocate enough space to contain all your personal data.
+	\item \emph{How large is your drive?} If you have a large hard drive (say, 1 TB or more), space is not very important and you can easily give your Linux a few hundred GB. If your space is limited though, think carefully which system you will use more, then give that system more space. Make sure your existing operating system has at least 10\,GB of free space after shrinking (for installing updates).
+	\item \emph{How much space does your existing data take?} The more data you have, the more important it is to know what system to put it on. Make sure your main system has enough space to contain all your data plus the space for the system. Linux and its installed programs usually take up between 5--15\,GB of disk space.
+\end{enumerate}
+
+Choosing the right size is tricky because it requires you to anticipate your future behaviour. Ask a helper if you need personal advice.
+
+\subsubsection{The partitions you need}
+
+This is a list of the partitions you need. The installer should automatically figure this out for you\,---\,in most cases you won't need this list. We include it as a reference in case you need to manually set up your partitions.
+
+\begin{itemize}
+	\item \textbf{Root partition}
+	\begin{itemize}
+		\item Create this partition yourself
+		\item File system type: \emph{ext4}
+		\item Mount point: /
+		\item Recommended size: \freespacemin if you want a home partition, otherwise as large as possible.
+	\end{itemize}
+	\item \emph{Optional:} \textbf{Home partition}
+	\begin{itemize}
+		\item Create this partition yourself
+		\item File system type: \emph{ext4}
+		\item Mount point: /home
+		\item Recommended size: As large as possible.
+	\end{itemize}
+	\item \emph{Optional:} \textbf{Swap partition}
+	\begin{itemize}
+		\item Create this partition yourself
+		\item Type: \textit{swap}
+		\item Mount point: none
+		\item Recommended size: About 2GB more than you have RAM.
+	\end{itemize}
+	\item \dangersign\emph{EFI only:} \textbf{ESP (EFI System Partition)}
+	\begin{itemize}
+		\item This partition should already exist and is usually automatically detected\,---\,usually being the first or second partition. You should not change any of its properties except for the mount point.
+		\item File system type: \emph{FAT32} (This should already be set. \textsc{Do not format this partition!})
+		\item Mount point: /boot/efi
+		\item Recommended size: 200MB (This should already be the case. \textsc{Do not change the size.})
+	\end{itemize}
+\end{itemize}
diff --git a/install_event/archive/installguide_complete/software.tex b/install_event/archive/installguide_complete/software.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c986bb2d2150183607750ccf72f2f83701139c5d
--- /dev/null
+++ b/install_event/archive/installguide_complete/software.tex
@@ -0,0 +1,146 @@
+% vim: ft=tex
+\renewcommand{\arraystretch}{1.2}
+
+\colorlet{tableheadcolor}{gray!25} % Table header colour = 25% gray
+\newcommand{\headcol}{\rowcolor{tableheadcolor}} %
+\colorlet{tablerowcolor}{gray!10} % Table row separator colour = 10% gray
+\newcommand{\rowcol}{\rowcolor{tablerowcolor}} %
+	% Command \topline consists of a (slightly modified) \toprule followed by a \heavyrule rule of colour tableheadcolor (hence, 2 separate rules)
+\newcommand{\topline}{\arrayrulecolor{black}\specialrule{0.1em}{\abovetopsep}{0pt}%
+			\arrayrulecolor{tableheadcolor}\specialrule{\belowrulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \midline consists of 3 rules (top colour tableheadcolor, middle colour black, bottom colour white)
+\newcommand{\midline}{\arrayrulecolor{tableheadcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
+			\arrayrulecolor{white}\specialrule{\belowrulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \rowmidlinecw consists of 3 rules (top colour tablerowcolor, middle colour black, bottom colour white)
+\newcommand{\rowmidlinecw}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
+			\arrayrulecolor{white}\specialrule{\belowrulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \rowmidlinewc consists of 3 rules (top colour white, middle colour black, bottom colour tablerowcolor)
+\newcommand{\rowmidlinewc}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}\specialrule{\lightrulewidth}{0pt}{0pt}%
+			\arrayrulecolor{tablerowcolor}\specialrule{\belowrulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \rowmidlinew consists of 1 white rule
+\newcommand{\rowmidlinew}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \rowmidlinec consists of 1 tablerowcolor rule
+\newcommand{\rowmidlinec}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}}
+	% Command \bottomline consists of 2 rules (top colour
+\newcommand{\bottomline}{\arrayrulecolor{white}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}\specialrule{\heavyrulewidth}{0pt}{\belowbottomsep}}%
+\newcommand{\bottomlinec}{\arrayrulecolor{tablerowcolor}\specialrule{\aboverulesep}{0pt}{0pt}%
+			\arrayrulecolor{black}\specialrule{\heavyrulewidth}{0pt}{\belowbottomsep}}%
+
+
+\begin{table}[H]
+\begin{minipage}{0.5\linewidth}
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Office}} \\
+\midline
+Office suite & LibreOffice \\
+\rowcol PDF reader & Evince, Atril, Okular \\
+Notetaking, PDF annotation & Xournal \\
+\rowcol LaTeX Editor & Texstudio, Texmaker \\
+Mindmapping & VYM \\
+\rowcol Design/Publishing & Scribus \\
+Simple Text Editor & Gedit (GNOME), Kwrite (KDE), Leafpad (XFCE) \\
+\rowcol Advanced Text Editor & Geany (GNOME, XFCE), Kate (KDE) \\
+Power User Text Editor & vim, emacs \\
+\rowcol Advanced file manager & SpaceFM, Nemo (GNOME), ranger \\
+CAD & FreeCAD \\
+\end{tabular}
+
+\vspace{5mm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Graphics}} \\
+\midline
+Image editing & GIMP \\
+\rowcol Vector drawing & Inkscape \\
+3D design & Blender \\
+\rowcol Photo management & Darktable, Digikam \\
+Scanning & Skanlite (KDE), SimpleScan (GNOME, XFCE) \\
+\rowcol OCR Text Recognition & OCRGui using Tesseract / GOCR \\
+\end{tabular}
+
+\vspace{5mm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Multimedia}} \\
+\midline
+Video Player & mpv, VLC, Totem (GNOME) \\
+\rowcol Music Player & Amarok (KDE), Banshee (GNOME, XFCE), GNOME Music, Clementine \\
+CD ripping & Audex (KDE), cdparanoia \\
+\rowcol Audio editing & Audacity \\
+CD/DVD burning & K3b (KDE), Brasero (GNOME, XFCE) \\
+\rowcol DVD ripping & Handbrake \\
+Audio tagging & Picard, EasyTag \\
+\rowcol Video editing & Kdenlive (KDE), Openshot (GNOME) \\
+3D animation & Blender \\
+\rowcol DAW & Ardour \\
+Youtube Downloader & youtube-dl \\
+\rowcol Screen recording & RecordMyDesktop, SimpleScreenRecorder \\
+\end{tabular}
+\end{minipage}
+\begin{minipage}{0.5\linewidth}
+	\begin{tabular}[t]{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Scientifical}} \\
+\midline
+MatLab & Python with Numpy, Octave \\
+\rowcol Statistics & R, PSPP \\
+ArcGIS & GRASS GIS, QGIS \\
+\end{tabular}
+
+\vspace{0.5cm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Internet}} \\
+\midline
+Web Browser & Firefox, Chromium \\
+\rowcol Mail & Thunderbird, KMail (KDE), Evolution (GNOME) \\
+Instant Messenger & Telegram, qtox, Pidgin, Empathy (GMOME) \\
+\rowcol IRC chat & Hexchat, Quassel, weechat, irssi \\
+Torrent client & Ktorrent (KDE), Transmission (GNOME, XFCE), Deluge, rtorrent \\
+\rowcol Voice over IP & qtox, Mumble, Empathy (GNOME) \\
+FTP Client & Filezilla \\
+\rowcol File synchrinization & Syncthing, ownCloud, Seafile \\
+Live Streaming (Twitch.tv, etc...) & livestreamer \\
+\end{tabular}
+
+\vspace{5mm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{System}} \\
+\midline
+Check disk usage & Baobab (GNOME), Filelight (KDE), ncdu \\
+\rowcol Virtualiziation & VirtualBox, GNOME Boxes (GNOME), Virt-manager \\
+Backup tool & Deja Dup, rsync, borgbackup \\
+\rowcol Advanced system monitor & htop \\
+Advanced window compositor & compton (XFCE) \\
+\end{tabular}
+
+\vspace{5mm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Developement}} \\
+\midline
+IDE & Eclipse, IntelliJ, Code::Blocks, Android Studio, Geany, vim, emacs \\
+\end{tabular}
+
+\vspace{5mm}
+
+\begin{tabular}{L{3cm}L{4.4cm}}
+\multicolumn{2}{c}{\textbf{Speed up your workflow}} \\
+\midline
+Program Launchers & WhiskerMenu (XFCE) \\
+\rowcol Clipboard Managers & Glipper (GNOME, XFCE) \\
+Dropdown Terminal & Guake (GNOME, XFCE), Yakuake (KDE) \\
+\end{tabular}
+
+\end{minipage}
+\end{table}
diff --git a/install_event/archive/installguide_complete/suse/config.tex b/install_event/archive/installguide_complete/suse/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b48e4f2cf3ff146f1d37531e687abc10528fa8a4
--- /dev/null
+++ b/install_event/archive/installguide_complete/suse/config.tex
@@ -0,0 +1,110 @@
+% suse config
+
+\input{commons/config}
+
+\subsubsection{Network configuration}
+Makes sure that NetworkManager is handling network connections:
+
+\begin{enumerate}
+	\item Open \textit{YaST} from your start menu.
+	\item Go to \textit{System > Network settings}.
+	\item Under global options, select \textit{NetworkManager} service as Network Setup Method.
+\end{enumerate}
+
+After doing this, you should test whether your WiFi works. If it doesn't, please call a helper.
+
+\paragraph{Broadcom WiFi}
+
+If your WiFi still isn't working, it might be that you have a Broadcom WiFi chip in your laptop, which needs additional drivers.
+
+\warn{These steps only apply when you have a Broadcom chip. You can check whether you have one by running \shellcommand{sudo lspci | grep -i broadcom}. If no text is shown, you don't have a Broadcom chip.}
+
+\begin{enumerate}
+	\item First, you need to add the Packman repository. To do this, refer to the section \textit{Get more codecs} at the end of this chapter.
+	\item After adding the new repository, open \textit{Software Management}.
+	\item In the search box, enter \textit{broadcom-wl} and hit \textit{Enter}.
+	\item The search results appear on the right side. Tick the package named \textit{broadcom-wl}, and click \textit{accept} to install it.
+	\item Reboot your laptop. Wifi should work now. If not, please ask a helper for assistance.
+\end{enumerate}
+
+\subsubsection{Upgrading and important packages}
+You should update your system as soon as possible to get the newest packages after the installation.
+\begin{itemize}
+\item GUI method: start the program \textit{Online Update} (in German: \textit{Online-Aktualisierung})
+\item Console method: \shellcommand{sudo zypper up} (Note: the first time you run sudo, it warns you to act responsibly.)
+\end{itemize}
+
+\note{If you see an error message about a missing repository, go to YaST > Software Repositories, select the offending repository, and delete it. This repository is your installer USB drive, which you don't need anymore.}
+
+\subsubsection{Finding software \& packages}
+If you are looking for a package from the OpenSUSE repositories or the community
+repositories, you use \textit{YaST}'s Software Manager or search for your package on \underline{http://software.opensuse.org}. \\
+Alternatively, use the command line:
+You can also search for packages: \shellcommand{zypper se your-search-term} \\
+Install a package using: \shellcommand{sudo zypper in your-favourite-package} \\
+Uninstall a program using: \shellcommand{sudo zypper rm package-to-uninstall}
+
+\subsubsection{Connecting to ETH WiFi}
+Set the \textit{Authentification} field (usually 2nd from top) to \textit{Tunneled TLS} and \textit{Inner Authentification} to \textit{MSCHAPv2}. Fill in your ETH credentials into \textit{User Name} and \textit{Password} in the bottom (for the eduroam network, type yournethzusername@ethz.ch as username). Leave the other fields as they are. Confirm that you don't want to use a CA certificate.
+
+\subsubsection{Connecting to ETH VPN}
+Under Linux, there's no need for Cisco AnyConnect. Instead, use the \textit{openconnect} package:
+\begin{itemize}
+\item If you are using KDE, install \textit{plasma-nm5-openconnect}: \\ \shellcommand{sudo zypper install plasma-nm5-openconnect}
+\item Others (GNOME, XFCE, ...): install \textit{NetworkManager-openconnect} \\ \shellcommand{sudo zypper install NetworkManager-openconnect}
+\end{itemize}
+
+With this done, you can now connect to the ETH VPN:
+\begin{enumerate}
+	\item Click on the network icon in your system tray.
+	\item Now in your WiFi menu, pick \textit{VPN Connections} (you may have to right click your network icon to see the option).
+	\item \textit{Add a VPN connection...}.
+	\item Enter a name on top (e.g.\ ETH VPN), then in \textit{VPN > Gateway} enter \textit{sslvpn.ethz.ch}, save (leave all options as they are).
+	\item Click on the network icon in your system tray again, and select your newly created network under \textit{VPN connections}.
+\end{enumerate}
+
+\subsubsection{NVIDIA Graphics drivers}
+On some devices you might need extra propretary graphics drivers for your NVIDIA graphics card.
+\begin{enumerate}
+	\item Open \textit{YaST}
+    \item Go to \textit{Software} > \textit{Software Repositories} > \textit{Add} > \textit{Community Repositories} > \textit{NVIDIA Graphics Drivers}.
+	\item Open the console.
+	\item Run the command \shellcommand{sudo zypper inr}.
+	\item After this is done, reboot your computer.
+\end{enumerate}
+If that does not work you might want to try the following after step 2:
+\begin{itemize}
+	\item Go to \textit{Software Management}.
+	\item Select \textit{Extras/Install All Matching Recommended Packages}.
+\end{itemize}
+
+\subsubsection{Get more codecs}
+Your system may not have support for playing mp3's, DVDs etc. yet because those are proprietary packages that some Free Software enthusiasts dislike. To get those abilities, first add a repository named \textit{Packman}, then install the codecs:
+
+\begin{itemize}
+	\item \textbf{Codecs: GUI method}
+
+	Add the Packman repo:
+	\begin{enumerate}
+		\item Open \textit{YaST} from your startmenu.
+		\item Go to \textit{Software > Software Repositories}.
+		\item Click \textit{Add}.
+		\item Select \textit{Community Repositories}.\\
+            \note{If this option is missing, connect your device to the Internet and try again.}
+		\item Select the \textit{Packman Repository} and the \textit{Libdvdcss Repository}.
+		\item Click \textit{Ok}. When a dialog pops up asking you whether you trust these repositories, click \textit{Trust}.
+	\end{enumerate}
+	Then install the codecs: \\
+	Open \textit{YaST}, go to \textit{Software > Software Management} and search for the following packages: \\
+	\textit{k3b-codecs, ffmpeg, phonon-backend-vlc, phonon4qt5-backend-vlc}
+	
+	\item \textbf{Codecs: Console method}\\
+	If you prefer using the command line, you can add the repository as follows: \\
+	\shellcommandr{sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE\_Leap\_42.1/ packman} \\
+	\shellcommandr{sudo zypper addrepo -f http://opensuse-guide.org/repo/openSUSE\_Leap\_42.1/ dvd} \\
+	Then install the codecs: \\
+	\shellcommand{sudo zypper install k3b-codecs ffmpeg phonon-backend-vlc phonon4qt5-backend-vlc}
+\end{itemize}
+
+\medskip
+At this point, any problem you detected in the Testing Section should be solved. If not, don't hesitate to ask a helper.
diff --git a/install_event/archive/installguide_complete/suse/overview.tex b/install_event/archive/installguide_complete/suse/overview.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1a92706e2ed098bacbdbd54a4abf15da1cf020f2
--- /dev/null
+++ b/install_event/archive/installguide_complete/suse/overview.tex
@@ -0,0 +1,60 @@
+\subsubsection{Starting the installer}
+A successful boot from an OpenSUSE Leap install medium will result in a green or black menu with an OpenSUSE logo presenting the options \textit{Boot from Hard Disk}, \textit{Installation} etc.
+If this does not occur, then either your bootstick is broken, or you are using a Lenovo device which does not support the OpenSuse installer in UEFI mode. Among those devices are the T470 Thinkpads and the Yoga 370. 
+In the former case, request a different USB stick from the Material Desk. In the latter case, we unfortunately do not have a good solution available, and you are advised to install a different Distro. 
+
+Select \textit{Installation} with the arrow keys and press \textit{Enter}.
+Starting the installer may take a few minutes. During the process, your screen shows white text on black background and sometimes green bars.
+
+If you see a blue menu asking whether you want to accept a new license, select \emph{Yes} using your arrow keys and hit \emph{Enter}.
+
+\subsubsection{Language and License}
+Here you pick your new system's language and keyboard layout.\\
+\note{\textit{German} and \textit{German (Switzerland)} are not the same.}
+
+\subsubsection{Network and options}
+\info{We will do the installation without networking to speed up the process. No worries, we will update your system later on.}
+
+Should any section come up with \textit{Networking} please click Next.
+
+In \textit{Installation Options} \textbf{un}check both boxes.
+
+\subsubsection{Partitioning}
+Now we partiton your system and assign Linux some sections of the hard drive. Please refer to
+\emph{\subsecref{sec:part}{subsec:part-suse}} for this part.
+
+\subsubsection{Time}
+Here we set the computer's time zone. Select it by either clicking with your mouse cursor or by selecting your nearest city from the drop-down menus.\\
+\note{If you install OpenSUSE alongside Windows, \textbf{un}tick the option \textit{Hardware Clock Set to UTC}.}
+
+\subsubsection{Desktop Environment}
+Here you select the Desktop Environment of your choice.\\
+\note{XFCE can be found in the submenu \textit{Other}.}
+
+\subsubsection{User Information}
+Fill in your login details. Give yourself a full name, user name and password.\\
+\note{\textit{Automatic Login} is enabled by default. This means you will be automatically logged in when you turn on your PC. This is convenient, but less secure than entering your password first. If you don't want automatic login, untick this.}
+
+\subsubsection{Summary screen}
+This is the last screen before the actual install\,---\,nothing has been committed thus far\,---\ and shows a summary of what will be done. Typically you don't need to change anything here and can just hit \textit{Install}.
+
+\warn{Confirming this last dialog will start the actual install.}
+
+\troubleshoot{
+	\textbf{Mac users please read:}
+
+	If you use a Mac, you previously installed rEFInd as a bootloader. This means you don't need the OpenSUSE default bootloader, GRUB. In fact, installing GRUB on top of rEFInd will cause problems, so you will want to disable GRUB. Please do the following:
+
+	\begin{enumerate}
+		\item Click on the green text in the summary that says \textit{Booting}.
+		\item A menu appears that lets you select your bootloader. In the drop down menu on the left side under \textit{Boot Loader}, select \textit{Do not install any bootloader}.
+		\item Confirm by clicking \textit{OK}.\\
+			\note{After confirming, the summary screen will display a red warning saying that OpenSUSE may not boot without installing a bootloader. You can safely ignore this, because you already have a bootloader (rEFInd).}
+	\end{enumerate}
+
+	\warn{Do NOT perform these steps if you have a Windows system!}
+}
+
+The install process will take a while now. Relax, take a break and get some food.
+
+Once it has completed, the computer will reboot automatically. You may now remove the installation media (i.e.\ the stick we gave you). When the boot manager (i.e.\ GRUB) shows up, press the space bar to pause the countdown. You may now proceed to \emph{\secref{sec:testing}} in this guide.
diff --git a/install_event/archive/installguide_complete/suse/partitioning.tex b/install_event/archive/installguide_complete/suse/partitioning.tex
new file mode 100644
index 0000000000000000000000000000000000000000..6b06f687b75895c6c05e268ed8eab227ac5c67da
--- /dev/null
+++ b/install_event/archive/installguide_complete/suse/partitioning.tex
@@ -0,0 +1,72 @@
+\input{commons/partitioning}
+
+The OpenSUSE partitioning menu is very advanced and gives you a lot of information. The most important is the summary you see at the top. It tells you all the modifications it will do to your hard drive and highlights the potentially dangerous ones in red.
+
+The first thing to do here is to change the file system type to \emph{ext4}. OpenSUSE uses \emph{btrfs} and \emph{xfs} as defaults. The former being a newer file system with many advanced features but not fully reliable and the latter an old but robust alternative to \emph{ext4}.
+
+\begin{enumerate}
+	\item Click on \textit{Edit proposal Settings}
+	\item For the \textit{File System for Root Partition}, pick \emph{ext4}.
+	\item If you don't want a separate home partition, untick \textit{Propose Separate Home Partition}. See \emph{\secref{sec:partplan}} for more details on this.
+	\item If you want a separate home partition, select \emph{ext4} for the \textit{File System for Home Partition}, then click ok
+\end{enumerate}
+
+The summary on the top should now be noticeably shorter. Carefully read the entries. Pay attention that no existing partitions are deleted or formatted, as this will destroy data. Shrinking an existing partition is fine.
+
+Compare the summary with your partition plan and make sure all the required partitions are created. If so, you can continue. If not, you can manually partition your disk using \textit{Create Partition Setup}.
+
+\troubleshoot{
+	\textbf{Mac users please read:}
+
+	If you have a Mac, you will need to perform some additional setup here to make OpenSUSE work with the rEFInd bootloader you previously installed:
+
+	\begin{enumerate}
+		\item Click on \textit{Expert Partitioner}.
+		\item On the left hand side, click on your main drive (usually sda).
+		\item You now see a list of partitions. Select the one labelled as \textit{EFI System Partition} or similar.
+		\item Click on \textit{Edit...}
+		\item You should see a dropdown menu that is currently set to \textit{/boot/efi}. Click inside the menu so that you can change the text. You need to change the text using your keyboard because the option you need is not in the dropdown menu.
+		\item Change the text to \textit{/boot}
+		\item Now, click \textit{Finish}.
+		\item In the partitioner, click \textit{Accept}.\\
+			\note{The installer will display a warning at this point, saying that openSUSE won't be able to boot with this setup. You can safely ignore this warning because you have rEFInd installed, which can still boot openSUSE. When the warning appears, just click \textit{yes}.}\\
+			\note{After the first warning, yet another warning appears, saying that you install on an existing partition without formatting it. This is also fine. OpenSUSE will put its boot files next to the boot files used by Mac OS X, which is okay. Click \textit{Yes}.}
+	\end{enumerate}
+
+	If you feel uncomfortable during this step, feel free to ask a helper.
+
+	\warn{Do NOT perform these steps when you have a Windows PC!}
+}
+
+You can now go back to \emph{\subsecref{sec:inst}{subsec:inst-suse}} and follow the remaining instructions if everything looks fine.\\
+\note{If something looks wrong, please read the text box below.}
+
+\troubleshoot{\input{commons/partitions-delete}}
+
+\subsubsection{Manually partitioning your disk}
+
+Ideally, the automatic partitioning suits your needs and you don't need to do this. But if the automatic tool fails, you can try creating your partitions by hand. To do this, click on \textit{Create Partition Setup\dots}.
+
+\begin{enumerate}
+	\item Choose \textit{Custom Partitioning (for experts)} and click \textit{Next}.
+	\item Click on \textit{Hard Disks} on the left. Expand that section by clicking on the small arrow next to it. Then, pick your main drive, usually \textit{sda}.
+	\item You should see a list of all your current partitions. If you haven't already done that from within Windows or Mac OS X, you should now shrink your existing operating system partition (that should be the largest in size).
+		\begin{enumerate}
+			\item Select the partition in the list and click \textit{Resize...} at the bottom.
+			\item Choose \textit{Custom Size} and enter a new size in the text field. A good measure is to use halve it.
+			\item Click \textit{OK}.
+		\end{enumerate}
+	\item Now create all the partitions you need.\\
+		\note{If you have MBR, you first create an \textit{Extended Partition} and make it as large as possible. This partition serves as a container for more, smaller partitions.}
+		\begin{enumerate}
+			\item Click \textit{Add...}
+			\item Select your partition size according to \emph{\secref{sec:partplan}}. Click \textit{Next}.
+			\item Select your partition's usage. \textit{Operating System} is for the root partition, \textit{Data and ISV applications} is for your home partition and \textit{Swap} is for your swap partition. Click \textit{Next}.
+			\item Under \textit{Format Partition}, select the file system you need according to \emph{\secref{sec:partplan}}. Under \textit{Mount point}, choose the mount point you need. Click \textit{finish}.
+		\end{enumerate}
+	\item You can also edit the mount point and formatting options of existing partitions by selecting them and clicking on \textit{Edit\dots}.\\
+		\note{This is sometimes required in order to designate an EFI boot partition.}
+\end{enumerate}
+
+You can now go back to \emph{\subsecref{sec:inst}{subsec:inst-suse}} and follow the remaining instructions if everything looks fine. If not, please ask for help.
+
diff --git a/install_event/archive/installguide_complete/system.tex b/install_event/archive/installguide_complete/system.tex
new file mode 100644
index 0000000000000000000000000000000000000000..072853ca2a739d2e8eeafa31664f342acc136078
--- /dev/null
+++ b/install_event/archive/installguide_complete/system.tex
@@ -0,0 +1,162 @@
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Beginning of questionnaire command definitions %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% \Qq = Questionaire question.
+%% \Qq = Questionaire question. Oh, this is just too simple. It helps
+%% making it easy to globally change the appearance of questions.
+\newcommand{\Qq}[1]{\textbf{#1}}
+
+%% \QO = Circle or box to be ticked. Used both by direct call and by
+%% \Qrating and \Qlist.
+\newcommand{\QO}{$\Box$}% or: $\ocircle$
+
+%% \Qrating = Automatically create a rating scale with NUM steps, like
+%% this: 0--0--0--0--0.
+\newcounter{qr}
+\newcommand{\Qrating}[1]{\QO\forloop{qr}{1}{\value{qr} < #1}{---\QO}}
+
+%% \Qline = Again, this is very simple. It helps setting the line
+%% thickness globally. Used both by direct call and by \Qlines.
+\newcommand{\Qline}[1]{\noindent\rule{#1}{0.6pt}}
+
+%% \Qlines = Insert NUM lines with width=\linewith. You can change the
+%% \vskip value to adjust the spacing.
+\newcounter{ql}
+\newcommand{\Qlines}[1]{\forloop{ql}{0}{\value{ql}<#1}{\vskip0.2em\Qline{\linewidth}}}
+
+%% \Qlist = This is an environment very similar to itemize but with
+%% \QO in front of each list item. Useful for classical multiple
+%% choice. Change leftmargin and topsep accourding to your taste.
+\newenvironment{Qlist}{%
+\renewcommand{\labelitemi}{\QO}
+\begin{itemize}[leftmargin=1.5em,topsep=-.5em]
+}{%
+\end{itemize}
+}
+
+%% \Qtab = A "tabulator simulation". The first argument is the
+%% distance from the left margin. The second argument is content which
+%% is indented within the current row.
+\newlength{\qt}
+\newcommand{\Qtab}[2]{
+\setlength{\qt}{\linewidth}
+\addtolength{\qt}{-#1}
+\hfill\parbox[t]{\qt}{\raggedright #2}
+}
+
+%% \Qitem = Item with automatic numbering. The first optional argument
+%% can be used to create sub-items like 2a, 2b, 2c, ... The item
+%% number is increased if the first argument is omitted or equals 'a'.
+%% You will have to adjust this if you prefer a different numbering
+%% scheme. Adjust topsep and leftmargin as needed.
+\newcounter{itemnummer}
+\newcommand{\Qitem}[2][]{% #1 optional, #2 notwendig
+\ifthenelse{\equal{#1}{}}{\stepcounter{itemnummer}}{}
+\ifthenelse{\equal{#1}{a}}{\stepcounter{itemnummer}}{}
+\begin{enumerate}[topsep=2pt,leftmargin=2.8em]
+\item[\textbf{\arabic{itemnummer}#1.}] #2
+\end{enumerate}
+\ifthenelse{\equal{#1}{}}{}{}
+}
+
+%% \QItem = Like \Qitem but with alternating background color. This
+%% might be error prone as I hard-coded some lengths (-5.25pt and
+%% -3pt)! I do not yet understand why I need them.
+\definecolor{bgodd}{rgb}{0.8,0.8,0.8}
+\definecolor{bgeven}{rgb}{0.9,0.9,0.9}
+\newcounter{itemoddeven}
+\newlength{\gb}
+\newcommand{\QItem}[2][]{% #1 optional, #2 notwendig
+\setlength{\gb}{\linewidth}
+\addtolength{\gb}{-5.25pt}
+\ifthenelse{\equal{\value{itemoddeven}}{0}}{%
+\noindent\colorbox{bgeven}{\hskip-3pt\begin{minipage}{\gb}\Qitem[#1]{#2}\end{minipage}}%
+\stepcounter{itemoddeven}%
+}{%
+\noindent\colorbox{bgodd}{\hskip-3pt\begin{minipage}{\gb}\Qitem[#1]{#2}\end{minipage}}%
+\setcounter{itemoddeven}{0}%
+}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% End of questionnaire command definitions %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\begin{center}
+\textbf{\Large Questionnaire to find out your needs}
+\end{center}\vskip1em
+
+\noindent This questionnaire acts as a summary of your equipment and preferences. Fill it in and we will hand you an install guide with instructions that specifically fit your setup. Also, this page will act as a situation overview for you and our staff, so make sure your answers are correct. If you are unsure, don't hesitate to ask a helper for advice.
+\\
+
+Your name: \Qline{15cm}
+\\
+
+% Current OS
+\Qitem{ \Qq{What Operating System are you currently using on your computer?}
+\begin{Qlist}
+\item \mac \hskip0.4cm \QO{} \winseven or earlier \hskip0.4cm \QO{} \wineight/\winten
+\item Something else: \Qline{5cm}
+\end{Qlist}
+}
+
+% Distro
+\Qitem{ \Qq{Which Linux distro do you want to install? We have provided you a summary of some popular ones on the next few pages.}
+\begin{Qlist}
+\item OpenSUSE \hskip0.4cm \QO{} Ubuntu 16.04 \hskip0.4cm \QO{} Ubuntu 17.10 \hskip0.4cm \QO{} Fedora
+\item Something else: \Qline{5cm}
+\end{Qlist}
+}
+
+%DE
+\Qitem{ \Qq{What \deskenvs would you like to install? Try out our demo laptops and have a look at the next few pages if you're not sure. }
+\begin{Qlist}
+\item GNOME \hskip0.4cm \QO{} KDE \hskip0.4cm \QO{} Unity \hskip0.4cm \QO{} XFCE
+\item Something else: \Qline{5cm}
+\end{Qlist}
+}
+
+
+% Dual boot
+\Qitem{ \Qq{Do you want to dualboot, \ie keep your current system and install Linux alongside, or completely erase your old operating system, including the data on it?}\\ \emph{It is unfortunately not possible to erase the current operating system and keep your files. If you want to do this, you need a backup of your files on an external hard drive.}
+\begin{Qlist}
+\item Dualboot \hskip0.4cm \QO{} Erase current operating system
+\end{Qlist}
+}
+
+% EFI
+\Qitem{ \Qq{Do you have EFI Boot or Legacy Boot?}\\ \emph{
+Windows: Hit \emph{Windows + R} and type \emph{diskmgmt.msc}. Hit enter. In the new window, look for a partition that's labelled as EFI System Partition. If there is one, you have EFI, otherwise you have Legacy.\\
+Mac OS X: You have EFI.}
+\begin{Qlist}
+\item EFI Boot \hskip0.4cm \QO{} Legacy Boot
+\end{Qlist}
+}
+
+% MBR vs GPD
+\Qitem{ \Qq{Do you have an MBR partitioned disk or a GPT partitioned disk?}\\ \emph{If you have Legacy boot (see above), you also have MBR partitioning.\\
+Mac OS X: You have GPT.\\
+Windows: Hit \emph{Windows + R} and type \emph{diskmgmt.msc}. Hit enter. In the new window, look for your main drive (the one that contains the C: partition) and right click it (the drive, not the partition). Select \emph{Properties}. Click on the \emph{Volumes} tab and find the entry \emph{Partition style}. It should say one of \emph{Master Boot Record (MBR)} or \emph{GUID Partition Table (GPT)}.} \begin{Qlist}
+\item GPT \hskip0.4cm \QO{} MBR
+\end{Qlist}
+}
+
+
+\vskip 0.7cm
+
+\textbf{Ready to go!}\\
+Please bring the filled in questionnaire \textbf{as well as your Legi or identity card} to the Supply Desk and we will hand you your personalized install guide along with all the material necessary for the installation.
+
+
+%\subsubsection{Comments by helpers}
+You can leave these lines blank. They are for helpers to note down any special features of your system for reference.
+\\
+
+\Qline{17cm}
+\\
+
+\Qline{17cm}
+
diff --git a/install_event/archive/installguide_complete/testing.tex b/install_event/archive/installguide_complete/testing.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b46d77fbc9e5321a38e0c0a42499a5dd4601308b
--- /dev/null
+++ b/install_event/archive/installguide_complete/testing.tex
@@ -0,0 +1,28 @@
+Congratulations, you just finished the basic installation! It's now time to find out whether everything went smoothly. There are some things you should try right now to recognize any problems as early as possible.
+
+\subsubsection{Test your old operating system}
+Please start up your old operating system to test whether it still boots properly. Make sure your files are still present and intact (if you have multiple partitions, this allows you to detect whether you accidentally deleted one). Don't be worried if your old operating system boots a little slower\,---\,this is fairly normal. If your old system does not boot anymore or if partitions, i.e.\ some files are missing, please ask one of the helpers. However, there is not much we will be able to do if you accidentally deleted one of your partitions. We might be able to restore part of your files, though.
+
+\subsubsection{Testing your new Linux System}
+After you've verified that your old operating system still works, reboot your laptop and select your newly installed Linux. You will want to test a few things here as well.
+
+\important{WiFi and graphics might not be working at this stage.}\\
+The following tests allow you to see if there are any problems. In \emph{\secref{sec:distconf}}, you will run a few steps that might solve some of them.
+
+Please check the following items:
+\begin{itemize}
+	\item WiFi: Does your laptop see the surrounding wireless networks?\\
+		\note{If you installed OpenSUSE you can skip this for the moment. You will need to enable a network setting anyway. Refer to \secref{sec:distconf} for instructions.}
+	\item Touchpad: Is it working? Can you scroll (maybe with 2 fingers)?
+	\item Touchscreen: If you have one, it should work out of the box. Also, the click should happen right below your cursor, otherwise it will need to be calibrated.
+	\item Graphics: Your screen shouldn't be flickering. The resolution should be suitable for your eyesight. Are you able to change the screen brightness? The more detailed settings will follow later. For now it's just important that the screen works and is not flickering or driving you crazy in any other way.
+	\item Sound: Play a YouTube-Video to hear if your speakers work. Press the volume buttons to check whether volume is adjusted correctly.
+	\item Bluetooth: Check if your Bluetooth adapter is detected by the system.
+	\item Other: Do you see anything else that isn't working as you think it should?
+	
+\end{itemize}
+
+\note{If you run into problems other than WiFi or Graphics\,---\,which will be fixed in in \emph{\secref{sec:distconf}}\,---\,while testing these things, please call a helper. They will help you fix these problems before you continue.}
+
+\subsubsection{Return your hardware}
+At this point, you probably won't need your USB installer anymore. You can return it at the supply desk and get your Legi back. Please also return any other hardware you borrowed from us.
diff --git a/install_event/archive/installguide_complete/unity/config.tex b/install_event/archive/installguide_complete/unity/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a5c68b0be9bafb43934e49f4568a77e2c031b9a5
--- /dev/null
+++ b/install_event/archive/installguide_complete/unity/config.tex
@@ -0,0 +1,18 @@
+\subsubsection{HiDPI}
+If everything looks smaller than usual or you want to enlarge the content do the following: \textit{Search your computer} > Enter: \textit{System Settings} > Select \textit{Displays} > Adjust `Slider for menu and title bars'.
+
+\subsubsection{Overview}
+Most of the interaction with Unity takes place on the left and top edge. To the left, you find a sort of task bar with launchers. To remove a launcher (such as the annoying Amazon launcher), right click it. To move a launcher, drag it a bit to the right, then you can re-arrange it. \\
+To open a new window of an application that is already running, right click the launcher and pick \textit{New Window} or similar. Alternatively, just middle-click the launcher:
+\begin{itemize}
+	\item If you have a mouse, press down the scroll wheel
+	\item Some Lenovo touchpads have a middle button
+	\item HP touchpads: Press both of the lower mouse buttons at the same time
+\end{itemize}
+The top launcher with the styled Ubuntu logo opens a sort of start menu, the so-called \textit{Dash}. Type to search for installed applications, documents etc. \\
+Unity moves menu points (\textit{File, Edit, View, ...}) to the top bar in order to save space. Move your mouse up to see them. Also, when maximizing a window, the close / restore / minimize buttons are placed in the very top left corner, visible only when you point your mouse to the top edge.
+
+\subsubsection{Keyboard Shortcuts}
+You can use most of the keyboard shortcuts you are used to from Windows. Pressing and releasing the \textit{Super} Key (\textit{Windows key or Command key}) on your keyboard will open the \textit{Dash}. \textit{Alt+Tab} switches between windows (special in Unity / GNOME: \textit{Alt+§} switches between windows of the same program). \textit{Alt+F4} closes a window. For more keyboard shortcuts, press and hold the \textit{Super} Key.
+
+\input{commons/tweaktool}
diff --git a/install_event/archive/installguide_complete/win7/boot.tex b/install_event/archive/installguide_complete/win7/boot.tex
new file mode 100644
index 0000000000000000000000000000000000000000..02878d665538b40f91e033ad80fda2102bf9cfc3
--- /dev/null
+++ b/install_event/archive/installguide_complete/win7/boot.tex
@@ -0,0 +1,11 @@
+We will now boot from your USB Install Medium. Turn off your machine and plug the install USB key into your laptop.
+Now, you will need to turn your machine on again and find the magic button for choosing a temporary startup device on your model. Try pressing these buttons during startup (i.e.\ when you see your laptop's logo on the screen):
+\begin{itemize}
+\item HP laptops: Typically \textit{Esc}, this will then give you a menu where you can pick a temporary startup device by pressing \textit{F9}
+\item Lenovo: Typically \textit{Enter}, this will then give you a menu where you can pick a temporary starup device using \textit{F12} or the arrow keys
+\item Dell: Typically \textit{F12}
+\item others: Try holding \textit{Esc}, \textit{Enter}, \textit{Del} and as many F-keys at once as you can. Every time Windows comes up, reboot and try again.
+\end{itemize}
+Again, our helpers are experienced with this, they can help you. Once in the correct menu, pick the USB key and press \textit{Enter}.
+
+\input{commons/boot}
diff --git a/install_event/archive/installguide_complete/win7/preparation.tex b/install_event/archive/installguide_complete/win7/preparation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fa0e94143b776462f3b50d9d36727815b640760c
--- /dev/null
+++ b/install_event/archive/installguide_complete/win7/preparation.tex
@@ -0,0 +1,27 @@
+\input{commons/preparation}
+\input{commons/preparation-win-pre}
+
+\subsubsection{Disable Bitlocker}
+Bitlocker is a disk encryption tool from Microsoft that comes preinstalled with
+some (not all) computers. It is unfortunately not compatible
+with some Linux bootloaders. It must be disabled:
+\begin{enumerate}
+    \item Press Win+e
+    \item Right click on the Windows drive (C:/)
+    \item Select "Manage Bitlocker"
+    \item A new window should open. Under the section that lists your C:/ drive, click on "Turn off BitLocker".
+\end{enumerate}
+
+\note{You may not have Bitlocker on your PC or it may already be turned off. In this case, you don't have to do anything.}
+
+\subsubsection{BIOS configuration}
+We will now check a few settings in your hardware. For this, you need to get to your BIOS setup. Shutdown your computer. Then, turn it back on, holding the magic button - which one it is depends on your model:
+\begin{itemize}
+	\item HP laptops: Typically \textit{Esc}, this will then give you a menu where you can pick the BIOS setup pressing \textit{F10}
+	\item Lenovo: Typically \textit{Enter}, this will then give you a menu where you can pick the BIOS with \textit{F1} or \textit{the arrow keys}
+	\item Dell: Typically \textit{F2}
+	\item others: Try holding \textit{Esc}, \textit{Enter}, \textit{Del} and as many \textit{F-keys} at once as you can. Every time Windows comes up, reboot and try again. Alternatively you can google the right key to get into the BIOS on your machine.
+\end{itemize}
+It can be tricky and frustrating to get into the BIOS. Don't hesitate to ask for help.
+
+\input{commons/preparation-win-post}
diff --git a/install_event/archive/installguide_complete/win8-10/boot.tex b/install_event/archive/installguide_complete/win8-10/boot.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5b21d15079f27165ac025d8b7cb7431e7ba75407
--- /dev/null
+++ b/install_event/archive/installguide_complete/win8-10/boot.tex
@@ -0,0 +1,10 @@
+We will now boot from your USB Install Medium.
+
+\begin{enumerate}
+	\item Plug the USB Install Medium into your laptop.
+	\item In the Windows shutdown menu, select Restart \textbf{while} holding \textit{Shift} on your keyboard. A blue screen should appear.
+	\item Pick \textit{Use a device} and select your USB key.\\
+		\note{On Lenovo the USB key is usually called \emph{USB HDD}.}
+\end{enumerate}
+
+\input{commons/boot}
diff --git a/install_event/archive/installguide_complete/win8-10/preparation.tex b/install_event/archive/installguide_complete/win8-10/preparation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7b8ba917a838e3be1d6e8dc9bfb922426d06a00b
--- /dev/null
+++ b/install_event/archive/installguide_complete/win8-10/preparation.tex
@@ -0,0 +1,36 @@
+\input{commons/preparation}
+\input{commons/preparation-win-pre}
+
+\subsubsection{Disable Bitlocker}
+Bitlocker is a disk encryption tool from Microsoft that comes preinstalled with
+some (not all) computers. It is unfortunately not compatible
+with some Linux bootloaders. It must be disabled:
+\begin{enumerate}
+    \item Press Win+e
+    \item Right click on the Windows drive (C:/)
+    \item Select "Manage Bitlocker"
+    \item A new window should open. Under the section that lists your C:/ drive, click on "Turn off BitLocker".
+\end{enumerate}
+
+\note{You may not have Bitlocker on your PC or it may already be turned off. In this case, you don't have to do anything.}
+
+\subsubsection{Disable Fast Boot}
+\textbf{Important:} Windows 8 and 10 has a feature called Fast Boot that replaces the shutdown by a sort of extended sleep mode. This speeds up Windows' boot process but leaves the file system in an inconsistent state, preventing Linux from modifying it. Fast boot must be disabled in order to setup your dual boot system:
+
+\begin{enumerate}
+    \item In your Windows Control Panel, go to the Power Options and pick \textit{Choose what the power buttons do}.
+    \item If you can't find Power Options in your control panel, you can search for ``power'' (German: ``Energie'') from your start menu.
+	\item If you see \textit{Change settings that are currently unavailable}, click it.
+	\item Now, on the bottom, disable the checkbox saying \textit{Turn on fast startup (recommended)} and save.
+\end{enumerate}
+
+\subsubsection{BIOS configuration}
+\begin{enumerate}
+\item In the Windows shutdown menu, select Restart \textbf{while} holding \textit{Shift} on your keyboard. A blue screen should appear.
+\item Under Troubleshoot, Advanced Options, select \textit{UEFI Firmware Settings}. You should now arrive in the BIOS setup.
+\end{enumerate}
+
+\note{If this doesn't work, please ask a helper.}
+
+\input{commons/preparation-win-post}
+
diff --git a/install_event/archive/installguide_complete/xfce/config.tex b/install_event/archive/installguide_complete/xfce/config.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7019ced76a2902d7264ac6e9cc868ecc45962c76
--- /dev/null
+++ b/install_event/archive/installguide_complete/xfce/config.tex
@@ -0,0 +1,49 @@
+% vim: ft=tex
+% xfce config
+
+\subsubsection{Overview}
+Default XFCE looks similar to Windows XP. Use the panel (at the top or bottom of your screen) to switch applications. There is a classic start menu (you will learn below how to replace it with something more modern), some tray icons and a clock. In contrast to Windows though, XFCE is highly configurable. You can create as many panels as you want and let them float, autohide, be transparent and more.
+Right click a panel, then pick \textit{Panel > Panel Preferences} to customize your panels.
+New tray applications can easily be installed using the package manager (for example, GNOME indicators and panel applets also work in XFCE). \\
+To avoid having too many windows open, XFCE comes with so-called Workspaces (by default 2). In the right of the panel, you find two rectangles (1 being colored). When you open a window, it shows up as a smaller rectangle in the left one. Drag the small rectangle to the larger rectangle to the right to move the window to the other workspace. Click or scroll on the workspaces to switch between them. Right click to configure workspaces.
+
+\note{If you use Xubuntu, workspaces aren't visible by default. If you want to see them, you have to enable them first. Ask a helper if you don't know how to do this.}
+
+\subsubsection{Keyboard Shortcuts}
+Keyboard shortcuts in XFCE are similar to Windows: Use \textit{Alt+Tab} to switch between windows. \textit{Alt+F4} closes a window. \\
+To quickly switch workspaces, you can use \textit{Ctrl+Alt+(Arrow Keys)}.
+
+\subsubsection{Replace the classic start menu}
+XFCE's default launcher has no search function and is, in our opinion, outdated. Instead, we suggest you to install and use the so-called \textit{Whiskermenu}. The package is called \textit{xfce4-panel-plugin-whiskermenu} in OpenSUSE or \textit{xfce4-whiskermenu-plugin} in Ubuntu.
+
+\note{If you use Xubuntu, the Whiskermenu is already installed and you can skip this.}
+
+\begin{enumerate}
+	\item First, install the package through your package manager.
+	\item Now right click the panel, then go \textit{Panel > Add new items} and search for \textit{Whisker}.
+	\item Drag the menu to where you would like to have it.
+\end{enumerate}
+
+You now have a much more powerful but still very fast start menu. Right click Whiskermenu to customize it. \\
+
+Note that there seems to be no keyboard shortcut to launch Whiskermenu. The reason is that it's launched by running an external command: \shellcommand{xfce4-popup-whiskermenu}
+
+Go to \textit{XFCE Preferences > Keyboard > Application Shortcuts} to assign a key combination to the command.
+
+\subsubsection{XFCE Goodies: Install many little helpers}
+XFCE is supposed to be slim and therefore has a limited set of plug-ins that go with it. However, there are many other so-called Goodies that you can add to make it more feature-rich. All are small but sometimes useful programs.
+
+Under Ubuntu, you can install a package called \textit{xfce4-goodies} that contains all the Goodies.
+
+For more info check out \underline{http://goodies.xfce.org/}
+
+\subsubsection{Theming}
+If you dislike the rather bland default look,
+consider using a theme. There are plenty available on the internet, but one of
+the nicest is the Arc theme. On \underline{https://github.com/horst3180/arc-theme} (under
+Installation) you will find instructions on how to install it. \\
+There are also icon themes, that will exchange the icons to get a nice uniform
+look across the entire system. Nice examples are: Numix:
+\underline{https://github.com/numixproject/numix-icon-theme} or Moka:
+\underline{https://github.com/moka-project/moka-icon-theme}. \\
+
diff --git a/install_event/build.sh b/install_event/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..17be5a47677eed4536a6280a1a8d20e7162a4d44
--- /dev/null
+++ b/install_event/build.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+# for people that are scared of make
+make
diff --git a/install_event/full-guide.tex b/install_event/full-guide.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3ffdd23ca11b33823d726aa2dcd7c37f32c9c888
--- /dev/null
+++ b/install_event/full-guide.tex
@@ -0,0 +1,107 @@
+
+\documentclass[11pt]{scrartcl}      % Base class: KOMA script article
+\usepackage[utf8]{inputenc}     % Support for german 'umlaut' (ä, ö, ü)
+\usepackage{lastpage}           % \pageref{LastPage}
+\usepackage{scrlayer-scrpage}   % KOMA Script header/footer package
+\usepackage{graphicx}           % \includegraphics{...}
+\usepackage[showseconds=false,showzone=false]{datetime2}
+\usepackage[table]{xcolor}
+\usepackage[most]{tcolorbox}
+\usepackage{hyperref}
+\usepackage{longtable}
+\usepackage{booktabs}
+\usepackage{textcomp}
+\usepackage{menukeys}
+\usepackage{tabularx}
+\usepackage{float}
+\usepackage{caption}
+
+% helvetica font
+% \RequirePackage[scaled]{helvet}
+% \RequirePackage[T1]{fontenc}
+% \renewcommand\familydefault{\sfdefault}
+
+% header / footer
+\KOMAoptions{headsepline,headheight=27.5pt}
+\setkomafont{pagehead}{\normalfont\normalcolor} % non-italic header font
+\setkomafont{pagefoot}{\normalfont\normalcolor} % non-italic footer font
+\newcommand{\builddate}{\footnotesize Revision: \input{GIT_TAG} \\ Build: \DTMNow}
+\newcommand{\thealtlogo}{\includegraphics[width=4.5cm]{images/logo.png}}
+\lohead[\thealtlogo]{\thealtlogo}
+\rohead[\builddate]{\builddate}
+\cofoot[\footnotesize \thepage~/~\pageref{LastPage}]{\thepage~/~\pageref{LastPage}}
+\recalctypearea%
+
+\setlength{\voffset}{-1.2cm} % space before header
+\setlength{\textheight}{1.15\textheight} % height of text
+
+\definecolor{ldorange}{HTML}{F18A20}
+\definecolor{ldblue}{HTML}{254471}
+\definecolor{grey1}{HTML}{aaaaaa}
+\definecolor{grey2}{HTML}{efefef}
+\definecolor{lightblue}{HTML}{d9edfc}
+\definecolor{exclamred}{HTML}{db1515}
+
+\colorlet{lightyellow}{yellow!6!white}
+\colorlet{darkeryellow}{red!15!yellow!40!white}
+
+\newtcolorbox[auto counter, number within=section]{exercisebox}[2][]{%
+    colback=lightyellow,
+    fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+    colframe=ldorange,
+    coltitle=black,
+    enhanced,
+    fonttitle=\bfseries,
+    title=Task~\thetcbcounter: #2,#1}
+
+\newtcolorbox{cmdbox}{%
+    colback=grey2,
+    fuzzy shadow={1mm}{-1mm}{0mm}{0.1mm}{black!50!white},
+    enhanced,
+    colframe=grey1,
+    coltitle=black,
+    enhanced}
+
+\newtcolorbox{tcbhintbox}{%
+    enhanced,
+    skin=bicolor,
+    segmentation at break=true,
+    boxrule=0.8pt,
+    left=3.5mm,
+    top=0.5mm,
+    bottom=0.5mm,
+    arc=1pt,
+    boxsep=2pt,
+    lefthand ratio=0.06,
+    sidebyside,
+    colframe=ldorange,
+    coltext=black,
+    colback=darkeryellow,
+    colbacklower=lightyellow,
+}
+
+\newcommand{\hintbox}[1]{%
+\begin{tcbhintbox}
+    \includegraphics[width=8mm]{img/light_bulb.pdf}%
+    \tcblower%
+    #1
+\end{tcbhintbox}}
+
+\def\tightlist{}
+
+
+\title{Linux Install Guide}
+\date{}
+\author{}
+
+\begin{document}
+\rowcolors{2}{gray!25}{white}
+\maketitle
+\tableofcontents
+
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{12pt}
+
+\input{./installguide.tex}
+
+\end{document}
diff --git a/install_event/images/logo.png b/install_event/images/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..67fe0c54766b39016a060b5fa55cf41de5edd551
Binary files /dev/null and b/install_event/images/logo.png differ
diff --git a/install_event/images/partitions.png b/install_event/images/partitions.png
new file mode 100644
index 0000000000000000000000000000000000000000..33461394016f25587c73cc1d171c99620e31d70f
Binary files /dev/null and b/install_event/images/partitions.png differ
diff --git a/install_event/images/partitions2.jpg b/install_event/images/partitions2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..76ecc9fa7429521aa3da9beacade919000aea5d9
Binary files /dev/null and b/install_event/images/partitions2.jpg differ
diff --git a/install_event/metadata.yaml b/install_event/metadata.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6a0cb53b0d6800ef896437ccff3b1c752130877f
--- /dev/null
+++ b/install_event/metadata.yaml
@@ -0,0 +1,3 @@
+pagetitle: "Install Guide"
+title: "Linux install guide"
+papersize: a4
diff --git a/install_event/source b/install_event/source
deleted file mode 160000
index 81c5944d2cab9748dc9ccb126f6622131632c355..0000000000000000000000000000000000000000
--- a/install_event/source
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 81c5944d2cab9748dc9ccb126f6622131632c355
diff --git a/pdf/LICENSE b/pdf/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..06f73c1a5b62f9d1ff1d55054a02a1ae1f5b2152
--- /dev/null
+++ b/pdf/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Florian Moser
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/pdf/README.md b/pdf/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7a58ed0017656b5726309dee5a80c2c47e89ae62
--- /dev/null
+++ b/pdf/README.md
@@ -0,0 +1,38 @@
+# Crashcourse personal/course Website
+The easiest way to publish your own papers / portfolio is having your own webpage.
+We will show you how to create a simple website yourself.
+
+You will learn the basics about HTML, design it using CSS and add some functionality using JavaScript.
+In the end, we will have a quick look at PHP allowing you to generate your content dynamically.
+
+Our target will be that you can publish a fully functional website at the end of the course.
+We will touch other topics such as the basics of design when we need it.
+
+## Inhalt
+This course will give you a basic understanding of everything you need to create your own personal website.  
+We will have exercise breaks where you can apply the concepts at your own pace. 
+
+Chapters:
+- HTML: Structure your content.
+- CSS: Design.
+- JavaScript: Functionality in the browser.
+- PHP: Generate content.
+- Advanced topics: Fun part for further development.
+
+In the exercises, you will work on either a portfolio or course website (your choice!).
+
+## Voraussetzungen
+No experience required. 
+All tools we use are free. 
+
+## Teilnehmende
+PhDs and Students.
+Particularly suitable for all with no prior experience with web development.
+Students who have only superficial experience (copying & pasting stuff found online...) will profit from a more structured understanding.
+
+## Kursunterlagen
+All material is published online.
+
+## Bemerkungen
+You need to be able to use your computer.
+This course is offered in cooperation with The Alternative (https://thealternative.ch).
\ No newline at end of file
diff --git a/pdf/css/remark.css b/pdf/css/remark.css
new file mode 100644
index 0000000000000000000000000000000000000000..b0cbe369c67f8649d4d39e2fadc6ed71c2ef0c77
--- /dev/null
+++ b/pdf/css/remark.css
@@ -0,0 +1,47 @@
+body { font-family: sans-serif; }
+h1, h2, h3 {
+  font-family: serif;
+  font-weight: normal;
+}
+.remark-code, .remark-inline-code { font-family: monospace; }
+
+.row {
+    display: flex;
+}
+
+.column {
+	flex-basis: 0;
+	flex-grow: 1;
+	max-width: 100%;
+}
+
+table {
+  border-collapse: collapse;
+  border-bottom: 1px solid #dee2e6;
+  border-top: 1px solid #dee2e6;
+  width: 100%;
+}
+
+table th,
+table td {
+  border-top: 1px solid #dee2e6;
+  padding: 5px;
+}
+
+table tr:nth-child(2n) {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+table thead th {
+  border-bottom: 2px solid #dee2e6;
+  vertical-align: bottom;
+}
+
+.space-3 {
+  margin-top: 5em
+}
+
+.full-width-pre > pre {
+	margin-left: -4em;
+	margin-right: -4em;
+}
\ No newline at end of file
diff --git a/pdf/css/remark.print.css b/pdf/css/remark.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..f941e74a5d929a1b0774a863c5974b59f07733bf
--- /dev/null
+++ b/pdf/css/remark.print.css
@@ -0,0 +1,9 @@
+@media print {
+  .remark-slide-scaler {
+    width: 100% !important;
+    height: 100% !important;
+    transform: scale(1) !important;
+    top: 0 !important;
+    left: 0 !important;
+  }
+}
\ No newline at end of file
diff --git a/pdf/illustrations.bmpr b/pdf/illustrations.bmpr
new file mode 100644
index 0000000000000000000000000000000000000000..1745fb6aab88210db30ec95f4e897449f9105041
Binary files /dev/null and b/pdf/illustrations.bmpr differ
diff --git a/pdf/image.pdf b/pdf/image.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..169b26612de0a638e0c6b9f0522fd90c39557824
Binary files /dev/null and b/pdf/image.pdf differ
diff --git a/pdf/images/image.png b/pdf/images/image.png
new file mode 100644
index 0000000000000000000000000000000000000000..33af978ca22aa14c8be119e1a92c7c12cb0bf764
Binary files /dev/null and b/pdf/images/image.png differ
diff --git a/pdf/images/rectangle.png b/pdf/images/rectangle.png
new file mode 100644
index 0000000000000000000000000000000000000000..50a627f27f2eb2ece1f1e29f8b9e961fcdf653c6
Binary files /dev/null and b/pdf/images/rectangle.png differ
diff --git a/pdf/images/sizing.png b/pdf/images/sizing.png
new file mode 100644
index 0000000000000000000000000000000000000000..52fc954d9c900f5d987e9d9888fb6a90437b1edc
Binary files /dev/null and b/pdf/images/sizing.png differ
diff --git a/git_gitlab_course/images/thealternative-logo.jpg b/pdf/images/thealternative-logo.jpg
similarity index 100%
rename from git_gitlab_course/images/thealternative-logo.jpg
rename to pdf/images/thealternative-logo.jpg
diff --git a/git_gitlab_course/js/remark.driver.js b/pdf/js/remark.driver.js
similarity index 100%
rename from git_gitlab_course/js/remark.driver.js
rename to pdf/js/remark.driver.js
diff --git a/git_gitlab_course/js/remark.min.js b/pdf/js/remark.min.js
similarity index 100%
rename from git_gitlab_course/js/remark.min.js
rename to pdf/js/remark.min.js
diff --git a/pdf/pdf.html b/pdf/pdf.html
new file mode 100644
index 0000000000000000000000000000000000000000..a26e4857741889a52cd21caa2c348f58eb5148a9
--- /dev/null
+++ b/pdf/pdf.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>PDF</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <link rel="stylesheet" href="css/remark.css">
+    <link rel="stylesheet" media="print" href="css/remark.print.css">
+  </head>
+  <body>
+    <textarea id="source">
+
+class: center, middle
+
+# PDF = PestesDateiFormat
+
+<i>Imagine being able to send full text and graphics documents (newspapers, magazine articles, technical manuals, etc.) over electronic mail distribution networks. These documents could be viewed on any machine and any selected document could be printed locally. This capability would truly change the way information is managed.</i>
+
+<img src="images/thealternative-logo.jpg" width="30%">
+
+---
+
+# PostScript
+
+Somewhat the predecessor of PDF, created by the same company, Adobe.  
+Presented in the 80s.
+
+```html
+%!
+/Courier findfont    % Select font
+20 scalefont         % Scale to font size 20
+setfont              % Set it as active font
+50 50 moveto         % Set cursor to (50, 50)
+(Hallo Welt!) show   % Print text at cursor position
+
+showpage             % Show page
+```
+
+Primarily used for vector graphics, but also turing-complete stack-oriented programming language.  
+
+What the printer sees!
+
+---
+
+# PDF
+
+Improvement over PostScript.  
+No programming language anymore, more rigid structure, more features.
+
+Enables seek (load single page without compiling everything before), Comments, Forms, Video- and Audioplayback, 3D, ...
+
+Version 1.0 released in 1993.
+
+Acrobar Reader: 50$  
+Acrobat Distiller (personal version): 695$  
+Acrobat Distiller (network version): 2495$  
+
+---
+
+|      | Year | Industry | Notable features |
+| ---- | :--- | :------- | :--------------- |
+| v1.0 | 1993 | Adobe | **text**, **images**, **pages**, **hyperlinks**, bookmarks | 
+| v1.1 | 1994 | Tax | passwords, encryption, device-independent color |
+| v1.2 | 1996 | Printing | radio buttons, checkboxes, forms incl. import/export, mouse events, sound, **unicode**, color features | 
+| v1.3 | 2000 | Printing | digital signatures, color spaces, JavaScript, embedded file streams, image utilities, **CIDFonts**, prepress support |
+| v1.4 | 2001 | | RC4 > 40bits, transparency, better forms, metadata, accessibility, page boundaries, printer marks, predefined CMaps |
+| v1.5 | 2003 | | jpeg, multimedia playback, better forms, public key encryption, permissions, view/hide layers, slideshow |
+| v1.6 | 2004 | | 3D, **OpenType**, SOAP over http, public key encryption improvements, color spaces |
+| v1.7 | 2006 | | 3D improvements, public key encryption improvements |
+
+*Version 1.7 is ISO 32000-1:2008.*
+
+---
+
+# Recent developments
+
+PDF 1.7 Extensions:
+- PDF 1.7 Extension Level 1 (2008)
+- PDF 1.7 Extension Level 3 (2008)
+- PDF 1.7 Extension Level 5 (2009)
+- PDF 1.7 Extension Level 6 (2009)
+- PDF 1.7 Extension Level 8 (2011)
+
+Newest ISO version is ISO 32000-2:2017: PDF 2.0.  
+Clarified 1.7 specification, some new features. 
+
+---
+
+# Even more standards
+
+Specialized use cases = more standards:
+- PDF/X for graphic
+- PDF/A for archival
+- PDF/E for technical documentation
+- PDF/VT for dynamic data
+- PDF/UA for accessibility  
+
+PDF/A Levels:
+- Level B guarantees visual reproduction.  
+- Level A additionally guarantees content reproduction.  
+
+PDF/A Subversions:
+- PDF/A-1 for PDF 1.4 standard
+- PDF/A-2 for PDF 1.7 standard
+- PDF/A-3 for PDF 2.0 standard
+
+---
+
+# Why is it so popular?
+
+Single purpose, which is archived:  
+**It displays content equally on all devices.**
+
+<img src="images/sizing.png" width="60%">
+
+Comarison: How webpages deal with different devices:
+- Adapt font size, colors, spacing, ... to screen size
+- Adapt layout to aspect ratio / screen size
+- Remove or add elements depending on end device
+- Test on end devices and/or use resources such as [Can I Use](https://caniuse.com/)
+
+In short: Its painful and slow.
+
+---
+
+class: center, middle
+
+# The file format
+
+---
+
+# Tokens
+
+PDF is a text format. You can open any PDF in your text editor!
+
+Tokens:
+```html
+0 % Numbers
+Hello % Strings
+5 0 R % References (5 for the object number, 0 for its generation number, R for reference)
+[2 0 R] % Arrays
+<</Key /Value>> % Dictionaries
+Image % Names (any two with the same content are "equal") 
+```
+
+Out of these tokens, the higher-level objects are composed
+- Dictionaries
+- Streams
+
+```html
+<</Type /Catalog /Pages 2 0 R>>
+
+stream
+BT 1 0 0 1 22 20 cm 1 w /F 12 Tf 14.4 TL (Hello world)Tj ET
+endstream
+```
+
+---
+
+# Structure (1/2)
+
+Header (asserts PDF version and wether binary data is contained) 
+```html
+%PDF-1.7
+%����
+```
+
+Body (contains the actual content)
+```html
+1 0 obj
+<</Type /Catalog /Pages 2 0 R>>
+endobj
+2 0 obj
+<</Type /Pages /Kids [3 0 R] /Count 1>>
+endobj
+% ...
+```
+
+---
+
+# Structure (2/2)
+
+Cross-Reference Table (CRT) (contains the binary offset of objects)
+```html
+xref
+0 8
+0000000000 65535 f
+0000000015 00000 n
+0000000062 00000 n
+% ...
+```
+
+Trailer (contains size of CRT and reader start points)
+```html
+trailer
+<</Size 8 /Root 1 0 R /Info 7 0 R>>
+startxref
+574
+%%EOF
+```
+
+---
+
+class: full-width-pre
+
+# Body
+
+```html
+1 0 obj
+<</Type /Catalog /Pages 2 0 R>>
+endobj
+2 0 obj
+<</Type /Pages /Kids [3 0 R] /Count 1>>
+endobj
+3 0 obj
+<</Type /Page /Parent 2 0 R /Resources 4 0 R /MediaBox [0 0 210 297] /Contents [6 0 R]>>
+endobj
+4 0 obj
+<</Font <</F 5 0 R>> /ProcSet [/PDF /Text]>>
+endobj
+5 0 obj
+<</Type /Font /Subtype /Type1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding>>
+endobj
+6 0 obj
+<</Length 59>>
+stream
+BT 1 0 0 1 22 20 cm 1 w /F 12 Tf 14.4 TL (Hello world)Tj ET
+endstream
+endobj
+```
+
+---
+
+# Content
+
+Text (`w` = line width, `Tf` = font, `TL` = leading, `Tj` = text)
+```html
+stream
+BT 1 0 0 1 22 20 cm 1 w /F 12 Tf 14.4 TL (Hello world)Tj ET
+endstream
+```
+
+Drawing (`rg` = background color, `re` = rectangle, `b` = painting mode)
+```html
+stream
+1 0 0 1 40 20 cm 0.5 w 0.67 0.8 0.73 rg 0 0 20 30 re b
+endstream
+```
+
+<img src="images/rectangle.png" width="20%">
+
+
+---
+
+# Include Image
+
+Stream with binary image data
+
+```html
+5 0 obj
+<</Length 570 /Type /XObject /Subtype /Image /Width 25 /Height 16 /Filter /DCTDecode /BitsPerComponent 8 /ColorSpace /DeviceRGB>>
+stream
+�����JFIF���������#�#�#�#�%�#�'�+�+�'�6�;�4�;�6�P�J�C�C�J�P�z�W�]�W�]�W�z���s���s�s���s����������������%��������%S
+S�oo������#�#�#�#�%�#�'�+�+�'�6�;�4�;�6�P�J�C�C�J�P�z�W�]�W�]�W�z���s���s�s���s����������������%��������%S
+S�oo����������"��������������������������̊ �N�������������������������k���������������������������"������������"CRSb�����?��`W�F�X�6�G�Qy&IXFĪ��V�to������������������A���?�zе]������������������Q���?�S�����
+endstream
+endobj
+```
+
+<img src="images/image.png" width="20%">
+
+---
+
+# Print image
+
+Declare image alias (for `4 0 R` referenced as `Resources` in ` Page`):
+```html
+4 0 obj
+<</XObject <</I 5 0 R>> /ProcSet [/PDF /ImageC]>>
+endobj
+5 0 obj
+(image stream)
+```
+
+Print image (`Do` = print referenced image):
+```html
+6 0 obj
+<</Length 28>>
+stream
+20 0 0 20 20 20 cm 1 w /I Do
+endstream
+endobj
+```
+
+---
+
+class: center, middle
+
+# Enough foreplay: Render text!
+
+<i>Or: What is the most complicated approach to "support" unicode?</i>
+
+---
+
+# Supporting unicode
+
+`WinAnsiEncoding` is a single byte encoding; so are the other default encodings.  
+
+What if I need a character not contained in these standard encodings (like chinese characters)?
+
+Steps:
+- Embed font which supports character as stream
+- Declare encoding of text (PDF) onto glyphs (font)
+- Declare meta data (widths of characters, ...)
+
+=> Requires deep knowledge about font
+
+---
+
+class: center, middle
+
+# The TTF format
+
+---
+
+
+
+
+
+    </textarea>
+    <script src="js/remark.min.js" type="text/javascript"></script>
+    <script src="js/remark.driver.js" type="text/javascript"></script>
+  </body>
+</html>
diff --git a/pdf/rectangle.pdf b/pdf/rectangle.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..fe60870ce15953e0bdad6fa74d2bd9f36fa2bd80
--- /dev/null
+++ b/pdf/rectangle.pdf
@@ -0,0 +1,44 @@
+%PDF-1.7
+%����
+1 0 obj
+<</Type /Catalog /Pages 2 0 R>>
+endobj
+2 0 obj
+<</Type /Pages /Kids [3 0 R] /Count 1>>
+endobj
+3 0 obj
+<</Type /Page /Parent 2 0 R /Resources 4 0 R /MediaBox [0 0 210 297] /Contents [5 0 R 6 0 R]>>
+endobj
+4 0 obj
+<</ProcSet [/PDF]>>
+endobj
+5 0 obj
+<</Length 72>>
+stream
+1 0 0 1 40 20 cm 0.5 w 0.68 0.98 0.94 RG 0.67 0.8 0.73 rg 0 0 20 30 re b
+endstream
+endobj  
+6 0 obj
+<</Length 31>>
+stream
+1 0 0 1 -30 0 cm 0 0 20 30 re b
+endstream
+endobj
+7 0 obj
+<</Creator (famoser/pdf-generator) /CreationDate (D:20210328202704+02'00)>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000015 00000 n
+0000000062 00000 n
+0000000117 00000 n
+0000000227 00000 n
+0000000262 00000 n
+0000000382 00000 n
+0000000461 00000 n
+trailer
+<</Size 8 /Root 1 0 R /Info 7 0 R>>
+startxref
+552
+%%EOF
\ No newline at end of file
diff --git a/pdf/special_characters.pdf b/pdf/special_characters.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..69ccdadfed0b08bee305a10ac458e72117b0ed13
Binary files /dev/null and b/pdf/special_characters.pdf differ
diff --git a/pdf/text.pdf b/pdf/text.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9dfae31938199e188568b7ce497b30563c5b05d2
--- /dev/null
+++ b/pdf/text.pdf
@@ -0,0 +1,41 @@
+%PDF-1.7
+%����
+1 0 obj
+<</Type /Catalog /Pages 2 0 R>>
+endobj
+2 0 obj
+<</Type /Pages /Kids [3 0 R] /Count 1>>
+endobj
+3 0 obj
+<</Type /Page /Parent 2 0 R /Resources 4 0 R /MediaBox [0 0 210 297] /Contents [6 0 R]>>
+endobj
+4 0 obj
+<</Font <</F 5 0 R>> /ProcSet [/PDF /Text]>>
+endobj
+5 0 obj
+<</Type /Font /Subtype /Type1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding>>
+endobj
+6 0 obj
+<</Length 59>>
+stream
+BT 1 0 0 1 22 20 cm 1 w /F 12 Tf 14.4 TL (Hello world)Tj ET
+endstream
+endobj
+7 0 obj
+<</Creator (famoser/pdf-generator) /CreationDate (D:20210328193015+02'00)>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000015 00000 n
+0000000062 00000 n
+0000000117 00000 n
+0000000221 00000 n
+0000000281 00000 n
+0000000376 00000 n
+0000000483 00000 n
+trailer
+<</Size 8 /Root 1 0 R /Info 7 0 R>>
+startxref
+574
+%%EOF
\ No newline at end of file
diff --git a/project management/LICENSE b/project management/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..06f73c1a5b62f9d1ff1d55054a02a1ae1f5b2152
--- /dev/null
+++ b/project management/LICENSE	
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Florian Moser
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/project management/README.md b/project management/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a1d506418e403ff2dc2aa5a8078029988d9dd4f
--- /dev/null
+++ b/project management/README.md	
@@ -0,0 +1,7 @@
+# Project management
+
+How to manage an IT project. 
+
+Main objectives:
+- Know what makes a good project: High-level view about a suitable environment for you and your project.
+- Know how to manage a project: Concrete resources how to start, execute and finish a project.
diff --git a/project management/css/remark.css b/project management/css/remark.css
new file mode 100644
index 0000000000000000000000000000000000000000..e391beb14a1899f980a64befc9c984ccc7762a71
--- /dev/null
+++ b/project management/css/remark.css	
@@ -0,0 +1,245 @@
+body { font-family: sans-serif; }
+h1, h2, h3 {
+  font-family: serif;
+  font-weight: normal;
+}
+.remark-code, .remark-inline-code { font-family: monospace; }
+
+.row {
+    display: flex;
+}
+
+.column {
+	flex-basis: 0;
+	flex-grow: 1;
+	max-width: 100%;
+}
+
+table {
+  border-collapse: collapse;
+  border-bottom: 1px solid #dee2e6;
+  border-top: 1px solid #dee2e6;
+  width: 100%;
+}
+
+table th,
+table td {
+  border-top: 1px solid #dee2e6;
+  padding: 5px;
+}
+
+table tr:nth-child(2n) {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+table thead th {
+  border-bottom: 2px solid #dee2e6;
+  vertical-align: bottom;
+}
+
+blockquote {
+  background: #dee2e6;
+  margin-left: 0;
+  padding: 0.5em;
+}
+
+blockquote > *:first-child {
+  margin-top: 0;
+}
+
+blockquote > *:last-child {
+  margin-bottom: 0
+}
+
+.color-red {
+  color: red
+}
+
+.ml-2 {
+	margin-left: 2em
+}
+
+.inverted {
+	background-color: black;
+	color: white;
+}
+
+.pyro > .before, .pyro > .after {
+  position: absolute;
+  width: 5px;
+  height: 5px;
+  border-radius: 50%;
+  box-shadow: -120px -218.66667px blue, 248px -16.66667px #00ff84, 190px 16.33333px #002bff, -113px -308.66667px #ff009d, -109px -287.66667px #ffb300, -50px -313.66667px #ff006e, 226px -31.66667px #ff4000, 180px -351.66667px #ff00d0, -12px -338.66667px #00f6ff, 220px -388.66667px #99ff00, -69px -27.66667px #ff0400, -111px -339.66667px #6200ff, 155px -237.66667px #00ddff, -152px -380.66667px #00ffd0, -50px -37.66667px #00ffdd, -95px -175.66667px #a6ff00, -88px 10.33333px #0d00ff, 112px -309.66667px #005eff, 69px -415.66667px #ff00a6, 168px -100.66667px #ff004c, -244px 24.33333px #ff6600, 97px -325.66667px #ff0066, -211px -182.66667px #00ffa2, 236px -126.66667px #b700ff, 140px -196.66667px #9000ff, 125px -175.66667px #00bbff, 118px -381.66667px #ff002f, 144px -111.66667px #ffae00, 36px -78.66667px #f600ff, -63px -196.66667px #c800ff, -218px -227.66667px #d4ff00, -134px -377.66667px #ea00ff, -36px -412.66667px #ff00d4, 209px -106.66667px #00fff2, 91px -278.66667px #000dff, -22px -191.66667px #9dff00, 139px -392.66667px #a6ff00, 56px -2.66667px #0099ff, -156px -276.66667px #ea00ff, -163px -233.66667px #00fffb, -238px -346.66667px #00ff73, 62px -363.66667px #0088ff, 244px -170.66667px #0062ff, 224px -142.66667px #b300ff, 141px -208.66667px #9000ff, 211px -285.66667px #ff6600, 181px -128.66667px #1e00ff, 90px -123.66667px #c800ff, 189px 70.33333px #00ffc8, -18px -383.66667px #00ff33, 100px -6.66667px #ff008c;
+  -moz-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
+  -webkit-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
+  -o-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
+  -ms-animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;
+  animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards; }
+
+.pyro > .after {
+  -moz-animation-delay: 1.25s, 1.25s, 1.25s;
+  -webkit-animation-delay: 1.25s, 1.25s, 1.25s;
+  -o-animation-delay: 1.25s, 1.25s, 1.25s;
+  -ms-animation-delay: 1.25s, 1.25s, 1.25s;
+  animation-delay: 1.25s, 1.25s, 1.25s;
+  -moz-animation-duration: 1.25s, 1.25s, 6.25s;
+  -webkit-animation-duration: 1.25s, 1.25s, 6.25s;
+  -o-animation-duration: 1.25s, 1.25s, 6.25s;
+  -ms-animation-duration: 1.25s, 1.25s, 6.25s;
+  animation-duration: 1.25s, 1.25s, 6.25s; }
+
+@-webkit-keyframes bang {
+  from {
+    box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
+@-moz-keyframes bang {
+  from {
+    box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
+@-o-keyframes bang {
+  from {
+    box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
+@-ms-keyframes bang {
+  from {
+    box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
+@keyframes bang {
+  from {
+    box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white; } }
+@-webkit-keyframes gravity {
+  to {
+    transform: translateY(200px);
+    -moz-transform: translateY(200px);
+    -webkit-transform: translateY(200px);
+    -o-transform: translateY(200px);
+    -ms-transform: translateY(200px);
+    opacity: 0; } }
+@-moz-keyframes gravity {
+  to {
+    transform: translateY(200px);
+    -moz-transform: translateY(200px);
+    -webkit-transform: translateY(200px);
+    -o-transform: translateY(200px);
+    -ms-transform: translateY(200px);
+    opacity: 0; } }
+@-o-keyframes gravity {
+  to {
+    transform: translateY(200px);
+    -moz-transform: translateY(200px);
+    -webkit-transform: translateY(200px);
+    -o-transform: translateY(200px);
+    -ms-transform: translateY(200px);
+    opacity: 0; } }
+@-ms-keyframes gravity {
+  to {
+    transform: translateY(200px);
+    -moz-transform: translateY(200px);
+    -webkit-transform: translateY(200px);
+    -o-transform: translateY(200px);
+    -ms-transform: translateY(200px);
+    opacity: 0; } }
+@keyframes gravity {
+  to {
+    transform: translateY(200px);
+    -moz-transform: translateY(200px);
+    -webkit-transform: translateY(200px);
+    -o-transform: translateY(200px);
+    -ms-transform: translateY(200px);
+    opacity: 0; } }
+@-webkit-keyframes position {
+  0%, 19.9% {
+    margin-top: 10%;
+    margin-left: 40%; }
+
+  20%, 39.9% {
+    margin-top: 40%;
+    margin-left: 30%; }
+
+  40%, 59.9% {
+    margin-top: 20%;
+    margin-left: 70%; }
+
+  60%, 79.9% {
+    margin-top: 30%;
+    margin-left: 20%; }
+
+  80%, 99.9% {
+    margin-top: 30%;
+    margin-left: 80%; } }
+@-moz-keyframes position {
+  0%, 19.9% {
+    margin-top: 10%;
+    margin-left: 40%; }
+
+  20%, 39.9% {
+    margin-top: 40%;
+    margin-left: 30%; }
+
+  40%, 59.9% {
+    margin-top: 20%;
+    margin-left: 70%; }
+
+  60%, 79.9% {
+    margin-top: 30%;
+    margin-left: 20%; }
+
+  80%, 99.9% {
+    margin-top: 30%;
+    margin-left: 80%; } }
+@-o-keyframes position {
+  0%, 19.9% {
+    margin-top: 10%;
+    margin-left: 40%; }
+
+  20%, 39.9% {
+    margin-top: 40%;
+    margin-left: 30%; }
+
+  40%, 59.9% {
+    margin-top: 20%;
+    margin-left: 70%; }
+
+  60%, 79.9% {
+    margin-top: 30%;
+    margin-left: 20%; }
+
+  80%, 99.9% {
+    margin-top: 30%;
+    margin-left: 80%; } }
+@-ms-keyframes position {
+  0%, 19.9% {
+    margin-top: 10%;
+    margin-left: 40%; }
+
+  20%, 39.9% {
+    margin-top: 40%;
+    margin-left: 30%; }
+
+  40%, 59.9% {
+    margin-top: 20%;
+    margin-left: 70%; }
+
+  60%, 79.9% {
+    margin-top: 30%;
+    margin-left: 20%; }
+
+  80%, 99.9% {
+    margin-top: 30%;
+    margin-left: 80%; } }
+@keyframes position {
+  0%, 19.9% {
+    margin-top: 10%;
+    margin-left: 40%; }
+
+  20%, 39.9% {
+    margin-top: 40%;
+    margin-left: 30%; }
+
+  40%, 59.9% {
+    margin-top: 20%;
+    margin-left: 70%; }
+
+  60%, 79.9% {
+    margin-top: 30%;
+    margin-left: 20%; }
+
+  80%, 99.9% {
+    margin-top: 30%;
+    margin-left: 80%; } }
\ No newline at end of file
diff --git a/project management/css/remark.print.css b/project management/css/remark.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..f941e74a5d929a1b0774a863c5974b59f07733bf
--- /dev/null
+++ b/project management/css/remark.print.css	
@@ -0,0 +1,9 @@
+@media print {
+  .remark-slide-scaler {
+    width: 100% !important;
+    height: 100% !important;
+    transform: scale(1) !important;
+    top: 0 !important;
+    left: 0 !important;
+  }
+}
\ No newline at end of file
diff --git a/project management/illustrations.bmpr b/project management/illustrations.bmpr
new file mode 100644
index 0000000000000000000000000000000000000000..019fecfde35b33c40220fcb6ddcfe815e1fd310f
Binary files /dev/null and b/project management/illustrations.bmpr differ
diff --git a/project management/images/effort_increase_with_new_feature.png b/project management/images/effort_increase_with_new_feature.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8eec14cd7b7aaf42af34c5b7b1ff06050cc9dee
Binary files /dev/null and b/project management/images/effort_increase_with_new_feature.png differ
diff --git a/project management/images/effort_increases_exponential.png b/project management/images/effort_increases_exponential.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3c0cda52ffd2c7bab03e746c11432629d440df4
Binary files /dev/null and b/project management/images/effort_increases_exponential.png differ
diff --git a/project management/images/project-fail-reasons.png b/project management/images/project-fail-reasons.png
new file mode 100644
index 0000000000000000000000000000000000000000..50b7bd9b617584fe9c779ec64fbdbb4a71d0d400
Binary files /dev/null and b/project management/images/project-fail-reasons.png differ
diff --git a/project management/images/success_rate_vs_project_cost.png b/project management/images/success_rate_vs_project_cost.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6ca0ec60903f24ef22f2bc51f37d82b94fef248
Binary files /dev/null and b/project management/images/success_rate_vs_project_cost.png differ
diff --git a/project management/images/thealternative-logo.jpg b/project management/images/thealternative-logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0901690f57f7fb562ed6c0047bdc5dcfcecc5aae
Binary files /dev/null and b/project management/images/thealternative-logo.jpg differ
diff --git a/project management/js/remark.driver.js b/project management/js/remark.driver.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b2e4e9f0517f1394ceb97a3b8c2c7ee7df7536a
--- /dev/null
+++ b/project management/js/remark.driver.js	
@@ -0,0 +1 @@
+var slideshow = remark.create();
\ No newline at end of file
diff --git a/project management/js/remark.min.js b/project management/js/remark.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..160ca1bc20a967164bc020d80f6acd69ae6aae52
--- /dev/null
+++ b/project management/js/remark.min.js	
@@ -0,0 +1,18 @@
+require=function e(t,a,r){function s(i,l){if(!a[i]){if(!t[i]){var o="function"==typeof require&&require;if(!l&&o)return o(i,!0);if(n)return n(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var d=a[i]={exports:{}};t[i][0].call(d.exports,function(e){var a=t[i][1][e];return s(a?a:e)},d,d.exports,e,t,a,r)}return a[i].exports}for(var n="function"==typeof require&&require,i=0;i<r.length;i++)s(r[i]);return s}({1:[function(e,t,a){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(e){return"function"==typeof e}function n(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function l(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!n(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,a,r,n,o,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var d=new Error('Uncaught, unspecified "error" event. ('+t+")");throw d.context=t,d}if(a=this._events[e],l(a))return!1;if(s(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:n=Array.prototype.slice.call(arguments,1),a.apply(this,n)}else if(i(a))for(n=Array.prototype.slice.call(arguments,1),c=a.slice(),r=c.length,o=0;o<r;o++)c[o].apply(this,n);return!0},r.prototype.addListener=function(e,t){var a;if(!s(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,s(t.listener)?t.listener:t),this._events[e]?i(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,i(this._events[e])&&!this._events[e].warned&&(a=l(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function a(){this.removeListener(e,a),r||(r=!0,t.apply(this,arguments))}if(!s(t))throw TypeError("listener must be a function");var r=!1;return a.listener=t,this.on(e,a),this},r.prototype.removeListener=function(e,t){var a,r,n,l;if(!s(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=this._events[e],n=a.length,r=-1,a===t||s(a.listener)&&a.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(a)){for(l=n;l-- >0;)if(a[l]===t||a[l].listener&&a[l].listener===t){r=l;break}if(r<0)return this;1===a.length?(a.length=0,delete this._events[e]):a.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,a;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(a=this._events[e],s(a))this.removeListener(e,a);else if(a)for(;a.length;)this.removeListener(e,a[a.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?s(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(s(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],2:[function(e,t,a){(function(e){(function(){function e(e){this.tokens=[],this.tokens.links={},this.options=e||m.defaults,this.rules=u.normal,this.options.gfm&&(this.options.tables?this.rules=u.tables:this.rules=u.gfm)}function r(e,t){if(this.options=t||m.defaults,this.links=e,this.rules=h.normal,this.renderer=this.options.renderer||new s,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=h.breaks:this.rules=h.gfm:this.options.pedantic&&(this.rules=h.pedantic)}function s(e){this.options=e||{}}function n(e){this.tokens=[],this.token=null,this.options=e||m.defaults,this.options.renderer=this.options.renderer||new s,this.renderer=this.options.renderer,this.renderer.options=this.options}function i(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function l(e){return e.replace(/&([#\w]+);/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function o(e,t){return e=e.source,t=t||"",function a(r,s){return r?(s=s.source||s,s=s.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,s),a):new RegExp(e,t)}}function c(){}function d(e){for(var t,a,r=1;r<arguments.length;r++){t=arguments[r];for(a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}function m(t,a,r){if(r||"function"==typeof a){r||(r=a,a=null),a=d({},m.defaults,a||{});var s,l,o=a.highlight,c=0;try{s=e.lex(t,a)}catch(e){return r(e)}l=s.length;var u=function(){var e,t;try{e=n.parse(s,a)}catch(e){t=e}return a.highlight=o,t?r(t):r(null,e)};if(!o||o.length<3)return u();if(delete a.highlight,!l)return u();for(;c<s.length;c++)!function(e){return"code"!==e.type?--l||u():o(e.text,e.lang,function(t,a){return null==a||a===e.text?--l||u():(e.text=a,e.escaped=!0,void(--l||u()))})}(s[c])}else try{return a&&(a=d({},m.defaults,a)),n.parse(e.lex(t,a),a)}catch(e){if(e.message+="\nPlease report this to https://github.com/chjj/marked.",(a||m.defaults).silent)return"<p>An error occured:</p><pre>"+i(e.message+"",!0)+"</pre>";throw e}}var u={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:c,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:c,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:c,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};u.bullet=/(?:[*+-]|\d+\.)/,u.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,u.item=o(u.item,"gm")(/bull/g,u.bullet)(),u.list=o(u.list)(/bull/g,u.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)(),u._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",u.html=o(u.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,u._tag)(),u.paragraph=o(u.paragraph)("hr",u.hr)("heading",u.heading)("lheading",u.lheading)("blockquote",u.blockquote)("tag","<"+u._tag)("def",u.def)(),u.normal=d({},u),u.gfm=d({},u.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),u.gfm.paragraph=o(u.paragraph)("(?!","(?!"+u.gfm.fences.source.replace("\\1","\\2")+"|"+u.list.source.replace("\\1","\\3")+"|")(),u.tables=d({},u.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=u,e.lex=function(t,a){var r=new e(a);return r.lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t){for(var a,r,s,n,i,l,o,c,d,e=e.replace(/^ +$/gm,"");e;)if((s=this.rules.newline.exec(e))&&(e=e.substring(s[0].length),s[0].length>1&&this.tokens.push({type:"space"})),s=this.rules.code.exec(e))e=e.substring(s[0].length),s=s[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?s:s.replace(/\n+$/,"")});else if(s=this.rules.fences.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"code",lang:s[2],text:s[3]});else if(s=this.rules.heading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:s[1].length,text:s[2]});else if(t&&(s=this.rules.nptable.exec(e))){for(e=e.substring(s[0].length),l={type:"table",header:s[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3].replace(/\n$/,"").split("\n")},c=0;c<l.align.length;c++)/^ *-+: *$/.test(l.align[c])?l.align[c]="right":/^ *:-+: *$/.test(l.align[c])?l.align[c]="center":/^ *:-+ *$/.test(l.align[c])?l.align[c]="left":l.align[c]=null;for(c=0;c<l.cells.length;c++)l.cells[c]=l.cells[c].split(/ *\| */);this.tokens.push(l)}else if(s=this.rules.lheading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:"="===s[2]?1:2,text:s[1]});else if(s=this.rules.hr.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"hr"});else if(s=this.rules.blockquote.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"blockquote_start"}),s=s[0].replace(/^ *> ?/gm,""),this.token(s,t),this.tokens.push({type:"blockquote_end"});else if(s=this.rules.list.exec(e)){for(e=e.substring(s[0].length),n=s[2],this.tokens.push({type:"list_start",ordered:n.length>1}),s=s[0].match(this.rules.item),a=!1,d=s.length,c=0;c<d;c++)l=s[c],o=l.length,l=l.replace(/^ *([*+-]|\d+\.) +/,""),~l.indexOf("\n ")&&(o-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,""):l.replace(new RegExp("^ {1,"+o+"}","gm"),"")),this.options.smartLists&&c!==d-1&&(i=u.bullet.exec(s[c+1])[0],n===i||n.length>1&&i.length>1||(e=s.slice(c+1).join("\n")+e,c=d-1)),r=a||/\n\n(?!\s*$)/.test(l),c!==d-1&&(a="\n"===l.charAt(l.length-1),r||(r=a)),this.tokens.push({type:r?"loose_item_start":"list_item_start"}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(s=this.rules.html.exec(e))e=e.substring(s[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===s[1]||"script"===s[1]||"style"===s[1],text:s[0]});else if(t&&(s=this.rules.def.exec(e)))e=e.substring(s[0].length),this.tokens.links[s[1].toLowerCase()]={href:s[2],title:s[3]};else if(t&&(s=this.rules.table.exec(e))){for(e=e.substring(s[0].length),l={type:"table",header:s[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3].replace(/(?: *\| *)?\n$/,"").split("\n")},c=0;c<l.align.length;c++)/^ *-+: *$/.test(l.align[c])?l.align[c]="right":/^ *:-+: *$/.test(l.align[c])?l.align[c]="center":/^ *:-+ *$/.test(l.align[c])?l.align[c]="left":l.align[c]=null;for(c=0;c<l.cells.length;c++)l.cells[c]=l.cells[c].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(l)}else if(t&&(s=this.rules.paragraph.exec(e)))e=e.substring(s[0].length),this.tokens.push({type:"paragraph",text:"\n"===s[1].charAt(s[1].length-1)?s[1].slice(0,-1):s[1]});else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"text",text:s[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var h={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:c,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:c,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};h._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,h._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,h.link=o(h.link)("inside",h._inside)("href",h._href)(),h.reflink=o(h.reflink)("inside",h._inside)(),h.normal=d({},h),h.pedantic=d({},h.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),h.gfm=d({},h.normal,{escape:o(h.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:o(h.text)("]|","~]|")("|","|https?://|")()}),h.breaks=d({},h.gfm,{br:o(h.br)("{2,}","*")(),text:o(h.gfm.text)("{2,}","*")()}),r.rules=h,r.output=function(e,t,a){var s=new r(t,a);return s.output(e)},r.prototype.output=function(e){for(var t,a,r,s,n="";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),n+=s[1];else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),"@"===s[2]?(a=":"===s[1].charAt(6)?this.mangle(s[1].substring(7)):this.mangle(s[1]),r=this.mangle("mailto:")+a):(a=i(s[1]),r=a),n+=this.renderer.link(r,null,a);else if(s=this.rules.url.exec(e))e=e.substring(s[0].length),a=i(s[1]),r=a,n+=this.renderer.link(r,null,a);else if(s=this.rules.tag.exec(e))e=e.substring(s[0].length),n+=this.options.sanitize?i(s[0]):s[0];else if(s=this.rules.link.exec(e))e=e.substring(s[0].length),n+=this.outputLink(s,{href:s[2],title:s[3]});else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){n+=s[0].charAt(0),e=s[0].substring(1)+e;continue}n+=this.outputLink(s,t)}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),n+=this.renderer.strong(this.output(s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),n+=this.renderer.em(this.output(s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),n+=this.renderer.codespan(i(s[2],!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),n+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),n+=this.renderer.del(this.output(s[1]));else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),n+=i(this.smartypants(s[0]));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return n},r.prototype.outputLink=function(e,t){var a=i(t.href),r=t.title?i(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(a,r,this.output(e[1])):this.renderer.image(a,r,i(e[1]))},r.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},r.prototype.mangle=function(e){for(var t,a="",r=e.length,s=0;s<r;s++)t=e.charCodeAt(s),Math.random()>.5&&(t="x"+t.toString(16)),a+="&#"+t+";";return a},s.prototype.code=function(e,t,a){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(a=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+i(t,!0)+'">'+(a?e:i(e,!0))+"\n</code></pre>\n":"<pre><code>"+(a?e:i(e,!0))+"\n</code></pre>"},s.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},s.prototype.html=function(e){return e},s.prototype.heading=function(e,t,a){return"<h"+t+' id="'+this.options.headerPrefix+a.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},s.prototype.hr=function(){return"<hr>\n"},s.prototype.list=function(e,t){var a=t?"ol":"ul";return"<"+a+">\n"+e+"</"+a+">\n"},s.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},s.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},s.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},s.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},s.prototype.tablecell=function(e,t){var a=t.header?"th":"td",r=t.align?"<"+a+' style="text-align:'+t.align+'">':"<"+a+">";return r+e+"</"+a+">\n"},s.prototype.strong=function(e){return"<strong>"+e+"</strong>"},s.prototype.em=function(e){return"<em>"+e+"</em>"},s.prototype.codespan=function(e){return"<code>"+e+"</code>"},s.prototype.br=function(){return"<br>"},s.prototype.del=function(e){return"<del>"+e+"</del>"},s.prototype.link=function(e,t,a){if(this.options.sanitize){try{var r=decodeURIComponent(l(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0===r.indexOf("javascript:"))return""}var s='<a href="'+e+'"';return t&&(s+=' title="'+t+'"'),s+=">"+a+"</a>"},s.prototype.image=function(e,t,a){var r='<img src="'+e+'" alt="'+a+'"';return t&&(r+=' title="'+t+'"'),r+=">"},n.parse=function(e,t,a){var r=new n(t,a);return r.parse(e)},n.prototype.parse=function(e){this.inline=new r(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},n.prototype.next=function(){return this.token=this.tokens.pop()},n.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},n.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},n.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,a,r,s,n="",i="";for(a="",e=0;e<this.token.header.length;e++)r={header:!0,align:this.token.align[e]},a+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(n+=this.renderer.tablerow(a),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],a="",s=0;s<t.length;s++)a+=this.renderer.tablecell(this.inline.output(t[s]),{header:!1,align:this.token.align[s]});i+=this.renderer.tablerow(a)}return this.renderer.table(n,i);case"blockquote_start":for(var i="";"blockquote_end"!==this.next().type;)i+=this.tok();return this.renderer.blockquote(i);case"list_start":for(var i="",l=this.token.ordered;"list_end"!==this.next().type;)i+=this.tok();return this.renderer.list(i,l);case"list_item_start":for(var i="";"list_item_end"!==this.next().type;)i+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(i);case"loose_item_start":for(var i="";"list_item_end"!==this.next().type;)i+=this.tok();return this.renderer.listitem(i);case"html":var o=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(o);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},c.exec=c,m.options=m.setOptions=function(e){return d(m.defaults,e),m},m.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new s},m.Parser=n,m.parser=n.parse,m.Renderer=s,m.Lexer=e,m.lexer=e.lex,m.InlineLexer=r,m.inlineLexer=r.output,m.parse=m,"object"==typeof a?t.exports=m:"function"==typeof define&&define.amd?define(function(){return m}):this.marked=m}).call(function(){return this||("undefined"!=typeof window?window:e)}())}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,a){function r(e,t){var a;for(a=0;a<e.length;++a)t(e[a],a)}function s(e){var t=e&&e.prototype;t&&(t.forEach=t.forEach||function(e){r(this,e)},t.filter=t.filter||function(e){var t=[];return this.forEach(function(a){e(a,t.length)&&t.push(a)}),t},t.map=t.map||function(e){var t=[];return this.forEach(function(a){t.push(e(a,t.length))}),t})}a.apply=function(){r([Array,window.NodeList,window.HTMLCollection],s)}},{}],4:[function(e,t,a){var r=e("./remark/api"),s=e("./polyfills"),n=e("./remark/components/styler/styler");window.remark=new r,s.apply(),n.styleDocument()},{"./polyfills":3,"./remark/api":5,"./remark/components/styler/styler":"components/styler"}],5:[function(e,t,a){function r(e){this.dom=e||new p,this.macros=g,this.version=c.version}function s(e,t){var a;return t=t||{},t.hasOwnProperty("source")||(a=e.getElementById("source"),a&&(t.source=n(a.innerHTML),a.style.display="none")),t.container instanceof window.HTMLElement||(t.container=e.getBodyElement()),t}function n(e){return e=e.replace(/&[l|g]t;/g,function(e){return"&lt;"===e?"<":">"}),e=e.replace(/&amp;/g,"&"),e=e.replace(/&quot;/g,'"')}var i=e("events").EventEmitter,l=e("./highlighter"),o=e("./converter"),c=e("./resources"),d=e("./parser"),m=e("./models/slideshow"),u=e("./views/slideshowView"),h=e("./controllers/defaultController"),p=e("./dom"),g=e("./macros");t.exports=r,r.prototype.highlighter=l,r.prototype.convert=function(e){var t=new d,a=t.parse(e||"",g)[0].content;return o.convertMarkdown(a,{},!0)},r.prototype.create=function(e,t){var a,r,n,l,o=this;return e=s(this.dom,e),a=new i,a.setMaxListeners(0),r=new m(a,this.dom,e,function(r){n=new u(a,o.dom,e.container,r),l=e.controller||new h(a,o.dom,n,e.navigation),"function"==typeof t&&t(r)})}},{"./controllers/defaultController":6,"./converter":12,"./dom":13,"./highlighter":14,"./macros":16,"./models/slideshow":18,"./parser":21,"./resources":22,"./views/slideshowView":27,events:1}],6:[function(e,t,a){function r(e,t,a,r){r=r||{};var d=new n(e);o.register(e),c.register(e,t,a),i.register(e,r),l.register(e,r),s(e,d,a,r)}function s(e,t,a,r){e.on("pause",function(a){t.deactivate(),i.unregister(e),l.unregister(e)}),e.on("resume",function(a){t.activate(),i.register(e,r),l.register(e,r)})}t.exports=r;var n=e("./inputs/keyboard"),i=e("./inputs/mouse"),l=e("./inputs/touch"),o=e("./inputs/message"),c=e("./inputs/location")},{"./inputs/keyboard":7,"./inputs/location":8,"./inputs/message":9,"./inputs/mouse":10,"./inputs/touch":11}],7:[function(e,t,a){function r(e){this._events=e,this.activate()}t.exports=r,r.prototype.activate=function(){this._gotoSlideNumber="",this.addKeyboardEventListeners()},r.prototype.deactivate=function(){this.removeKeyboardEventListeners()},r.prototype.addKeyboardEventListeners=function(){var e=this,t=this._events;t.on("keydown",function(a){if(!a.metaKey&&!a.ctrlKey)switch(a.keyCode){case 33:case 37:case 38:t.emit("gotoPreviousSlide");break;case 32:case 34:case 39:case 40:t.emit("gotoNextSlide");break;case 36:t.emit("gotoFirstSlide");break;case 35:t.emit("gotoLastSlide");break;case 27:t.emit("hideOverlay");break;case 13:e._gotoSlideNumber&&(t.emit("gotoSlide",e._gotoSlideNumber),e._gotoSlideNumber="")}}),t.on("keypress",function(a){if(!a.metaKey&&!a.ctrlKey){var r=String.fromCharCode(a.which).toLowerCase();switch(r){case"j":t.emit("gotoNextSlide");break;case"k":t.emit("gotoPreviousSlide");break;case"b":t.emit("toggleBlackout");break;case"m":t.emit("toggleMirrored");break;case"c":t.emit("createClone");break;case"p":t.emit("togglePresenterMode");break;case"f":t.emit("toggleFullscreen");break;case"t":t.emit("resetTimer");break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"0":e._gotoSlideNumber+=r;break;case"h":case"?":t.emit("toggleHelp")}}})},r.prototype.removeKeyboardEventListeners=function(){var e=this._events;e.removeAllListeners("keydown"),e.removeAllListeners("keypress")}},{}],8:[function(e,t,a){function r(e,t,a){function r(){var a=(t.getLocationHash()||"").substr(1);e.emit("gotoSlide",a)}function n(e){s.hasClass(a.containerElement,"remark-presenter-mode")?t.setLocationHash("#p"+e):t.setLocationHash("#"+e)}a.isEmbedded()?e.emit("gotoSlide",1):(e.on("hashchange",r),e.on("slideChanged",n),e.on("toggledPresenter",n),r())}var s=e("../../utils.js");a.register=function(e,t,a){r(e,t,a)}},{"../../utils.js":24}],9:[function(e,t,a){function r(e){function t(t){var a;null!==(a=/^gotoSlide:(\d+)$/.exec(t.data))?e.emit("gotoSlide",parseInt(a[1],10),!0):"toggleBlackout"===t.data&&e.emit("toggleBlackout")}e.on("message",t)}a.register=function(e){r(e)}},{}],10:[function(e,t,a){function r(e,t){if(t.click&&(e.on("click",function(t){"A"!==t.target.nodeName&&0===t.button&&e.emit("gotoNextSlide")}),e.on("contextmenu",function(t){"A"!==t.target.nodeName&&(t.preventDefault(),e.emit("gotoPreviousSlide"))})),t.scroll!==!1){var a=function(t){t.wheelDeltaY>0||t.detail<0?e.emit("gotoPreviousSlide"):(t.wheelDeltaY<0||t.detail>0)&&e.emit("gotoNextSlide")};e.on("mousewheel",a),e.on("DOMMouseScroll",a)}}function s(e){e.removeAllListeners("click"),e.removeAllListeners("contextmenu"),e.removeAllListeners("mousewheel")}a.register=function(e,t){r(e,t)},a.unregister=function(e){s(e)}},{}],11:[function(e,t,a){function r(e,t){var a,r,s;if(t.touch!==!1){var n=function(){return Math.abs(r-s)<10},i=function(){e.emit("tap",s)},l=function(){r>s?e.emit("gotoNextSlide"):e.emit("gotoPreviousSlide")};e.on("touchstart",function(e){a=e.touches[0],r=a.clientX}),e.on("touchend",function(e){"A"!==e.target.nodeName.toUpperCase()&&(a=e.changedTouches[0],s=a.clientX,n()?i():l())}),e.on("touchmove",function(e){e.preventDefault()})}}function s(e){e.removeAllListeners("touchstart"),e.removeAllListeners("touchend"),e.removeAllListeners("touchmove")}a.register=function(e,t){r(e,t)},a.unregister=function(e){s(e)}},{}],12:[function(e,t,a){function r(e,t,a){var n,l,o,c="";for(n=0;n<e.length;++n)"string"==typeof e[n]?c+=e[n]:(l=e[n].block?"div":"span",c+="<"+l+' class="'+e[n].class+'">',c+=r(e[n].content,t,!e[n].block),c+="</"+l+">");var d=s.Lexer.lex(c.replace(/^\s+/,""));return d.links=t,o=s.Parser.parse(d),a&&(i.innerHTML=o,1===i.children.length&&"P"===i.children[0].tagName&&(o=i.children[0].innerHTML)),o}var s=e("marked"),n=t.exports={},i=document.createElement("div");s.setOptions({gfm:!0,tables:!0,breaks:!1,pedantic:!0,sanitize:!1,smartLists:!0,langPrefix:""}),n.convertMarkdown=function(e,t,a){return i.innerHTML=r(e,t||{},a),i.innerHTML=i.innerHTML.replace(/<p>\s*<\/p>/g,""),i.innerHTML.replace(/\n\r?$/,"")}},{marked:2}],13:[function(e,t,a){function r(){}t.exports=r,r.prototype.XMLHttpRequest=XMLHttpRequest,r.prototype.getHTMLElement=function(){return document.getElementsByTagName("html")[0]},r.prototype.getBodyElement=function(){return document.body},r.prototype.getElementById=function(e){return document.getElementById(e)},r.prototype.getLocationHash=function(){return window.location.hash},r.prototype.setLocationHash=function(e){"function"==typeof window.history.replaceState&&"null"!==document.origin?window.history.replaceState(void 0,void 0,e):window.location.hash=e}},{}],14:[function(e,t,a){for(var r=function(){var e={};return function(t){var a="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof e?t(e):a&&(a.hljs=t({}),"function"==typeof define&&define.amd&&define([],function(){return a.hljs}))}(function(e){function t(e){return e.replace(/[&<>]/gm,function(e){return M[e]})}function a(e){return e.nodeName.toLowerCase()}function r(e,t){var a=e&&e.exec(t);return a&&0===a.index}function s(e){return k.test(e)}function n(e){var t,a,r,n,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",a=w.exec(i))return j(a[1])?a[1]:"no-highlight";for(i=i.split(/\s+/),t=0,r=i.length;t<r;t++)if(n=i[t],s(n)||j(n))return n}function i(e,t){var a,r={};for(a in e)r[a]=e[a];if(t)for(a in t)r[a]=t[a];return r}function l(e){var t=[];return function e(r,s){for(var n=r.firstChild;n;n=n.nextSibling)3===n.nodeType?s+=n.nodeValue.length:1===n.nodeType&&(t.push({event:"start",offset:s,node:n}),s=e(n,s),a(n).match(/br|hr|img|input/)||t.push({event:"stop",offset:s,node:n}));return s}(e,0),t}function o(e,r,s){function n(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function i(e){function r(e){return" "+e.nodeName+'="'+t(e.value)+'"'}d+="<"+a(e)+E.map.call(e.attributes,r).join("")+">"}function l(e){d+="</"+a(e)+">"}function o(e){("start"===e.event?i:l)(e.node)}for(var c=0,d="",m=[];e.length||r.length;){var u=n();if(d+=t(s.substr(c,u[0].offset-c)),c=u[0].offset,u===e){m.reverse().forEach(l);do o(u.splice(0,1)[0]),u=n();while(u===e&&u.length&&u[0].offset===c);m.reverse().forEach(i)}else"start"===u[0].event?m.push(u[0].node):m.pop(),o(u.splice(0,1)[0])}return d+t(s.substr(c))}function c(e){function t(e){return e&&e.source||e}function a(a,r){return new RegExp(t(a),"m"+(e.case_insensitive?"i":"")+(r?"g":""))}function r(s,n){if(!s.compiled){if(s.compiled=!0,s.keywords=s.keywords||s.beginKeywords,s.keywords){var l={},o=function(t,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");l[a[0]]=[t,a[1]?Number(a[1]):1]})};"string"==typeof s.keywords?o("keyword",s.keywords):y(s.keywords).forEach(function(e){o(e,s.keywords[e])}),s.keywords=l}s.lexemesRe=a(s.lexemes||/\w+/,!0),n&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")\\b"),s.begin||(s.begin=/\B|\b/),s.beginRe=a(s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(s.endRe=a(s.end)),s.terminator_end=t(s.end)||"",s.endsWithParent&&n.terminator_end&&(s.terminator_end+=(s.end?"|":"")+n.terminator_end)),s.illegal&&(s.illegalRe=a(s.illegal)),null==s.relevance&&(s.relevance=1),s.contains||(s.contains=[]);var c=[];s.contains.forEach(function(e){e.variants?e.variants.forEach(function(t){c.push(i(e,t))}):c.push("self"===e?s:e)}),s.contains=c,s.contains.forEach(function(e){r(e,s)}),s.starts&&r(s.starts,n);var d=s.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([s.terminator_end,s.illegal]).map(t).filter(Boolean);s.terminators=d.length?a(d.join("|"),!0):{exec:function(){return null}}}}r(e)}function d(e,a,s,n){function i(e,t){var a,s;for(a=0,s=t.contains.length;a<s;a++)if(r(t.contains[a].beginRe,e))return t.contains[a]}function l(e,t){if(r(e.endRe,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.endsWithParent)return l(e.parent,t)}function o(e,t){return!s&&r(t.illegalRe,e)}function u(e,t){var a=v.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(a)&&e.keywords[a]}function h(e,t,a,r){var s=r?"":N.classPrefix,n='<span class="'+s,i=a?"":T;return n+=e+'">',n+t+i}function p(){var e,a,r,s;if(!y.keywords)return t(w);for(s="",a=0,y.lexemesRe.lastIndex=0,r=y.lexemesRe.exec(w);r;)s+=t(w.substr(a,r.index-a)),e=u(y,r),e?(x+=e[1],s+=h(e[0],t(r[0]))):s+=t(r[0]),a=y.lexemesRe.lastIndex,r=y.lexemesRe.exec(w);return s+t(w.substr(a))}function g(){var e="string"==typeof y.subLanguage;if(e&&!S[y.subLanguage])return t(w);var a=e?d(y.subLanguage,w,!0,C[y.subLanguage]):m(w,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(x+=a.relevance),e&&(C[y.subLanguage]=a.top),h(a.language,a.value,!1,!0)}function b(){k+=null!=y.subLanguage?g():p(),w=""}function _(e){k+=e.className?h(e.className,"",!0):"",y=Object.create(e,{parent:{value:y}})}function f(e,t){if(w+=e,null==t)return b(),0;var a=i(t,y);if(a)return a.skip?w+=t:(a.excludeBegin&&(w+=t),b(),a.returnBegin||a.excludeBegin||(w=t)),_(a,t),a.returnBegin?0:t.length;var r=l(y,t);if(r){var s=y;s.skip?w+=t:(s.returnEnd||s.excludeEnd||(w+=t),b(),s.excludeEnd&&(w=t));do y.className&&(k+=T),y.skip||(x+=y.relevance),y=y.parent;while(y!==r.parent);return r.starts&&_(r.starts,""),s.returnEnd?0:t.length}if(o(t,y))throw new Error('Illegal lexeme "'+t+'" for mode "'+(y.className||"<unnamed>")+'"');return w+=t,t.length||1}var v=j(e);if(!v)throw new Error('Unknown language: "'+e+'"');c(v);var E,y=n||v,C={},k="";for(E=y;E!==v;E=E.parent)E.className&&(k=h(E.className,"",!0)+k);var w="",x=0;try{for(var M,D,O=0;;){if(y.terminators.lastIndex=O,M=y.terminators.exec(a),!M)break;D=f(a.substr(O,M.index-O),M[0]),O=M.index+D}for(f(a.substr(O)),E=y;E.parent;E=E.parent)E.className&&(k+=T);return{relevance:x,value:k,language:e,top:y}}catch(e){if(e.message&&e.message.indexOf("Illegal")!==-1)return{relevance:0,value:t(a)};throw e}}function m(e,a){a=a||N.languages||y(S);var r={relevance:0,value:t(e)},s=r;return a.filter(j).forEach(function(t){var a=d(t,e,!1);a.language=t,a.relevance>s.relevance&&(s=a),
+a.relevance>r.relevance&&(s=r,r=a)}),s.language&&(r.second_best=s),r}function u(e){return N.tabReplace||N.useBR?e.replace(x,function(e,t){return N.useBR&&"\n"===e?"<br>":N.tabReplace?t.replace(/\t/g,N.tabReplace):void 0}):e}function h(e,t,a){var r=t?C[t]:a,s=[e.trim()];return e.match(/\bhljs\b/)||s.push("hljs"),e.indexOf(r)===-1&&s.push(r),s.join(" ").trim()}function p(e){var t,a,r,i,c,p=n(e);s(p)||(N.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):t=e,c=t.textContent,r=p?d(p,c,!0):m(c),a=l(t),a.length&&(i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),i.innerHTML=r.value,r.value=o(a,l(i),c)),r.value=u(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function g(e){N=i(N,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,p)}}function _(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function f(t,a){var r=S[t]=a(e);r.aliases&&r.aliases.forEach(function(e){C[e]=t})}function v(){return y(S)}function j(e){return e=(e||"").toLowerCase(),S[e]||S[C[e]]}var E=[],y=Object.keys,S={},C={},k=/^(no-?highlight|plain|text)$/i,w=/\blang(?:uage)?-([\w-]+)\b/i,x=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,T="</span>",N={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},M={"&":"&amp;","<":"&lt;",">":"&gt;"};return e.highlight=d,e.highlightAuto=m,e.fixMarkup=u,e.highlightBlock=p,e.configure=g,e.initHighlighting=b,e.initHighlightingOnLoad=_,e.registerLanguage=f,e.listLanguages=v,e.getLanguage=j,e.inherit=i,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.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|like)\b/},e.COMMENT=function(t,a,r){var s=e.inherit({className:"comment",begin:t,end:a,contains:[]},r||{});return s.contains.push(e.PHRASAL_WORDS_MODE),s.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),s},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"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},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e}),e}(),s=[{name:"lisp",create:function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",a="\\|[^]*?\\|",r="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",s={className:"meta",begin:"^#!",end:"$"},n={className:"literal",begin:"\\b(t{1}|nil)\\b"},i={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:"\\)"}]},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={begin:"\\*",end:"\\*"},d={className:"symbol",begin:"[:&]"+t},m={begin:t,relevance:0},u={begin:a},h={begin:"\\(",end:"\\)",contains:["self",n,l,i,m]},p={contains:[i,l,c,d,h,m],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+a}]},g={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},b={begin:"\\(\\s*",end:"\\)"},_={endsWithParent:!0,relevance:0};return b.contains=[{className:"name",variants:[{begin:t},{begin:a}]},_],_.contains=[p,g,b,n,i,l,o,c,d,u,m],{illegal:/\S/,contains:[i,s,n,l,o,p,g,b,m]}}},{name:"cpp",create:function(e){var t={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U)?L?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},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},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n=e.IDENT_RE+"\\s*\\(",i={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf 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",literal:"true false nullptr NULL"},l=[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,a];return{aliases:["c","cc","h","c++","h++","hpp"],keywords:i,illegal:"</",contains:l.concat([s,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:i,contains:["self",t]},{begin:e.IDENT_RE+"::",keywords:i},{variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:i,contains:l.concat([{begin:/\(/,end:/\)/,keywords:i,contains:l.concat(["self"]),relevance:0}]),relevance:0},{className:"function",begin:"("+e.IDENT_RE+"[\\*&\\s]+)+"+n,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:i,illegal:/[^\w\s\*&]/,contains:[{begin:n,returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,t]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]}]),exports:{preprocessor:s,strings:a,keywords:i}}}},{name:"accesslog",create:function(e){return{contains:[{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+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}},{name:"actionscript",create:function(e){var t="[a-zA-Z_$][a-zA-Z0-9_$]*",a="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",r={className:"rest_arg",begin:"[.]{3}",end:t,relevance:10};return{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,{className:"class",beginKeywords:"package",end:"{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:";",keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r]},{begin:":\\s*"+a}]},e.METHOD_GUARD],illegal:/#/}}},{name:"ada",create:function(e){var t="\\d(_|\\d)*",a="[eE][-+]?"+t,r=t+"(\\."+t+")?("+a+")?",s="\\w+",n=t+"#"+s+"(\\."+s+")?#("+a+")?",i="\\b("+n+"|"+r+")",l="[A-Za-z](_?[A-Za-z0-9.])*",o="[]{}%#'\"",c=e.COMMENT("--","$"),d={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:o,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:l,endsParent:!0,relevance:0}]};return{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:[c,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:i,relevance:0},{className:"symbol",begin:"'"+l},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:o},{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:[c,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:o},d,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:o}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:o},d]}}},{name:"apache",create:function(e){var t={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"</?",end:">"},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"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"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",t]},t,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},{name:"applescript",create:function(e){var t=e.inherit(e.QUOTE_STRING_MODE,{illegal:""}),a={className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_NUMBER_MODE,t]},r=e.COMMENT("--","$"),s=e.COMMENT("\\(\\*","\\*\\)",{contains:["self",r]}),n=[r,s,e.HASH_COMMENT_MODE];return{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 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:"\\b(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|^\\s*return\\b"},{className:"literal",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(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|POSIX path|(date|time) string|quoted form)\\b"},{beginKeywords:"on",illegal:"[${=;\\n]",contains:[e.UNDERSCORE_TITLE_MODE,a]}].concat(n),illegal:"//|->|=>|\\[\\["}}},{name:"arduino",create:function(e){var t=e.getLanguage("cpp").exports;return{keywords:{keyword:"boolean byte word string String array "+t.keywords.keyword,built_in:"setup loop while catch for if do goto try switch case else default break continue return 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 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"},contains:[t.preprocessor,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"armasm",create:function(e){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+e.IDENT_RE,keywords:{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 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]?",end:"\\s"},e.COMMENT("[;@]","$",{relevance:0}),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:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}},{name:"asciidoc",create:function(e){return{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,5}) .+?( \\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},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{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}]}}},{name:"aspectj",create:function(e){var t="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",a="get set args call";return{keywords:t,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:t+" "+a,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:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:t+" "+a},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:t,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]+"}]}}},{name:"autohotkey",create:function(e){var t={begin:/`[\s\S]/};return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A|0 true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%",end:"%",illegal:"\\n",contains:[t]},{className:"symbol",contains:[t],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,"}]}}},{name:"autoit",create:function(e){var t="ByRef Case Const ContinueCase ContinueLoop Default 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",a="True False And Null Not Or",r="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",s={variants:[e.COMMENT(";","$",{relevance:0
+}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},l={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},o={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[i,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,s]},c={className:"symbol",begin:"@[A-z0-9_]+"},d={className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,i,l]}]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:t,built_in:r,literal:a},contains:[s,n,i,l,o,c,d]}}},{name:"avrasm",create:function(e){return{case_insensitive:!0,lexemes:"\\.?"+e.IDENT_RE,keywords:{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]+"}]}}},{name:"awk",create:function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",r={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]};return{keywords:{keyword:a},contains:[t,r,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},{name:"axapta",create:function(e){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",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:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}},{name:"bash",create:function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},r={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\._]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",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",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,r,t]}}},{name:"basic",create:function(e){return{case_insensitive:!0,illegal:"^.",lexemes:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keywords:{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|0 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([0-9]+[0-9edED.]*[#!]?)",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}},{name:"bnf",create:function(e){return{contains:[{className:"attribute",begin:/</,end:/>/},{begin:/::=/,starts:{end:/$/,contains:[{begin:/</,end:/>/},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}]}}},{name:"brainfuck",create:function(e){var t={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[t]},t]}}},{name:"cal",create:function(e){var t="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",a="false true",r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],s={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},n={className:"string",begin:/(#\d+)+/},i={className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},l={className:"string",begin:'"',end:'"'},o={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[s,n]}].concat(r)},c={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,o]};return{case_insensitive:!0,keywords:{keyword:t,literal:a},illegal:/\/\*/,contains:[s,n,i,l,e.NUMBER_MODE,c,o]}}},{name:"capnproto",create:function(e){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"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/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}},{name:"ceylon",create:function(e){var 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",a="shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",r="doc by license see throws tagged",s={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},n=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[s]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return s.contains=n,{keywords:{keyword:t+" "+a,meta:r},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(n)}}},{name:"clojure-repl",create:function(e){return{contains:[{className:"meta",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}},{name:"clojure",create:function(e){var t={"builtin-name":"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - 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 defmacro defn defn- 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 defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod 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="a-zA-Z_\\-!.?+*=<>&#'",r="["+a+"]["+a+"0-9/;:]*",s="[-+]?\\d+(\\.\\d+)?",n={begin:r,relevance:0},i={className:"number",begin:s,relevance:0},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={className:"literal",begin:/\b(true|false|nil)\b/},d={begin:"[\\[\\{]",end:"[\\]\\}]"},m={className:"comment",begin:"\\^"+r},u=e.COMMENT("\\^\\{","\\}"),h={className:"symbol",begin:"[:]{1,2}"+r},p={begin:"\\(",end:"\\)"},g={endsWithParent:!0,relevance:0},b={keywords:t,lexemes:r,className:"name",begin:r,starts:g},_=[p,l,m,u,o,h,d,i,c,n];return p.contains=[e.COMMENT("comment",""),b,g],g.contains=_,d.contains=_,{aliases:["clj"],illegal:/\S/,contains:[p,l,m,u,o,h,d,i,c]}}},{name:"cmake",create:function(e){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory 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 equal less greater strless strgreater strequal matches"},contains:[{className:"variable",begin:"\\${",end:"}"},e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},{name:"coffeescript",create:function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},a="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},s=[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,r]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[r,e.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+a},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];r.contains=s;var n=e.inherit(e.TITLE_MODE,{begin:a}),i="(\\(.*\\))?\\s*\\B[-=]>",l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(s)}]};return{aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:s.concat([e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+a+"\\s*=\\s*"+i,end:"[-=]>",returnBegin:!0,contains:[n,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:i,end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[n]},n]},{begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"coq",create:function(e){return{keywords:{keyword:"_ 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 DependentDerive 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:/[-=]>/}]}}},{name:"cos",create:function(e){var t={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},a={className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},r="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";return{case_insensitive:!0,aliases:["cos","cls"],keywords:r,contains:[a,t,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)</,end:/>/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*</,end:/>\s*>/,subLanguage:"xml"}]}}},{name:"1c",create:function(e){var t="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",a="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",r="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",s={begin:'""'},n={className:"string",begin:'"',end:'"|$',contains:[s]},i={className:"string",begin:"\\|",end:'"|$',contains:[s]};return{case_insensitive:!0,lexemes:t,keywords:{keyword:a,built_in:r},contains:[e.C_LINE_COMMENT_MODE,e.NUMBER_MODE,n,i,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:t,keywords:"процедура функция",contains:[{begin:"экспорт",endsWithParent:!0,lexemes:t,keywords:"экспорт",contains:[e.C_LINE_COMMENT_MODE]},{className:"params",begin:"\\(",end:"\\)",lexemes:t,keywords:"знач",contains:[n,i]},e.C_LINE_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:t})]},{className:"meta",begin:"#",end:"$"},{className:"number",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}},{name:"crmsh",create:function(e){var t="primitive rsc_template",a="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",r="property rsc_defaults op_defaults",s="params meta operations op rule attributes utilization",n="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 \\",i="number string",l="Master Started Slave Stopped start promote demote stop monitor true false";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:s+" "+n+" "+i,literal:l},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:t,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+a.split(" ").join("|")+")\\s+",keywords:a,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:r,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:"</?",end:"/?>",relevance:0}]}}},{name:"crystal",create:function(e){function t(e,t){var a=[{begin:e,end:t}];return a[0].contains=a,a}var a="(_[uif](8|16|32|64))?",r="[a-zA-Z_]\\w*[!?=]?",s="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",i={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},l={className:"subst",begin:"#{",end:"}",keywords:i},o={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:i},c={className:"string",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%w?{",end:"}",contains:t("{","}")},{begin:"%w?<",end:">",contains:t("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},d={begin:"("+s+")\\s*",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},m={className:"regexp",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},u={className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"})]},h=[o,c,d,m,u,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{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:5},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[c,{begin:n}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+a},{begin:"\\b0o([0-7_]*[0-7])"+a},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+a},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+a}],relevance:0}];return l.contains=h,o.contains=h.slice(1),{aliases:["cr"],lexemes:r,keywords:i,contains:h}}},{name:"cs",create:function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async nameof ascending descending from get group into join let orderby partial select set value var where yield",literal:"null false true"},a={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(a,{illegal:/\n/}),s={className:"subst",begin:"{",end:"}",keywords:t},n=e.inherit(s,{illegal:/\n/}),i={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,n]},l={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},s]},o=e.inherit(l,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},n]});s.contains=[l,i,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],n.contains=[o,i,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var c={variants:[l,i,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},d=e.IDENT_RE+"(<"+e.IDENT_RE+">)?(\\[\\])?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},c,e.C_NUMBER_MODE,{
+beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+d+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},{name:"csp",create:function(e){return{case_insensitive:!1,lexemes:"[a-zA-Z][a-zA-Z0-9_-]*",keywords:{keyword:"base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src"},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}},{name:"css",create:function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",a={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:t,relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,a]}]}}},{name:"d",create:function(e){var t={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"},a="(0|[1-9][\\d_]*)",r="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",s="0[bB][01_]+",n="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",i="0[xX]"+n,l="([eE][+-]?"+r+")",o="("+r+"(\\.\\d*|"+l+")|\\d+\\."+r+r+"|\\."+a+l+"?)",c="(0[xX]("+n+"\\."+n+"|\\.?"+n+")[pP][+-]?"+r+")",d="("+a+"|"+s+"|"+i+")",m="("+c+"|"+o+")",u="\\\\(['\"\\?\\\\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,};",h={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},p={className:"number",begin:"\\b("+m+"([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},g={className:"string",begin:"'("+u+"|.)",end:"'",illegal:"."},b={begin:u,relevance:0},_={className:"string",begin:'"',contains:[b],end:'"[cwd]?'},f={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},v={className:"string",begin:"`",end:"`[cwd]?"},j={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},E={className:"string",begin:'q"\\{',end:'\\}"'},y={className:"meta",begin:"^#!",end:"$",relevance:5},S={className:"meta",begin:"#(line)",end:"$",relevance:5},C={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},k=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,k,j,_,f,v,E,p,h,g,y,S,C]}}},{name:"dart",create:function(e){var t={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},a={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]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]}]};t.contains=[e.C_NUMBER_MODE,a];var r={keyword:"assert async await break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch sync this throw true try var void while with yield abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{keywords:r,contains:[a,e.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),e.COMMENT("///","$",{subLanguage:"markdown"}),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:"=>"}]}}},{name:"delphi",create:function(e){var 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",a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/},n={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},i={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:[r,s]}].concat(a)};return{aliases:["dpr","dfm","pas","pascal","freepascal","lazarus","lpr","lfm"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[r,s,e.NUMBER_MODE,n,i].concat(a)}}},{name:"diff",create:function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}},{name:"django",create:function(e){var 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{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]}]}}},{name:"dns",create:function(e){return{aliases:["bind","zone"],keywords:{keyword:"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]?/})]}}},{name:"dockerfile",create:function(e){return{aliases:["docker"],case_insensitive:!0,keywords:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label",contains:[e.HASH_COMMENT_MODE,{keywords:"run cmd entrypoint volume add copy workdir onbuild label",begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:"from maintainer expose env user onbuild",begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE]}]}}},{name:"dos",create:function(e){var t=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10}),a={className:"symbol",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0};return{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 shiftsort start subst time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:a.begin,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]}}},{name:"dsconfig",create:function(e){var t={className:"string",begin:/"/,end:/"/},a={className:"string",begin:/'/,end:/'/},r={className:"string",begin:"[\\w-?]+:\\w+",end:"\\W",relevance:0},s={className:"string",begin:"\\w+-?\\w+",end:"\\W",relevance:0};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},t,a,r,s,e.HASH_COMMENT_MODE]}}},{name:"dts",create:function(e){var 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:"."}]},a={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:{"meta-keyword":"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[e.inherit(t,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},s={className:"variable",begin:"\\&[a-z\\d_]*\\b"},n={className:"meta-keyword",begin:"/[a-z][a-z\\d-]*/"},i={className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},l={className:"params",begin:"<",end:">",contains:[a,s]},o={className:"class",begin:/[a-zA-Z_][a-zA-Z\d_@]*\s{/,end:/[{;=]/,returnBegin:!0,excludeEnd:!0},c={className:"class",begin:"/\\s*{",end:"};",relevance:10,contains:[s,n,i,o,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,t]};return{keywords:"",contains:[c,s,n,i,o,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,t,r,{begin:e.IDENT_RE+"::",keywords:""}]}}},{name:"dust",create:function(e){var t="if eq ne lt lte gt gte select default math sep";return{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:t}]}}},{name:"ebnf",create:function(e){var t=e.COMMENT(/\(\*/,/\*\)/),a={className:"attribute",begin:/^[ ]*[a-zA-Z][a-zA-Z-]*([\s-]+[a-zA-Z][a-zA-Z]*)*/},r={className:"meta",begin:/\?.*\?/},s={begin:/=/,end:/;/,contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{illegal:/\S/,contains:[t,a,s]}}},{name:"elixir",create:function(e){var t="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",s={className:"subst",begin:"#\\{",end:"}",lexemes:t,keywords:r},n={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},i={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},l=e.inherit(i,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[n,e.HASH_COMMENT_MODE,l,i,{className:"symbol",begin:":(?!\\s)",contains:[n,{begin:a}],relevance:0},{className:"symbol",begin:t+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return s.contains=o,{lexemes:t,keywords:r,contains:o}}},{name:"elm",create:function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]},s={begin:"{",end:"}",contains:r.contains};return{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:[a,r,s,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,a,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}},{name:"erb",create:function(e){return{subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}},{name:"erlang-repl",create:function(e){return{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",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([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}]}}},{name:"erlang",create:function(e){var t="[a-z'][a-zA-Z0-9_']*",a="("+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"},s=e.COMMENT("%","$"),n={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},i={begin:"fun\\s+"+t+"/\\d+"},l={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},o={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},m={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},u={beginKeywords:"fun receive if try case",end:"end",keywords:r};u.contains=[s,i,e.inherit(e.APOS_STRING_MODE,{className:""}),u,l,e.QUOTE_STRING_MODE,n,o,c,d,m];var h=[s,i,u,l,e.QUOTE_STRING_MODE,n,o,c,d,m];l.contains[1].contains=h,o.contains=h,m.contains[1].contains=h;var p={className:"params",begin:"\\(",end:"\\)",contains:h};return{aliases:["erl"],keywords:r,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[p,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:r,contains:h}},s,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[p]},n,e.QUOTE_STRING_MODE,m,c,d,o,{begin:/\.$/}]}}},{name:"excel",create:function(e){return{aliases:["xlsx","xls"],case_insensitive:!0,lexemes:/[a-zA-Z][\w\.]*/,keywords:{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|0 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/})]}}},{name:"fix",create:function(e){return{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}}},{name:"fortran",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a={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",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_ofacosh 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"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:a,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,t]},e.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}},{name:"fsharp",create:function(e){var t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}},{name:"gams",create:function(e){var t={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"
+},a={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},r={className:"symbol",variants:[{begin:/\=[lgenxc]=/},{begin:/\$/}]},s={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},n={begin:"/",end:"/",keywords:t,contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},i={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[s,n,{className:"comment",begin:/([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,relevance:0}]};return{aliases:["gms"],case_insensitive:!0,keywords:t,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"meta-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,n,i]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[i]},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-z][a-z0-9_]+/},a,r]},e.C_NUMBER_MODE,r]}}},{name:"gauss",create:function(e){var t={keyword:"and 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 not open or 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",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 indx 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 threadBegin threadEnd threadEndFor threadFor threadJoin threadStat 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",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"},a={className:"meta",begin:"#",end:"$",keywords:{"meta-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:{"meta-keyword":"include"},contains:[{className:"meta-string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r=e.UNDERSCORE_IDENT_RE+"\\s*\\(?",s=[{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}];return{aliases:["gss"],case_insensitive:!0,keywords:t,illegal:"(\\{[%#]|[%#]\\})",contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("@","@"),a,{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"function",beginKeywords:"proc keyword",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a].concat(s)},{className:"function",beginKeywords:"fn",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r+e.IDENT_RE+"\\)?\\s*\\=\\s*",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE].concat(s)},{className:"function",begin:"\\bexternal (proc|keyword|fn)\\s+",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"\\bexternal (matrix|string|array|sparse matrix|struct "+e.IDENT_RE+")\\s+",end:";",excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},{name:"gcode",create:function(e){var t="[A-Z_][A-Z0-9_.]*",a="\\%",r="IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR",s={className:"meta",begin:"([O])([0-9]+)"},n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+e.C_NUMBER_RE}),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)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:t,keywords:r,contains:[{className:"meta",begin:a},s].concat(n)}}},{name:"gherkin",create:function(e){return{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]}}},{name:"glsl",create:function(e){return{keywords:{keyword:"break continue discard do else for if return whileattribute 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 iimageBufferiimageCube 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:"$"}]}}},{name:"go",create:function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 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{aliases:["golang"],keywords:t,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"`"}]},{className:"number",variants:[{begin:e.C_NUMBER_RE+"[dflsi]",relevance:1},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",end:/\s*\{/,excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,illegal:/["']/}]}]}}},{name:"golo",create:function(e){return{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]+"}]}}},{name:"gradle",create:function(e){return{case_insensitive:!0,keywords:{keyword:"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]}}},{name:"groovy",create:function(e){return{keywords:{literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait super this 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"},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,{className:"string",begin:'"""',end:'"""'},{className:"string",begin:"'''",end:"'''"},{className:"string",begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,{className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.BINARY_NUMBER_MODE,{className:"class",beginKeywords:"class interface trait enum",end:"{",illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{className:"string",begin:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{begin:/\?/,end:/\:/},{className:"symbol",begin:"^\\s*[A-Za-z0-9_$]+:",relevance:0}],illegal:/#|<\//}}},{name:"haml",create:function(e){return{case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{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:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}},{name:"handlebars",create:function(e){var t={"builtin-name":"each in with if else unless bindattr action collection debugger log outlet template unbound view yield"};return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,keywords:t,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,keywords:t}]}}},{name:"haskell",create:function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},a={className:"meta",begin:"{-#",end:"#-}"},r={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},n={begin:"\\(",end:"\\)",illegal:'"',contains:[a,r,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),t]},i={begin:"{",end:"}",contains:n.contains};return{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",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[n,t],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[n,t],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,n,t]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[a,s,n,i,t]},{beginKeywords:"default",end:"$",contains:[s,n,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,t]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},a,r,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}},{name:"haxe",create:function(e){var t="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end error"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]
+},{begin:":\\s*"+t}]}]}}},{name:"hsp",create:function(e){return{case_insensitive:!0,lexemes:/[\w\._]+/,keywords:"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:{"meta-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:"meta-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]}}},{name:"htmlbars",create:function(e){var t="action collection component concat debugger each each-in else get hash if input link-to loc log mut outlet partial query-params render textarea unbound unless with yield view",a={illegal:/\}\}/,begin:/[a-zA-Z0-9_]+=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[a-zA-Z0-9_]+/}]},r=({illegal:/\}\}/,begin:/\)/,end:/\)/,contains:[{begin:/[a-zA-Z\.\-]+/,keywords:{built_in:t},starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{endsWithParent:!0,relevance:0,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE,a,e.NUMBER_MODE]});return{case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.\-]+/,keywords:{"builtin-name":t},starts:r}]},{className:"template-variable",begin:/\{\{[a-zA-Z][a-zA-Z\-]+/,end:/\}\}/,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE]}]}}},{name:"http",create:function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+t,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+t+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:t},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}},{name:"inform7",create:function(e){var t="\\[",a="\\]";return{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:t,end:a}]},{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:t,end:a,contains:["self"]}]}}},{name:"ini",create:function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT(";","$"),e.HASH_COMMENT_MODE,{className:"section",begin:/^\s*\[+/,end:/\]+/},{begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",returnBegin:!0,contains:[{className:"attr",begin:/[a-z0-9\[\]_-]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\bon|off|true|false|yes|no\b/},{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},t,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},e.NUMBER_MODE]}]}]}}},{name:"irpf90",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a={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_ofacosh 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"};return{case_insensitive:!0,keywords:a,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,t]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}},{name:"java",create:function(e){var t=e.UNDERSCORE_IDENT_RE+"(<"+e.UNDERSCORE_IDENT_RE+"(\\s*,\\s*"+e.UNDERSCORE_IDENT_RE+")*>)?",a="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports",r="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",s={className:"number",begin:r,relevance:0};return{aliases:["jsp"],keywords:a,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:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+t+"\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:a,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:a,relevance:0,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]},s,{className:"meta",begin:"@[A-Za-z]+"}]}}},{name:"javascript",create:function(e){return{aliases:["js","jsx"],keywords:{keyword:"in of 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 static import from as",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 Promise"},contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},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:/</,end:/(\/\w+|\w+\/)>/,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:["self"]}]}],relevance: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.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},{name:"json",create:function(e){var t={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],r={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:t},s={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(r,{begin:/:/})],illegal:"\\S"},n={begin:"\\[",end:"\\]",contains:[e.inherit(r)],illegal:"\\S"};return a.splice(a.length,0,s,n),{contains:a,keywords:t,illegal:"\\S"}}},{name:"julia",create:function(e){var t={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ",built_in:"ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix StridedVecOrMat StridedVector VecOrMat Vector "},a="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",r={lexemes:a,keywords:t,illegal:/<\//},s={className:"type",begin:/::/},n={className:"type",begin:/<:/},i={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},l={className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},c={className:"variable",begin:"\\$"+a},d={className:"string",contains:[e.BACKSLASH_ESCAPE,o,c],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},m={className:"string",contains:[e.BACKSLASH_ESCAPE,o,c],begin:"`",end:"`"},u={className:"meta",begin:"@"+a},h={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return r.contains=[i,l,s,n,d,m,u,h,e.HASH_COMMENT_MODE],o.contains=r.contains,r}},{name:"kotlin",create:function(e){var 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 interface annotation data sealed internal infix operator out by constructor super trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",variants:[{begin:"\\$"+e.UNDERSCORE_IDENT_RE},{begin:"\\${",end:"}",contains:[e.APOS_STRING_MODE,e.C_NUMBER_MODE]}]},n={className:"string",variants:[{begin:'"""',end:'"""',contains:[s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s]}]},i={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(n,{className:"meta-string"})]}]};return{keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,i,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,l,n,e.C_NUMBER_MODE]},e.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},i,l]},n,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.C_NUMBER_MODE]}}},{name:"lasso",create:function(e){var t="[a-zA-Z_][\\w.]*",a="<\\?(lasso(script)?|=)",r="\\]|\\?>",s={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"},n=e.COMMENT("<!--","-->",{relevance:0}),i={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[n]}},l={className:"meta",begin:"\\[/noprocess|"+a},o={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:[o]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:t+"(=(?!>))?|[-+*/%](?!>)"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:t+"|&[lg]t;",keywords:s,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0,relevance:0,contains:[n]}},i,l,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:t+"|&[lg]t;",keywords:s,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[n]}},i,l].concat(c)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(c)}}},{name:"ldif",create:function(e){return{contains:[{className:"attribute",begin:"^dn",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0},relevance:10},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0}},{className:"literal",begin:"^-",end:"$"},e.HASH_COMMENT_MODE]}}},{name:"less",create:function(e){var t="[\\w-]+",a="("+t+"|@{"+t+"})",r=[],s=[],n=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},i=function(e,t,a){return{className:e,begin:t,relevance:a}},l={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n("'"),n('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i("number","#[0-9A-Fa-f]+\\b"),l,i("variable","@@?"+t,10),i("variable","@{"+t+"}"),i("built_in","~?`[^`]*?`"),{className:"attribute",begin:t+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var o=s.concat({begin:"{",end:"}",contains:r}),c={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},d={begin:a+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:a,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},m={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},u={className:"variable",variants:[{begin:"@"+t+"\\s*:",relevance:15},{begin:"@"+t}],starts:{end:"[;}]",returnEnd:!0,contains:o}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,i("keyword","all\\b"),i("variable","@{"+t+"}"),i("selector-tag",a+"%?",0),i("selector-id","#"+a),i("selector-class","\\."+a,0),i("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:o},{begin:"!important"}]};return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,u,d,h),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}},{name:"abnf",create:function(e){var t={ruleDeclaration:"^[a-zA-Z][a-zA-Z0-9-]*",unexpectedChars:"[!@#$^&',?+~`|:]"},a=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],r=e.COMMENT(";","$"),s={className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},n={className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},i={className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},l={className:"symbol",begin:/%[si]/},o={begin:t.ruleDeclaration+"\\s*=",returnBegin:!0,end:/=/,relevance:0,contains:[{className:"attribute",begin:t.ruleDeclaration}]};return{illegal:t.unexpectedChars,keywords:a.join(" "),contains:[o,r,s,n,i,l,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},{name:"livecodeserver",create:function(e){var t={begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},a=[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\\-]+"}]}),s=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{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 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 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 libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load 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 union unload wait write"
+},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,s,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:[s,r],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,s,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(a),illegal:";$|^\\[|^=|&|{"}}},{name:"livescript",create:function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},a="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",r=e.inherit(e.TITLE_MODE,{begin:a}),s={className:"subst",begin:/#\{/,end:/}/,keywords:t},n={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:t},i=[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,n]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,n]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[s,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+a},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];s.contains=i;var l={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(i)}]};return{aliases:["ls"],keywords:t,illegal:/\/\*/,contains:i.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,{className:"function",contains:[r,l],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}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[r]},r]},{begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"lsl",create:function(e){var t={className:"subst",begin:/\\[tn"\\]/},a={className:"string",begin:'"',end:'"',contains:[t]},r={className:"number",begin:e.C_NUMBER_RE},s={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_ON_REZ|NAME|DESC|POS|PRIM_(?:COUNT|EQUIVALENCE)|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP|CREATOR|ATTACHED_POINT|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_(?: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)|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|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)|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"}]},n={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|(?: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"};return{illegal:":",contains:[a,{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")]},r,{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"}]},n,s,{className:"type",begin:"\\b(?:integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}},{name:"lua",create:function(e){var t="\\[=*\\[",a="\\]=*\\]",r={begin:t,end:a,contains:["self"]},s=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,a,{contains:[r],relevance:10})];return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",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"},contains:s.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:s}].concat(s)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:a,contains:[r],relevance:5}])}}},{name:"makefile",create:function(e){var t={className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[e.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[t]}}},{className:"section",begin:/^[\w]+:\s*$/},{className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{"meta-keyword":".PHONY"},lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[e.QUOTE_STRING_MODE,t]}]}}},{name:"markdown",create:function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},{name:"mathematica",create:function(e){return{aliases:["mma"],lexemes:"(\\$|\\b)"+e.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual 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 DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData 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 GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ 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 LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm 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 LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual 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 NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",
+contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:/\{/,end:/\}/,illegal:/:/}]}}},{name:"matlab",create:function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}],a={relevance:0,contains:[{begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated 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 inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},a.contains[0]]},{begin:"\\[",end:"\\]",contains:t,relevance:0,starts:a},{begin:"\\{",end:/}/,contains:t,relevance:0,starts:a},{begin:/\)/,relevance:0,starts:a},e.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.COMMENT("\\%","$")].concat(t)}}},{name:"maxima",create:function(e){var t="if then else elseif for thru do while unless step in and or not",a="true false unknown inf minf ind und %e %i %pi %phi %gamma",r=" 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",s="_ __ %|0 %%|0";return{lexemes:"[A-Za-z_%][0-9A-Za-z_%]*",keywords:{keyword:t,literal:a,built_in:r,symbol:s},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:/@/}}},{name:"mel",create:function(e){return{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:"</",contains:[e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},{name:"mercury",create:function(e){var t={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"},a=e.COMMENT("%","$"),r={className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},s=e.inherit(e.APOS_STRING_MODE,{relevance:0}),n=e.inherit(e.QUOTE_STRING_MODE,{relevance:0}),i={className:"subst",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0};n.contains.push(i);var l={className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},o={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:t,contains:[l,o,a,e.C_BLOCK_COMMENT_MODE,r,e.NUMBER_MODE,s,n,{begin:/:-/}]}}},{name:"mipsasm",create:function(e){return{case_insensitive:!0,aliases:["mips"],lexemes:"\\.?"+e.IDENT_RE,keywords:{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("[;#]","$"),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:"/"}}},{name:"mizar",create:function(e){return{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("::","$")]}}},{name:"mojolicious",create:function(e){return{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}]}}},{name:"monkey",create:function(e){var t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{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",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 and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"built_in",begin:"\\b(self|super)\\b"},{className:"meta",begin:"\\s*#",end:"$",keywords:{"meta-keyword":"if else elseif endif end then"}},{className:"meta",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}},{name:"moonscript",create:function(e){var 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"},a="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},s=[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=s;var n=e.inherit(e.TITLE_MODE,{begin:a}),i="(\\(.*\\))?\\s*\\B[-=]>",l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(s)}]};return{aliases:["moon"],keywords:t,illegal:/\/\*/,contains:s.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+a+"\\s*=\\s*"+i,end:"[-=]>",returnBegin:!0,contains:[n,l]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:i,end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[n]},n]},{className:"name",begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"nginx",create:function(e){var t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{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,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],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},t]};return{aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}},{name:"nimrod",create:function(e){return{aliases:["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 generic 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 shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"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"},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]}}},{name:"nix",create:function(e){var 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"},a={className:"subst",begin:/\$\{/,end:/}/,keywords:t},r={begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/}]},s={className:"string",contains:[a],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},n=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,r];return a.contains=n,{aliases:["nixos"],keywords:t,contains:n}}},{name:"nsis",create:function(e){var t={className:"variable",begin:"\\$(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)"},a={className:"variable",begin:"\\$+{[a-zA-Z0-9_]+}"},r={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},s={className:"variable",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},n={className:"built_in",begin:"(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)"},i={className:"keyword",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,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 ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[{begin:"\\$(\\\\(n|r|t)|\\$)"},t,a,r,s]},e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup SubSection",end:"$"},i,a,r,s,n,e.NUMBER_MODE,{begin:e.IDENT_RE+"::"+e.IDENT_RE}]}}},{name:"objectivec",create:function(e){var t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar 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:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,s="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:a,lexemes:r,illegal:"</",contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"}]},{className:"meta",begin:"#",end:"$",contains:[{className:"meta-string",variants:[{begin:'"',end:'"'},{begin:"<",end:">"}]}]},{className:"class",begin:"("+s.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:s,lexemes:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}},{name:"ocaml",create:function(e){return{aliases:["ml"],keywords:{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:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",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:/[-=]>/}]}}},{name:"openscad",create:function(e){var t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},a={className:"literal",begin:"false|true|PI|undef"},r={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),n={className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},i={className:"params",begin:"\\(",end:"\\)",contains:["self",r,s,t,a]},l={begin:"[*!#%]",relevance:0},o={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[i,e.UNDERSCORE_TITLE_MODE]};return{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,r,n,s,t,l,o]}}},{name:"oxygene",create:function(e){var t="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",a=e.COMMENT("{","}",{relevance:0}),r=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),s={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},n={className:"string",begin:"(#\\d+)+"},i={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[s,n]},a,r]};return{case_insensitive:!0,lexemes:/\.?\w+/,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',contains:[a,r,e.C_LINE_COMMENT_MODE,s,n,e.NUMBER_MODE,i,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:t,contains:[s,n,a,r,e.C_LINE_COMMENT_MODE,i]}]}}},{name:"parser3",create:function(e){var t=e.COMMENT("{","}",{contains:["self"]});return{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]}}},{name:"perl",create:function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:t},r={begin:"->{",end:"}"},s={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},n=[e.BACKSLASH_ESCAPE,a,s],i=[s,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),r,{className:"string",contains:n,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+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],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",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{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 a.contains=i,r.contains=i,{aliases:["pl","pm"],lexemes:/[\w\.]+/,keywords:t,contains:i}}},{name:"pf",create:function(e){var t={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},a={className:"variable",begin:/<(?!\/)/,end:/>/};return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{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 routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|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,t,a]}}},{name:"php",create:function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},a={className:"meta",begin:/<\?(php)?|\?>/},r={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[a]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},a,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,r,s]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},r,s]}}},{name:"pony",create:function(e){var t={keyword:"actor addressof and as be break class compile_error compile_intrinsicconsume continue delegate digestof do else elseif embed end errorfor fun if ifdef in interface is isnt lambda let match new not objector 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"},a={className:"string",begin:'"""',end:'"""',relevance:10},r={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},s={className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},n={className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},i={begin:e.IDENT_RE+"'",relevance:0},l={className:"class",beginKeywords:"class actor",end:"$",contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE]},o={className:"function",beginKeywords:"new fun",end:"=>",contains:[e.TITLE_MODE,{begin:/\(/,end:/\)/,contains:[n,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:/:/,endsWithParent:!0,contains:[n]},e.C_LINE_COMMENT_MODE]};return{keywords:t,contains:[l,o,n,a,r,s,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},{name:"powershell",create:function(e){var t={begin:"`[\\s\\S]",relevance:0},a={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},r={className:"literal",begin:/\$(null|true|false)\b/},s={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[t,a,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},n={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},i={className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},l=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],
+contains:[i]});return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",built_in:"Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",nomarkup:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[t,e.NUMBER_MODE,s,n,r,a,l]}}},{name:"processing",create:function(e){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML 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 break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",title:"setup draw",built_in:"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"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"profile",create:function(e){return{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}]}}},{name:"prolog",create:function(e){var t={begin:/[a-z][A-Za-z0-9_]*/,relevance:0},a={className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},r={begin:/\(/,end:/\)/,relevance:0},s={begin:/\[/,end:/\]/},n={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},l={className:"string",begin:/0\'(\\\'|.)/},o={className:"string",begin:/0\'\\s/},c={begin:/:-/},d=[t,a,r,c,s,n,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,l,o,e.C_NUMBER_MODE];return r.contains=d,s.contains=d,{contains:d.concat([{begin:/\.$/}])}}},{name:"protobuf",create:function(e){return{keywords:{keyword:"package import option optional required repeated group",built_in:"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,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}}},{name:"puppet",create:function(e){var t={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"},a=e.COMMENT("#","$"),r="([A-Za-z_]|::)(\\w|::)*",s=e.inherit(e.TITLE_MODE,{begin:r}),n={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[a,n,i,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[s,a]},{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},{begin:/\{/,end:/\}/,keywords:t,relevance:0,contains:[i,a,{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},n]}],relevance:0}]}}},{name:"purebasic",create:function(e){var t={className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},a={className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"};return{aliases:["pb","pbi"],keywords:"And As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect Continue Data DataSection EndDataSection Debug DebugLevel Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndEnumeration EndIf EndImport EndInterface EndMacro EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration Extends FakeReturn For Next ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface Macro NewList Not Or ProcedureReturn Protected Prototype PrototypeC Read ReDim Repeat Until Restore Return Select Shared Static Step Structure StructureUnion Swap To Wend While With XIncludeFile XOr Procedure ProcedureC ProcedureCDLL ProcedureDLL Declare DeclareC DeclareCDLL DeclareDLL",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]},t,a]}}},{name:"python",create:function(e){var t={className:"meta",begin:/^(>>>|\.\.\.) /},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[t],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[t],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]},r={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},s={className:"params",begin:/\(/,end:/\)/,contains:["self",t,r,a]};return{aliases:["py","gyp"],keywords:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},illegal:/(<\/|->|\?)/,contains:[t,r,a,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def",relevance:10},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,s,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},{name:"q",create:function(e){var t={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"};return{aliases:["k","kdb"],keywords:t,lexemes:/(`?)[A-Za-z0-9_]+\b/,contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"qml",create:function(e){var t={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 var variant vector2d vector3d vector4dPromise"},a="[a-zA-Z_][a-zA-Z0-9\\._]*",r={className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},s={className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},n={className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:a,returnEnd:!1}},i={begin:a+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:a,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},l={begin:a+"\\s*{",end:"{",returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:a})]};return{aliases:["qt"],case_insensitive:!1,keywords:t,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:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},s,r,{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,i,l],illegal:/#/}}},{name:"r",create:function(e){var t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[e.HASH_COMMENT_MODE,{begin:t,lexemes:t,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}},{name:"rib",create:function(e){return{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:"</",contains:[e.HASH_COMMENT_MODE,e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}},{name:"roboconf",create:function(e){var t="[a-zA-Z-_][^\\n{]+\\{",a={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{aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+t,end:"}",keywords:"facet",contains:[a,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+t,end:"}",keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",a,e.HASH_COMMENT_MODE]},{begin:"^"+t,end:"}",contains:[a,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}},{name:"rsl",create:function(e){return{keywords:{keyword:"float color point normal vector matrix 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"},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"surface displacement light volume imager",end:"\\("},{beginKeywords:"illuminate illuminance gather",end:"\\("}]}}},{name:"ruby",create:function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},r={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},n=[e.COMMENT("#","$",{contains:[r]}),e.COMMENT("^\\=begin","^\\=end",{contains:[r],relevance:10}),e.COMMENT("^__END__","\\n$")],i={className:"subst",begin:"#\\{",end:"}",keywords:a},l={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},o={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},c=[l,s,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(n)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),o].concat(n)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[l,{begin:t}],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:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[s,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,i],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(n),relevance:0}].concat(n);i.contains=c,o.contains=c;var d="[>?]>",m="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",h=[{begin:/^\s*=>/,starts:{end:"$",contains:c}},{className:"meta",begin:"^("+d+"|"+m+"|"+u+")",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:n.concat(h).concat(c)}}},{name:"ruleslanguage",create:function(e){return{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+[a-zA-Z\\ \\.]*",relevance:0},{begin:"#[a-zA-Z\\ \\.]+"}]}]}}},{name:"rust",create:function(e){var t="([uif](8|16|32|64|size))?",a=e.inherit(e.C_BLOCK_COMMENT_MODE);a.contains.push("self");var r="alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default int i8 i16 i32 i64 isize uint u8 u32 u64 usize float f32 f64 str char bool",s="Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option Result SliceConcatExt String ToString Vec assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules!";return{aliases:["rs"],keywords:{keyword:r,literal:"true false Some None Ok Err",built_in:s},lexemes:e.IDENT_RE+"!?",illegal:"</",contains:[e.C_LINE_COMMENT_MODE,a,e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"string",variants:[{begin:/r(#*)".*?"\1(?!#)/},{begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],relevance:0},{className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE]
+},{className:"meta",begin:"#\\!?\\[",end:"\\]",contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"\\S"},{className:"class",beginKeywords:"trait enum struct",end:"{",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"},{begin:e.IDENT_RE+"::",keywords:{built_in:s}},{begin:"->"}]}}},{name:"scala",create:function(e){var t={className:"meta",begin:"@[A-Za-z]+"},a={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},r={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,a]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[a],relevance:10}]},s={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},n={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},i={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},l={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[n]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[n]},i]},o={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[i]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,s,n,o,l,e.C_NUMBER_MODE,t]}}},{name:"scheme",create:function(e){var t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",a="(\\-|\\+)?\\d+([./]\\d+)?",r=a+"[+\\-]"+a+"i",s={"builtin-name":"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-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? 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-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? 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?"},n={className:"meta",begin:"^#!",end:"$"},i={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},l={className:"number",variants:[{begin:a,relevance:0},{begin:r,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,c=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],d={begin:t,relevance:0},m={className:"symbol",begin:"'"+t},u={endsWithParent:!0,relevance:0},h={begin:/'/,contains:[{begin:"\\(",end:"\\)",contains:["self",i,o,l,d,m]}]},p={className:"name",begin:t,lexemes:t,keywords:s},g={begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[p,{begin:/\(/,end:/\)/,endsParent:!0,contains:[d]}]},b={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[g,p,u]};return u.contains=[i,l,o,d,m,h,b].concat(c),{illegal:/\S/,contains:[n,l,o,m,h,b].concat(c)}}},{name:"scilab",create:function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],lexemes:/%?\w+/,keywords:{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]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}},{name:"scss",create:function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",a={className:"variable",begin:"(\\$"+t+")\\b"},r={className:"number",begin:"#[0-9A-Fa-f]+"};({className:"attribute",begin:"[A-Z\\_\\.\\-]+",end:":",excludeEnd:!0,illegal:"[^\\s]",starts:{endsWithParent:!0,excludeEnd:!0,contains:[r,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"!important"}]}});return{case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},a,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{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:";",contains:[a,r,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,r,e.CSS_NUMBER_MODE,{begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}}},{name:"smali",create:function(e){var 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"],a=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],r=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["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("+r.join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+a.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}}},{name:"smalltalk",create:function(e){var t="[a-z][a-zA-Z0-9_]*",a={className:"string",begin:"\\$.{1}"},r={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{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,a,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"\\#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,a,e.C_NUMBER_MODE,r]}]}}},{name:"sml",create:function(e){return{aliases:["ml"],keywords:{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:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",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:/[-=]>/}]}}},{name:"sqf",create:function(e){var t=e.getLanguage("cpp").exports,a={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:"case catch default do else exit exitWith for forEach from if switch then throw to try while with",built_in:"or plus abs accTime acos action actionKeys actionKeysImages actionKeysNames actionKeysNamesArray actionName activateAddons activatedAddons activateKey addAction addBackpack addBackpackCargo addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats addMagazine addMagazine array addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler addMPEventHandler addMusicEventHandler addPrimaryWeaponItem addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem addSwitchableUnit addTeamMember addToRemainsCollector addUniform addVehicle addVest addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponPool addWeaponTurret agent agents AGLToASL aimedAtTarget aimPos airDensityRTD airportSide AISFinishHeal alive allControls allCurators allDead allDeadMen allDisplays allGroups allMapMarkers allMines allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage allowDammage allowFileOperations allowFleeing allowGetIn allPlayers allSites allTurrets allUnits allUnitsUAV allVariables ammo and animate animateDoor animationPhase animationState append armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines backpackSpaceFor behaviour benchmark binocular blufor boundingBox boundingBoxReal boundingCenter breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode 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 canFire canMove canSlingLoad canStand canUnloadInCombat captive captiveNum cbChecked cbSetChecked ceil cheatsEnabled checkAIFeature civilian className clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool closeDialog closeDisplay closeOverlay collapseObjectTree combatMode commandArtilleryFire commandChat commander commandFire commandFollow commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop commandTarget commandWatch comment commitOverlay compile compileFinal completedFSM composeText configClasses configFile configHierarchy configName configProperties configSourceMod configSourceModList connectTerminalToUAV controlNull controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count countEnemy countFriendly countSide countType countUnknown createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker createMarkerLocal createMenu createMine createMissionDisplay createSimpleTask createSite createSoundSource createTask createTeam createTrigger createUnit createUnit array createVehicle createVehicle array createVehicleCrew createVehicleLocal crew ctrlActivate ctrlAddEventHandler ctrlAutoScrollDelay ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ctrlParent ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ctrlScale ctrlSetActiveColor ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontP ctrlSetFontPB ctrlSetForegroundColor ctrlSetModel ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPosition ctrlSetScale ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ctrlType ctrlVisible curatorAddons curatorCamera curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected curatorWaypointCost currentChannel currentCommand currentMagazine currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorTarget customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime deActivateKey debriefingText debugFSM debugLog deg deleteAt deleteCenter deleteCollection deleteEditorObject deleteGroup deleteIdentity deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines diag activeMissionFSMs diag activeSQFScripts diag activeSQSScripts diag captureFrame diag captureSlowFrame diag fps diag fpsMin diag frameNo diag log diag logSlowFrame diag tickTime dialog diarySubjectExists didJIP didJIPOwner difficulty difficultyEnabled difficultyEnabledRTD direction directSay disableAI disableCollisionWith disableConversation disableDebriefingStats disableSerialization disableTIEquipment disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayNull displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam distance distance2D distanceSqr distributionRegion doArtilleryFire doFire doFollow doFSM doGetOut doMove doorPhase doStop doTarget doWatch drawArrow drawEllipse drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawRectangle driver drop east echo editObject editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature enableAttack enableCamShake enableCaustics enableCollisionWith enableCopilot enableDebriefingStats enableDiagLegend enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights enableIRLasers enableMimics enablePersonTurret enableRadio enableReload enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation enableSimulationGlobal enableTeamSwitch enableUAVConnectability enableUAVWaypoints endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack everyContainer exec execEditorScript execFSM execVM exp expectedDestination eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition findEmptyPositionReady findNearestEnemy finishMissionInit finite fire fireAtTarget firstBackpack flag flagOwner fleeing floor flyInHeight fog fogForecast fogParams forceAddUniform forceEnd forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange forEachMember forEachMemberAgent forEachMemberTeam format formation formationDirection formationLeader formationMembers formationPosition formationTask formatText formLeader freeLook fromEditor fuel fullCrew gearSlotAmmoCount gearSlotData getAllHitPointsDamage getAmmoCargo getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining getBurningValue getCargoIndex getCenterOfMass getClientState getConnectedUAV getDammage getDescription getDir getDirVisual getDLCs getEditorCamera getEditorMode getEditorObjectScope getElevationOffset getFatigue getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos getMarkerSize getMarkerType getMass getModelInfo getNumber getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs getPlayerChannel getPlayerUID getPos getPosASL getPosASLVisual getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getRepairCargo getResolution getShadowDistance getSlingLoad getSpeed getSuppression getTerrainHeightASL getText getVariable getWeaponCargo getWPPos glanceAt globalChat globalRadio goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId groupOwner groupRadio groupSelectedUnits groupSelectUnit grpNull gunner gusts halt handgunItems handgunMagazine handgunWeapon handsHit hasInterface hasWeapon hcAllGroups hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hint hintC hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups importance in incapacitatedState independent inflame inflamed inGameUISetEventHandler inheritsFrom initAmbientLife inputAction inRangeOfArtillery insertEditorObject intersect isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDedicated isDLCAvailable isEngineOn isEqualTo isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn isKeyActive isKindOf isLightOn isLocalized isManualFire isMarkedForCollection isMultiplayer isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad isPipEnabled isPlayer isRealTime isServer isShowing3DIcons isSteamMission isStreamFriendlyUIEnabled isText isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUniformAllowed isWalking isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language laserTarget lbAdd lbClear lbColor lbCurSel lbData lbDelete lbIsSelected lbPicture lbSelection lbSetColor lbSetCurSel lbSetData lbSetPicture lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetTooltip lbSetValue lbSize lbSort lbSortByValue lbText lbValue leader leaderboardDeInit leaderboardGetRows leaderboardInit leaveVehicle libraryCredits libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed linearConversion lineBreak lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith linkItem list listObjects ln lnbAddArray lnbAddColumn lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData lnbSetPicture lnbSetText lnbSetValue lnbSize lnbText lnbValue load loadAbs loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform loadVest local localize locationNull locationPosition lock lockCameraTo lockCargo lockDriver locked lockedCargo lockedDriver lockedTurret lockTurret lockWP log logEntities lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText markerType max members min mineActive mineDetectedBy missionConfigFile missionName missionNamespace missionStart mod modelToWorld modelToWorldVisual moonIntensity morale move moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name name location nameSound nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing nearestObject nearestObjects nearObjects nearObjectsReady nearRoads nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex nextWeatherChange nMenuItems not numberToDate objectCurators objectFromNetId objectParent objNull objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch openCuratorInterface openMap openYoutubeVideo opfor or orderGetIn overcast overcastForecast owner param params parseNumber parseText parsingNamespace particlesQuality pi pickWeaponPool pitch playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ppEffectForceInNVG precision preloadCamera preloadObject preloadSound preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon primaryWeaponItems primaryWeaponMagazine priority private processDiaryLink productVersion profileName profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition publicVariable publicVariableClient publicVariableServer pushBack putWeaponPool queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl remoteExec remoteExecCall removeAction removeAllActions removeAllAssignedItems removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers removeAllMusicEventHandlers removeAllPrimaryWeaponItems removeAllWeapons removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler removeMusicEventHandler removePrimaryWeaponItem removeSecondaryWeaponItem removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon removeWeaponGlobal removeWeaponTurret requiredVersion resetCamShake resetSubgroupDirection resistance resize resources respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ropeAttachTo ropeCreate ropeCut ropeEndPosition ropeLength ropes ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY saveGame saveIdentity saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D scopeName score scoreSide screenToWorld scriptDone scriptName scriptNull scudState secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces selectDiarySubject selectedEditorObjects selectEditorObject selectionPosition selectLeader selectNoPlayer selectPlayer selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime set setAccTime setAirportSide setAmmo setAmmoCargo setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour setBleedingRemaining setCameraInterest setCamShakeDefParams setCamShakeParams setCamUseTi setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination setDetailMapBlendPars setDir setDirection setDrawIcon setDropInterval setEditorMode setEditorObjectScope setEffectCondition setFace setFaceAnimation setFatigue setFlagOwner setFlagSide setFlagTexture setFog setFog array setFormation setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setLeader setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound setObjectArguments setObjectMaterial setObjectProxy setObjectTexture setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom setPilotLight setPiPEffect setPitch setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW setPosATL setPosition setPosWorld setRadioMsg setRain setRainbow setRandomLip setRank setRectangular setRepairCargo setShadowDistance setSide setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimulWeatherLayers setSize setSkill setSkill array setSlingLoad setSoundEffect setSpeaker setSpeech setSpeedMode setStatValue setSuppression setSystemOfUnits setTargetAge setTaskResult setTaskState setTerrainGrid setText setTimeMultiplier setTitleEffect setTriggerActivation setTriggerArea setTriggerStatements setTriggerText setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitPos setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnloadInCombat setUserActionText setVariable setVectorDir setVectorDirAndUp setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleId setVehicleLock setVehiclePosition setVehicleTiPars setVehicleVarName setVelocity setVelocityTransformation setViewDistance setVisibleIfTreeCollapsed setWaves setWaypointBehaviour setWaypointCombatMode setWaypointCompletionRadius setWaypointDescription setWaypointFormation setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce setWindStr setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap shownPad shownRadio shownUAVFeed shownWarrant shownWatch showPad showRadio showSubtitles showUAVFeed showWarrant showWatch showWaypoint side sideChat sideEnemy sideFriendly sideLogic sideRadio sideUnknown 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 speed speedMode splitString sqrt squadParams stance startLoadingScreen step stop stopped str sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth switchableUnits switchAction switchCamera switchGesture switchLight switchMove synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint synchronizeWaypoint trigger systemChat systemOfUnits tan targetKnowledge targetsAggregate targetsQuery taskChildren taskCompleted taskDescription taskDestination taskHint taskNull taskParent taskResult taskState teamMember teamMemberNull teamName teams teamSwitch teamSwitchEnabled teamType terminate terrainIntersect terrainIntersectASL text text location textLog textLogFormat tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toLower toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle triggerAttachObject triggerAttachVehicle triggerStatements triggerText triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear tvCollapse tvCount tvCurSel tvData tvDelete tvExpand tvPicture tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetTooltip tvSetValue tvSort tvSortByValue tvText tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems uniformMagazines unitAddons unitBackpack unitPos unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAudioTimeForMoves vectorAdd vectorCos vectorCrossProduct vectorDiff vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo vectorMagnitude vectorMagnitudeSqr vectorMultiply vectorNormalized vectorUp vectorUpVisual vehicle vehicleChat vehicleRadio vehicles vehicleVarName velocity velocityModelSpace verifySignature vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap visiblePosition visiblePositionASL visibleWatch waitUntil waves waypointAttachedObject waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour waypointCombatMode waypointCompletionRadius waypointDescription waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible weaponAccessories weaponCargo weaponDirection weaponLowered weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD west WFSideText wind windDir windStr wingsForcesRTD worldName worldSize worldToModel worldToModelVisual worldToScreen _forEachIndex _this _x",
+literal:"true false nil"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,a,t.preprocessor],illegal:/#/}}},{name:"sql",create:function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}}},{name:"stan",create:function(e){return{contains:[e.HASH_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE,lexemes:e.UNDERSCORE_IDENT_RE,keywords:{name:"for in while repeat until if then else",symbol:"bernoulli bernoulli_logit binomial binomial_logit beta_binomial hypergeometric categorical categorical_logit ordered_logistic neg_binomial neg_binomial_2 neg_binomial_2_log poisson poisson_log multinomial normal exp_mod_normal skew_normal student_t cauchy double_exponential logistic gumbel lognormal chi_square inv_chi_square scaled_inv_chi_square exponential inv_gamma weibull frechet rayleigh wiener pareto pareto_type_2 von_mises uniform multi_normal multi_normal_prec multi_normal_cholesky multi_gp multi_gp_cholesky multi_student_t gaussian_dlm_obs dirichlet lkj_corr lkj_corr_cholesky wishart inv_wishart","selector-tag":"int real vector simplex unit_vector ordered positive_ordered row_vector matrix cholesky_factor_corr cholesky_factor_cov corr_matrix cov_matrix",title:"functions model data parameters quantities transformed generated",literal:"true false"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0}]}}},{name:"stata",create:function(e){return{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 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 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 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 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 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 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 meqparse mer merg merge 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 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_]+\}?/},{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]}}},{name:"step21",create:function(e){var t="[A-Z_][A-Z0-9_.]*",a={keyword:"HEADER ENDSEC DATA"},r={className:"meta",begin:"ISO-10303-21;",relevance:10},s={className:"meta",begin:"END-ISO-10303-21;",relevance:10};return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:t,keywords:a,contains:[r,s,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"}]}]}}},{name:"stylus",create:function(e){var t={className:"variable",begin:"\\$"+e.IDENT_RE},a={className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},r=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],s=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],n=["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","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"],i="[\\.\\s\\n\\[\\:,]",l=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","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-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","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","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-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],o=["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];
+return{aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+o.join("|")+")",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+i,returnBegin:!0,contains:[{className:"selector-class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+i,returnBegin:!0,contains:[{className:"selector-id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+n.join("|")+")"+i,returnBegin:!0,contains:[{className:"selector-tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"&?:?:\\b("+s.join("|")+")"+i},{begin:"@("+r.join("|")+")\\b"},t,e.CSS_NUMBER_MODE,e.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:[a,t,e.APOS_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+l.reverse().join("|")+")\\b",starts:{end:/;|$/,contains:[a,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/\./,relevance:0}}]}}},{name:"subunit",create:function(e){var t={className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},a={className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},r={className:"string",begin:"(\\+|-)\\d+"},s={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:"}]};return{case_insensitive:!0,contains:[t,a,r,s]}}},{name:"swift",create:function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},n={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},i=e.inherit(e.QUOTE_STRING_MODE,{contains:[s,e.BACKSLASH_ESCAPE]});return s.contains=[n],{keywords:t,contains:[i,e.C_LINE_COMMENT_MODE,r,a,n,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin:/</,end:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",n,i,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"meta",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,r]}]}}},{name:"taggerscript",create:function(e){var t={className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\(/,end:/\)/,contains:["self",{begin:/\\./}]}],relevance:10},a={className:"keyword",begin:/\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,end:/\(/,excludeEnd:!0},r={className:"variable",begin:/%[_a-zA-Z0-9:]*/,end:"%"},s={className:"symbol",begin:/\\./};return{contains:[t,a,r,s]}}},{name:"tap",create:function(e){return{case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:"(s+)?---$",end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}},{name:"tcl",create:function(e){return{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}]},{excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]}]}}},{name:"tex",create:function(e){var t={className:"tag",begin:/\\/,relevance:0,contains:[{className:"name",variants:[{begin:/[a-zA-Zа-яА-я]+[*]?/},{begin:/[^a-zA-Zа-яА-я0-9]/}],starts:{endsWithParent:!0,relevance:0,contains:[{className:"string",variants:[{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/}]},{begin:/\s*=\s*/,endsWithParent:!0,relevance:0,contains:[{className:"number",begin:/-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{contains:[t,{className:"formula",contains:[t],relevance:0,variants:[{begin:/\$\$/,end:/\$\$/},{begin:/\$/,end:/\$/}]},e.COMMENT("%","$",{relevance:0})]}}},{name:"thrift",create:function(e){var t="bool byte i16 i32 i64 double string binary";return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in: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*<",end:">",keywords:t,contains:["self"]}]}}},{name:"tp",create:function(e){var t={className:"number",begin:"[1-9][0-9]*",relevance:0},a={className:"symbol",begin:":[^\\]]+"},r={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,a]},s={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,a]};return{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:[r,s,{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_]+"}]}}},{name:"twig",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a="attribute block constant cycle date dump include max min parent random range source template_from_string",r={beginKeywords:a,keywords:{name:a},relevance:0,contains:[t]},s={begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[r]},n="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return n=n+" "+n.split(" ").map(function(e){return"end"+e}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#}/),{className:"template-tag",begin:/\{%/,end:/%}/,contains:[{className:"name",begin:/\w+/,keywords:n,starts:{endsWithParent:!0,contains:[s,r],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/}}/,contains:["self",s,r]}]}}},{name:"typescript",create:function(e){var t={keyword:"in 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 class public private protected get set super static implements enum export import declare type namespace abstract",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 any number boolean string void"};return{aliases:["ts"],keywords:t,contains:[{className:"meta",begin:/^\s*['"]use strict['"]/},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],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0}]}}},{name:"vala",create:function(e){return{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:"$",relevance:2}]}}},{name:"vbnet",create:function(e){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as 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 is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem 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 xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT("'","$",{returnBegin:!0,contains:[{className:"doctag",begin:"'''|<!--|-->",contains:[e.PHRASAL_WORDS_MODE]},{className:"doctag",begin:"</?",end:">",contains:[e.PHRASAL_WORDS_MODE]}]}),e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end region externalsource"}}]}}},{name:"vbscript-html",create:function(e){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}},{name:"vbscript",create:function(e){return{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:"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 scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}},{name:"verilog",create:function(e){var t={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"};return{aliases:["v","sv","svh"],case_insensitive:!1,keywords:t,lexemes:/[\w\$]+/,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"\\b((\\d+'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\B(('(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\b([0-9_])+",relevance:0}]},{className:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{className:"meta",begin:"`",end:"$",keywords:{"meta-keyword":"define __FILE__ __LINE__ begin_keywords celldefine default_nettype define else elsif end_keywords endcelldefine endif ifdef ifndef include line nounconnected_drive pragma resetall timescale unconnected_drive undef undefineall"},relevance:0}]}}},{name:"vhdl",create:function(e){var t="\\d(_|\\d)*",a="[eE][-+]?"+t,r=t+"(\\."+t+")?("+a+")?",s="\\w+",n=t+"#"+s+"(\\."+s+")?#("+a+")?",i="\\b("+n+"|"+r+")";return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert 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 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 vmode vprop vunit wait when while with xnor xor",built_in:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:i,relevance:0},{className:"literal",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]}]}}},{name:"vim",create:function(e){return{lexemes:/[!#@\w]+/,keywords:{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,e.APOS_STRING_MODE,{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}},{name:"x86asm",create:function(e){return{case_insensitive:!0,lexemes:"[.%]?"+e.IDENT_RE,keywords:{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_-]+/}]}}},{name:"xl",create:function(e){var t="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",a={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 "+t},r={className:"string",begin:'"',end:'"',illegal:"\\n"},s={className:"string",begin:"'",end:"'",illegal:"\\n"},n={className:"string",begin:"<<",end:">>"},i={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},l={beginKeywords:"import",end:"$",keywords:a,contains:[r]},o={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:a}})]};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,s,n,o,l,i,e.NUMBER_MODE]}}},{name:"xml",create:function(e){var t="[A-Za-z0-9\\._:-]+",a={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:t,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("<!--","-->",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{name:"style"},contains:[a],starts:{end:"</style>",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{name:"script"},contains:[a],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},a]}]}}},{name:"xquery",create:function(e){var t="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",a="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",r={begin:/\$[a-zA-Z0-9\-]+/},s={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},n={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},i={className:"meta",begin:"%\\w+"},l={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doctag",begin:"@\\w+"}]},o={begin:"{",end:"}"},c=[r,n,s,l,i,o];return o.contains=c,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:t,literal:a},contains:c}}},{name:"yaml",create:function(e){var t={literal:"{ } true false yes no Yes No True False null"},a="^[ \\-]*",r="[a-zA-Z_][\\w\\-]*",s={className:"attr",variants:[{begin:a+r+":"},{begin:a+'"'+r+'":'},{begin:a+"'"+r+"':"}]},n={className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]},i={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}],contains:[e.BACKSLASH_ESCAPE,n]};return{case_insensitive:!0,aliases:["yml","YAML","yaml"],contains:[s,{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>] *$",returnEnd:!0,contains:i.contains,end:s.variants[0].begin},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!!"+e.UNDERSCORE_IDENT_RE},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"^ *-",relevance:0},i,e.HASH_COMMENT_MODE,e.C_NUMBER_MODE],keywords:t}}},{name:"zephir",create:function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{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",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_BLOCK_COMMENT_MODE,t,a]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},t,a]}}}],n=0;n<s.length;++n)r.registerLanguage(s[n].name,s[n].create);t.exports={styles:{agate:".hljs-agate{/*! * Agate by Taufik Nurrohman <https://github.com/tovic> * ---------------------------------------------------- * * #ade5fc * #a2fca2 * #c6b4f0 * #d36363 * #fcc28c * #fc9b9b * #ffa * #fff * #333 * #62c8f3 * #888 * */}.hljs-agate .hljs{display:block;overflow-x:auto;padding:.5em;background:#333;color:white}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic}.hljs-agate .hljs-tag{color:#62c8f3}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0}.hljs-agate .hljs-meta{color:#fc9b9b}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333}.hljs-agate .hljs a{color:inherit}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline}",androidstudio:".hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:.5em}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080}.hljs-androidstudio .hljs-meta{color:#bbb529}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a}.hljs-androidstudio .hljs-emphasis{font-style:italic}.hljs-androidstudio .hljs-strong{font-weight:bold}","arduino-light":".hljs-arduino-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFFF}.hljs-arduino-light .hljs,.hljs-arduino-light .hljs-subst{color:#434f54}.hljs-arduino-light .hljs-keyword,.hljs-arduino-light .hljs-attribute,.hljs-arduino-light .hljs-selector-tag,.hljs-arduino-light .hljs-doctag,.hljs-arduino-light .hljs-name{color:#00979D}.hljs-arduino-light .hljs-built_in,.hljs-arduino-light .hljs-literal,.hljs-arduino-light .hljs-bullet,.hljs-arduino-light .hljs-code,.hljs-arduino-light .hljs-addition{color:#D35400}.hljs-arduino-light .hljs-regexp,.hljs-arduino-light .hljs-symbol,.hljs-arduino-light .hljs-variable,.hljs-arduino-light .hljs-template-variable,.hljs-arduino-light .hljs-link,.hljs-arduino-light .hljs-selector-attr,.hljs-arduino-light .hljs-selector-pseudo{color:#00979D}.hljs-arduino-light .hljs-type,.hljs-arduino-light .hljs-string,.hljs-arduino-light .hljs-selector-id,.hljs-arduino-light .hljs-selector-class,.hljs-arduino-light .hljs-quote,.hljs-arduino-light .hljs-template-tag,.hljs-arduino-light .hljs-deletion{color:#005C5F}.hljs-arduino-light .hljs-title,.hljs-arduino-light .hljs-section{color:#880000;font-weight:bold}.hljs-arduino-light .hljs-comment{color:rgba(149,165,166,0.8)}.hljs-arduino-light .hljs-meta-keyword{color:#728E00}.hljs-arduino-light .hljs-meta{color:#728E00;color:#434f54}.hljs-arduino-light .hljs-emphasis{font-style:italic}.hljs-arduino-light .hljs-strong{font-weight:bold}.hljs-arduino-light .hljs-function{color:#728E00}.hljs-arduino-light .hljs-number{color:#8A7B52}",arta:".hljs-arta .hljs{display:block;overflow-x:auto;padding:.5em;background:#222}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa}.hljs-arta .hljs-section{color:#fff}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold}.hljs-arta .hljs-emphasis{font-style:italic}",ascetic:".hljs-ascetic .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold}.hljs-ascetic .hljs-emphasis{font-style:italic}","atelier-cave-dark":".hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:.5em}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold}","atelier-cave-light":".hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:.5em}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic}.hljs-atelier-cave-light .hljs-strong{font-weight:bold}","atelier-dune-dark":".hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:.5em}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold}","atelier-dune-light":".hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:.5em}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic}.hljs-atelier-dune-light .hljs-strong{font-weight:bold}","atelier-estuary-dark":".hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:.5em}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold}","atelier-estuary-light":".hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:.5em}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold}","atelier-forest-dark":".hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:.5em}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold}","atelier-forest-light":".hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:.5em}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic}.hljs-atelier-forest-light .hljs-strong{font-weight:bold}","atelier-heath-dark":".hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:.5em}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold}","atelier-heath-light":".hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:.5em}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic}.hljs-atelier-heath-light .hljs-strong{font-weight:bold}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:.5em}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold}",
+"atelier-lakeside-light":".hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:.5em}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold}","atelier-plateau-dark":".hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:.5em}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold}","atelier-plateau-light":".hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:.5em}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold}","atelier-savanna-dark":".hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:.5em}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold}","atelier-savanna-light":".hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:.5em}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold}","atelier-seaside-dark":".hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:.5em}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold}","atelier-seaside-light":".hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:.5em}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:.5em}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:.5em}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold}","atom-one-dark":".hljs-atom-one-dark .hljs{display:block;overflow-x:auto;padding:.5em;color:#abb2bf;background:#282c34}.hljs-atom-one-dark .hljs-comment,.hljs-atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.hljs-atom-one-dark .hljs-doctag,.hljs-atom-one-dark .hljs-keyword,.hljs-atom-one-dark .hljs-formula{color:#c678dd}.hljs-atom-one-dark .hljs-section,.hljs-atom-one-dark .hljs-name,.hljs-atom-one-dark .hljs-selector-tag,.hljs-atom-one-dark .hljs-deletion,.hljs-atom-one-dark .hljs-subst{color:#e06c75}.hljs-atom-one-dark .hljs-literal{color:#56b6c2}.hljs-atom-one-dark .hljs-string,.hljs-atom-one-dark .hljs-regexp,.hljs-atom-one-dark .hljs-addition,.hljs-atom-one-dark .hljs-attribute,.hljs-atom-one-dark .hljs-meta-string{color:#98c379}.hljs-atom-one-dark .hljs-built_in,.hljs-atom-one-dark .hljs-class .hljs-title{color:#e6c07b}.hljs-atom-one-dark .hljs-variable,.hljs-atom-one-dark .hljs-template-variable,.hljs-atom-one-dark .hljs-type,.hljs-atom-one-dark .hljs-selector-class,.hljs-atom-one-dark .hljs-selector-attr,.hljs-atom-one-dark .hljs-selector-pseudo,.hljs-atom-one-dark .hljs-number{color:#d19a66}.hljs-atom-one-dark .hljs-symbol,.hljs-atom-one-dark .hljs-bullet,.hljs-atom-one-dark .hljs-link,.hljs-atom-one-dark .hljs-meta,.hljs-atom-one-dark .hljs-selector-id,.hljs-atom-one-dark .hljs-title{color:#61aeee}.hljs-atom-one-dark .hljs-emphasis{font-style:italic}.hljs-atom-one-dark .hljs-strong{font-weight:bold}.hljs-atom-one-dark .hljs-link{text-decoration:underline}","atom-one-light":".hljs-atom-one-light .hljs{display:block;overflow-x:auto;padding:.5em;color:#383a42;background:#fafafa}.hljs-atom-one-light .hljs-comment,.hljs-atom-one-light .hljs-quote{color:#a0a1a7;font-style:italic}.hljs-atom-one-light .hljs-doctag,.hljs-atom-one-light .hljs-keyword,.hljs-atom-one-light .hljs-formula{color:#a626a4}.hljs-atom-one-light .hljs-section,.hljs-atom-one-light .hljs-name,.hljs-atom-one-light .hljs-selector-tag,.hljs-atom-one-light .hljs-deletion,.hljs-atom-one-light .hljs-subst{color:#e45649}.hljs-atom-one-light .hljs-literal{color:#0184bb}.hljs-atom-one-light .hljs-string,.hljs-atom-one-light .hljs-regexp,.hljs-atom-one-light .hljs-addition,.hljs-atom-one-light .hljs-attribute,.hljs-atom-one-light .hljs-meta-string{color:#50a14f}.hljs-atom-one-light .hljs-built_in,.hljs-atom-one-light .hljs-class .hljs-title{color:#c18401}.hljs-atom-one-light .hljs-variable,.hljs-atom-one-light .hljs-template-variable,.hljs-atom-one-light .hljs-type,.hljs-atom-one-light .hljs-selector-class,.hljs-atom-one-light .hljs-selector-attr,.hljs-atom-one-light .hljs-selector-pseudo,.hljs-atom-one-light .hljs-number{color:#986801}.hljs-atom-one-light .hljs-symbol,.hljs-atom-one-light .hljs-bullet,.hljs-atom-one-light .hljs-link,.hljs-atom-one-light .hljs-meta,.hljs-atom-one-light .hljs-selector-id,.hljs-atom-one-light .hljs-title{color:#4078f2}.hljs-atom-one-light .hljs-emphasis{font-style:italic}.hljs-atom-one-light .hljs-strong{font-weight:bold}.hljs-atom-one-light .hljs-link{text-decoration:underline}","brown-paper":".hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:.5em;background:#b7a68e url(brown-papersq.png)}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold}.hljs-brown-paper .hljs-emphasis{font-style:italic}","codepen-embed":".hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:.5em;background:#222;color:#fff}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c}.hljs-codepen-embed .hljs-emphasis{font-style:italic}.hljs-codepen-embed .hljs-strong{font-weight:bold}","color-brewer":".hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd}.hljs-color-brewer .hljs-emphasis{font-style:italic}.hljs-color-brewer .hljs-attribute{color:#e6550d}",darcula:".hljs-darcula .hljs{display:block;overflow-x:auto;padding:.5em;background:#2b2b2b}.hljs-darcula .hljs{color:#bababa}.hljs-darcula .hljs-strong,.hljs-darcula .hljs-emphasis{color:#a8a8a2}.hljs-darcula .hljs-bullet,.hljs-darcula .hljs-quote,.hljs-darcula .hljs-link,.hljs-darcula .hljs-number,.hljs-darcula .hljs-regexp,.hljs-darcula .hljs-literal{color:#6896ba}.hljs-darcula .hljs-code,.hljs-darcula .hljs-selector-class{color:#a6e22e}.hljs-darcula .hljs-emphasis{font-style:italic}.hljs-darcula .hljs-keyword,.hljs-darcula .hljs-selector-tag,.hljs-darcula .hljs-section,.hljs-darcula .hljs-attribute,.hljs-darcula .hljs-name,.hljs-darcula .hljs-variable{color:#cb7832}.hljs-darcula .hljs-params{color:#b9b9b9}.hljs-darcula .hljs-string{color:#6a8759}.hljs-darcula .hljs-subst,.hljs-darcula .hljs-type,.hljs-darcula .hljs-built_in,.hljs-darcula .hljs-builtin-name,.hljs-darcula .hljs-symbol,.hljs-darcula .hljs-selector-id,.hljs-darcula .hljs-selector-attr,.hljs-darcula .hljs-selector-pseudo,.hljs-darcula .hljs-template-tag,.hljs-darcula .hljs-template-variable,.hljs-darcula .hljs-addition{color:#e0c46c}.hljs-darcula .hljs-comment,.hljs-darcula .hljs-deletion,.hljs-darcula .hljs-meta{color:#7f7f7f}",dark:".hljs-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#444}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold}.hljs-dark .hljs-emphasis{font-style:italic}",darkula:".hljs-darkula{@import url('darcula.css');}",default:".hljs-default .hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444}.hljs-default .hljs-comment{color:#888888}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060}.hljs-default .hljs-literal{color:#78A960}.hljs-default .hljs-built_in,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#397300}.hljs-default .hljs-meta{color:#1f7199}.hljs-default .hljs-meta-string{color:#4d99bf}.hljs-default .hljs-emphasis{font-style:italic}.hljs-default .hljs-strong{font-weight:bold}",docco:".hljs-docco .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#f8f8ff}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121}.hljs-docco .hljs-number{color:#40a070}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d}.hljs-docco .hljs-params{color:#00f}.hljs-docco .hljs-title{color:#458;font-weight:bold}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3}.hljs-docco .hljs-meta{color:#999;font-weight:bold}.hljs-docco .hljs-deletion{background:#fdd}.hljs-docco .hljs-addition{background:#dfd}.hljs-docco .hljs-emphasis{font-style:italic}.hljs-docco .hljs-strong{font-weight:bold}",dracula:".hljs-dracula .hljs{display:block;overflow-x:auto;padding:.5em;background:#282a36}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-section,.hljs-dracula .hljs-link{color:#8be9fd}.hljs-dracula .hljs-function .hljs-keyword{color:#ff79c6}.hljs-dracula .hljs,.hljs-dracula .hljs-subst{color:#f8f8f2}.hljs-dracula .hljs-string,.hljs-dracula .hljs-title,.hljs-dracula .hljs-name,.hljs-dracula .hljs-type,.hljs-dracula .hljs-attribute,.hljs-dracula .hljs-symbol,.hljs-dracula .hljs-bullet,.hljs-dracula .hljs-addition,.hljs-dracula .hljs-variable,.hljs-dracula .hljs-template-tag,.hljs-dracula .hljs-template-variable{color:#f1fa8c}.hljs-dracula .hljs-comment,.hljs-dracula .hljs-quote,.hljs-dracula .hljs-deletion,.hljs-dracula .hljs-meta{color:#6272a4}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-title,.hljs-dracula .hljs-section,.hljs-dracula .hljs-doctag,.hljs-dracula .hljs-type,.hljs-dracula .hljs-name,.hljs-dracula .hljs-strong{font-weight:bold}.hljs-dracula .hljs-emphasis{font-style:italic}",far:".hljs-far .hljs{display:block;overflow-x:auto;padding:.5em;background:#000080}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0}.hljs-far .hljs-meta{color:#008080}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold}.hljs-far .hljs-emphasis{font-style:italic}",foundation:".hljs-foundation .hljs{display:block;overflow-x:auto;padding:.5em;background:#eee;color:black}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070}.hljs-foundation .hljs-emphasis{font-style:italic}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14}.hljs-foundation .hljs-strong{font-weight:bold}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699}.hljs-foundation .hljs-bullet{color:#997700}.hljs-foundation .hljs-meta{color:#3344bb}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088}.hljs-foundation .hljs-symbol{color:#990073}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700}","github-gist":".hljs-github-gist .hljs{display:block;background:white;padding:.5em;color:#333333;overflow-x:auto}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896}.hljs-github-gist .hljs-string,.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#a71d5d}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c}.hljs-github-gist .hljs-tag{color:#333333}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#795da3}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-github-gist .hljs-link{text-decoration:underline}",github:".hljs-github .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold}.hljs-github .hljs-subst{font-weight:normal}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3}.hljs-github .hljs-meta{color:#999;font-weight:bold}.hljs-github .hljs-deletion{background:#fdd}.hljs-github .hljs-addition{background:#dfd}.hljs-github .hljs-emphasis{font-style:italic}.hljs-github .hljs-strong{font-weight:bold}",googlecode:".hljs-googlecode .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9B703F}.hljs-googlecode .hljs-addition{background-color:#baeeba}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold}.hljs-googlecode .hljs-emphasis{font-style:italic}",
+grayscale:".hljs-grayscale .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#fff}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold}.hljs-grayscale .hljs-subst{font-weight:normal}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold}.hljs-grayscale .hljs-tag{color:#333}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-emphasis{font-style:italic}.hljs-grayscale .hljs-strong{font-weight:bold}","gruvbox-dark":".hljs-gruvbox-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#282828}.hljs-gruvbox-dark .hljs,.hljs-gruvbox-dark .hljs-subst{color:#ebdbb2}.hljs-gruvbox-dark .hljs-deletion,.hljs-gruvbox-dark .hljs-formula,.hljs-gruvbox-dark .hljs-keyword,.hljs-gruvbox-dark .hljs-link,.hljs-gruvbox-dark .hljs-selector-tag{color:#fb4934}.hljs-gruvbox-dark .hljs-built_in,.hljs-gruvbox-dark .hljs-emphasis,.hljs-gruvbox-dark .hljs-name,.hljs-gruvbox-dark .hljs-quote,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-title,.hljs-gruvbox-dark .hljs-variable{color:#83a598}.hljs-gruvbox-dark .hljs-attr,.hljs-gruvbox-dark .hljs-params,.hljs-gruvbox-dark .hljs-template-tag,.hljs-gruvbox-dark .hljs-type{color:#fabd2f}.hljs-gruvbox-dark .hljs-builtin-name,.hljs-gruvbox-dark .hljs-doctag,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#8f3f71}.hljs-gruvbox-dark .hljs-code,.hljs-gruvbox-dark .hljs-meta,.hljs-gruvbox-dark .hljs-regexp,.hljs-gruvbox-dark .hljs-selector-id,.hljs-gruvbox-dark .hljs-template-variable{color:#fe8019}.hljs-gruvbox-dark .hljs-addition,.hljs-gruvbox-dark .hljs-meta-string,.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-selector-attr,.hljs-gruvbox-dark .hljs-selector-class,.hljs-gruvbox-dark .hljs-string,.hljs-gruvbox-dark .hljs-symbol{color:#b8bb26}.hljs-gruvbox-dark .hljs-attribute,.hljs-gruvbox-dark .hljs-bullet,.hljs-gruvbox-dark .hljs-class,.hljs-gruvbox-dark .hljs-function,.hljs-gruvbox-dark .hljs-function .hljs-keyword,.hljs-gruvbox-dark .hljs-meta-keyword,.hljs-gruvbox-dark .hljs-selector-pseudo,.hljs-gruvbox-dark .hljs-tag{color:#8ec07c}.hljs-gruvbox-dark .hljs-comment{color:#928374}.hljs-gruvbox-dark .hljs-link_label,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#d3869b}.hljs-gruvbox-dark .hljs-comment,.hljs-gruvbox-dark .hljs-emphasis{font-style:italic}.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-tag{font-weight:bold}","gruvbox-light":".hljs-gruvbox-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fbf1c7}.hljs-gruvbox-light .hljs,.hljs-gruvbox-light .hljs-subst{color:#3c3836}.hljs-gruvbox-light .hljs-deletion,.hljs-gruvbox-light .hljs-formula,.hljs-gruvbox-light .hljs-keyword,.hljs-gruvbox-light .hljs-link,.hljs-gruvbox-light .hljs-selector-tag{color:#9d0006}.hljs-gruvbox-light .hljs-built_in,.hljs-gruvbox-light .hljs-emphasis,.hljs-gruvbox-light .hljs-name,.hljs-gruvbox-light .hljs-quote,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-title,.hljs-gruvbox-light .hljs-variable{color:#076678}.hljs-gruvbox-light .hljs-attr,.hljs-gruvbox-light .hljs-params,.hljs-gruvbox-light .hljs-template-tag,.hljs-gruvbox-light .hljs-type{color:#b57614}.hljs-gruvbox-light .hljs-builtin-name,.hljs-gruvbox-light .hljs-doctag,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-code,.hljs-gruvbox-light .hljs-meta,.hljs-gruvbox-light .hljs-regexp,.hljs-gruvbox-light .hljs-selector-id,.hljs-gruvbox-light .hljs-template-variable{color:#af3a03}.hljs-gruvbox-light .hljs-addition,.hljs-gruvbox-light .hljs-meta-string,.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-selector-attr,.hljs-gruvbox-light .hljs-selector-class,.hljs-gruvbox-light .hljs-string,.hljs-gruvbox-light .hljs-symbol{color:#79740e}.hljs-gruvbox-light .hljs-attribute,.hljs-gruvbox-light .hljs-bullet,.hljs-gruvbox-light .hljs-class,.hljs-gruvbox-light .hljs-function,.hljs-gruvbox-light .hljs-function .hljs-keyword,.hljs-gruvbox-light .hljs-meta-keyword,.hljs-gruvbox-light .hljs-selector-pseudo,.hljs-gruvbox-light .hljs-tag{color:#427b58}.hljs-gruvbox-light .hljs-comment{color:#928374}.hljs-gruvbox-light .hljs-link_label,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-comment,.hljs-gruvbox-light .hljs-emphasis{font-style:italic}.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-tag{font-weight:bold}",hopscotch:".hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e}.hljs-hopscotch .hljs-meta{color:#149b93}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:.5em}.hljs-hopscotch .hljs-emphasis{font-style:italic}.hljs-hopscotch .hljs-strong{font-weight:bold}",hybrid:".hljs-hybrid .hljs{display:block;overflow-x:auto;padding:.5em;background:#1d1f21}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41}.hljs-hybrid .hljs{color:#c5c8c6}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f}.hljs-hybrid .hljs-emphasis{font-style:italic}.hljs-hybrid .hljs-strong{font-weight:bold}",idea:".hljs-idea .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#fff}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic}.hljs-idea .hljs-meta{color:#808000}.hljs-idea .hljs-tag{background:#efefef}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal}.hljs-idea .hljs-string{color:#008000;font-weight:bold}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic}.hljs-idea .hljs-doctag{text-decoration:underline}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a}.hljs-idea .hljs-addition{background:#baeeba}.hljs-idea .hljs-deletion{background:#ffc8bd}.hljs-idea .hljs-emphasis{font-style:italic}.hljs-idea .hljs-strong{font-weight:bold}","ir-black":".hljs-ir-black .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60}.hljs-ir-black .hljs-subst{color:#daefa3}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd}.hljs-ir-black .hljs-emphasis{font-style:italic}.hljs-ir-black .hljs-strong{font-weight:bold}","kimbie.dark":".hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:.5em}.hljs-kimbie.dark .hljs-emphasis{font-style:italic}.hljs-kimbie.dark .hljs-strong{font-weight:bold}","kimbie.light":".hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:.5em}.hljs-kimbie.light .hljs-emphasis{font-style:italic}.hljs-kimbie.light .hljs-strong{font-weight:bold}",magula:".hljs-magula .hljs{display:block;overflow-x:auto;padding:.5em;background-color:#f4f4f4}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy}.hljs-magula .hljs-emphasis{font-style:italic}.hljs-magula .hljs-strong{font-weight:bold}","mono-blue":".hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:.5em;background:#eaeef3}.hljs-mono-blue .hljs{color:#00193a}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold}.hljs-mono-blue .hljs-comment{color:#738191}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9}.hljs-mono-blue .hljs-emphasis{font-style:italic}","monokai-sublime":".hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:.5em;background:#23241f}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e}.hljs-monokai-sublime .hljs-strong{font-weight:bold}.hljs-monokai-sublime .hljs-emphasis{font-style:italic}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e}",monokai:".hljs-monokai .hljs{display:block;overflow-x:auto;padding:.5em;background:#272822;color:#ddd}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672}.hljs-monokai .hljs-code{color:#66d9ef}.hljs-monokai .hljs-class .hljs-title{color:white}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold}",obsidian:".hljs-obsidian .hljs{display:block;overflow-x:auto;padding:.5em;background:#282b2e}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763}.hljs-obsidian .hljs-number{color:#ffcd22}.hljs-obsidian .hljs{color:#e0e2e4}.hljs-obsidian .hljs-attribute{color:#668bb0}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745}.hljs-obsidian .hljs-meta{color:#557182}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96}.hljs-obsidian .hljs-selector-class{color:#A082BD}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold}",ocean:".hljs-ocean .hljs-comment,.hljs-ocean .hljs-quote{color:#65737e}.hljs-ocean .hljs-variable,.hljs-ocean .hljs-template-variable,.hljs-ocean .hljs-tag,.hljs-ocean .hljs-name,.hljs-ocean .hljs-selector-id,.hljs-ocean .hljs-selector-class,.hljs-ocean .hljs-regexp,.hljs-ocean .hljs-deletion{color:#bf616a}.hljs-ocean .hljs-number,.hljs-ocean .hljs-built_in,.hljs-ocean .hljs-builtin-name,.hljs-ocean .hljs-literal,.hljs-ocean .hljs-type,.hljs-ocean .hljs-params,.hljs-ocean .hljs-meta,.hljs-ocean .hljs-link{color:#d08770}.hljs-ocean .hljs-attribute{color:#ebcb8b}.hljs-ocean .hljs-string,.hljs-ocean .hljs-symbol,.hljs-ocean .hljs-bullet,.hljs-ocean .hljs-addition{color:#a3be8c}.hljs-ocean .hljs-title,.hljs-ocean .hljs-section{color:#8fa1b3}.hljs-ocean .hljs-keyword,.hljs-ocean .hljs-selector-tag{color:#b48ead}.hljs-ocean .hljs{display:block;overflow-x:auto;background:#2b303b;color:#c0c5ce;padding:.5em}.hljs-ocean .hljs-emphasis{font-style:italic}.hljs-ocean .hljs-strong{font-weight:bold}","paraiso-dark":".hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:.5em}.hljs-paraiso-dark .hljs-emphasis{font-style:italic}.hljs-paraiso-dark .hljs-strong{font-weight:bold}","paraiso-light":".hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:.5em}.hljs-paraiso-light .hljs-emphasis{font-style:italic}.hljs-paraiso-light .hljs-strong{font-weight:bold}",purebasic:".hljs-purebasic .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFDF}.hljs-purebasic .hljs,.hljs-purebasic .hljs-type,.hljs-purebasic .hljs-function,.hljs-purebasic .hljs-name,.hljs-purebasic .hljs-number,.hljs-purebasic .hljs-attr,.hljs-purebasic .hljs-params,.hljs-purebasic .hljs-subst{color:#000000}.hljs-purebasic .hljs-comment,.hljs-purebasic .hljs-regexp,.hljs-purebasic .hljs-section,.hljs-purebasic .hljs-selector-pseudo,.hljs-purebasic .hljs-addition{color:#00AAAA}.hljs-purebasic .hljs-title,.hljs-purebasic .hljs-tag,.hljs-purebasic .hljs-variable,.hljs-purebasic .hljs-code{color:#006666}.hljs-purebasic .hljs-keyword,.hljs-purebasic .hljs-class,.hljs-purebasic .hljs-meta-keyword,.hljs-purebasic .hljs-selector-class,.hljs-purebasic .hljs-built_in,.hljs-purebasic .hljs-builtin-name{color:#006666;font-weight:bold}.hljs-purebasic .hljs-string,.hljs-purebasic .hljs-selector-attr{color:#0080FF}.hljs-purebasic .hljs-symbol,.hljs-purebasic .hljs-link,.hljs-purebasic .hljs-deletion,.hljs-purebasic .hljs-attribute{color:#924B72}.hljs-purebasic .hljs-meta,.hljs-purebasic .hljs-literal,.hljs-purebasic .hljs-selector-id{color:#924B72;font-weight:bold}.hljs-purebasic .hljs-strong,.hljs-purebasic .hljs-name{font-weight:bold}.hljs-purebasic .hljs-emphasis{font-style:italic}",qtcreator_dark:".hljs-qtcreator_dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#000000}.hljs-qtcreator_dark .hljs,.hljs-qtcreator_dark .hljs-subst,.hljs-qtcreator_dark .hljs-tag,.hljs-qtcreator_dark .hljs-title{color:#aaaaaa}.hljs-qtcreator_dark .hljs-strong,.hljs-qtcreator_dark .hljs-emphasis{color:#a8a8a2}.hljs-qtcreator_dark .hljs-bullet,.hljs-qtcreator_dark .hljs-quote,.hljs-qtcreator_dark .hljs-number,.hljs-qtcreator_dark .hljs-regexp,.hljs-qtcreator_dark .hljs-literal{color:#ff55ff}.hljs-qtcreator_dark .hljs-code .hljs-selector-class{color:#aaaaff}.hljs-qtcreator_dark .hljs-emphasis,.hljs-qtcreator_dark .hljs-stronge,.hljs-qtcreator_dark .hljs-type{font-style:italic}.hljs-qtcreator_dark .hljs-keyword,.hljs-qtcreator_dark .hljs-selector-tag,.hljs-qtcreator_dark .hljs-function,.hljs-qtcreator_dark .hljs-section,.hljs-qtcreator_dark .hljs-symbol,.hljs-qtcreator_dark .hljs-name{color:#ffff55}.hljs-qtcreator_dark .hljs-attribute{color:#ff5555}.hljs-qtcreator_dark .hljs-variable,.hljs-qtcreator_dark .hljs-params,.hljs-qtcreator_dark .hljs-class .hljs-title{color:#8888ff}.hljs-qtcreator_dark .hljs-string,.hljs-qtcreator_dark .hljs-selector-id,.hljs-qtcreator_dark .hljs-selector-attr,.hljs-qtcreator_dark .hljs-selector-pseudo,.hljs-qtcreator_dark .hljs-type,.hljs-qtcreator_dark .hljs-built_in,.hljs-qtcreator_dark .hljs-builtin-name,.hljs-qtcreator_dark .hljs-template-tag,.hljs-qtcreator_dark .hljs-template-variable,.hljs-qtcreator_dark .hljs-addition,.hljs-qtcreator_dark .hljs-link{color:#ff55ff}.hljs-qtcreator_dark .hljs-comment,.hljs-qtcreator_dark .hljs-meta,.hljs-qtcreator_dark .hljs-deletion{color:#55ffff}",qtcreator_light:".hljs-qtcreator_light .hljs{display:block;overflow-x:auto;padding:.5em;background:#ffffff}.hljs-qtcreator_light .hljs,.hljs-qtcreator_light .hljs-subst,.hljs-qtcreator_light .hljs-tag,.hljs-qtcreator_light .hljs-title{color:#000000}.hljs-qtcreator_light .hljs-strong,.hljs-qtcreator_light .hljs-emphasis{color:#000000}.hljs-qtcreator_light .hljs-bullet,.hljs-qtcreator_light .hljs-quote,.hljs-qtcreator_light .hljs-number,.hljs-qtcreator_light .hljs-regexp,.hljs-qtcreator_light .hljs-literal{color:#000080}.hljs-qtcreator_light .hljs-code .hljs-selector-class{color:#800080}.hljs-qtcreator_light .hljs-emphasis,.hljs-qtcreator_light .hljs-stronge,.hljs-qtcreator_light .hljs-type{font-style:italic}.hljs-qtcreator_light .hljs-keyword,.hljs-qtcreator_light .hljs-selector-tag,.hljs-qtcreator_light .hljs-function,.hljs-qtcreator_light .hljs-section,.hljs-qtcreator_light .hljs-symbol,.hljs-qtcreator_light .hljs-name{color:#808000}.hljs-qtcreator_light .hljs-attribute{color:#800000}.hljs-qtcreator_light .hljs-variable,.hljs-qtcreator_light .hljs-params,.hljs-qtcreator_light .hljs-class .hljs-title{color:#0055AF}.hljs-qtcreator_light .hljs-string,.hljs-qtcreator_light .hljs-selector-id,.hljs-qtcreator_light .hljs-selector-attr,.hljs-qtcreator_light .hljs-selector-pseudo,.hljs-qtcreator_light .hljs-type,.hljs-qtcreator_light .hljs-built_in,.hljs-qtcreator_light .hljs-builtin-name,.hljs-qtcreator_light .hljs-template-tag,.hljs-qtcreator_light .hljs-template-variable,.hljs-qtcreator_light .hljs-addition,.hljs-qtcreator_light .hljs-link{color:#008000}.hljs-qtcreator_light .hljs-comment,.hljs-qtcreator_light .hljs-meta,.hljs-qtcreator_light .hljs-deletion{color:#008000}",railscasts:".hljs-railscasts .hljs{display:block;overflow-x:auto;padding:.5em;background:#232323;color:#e6e1dc}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261}.hljs-railscasts .hljs-subst{color:#519f50}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a}.hljs-railscasts .hljs-type{color:#da4939}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe}.hljs-railscasts .hljs-params{color:#d0d0ff}.hljs-railscasts .hljs-attribute{color:#cda869}.hljs-railscasts .hljs-meta{color:#9b859d}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-selector-class{color:#9b703f}.hljs-railscasts .hljs-selector-id{color:#8b98ab}.hljs-railscasts .hljs-emphasis{font-style:italic}.hljs-railscasts .hljs-strong{font-weight:bold}.hljs-railscasts .hljs-link{text-decoration:underline}",rainbow:".hljs-rainbow .hljs{display:block;overflow-x:auto;padding:.5em;background:#474949;color:#d1d9e1}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157}.hljs-rainbow .hljs-deletion{color:#dc322f}.hljs-rainbow .hljs-formula{background:#eee8d5}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be}.hljs-rainbow .hljs-emphasis{font-style:italic}","school-book":".hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px .5em .5em 30px;font-size:11px;line-height:16px}.hljs-school-book pre{background:#f6f6ae url(school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold}.hljs-school-book .hljs-emphasis{font-style:italic}",
+"solarized-dark":".hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f}.hljs-solarized-dark .hljs-formula{background:#073642}.hljs-solarized-dark .hljs-emphasis{font-style:italic}.hljs-solarized-dark .hljs-strong{font-weight:bold}","solarized-light":".hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f}.hljs-solarized-light .hljs-formula{background:#eee8d5}.hljs-solarized-light .hljs-emphasis{font-style:italic}.hljs-solarized-light .hljs-strong{font-weight:bold}",sunburst:".hljs-sunburst .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964}.hljs-sunburst .hljs-string{color:#65b042}.hljs-sunburst .hljs-subst{color:#daefa3}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3}.hljs-sunburst .hljs-attribute{color:#cda869}.hljs-sunburst .hljs-meta{color:#8996a8}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8}.hljs-sunburst .hljs-selector-class{color:#9b703f}.hljs-sunburst .hljs-selector-id{color:#8b98ab}.hljs-sunburst .hljs-emphasis{font-style:italic}.hljs-sunburst .hljs-strong{font-weight:bold}","tomorrow-night-blue":".hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:.5em}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold}","tomorrow-night-bright":".hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:.5em}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:.5em}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold}","tomorrow-night":".hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f}.hljs-tomorrow-night .hljs-attribute{color:#f0c674}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:.5em}.hljs-tomorrow-night .hljs-emphasis{font-style:italic}.hljs-tomorrow-night .hljs-strong{font-weight:bold}",tomorrow:".hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f}.hljs-tomorrow .hljs-attribute{color:#eab700}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:.5em}.hljs-tomorrow .hljs-emphasis{font-style:italic}.hljs-tomorrow .hljs-strong{font-weight:bold}",vs:".hljs-vs .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af}.hljs-vs .hljs-doctag{color:#808080}.hljs-vs .hljs-attr{color:#f00}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8}.hljs-vs .hljs-emphasis{font-style:italic}.hljs-vs .hljs-strong{font-weight:bold}",xcode:".hljs-xcode .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:black}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#006a00}.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal{color:#aa0d91}.hljs-xcode .hljs-name{color:#008}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#660}.hljs-xcode .hljs-string{color:#c41a16}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#080}.hljs-xcode .hljs-title,.hljs-xcode .hljs-tag,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number,.hljs-xcode .hljs-meta{color:#1c00cf}.hljs-xcode .hljs-section,.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-attr,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699}.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-subst{color:#000}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic}.hljs-xcode .hljs-addition{background-color:#baeeba}.hljs-xcode .hljs-deletion{background-color:#ffc8bd}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold}.hljs-xcode .hljs-emphasis{font-style:italic}",xt256:".hljs-xt256 .hljs{display:block;overflow-x:auto;color:#eaeaea;background:#000;padding:.5}.hljs-xt256 .hljs-subst{color:#eaeaea}.hljs-xt256 .hljs-emphasis{font-style:italic}.hljs-xt256 .hljs-strong{font-weight:bold}.hljs-xt256 .hljs-builtin-name,.hljs-xt256 .hljs-type{color:#eaeaea}.hljs-xt256 .hljs-params{color:#da0000}.hljs-xt256 .hljs-literal,.hljs-xt256 .hljs-number,.hljs-xt256 .hljs-name{color:#ff0000;font-weight:bolder}.hljs-xt256 .hljs-comment{color:#969896}.hljs-xt256 .hljs-selector-id,.hljs-xt256 .hljs-quote{color:#00ffff}.hljs-xt256 .hljs-template-variable,.hljs-xt256 .hljs-variable,.hljs-xt256 .hljs-title{color:#00ffff;font-weight:bold}.hljs-xt256 .hljs-selector-class,.hljs-xt256 .hljs-keyword,.hljs-xt256 .hljs-symbol{color:#fff000}.hljs-xt256 .hljs-string,.hljs-xt256 .hljs-bullet{color:#00ff00}.hljs-xt256 .hljs-tag,.hljs-xt256 .hljs-section{color:#000fff}.hljs-xt256 .hljs-selector-tag{color:#000fff;font-weight:bold}.hljs-xt256 .hljs-attribute,.hljs-xt256 .hljs-built_in,.hljs-xt256 .hljs-regexp,.hljs-xt256 .hljs-link{color:#ff00ff}.hljs-xt256 .hljs-meta{color:#fff;font-weight:bolder}",zenburn:".hljs-zenburn .hljs{display:block;overflow-x:auto;padding:.5em;background:#3f3f3f;color:#dcdcdc}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab}.hljs-zenburn .hljs-template-tag{color:#dcdcdc}.hljs-zenburn .hljs-number{color:#8cd0d3}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc}.hljs-zenburn .hljs-literal{color:#efefaf}.hljs-zenburn .hljs-subst{color:#8f8f8f}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f}.hljs-zenburn .hljs-emphasis{font-style:italic}.hljs-zenburn .hljs-strong{font-weight:bold}"},engine:r}},{}],15:[function(e,t,a){function r(){}function s(e,t,a){var r,n;for(a=a||[];null!==(r=t.exec(e));)r.index>0&&a.push({type:"text",text:e.substring(0,r.index)}),r[o]?a.push({type:"code",text:r[0]}):r[c]?a.push({type:"text",text:r[0]}):r[m]?a.push({type:"fences",text:r[0]}):r[u]?a.push({type:"def",id:r[u].toLowerCase(),href:r[h],title:r[p]}):r[g]?a.push({type:"macro",name:r[g],args:(r[b]||"").split(",").map(i),obj:r[_]}):r[f]?a.push({type:"separator",text:r[f]}):r[v]?a.push({type:"notes_separator",text:r[v]}):r[d]&&(n=l(e,r.index+r[0].length),void 0!==n?(e=e.substring(n.length+1),"\\"!==r[0][0]?(a.push({type:"content_start",classes:r[d].substring(1).split("."),block:n.indexOf("\n")!==-1}),s(n,y,a),a.push({type:"content_end",block:n.indexOf("\n")!==-1})):a.push({type:"text",text:r[0].substring(1)+n+"]"})):a.push({type:"text",text:r[0]})),e=e.substring(r.index+r[0].length);return(e||!e&&0===a.length)&&a.push({type:"text",text:e}),a}function n(e,t){return new RegExp(e.source.replace(/\w{2,}/g,function(e){return t[e].source}))}function i(e){return"string"==typeof e?e.trim():e}function l(e,t){for(var a,r=1,s=t;r>0&&s<e.length;)a=e[s++],r+="["===a&&1||"]"===a&&-1||0;if(0===r)return e=e.substr(t,s-t-1)}t.exports=r;var o=1,c=2,d=3,m=4,u=5,h=6,p=7,g=8,b=9,_=10,f=11,v=12,j={CODE:/(?:^|\n)( {4}[^\n]+\n*)+/,INLINE_CODE:/`([^`]+?)`/,CONTENT:/(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,FENCES:/(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,DEF:/(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,MACRO:/!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,SEPARATOR:/(?:^|\n)(---?)(?:\n|$)/,NOTES_SEPARATOR:/(?:^|\n)(\?{3})(?:\n|$)/},E=n(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/,j),y=n(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/,j);r.prototype.lex=function(e){var t,a=s(e,E);for(t=a.length-2;t>=0;t--)"text"===a[t].type&&"text"===a[t+1].type&&(a[t].text+=a[t+1].text,a.splice(t+1,1));return a}},{}],16:[function(e,t,a){var r=t.exports={};r.hello=function(){return"hello!"}},{}],17:[function(e,t,a){function r(e,t,a){var r=this;r.properties=t.properties||{},r.links=t.links||{},r.content=t.content||[],r.notes=t.notes||"",r.getSlideIndex=function(){return e},a&&s(r,a)}function s(e,t){n(e,t),l(e,t),c(e,t)}function n(e,t){var a,r;for(a in t.properties)t.properties.hasOwnProperty(a)&&!i(a)&&(r=[t.properties[a]],"class"===a&&e.properties[a]&&r.push(e.properties[a]),"class"!==a&&void 0!==e.properties[a]||(e.properties[a]=r.join(", ")))}function i(e){return"name"===e||"layout"===e||"count"===e}function l(e,t){var a;e.properties.content=e.content.slice(),o(e,t.content),a=e.expandVariables(!0),void 0===a.content&&(e.content=e.content.concat(e.properties.content)),delete e.properties.content}function o(e,t){var a;for(e.content=[],a=0;a<t.length;++a)"string"==typeof t[a]?e.content.push(t[a]):(e.content.push({block:t[a].block,class:t[a].class}),o(e.content[e.content.length-1],t[a].content))}function c(e,t){t.notes&&(e.notes=t.notes+"\n\n"+e.notes)}e("../converter");t.exports=r,r.prototype.expandVariables=function(e,t,a){function r(t,r,s,i){var l,o=i.trim();return r?e?t[0]:s:e&&"content"!==o?t:(l=n[o],void 0!==l?(a[o]=l,l):"content"===o?"":s)}var s,n=this.properties;for(t=void 0!==t?t:this.content,a=a||{},s=0;s<t.length;++s)"string"==typeof t[s]?t[s]=t[s].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g,r):this.expandVariables(e,t[s].content,a);return a}},{"../converter":12}],18:[function(e,t,a){function r(e,t,a,r){function o(t){t=t||"",C=s(t,a),n(C),k={},C.forEach(function(e){for(var t in e.links)e.links.hasOwnProperty(t)&&(k[t]=e.links[t])}),e.emit("slidesChanged")}function c(e,r){var s=new t.XMLHttpRequest;return s.open("GET",a.sourceUrl,!0),s.onload=function(e){if(4===s.readyState){if(200!==s.status)throw Error(s.statusText);a.source=s.responseText.replace(/\r\n/g,"\n"),o(a.source),"function"==typeof r&&r(S)}},s.onerror=function(e){throw Error(s.statusText)},s.send(null),s}function d(){e.emit("resize")}function m(){return k}function u(){return C.map(function(e){return e})}function h(){return C.length}function p(e){return C.byName[e]}function g(){e.emit("togglePresenterMode")}function b(){e.emit("toggleHelp")}function _(){e.emit("toggleBlackout")}function f(){e.emit("toggleMirrored")}function v(){e.emit("toggleFullscreen")}function j(){e.emit("createClone")}function E(){e.emit("resetTimer")}function y(e,t){return function(){return void 0===a[e]?t:a[e]}}var S=this,C=[],k={};C.byName={},a=a||{},l.call(S,e),i.call(S,e),S.loadFromString=o,S.loadFromUrl=c,S.update=d,S.getLinks=m,S.getSlides=u,S.getSlideCount=h,S.getSlideByName=p,S.togglePresenterMode=g,S.toggleHelp=b,S.toggleBlackout=_,S.toggleMirrored=f,S.toggleFullscreen=v,S.createClone=j,S.resetTimer=E,S.getRatio=y("ratio","4:3"),S.getHighlightStyle=y("highlightStyle","default"),S.getHighlightLines=y("highlightLines",!1),S.getHighlightSpans=y("highlightSpans",!1),S.getHighlightInlineCode=y("highlightInlineCode",!1),S.getHighlightLanguage=y("highlightLanguage",""),S.getSlideNumberFormat=y("slideNumberFormat","%current% / %total%"),S.getCloneTarget=y("cloneTarget","_blank"),e.on("toggleBlackout",function(){S.clone&&!S.clone.closed&&S.clone.postMessage("toggleBlackout","*")}),a.sourceUrl?c(a.sourceUrl,r):(o(a.source),"function"==typeof r&&r(S))}function s(e,t){var a,r=new c,s=r.parse(e,d),n=[],i={};return n.byName={},s.forEach(function(e,r){var s,l;"true"===e.properties.continued&&r>0?s=n[n.length-1]:i[e.properties.template]?s=i[e.properties.template]:"false"===e.properties.layout?a=void 0:a&&"true"!==e.properties.layout&&(s=a),"true"===e.properties.continued&&t.countIncrementalSlides===!1&&void 0===e.properties.count&&(e.properties.count="false"),l=new o(n.length,e,s),"true"===e.properties.layout&&(a=l),e.properties.name&&(i[e.properties.name]=l),"true"!==e.properties.layout&&(n.push(l),e.properties.name&&(n.byName[e.properties.name]=l))}),n}function n(e){e.forEach(function(e){e.expandVariables()})}var i=e("./slideshow/navigation"),l=e("./slideshow/events"),o=(e("../utils"),e("./slide")),c=e("../parser"),d=e("../macros");t.exports=r},{"../macros":16,"../parser":21,"../utils":24,"./slide":17,"./slideshow/events":19,"./slideshow/navigation":20}],19:[function(e,t,a){function r(e){var t=this,a=new s;a.setMaxListeners(0),t.on=function(){return a.on.apply(a,arguments),t},["showSlide","hideSlide","beforeShowSlide","afterShowSlide","beforeHideSlide","afterHideSlide","toggledPresenter"].map(function(r){e.on(r,function(e){var s=t.getSlides()[e];a.emit(r,s)})})}var s=e("events").EventEmitter;t.exports=r},{events:1}],20:[function(e,t,a){function r(e){function t(){e.emit("pause")}function a(){e.emit("resume")}function r(){return u}function s(t,a){var r=t===u,s=t<0||t>m.getSlideCount()-1;void 0===a&&(a=!1),r||s||(u!==-1&&e.emit("hideSlide",u,!1),null===h?h=!1:h===!1&&(e.emit("start"),h=!0),e.emit("showSlide",t),u=t,e.emit("slideChanged",t+1),a||(m.clone&&!m.clone.closed&&m.clone.postMessage("gotoSlide:"+(u+1),"*"),window.opener&&window.opener.postMessage("gotoSlide:"+(u+1),"*")))}function n(e,t){var a=d(e);s(a,t)}function i(){s(u-1)}function l(){s(u+1)}function o(){s(0)}function c(){s(m.getSlideCount()-1)}function d(t){var a,r;return"number"==typeof t?t-1:(a=parseInt(t,10),a.toString()===t?a-1:t.match(/^p\d+$/)?(e.emit("forcePresenterMode"),parseInt(t.substr(1),10)-1):(r=m.getSlideByName(t),r?r.getSlideIndex():0))}var m=this,u=-1,h=null;m.getCurrentSlideIndex=r,m.gotoSlide=n,m.gotoPreviousSlide=i,m.gotoNextSlide=l,m.gotoFirstSlide=o,m.gotoLastSlide=c,m.pause=t,m.resume=a,e.on("gotoSlide",n),e.on("gotoPreviousSlide",i),e.on("gotoNextSlide",l),e.on("gotoFirstSlide",o),e.on("gotoLastSlide",c),e.on("slidesChanged",function(){u>m.getSlideCount()&&(u=m.getSlideCount())}),e.on("createClone",function(){!m.clone||m.clone.closed?m.clone=window.open(location.href,m.getCloneTarget(),"location=no"):m.clone.focus()}),e.on("resetTimer",function(){h=!1})}t.exports=r},{}],21:[function(e,t,a){function r(){}function s(){return{content:[],properties:{continued:"false"},links:{}}}function n(e){return{class:e.classes.join(" "),block:e.block,content:[]}}function i(e,t){var a=e.content;void 0!==e.notes&&(a=e.notes);var r=a.length-1;"string"==typeof a[r]&&"string"==typeof t?a[r]+=t:a.push(t)}function l(e,t){for(var a,r=/^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i;null!==(a=r.exec(e));)e=e.substr(0,a.index)+e.substr(a.index+a[0].length),void 0!==a[1]?t[a[1].trim()]=a[2].trim():t[a[3].trim()]=a[4].trim(),r.lastIndex=a.index;return e}function o(e){var t=function(e,t){for(var a,r=[];null!==(a=t.exec(e));)r.push(a[1]);return r},a=/^([ \t]*)[^ \t\n]/gm,r=t(e,a).map(function(e){return e.length}),s=Math.min.apply(Math,r),n=new RegExp("^[ \\t]{0,"+s+"}","gm");return e.replace(n,"")}var c=e("./lexer");t.exports=r,r.prototype.parse=function(e,t){var a=this,r=new c,d=r.lex(o(e)),m=[],u=[s()];return t=t||{},d.forEach(function(e){switch(e.type){case"text":case"code":case"fences":i(u[u.length-1],e.text);break;case"def":u[0].links[e.id]={href:e.href,title:e.title};break;case"macro":var r=t[e.name];if("function"!=typeof r)throw new Error('Macro "'+e.name+"\" not found. You need to define macro using remark.macros['"+e.name+"'] = function () { ... };");var l=r.apply(e.obj,e.args);"string"==typeof l?(l=a.parse(l,t),i(u[u.length-1],l[0].content[0])):i(u[u.length-1],void 0===l?"":l.toString());break;case"content_start":u.push(n(e));break;case"content_end":i(u[u.length-2],u[u.length-1]),u.pop();break;case"separator":m.push(u[0]),u=[s()],u[0].properties.continued=("--"===e.text).toString();break;case"notes_separator":u[0].notes=[]}}),m.push(u[0]),m.forEach(function(e){e.content[0]=l(e.content[0]||"",e.properties)}),m.filter(function(e){var t=(e.properties.exclude||"").toLowerCase();return"true"!==t})}},{"./lexer":15}],22:[function(e,t,a){t.exports={version:"0.14.1",documentStyles:"html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact}.remark-container{background:#d7d8d2;margin:0;overflow:hidden}.remark-container:focus{outline-style:solid;outline-width:1px}.remark-container:-webkit-full-screen{width:100%;height:100%}body:-webkit-full-screen{background:#000000}body:-moz-full-screen{background:#000000}body:fullscreen{background:#000000}.remark-slides-area{position:relative;height:100%;width:100%}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always}.remark-slide-scaler{background-color:transparent;overflow:hidden;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed}.remark-slide>.left{text-align:left}.remark-slide>.center{text-align:center}.remark-slide>.right{text-align:right}.remark-slide>.top{vertical-align:top}.remark-slide>.middle{vertical-align:middle}.remark-slide>.bottom{vertical-align:bottom}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;font-size:20px;padding:1em 4em 1em 4em}.remark-slide-content h1{font-size:55px}.remark-slide-content h2{font-size:45px}.remark-slide-content h3{font-size:35px}.remark-slide-content .left{display:block;text-align:left}.remark-slide-content .center{display:block;text-align:center}.remark-slide-content .right{display:block;text-align:right}.remark-slide-number{bottom:12px;opacity:.5;position:absolute;right:20px}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none}.remark-code{font-size:18px}.remark-code-line{min-height:1em}.remark-code-line-highlighted{background-color:rgba(255,255,0,0.5)}.remark-code-span-highlighted{background-color:rgba(255,255,0,0.5);padding:1px 2px 2px 2px}.remark-visible{display:block;z-index:2}.remark-fading{display:block;z-index:1}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:.5}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%}.remark-help .remark-help-content h1{font-size:36px}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px}.remark-help .remark-help-content td:first-child{padding-left:0}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px}.remark-help .dismiss{top:85%}.remark-container.remark-help-mode .remark-help{display:block}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:.95}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:.5;position:absolute;height:47.25%;width:48%}.remark-preview-area .remark-slide-container{display:block}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:.75em;text-transform:uppercase;color:#ccc}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0;left:0;right:0;overflow-y:auto;margin-bottom:20px;padding-top:10px}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0;left:0;right:0;overflow-y:auto}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0}.remark-toolbar{color:#979892;vertical-align:middle}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%}.remark-container.remark-presenter-mode .remark-preview-area{display:block}.remark-container.remark-presenter-mode .remark-notes-area{display:block}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:.99}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1)}@media print{.remark-container{overflow:visible;background-color:#fff}.remark-container.remark-presenter-mode .remark-slides-area{top:0;left:0;height:100%;width:681px}.remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none}.remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px}.remark-slide-container{display:block;position:relative}.remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none}}@page{margin:0}",
+containerLayout:'<div class="remark-notes-area">\n  <div class="remark-top-area">\n    <div class="remark-toolbar">\n      <a class="remark-toolbar-link" href="#increase">+</a>\n      <a class="remark-toolbar-link" href="#decrease">-</a>\n      <span class="remark-toolbar-timer"></span>\n    </div>\n  </div>\n  <div class="remark-bottom-area">\n    <div class="remark-notes-current-area">\n      <div class="remark-toggle">Notes for current slide</div>\n      <div class="remark-notes"></div>\n    </div>\n    <div class="remark-notes-preview-area">\n      <div class="remark-toggle">Notes for next slide</div>\n      <div class="remark-notes-preview"></div>\n    </div>\n  </div>\n</div>\n<div class="remark-slides-area"></div>\n<div class="remark-preview-area"></div>\n<div class="remark-backdrop"></div>\n<div class="remark-pause">\n  <div class="remark-pause-lozenge">\n    <span>Paused</span>\n  </div>\n</div>\n<div class="remark-help">\n  <div class="remark-help-content">\n    <h1>Help</h1>\n    <p><b>Keyboard shortcuts</b></p>\n    <table class="light-keys">\n      <tr>\n        <td>\n          <span class="key"><b>&uarr;</b></span>,\n          <span class="key"><b>&larr;</b></span>,\n          <span class="key">Pg Up</span>,\n          <span class="key">k</span>\n        </td>\n        <td>Go to previous slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key"><b>&darr;</b></span>,\n          <span class="key"><b>&rarr;</b></span>,\n          <span class="key">Pg Dn</span>,\n          <span class="key">Space</span>,\n          <span class="key">j</span>\n        </td>\n        <td>Go to next slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">Home</span>\n        </td>\n        <td>Go to first slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">End</span>\n        </td>\n        <td>Go to last slide</td>\n      </tr>\n      <tr>\n        <td>\n          Number + <span class="key">Return</span>\n        </td>\n        <td>Go to specific slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">b</span>&nbsp;/\n          <span class="key">m</span>&nbsp;/\n          <span class="key">f</span>\n        </td>\n        <td>Toggle blackout / mirrored / fullscreen mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">c</span>\n        </td>\n        <td>Clone slideshow</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">p</span>\n        </td>\n        <td>Toggle presenter mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">t</span>\n        </td>\n        <td>Restart the presentation timer</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">?</span>,\n          <span class="key">h</span>\n        </td>\n        <td>Toggle this help</td>\n      </tr>\n    </table>\n  </div>\n  <div class="content dismiss">\n    <table class="light-keys">\n      <tr>\n        <td>\n          <span class="key">Esc</span>\n        </td>\n        <td>Back to slideshow</td>\n      </tr>\n    </table>\n  </div>\n</div>\n'}},{}],23:[function(e,t,a){function r(e,t){var a=this;a.events=e,a.slideshow=t,a.ratio=s(t),a.dimensions=n(a.ratio),a.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&(a.ratio=s(t),a.dimensions=n(a.ratio))})}function s(e){var t,a=e.getRatio().split(":");return t={width:parseInt(a[0],10),height:parseInt(a[1],10)},t.ratio=t.width/t.height,t}function n(e){return{width:Math.floor(i/o*e.ratio),height:l}}var i=908,l=681,o=i/l;t.exports=r,r.prototype.scaleToFit=function(e,t){var a,r,s,n,i,l=this,o=t.clientHeight,c=t.clientWidth,d=l.ratio,m=l.dimensions;a=c/d.width>o/d.height?o/m.height:c/m.width,r=m.width*a,s=m.height*a,n=(c-r)/2,i=(o-s)/2,e.style["-webkit-transform"]="scale("+a+")",e.style.MozTransform="scale("+a+")",e.style.left=Math.max(n,0)+"px",e.style.top=Math.max(i,0)+"px"}},{}],24:[function(e,t,a){a.addClass=function(e,t){e.className=a.getClasses(e).concat([t]).join(" ")},a.removeClass=function(e,t){e.className=a.getClasses(e).filter(function(e){return e!==t}).join(" ")},a.toggleClass=function(e,t){var r=a.getClasses(e),s=r.indexOf(t);s!==-1?r.splice(s,1):r.push(t),e.className=r.join(" ")},a.getClasses=function(e){return e.className.split(" ").filter(function(e){return""!==e})},a.hasClass=function(e,t){return a.getClasses(e).indexOf(t)!==-1},a.getPrefixedProperty=function(e,t){var a=t[0].toUpperCase()+t.slice(1);return e[t]||e["moz"+a]||e["webkit"+a]}},{}],25:[function(e,t,a){function r(e,t,a){var r=this;r.events=e,r.element=t,r.slideViewsAccessor=a,r.configureElements(),e.on("showSlide",function(e){r.showSlide(e)})}e("../converter");t.exports=r,r.prototype.showSlide=function(e){var t=this,a=t.slideViewsAccessor(),r=a[e],s=a[e+1];t.notesElement.innerHTML=r.notesElement.innerHTML,s?t.notesPreviewElement.innerHTML=s.notesElement.innerHTML:t.notesPreviewElement.innerHTML=""},r.prototype.configureElements=function(){var e=this;e.notesElement=e.element.getElementsByClassName("remark-notes")[0],e.notesPreviewElement=e.element.getElementsByClassName("remark-notes-preview")[0],e.notesElement.addEventListener("mousewheel",function(e){e.stopPropagation()}),e.notesPreviewElement.addEventListener("mousewheel",function(e){e.stopPropagation()}),e.toolbarElement=e.element.getElementsByClassName("remark-toolbar")[0];var t={increase:function(){e.notesElement.style.fontSize=(parseFloat(e.notesElement.style.fontSize)||1)+.1+"em",e.notesPreviewElement.style.fontsize=e.notesElement.style.fontSize},decrease:function(){e.notesElement.style.fontSize=(parseFloat(e.notesElement.style.fontSize)||1)-.1+"em",e.notesPreviewElement.style.fontsize=e.notesElement.style.fontSize}};e.toolbarElement.getElementsByTagName("a").forEach(function(e){e.addEventListener("click",function(e){var a=e.target.hash.substr(1);t[a](),e.preventDefault()})})}},{"../converter":12}],26:[function(e,t,a){function r(e,t,a,r){var s=this;s.events=e,s.slideshow=t,s.scaler=a,s.slide=r,s.slideNumber=new g(r,t),s.configureElements(),s.updateDimensions(),s.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&s.updateDimensions()})}function s(e,t,a){var r=document.createElement("div");return a.properties.name&&(r.id="slide-"+a.properties.name),n(t,r,a.properties),r.innerHTML=b.convertMarkdown(a.content,t.getLinks()),d(r,t),r}function n(e,t,a){t.className="",c(t,a),o(t,a,e),l(t,a)}function i(e,t){var a=document.createElement("div");return a.className="remark-slide-notes",a.innerHTML=b.convertMarkdown(t,e.getLinks()),d(a,e),a}function l(e,t){var a=t["background-image"],r=t["background-color"],s=t["background-size"],n=t["background-position"];a&&(e.style.backgroundImage=a),r&&(e.style.backgroundColor=r),s&&(e.style.backgroundSize=s),n&&(e.style.backgroundPosition=n)}function o(e,t,a){var r=t["highlight-style"]||a.getHighlightStyle();r&&f.addClass(e,"hljs-"+r)}function c(e,t){f.addClass(e,"remark-slide-content"),(t.class||"").split(/,| /).filter(function(e){return""!==e}).forEach(function(t){f.addClass(e,t)})}function d(e,t){var a,r=e.getElementsByTagName("code"),s=t.getHighlightLines(),n=t.getHighlightSpans(),i=t.getHighlightInlineCode();r.forEach(function(e){return""===e.className&&(e.className=t.getHighlightLanguage()),"PRE"!==e.parentElement.tagName?(f.addClass(e,"remark-inline-code"),void(i&&_.engine.highlightBlock(e,""))):(s&&(a=m(e)),""!==e.className&&_.engine.highlightBlock(e,"  "),u(e),s&&h(e,a.highlightedLines),n&&p(e),void f.addClass(e,"remark-code"))})}function m(e){var t=[];return e.innerHTML=e.innerHTML.split(/\r?\n/).map(function(e,a){return 0===e.indexOf("*")?(t.push(a),e.replace(/^\*( )?/,"$1$1")):e}).join("\n"),{highlightedLines:t}}function u(e){var t=e.innerHTML.split(/\r?\n/).map(function(e){return'<div class="remark-code-line">'+e+"</div>"});t.length&&t[t.length-1].indexOf("><")!==-1&&t.pop(),e.innerHTML=t.join("")}function h(e,t){t.forEach(function(t){f.addClass(e.childNodes[t],"remark-code-line-highlighted")})}function p(e){var t=/([^`])`([^`]+?)`/g;e.childNodes.forEach(function(e){e.innerHTML=e.innerHTML.replace(t,function(e,t,a){return"\\"===t?e.substr(1):t+'<span class="remark-code-span-highlighted">'+a+"</span>"})})}var g=e("../components/slide-number/slide-number"),b=e("../converter"),_=e("../highlighter"),f=e("../utils");t.exports=r,r.prototype.updateDimensions=function(){var e=this,t=e.scaler.dimensions;e.scalingElement.style.width=t.width+"px",e.scalingElement.style.height=t.height+"px"},r.prototype.scale=function(e){var t=this;t.scaler.scaleToFit(t.scalingElement,e)},r.prototype.show=function(){f.addClass(this.containerElement,"remark-visible"),f.removeClass(this.containerElement,"remark-fading")},r.prototype.hide=function(){var e=this;f.removeClass(this.containerElement,"remark-visible"),f.addClass(this.containerElement,"remark-fading"),setTimeout(function(){f.removeClass(e.containerElement,"remark-fading")},1e3)},r.prototype.configureElements=function(){var e=this;e.containerElement=document.createElement("div"),e.containerElement.className="remark-slide-container",e.scalingElement=document.createElement("div"),e.scalingElement.className="remark-slide-scaler",e.element=document.createElement("div"),e.element.className="remark-slide",e.contentElement=s(e.events,e.slideshow,e.slide),e.notesElement=i(e.slideshow,e.slide.notes),e.contentElement.appendChild(e.slideNumber.element),e.element.appendChild(e.contentElement),e.scalingElement.appendChild(e.element),e.containerElement.appendChild(e.scalingElement),e.containerElement.appendChild(e.notesElement)},r.prototype.scaleBackgroundImage=function(e){var t,a,r,s=this,n=window.getComputedStyle(this.contentElement),i=n.backgroundImage,l=n.backgroundSize,o=n.backgroundPosition;(!l&&!o||s.backgroundSizeSet)&&null!==(t=/^url\(("?)([^\)]+?)\1\)/.exec(i))&&(a=new Image,a.onload=function(){a.width>e.width||a.height>e.height?s.originalBackgroundSize||(s.originalBackgroundSize=s.contentElement.style.backgroundSize,s.originalBackgroundPosition=s.contentElement.style.backgroundPosition,s.backgroundSizeSet=!0,r=e.width/a.width<e.height/a.height?e.width/a.width:e.height/a.height,s.contentElement.style.backgroundSize=a.width*r+"px "+a.height*r+"px",s.contentElement.style.backgroundPosition="50% "+(e.height-a.height*r)/2+"px"):s.backgroundSizeSet&&(s.contentElement.style.backgroundSize=s.originalBackgroundSize,s.contentElement.style.backgroundPosition=s.originalBackgroundPosition,s.backgroundSizeSet=!1)},a.src=t[2])}},{"../components/slide-number/slide-number":"components/slide-number","../converter":12,"../highlighter":14,"../utils":24}],27:[function(e,t,a){function r(e,t,a,r){var n=this;n.events=e,n.dom=t,n.slideshow=r,n.scaler=new c(e,r),n.slideViews=[],n.configureContainerElement(a),n.configureChildElements(),n.updateDimensions(),n.scaleElements(),n.updateSlideViews(),n.timer=new l(e,n.timerElement),e.on("slidesChanged",function(){n.updateSlideViews()}),e.on("hideSlide",function(e){n.elementArea.getElementsByClassName("remark-fading").forEach(function(e){m.removeClass(e,"remark-fading")}),n.hideSlide(e)}),e.on("showSlide",function(e){n.showSlide(e)}),e.on("forcePresenterMode",function(){m.hasClass(n.containerElement,"remark-presenter-mode")||(m.toggleClass(n.containerElement,"remark-presenter-mode"),n.scaleElements(),u.setPageOrientation("landscape"))}),e.on("togglePresenterMode",function(){m.toggleClass(n.containerElement,"remark-presenter-mode"),n.scaleElements(),e.emit("toggledPresenter",n.slideshow.getCurrentSlideIndex()+1),m.hasClass(n.containerElement,"remark-presenter-mode")?u.setPageOrientation("portrait"):u.setPageOrientation("landscape")}),e.on("toggleHelp",function(){m.toggleClass(n.containerElement,"remark-help-mode")}),e.on("toggleBlackout",function(){m.toggleClass(n.containerElement,"remark-blackout-mode")}),e.on("toggleMirrored",function(){m.toggleClass(n.containerElement,"remark-mirrored-mode")}),e.on("hideOverlay",function(){m.removeClass(n.containerElement,"remark-blackout-mode"),m.removeClass(n.containerElement,"remark-help-mode")}),e.on("pause",function(){m.toggleClass(n.containerElement,"remark-pause-mode")}),e.on("resume",function(){m.toggleClass(n.containerElement,"remark-pause-mode")}),s(n)}function s(e){var t=m.getPrefixedProperty(e.containerElement,"requestFullScreen"),a=m.getPrefixedProperty(document,"cancelFullScreen");e.events.on("toggleFullscreen",function(){var r=m.getPrefixedProperty(document,"fullscreenElement")||m.getPrefixedProperty(document,"fullScreenElement");!r&&t?t.call(e.containerElement,Element.ALLOW_KEYBOARD_INPUT):a&&a.call(document),e.scaleElements()})}function n(e,t,a){a.forEach(function(a){t.addEventListener(a,function(){var t=Array.prototype.slice.call(arguments);e.emit.apply(e,[a].concat(t))})})}var i=e("./slideView"),l=e("../components/timer/timer"),o=e("./notesView"),c=e("../scaler"),d=e("../resources"),m=e("../utils"),u=e("../components/printing/printing");t.exports=r,r.prototype.isEmbedded=function(){return this.containerElement!==this.dom.getBodyElement()},r.prototype.configureContainerElement=function(e){var t=this;t.containerElement=e,m.addClass(e,"remark-container"),e===t.dom.getBodyElement()?(m.addClass(t.dom.getHTMLElement(),"remark-container"),n(t.events,window,["hashchange","resize","keydown","keypress","mousewheel","message","DOMMouseScroll"]),n(t.events,t.containerElement,["touchstart","touchmove","touchend","click","contextmenu"])):(e.style.position="absolute",e.tabIndex=-1,n(t.events,window,["resize"]),n(t.events,e,["keydown","keypress","mousewheel","touchstart","touchmove","touchend"])),t.events.on("tap",function(e){e<t.containerElement.clientWidth/2?t.slideshow.gotoPreviousSlide():t.slideshow.gotoNextSlide()})},r.prototype.configureChildElements=function(){function e(){a.scaleElements()}function t(e){var t;t=e.isPortrait?.4*e.pageHeight:e.pageHeight,a.slideViews.forEach(function(a){a.scale({clientWidth:e.pageWidth,clientHeight:t}),e.isPortrait&&(a.scalingElement.style.top="20px",a.notesElement.style.top=t+40+"px")})}var a=this;a.containerElement.innerHTML+=d.containerLayout,a.elementArea=a.containerElement.getElementsByClassName("remark-slides-area")[0],a.previewArea=a.containerElement.getElementsByClassName("remark-preview-area")[0],a.notesArea=a.containerElement.getElementsByClassName("remark-notes-area")[0],a.notesView=new o(a.events,a.notesArea,function(){return a.slideViews}),a.backdropElement=a.containerElement.getElementsByClassName("remark-backdrop")[0],a.helpElement=a.containerElement.getElementsByClassName("remark-help")[0],a.timerElement=a.notesArea.getElementsByClassName("remark-toolbar-timer")[0],a.pauseElement=a.containerElement.getElementsByClassName("remark-pause")[0],a.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&a.updateDimensions()}),a.events.on("resize",e),u.init(),u.on("print",t)},r.prototype.updateSlideViews=function(){var e=this;e.slideViews.forEach(function(t){e.elementArea.removeChild(t.containerElement)}),e.slideViews=e.slideshow.getSlides().map(function(t){return new i(e.events,e.slideshow,e.scaler,t)}),e.slideViews.forEach(function(t){e.elementArea.appendChild(t.containerElement)}),e.updateDimensions(),e.slideshow.getCurrentSlideIndex()>-1&&e.showSlide(e.slideshow.getCurrentSlideIndex())},r.prototype.scaleSlideBackgroundImages=function(e){var t=this;t.slideViews.forEach(function(t){t.scaleBackgroundImage(e)})},r.prototype.showSlide=function(e){var t=this,a=t.slideViews[e],r=t.slideViews[e+1];t.events.emit("beforeShowSlide",e),a.show(),r?t.previewArea.innerHTML=r.containerElement.outerHTML:t.previewArea.innerHTML="",t.events.emit("afterShowSlide",e)},r.prototype.hideSlide=function(e){var t=this,a=t.slideViews[e];t.events.emit("beforeHideSlide",e),a.hide(),t.events.emit("afterHideSlide",e)},r.prototype.updateDimensions=function(){var e=this,t=e.scaler.dimensions;e.helpElement.style.width=t.width+"px",e.helpElement.style.height=t.height+"px",e.scaleSlideBackgroundImages(t),e.scaleElements()},r.prototype.scaleElements=function(){var e=this;e.slideViews.forEach(function(t){t.scale(e.elementArea)}),e.previewArea.children.length&&e.scaler.scaleToFit(e.previewArea.children[0].children[0],e.previewArea),e.scaler.scaleToFit(e.helpElement,e.containerElement),e.scaler.scaleToFit(e.pauseElement,e.containerElement)}},{"../components/printing/printing":"components/printing","../components/timer/timer":"components/timer","../resources":22,"../scaler":23,"../utils":24,"./notesView":25,"./slideView":26}],"components/printing":[function(e,t,a){function r(){}var s=e("events").EventEmitter,n=e("../styler/styler"),i="landscape",l="portrait",o=681,c=908;r.prototype=new s,r.prototype.init=function(){var e=this;return this.setPageOrientation(i),!!window.matchMedia&&void window.matchMedia("print").addListener(function(t){e.onPrint(t)})},r.prototype.onPrint=function(e){e.matches&&this.emit("print",{isPortrait:"portrait"===this._orientation,pageHeight:this._pageHeight,pageWidth:this._pageWidth})},r.prototype.setPageOrientation=function(e){if(e===l)this._pageHeight=c,this._pageWidth=o;else{if(e!==i)throw new Error("Unknown print orientation: "+e);this._pageHeight=o,this._pageWidth=c}this._orientation=e,n.setPageSize(this._pageWidth+"px "+this._pageHeight+"px")},t.exports=new r},{"../styler/styler":"components/styler",events:1}],"components/slide-number":[function(e,t,a){function r(e,t){var a=this;a.slide=e,a.slideshow=t,a.element=document.createElement("div"),a.element.className="remark-slide-number",a.element.innerHTML=s(a.slide,a.slideshow)}function s(e,t){var a=t.getSlideNumberFormat(),r=t.getSlides(),s=n(e,t),i=n(r[r.length-1],t);return"function"==typeof a?a.call(t,s,i):a.replace("%current%",s).replace("%total%",i)}function n(e,t){var a,r=t.getSlides(),s=0;for(a=0;a<=e.getSlideIndex()&&a<r.length;++a)"false"!==r[a].properties.count&&(s+=1);return Math.max(1,s)}t.exports=r},{}],"components/styler":[function(e,t,a){function r(){var e,t,a;if(!n()){e=document.getElementsByTagName("head")[0],t=document.createElement("style"),t.type="text/css",t.title="remark",t.innerHTML=l.documentStyles;for(a in o.styles)o.styles.hasOwnProperty(a)&&(t.innerHTML=t.innerHTML+o.styles[a]);e.insertBefore(t,e.firstChild)}}function s(e){var t=n(),a=i(t);a.style.size=e}function n(){var e,t=document.styleSheets.length;for(e=0;e<t;++e)if("remark"===document.styleSheets[e].title)return document.styleSheets[e]}function i(e){var t,a=e.cssRules.length;for(t=0;t<a;++t)if(e.cssRules[t]instanceof window.CSSPageRule)return e.cssRules[t]}var l=e("../../resources"),o=e("../../highlighter");t.exports={styleDocument:r,setPageSize:s}},{"../../highlighter":14,"../../resources":22}],"components/timer":[function(e,t,a){function r(e,t){var a=this;a.events=e,a.element=t,a.startTime=null,a.pauseStart=null,a.pauseLength=0,t.innerHTML="0:00:00",setInterval(function(){a.updateTimer()},100),e.on("start",function(){a.startTime=new Date}),e.on("resetTimer",function(){a.startTime=null,a.pauseStart=null,a.pauseLength=0,a.element.innerHTML="0:00:00"}),e.on("pause",function(){a.pauseStart=new Date}),e.on("resume",function(){a.pauseLength+=new Date-a.pauseStart,a.pauseStart=null})}e("../../utils");t.exports=r,r.prototype.updateTimer=function(){var e=this;if(e.startTime){var t;t=e.pauseStart?e.pauseStart-e.startTime-e.pauseLength:new Date-e.startTime-e.pauseLength;var a=Math.floor(t/1e3)%60,r=Math.floor(t/6e4)%60,s=Math.floor(t/36e5);e.element.innerHTML=s+(r>9?":":":0")+r+(a>9?":":":0")+a}}},{"../../utils":24}]},{},[4]);
\ No newline at end of file
diff --git a/project management/papers/1705.09920.pdf b/project management/papers/1705.09920.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..34bfb36f94d1ec5bc6501aeb81cd405ca44970cf
Binary files /dev/null and b/project management/papers/1705.09920.pdf differ
diff --git a/project management/papers/Project Recovery Case Studies and Techniques for Overcoming Project Failure by Harold Kerzner (z-lib.org).pdf b/project management/papers/Project Recovery Case Studies and Techniques for Overcoming Project Failure by Harold Kerzner (z-lib.org).pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6483af47d158750d204f0d614a50157651aef706
Binary files /dev/null and b/project management/papers/Project Recovery Case Studies and Techniques for Overcoming Project Failure by Harold Kerzner (z-lib.org).pdf differ
diff --git a/project management/papers/glass2005.pdf b/project management/papers/glass2005.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..acaa7ef1e2c0b5d192c28879fcc399ce362b76b6
Binary files /dev/null and b/project management/papers/glass2005.pdf differ
diff --git a/project management/papers/kitchenham2004.pdf b/project management/papers/kitchenham2004.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..19b890336df4a4650063369123d9e39a9da92539
Binary files /dev/null and b/project management/papers/kitchenham2004.pdf differ
diff --git a/project management/project management.html b/project management/project management.html
new file mode 100644
index 0000000000000000000000000000000000000000..0e6730cd48a34efc0427135675ef24ad021c650d
--- /dev/null
+++ b/project management/project management.html	
@@ -0,0 +1,606 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IT Project Management</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <link rel="stylesheet" href="css/remark.css">
+    <link rel="stylesheet" media="print" href="css/remark.print.css">
+  </head>
+  <body>
+    <textarea id="source">
+
+class: center, middle
+
+# IT project management
+
+<img src="images/thealternative-logo.jpg" width="30%">
+
+---
+
+# Motivation
+
+IT projects fail often (2017):
+- 14% fail completely
+- 31% didn’t meet their goals
+- 43% exceeded initial budgets
+- 49% were late
+- 69% succeed
+
+<small>
+[Source](http://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/pulse-of-the-profession-2017.pdf?sc_lang_temp=en)
+</small>
+
+<small>
+*Sometimes success rates as low 16% are claimed, referencing a widely cited [report of 1994](https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf).*
+</small>
+
+---
+
+# Why projects fail
+
+Nearly universally referenced issues:
+- Inaccurate requirements
+- Uninvolved project sponsors
+- Inaccurate estimates
+- Unexpected risks
+
+[Source 1](https://www.atspoke.com/blog/it/reasons-for-it-project-failure/), [Source 2](https://www.orellfuessli.ch/shop/home/artikeldetails/ID39325699.html), [Source 4](https://www.gartner.com/en/documents/2892218), PMO Survey 2020
+
+<img src="images/project-fail-reasons.png" width="100%">
+
+
+
+---
+
+# Epirical data
+
+Unfortunately, mostly useless.
+
+Littered with strong opinions, baseless claims, bad statistics, unprocessed experience, ...
+
+<img src="images/success_rate_vs_project_cost.png" width="100%">
+
+---
+
+# Why projects fail
+
+List out of "Project Recovery" by Harold Kerzner
+
+- End-user stakeholders not involved throughout the project
+- Minimal or no stakeholder backing; lack of ownership
+- Weak initial business case
+- Business case deterioration
+- Business case requirements that changed significantly over the life of the project
+- Technical obsolescence
+- Technologically unrealistic requirements
+- Lack of a clear vision
+- New executive team in place with different visions and goals
+- Corporate goals and/or vision not understood at the lower organiza-tional level
+- Plan that asks for too much in too little time
+- Poor estimates, especially financial
+- Unclear stakeholder requirements
+- Passive user stakeholder involvement after handoff
+- Unclear or unrealistic expectations
+- Unrealistic assumptions, if they exist at all
+- Plans based upon insufficient data
+- No systemization of the planning process
+- Planning performed by a planning group
+- Inadequate or incomplete requirements
+- Lack of resources
+- Assigned resources that lack experience or the necessary skills
+
+---
+
+- Resources that lack focus or motivation
+- Staffing requirements that are not fully known
+- Constantly changing resources
+- Poor overall project planning
+- Established milestones not measurable
+- Established milestones too far apart
+- Environmental factors that have changes causing outdated scope
+- Missed deadlines and no recovery plan
+- Budgets exceeded and out of control
+- Lack of replanning on a regular basis
+- Lack of attention provided to human and organizational aspects of project
+- Project estimates that are best guesses and not based upon history or standards
+- Not enough time provided for estimating
+- Exact major milestone dates or due dates for reporting not known
+- Team members working with conflicting requirements
+- People shuffled in and out of project with little regard for schedule
+- Poor or fragmented cost control
+- Each stakeholder uses different organizational process assets, which may be incompatible with each other
+- Weak project and stakeholder communications
+- Poor assessment of risks, if done at all
+- Wrong type of contract
+- Poor project management; team members possess a poor understanding of project management, especially virtual team members
+- Technical objectives that are more important than business objectives
+- Assigning critically skilled workers, including the project manager, on a part-time basis
+
+---
+
+# Applicability of course
+
+IT-projects as a freelancer.
+
+Yes:
+- Marketing webpage for the business of your dad
+- Online shop for small printing shop
+- eVoting application for members of UZH
+- App & Webapplication combination for construction firm
+
+No:
+- Führungsinformationssystem Heer
+- Mainframe migration
+- Medical software 
+- Bitcoin trading bot
+
+---
+
+# Experience
+
+Until bachelors:
+- Freelancer webpages since 2014
+- Bachelor ETH (Computer Science) 2015 - 2018
+- Projectmanagement & Development @ JKweb 2016 - 2017
+- Freelancer webapplications since 2018
+
+After bachelors:
+- Professional Software Engineer @ Zühlke 2018 - 2019
+- VSETH board member 2019-2020
+- Master ETH (Computer Science) 2019 - 2022
+
+Projects managed:
+- 12 projects @ JKweb
+- 16 projects as Freelancer (of which 10 were bigger applications)
+- ~80 projects in total
+
+Projects: https://famoser.ch/
+
+---
+
+# This course
+
+Parts:
+- **Know what makes a good project**: High-level view about a suitable environment for your project.
+- **Plan a successful project**: How to create a convincing project plan.
+- **Execute a successful project**: How to execute & finish your project.
+
+Targets:
+- You can detect favorable environments for projects
+- You feel confident creating a realistic project schedule
+- You can finish a project
+	- on time
+	- within budget
+	- within schedule
+	- which satisfies customer expectations.
+
+---
+
+class: center, middle
+
+# Preconditions for a successful project
+
+<i>Claim: Small projects (&lt;300h) succeed or fail before the first line of code is written.</i>
+
+---
+
+# Project Vision
+
+The *elevator pitch* of your project.
+
+A good vision:
+- Is short
+- Focuses on the resulting benefits
+- Motivates
+
+For bigger projects:
+- Might include sub-visions 
+- Might include non-visions
+
+> The tool allows managers of a construction site to easily create and manage issues, and communicate those to the responsible craftsmen.
+
+---
+
+# Business environment
+
+business case:
+- alternatives? cost-benefit?
+- sensible?
+- stable during the project?
+
+> Tinder for jobs.
+
+stakeholder(s):
+- agree about scope & purpose of project?
+- have realistic expectations?
+- personally support with time and money?
+
+> E-Learning Platform.
+
+---
+
+# You
+
+*sufficient experience*. Not too many unknowns, experience with most parts of final product.
+
+> Issue-management requires a web (frontend + backend) / app combination. Server-generated content, CRUD, API, heavy client-side functionality, usability, many features, large data storage, synchronization, translations.
+
+*sufficient trust*. Understand where trust is coming from and how to maintain it.
+
+> Based on a previous project: Deliver early.  
+> Based on personal recommendation: Maintain relationships.
+
+*sufficient capabilities*. Control over technological & organisational aspects.
+
+> Need to deploy to a server: Have full control over how & when deployments happen
+
+---
+
+class: center, middle
+
+# Plan a successful project
+
+<i>Claim: Small projects (&lt;300h) are accurately estimatable in both time and cost.</i>
+
+---
+
+# Create project plan
+
+Steps:
+- Understand problem to be solved
+- Develop solution concepts
+- Formulate requirements 
+- Estimate cost, reward
+- Schedule implementation
+- Analyse risks
+- Feedback & repeat
+
+> Target: Avoid as much work as possible while still solving the problem.
+
+Reduced uncertainty as much as possible?  
+Contract with customer & start!
+
+---
+
+# Understand business
+
+Interview those who use & those who pay.  
+Research industry, similar products & solutions (potentially of different industries).
+
+Listen carefully:
+- Repetitive "uncreative" work (=automatable)
+- Proposed solutions
+- Tedious tasks (=sucks)
+
+You task is to solve their *problem*.
+
+---
+
+# Formulate requirements
+
+Decompose concept to suitable abstraction level.  
+Do not neglect non-functional requirements (performance, usability, ...).
+
+YAGNI: You Ain't Gonna Need It.  
+**Effort increases in O(exponential) due to complexity.** (*baseless claim alert*)
+
+<img src="images/effort_increases_exponential.png" width="30%">
+<img class="ml-2" src="images/effort_increase_with_new_feature.png" width="30%">
+
+
+---
+
+# Estimate requirements
+
+Cannot predict the future, but **can estimate relative complexity**.  
+Technology / mastery independent!
+
+Tips:
+- Use coarse-grained numbers (Fibonaccy; 1 1 2 3 5 8 13 ...)
+- With more unknowns, tend to increase complexity
+
+Same for rewards.
+Reward / Complexity = Payoff.
+
+| Feature | Complexity | Reward | Payoff |
+| :------ | ---------: | -----: | -----: |
+| Sign-Up | 8 | 5 | 0.625 |
+| Confirm E-Mail | | | |
+| Login | | | |
+| Password Recover | | | |
+| Add Additional E-Mails | | | |
+
+
+---
+
+# Estimate requirements
+
+Cannot predict the future, but **can estimate relative complexity**.  
+Technology / mastery independent!
+
+Tips:
+- Use coarse-grained numbers (Fibonaccy; 1 1 2 3 5 8 13 ...)
+- With more unknowns, tend to increase complexity
+
+Same for rewards.
+Reward / Complexity = Payoff.
+
+
+| Feature | Complexity | Reward | Payoff |
+| :------ | ---------: | -----: | -----: |
+| Sign-Up | 8 | 5 | 0.625 |
+| Confirm E-Mail | 13 | 3 | 0.23 |
+| Login | 5 | 8 | 1.6 |
+| Password Recover | 21 | 5 | 0.24 |
+| Add Additional E-Mails | 21 | 3 | 0.14 |
+
+
+---
+
+# Schedule implementation
+
+Convert complexity into implementation effort.
+
+| Feature | Complexity | Expected | Measured |
+| :------ | ---------: | -------: | -------: |
+| Sign-Up | 8 | - | 3h |
+| Confirm E-Mail | 13 | 5h | ? |
+| Login | 5 | 2h | ? |
+| Password Recover | 21 | 8h | ? |
+| Add Additional E-Mails | 21 | 8h | ? |
+
+Multiplication factors:
+- Technology (low for established, high for often changing)
+- Complexity (increasing factor with more total features)
+- Special requirements (translatable, performance, ...)
+
+> 26h \* 1.1 (PHP only) \* 1.1 (translatable) =  31.5h  
+> 26h \* 1.5 (PHP + JavaScript frontend) \* 1.1 (translatable) = 43h
+
+---
+
+# Schedule implementation
+
+Combine functionality into **features** (=sensible packages).  
+Resolve dependencies & reduce uncertainty.  
+
+> Login 31.5h  
+> Submit vote 23h  
+> Electionsmanagement 10h  
+> Candidatemanagement 16.5h  
+> Vote count 8.5h
+
+**Milestones** should be properly spaced & measurable.
+
+> 1. Deployment of skeleton to server
+> 2. Public voting area
+> 3. Administration area
+> 4. Feedback of trial election processed
+
+
+
+---
+
+# Risk analysis
+
+For overall project & for each feature collect risks.
+
+> Compromise of election data  
+> Users reject tool due to security reasons  
+> Server deployment too constrained
+
+For each risk:
+- Avoid: Eliminate the risk (avoid feature / use different solutions)
+- Transfer: Shift the impact to a 3rd party (like your customer)
+- Mitigate: Decrease the probability or impact (formulate "Plan B")
+
+<span class="color-red">Do not skip risk analysis.</span>
+
+---
+
+# Contract
+
+Formulate a contract.
+
+Content:
+- Vision ("Sales-pitch")
+- Requirements on suitable abstraction level
+- Schedule & Milestones
+- Price & Payment agreements
+
+Advanced:
+- Recommend options based on payoff
+- Maintenance for 10% - 20% yearly effort
+- Legal: Intellectual Property, Bugfixing
+
+Courses:
+- [E-Business Recht](http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=139975&semkez=2020W) (HS)
+- [Contract Design](http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=141671&semkez=2020W) (HS) 
+- [Introduction into Negotiation](http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=135075&semkez=2020S) (FS)
+
+---
+
+# Value of a good plan
+
+**Up until now, an estimated 10 - 30% of total project effort has been spend!**  
+Is it worth it?
+
+Yes!
+- Align expectations (cost, schedule, result)
+- Decrease cost by not implementing lower-value features
+- Decrease risk of project failure
+
+It feels good:
+- Make promises you can keep
+- Customers / Users will be satisfied (and so will you!)
+- You get done, get payed and move on.
+
+*Hint: You can also sell this work as "requirements engineering" or "proof of concept"*.
+
+---
+
+class: center, middle
+
+# Execute a successful project
+
+<i>Core idea: No surprises.</i>
+
+---
+
+# Continuous tasks
+
+*manage expectations*. Keep customer up to date with relevant developments. Incorporate doubts, recent developments and feedback 
+
+> "The milestone is completed, and the next meeting can go along as planned."
+> "Next big maintenance will be completed in 8 months."
+
+*track progress*. Check if estimation matches measurements, and high-risk tasks proceed as expected. Take corrective action as early as sensible!
+
+> Substantial increase in effort for feature: Systematic or one-time?  
+> High-risk tasks: Solution in sight or stuck?
+
+*long-term planning*. Resolve dependencies for future tasks.
+
+> Hosting is ready in one week; delivery is due in two months. Hence can schedule meeting in four weeks to get feedback for final product.
+
+---
+
+# Rollout
+
+Strategies:
+- **Incremental**: Multiple releases, i.e. for each feature. *Additional effort due to shims for future features / release tasks.*
+- **Big Bang**: Single release at the end. *No feedback till the end*.
+
+**Incremental updates usually beats Big Bang**: The earlier issues are found / feedback is incorporated, the cheaper it is.
+
+<hr/>
+
+Changing `person.gender` from `Boolean` to `Text`:
+
+| Start | End | 
+| :------ | ---------: |
+| Add field to table | Add field to table |
+| | Find all usages of field |
+| | Re-understand how and why it is used |
+| | Find new solution & adapt code |
+| | Re-test usage & all related features |
+
+---
+
+class: center, middle, inverted
+
+<div class="pyro">
+    <div class="before"></div>
+    <div class="after"></div>
+</div>
+
+# Done!
+
+---
+
+class: center, middle
+
+# Some closing notes
+
+---
+
+# About changes
+
+Changes happen, deal with it.
+
+Tools:
+- Schedule features early with uncertainty.
+- Explicitly acceptance test features / milestones.
+- Clarify expectations (changes in cost / schedule).
+- Define process how & when changes are applied (and who pays for it).
+
+Baseless claim: Ignoring change requests is as much a project failure as unapproved delays / cost overruns over it.
+---
+
+# About people
+
+Important factor of project not in your control!
+
+Get to know all involved persons:
+- Motivation (agenda?)
+- Way of working (early/late?, procrastination?)
+- Experience (how have they performed in the past?)
+- Personality (impulsive? diligent? analytical? risk-taking?)
+
+Likely True Facts About Peopleâ„¢:
+- People are predictable
+- People change very slowly (too slow for your project)
+- People are good (or at least persuade themselves that they are)
+
+Analysis approaches: [4 Colors](https://www.thecolourworks.com/insights-discovery-colour-types-guide/), [Big 5](https://www.simplypsychology.org/big-five-personality.html), [16 Personalities](https://www.16personalities.com/) (*(un)soundness alert*)
+
+---
+
+# Getting it done
+
+*Getting it done* is hard! 
+- Tedious tasks procrastinated till the end
+- Some level of perfection needs to be reached
+- Bugs right before / immediately after launch likely
+
+Why most private projects never finish...
+
+Tools:
+- Assign buffer before release to get it down
+- Keep days around release free
+- Rollout incrementally to reduce severity of effects
+- Set expectations of customer over risk of release
+
+---
+
+# Enterprise project management
+
+agile management:
+- https://scrumguides.org/scrum-guide.html
+- https://www.scaledagileframework.com/
+
+Measure / estimate:
+- Function points: Points depending on input / output complexity. [IBM, 1979](https://researcher.watson.ibm.com/researcher/view_group.php?id=7298)
+- Use Case points: Translate components of use case diagram into sizes metrics. Adjust for complexity and technical factors. [Objective Systems, 1993](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.604.7842&rep=rep1&type=pdf)
+
+[Project Management Course](http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=149690&semkez=2021S&ansicht=KATALOGDATEN&lang=en):
+- project management models (PMBOK, ...)
+- agile management methods (SCRUM, Lean, Kanban, ...)
+
+---
+
+# Summary
+
+**Favorable project environment**: Established vision & agreement over it. Sensible and stable business case. Sufficient experience, trust and capabilities.
+
+**Project plan**: Solve business problem with as little work as possible. Use relative complexity / rewards to estimate. Schedule to reduce risk & uncertainty early. Analyse & control risk.
+
+**Execution**: Manage expectations & progress. Rollout incrementally & incorporate feedback early. Deal humbly with changes and people. Get It Done.
+
+---
+
+class: center, middle
+
+# Appendix
+
+---
+
+# About bad people
+
+With some, you will not get along!
+
+Powerful combination:
+- Ignorance (don't care about everybody their work affects)
+- Incompetence (don't have relevant experience)
+- Arrogance (don't consider inputs)
+- Rhetorics (can defend their shortcomings)
+
+Options:
+- Fight (usually a bad idea)
+- Co-exist (sometimes not possible)
+- Run (sometimes required)
+    </textarea>
+    <script src="js/remark.min.js" type="text/javascript"></script>
+    <script src="js/remark.driver.js" type="text/javascript"></script>
+  </body>
+</html>
diff --git a/archive/FS18-hacking_session/exercise_files/fileSystems/TestDisk b/spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/TestDisk
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/fileSystems/TestDisk
rename to spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/TestDisk
diff --git a/archive/FS18-hacking_session/exercise_files/fileSystems/image.iso b/spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/image.iso
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/fileSystems/image.iso
rename to spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/image.iso
diff --git a/archive/FS18-hacking_session/exercise_files/fileSystems/partition1 b/spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/partition1
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/fileSystems/partition1
rename to spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/partition1
diff --git a/archive/FS18-hacking_session/exercise_files/fileSystems/partition2 b/spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/partition2
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/fileSystems/partition2
rename to spotlight_archive/FS18-hacking_session/exercise_files/fileSystems/partition2
diff --git a/archive/FS18-hacking_session/exercise_files/grep_exercise.md b/spotlight_archive/FS18-hacking_session/exercise_files/grep_exercise.md
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/grep_exercise.md
rename to spotlight_archive/FS18-hacking_session/exercise_files/grep_exercise.md
diff --git a/archive/FS18-hacking_session/exercise_files/jobs/infiniteloop.sh b/spotlight_archive/FS18-hacking_session/exercise_files/jobs/infiniteloop.sh
old mode 100755
new mode 100644
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/jobs/infiniteloop.sh
rename to spotlight_archive/FS18-hacking_session/exercise_files/jobs/infiniteloop.sh
diff --git a/archive/FS18-hacking_session/exercise_files/supercoolNumericalSimulation.c b/spotlight_archive/FS18-hacking_session/exercise_files/supercoolNumericalSimulation.c
similarity index 100%
rename from archive/FS18-hacking_session/exercise_files/supercoolNumericalSimulation.c
rename to spotlight_archive/FS18-hacking_session/exercise_files/supercoolNumericalSimulation.c
diff --git a/archive/FS18-hacking_session/exercises.pdf b/spotlight_archive/FS18-hacking_session/exercises.pdf
similarity index 100%
rename from archive/FS18-hacking_session/exercises.pdf
rename to spotlight_archive/FS18-hacking_session/exercises.pdf
diff --git a/archive/FS18-hacking_session/solutions.pdf b/spotlight_archive/FS18-hacking_session/solutions.pdf
similarity index 100%
rename from archive/FS18-hacking_session/solutions.pdf
rename to spotlight_archive/FS18-hacking_session/solutions.pdf
diff --git a/archive/HS19-debugging-on-linux/build.sh b/spotlight_archive/HS19-debugging-on-linux/build.sh
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/build.sh
rename to spotlight_archive/HS19-debugging-on-linux/build.sh
diff --git a/archive/HS19-debugging-on-linux/code/a.out b/spotlight_archive/HS19-debugging-on-linux/code/a.out
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/a.out
rename to spotlight_archive/HS19-debugging-on-linux/code/a.out
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/a.out b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/a.out
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/a.out
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/a.out
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/bo b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/bo
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/bo
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/bo
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/bo.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/bo.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/bo.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/bo.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/loi b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/loi
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/loi
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/loi
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/loi.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/loi.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/loi.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/loi.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/ms b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/ms
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/ms
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/ms
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/ms.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/ms.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/ms.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/ms.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/rc b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/rc
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/rc
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/rc
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/rc.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/rc.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/rc.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/rc.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/uaf b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/uaf
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/uaf
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/uaf
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/uaf.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/uaf.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/uaf.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/uaf.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/ud.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/ud.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/ud.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/ud.c
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/ui b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/ui
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/ui
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/ui
diff --git a/archive/HS19-debugging-on-linux/code/bugtype/ui.c b/spotlight_archive/HS19-debugging-on-linux/code/bugtype/ui.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/bugtype/ui.c
rename to spotlight_archive/HS19-debugging-on-linux/code/bugtype/ui.c
diff --git a/archive/HS19-debugging-on-linux/code/gdb-examples/a.out b/spotlight_archive/HS19-debugging-on-linux/code/gdb-examples/a.out
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/gdb-examples/a.out
rename to spotlight_archive/HS19-debugging-on-linux/code/gdb-examples/a.out
diff --git a/archive/HS19-debugging-on-linux/code/gdb-examples/simple.c b/spotlight_archive/HS19-debugging-on-linux/code/gdb-examples/simple.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/gdb-examples/simple.c
rename to spotlight_archive/HS19-debugging-on-linux/code/gdb-examples/simple.c
diff --git a/archive/HS19-debugging-on-linux/code/strace/a.out b/spotlight_archive/HS19-debugging-on-linux/code/strace/a.out
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/strace/a.out
rename to spotlight_archive/HS19-debugging-on-linux/code/strace/a.out
diff --git a/archive/HS19-debugging-on-linux/code/strace/file.c b/spotlight_archive/HS19-debugging-on-linux/code/strace/file.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/strace/file.c
rename to spotlight_archive/HS19-debugging-on-linux/code/strace/file.c
diff --git a/archive/HS19-debugging-on-linux/code/strace/simple.c b/spotlight_archive/HS19-debugging-on-linux/code/strace/simple.c
similarity index 100%
rename from archive/HS19-debugging-on-linux/code/strace/simple.c
rename to spotlight_archive/HS19-debugging-on-linux/code/strace/simple.c
diff --git a/archive/HS19-debugging-on-linux/img/gdb-tui.orig.png b/spotlight_archive/HS19-debugging-on-linux/img/gdb-tui.orig.png
similarity index 100%
rename from archive/HS19-debugging-on-linux/img/gdb-tui.orig.png
rename to spotlight_archive/HS19-debugging-on-linux/img/gdb-tui.orig.png
diff --git a/archive/HS19-debugging-on-linux/img/gdb-tui.png b/spotlight_archive/HS19-debugging-on-linux/img/gdb-tui.png
similarity index 100%
rename from archive/HS19-debugging-on-linux/img/gdb-tui.png
rename to spotlight_archive/HS19-debugging-on-linux/img/gdb-tui.png
diff --git a/archive/HS19-debugging-on-linux/img/logo_blue.pdf b/spotlight_archive/HS19-debugging-on-linux/img/logo_blue.pdf
similarity index 100%
rename from archive/HS19-debugging-on-linux/img/logo_blue.pdf
rename to spotlight_archive/HS19-debugging-on-linux/img/logo_blue.pdf
diff --git a/archive/HS19-debugging-on-linux/img/logo_white.pdf b/spotlight_archive/HS19-debugging-on-linux/img/logo_white.pdf
similarity index 100%
rename from archive/HS19-debugging-on-linux/img/logo_white.pdf
rename to spotlight_archive/HS19-debugging-on-linux/img/logo_white.pdf
diff --git a/archive/HS19-debugging-on-linux/pres.md b/spotlight_archive/HS19-debugging-on-linux/pres.md
similarity index 100%
rename from archive/HS19-debugging-on-linux/pres.md
rename to spotlight_archive/HS19-debugging-on-linux/pres.md
diff --git a/archive/HS19-debugging-on-linux/pres.pdf b/spotlight_archive/HS19-debugging-on-linux/pres.pdf
similarity index 100%
rename from archive/HS19-debugging-on-linux/pres.pdf
rename to spotlight_archive/HS19-debugging-on-linux/pres.pdf
diff --git a/archive/HS19-debugging-on-linux/template.tex b/spotlight_archive/HS19-debugging-on-linux/template.tex
similarity index 100%
rename from archive/HS19-debugging-on-linux/template.tex
rename to spotlight_archive/HS19-debugging-on-linux/template.tex
diff --git a/archive/HS19-scientific_software_management/bib.bib b/spotlight_archive/HS19-scientific_software_management/bib.bib
similarity index 97%
rename from archive/HS19-scientific_software_management/bib.bib
rename to spotlight_archive/HS19-scientific_software_management/bib.bib
index 7e849df66e429d8b20b69f5e5ef8f5aa055d7266..1a8b854b5d6b3b1158219a2d1ca20290ac9d2122 100644
--- a/archive/HS19-scientific_software_management/bib.bib
+++ b/spotlight_archive/HS19-scientific_software_management/bib.bib
@@ -1,24 +1,24 @@
-@conference{repsep,
-	author = {Horea-Ioan Ioanas and Markus Rudin},
-	title = {Reproducible Self-Publishing for {P}ython-Based Research},
-	year = 2018,
-	month = aug,
-	publisher = {EuroSciPy},
-	url = {https://figshare.com/articles/Reproducible_Self-Publishing_for_Python-Based_Research/7247339},
-	doi = {10.6084/m9.figshare.7247339.v1},
-}
-@article{Ioanas2017,
-	author = {Horea-Ioan Ioanas and Bechara Saab and Markus Rudin},
-	title = {Gentoo Linux for Neuroscience - a replicable, flexible, scalable, rolling-release environment that provides direct access to development software},
-	volume = {3},
-	number = {},
-	year = {2017},
-	doi = {10.3897/rio.3.e12095},
-	publisher = {Pensoft Publishers},
-	abstract = {},
-	issn = {},
-	pages = {e12095},
-	URL = {https://doi.org/10.3897/rio.3.e12095},
-	eprint = {https://doi.org/10.3897/rio.3.e12095},
-	journal = {Research Ideas and Outcomes}
-}
+@conference{repsep,
+	author = {Horea-Ioan Ioanas and Markus Rudin},
+	title = {Reproducible Self-Publishing for {P}ython-Based Research},
+	year = 2018,
+	month = aug,
+	publisher = {EuroSciPy},
+	url = {https://figshare.com/articles/Reproducible_Self-Publishing_for_Python-Based_Research/7247339},
+	doi = {10.6084/m9.figshare.7247339.v1},
+}
+@article{Ioanas2017,
+	author = {Horea-Ioan Ioanas and Bechara Saab and Markus Rudin},
+	title = {Gentoo Linux for Neuroscience - a replicable, flexible, scalable, rolling-release environment that provides direct access to development software},
+	volume = {3},
+	number = {},
+	year = {2017},
+	doi = {10.3897/rio.3.e12095},
+	publisher = {Pensoft Publishers},
+	abstract = {},
+	issn = {},
+	pages = {e12095},
+	URL = {https://doi.org/10.3897/rio.3.e12095},
+	eprint = {https://doi.org/10.3897/rio.3.e12095},
+	journal = {Research Ideas and Outcomes}
+}
diff --git a/archive/HS19-scientific_software_management/compile.sh b/spotlight_archive/HS19-scientific_software_management/compile.sh
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-scientific_software_management/compile.sh
rename to spotlight_archive/HS19-scientific_software_management/compile.sh
diff --git a/archive/HS19-scientific_software_management/get_samri_data.sh b/spotlight_archive/HS19-scientific_software_management/get_samri_data.sh
old mode 100755
new mode 100644
similarity index 100%
rename from archive/HS19-scientific_software_management/get_samri_data.sh
rename to spotlight_archive/HS19-scientific_software_management/get_samri_data.sh
diff --git a/archive/HS19-scientific_software_management/img/eb.png b/spotlight_archive/HS19-scientific_software_management/img/eb.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/eb.png
rename to spotlight_archive/HS19-scientific_software_management/img/eb.png
diff --git a/archive/HS19-scientific_software_management/img/fig_new.png b/spotlight_archive/HS19-scientific_software_management/img/fig_new.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/fig_new.png
rename to spotlight_archive/HS19-scientific_software_management/img/fig_new.png
diff --git a/archive/HS19-scientific_software_management/img/fig_old.png b/spotlight_archive/HS19-scientific_software_management/img/fig_old.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/fig_old.png
rename to spotlight_archive/HS19-scientific_software_management/img/fig_old.png
diff --git a/archive/HS19-scientific_software_management/img/fork.png b/spotlight_archive/HS19-scientific_software_management/img/fork.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/fork.png
rename to spotlight_archive/HS19-scientific_software_management/img/fork.png
diff --git a/archive/HS19-scientific_software_management/img/gentoo.png b/spotlight_archive/HS19-scientific_software_management/img/gentoo.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/gentoo.png
rename to spotlight_archive/HS19-scientific_software_management/img/gentoo.png
diff --git a/archive/HS19-scientific_software_management/img/git.png b/spotlight_archive/HS19-scientific_software_management/img/git.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/git.png
rename to spotlight_archive/HS19-scientific_software_management/img/git.png
diff --git a/archive/HS19-scientific_software_management/img/ng_mi.png b/spotlight_archive/HS19-scientific_software_management/img/ng_mi.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/ng_mi.png
rename to spotlight_archive/HS19-scientific_software_management/img/ng_mi.png
diff --git a/archive/HS19-scientific_software_management/img/pm.xcf b/spotlight_archive/HS19-scientific_software_management/img/pm.xcf
similarity index 100%
rename from archive/HS19-scientific_software_management/img/pm.xcf
rename to spotlight_archive/HS19-scientific_software_management/img/pm.xcf
diff --git a/archive/HS19-scientific_software_management/img/pm_d.png b/spotlight_archive/HS19-scientific_software_management/img/pm_d.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/pm_d.png
rename to spotlight_archive/HS19-scientific_software_management/img/pm_d.png
diff --git a/archive/HS19-scientific_software_management/img/pm_g.png b/spotlight_archive/HS19-scientific_software_management/img/pm_g.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/pm_g.png
rename to spotlight_archive/HS19-scientific_software_management/img/pm_g.png
diff --git a/archive/HS19-scientific_software_management/img/pr.png b/spotlight_archive/HS19-scientific_software_management/img/pr.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/pr.png
rename to spotlight_archive/HS19-scientific_software_management/img/pr.png
diff --git a/archive/HS19-scientific_software_management/img/python.png b/spotlight_archive/HS19-scientific_software_management/img/python.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/python.png
rename to spotlight_archive/HS19-scientific_software_management/img/python.png
diff --git a/archive/HS19-scientific_software_management/img/sp.png b/spotlight_archive/HS19-scientific_software_management/img/sp.png
similarity index 100%
rename from archive/HS19-scientific_software_management/img/sp.png
rename to spotlight_archive/HS19-scientific_software_management/img/sp.png
diff --git a/archive/HS19-scientific_software_management/reset_system.sh b/spotlight_archive/HS19-scientific_software_management/reset_system.sh
similarity index 100%
rename from archive/HS19-scientific_software_management/reset_system.sh
rename to spotlight_archive/HS19-scientific_software_management/reset_system.sh
diff --git a/archive/HS19-scientific_software_management/samri/metadata.xml b/spotlight_archive/HS19-scientific_software_management/samri/metadata.xml
similarity index 100%
rename from archive/HS19-scientific_software_management/samri/metadata.xml
rename to spotlight_archive/HS19-scientific_software_management/samri/metadata.xml
diff --git a/archive/HS19-scientific_software_management/samri/samri-0.4.ebuild b/spotlight_archive/HS19-scientific_software_management/samri/samri-0.4.ebuild
similarity index 100%
rename from archive/HS19-scientific_software_management/samri/samri-0.4.ebuild
rename to spotlight_archive/HS19-scientific_software_management/samri/samri-0.4.ebuild
diff --git a/archive/HS19-scientific_software_management/samri/setup.py b/spotlight_archive/HS19-scientific_software_management/samri/setup.py
similarity index 100%
rename from archive/HS19-scientific_software_management/samri/setup.py
rename to spotlight_archive/HS19-scientific_software_management/samri/setup.py
diff --git a/archive/HS19-scientific_software_management/slides.pdf b/spotlight_archive/HS19-scientific_software_management/slides.pdf
similarity index 100%
rename from archive/HS19-scientific_software_management/slides.pdf
rename to spotlight_archive/HS19-scientific_software_management/slides.pdf
diff --git a/archive/HS19-scientific_software_management/slides.tex b/spotlight_archive/HS19-scientific_software_management/slides.tex
similarity index 100%
rename from archive/HS19-scientific_software_management/slides.tex
rename to spotlight_archive/HS19-scientific_software_management/slides.tex
diff --git a/spotlight_archive/HS20-unix_history/.gitattributes b/spotlight_archive/HS20-unix_history/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..5b178db7945de079b412a385c8f232ca72cc0d2e
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/.gitattributes
@@ -0,0 +1,2 @@
+img/ filter=lfs diff=lfs merge=lfs -text
+img/* filter=lfs diff=lfs merge=lfs -text
diff --git a/spotlight_archive/HS20-unix_history/build.sh b/spotlight_archive/HS20-unix_history/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..c474c9fa0eb3c3884e67342db6389c83abd4c62c
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/build.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+echo "Building pdf..."
+pandoc -t beamer --template template.tex --listings pres.md -o pres-part.pdf --pdf-engine pdflatex \
+    && pandoc -t beamer --template template.tex --listings firstslide.md -o firstslide.pdf --pdf-engine pdflatex \
+    && pdfunite firstslide.pdf pres-part.pdf pres.pdf \
+    && rm firstslide.pdf pres-part.pdf \
+    && echo "Build successful"
diff --git a/spotlight_archive/HS20-unix_history/firstslide.md b/spotlight_archive/HS20-unix_history/firstslide.md
new file mode 100644
index 0000000000000000000000000000000000000000..753ac05ecd2e063643da13227fc99b44bd0a7fd2
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/firstslide.md
@@ -0,0 +1,3 @@
+# Welcome to the History of Unix Spotlight Talk!
+
+* If there are any technical problems, let me know!
diff --git a/spotlight_archive/HS20-unix_history/header.tex b/spotlight_archive/HS20-unix_history/header.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e9dd259ce3e9e9cbdafb5bd0dfa6c3055e30c577
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/header.tex
@@ -0,0 +1,133 @@
+\usepackage[T1]{fontenc} %pipes don't display properly without this
+\usepackage[utf8]{inputenc}
+\usepackage{listings}
+\usepackage{color}
+\usepackage{datapie}
+\usepackage{multicol}
+\usepackage{siunitx} %pretty measurement unit rendering
+\usepackage{hyperref} %enable hyperlink for urls
+\usepackage{caption} % needed to tweak caption size
+
+
+\usefonttheme[onlymath]{serif}
+\setcounter{MaxMatrixCols}{20}
+
+\DeclareSIUnit\pixel{px}
+
+\usecolortheme[RGB={37,68,113}]{structure}
+\usetheme{Dresden}
+
+\newenvironment{figurehere}
+{\def\@captype{figure}}
+{}
+\makeatother
+
+%commands to exclude sections from miniframes
+\makeatletter
+\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
+\def\beamer@writeslidentry@miniframesoff{%
+   	\expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
+   	{%else
+   		% removed \addtocontents commands
+   		\clearpage\beamer@notesactions%
+   	}
+}
+\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
+\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
+\beamer@compresstrue
+\makeatother
+
+
+%various gray colors
+\definecolor{slg}{gray}{0.25}
+\definecolor{lg}{gray}{0.55}
+\definecolor{vlg}{gray}{0.73}
+\definecolor{tlg}{gray}{0.9}
+
+%TheAlt colors
+\definecolor{ldorange}{HTML}{F18A20}
+\colorlet{ldbright}{ldorange!70!white} % tinted version of orange, used in miniframes
+\definecolor{ldblue}{HTML}{254471}
+
+%reduce caption font size:
+\captionsetup{font={scriptsize,color=lg}}
+
+%do not prepend numbering/lettering to figures/subfigures
+\captionsetup{labelformat=empty} %do not prepend letters to figure captions
+
+%Apply TheAlt colors to theme
+ % section titles in top navigation bar
+\setbeamercolor{section in head/foot}{parent=palette tertiary,fg=ldorange}
+\setbeamertemplate{section in head/foot shaded}{\color{ldbright}\usebeamertemplate{section in head/foot}}
+ % miniframes (little navigation circles)
+\setbeamercolor*{mini frame}{fg=ldorange,bg=ldbright}
+\setbeamertemplate{mini frame in other section}[default][0]
+\setbeamertemplate{mini frame in other subsection}[default][0]
+ % others
+\setbeamercolor{author in head/foot}{fg=white}
+\setbeamercolor{subsection in head/foot}{fg=white}
+\setbeamercolor{caption name}{fg=vlg}
+\setbeamercolor{caption}{fg=vlg}
+\setbeamercolor{frametitle}{fg=ldblue}
+
+\setbeamertemplate{caption}{\raggedright\insertcaption\par}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{bibliography item}[text]
+
+\definecolor{mygreen}{rgb}{0,0.6,0}
+\definecolor{mygray}{rgb}{0.5,0.5,0.5}
+\definecolor{mymauve}{rgb}{0.58,0,0.82}
+
+\lstdefinestyle{custombash}{
+	belowcaptionskip=1\baselineskip,
+	captionpos=,
+	breaklines=true,
+	frame=L,
+	xleftmargin=\parindent,
+	language=bash,
+	showstringspaces=false,
+	basicstyle=\scriptsize\ttfamily,
+	rulecolor=\color{tlg},
+	backgroundcolor=\color{tlg},
+	fillcolor=\color{tlg},
+	rulesepcolor=\color{tlg},
+	commentstyle=\itshape\color{purple!60!black},
+	keywordstyle=\bfseries\color{ldorange!80!black},
+	%keywordstyle=\bfseries\color{green!40!black},
+	identifierstyle=\color{blue},
+	stringstyle=\color{orange},
+}
+
+\lstset{language=Bash,style=custombash,caption={Descriptive Caption Text},label=DescriptiveLabel}
+
+\title{Bash Workshop}
+\author{Aline Abler}
+
+\institute{\includegraphics[width=0.35\textwidth]{img/logo_blue.pdf}}
+
+
+\renewcommand{\emph}[1]{\textcolor{ldorange}{#1}}
+\newcommand{\soft}[1]{\textcolor{lg}{#1}}
+\newcommand{\textt}[1]{\textcolor{blue}{\texttt{#1}}}
+\newcommand{\bigtext}[1]{\centering\Huge \textbf{\textcolor{ldorange}{#1}}}
+
+%shortcut to insert small logo in footline
+\def\logo{%
+	\resizebox{!}{3ex}{\includegraphics{img/logo_white.pdf}}
+}
+
+% Define a custom footline that includes our logo
+\setbeamertemplate{footline}
+{%
+	\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
+		leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}
+		\usebeamerfont{title in head/foot}%
+		\insertshorttitle\hfill\insertframenumber
+	\end{beamercolorbox}
+	\begin{beamercolorbox}[wd=\paperwidth,ht=3.5ex,dp=1.625ex,%
+		leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}
+		\usebeamerfont{author in head/foot}
+		\raisebox{0.5ex}{\insertshortauthor}\hfill\raisebox{-0.5ex}{\logo}
+	\end{beamercolorbox}
+}
+
diff --git a/spotlight_archive/HS20-unix_history/img/bk.jpg b/spotlight_archive/HS20-unix_history/img/bk.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..64f177069aae03b11d04742119c542e5567e249a
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/bk.jpg differ
diff --git a/spotlight_archive/HS20-unix_history/img/kt_and_dr.jpg b/spotlight_archive/HS20-unix_history/img/kt_and_dr.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ecc23cdf55df862bba1fcea6d0d961c5cf96c53
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/kt_and_dr.jpg differ
diff --git a/spotlight_archive/HS20-unix_history/img/logo_blue.pdf b/spotlight_archive/HS20-unix_history/img/logo_blue.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..dd60efc4c6899371b6086d097bd64d744d55b127
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/logo_blue.pdf differ
diff --git a/spotlight_archive/HS20-unix_history/img/logo_white.pdf b/spotlight_archive/HS20-unix_history/img/logo_white.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..74e15f9b659f0609691256ad2075f21bec24882a
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/logo_white.pdf differ
diff --git a/spotlight_archive/HS20-unix_history/img/pdp7-oslo.jpg b/spotlight_archive/HS20-unix_history/img/pdp7-oslo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9e881c29e35dd0c840692db5dbfad15b4c9477b8
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/pdp7-oslo.jpg differ
diff --git a/spotlight_archive/HS20-unix_history/img/unix_tl.png b/spotlight_archive/HS20-unix_history/img/unix_tl.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe50d32c0b4860cdc6b01520a54d3e865f47f927
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/img/unix_tl.png differ
diff --git a/spotlight_archive/HS20-unix_history/pres.md b/spotlight_archive/HS20-unix_history/pres.md
new file mode 100644
index 0000000000000000000000000000000000000000..ba130ec5725a0e631c3830cf5a2c4c8764d1310a
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/pres.md
@@ -0,0 +1,613 @@
+---
+author:
+- Nicolas König
+title: A Short History of Unix
+
+---
+
+# What is Unix?
+
+## What is Unix?
+
+### 
+
+\bigtext{What is Unix?}
+
+### The Definition
+
+A system can call itself *Unix* if it conforms to the *Single Unix Specification* maintained by *The Open Group*.
+
+<!--
+  Talk about standardization later
+-->
+
+### Difference between Unix and Linux
+
+Unix is an interface description, Linux is an OS
+
+- Linux's syscall interface doesn't provide all the required functions
+- Also, to be complient, many more things have to be provided
+  - header files
+  - struct definitions
+  - even shell & command line utilities 
+- More on that later
+
+### Current Unixs
+
+- MacOS
+- AIX
+- Only one Linux distributions (EulerOS)!
+  - All of them still adhere to the standards very closely
+
+<!-- 
+  Doing the conformance tests is expansive
+-->
+
+# The Early Days
+
+## The Early Days
+
+###
+
+\bigtext{The Early Days}
+
+## Context for the creation
+
+### Bell Labs
+
+* Part of telephone-monopoly company AT&T
+* very "free" research culture
+  * The choice of research topic was largely decided by the researchers
+* 9 Nobel price winners!
+
+
+### Multics
+
+* "MULTiplexed Information and Computing Service"
+* Collaboration between Bell Labs, General Electric and the MIT
+* Successor to MIT's Compatible Time Sharing System (CTSS)
+
+
+<!--
+  With modern eyes: Very weird features
+  Grand unified memory, no distinction between files and "normal" memory
+  both called resounding success and an utter failure
+-->
+
+### Thompson, Kerningham, Ritchi
+
+```{=latex}
+\begin{figure}
+  \centering
+  \includegraphics[width=0.5\textwidth]{img/kt_and_dr.jpg}
+\end{figure}
+```
+
+### Thompson, Kerningham, Ritchi
+
+```{=latex}
+\begin{figure}
+  \centering
+  \includegraphics[width=0.6\textwidth]{img/bk.jpg}
+\end{figure}
+```
+
+<!--
+  Kerningham & Ritchi both worked on Mutlics
+-->
+
+### The PDP-7 
+
+* 8K 18-bit words memory
+* ca. 570 kHz
+* Produced by the Digital Equipment Cooperation (DEC)
+
+### The PDP-7 
+
+\begin{figure}
+  \includegraphics[width=0.5\linewidth]{img/pdp7-oslo.jpg}
+  \caption{A restored PDP-7}
+\end{figure}
+
+<!--
+  Weak computer
+  No interest in buying a new one after Multics disaster
+  Used for Circuit desing, but most of the time free
+-->
+
+## The First Unix
+
+### A Game
+
+\centering
+First, there was a Game
+
+
+
+### An IO-Scheduler
+
+\centering
+Then, an IO-Scheduler
+
+<!--
+  Disk inside was too fast 
+  Needed a program to put data on it
+-->
+
+### An Operating System
+
+\bigtext{"At some Point I realized I was just three weeks away from an operating system."}
+
+<!--
+  Still missing 3 (exec,) editor, shell, assembler
+  Wife away 3 weeks -> one week per programm
+-->
+
+### The Unix Philosophy
+
+\bigtext{Make each program do one thing well}
+
+### The Unix Philosophy
+
+\centering
+If you only have this little memory, you can't make your programs complex!
+
+\centering
+It turned out, that this is a good idea in general
+
+## Released Unix Versions
+
+### The First Edition
+
+Released in Nov. 1971
+
+* Supported the PDP-11
+* relatively feature-rich
+* already included a Fortran compiler
+
+<!-- 
+  Story on how they got the PDP-11
+  	Patent applications!
+  Name comes from the manual, development very fast
+    hand-inserted patches when it was send out
+	"Love, Ken"
+-->
+
+### Common Utilities
+
+* A lot of commonly known utilities already included in the first release
+  * `cd`, `chown`, `ls`, `cp`, `dc`, `ln`, `su`, `who`, ...
+
+### The Third Edition
+
+Released in Feb. 1973
+
+* Included a C compiler
+* Included first implementation of pipes
+
+### The C Programming Language
+
+* Heavily influenced by BCPL
+* Designed as a system programming language
+* The language still looked slightly different
+  * The Dialect is known as K&R-C
+* Publicised in the book "The C Programming Language" by Kerningham & Ritchi
+
+### The C Programming Language
+
+```c
+foo(a, b)
+  int a;
+  int *b;
+{
+  return a + *b;
+}
+```
+### Fourth Edition
+
+Released in Nov. 1973
+
+* The first edition almost completely written in C
+  * Made portability possible
+* Typically licensed with source code (and for a nominal fee)
+
+### Seventh Edition
+
+Released in Jan. 1979
+
+* Many new tools still in use today
+  * `awk`, `make`, `sed`, `tar`
+* Included the first version of the Bourne Shell (`sh`)
+* Included a fully featured Fortran77 Compiler
+
+### A story of overwhelming success
+
+The number of installed Systems rapidly increased
+
+- 2. Edition (Jun. 1972): 10 systems inside AT&T
+- 5. Edition (Jun. 1974): 50 systems inside AT&T
+
+By 1977, it was running on 500 sites, including 125 Universities
+
+<!--
+  Mind how large systems where at that time!
+-->
+
+# The Unix War
+
+## The Unix War
+
+###
+
+\bigtext{The Unix War}
+
+## The two large competitors
+
+### Berkley Software Distribution (BSD)
+
+* Thompson was a visiting Professor at UCal in the year 1975/1976
+
+There, many new tools and features where developed
+
+  * the editor `vi`
+  * `sendmail`
+  * a Pascal Compiler
+
+Then, with 3BSD (1979), a full Unix distribution was released
+
+<!--
+  Worth mentioning: 
+  - the Berkley Fast File System
+-->
+
+### BSD
+
+They also wrote a port to DEC's new VAX architecture
+
+- Added support for Virtual memory
+
+<!--
+  C paid off!
+
+  Might not be clear today, but DEC was __big__ back then.
+  VAX and Unix where so far intertwined that "Not all the world's a VAX" made
+  it into the "10 commandments for C programmers"
+    
+  The only other two ports existing was an intercal (7&8)/32 ports
+-->
+
+### 4.2BSD
+
+Released in 1983
+
+- Added sockets and a complete TCP/IP-stack
+
+<!--
+  THE defining feature for BSD-Linux
+-->
+
+
+### System V
+
+In 1982, antitrust legislation forces AT&T to break up
+
+- Lifts the ban on selling software
+
+<!--
+  Baby Bells!
+-->
+
+### System V
+
+\centering
+AT&T immideatly proceeded to bundle Unix for commercial use and released System V in 1983
+
+<!--
+  Not the first commercial AT&T Unix release, 1981 System III (a lot of the
+  legal stuff had already been settled)
+-->
+
+### System V Release 1 (SVR1)
+
+- Added an extensive interprocess communication API
+- Also included many features from BSD
+  - `curses`
+  - `vi`
+
+### Derivatives of the Two
+
+There where many derivatives by different companies.
+
+For BSD:
+
+- SunOS
+- Xenix
+
+and for System V:
+
+- HP-UX
+- AIX
+
+<!--
+  Even Microsoft made their own!
+-->
+
+### Derivatives
+
+```{=latex}
+\begin{figure}
+  \includegraphics[width=0.8\linewidth]{img/unix_tl.png}
+\end{figure}
+```
+
+### System V Release 4 (SVR4)
+
+- The most successful release of System V
+- Result of a unification drive between several Unix vendors
+- Added a lot of features from all over the Unix world
+  - `ksh`
+  - ELF file format
+  - TCP/IP-support
+
+### X/Open
+
+The drive for unification was formalized in the formation of the X/Open consortium
+
+- It was supposed to provide compatibility guides and standards
+- Would later go on to acquire the rights to the Unix name
+
+BSD, out of fear over the influence of AT&T & Sun, founded its own alternative, the
+Open Software Foundation.
+
+* AT&T then founded, as an answer, Unix International.
+
+<!--
+  When I'm saying BSD, I mean people using BSD
+  OSF != FSF, carefull
+-->
+
+### Differences
+
+There were huge differences between these two distributions
+
+Both technical
+
+- System V `STREAM` (introduced with SRV3) vs. Berkley `socket`
+
+and culturally
+
+- "long-haired Berkley" vs. "short-haired AT&T"
+
+<!--
+  Example: 	AT&T: System V: Consider it Standard
+  			BSD Leute 4.2 > V
+  		   
+-->
+
+### Differences
+
+\centering
+The differences between the two are still found all throughout UNIX!
+
+### Differences
+
+From bigger
+
+* System V used `/usr/bin` and `/usr/sbin`, Berkley `/bin` and `/sbin`
+
+to smaller things
+
+* The `ps` command takes two kinds of arguments
+  * `ps aux`: BSD-style arguments
+  * `ps -eL`: System V style
+
+### 1-800-ITS-UNIX
+
+Berkley System Distribution, inc. (BSDi) was formed 1991
+
+- immediately sued by AT&T (1992)
+  - Usage of the Unix trademark
+  - Illegal distribution of AT&T source code
+- Settled out of court in favor of BSDi (1994)
+
+<!--
+  Every story of the history of Unix should mention the law suits
+  almost all AT&T code stripped in previous releases
+  in the end, AT&T lost, only a few source files had to be removed and a few more given attribution
+-->
+
+<!--
+
+# The Ascend of Linux
+
+## The Early Days
+
+### The GNU project
+
+### Linus Torvalds
+
+### The Email
+
+-->
+
+# Standards
+
+## Standards
+
+###
+
+\bigtext{Standards}
+
+## Early Standardisation
+
+### The ANSI-C Standard
+
+* drive for standardization started in the early 1980s
+* Many new features added
+  * `void`, function prototypes, type qualifiers,...
+
+Finally released by ANSI as *X3.159-1989*, it usually called ANSI-C or C89
+
+<!--
+  Released in 1989, as the name says
+-->
+
+### Posix.1
+
+* "Portable Operating System Interface" + -x for Unix
+* standardizes the interface C programs use to interact with the OS
+* can be implemented by any OS!
+* Standadized by *ISO/IEC 9945-1:1990*
+
+<!--
+  I'll quickly skip over Posix.2, which defined a whole bunch of things about the
+  execution eviroment such as the interface to the C compiler and shell utilitties
+-->
+
+### Posix.1b/c
+
+There where two important extensions for the standard
+
+- Posix.1b\
+  realtime extensions
+- Posix.1c \
+  posix threads
+
+Eventually leading to *ISO/IEC 9945-1:1996*, a revised version of *Posix.1*
+
+<!--
+  You will see these when looking through man pages!
+  Interestingly, these real time extensions are different from SRV4s!
+-->
+
+### The Open Group
+
+- Formed in 1996 from a merger between X/Open and the Open Software Foundation
+- Inherited the rights to the Unix name from X/Open
+- Continued X/Opens standarization
+
+<!--
+  Remmeber X/Open from before
+-->
+
+### X/Open Portability Guide
+
+X/Open (and later The Open Group) released portability guides (XPG)
+
+- based upon Posix and typical practices
+- The guides where later renamed to "Single Unix Specification" (SUS)
+- *XPG4* and *XPG5* (later *SUSv1* and *SUSv2*) where the two most influential standards
+  - Conformance required to call something Unix!
+
+<!--
+  Remember X/Open from before?
+  X/Open turned into The Open Group after the Open Software
+-->
+
+### Posix.1-2001/SUSv3
+
+in 1999, The Open Group and the ISO/IEC Joint Technical Committee 1 collaborated on a new standard
+
+- Meant to unify SUSv2 and Posix
+- Eventually resulted in *Posix.1-2001* / *ISO/IEC 9945:2002* / *SUSv3*
+  - most commonly referred to as *SUSv3*
+- 3700 Pages!
+
+### Posix.1-2001/SUSv3
+
+Split in four part
+
+- *Base Definition*\
+  Concepts, Definitions, Contents of headers
+- *System Interfaces*\
+  Specification of various functions (1123 in total)
+- *Shell and Utilities*\
+  Specifies the shell and utilities (160)
+- *Rational*\
+  Contains explanations and justifications
+
+### Posix.1-2008 / SUSv4
+
+- The newest standard
+- Not many changes relative to the previous standard
+
+## Weird Features
+
+### 
+
+\centering
+A few weird features of earlier distributions made it into the standards
+
+### gets()
+
+```c
+char *gets(char *);
+```
+
+Reads a line from stdin.
+
+- No way to tell gets the length of the buffer!
+
+### hsearch()
+
+```c
+#include <search.h>
+
+int hcreate(size_t nel);
+// The two available actions are FIND and ENTER
+ENTRY *hsearch(ENTRY item, ACTION action);
+void hdestroy(void);
+```
+Does anyone notice something weird?
+
+### insque()
+
+```c
+#include <search.h>
+
+void insque(void *elem, void *prev);
+void remque(void *elem);
+```
+
+These functions require you to pass in structs with a certain layout!
+
+<!--
+  They also do only have the job, the other have you have to do yourself
+  Direct wrapper around `incque` instruction on VAX machines
+-->
+
+### Prefixed struct fields
+
+```c
+struct addrinfo {
+               int              ai_flags;
+               int              ai_family;
+			   /* ... */
+               struct addrinfo *ai_next;
+           };
+```
+
+Why are the fields in these structs prefixed?
+
+- K&R-C just threw struct fields in the global namespace!
+
+### Shared Memory
+
+There are two (incompatible) shared memory implementations! 
+
+- System V-style: `shmget`
+- Posix Style: `shm_open`
+
+# Conclusions
+
+## Conclusions
+
+### Conclusions
+
+\centering
+We know know both what Unix is and where it comes from
+
+###
+
+\centering
+Thank you for listening! Any questions?
diff --git a/spotlight_archive/HS20-unix_history/pres.pdf b/spotlight_archive/HS20-unix_history/pres.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..642a2a256137610b87ddd2689306da7955a7c512
Binary files /dev/null and b/spotlight_archive/HS20-unix_history/pres.pdf differ
diff --git a/spotlight_archive/HS20-unix_history/template.tex b/spotlight_archive/HS20-unix_history/template.tex
new file mode 100644
index 0000000000000000000000000000000000000000..899e92dcb25b20aa6cd8bacd37694595a7c19988
--- /dev/null
+++ b/spotlight_archive/HS20-unix_history/template.tex
@@ -0,0 +1,189 @@
+\documentclass[aspectratio=169,12pt]{beamer}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc} %pipes don't display properly without this
+\usepackage[utf8]{inputenc}
+\usepackage{listings}
+\usepackage{color}
+\usepackage{datapie}
+\usepackage{multicol}
+\usepackage{siunitx} %pretty measurement unit rendering
+\usepackage{hyperref} %enable hyperlink for urls
+\usepackage{caption} % needed to tweak caption size
+\usepackage{subcaption}
+
+\newcommand{\passthrough}[1]{#1}
+
+\usefonttheme[onlymath]{serif}
+\setcounter{MaxMatrixCols}{20}
+
+\DeclareSIUnit\pixel{px}
+
+\usecolortheme[RGB={37,68,113}]{structure}
+\usetheme{Dresden}
+
+\newenvironment{figurehere}
+{\def\@captype{figure}}
+{}
+\makeatother
+
+%commands to exclude sections from miniframes
+\makeatletter
+\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
+\def\beamer@writeslidentry@miniframesoff{%
+   	\expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
+   	{%else
+   		% removed \addtocontents commands
+   		\clearpage\beamer@notesactions%
+   	}
+}
+\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
+\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
+\beamer@compresstrue
+\makeatother
+
+
+\providecommand{\tightlist}{%
+  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
+
+
+%various gray colors
+\definecolor{slg}{gray}{0.25}
+\definecolor{lg}{gray}{0.55}
+\definecolor{vlg}{gray}{0.73}
+\definecolor{tlg}{gray}{0.9}
+
+%TheAlt colors
+\definecolor{ldorange}{HTML}{F18A20}
+\colorlet{ldbright}{ldorange!70!white} % tinted version of orange, used in miniframes
+\definecolor{ldblue}{HTML}{254471}
+
+%%Theme colors
+%\definecolor{thgreen}{HTML}{A1A92C}
+%\definecolor{thmauve}{HTML}{97284D}
+
+%Theme colors
+\definecolor{thgreen}{HTML}{539727}
+\definecolor{thmauve}{HTML}{572272}
+
+%reduce caption font size:
+\captionsetup{font={scriptsize,color=lg}}
+
+%do not prepend numbering/lettering to figures/subfigures
+\captionsetup{labelformat=empty} %do not prepend letters to figure captions
+
+%Apply TheAlt colors to theme
+ % section titles in top navigation bar
+\setbeamercolor{section in head/foot}{parent=palette tertiary,fg=ldorange}
+\setbeamertemplate{section in head/foot shaded}{\color{ldbright}\usebeamertemplate{section in head/foot}}
+ % miniframes (little navigation circles)
+\setbeamercolor*{mini frame}{fg=ldorange,bg=ldbright}
+\setbeamertemplate{mini frame in other section}[default][0]
+\setbeamertemplate{mini frame in other subsection}[default][0]
+ % others
+\setbeamercolor{author in head/foot}{fg=white}
+\setbeamercolor{subsection in head/foot}{fg=white}
+\setbeamercolor{caption name}{fg=vlg}
+\setbeamercolor{caption}{fg=vlg}
+\setbeamercolor{frametitle}{fg=ldblue}
+
+\setbeamertemplate{caption}{\raggedright\insertcaption\par}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{bibliography item}[text]
+
+\definecolor{mygreen}{rgb}{0,0.6,0}
+\definecolor{mygray}{rgb}{0.5,0.5,0.5}
+\definecolor{mymauve}{rgb}{0.58,0,0.82}
+
+\lstdefinestyle{custombash}{
+	belowcaptionskip=1\baselineskip,
+	captionpos=,
+	breaklines=true,
+	frame=L,
+	xleftmargin=\parindent,
+	language=bash,
+    morestring=[b]',
+    morekeywords=[2]{sudo,zypper,notify-send,feh,youtube-dl,sort,tee,head,tail,shuf,mpv,find,convert,xrandr,curl,wget,grep,xdotool,rm,cp,mv,touch,bash,chmod,mkdir,rsync,mplayer,mpv,xdotool,jshon},
+	showstringspaces=false,
+	basicstyle=\scriptsize\ttfamily,
+	rulecolor=\color{tlg},
+	backgroundcolor=\color{tlg},
+	fillcolor=\color{tlg},
+	rulesepcolor=\color{tlg},
+	commentstyle=\itshape\color{thmauve!60!black},
+    keywordstyle=\bfseries\color{thgreen},
+    identifierstyle=\color{ldblue},
+    stringstyle=\color{thmauve}
+}
+
+\lstset{
+    style=custombash,
+    caption={Descriptive Caption Text},
+    label=DescriptiveLabel
+}
+
+$if(title)$
+\title{$title$}
+$endif$
+$if(subtitle)$
+\subtitle{$subtitle$}
+$endif$
+$if(author)$
+\author{$for(author)$$author$$sep$ \and $endfor$}
+$endif$
+
+\institute{\includegraphics[width=0.35\textwidth]{img/logo_blue.pdf}}
+\date{$date$}
+
+\renewcommand{\emph}[1]{\textcolor{ldorange}{#1}}
+\let\oldtextbf\textbf
+\renewcommand{\textbf}[1]{\textcolor{ldorange}{\oldtextbf{#1}}}
+\newcommand{\soft}[1]{\textcolor{lg}{#1}}
+\newcommand{\textt}[1]{\textcolor{blue}{\texttt{#1}}}
+\newcommand{\bigtext}[1]{\centering\Huge \textbf{\textcolor{ldorange}{#1}}\normalsize}
+
+%shortcut to insert small logo in footline
+\def\logo{%
+	\resizebox{!}{3ex}{\includegraphics{img/logo_white.pdf}}
+}
+
+% Define a custom footline that includes our logo
+\setbeamertemplate{footline}
+{%
+	\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
+		leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}
+		\usebeamerfont{title in head/foot}%
+		\insertshorttitle\hfill\insertframenumber
+	\end{beamercolorbox}
+	\begin{beamercolorbox}[wd=\paperwidth,ht=3.5ex,dp=1.625ex,%
+		leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}
+		\usebeamerfont{author in head/foot}
+		\raisebox{0.5ex}{\insertshortauthor}\hfill\raisebox{-0.5ex}{\logo}
+	\end{beamercolorbox}
+}
+
+\begin{document}
+
+$if(title)$
+\frame{\titlepage}
+$endif$
+
+$for(include-before)$
+$include-before$
+
+$endfor$
+
+$if(toc)$
+\begin{frame}
+\tableofcontents[hideallsubsections]
+\end{frame}
+
+$endif$
+
+$body$
+
+$for(include-after)$
+$include-after$
+
+$endfor$
+
+\end{document}
diff --git a/spotlight_archive/HS20-vim/demos/maze b/spotlight_archive/HS20-vim/demos/maze
new file mode 100644
index 0000000000000000000000000000000000000000..1c88be50eab0b4ca312ed65f0e3769629d1fb3c0
--- /dev/null
+++ b/spotlight_archive/HS20-vim/demos/maze
@@ -0,0 +1,23 @@
++----+-----+---+---------+---+----------+ 
+||   |     |   |         |   |     |   || 
+||S| | | | | | | | | |- -+ | | | | | | || 
+||-+ + | +-+ | | | +-+ + +-+ | | +-+ | || 
+||     |     | | |   |   |     |     | || 
+|| ----+-----+ | | --+- -+ ----+-----+ || 
+||          +--+ |       |          +--+| 
+|| | + | -+    | | +---- | | + | -+    || 
+|| |   |  +--+ | | |     | |   |  +--+ || 
+|| +---+---+ | | | +-----+ +---+---+ | || 
+||         |     |                 |   || 
+|+---+---- +---+-+------ +---+---+ |---+| 
+||   |     |   |         |   |     |   || 
+|| | | | | | | | | | |- -+ | | | | | | || 
+|+-+ | | +-+ | | | +-+ + +-+ | | +-+ | || 
+||     |     | | |   |   |     |     | || 
+|| ----+-----+ | | --+- -+ ----+-----+ || 
+||          +--+ |       |          +--+| 
+|| | + | -+    | | +---- | | + | -+    || 
+|| |   |  +--+ | | |     | |   |  |+-+ || 
+|| +---+---+ | | | +-----+ +---+--+| | || 
+||        E|     |       |         |   || 
++----------------+-------+---------+----+ 
diff --git a/spotlight_archive/HS20-vim/demos/shopping_list b/spotlight_archive/HS20-vim/demos/shopping_list
new file mode 100644
index 0000000000000000000000000000000000000000..97ebf3bd8e5e058acb0987b62b496b409e43a8a7
--- /dev/null
+++ b/spotlight_archive/HS20-vim/demos/shopping_list
@@ -0,0 +1,12 @@
+Some price list
+---------------
+
+Tomatoes        - 2.50
+Pasta           - 6.20
+Sofa            - 299.00
+Trees           - 4.20
+Apples          - 2.90
+Bananas         - 3.45
+Alarm clock     - 29.95
+
+0.00
diff --git a/spotlight_archive/HS20-vim/vimcourse_nils2020.odp b/spotlight_archive/HS20-vim/vimcourse_nils2020.odp
new file mode 100644
index 0000000000000000000000000000000000000000..66aecaffe9704bc75c76ab276ac58edeebafd96f
Binary files /dev/null and b/spotlight_archive/HS20-vim/vimcourse_nils2020.odp differ
diff --git a/web/LICENSE b/web/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..06f73c1a5b62f9d1ff1d55054a02a1ae1f5b2152
--- /dev/null
+++ b/web/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Florian Moser
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/web/README.md b/web/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2ae1bd1acf7761b697bb5424dd25f06d554dae73
--- /dev/null
+++ b/web/README.md
@@ -0,0 +1,15 @@
+# Crashcourse personal/course Website
+This is a crash course into web development. Do you want to create your own personal (research?) webpage, customize a theme, or event want to become a web developer? This will help you to get started.
+
+We will introduce HTML, CSS, JavaScript and PHP and add some design / user experience on the way. You need no prior knowledge, and need not to be a programmer. After the course, you can get started with your simple research webpage, or embark on the journey to become a web developer.
+
+## Inhalt
+This course will give you a basic understanding of everything you need to create websites. 
+
+Chapters:
+- HTML: Structure your content.
+- CSS: Design.
+- JavaScript: Functionality in the browser.
+- PHP: Generate content on the server.
+
+For each chapter, we will see easy applications for personal webpage concepts. Further, we will quickly discuss resources & technologies for aspiring developers.
\ No newline at end of file
diff --git a/web/css/remark.css b/web/css/remark.css
new file mode 100644
index 0000000000000000000000000000000000000000..dd1a53f6b39862def7d7326f28f7bb1062c2bf6f
--- /dev/null
+++ b/web/css/remark.css
@@ -0,0 +1,29 @@
+body { font-family: sans-serif; }
+h1, h2, h3 {
+  font-family: serif;
+  font-weight: normal;
+}
+.remark-code, .remark-inline-code { font-family: monospace; }
+
+.inverted { color: white; background: black; }
+
+.rectangle {
+  display: inline-block;
+
+  background: #9FCFF8;
+  width: 60px;
+  height: 20px;
+  padding: 50px;
+  margin: 20px;
+  border: 10px solid #FFE599;
+}
+
+.row {
+    display: flex;
+}
+
+.column {
+	flex-basis: 0;
+	flex-grow: 1;
+	max-width: 100%;
+}
\ No newline at end of file
diff --git a/web/css/remark.print.css b/web/css/remark.print.css
new file mode 100644
index 0000000000000000000000000000000000000000..f941e74a5d929a1b0774a863c5974b59f07733bf
--- /dev/null
+++ b/web/css/remark.print.css
@@ -0,0 +1,9 @@
+@media print {
+  .remark-slide-scaler {
+    width: 100% !important;
+    height: 100% !important;
+    transform: scale(1) !important;
+    top: 0 !important;
+    left: 0 !important;
+  }
+}
\ No newline at end of file
diff --git a/web/example_01_template.html b/web/example_01_template.html
new file mode 100644
index 0000000000000000000000000000000000000000..f35c2336432819466b590350cc984ce66d6f9a2d
--- /dev/null
+++ b/web/example_01_template.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <title>Hello, world!</title>
+    <meta name="description" content="A simple HTML document.">
+  </head>
+  <body>
+    <h1>Hello, world!</h1>
+	<p>This demonstrates a simple HTML document.</p>
+  </body>
+</html>
\ No newline at end of file
diff --git a/web/example_02_position.html b/web/example_02_position.html
new file mode 100644
index 0000000000000000000000000000000000000000..55ca426348b849b8726d3501a592b39f0eff2e74
--- /dev/null
+++ b/web/example_02_position.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <title>Hello, positions!</title>
+    <meta name="description" content="A HTML document demonstrating positioning.">
+	<style>
+		.container-outer {
+		  position: relative;
+		  top: 10px;
+		  width: 100%;
+		  height: 90px;
+		  background-color: blue;
+		}
+
+		.container-inner {
+		  position: absolute;
+		  top: 50px;
+		  right: 50px;
+		  width: 100%;
+		  height: 30px;
+		  background-color: yellow;  
+		}
+	</style>
+  </head>
+  <body>
+	<div class="container-outer">
+		<div class="container-inner">
+		</div>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/web/example_03_datatable.html b/web/example_03_datatable.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e4cf677bc529d38cd4bdda1284f675374312f2a
--- /dev/null
+++ b/web/example_03_datatable.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <title>Hello, table!</title>
+    <meta name="description" content="A HTML document with an interactive table.">
+	
+	<!-- jQuery -->
+	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
+	
+	<!-- DataTable -->
+	<link rel="stylesheet" href="https://cdn.datatables.net/1.10.23/css/jquery.dataTables.min.css">
+	<script src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script> 
+	
+	<script>
+		$(document).ready(function () {
+			$('.table-interactive').DataTable();
+		});
+	</script>
+  </head>
+  <body>
+    <h1>Hello, table!</h1>
+	<p>This demonstrates an interactive table.</p>
+	
+	<table class="table table-interactive">
+		<thead>
+			<tr>
+				<th>Name</th>
+				<th>Age</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td>Timmy</td>
+				<td>9</td>
+			</tr>
+			<tr>
+				<td>Santa Clause</td>
+				<td>-1</td>
+			</tr>
+		</tbody>
+	</table>
+  </body>
+</html>
\ No newline at end of file
diff --git a/web/example_04_masonry.html b/web/example_04_masonry.html
new file mode 100644
index 0000000000000000000000000000000000000000..ceccdfdfcad79140b359d30ad14ff42ba520a948
--- /dev/null
+++ b/web/example_04_masonry.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+    <title>Hello, masonry!</title>
+    <meta name="description" content="A HTML document with a masonry.">
+	
+	<!-- jQuery -->
+	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
+	
+	<!-- Masonry -->
+	<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
+	
+	<script>
+		$(document).ready(function () {
+			$('.grid').masonry({
+			  itemSelector: '.grid-item',
+			});
+		});
+	</script>
+	
+	<style>
+		.grid { width: 840px; background-color: #efefef; }
+		.grid-item { width: 200px; height: 20px; background-color: #618b55; margin: 5px; }
+		.grid-item--width2 { width: 410px; }
+		.grid-item--height2 { height: 40px; }
+		.grid-item--height4 { height: 80px; }
+	</style>
+  </head>
+  <body>
+    <h1>Hello, masonry!</h1>
+	<p>This demonstrates a masonry.</p>
+	
+	<div class="grid">
+	  <div class="grid-item grid-item--height4"></div>
+	  <div class="grid-item grid-item--width2"></div>
+	  <div class="grid-item grid-item--height2"></div>
+	  <div class="grid-item"></div>
+	  <div class="grid-item grid-item--height2"></div>
+	  <div class="grid-item"></div>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/web/illustrations.bmpr b/web/illustrations.bmpr
new file mode 100644
index 0000000000000000000000000000000000000000..9b1e6bbcef156f74b7157a0f4177503600204bc1
Binary files /dev/null and b/web/illustrations.bmpr differ
diff --git a/git_gitlab_course/images/UZH-logo.png b/web/images/UZH-logo.png
similarity index 100%
rename from git_gitlab_course/images/UZH-logo.png
rename to web/images/UZH-logo.png
diff --git a/web/images/color_bright.png b/web/images/color_bright.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ac2c618a211cc5b2dd99fa06d264b0ef42795fc
Binary files /dev/null and b/web/images/color_bright.png differ
diff --git a/web/images/color_default.png b/web/images/color_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4a0a42603fade58a32dcabe549f4ff67b124c51
Binary files /dev/null and b/web/images/color_default.png differ
diff --git a/web/images/color_palette.png b/web/images/color_palette.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb65342f32f0178d4eda53224c78602508396f31
Binary files /dev/null and b/web/images/color_palette.png differ
diff --git a/web/images/css_position.png b/web/images/css_position.png
new file mode 100644
index 0000000000000000000000000000000000000000..335cc2c0fa4de048e4591b17f0b087be1462d08c
Binary files /dev/null and b/web/images/css_position.png differ
diff --git a/web/images/css_position_absolute.png b/web/images/css_position_absolute.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6c359071015738482d4d9de4f6c941c631d901e
Binary files /dev/null and b/web/images/css_position_absolute.png differ
diff --git a/web/images/css_position_relative.png b/web/images/css_position_relative.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b8df4711e405262a02a58020d7d92c7a36d0cdf
Binary files /dev/null and b/web/images/css_position_relative.png differ
diff --git a/web/images/css_spacing.png b/web/images/css_spacing.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec6cdc7ad402ed1f449abf619aaa734b8a918613
Binary files /dev/null and b/web/images/css_spacing.png differ
diff --git a/web/images/html_meta.png b/web/images/html_meta.png
new file mode 100644
index 0000000000000000000000000000000000000000..677592d87f57ce151d4e89e3df0baacfdabc6a28
Binary files /dev/null and b/web/images/html_meta.png differ
diff --git a/web/images/html_meta_browser.png b/web/images/html_meta_browser.png
new file mode 100644
index 0000000000000000000000000000000000000000..c409b94c94ad2149ed51584ce132586a4d3295ff
Binary files /dev/null and b/web/images/html_meta_browser.png differ
diff --git a/web/images/server_client.png b/web/images/server_client.png
new file mode 100644
index 0000000000000000000000000000000000000000..08ec26ff323757d5a00a2cfa487056c608e1765d
Binary files /dev/null and b/web/images/server_client.png differ
diff --git a/web/images/spacing_annotated.png b/web/images/spacing_annotated.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2a96cf44f1ff2cbb14198ff39443a781515011a
Binary files /dev/null and b/web/images/spacing_annotated.png differ
diff --git a/web/images/spacing_original.png b/web/images/spacing_original.png
new file mode 100644
index 0000000000000000000000000000000000000000..42fc67686c0ba876f76f44b09a2969b64dea8f54
Binary files /dev/null and b/web/images/spacing_original.png differ
diff --git a/web/images/thealternative-logo.jpg b/web/images/thealternative-logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0901690f57f7fb562ed6c0047bdc5dcfcecc5aae
Binary files /dev/null and b/web/images/thealternative-logo.jpg differ
diff --git a/web/images/typography_light.png b/web/images/typography_light.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9b7beac2f70c673e6353604cacf93f97517b096
Binary files /dev/null and b/web/images/typography_light.png differ
diff --git a/web/images/typography_line_height.png b/web/images/typography_line_height.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a6cacae4206c73d24b9b695b1b7c960fde2ab0a
Binary files /dev/null and b/web/images/typography_line_height.png differ
diff --git a/web/images/typography_regular.png b/web/images/typography_regular.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a5c4bca4da0dc7c8194ca3cd2c9e1d06e4c4707
Binary files /dev/null and b/web/images/typography_regular.png differ
diff --git a/web/images/typography_weight.png b/web/images/typography_weight.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e4c335a281f26e065c36eca54f36bd94c1971ae
Binary files /dev/null and b/web/images/typography_weight.png differ
diff --git a/web/js/remark.driver.js b/web/js/remark.driver.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b2e4e9f0517f1394ceb97a3b8c2c7ee7df7536a
--- /dev/null
+++ b/web/js/remark.driver.js
@@ -0,0 +1 @@
+var slideshow = remark.create();
\ No newline at end of file
diff --git a/web/js/remark.min.js b/web/js/remark.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..160ca1bc20a967164bc020d80f6acd69ae6aae52
--- /dev/null
+++ b/web/js/remark.min.js
@@ -0,0 +1,18 @@
+require=function e(t,a,r){function s(i,l){if(!a[i]){if(!t[i]){var o="function"==typeof require&&require;if(!l&&o)return o(i,!0);if(n)return n(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var d=a[i]={exports:{}};t[i][0].call(d.exports,function(e){var a=t[i][1][e];return s(a?a:e)},d,d.exports,e,t,a,r)}return a[i].exports}for(var n="function"==typeof require&&require,i=0;i<r.length;i++)s(r[i]);return s}({1:[function(e,t,a){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(e){return"function"==typeof e}function n(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function l(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!n(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,a,r,n,o,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var d=new Error('Uncaught, unspecified "error" event. ('+t+")");throw d.context=t,d}if(a=this._events[e],l(a))return!1;if(s(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:n=Array.prototype.slice.call(arguments,1),a.apply(this,n)}else if(i(a))for(n=Array.prototype.slice.call(arguments,1),c=a.slice(),r=c.length,o=0;o<r;o++)c[o].apply(this,n);return!0},r.prototype.addListener=function(e,t){var a;if(!s(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,s(t.listener)?t.listener:t),this._events[e]?i(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,i(this._events[e])&&!this._events[e].warned&&(a=l(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function a(){this.removeListener(e,a),r||(r=!0,t.apply(this,arguments))}if(!s(t))throw TypeError("listener must be a function");var r=!1;return a.listener=t,this.on(e,a),this},r.prototype.removeListener=function(e,t){var a,r,n,l;if(!s(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=this._events[e],n=a.length,r=-1,a===t||s(a.listener)&&a.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(a)){for(l=n;l-- >0;)if(a[l]===t||a[l].listener&&a[l].listener===t){r=l;break}if(r<0)return this;1===a.length?(a.length=0,delete this._events[e]):a.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,a;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(a=this._events[e],s(a))this.removeListener(e,a);else if(a)for(;a.length;)this.removeListener(e,a[a.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?s(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(s(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],2:[function(e,t,a){(function(e){(function(){function e(e){this.tokens=[],this.tokens.links={},this.options=e||m.defaults,this.rules=u.normal,this.options.gfm&&(this.options.tables?this.rules=u.tables:this.rules=u.gfm)}function r(e,t){if(this.options=t||m.defaults,this.links=e,this.rules=h.normal,this.renderer=this.options.renderer||new s,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=h.breaks:this.rules=h.gfm:this.options.pedantic&&(this.rules=h.pedantic)}function s(e){this.options=e||{}}function n(e){this.tokens=[],this.token=null,this.options=e||m.defaults,this.options.renderer=this.options.renderer||new s,this.renderer=this.options.renderer,this.renderer.options=this.options}function i(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function l(e){return e.replace(/&([#\w]+);/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function o(e,t){return e=e.source,t=t||"",function a(r,s){return r?(s=s.source||s,s=s.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,s),a):new RegExp(e,t)}}function c(){}function d(e){for(var t,a,r=1;r<arguments.length;r++){t=arguments[r];for(a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}function m(t,a,r){if(r||"function"==typeof a){r||(r=a,a=null),a=d({},m.defaults,a||{});var s,l,o=a.highlight,c=0;try{s=e.lex(t,a)}catch(e){return r(e)}l=s.length;var u=function(){var e,t;try{e=n.parse(s,a)}catch(e){t=e}return a.highlight=o,t?r(t):r(null,e)};if(!o||o.length<3)return u();if(delete a.highlight,!l)return u();for(;c<s.length;c++)!function(e){return"code"!==e.type?--l||u():o(e.text,e.lang,function(t,a){return null==a||a===e.text?--l||u():(e.text=a,e.escaped=!0,void(--l||u()))})}(s[c])}else try{return a&&(a=d({},m.defaults,a)),n.parse(e.lex(t,a),a)}catch(e){if(e.message+="\nPlease report this to https://github.com/chjj/marked.",(a||m.defaults).silent)return"<p>An error occured:</p><pre>"+i(e.message+"",!0)+"</pre>";throw e}}var u={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:c,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:c,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:c,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};u.bullet=/(?:[*+-]|\d+\.)/,u.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,u.item=o(u.item,"gm")(/bull/g,u.bullet)(),u.list=o(u.list)(/bull/g,u.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)(),u._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",u.html=o(u.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,u._tag)(),u.paragraph=o(u.paragraph)("hr",u.hr)("heading",u.heading)("lheading",u.lheading)("blockquote",u.blockquote)("tag","<"+u._tag)("def",u.def)(),u.normal=d({},u),u.gfm=d({},u.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),u.gfm.paragraph=o(u.paragraph)("(?!","(?!"+u.gfm.fences.source.replace("\\1","\\2")+"|"+u.list.source.replace("\\1","\\3")+"|")(),u.tables=d({},u.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=u,e.lex=function(t,a){var r=new e(a);return r.lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t){for(var a,r,s,n,i,l,o,c,d,e=e.replace(/^ +$/gm,"");e;)if((s=this.rules.newline.exec(e))&&(e=e.substring(s[0].length),s[0].length>1&&this.tokens.push({type:"space"})),s=this.rules.code.exec(e))e=e.substring(s[0].length),s=s[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?s:s.replace(/\n+$/,"")});else if(s=this.rules.fences.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"code",lang:s[2],text:s[3]});else if(s=this.rules.heading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:s[1].length,text:s[2]});else if(t&&(s=this.rules.nptable.exec(e))){for(e=e.substring(s[0].length),l={type:"table",header:s[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3].replace(/\n$/,"").split("\n")},c=0;c<l.align.length;c++)/^ *-+: *$/.test(l.align[c])?l.align[c]="right":/^ *:-+: *$/.test(l.align[c])?l.align[c]="center":/^ *:-+ *$/.test(l.align[c])?l.align[c]="left":l.align[c]=null;for(c=0;c<l.cells.length;c++)l.cells[c]=l.cells[c].split(/ *\| */);this.tokens.push(l)}else if(s=this.rules.lheading.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"heading",depth:"="===s[2]?1:2,text:s[1]});else if(s=this.rules.hr.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"hr"});else if(s=this.rules.blockquote.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"blockquote_start"}),s=s[0].replace(/^ *> ?/gm,""),this.token(s,t),this.tokens.push({type:"blockquote_end"});else if(s=this.rules.list.exec(e)){for(e=e.substring(s[0].length),n=s[2],this.tokens.push({type:"list_start",ordered:n.length>1}),s=s[0].match(this.rules.item),a=!1,d=s.length,c=0;c<d;c++)l=s[c],o=l.length,l=l.replace(/^ *([*+-]|\d+\.) +/,""),~l.indexOf("\n ")&&(o-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,""):l.replace(new RegExp("^ {1,"+o+"}","gm"),"")),this.options.smartLists&&c!==d-1&&(i=u.bullet.exec(s[c+1])[0],n===i||n.length>1&&i.length>1||(e=s.slice(c+1).join("\n")+e,c=d-1)),r=a||/\n\n(?!\s*$)/.test(l),c!==d-1&&(a="\n"===l.charAt(l.length-1),r||(r=a)),this.tokens.push({type:r?"loose_item_start":"list_item_start"}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(s=this.rules.html.exec(e))e=e.substring(s[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===s[1]||"script"===s[1]||"style"===s[1],text:s[0]});else if(t&&(s=this.rules.def.exec(e)))e=e.substring(s[0].length),this.tokens.links[s[1].toLowerCase()]={href:s[2],title:s[3]};else if(t&&(s=this.rules.table.exec(e))){for(e=e.substring(s[0].length),l={type:"table",header:s[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:s[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:s[3].replace(/(?: *\| *)?\n$/,"").split("\n")},c=0;c<l.align.length;c++)/^ *-+: *$/.test(l.align[c])?l.align[c]="right":/^ *:-+: *$/.test(l.align[c])?l.align[c]="center":/^ *:-+ *$/.test(l.align[c])?l.align[c]="left":l.align[c]=null;for(c=0;c<l.cells.length;c++)l.cells[c]=l.cells[c].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(l)}else if(t&&(s=this.rules.paragraph.exec(e)))e=e.substring(s[0].length),this.tokens.push({type:"paragraph",text:"\n"===s[1].charAt(s[1].length-1)?s[1].slice(0,-1):s[1]});else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),this.tokens.push({type:"text",text:s[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var h={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:c,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:c,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};h._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,h._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,h.link=o(h.link)("inside",h._inside)("href",h._href)(),h.reflink=o(h.reflink)("inside",h._inside)(),h.normal=d({},h),h.pedantic=d({},h.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),h.gfm=d({},h.normal,{escape:o(h.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:o(h.text)("]|","~]|")("|","|https?://|")()}),h.breaks=d({},h.gfm,{br:o(h.br)("{2,}","*")(),text:o(h.gfm.text)("{2,}","*")()}),r.rules=h,r.output=function(e,t,a){var s=new r(t,a);return s.output(e)},r.prototype.output=function(e){for(var t,a,r,s,n="";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),n+=s[1];else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),"@"===s[2]?(a=":"===s[1].charAt(6)?this.mangle(s[1].substring(7)):this.mangle(s[1]),r=this.mangle("mailto:")+a):(a=i(s[1]),r=a),n+=this.renderer.link(r,null,a);else if(s=this.rules.url.exec(e))e=e.substring(s[0].length),a=i(s[1]),r=a,n+=this.renderer.link(r,null,a);else if(s=this.rules.tag.exec(e))e=e.substring(s[0].length),n+=this.options.sanitize?i(s[0]):s[0];else if(s=this.rules.link.exec(e))e=e.substring(s[0].length),n+=this.outputLink(s,{href:s[2],title:s[3]});else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){n+=s[0].charAt(0),e=s[0].substring(1)+e;continue}n+=this.outputLink(s,t)}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),n+=this.renderer.strong(this.output(s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),n+=this.renderer.em(this.output(s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),n+=this.renderer.codespan(i(s[2],!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),n+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),n+=this.renderer.del(this.output(s[1]));else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),n+=i(this.smartypants(s[0]));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return n},r.prototype.outputLink=function(e,t){var a=i(t.href),r=t.title?i(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(a,r,this.output(e[1])):this.renderer.image(a,r,i(e[1]))},r.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},r.prototype.mangle=function(e){for(var t,a="",r=e.length,s=0;s<r;s++)t=e.charCodeAt(s),Math.random()>.5&&(t="x"+t.toString(16)),a+="&#"+t+";";return a},s.prototype.code=function(e,t,a){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(a=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+i(t,!0)+'">'+(a?e:i(e,!0))+"\n</code></pre>\n":"<pre><code>"+(a?e:i(e,!0))+"\n</code></pre>"},s.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},s.prototype.html=function(e){return e},s.prototype.heading=function(e,t,a){return"<h"+t+' id="'+this.options.headerPrefix+a.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},s.prototype.hr=function(){return"<hr>\n"},s.prototype.list=function(e,t){var a=t?"ol":"ul";return"<"+a+">\n"+e+"</"+a+">\n"},s.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},s.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},s.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},s.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},s.prototype.tablecell=function(e,t){var a=t.header?"th":"td",r=t.align?"<"+a+' style="text-align:'+t.align+'">':"<"+a+">";return r+e+"</"+a+">\n"},s.prototype.strong=function(e){return"<strong>"+e+"</strong>"},s.prototype.em=function(e){return"<em>"+e+"</em>"},s.prototype.codespan=function(e){return"<code>"+e+"</code>"},s.prototype.br=function(){return"<br>"},s.prototype.del=function(e){return"<del>"+e+"</del>"},s.prototype.link=function(e,t,a){if(this.options.sanitize){try{var r=decodeURIComponent(l(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0===r.indexOf("javascript:"))return""}var s='<a href="'+e+'"';return t&&(s+=' title="'+t+'"'),s+=">"+a+"</a>"},s.prototype.image=function(e,t,a){var r='<img src="'+e+'" alt="'+a+'"';return t&&(r+=' title="'+t+'"'),r+=">"},n.parse=function(e,t,a){var r=new n(t,a);return r.parse(e)},n.prototype.parse=function(e){this.inline=new r(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},n.prototype.next=function(){return this.token=this.tokens.pop()},n.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},n.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},n.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,a,r,s,n="",i="";for(a="",e=0;e<this.token.header.length;e++)r={header:!0,align:this.token.align[e]},a+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(n+=this.renderer.tablerow(a),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],a="",s=0;s<t.length;s++)a+=this.renderer.tablecell(this.inline.output(t[s]),{header:!1,align:this.token.align[s]});i+=this.renderer.tablerow(a)}return this.renderer.table(n,i);case"blockquote_start":for(var i="";"blockquote_end"!==this.next().type;)i+=this.tok();return this.renderer.blockquote(i);case"list_start":for(var i="",l=this.token.ordered;"list_end"!==this.next().type;)i+=this.tok();return this.renderer.list(i,l);case"list_item_start":for(var i="";"list_item_end"!==this.next().type;)i+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(i);case"loose_item_start":for(var i="";"list_item_end"!==this.next().type;)i+=this.tok();return this.renderer.listitem(i);case"html":var o=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(o);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},c.exec=c,m.options=m.setOptions=function(e){return d(m.defaults,e),m},m.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new s},m.Parser=n,m.parser=n.parse,m.Renderer=s,m.Lexer=e,m.lexer=e.lex,m.InlineLexer=r,m.inlineLexer=r.output,m.parse=m,"object"==typeof a?t.exports=m:"function"==typeof define&&define.amd?define(function(){return m}):this.marked=m}).call(function(){return this||("undefined"!=typeof window?window:e)}())}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,a){function r(e,t){var a;for(a=0;a<e.length;++a)t(e[a],a)}function s(e){var t=e&&e.prototype;t&&(t.forEach=t.forEach||function(e){r(this,e)},t.filter=t.filter||function(e){var t=[];return this.forEach(function(a){e(a,t.length)&&t.push(a)}),t},t.map=t.map||function(e){var t=[];return this.forEach(function(a){t.push(e(a,t.length))}),t})}a.apply=function(){r([Array,window.NodeList,window.HTMLCollection],s)}},{}],4:[function(e,t,a){var r=e("./remark/api"),s=e("./polyfills"),n=e("./remark/components/styler/styler");window.remark=new r,s.apply(),n.styleDocument()},{"./polyfills":3,"./remark/api":5,"./remark/components/styler/styler":"components/styler"}],5:[function(e,t,a){function r(e){this.dom=e||new p,this.macros=g,this.version=c.version}function s(e,t){var a;return t=t||{},t.hasOwnProperty("source")||(a=e.getElementById("source"),a&&(t.source=n(a.innerHTML),a.style.display="none")),t.container instanceof window.HTMLElement||(t.container=e.getBodyElement()),t}function n(e){return e=e.replace(/&[l|g]t;/g,function(e){return"&lt;"===e?"<":">"}),e=e.replace(/&amp;/g,"&"),e=e.replace(/&quot;/g,'"')}var i=e("events").EventEmitter,l=e("./highlighter"),o=e("./converter"),c=e("./resources"),d=e("./parser"),m=e("./models/slideshow"),u=e("./views/slideshowView"),h=e("./controllers/defaultController"),p=e("./dom"),g=e("./macros");t.exports=r,r.prototype.highlighter=l,r.prototype.convert=function(e){var t=new d,a=t.parse(e||"",g)[0].content;return o.convertMarkdown(a,{},!0)},r.prototype.create=function(e,t){var a,r,n,l,o=this;return e=s(this.dom,e),a=new i,a.setMaxListeners(0),r=new m(a,this.dom,e,function(r){n=new u(a,o.dom,e.container,r),l=e.controller||new h(a,o.dom,n,e.navigation),"function"==typeof t&&t(r)})}},{"./controllers/defaultController":6,"./converter":12,"./dom":13,"./highlighter":14,"./macros":16,"./models/slideshow":18,"./parser":21,"./resources":22,"./views/slideshowView":27,events:1}],6:[function(e,t,a){function r(e,t,a,r){r=r||{};var d=new n(e);o.register(e),c.register(e,t,a),i.register(e,r),l.register(e,r),s(e,d,a,r)}function s(e,t,a,r){e.on("pause",function(a){t.deactivate(),i.unregister(e),l.unregister(e)}),e.on("resume",function(a){t.activate(),i.register(e,r),l.register(e,r)})}t.exports=r;var n=e("./inputs/keyboard"),i=e("./inputs/mouse"),l=e("./inputs/touch"),o=e("./inputs/message"),c=e("./inputs/location")},{"./inputs/keyboard":7,"./inputs/location":8,"./inputs/message":9,"./inputs/mouse":10,"./inputs/touch":11}],7:[function(e,t,a){function r(e){this._events=e,this.activate()}t.exports=r,r.prototype.activate=function(){this._gotoSlideNumber="",this.addKeyboardEventListeners()},r.prototype.deactivate=function(){this.removeKeyboardEventListeners()},r.prototype.addKeyboardEventListeners=function(){var e=this,t=this._events;t.on("keydown",function(a){if(!a.metaKey&&!a.ctrlKey)switch(a.keyCode){case 33:case 37:case 38:t.emit("gotoPreviousSlide");break;case 32:case 34:case 39:case 40:t.emit("gotoNextSlide");break;case 36:t.emit("gotoFirstSlide");break;case 35:t.emit("gotoLastSlide");break;case 27:t.emit("hideOverlay");break;case 13:e._gotoSlideNumber&&(t.emit("gotoSlide",e._gotoSlideNumber),e._gotoSlideNumber="")}}),t.on("keypress",function(a){if(!a.metaKey&&!a.ctrlKey){var r=String.fromCharCode(a.which).toLowerCase();switch(r){case"j":t.emit("gotoNextSlide");break;case"k":t.emit("gotoPreviousSlide");break;case"b":t.emit("toggleBlackout");break;case"m":t.emit("toggleMirrored");break;case"c":t.emit("createClone");break;case"p":t.emit("togglePresenterMode");break;case"f":t.emit("toggleFullscreen");break;case"t":t.emit("resetTimer");break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"0":e._gotoSlideNumber+=r;break;case"h":case"?":t.emit("toggleHelp")}}})},r.prototype.removeKeyboardEventListeners=function(){var e=this._events;e.removeAllListeners("keydown"),e.removeAllListeners("keypress")}},{}],8:[function(e,t,a){function r(e,t,a){function r(){var a=(t.getLocationHash()||"").substr(1);e.emit("gotoSlide",a)}function n(e){s.hasClass(a.containerElement,"remark-presenter-mode")?t.setLocationHash("#p"+e):t.setLocationHash("#"+e)}a.isEmbedded()?e.emit("gotoSlide",1):(e.on("hashchange",r),e.on("slideChanged",n),e.on("toggledPresenter",n),r())}var s=e("../../utils.js");a.register=function(e,t,a){r(e,t,a)}},{"../../utils.js":24}],9:[function(e,t,a){function r(e){function t(t){var a;null!==(a=/^gotoSlide:(\d+)$/.exec(t.data))?e.emit("gotoSlide",parseInt(a[1],10),!0):"toggleBlackout"===t.data&&e.emit("toggleBlackout")}e.on("message",t)}a.register=function(e){r(e)}},{}],10:[function(e,t,a){function r(e,t){if(t.click&&(e.on("click",function(t){"A"!==t.target.nodeName&&0===t.button&&e.emit("gotoNextSlide")}),e.on("contextmenu",function(t){"A"!==t.target.nodeName&&(t.preventDefault(),e.emit("gotoPreviousSlide"))})),t.scroll!==!1){var a=function(t){t.wheelDeltaY>0||t.detail<0?e.emit("gotoPreviousSlide"):(t.wheelDeltaY<0||t.detail>0)&&e.emit("gotoNextSlide")};e.on("mousewheel",a),e.on("DOMMouseScroll",a)}}function s(e){e.removeAllListeners("click"),e.removeAllListeners("contextmenu"),e.removeAllListeners("mousewheel")}a.register=function(e,t){r(e,t)},a.unregister=function(e){s(e)}},{}],11:[function(e,t,a){function r(e,t){var a,r,s;if(t.touch!==!1){var n=function(){return Math.abs(r-s)<10},i=function(){e.emit("tap",s)},l=function(){r>s?e.emit("gotoNextSlide"):e.emit("gotoPreviousSlide")};e.on("touchstart",function(e){a=e.touches[0],r=a.clientX}),e.on("touchend",function(e){"A"!==e.target.nodeName.toUpperCase()&&(a=e.changedTouches[0],s=a.clientX,n()?i():l())}),e.on("touchmove",function(e){e.preventDefault()})}}function s(e){e.removeAllListeners("touchstart"),e.removeAllListeners("touchend"),e.removeAllListeners("touchmove")}a.register=function(e,t){r(e,t)},a.unregister=function(e){s(e)}},{}],12:[function(e,t,a){function r(e,t,a){var n,l,o,c="";for(n=0;n<e.length;++n)"string"==typeof e[n]?c+=e[n]:(l=e[n].block?"div":"span",c+="<"+l+' class="'+e[n].class+'">',c+=r(e[n].content,t,!e[n].block),c+="</"+l+">");var d=s.Lexer.lex(c.replace(/^\s+/,""));return d.links=t,o=s.Parser.parse(d),a&&(i.innerHTML=o,1===i.children.length&&"P"===i.children[0].tagName&&(o=i.children[0].innerHTML)),o}var s=e("marked"),n=t.exports={},i=document.createElement("div");s.setOptions({gfm:!0,tables:!0,breaks:!1,pedantic:!0,sanitize:!1,smartLists:!0,langPrefix:""}),n.convertMarkdown=function(e,t,a){return i.innerHTML=r(e,t||{},a),i.innerHTML=i.innerHTML.replace(/<p>\s*<\/p>/g,""),i.innerHTML.replace(/\n\r?$/,"")}},{marked:2}],13:[function(e,t,a){function r(){}t.exports=r,r.prototype.XMLHttpRequest=XMLHttpRequest,r.prototype.getHTMLElement=function(){return document.getElementsByTagName("html")[0]},r.prototype.getBodyElement=function(){return document.body},r.prototype.getElementById=function(e){return document.getElementById(e)},r.prototype.getLocationHash=function(){return window.location.hash},r.prototype.setLocationHash=function(e){"function"==typeof window.history.replaceState&&"null"!==document.origin?window.history.replaceState(void 0,void 0,e):window.location.hash=e}},{}],14:[function(e,t,a){for(var r=function(){var e={};return function(t){var a="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof e?t(e):a&&(a.hljs=t({}),"function"==typeof define&&define.amd&&define([],function(){return a.hljs}))}(function(e){function t(e){return e.replace(/[&<>]/gm,function(e){return M[e]})}function a(e){return e.nodeName.toLowerCase()}function r(e,t){var a=e&&e.exec(t);return a&&0===a.index}function s(e){return k.test(e)}function n(e){var t,a,r,n,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",a=w.exec(i))return j(a[1])?a[1]:"no-highlight";for(i=i.split(/\s+/),t=0,r=i.length;t<r;t++)if(n=i[t],s(n)||j(n))return n}function i(e,t){var a,r={};for(a in e)r[a]=e[a];if(t)for(a in t)r[a]=t[a];return r}function l(e){var t=[];return function e(r,s){for(var n=r.firstChild;n;n=n.nextSibling)3===n.nodeType?s+=n.nodeValue.length:1===n.nodeType&&(t.push({event:"start",offset:s,node:n}),s=e(n,s),a(n).match(/br|hr|img|input/)||t.push({event:"stop",offset:s,node:n}));return s}(e,0),t}function o(e,r,s){function n(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function i(e){function r(e){return" "+e.nodeName+'="'+t(e.value)+'"'}d+="<"+a(e)+E.map.call(e.attributes,r).join("")+">"}function l(e){d+="</"+a(e)+">"}function o(e){("start"===e.event?i:l)(e.node)}for(var c=0,d="",m=[];e.length||r.length;){var u=n();if(d+=t(s.substr(c,u[0].offset-c)),c=u[0].offset,u===e){m.reverse().forEach(l);do o(u.splice(0,1)[0]),u=n();while(u===e&&u.length&&u[0].offset===c);m.reverse().forEach(i)}else"start"===u[0].event?m.push(u[0].node):m.pop(),o(u.splice(0,1)[0])}return d+t(s.substr(c))}function c(e){function t(e){return e&&e.source||e}function a(a,r){return new RegExp(t(a),"m"+(e.case_insensitive?"i":"")+(r?"g":""))}function r(s,n){if(!s.compiled){if(s.compiled=!0,s.keywords=s.keywords||s.beginKeywords,s.keywords){var l={},o=function(t,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");l[a[0]]=[t,a[1]?Number(a[1]):1]})};"string"==typeof s.keywords?o("keyword",s.keywords):y(s.keywords).forEach(function(e){o(e,s.keywords[e])}),s.keywords=l}s.lexemesRe=a(s.lexemes||/\w+/,!0),n&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")\\b"),s.begin||(s.begin=/\B|\b/),s.beginRe=a(s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(s.endRe=a(s.end)),s.terminator_end=t(s.end)||"",s.endsWithParent&&n.terminator_end&&(s.terminator_end+=(s.end?"|":"")+n.terminator_end)),s.illegal&&(s.illegalRe=a(s.illegal)),null==s.relevance&&(s.relevance=1),s.contains||(s.contains=[]);var c=[];s.contains.forEach(function(e){e.variants?e.variants.forEach(function(t){c.push(i(e,t))}):c.push("self"===e?s:e)}),s.contains=c,s.contains.forEach(function(e){r(e,s)}),s.starts&&r(s.starts,n);var d=s.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([s.terminator_end,s.illegal]).map(t).filter(Boolean);s.terminators=d.length?a(d.join("|"),!0):{exec:function(){return null}}}}r(e)}function d(e,a,s,n){function i(e,t){var a,s;for(a=0,s=t.contains.length;a<s;a++)if(r(t.contains[a].beginRe,e))return t.contains[a]}function l(e,t){if(r(e.endRe,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.endsWithParent)return l(e.parent,t)}function o(e,t){return!s&&r(t.illegalRe,e)}function u(e,t){var a=v.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(a)&&e.keywords[a]}function h(e,t,a,r){var s=r?"":N.classPrefix,n='<span class="'+s,i=a?"":T;return n+=e+'">',n+t+i}function p(){var e,a,r,s;if(!y.keywords)return t(w);for(s="",a=0,y.lexemesRe.lastIndex=0,r=y.lexemesRe.exec(w);r;)s+=t(w.substr(a,r.index-a)),e=u(y,r),e?(x+=e[1],s+=h(e[0],t(r[0]))):s+=t(r[0]),a=y.lexemesRe.lastIndex,r=y.lexemesRe.exec(w);return s+t(w.substr(a))}function g(){var e="string"==typeof y.subLanguage;if(e&&!S[y.subLanguage])return t(w);var a=e?d(y.subLanguage,w,!0,C[y.subLanguage]):m(w,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(x+=a.relevance),e&&(C[y.subLanguage]=a.top),h(a.language,a.value,!1,!0)}function b(){k+=null!=y.subLanguage?g():p(),w=""}function _(e){k+=e.className?h(e.className,"",!0):"",y=Object.create(e,{parent:{value:y}})}function f(e,t){if(w+=e,null==t)return b(),0;var a=i(t,y);if(a)return a.skip?w+=t:(a.excludeBegin&&(w+=t),b(),a.returnBegin||a.excludeBegin||(w=t)),_(a,t),a.returnBegin?0:t.length;var r=l(y,t);if(r){var s=y;s.skip?w+=t:(s.returnEnd||s.excludeEnd||(w+=t),b(),s.excludeEnd&&(w=t));do y.className&&(k+=T),y.skip||(x+=y.relevance),y=y.parent;while(y!==r.parent);return r.starts&&_(r.starts,""),s.returnEnd?0:t.length}if(o(t,y))throw new Error('Illegal lexeme "'+t+'" for mode "'+(y.className||"<unnamed>")+'"');return w+=t,t.length||1}var v=j(e);if(!v)throw new Error('Unknown language: "'+e+'"');c(v);var E,y=n||v,C={},k="";for(E=y;E!==v;E=E.parent)E.className&&(k=h(E.className,"",!0)+k);var w="",x=0;try{for(var M,D,O=0;;){if(y.terminators.lastIndex=O,M=y.terminators.exec(a),!M)break;D=f(a.substr(O,M.index-O),M[0]),O=M.index+D}for(f(a.substr(O)),E=y;E.parent;E=E.parent)E.className&&(k+=T);return{relevance:x,value:k,language:e,top:y}}catch(e){if(e.message&&e.message.indexOf("Illegal")!==-1)return{relevance:0,value:t(a)};throw e}}function m(e,a){a=a||N.languages||y(S);var r={relevance:0,value:t(e)},s=r;return a.filter(j).forEach(function(t){var a=d(t,e,!1);a.language=t,a.relevance>s.relevance&&(s=a),
+a.relevance>r.relevance&&(s=r,r=a)}),s.language&&(r.second_best=s),r}function u(e){return N.tabReplace||N.useBR?e.replace(x,function(e,t){return N.useBR&&"\n"===e?"<br>":N.tabReplace?t.replace(/\t/g,N.tabReplace):void 0}):e}function h(e,t,a){var r=t?C[t]:a,s=[e.trim()];return e.match(/\bhljs\b/)||s.push("hljs"),e.indexOf(r)===-1&&s.push(r),s.join(" ").trim()}function p(e){var t,a,r,i,c,p=n(e);s(p)||(N.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):t=e,c=t.textContent,r=p?d(p,c,!0):m(c),a=l(t),a.length&&(i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),i.innerHTML=r.value,r.value=o(a,l(i),c)),r.value=u(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function g(e){N=i(N,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,p)}}function _(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function f(t,a){var r=S[t]=a(e);r.aliases&&r.aliases.forEach(function(e){C[e]=t})}function v(){return y(S)}function j(e){return e=(e||"").toLowerCase(),S[e]||S[C[e]]}var E=[],y=Object.keys,S={},C={},k=/^(no-?highlight|plain|text)$/i,w=/\blang(?:uage)?-([\w-]+)\b/i,x=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,T="</span>",N={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},M={"&":"&amp;","<":"&lt;",">":"&gt;"};return e.highlight=d,e.highlightAuto=m,e.fixMarkup=u,e.highlightBlock=p,e.configure=g,e.initHighlighting=b,e.initHighlightingOnLoad=_,e.registerLanguage=f,e.listLanguages=v,e.getLanguage=j,e.inherit=i,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.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|like)\b/},e.COMMENT=function(t,a,r){var s=e.inherit({className:"comment",begin:t,end:a,contains:[]},r||{});return s.contains.push(e.PHRASAL_WORDS_MODE),s.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),s},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"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},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e}),e}(),s=[{name:"lisp",create:function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",a="\\|[^]*?\\|",r="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",s={className:"meta",begin:"^#!",end:"$"},n={className:"literal",begin:"\\b(t{1}|nil)\\b"},i={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:"\\)"}]},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={begin:"\\*",end:"\\*"},d={className:"symbol",begin:"[:&]"+t},m={begin:t,relevance:0},u={begin:a},h={begin:"\\(",end:"\\)",contains:["self",n,l,i,m]},p={contains:[i,l,c,d,h,m],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+a}]},g={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},b={begin:"\\(\\s*",end:"\\)"},_={endsWithParent:!0,relevance:0};return b.contains=[{className:"name",variants:[{begin:t},{begin:a}]},_],_.contains=[p,g,b,n,i,l,o,c,d,u,m],{illegal:/\S/,contains:[i,s,n,l,o,p,g,b,m]}}},{name:"cpp",create:function(e){var t={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U)?L?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},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},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n=e.IDENT_RE+"\\s*\\(",i={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf 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",literal:"true false nullptr NULL"},l=[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,a];return{aliases:["c","cc","h","c++","h++","hpp"],keywords:i,illegal:"</",contains:l.concat([s,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:i,contains:["self",t]},{begin:e.IDENT_RE+"::",keywords:i},{variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:i,contains:l.concat([{begin:/\(/,end:/\)/,keywords:i,contains:l.concat(["self"]),relevance:0}]),relevance:0},{className:"function",begin:"("+e.IDENT_RE+"[\\*&\\s]+)+"+n,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:i,illegal:/[^\w\s\*&]/,contains:[{begin:n,returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,t]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]}]),exports:{preprocessor:s,strings:a,keywords:i}}}},{name:"accesslog",create:function(e){return{contains:[{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+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}},{name:"actionscript",create:function(e){var t="[a-zA-Z_$][a-zA-Z0-9_$]*",a="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",r={className:"rest_arg",begin:"[.]{3}",end:t,relevance:10};return{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,{className:"class",beginKeywords:"package",end:"{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:";",keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r]},{begin:":\\s*"+a}]},e.METHOD_GUARD],illegal:/#/}}},{name:"ada",create:function(e){var t="\\d(_|\\d)*",a="[eE][-+]?"+t,r=t+"(\\."+t+")?("+a+")?",s="\\w+",n=t+"#"+s+"(\\."+s+")?#("+a+")?",i="\\b("+n+"|"+r+")",l="[A-Za-z](_?[A-Za-z0-9.])*",o="[]{}%#'\"",c=e.COMMENT("--","$"),d={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:o,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:l,endsParent:!0,relevance:0}]};return{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:[c,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:i,relevance:0},{className:"symbol",begin:"'"+l},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:o},{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:[c,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:o},d,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:o}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:o},d]}}},{name:"apache",create:function(e){var t={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"</?",end:">"},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"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"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",t]},t,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},{name:"applescript",create:function(e){var t=e.inherit(e.QUOTE_STRING_MODE,{illegal:""}),a={className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_NUMBER_MODE,t]},r=e.COMMENT("--","$"),s=e.COMMENT("\\(\\*","\\*\\)",{contains:["self",r]}),n=[r,s,e.HASH_COMMENT_MODE];return{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 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:"\\b(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|^\\s*return\\b"},{className:"literal",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(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|POSIX path|(date|time) string|quoted form)\\b"},{beginKeywords:"on",illegal:"[${=;\\n]",contains:[e.UNDERSCORE_TITLE_MODE,a]}].concat(n),illegal:"//|->|=>|\\[\\["}}},{name:"arduino",create:function(e){var t=e.getLanguage("cpp").exports;return{keywords:{keyword:"boolean byte word string String array "+t.keywords.keyword,built_in:"setup loop while catch for if do goto try switch case else default break continue return 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 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"},contains:[t.preprocessor,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"armasm",create:function(e){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+e.IDENT_RE,keywords:{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 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]?",end:"\\s"},e.COMMENT("[;@]","$",{relevance:0}),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:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}},{name:"asciidoc",create:function(e){return{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,5}) .+?( \\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},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{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}]}}},{name:"aspectj",create:function(e){var t="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",a="get set args call";return{keywords:t,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:t+" "+a,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:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:t+" "+a},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:t,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]+"}]}}},{name:"autohotkey",create:function(e){var t={begin:/`[\s\S]/};return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A|0 true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%",end:"%",illegal:"\\n",contains:[t]},{className:"symbol",contains:[t],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,"}]}}},{name:"autoit",create:function(e){var t="ByRef Case Const ContinueCase ContinueLoop Default 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",a="True False And Null Not Or",r="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",s={variants:[e.COMMENT(";","$",{relevance:0
+}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},l={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},o={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[i,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,s]},c={className:"symbol",begin:"@[A-z0-9_]+"},d={className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,i,l]}]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:t,built_in:r,literal:a},contains:[s,n,i,l,o,c,d]}}},{name:"avrasm",create:function(e){return{case_insensitive:!0,lexemes:"\\.?"+e.IDENT_RE,keywords:{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]+"}]}}},{name:"awk",create:function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",r={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]};return{keywords:{keyword:a},contains:[t,r,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}},{name:"axapta",create:function(e){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",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:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}},{name:"bash",create:function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},r={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\._]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",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",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,r,t]}}},{name:"basic",create:function(e){return{case_insensitive:!0,illegal:"^.",lexemes:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keywords:{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|0 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([0-9]+[0-9edED.]*[#!]?)",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}},{name:"bnf",create:function(e){return{contains:[{className:"attribute",begin:/</,end:/>/},{begin:/::=/,starts:{end:/$/,contains:[{begin:/</,end:/>/},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}]}}},{name:"brainfuck",create:function(e){var t={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[t]},t]}}},{name:"cal",create:function(e){var t="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",a="false true",r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],s={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},n={className:"string",begin:/(#\d+)+/},i={className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},l={className:"string",begin:'"',end:'"'},o={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[s,n]}].concat(r)},c={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,o]};return{case_insensitive:!0,keywords:{keyword:t,literal:a},illegal:/\/\*/,contains:[s,n,i,l,e.NUMBER_MODE,c,o]}}},{name:"capnproto",create:function(e){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"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/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}},{name:"ceylon",create:function(e){var 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",a="shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",r="doc by license see throws tagged",s={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},n=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[s]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return s.contains=n,{keywords:{keyword:t+" "+a,meta:r},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(n)}}},{name:"clojure-repl",create:function(e){return{contains:[{className:"meta",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}},{name:"clojure",create:function(e){var t={"builtin-name":"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - 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 defmacro defn defn- 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 defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod 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="a-zA-Z_\\-!.?+*=<>&#'",r="["+a+"]["+a+"0-9/;:]*",s="[-+]?\\d+(\\.\\d+)?",n={begin:r,relevance:0},i={className:"number",begin:s,relevance:0},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={className:"literal",begin:/\b(true|false|nil)\b/},d={begin:"[\\[\\{]",end:"[\\]\\}]"},m={className:"comment",begin:"\\^"+r},u=e.COMMENT("\\^\\{","\\}"),h={className:"symbol",begin:"[:]{1,2}"+r},p={begin:"\\(",end:"\\)"},g={endsWithParent:!0,relevance:0},b={keywords:t,lexemes:r,className:"name",begin:r,starts:g},_=[p,l,m,u,o,h,d,i,c,n];return p.contains=[e.COMMENT("comment",""),b,g],g.contains=_,d.contains=_,{aliases:["clj"],illegal:/\S/,contains:[p,l,m,u,o,h,d,i,c]}}},{name:"cmake",create:function(e){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory 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 equal less greater strless strgreater strequal matches"},contains:[{className:"variable",begin:"\\${",end:"}"},e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},{name:"coffeescript",create:function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},a="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},s=[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,r]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[r,e.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+a},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];r.contains=s;var n=e.inherit(e.TITLE_MODE,{begin:a}),i="(\\(.*\\))?\\s*\\B[-=]>",l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(s)}]};return{aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:s.concat([e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+a+"\\s*=\\s*"+i,end:"[-=]>",returnBegin:!0,contains:[n,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:i,end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[n]},n]},{begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"coq",create:function(e){return{keywords:{keyword:"_ 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 DependentDerive 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:/[-=]>/}]}}},{name:"cos",create:function(e){var t={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},a={className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},r="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";return{case_insensitive:!0,aliases:["cos","cls"],keywords:r,contains:[a,t,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)</,end:/>/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*</,end:/>\s*>/,subLanguage:"xml"}]}}},{name:"1c",create:function(e){var t="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",a="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",r="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",s={begin:'""'},n={className:"string",begin:'"',end:'"|$',contains:[s]},i={className:"string",begin:"\\|",end:'"|$',contains:[s]};return{case_insensitive:!0,lexemes:t,keywords:{keyword:a,built_in:r},contains:[e.C_LINE_COMMENT_MODE,e.NUMBER_MODE,n,i,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:t,keywords:"процедура функция",contains:[{begin:"экспорт",endsWithParent:!0,lexemes:t,keywords:"экспорт",contains:[e.C_LINE_COMMENT_MODE]},{className:"params",begin:"\\(",end:"\\)",lexemes:t,keywords:"знач",contains:[n,i]},e.C_LINE_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:t})]},{className:"meta",begin:"#",end:"$"},{className:"number",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}},{name:"crmsh",create:function(e){var t="primitive rsc_template",a="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",r="property rsc_defaults op_defaults",s="params meta operations op rule attributes utilization",n="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 \\",i="number string",l="Master Started Slave Stopped start promote demote stop monitor true false";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:s+" "+n+" "+i,literal:l},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:t,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+a.split(" ").join("|")+")\\s+",keywords:a,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:r,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:"</?",end:"/?>",relevance:0}]}}},{name:"crystal",create:function(e){function t(e,t){var a=[{begin:e,end:t}];return a[0].contains=a,a}var a="(_[uif](8|16|32|64))?",r="[a-zA-Z_]\\w*[!?=]?",s="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",i={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},l={className:"subst",begin:"#{",end:"}",keywords:i},o={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:i},c={className:"string",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%w?{",end:"}",contains:t("{","}")},{begin:"%w?<",end:">",contains:t("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},d={begin:"("+s+")\\s*",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},m={className:"regexp",contains:[e.BACKSLASH_ESCAPE,l],variants:[{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},u={className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"})]},h=[o,c,d,m,u,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{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:5},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[c,{begin:n}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+a},{begin:"\\b0o([0-7_]*[0-7])"+a},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+a},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+a}],relevance:0}];return l.contains=h,o.contains=h.slice(1),{aliases:["cr"],lexemes:r,keywords:i,contains:h}}},{name:"cs",create:function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async nameof ascending descending from get group into join let orderby partial select set value var where yield",literal:"null false true"},a={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(a,{illegal:/\n/}),s={className:"subst",begin:"{",end:"}",keywords:t},n=e.inherit(s,{illegal:/\n/}),i={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,n]},l={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},s]},o=e.inherit(l,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},n]});s.contains=[l,i,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],n.contains=[o,i,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var c={variants:[l,i,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},d=e.IDENT_RE+"(<"+e.IDENT_RE+">)?(\\[\\])?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},c,e.C_NUMBER_MODE,{
+beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+d+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},{name:"csp",create:function(e){return{case_insensitive:!1,lexemes:"[a-zA-Z][a-zA-Z0-9_-]*",keywords:{keyword:"base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src"},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}},{name:"css",create:function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",a={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:t,relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,a]}]}}},{name:"d",create:function(e){var t={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"},a="(0|[1-9][\\d_]*)",r="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",s="0[bB][01_]+",n="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",i="0[xX]"+n,l="([eE][+-]?"+r+")",o="("+r+"(\\.\\d*|"+l+")|\\d+\\."+r+r+"|\\."+a+l+"?)",c="(0[xX]("+n+"\\."+n+"|\\.?"+n+")[pP][+-]?"+r+")",d="("+a+"|"+s+"|"+i+")",m="("+c+"|"+o+")",u="\\\\(['\"\\?\\\\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,};",h={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},p={className:"number",begin:"\\b("+m+"([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},g={className:"string",begin:"'("+u+"|.)",end:"'",illegal:"."},b={begin:u,relevance:0},_={className:"string",begin:'"',contains:[b],end:'"[cwd]?'},f={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},v={className:"string",begin:"`",end:"`[cwd]?"},j={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},E={className:"string",begin:'q"\\{',end:'\\}"'},y={className:"meta",begin:"^#!",end:"$",relevance:5},S={className:"meta",begin:"#(line)",end:"$",relevance:5},C={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},k=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,k,j,_,f,v,E,p,h,g,y,S,C]}}},{name:"dart",create:function(e){var t={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},a={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]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]}]};t.contains=[e.C_NUMBER_MODE,a];var r={keyword:"assert async await break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch sync this throw true try var void while with yield abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{keywords:r,contains:[a,e.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),e.COMMENT("///","$",{subLanguage:"markdown"}),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:"=>"}]}}},{name:"delphi",create:function(e){var 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",a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/},n={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},i={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:[r,s]}].concat(a)};return{aliases:["dpr","dfm","pas","pascal","freepascal","lazarus","lpr","lfm"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[r,s,e.NUMBER_MODE,n,i].concat(a)}}},{name:"diff",create:function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}},{name:"django",create:function(e){var 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{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]}]}}},{name:"dns",create:function(e){return{aliases:["bind","zone"],keywords:{keyword:"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]?/})]}}},{name:"dockerfile",create:function(e){return{aliases:["docker"],case_insensitive:!0,keywords:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label",contains:[e.HASH_COMMENT_MODE,{keywords:"run cmd entrypoint volume add copy workdir onbuild label",begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:"from maintainer expose env user onbuild",begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE]}]}}},{name:"dos",create:function(e){var t=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10}),a={className:"symbol",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0};return{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 shiftsort start subst time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:a.begin,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]}}},{name:"dsconfig",create:function(e){var t={className:"string",begin:/"/,end:/"/},a={className:"string",begin:/'/,end:/'/},r={className:"string",begin:"[\\w-?]+:\\w+",end:"\\W",relevance:0},s={className:"string",begin:"\\w+-?\\w+",end:"\\W",relevance:0};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},t,a,r,s,e.HASH_COMMENT_MODE]}}},{name:"dts",create:function(e){var 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:"."}]},a={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:{"meta-keyword":"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[e.inherit(t,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},s={className:"variable",begin:"\\&[a-z\\d_]*\\b"},n={className:"meta-keyword",begin:"/[a-z][a-z\\d-]*/"},i={className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},l={className:"params",begin:"<",end:">",contains:[a,s]},o={className:"class",begin:/[a-zA-Z_][a-zA-Z\d_@]*\s{/,end:/[{;=]/,returnBegin:!0,excludeEnd:!0},c={className:"class",begin:"/\\s*{",end:"};",relevance:10,contains:[s,n,i,o,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,t]};return{keywords:"",contains:[c,s,n,i,o,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,t,r,{begin:e.IDENT_RE+"::",keywords:""}]}}},{name:"dust",create:function(e){var t="if eq ne lt lte gt gte select default math sep";return{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:t}]}}},{name:"ebnf",create:function(e){var t=e.COMMENT(/\(\*/,/\*\)/),a={className:"attribute",begin:/^[ ]*[a-zA-Z][a-zA-Z-]*([\s-]+[a-zA-Z][a-zA-Z]*)*/},r={className:"meta",begin:/\?.*\?/},s={begin:/=/,end:/;/,contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{illegal:/\S/,contains:[t,a,s]}}},{name:"elixir",create:function(e){var t="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",s={className:"subst",begin:"#\\{",end:"}",lexemes:t,keywords:r},n={className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},i={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},l=e.inherit(i,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[n,e.HASH_COMMENT_MODE,l,i,{className:"symbol",begin:":(?!\\s)",contains:[n,{begin:a}],relevance:0},{className:"symbol",begin:t+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return s.contains=o,{lexemes:t,keywords:r,contains:o}}},{name:"elm",create:function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]},s={begin:"{",end:"}",contains:r.contains};return{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:[a,r,s,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,a,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}},{name:"erb",create:function(e){return{subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}},{name:"erlang-repl",create:function(e){return{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",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([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}]}}},{name:"erlang",create:function(e){var t="[a-z'][a-zA-Z0-9_']*",a="("+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"},s=e.COMMENT("%","$"),n={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},i={begin:"fun\\s+"+t+"/\\d+"},l={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},o={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},m={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},u={beginKeywords:"fun receive if try case",end:"end",keywords:r};u.contains=[s,i,e.inherit(e.APOS_STRING_MODE,{className:""}),u,l,e.QUOTE_STRING_MODE,n,o,c,d,m];var h=[s,i,u,l,e.QUOTE_STRING_MODE,n,o,c,d,m];l.contains[1].contains=h,o.contains=h,m.contains[1].contains=h;var p={className:"params",begin:"\\(",end:"\\)",contains:h};return{aliases:["erl"],keywords:r,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[p,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:r,contains:h}},s,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[p]},n,e.QUOTE_STRING_MODE,m,c,d,o,{begin:/\.$/}]}}},{name:"excel",create:function(e){return{aliases:["xlsx","xls"],case_insensitive:!0,lexemes:/[a-zA-Z][\w\.]*/,keywords:{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|0 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/})]}}},{name:"fix",create:function(e){return{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}}},{name:"fortran",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a={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",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_ofacosh 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"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:a,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,t]},e.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}},{name:"fsharp",create:function(e){var t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}},{name:"gams",create:function(e){var t={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"
+},a={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},r={className:"symbol",variants:[{begin:/\=[lgenxc]=/},{begin:/\$/}]},s={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},n={begin:"/",end:"/",keywords:t,contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},i={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[s,n,{className:"comment",begin:/([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,relevance:0}]};return{aliases:["gms"],case_insensitive:!0,keywords:t,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"meta-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,n,i]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[i]},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-z][a-z0-9_]+/},a,r]},e.C_NUMBER_MODE,r]}}},{name:"gauss",create:function(e){var t={keyword:"and 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 not open or 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",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 indx 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 threadBegin threadEnd threadEndFor threadFor threadJoin threadStat 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",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"},a={className:"meta",begin:"#",end:"$",keywords:{"meta-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:{"meta-keyword":"include"},contains:[{className:"meta-string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r=e.UNDERSCORE_IDENT_RE+"\\s*\\(?",s=[{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}];return{aliases:["gss"],case_insensitive:!0,keywords:t,illegal:"(\\{[%#]|[%#]\\})",contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("@","@"),a,{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"function",beginKeywords:"proc keyword",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a].concat(s)},{className:"function",beginKeywords:"fn",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r+e.IDENT_RE+"\\)?\\s*\\=\\s*",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE].concat(s)},{className:"function",begin:"\\bexternal (proc|keyword|fn)\\s+",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"\\bexternal (matrix|string|array|sparse matrix|struct "+e.IDENT_RE+")\\s+",end:";",excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},{name:"gcode",create:function(e){var t="[A-Z_][A-Z0-9_.]*",a="\\%",r="IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR",s={className:"meta",begin:"([O])([0-9]+)"},n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+e.C_NUMBER_RE}),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)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:t,keywords:r,contains:[{className:"meta",begin:a},s].concat(n)}}},{name:"gherkin",create:function(e){return{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]}}},{name:"glsl",create:function(e){return{keywords:{keyword:"break continue discard do else for if return whileattribute 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 iimageBufferiimageCube 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:"$"}]}}},{name:"go",create:function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 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{aliases:["golang"],keywords:t,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"`"}]},{className:"number",variants:[{begin:e.C_NUMBER_RE+"[dflsi]",relevance:1},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",end:/\s*\{/,excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,illegal:/["']/}]}]}}},{name:"golo",create:function(e){return{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]+"}]}}},{name:"gradle",create:function(e){return{case_insensitive:!0,keywords:{keyword:"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]}}},{name:"groovy",create:function(e){return{keywords:{literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait super this 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"},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,{className:"string",begin:'"""',end:'"""'},{className:"string",begin:"'''",end:"'''"},{className:"string",begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,{className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.BINARY_NUMBER_MODE,{className:"class",beginKeywords:"class interface trait enum",end:"{",illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{className:"string",begin:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{begin:/\?/,end:/\:/},{className:"symbol",begin:"^\\s*[A-Za-z0-9_$]+:",relevance:0}],illegal:/#|<\//}}},{name:"haml",create:function(e){return{case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{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:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}},{name:"handlebars",create:function(e){var t={"builtin-name":"each in with if else unless bindattr action collection debugger log outlet template unbound view yield"};return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,keywords:t,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,keywords:t}]}}},{name:"haskell",create:function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},a={className:"meta",begin:"{-#",end:"#-}"},r={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},n={begin:"\\(",end:"\\)",illegal:'"',contains:[a,r,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),t]},i={begin:"{",end:"}",contains:n.contains};return{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",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[n,t],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[n,t],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,n,t]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[a,s,n,i,t]},{beginKeywords:"default",end:"$",contains:[s,n,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,t]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},a,r,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}}},{name:"haxe",create:function(e){var t="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end error"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]
+},{begin:":\\s*"+t}]}]}}},{name:"hsp",create:function(e){return{case_insensitive:!0,lexemes:/[\w\._]+/,keywords:"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:{"meta-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:"meta-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]}}},{name:"htmlbars",create:function(e){var t="action collection component concat debugger each each-in else get hash if input link-to loc log mut outlet partial query-params render textarea unbound unless with yield view",a={illegal:/\}\}/,begin:/[a-zA-Z0-9_]+=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[a-zA-Z0-9_]+/}]},r=({illegal:/\}\}/,begin:/\)/,end:/\)/,contains:[{begin:/[a-zA-Z\.\-]+/,keywords:{built_in:t},starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{endsWithParent:!0,relevance:0,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE,a,e.NUMBER_MODE]});return{case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.\-]+/,keywords:{"builtin-name":t},starts:r}]},{className:"template-variable",begin:/\{\{[a-zA-Z][a-zA-Z\-]+/,end:/\}\}/,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE]}]}}},{name:"http",create:function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+t,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+t+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:t},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}},{name:"inform7",create:function(e){var t="\\[",a="\\]";return{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:t,end:a}]},{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:t,end:a,contains:["self"]}]}}},{name:"ini",create:function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT(";","$"),e.HASH_COMMENT_MODE,{className:"section",begin:/^\s*\[+/,end:/\]+/},{begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",returnBegin:!0,contains:[{className:"attr",begin:/[a-z0-9\[\]_-]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\bon|off|true|false|yes|no\b/},{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},t,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},e.NUMBER_MODE]}]}]}}},{name:"irpf90",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a={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_ofacosh 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"};return{case_insensitive:!0,keywords:a,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,t]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}},{name:"java",create:function(e){var t=e.UNDERSCORE_IDENT_RE+"(<"+e.UNDERSCORE_IDENT_RE+"(\\s*,\\s*"+e.UNDERSCORE_IDENT_RE+")*>)?",a="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports",r="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",s={className:"number",begin:r,relevance:0};return{aliases:["jsp"],keywords:a,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:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+t+"\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:a,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:a,relevance:0,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]},s,{className:"meta",begin:"@[A-Za-z]+"}]}}},{name:"javascript",create:function(e){return{aliases:["js","jsx"],keywords:{keyword:"in of 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 static import from as",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 Promise"},contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},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:/</,end:/(\/\w+|\w+\/)>/,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:["self"]}]}],relevance: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.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},{name:"json",create:function(e){var t={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],r={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:t},s={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(r,{begin:/:/})],illegal:"\\S"},n={begin:"\\[",end:"\\]",contains:[e.inherit(r)],illegal:"\\S"};return a.splice(a.length,0,s,n),{contains:a,keywords:t,illegal:"\\S"}}},{name:"julia",create:function(e){var t={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ",built_in:"ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix StridedVecOrMat StridedVector VecOrMat Vector "},a="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",r={lexemes:a,keywords:t,illegal:/<\//},s={className:"type",begin:/::/},n={className:"type",begin:/<:/},i={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},l={className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},c={className:"variable",begin:"\\$"+a},d={className:"string",contains:[e.BACKSLASH_ESCAPE,o,c],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},m={className:"string",contains:[e.BACKSLASH_ESCAPE,o,c],begin:"`",end:"`"},u={className:"meta",begin:"@"+a},h={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return r.contains=[i,l,s,n,d,m,u,h,e.HASH_COMMENT_MODE],o.contains=r.contains,r}},{name:"kotlin",create:function(e){var 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 interface annotation data sealed internal infix operator out by constructor super trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",variants:[{begin:"\\$"+e.UNDERSCORE_IDENT_RE},{begin:"\\${",end:"}",contains:[e.APOS_STRING_MODE,e.C_NUMBER_MODE]}]},n={className:"string",variants:[{begin:'"""',end:'"""',contains:[s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s]}]},i={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(n,{className:"meta-string"})]}]};return{keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,r,i,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,l,n,e.C_NUMBER_MODE]},e.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},i,l]},n,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.C_NUMBER_MODE]}}},{name:"lasso",create:function(e){var t="[a-zA-Z_][\\w.]*",a="<\\?(lasso(script)?|=)",r="\\]|\\?>",s={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"},n=e.COMMENT("<!--","-->",{relevance:0}),i={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[n]}},l={className:"meta",begin:"\\[/noprocess|"+a},o={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:[o]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:t+"(=(?!>))?|[-+*/%](?!>)"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:t+"|&[lg]t;",keywords:s,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[|"+a,returnEnd:!0,relevance:0,contains:[n]}},i,l,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:t+"|&[lg]t;",keywords:s,contains:[{className:"meta",begin:r,relevance:0,starts:{end:"\\[noprocess\\]|"+a,returnEnd:!0,contains:[n]}},i,l].concat(c)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(c)}}},{name:"ldif",create:function(e){return{contains:[{className:"attribute",begin:"^dn",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0},relevance:10},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0}},{className:"literal",begin:"^-",end:"$"},e.HASH_COMMENT_MODE]}}},{name:"less",create:function(e){var t="[\\w-]+",a="("+t+"|@{"+t+"})",r=[],s=[],n=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},i=function(e,t,a){return{className:e,begin:t,relevance:a}},l={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n("'"),n('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i("number","#[0-9A-Fa-f]+\\b"),l,i("variable","@@?"+t,10),i("variable","@{"+t+"}"),i("built_in","~?`[^`]*?`"),{className:"attribute",begin:t+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var o=s.concat({begin:"{",end:"}",contains:r}),c={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},d={begin:a+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:a,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},m={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},u={className:"variable",variants:[{begin:"@"+t+"\\s*:",relevance:15},{begin:"@"+t}],starts:{end:"[;}]",returnEnd:!0,contains:o}},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,i("keyword","all\\b"),i("variable","@{"+t+"}"),i("selector-tag",a+"%?",0),i("selector-id","#"+a),i("selector-class","\\."+a,0),i("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:o},{begin:"!important"}]};return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,u,d,h),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}},{name:"abnf",create:function(e){var t={ruleDeclaration:"^[a-zA-Z][a-zA-Z0-9-]*",unexpectedChars:"[!@#$^&',?+~`|:]"},a=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],r=e.COMMENT(";","$"),s={className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},n={className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},i={className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},l={className:"symbol",begin:/%[si]/},o={begin:t.ruleDeclaration+"\\s*=",returnBegin:!0,end:/=/,relevance:0,contains:[{className:"attribute",begin:t.ruleDeclaration}]};return{illegal:t.unexpectedChars,keywords:a.join(" "),contains:[o,r,s,n,i,l,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},{name:"livecodeserver",create:function(e){var t={begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},a=[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\\-]+"}]}),s=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{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 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 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 libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load 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 union unload wait write"
+},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,s,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:[s,r],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,s,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(a),illegal:";$|^\\[|^=|&|{"}}},{name:"livescript",create:function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},a="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",r=e.inherit(e.TITLE_MODE,{begin:a}),s={className:"subst",begin:/#\{/,end:/}/,keywords:t},n={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:t},i=[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,n]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,n]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[s,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+a},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];s.contains=i;var l={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(i)}]};return{aliases:["ls"],keywords:t,illegal:/\/\*/,contains:i.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,{className:"function",contains:[r,l],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}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[r]},r]},{begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"lsl",create:function(e){var t={className:"subst",begin:/\\[tn"\\]/},a={className:"string",begin:'"',end:'"',contains:[t]},r={className:"number",begin:e.C_NUMBER_RE},s={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_ON_REZ|NAME|DESC|POS|PRIM_(?:COUNT|EQUIVALENCE)|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP|CREATOR|ATTACHED_POINT|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_(?: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)|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|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)|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"}]},n={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|(?: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"};return{illegal:":",contains:[a,{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")]},r,{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"}]},n,s,{className:"type",begin:"\\b(?:integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}},{name:"lua",create:function(e){var t="\\[=*\\[",a="\\]=*\\]",r={begin:t,end:a,contains:["self"]},s=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,a,{contains:[r],relevance:10})];return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",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"},contains:s.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:s}].concat(s)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:a,contains:[r],relevance:5}])}}},{name:"makefile",create:function(e){var t={className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[e.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[t]}}},{className:"section",begin:/^[\w]+:\s*$/},{className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{"meta-keyword":".PHONY"},lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[e.QUOTE_STRING_MODE,t]}]}}},{name:"markdown",create:function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}},{name:"mathematica",create:function(e){return{aliases:["mma"],lexemes:"(\\$|\\b)"+e.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual 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 DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData 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 GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ 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 LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm 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 LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual 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 NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",
+contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:/\{/,end:/\}/,illegal:/:/}]}}},{name:"matlab",create:function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}],a={relevance:0,contains:[{begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated 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 inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},a.contains[0]]},{begin:"\\[",end:"\\]",contains:t,relevance:0,starts:a},{begin:"\\{",end:/}/,contains:t,relevance:0,starts:a},{begin:/\)/,relevance:0,starts:a},e.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.COMMENT("\\%","$")].concat(t)}}},{name:"maxima",create:function(e){var t="if then else elseif for thru do while unless step in and or not",a="true false unknown inf minf ind und %e %i %pi %phi %gamma",r=" 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",s="_ __ %|0 %%|0";return{lexemes:"[A-Za-z_%][0-9A-Za-z_%]*",keywords:{keyword:t,literal:a,built_in:r,symbol:s},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:/@/}}},{name:"mel",create:function(e){return{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:"</",contains:[e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},{name:"mercury",create:function(e){var t={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"},a=e.COMMENT("%","$"),r={className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},s=e.inherit(e.APOS_STRING_MODE,{relevance:0}),n=e.inherit(e.QUOTE_STRING_MODE,{relevance:0}),i={className:"subst",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0};n.contains.push(i);var l={className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},o={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:t,contains:[l,o,a,e.C_BLOCK_COMMENT_MODE,r,e.NUMBER_MODE,s,n,{begin:/:-/}]}}},{name:"mipsasm",create:function(e){return{case_insensitive:!0,aliases:["mips"],lexemes:"\\.?"+e.IDENT_RE,keywords:{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("[;#]","$"),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:"/"}}},{name:"mizar",create:function(e){return{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("::","$")]}}},{name:"mojolicious",create:function(e){return{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}]}}},{name:"monkey",create:function(e){var t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{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",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 and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"built_in",begin:"\\b(self|super)\\b"},{className:"meta",begin:"\\s*#",end:"$",keywords:{"meta-keyword":"if else elseif endif end then"}},{className:"meta",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}},{name:"moonscript",create:function(e){var 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"},a="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},s=[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=s;var n=e.inherit(e.TITLE_MODE,{begin:a}),i="(\\(.*\\))?\\s*\\B[-=]>",l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(s)}]};return{aliases:["moon"],keywords:t,illegal:/\/\*/,contains:s.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+a+"\\s*=\\s*"+i,end:"[-=]>",returnBegin:!0,contains:[n,l]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:i,end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[n]},n]},{className:"name",begin:a+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}},{name:"nginx",create:function(e){var t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{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,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],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},t]};return{aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}},{name:"nimrod",create:function(e){return{aliases:["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 generic 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 shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"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"},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]}}},{name:"nix",create:function(e){var 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"},a={className:"subst",begin:/\$\{/,end:/}/,keywords:t},r={begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/}]},s={className:"string",contains:[a],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},n=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,r];return a.contains=n,{aliases:["nixos"],keywords:t,contains:n}}},{name:"nsis",create:function(e){var t={className:"variable",begin:"\\$(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)"},a={className:"variable",begin:"\\$+{[a-zA-Z0-9_]+}"},r={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},s={className:"variable",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},n={className:"built_in",begin:"(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)"},i={className:"keyword",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,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 ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[{begin:"\\$(\\\\(n|r|t)|\\$)"},t,a,r,s]},e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup SubSection",end:"$"},i,a,r,s,n,e.NUMBER_MODE,{begin:e.IDENT_RE+"::"+e.IDENT_RE}]}}},{name:"objectivec",create:function(e){var t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar 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:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,s="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:a,lexemes:r,illegal:"</",contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"}]},{className:"meta",begin:"#",end:"$",contains:[{className:"meta-string",variants:[{begin:'"',end:'"'},{begin:"<",end:">"}]}]},{className:"class",begin:"("+s.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:s,lexemes:r,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}},{name:"ocaml",create:function(e){return{aliases:["ml"],keywords:{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:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",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:/[-=]>/}]}}},{name:"openscad",create:function(e){var t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},a={className:"literal",begin:"false|true|PI|undef"},r={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),n={className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},i={className:"params",begin:"\\(",end:"\\)",contains:["self",r,s,t,a]},l={begin:"[*!#%]",relevance:0},o={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[i,e.UNDERSCORE_TITLE_MODE]};return{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,r,n,s,t,l,o]}}},{name:"oxygene",create:function(e){var t="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",a=e.COMMENT("{","}",{relevance:0}),r=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),s={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},n={className:"string",begin:"(#\\d+)+"},i={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[s,n]},a,r]};return{case_insensitive:!0,lexemes:/\.?\w+/,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',contains:[a,r,e.C_LINE_COMMENT_MODE,s,n,e.NUMBER_MODE,i,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:t,contains:[s,n,a,r,e.C_LINE_COMMENT_MODE,i]}]}}},{name:"parser3",create:function(e){var t=e.COMMENT("{","}",{contains:["self"]});return{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]}}},{name:"perl",create:function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:t},r={begin:"->{",end:"}"},s={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},n=[e.BACKSLASH_ESCAPE,a,s],i=[s,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),r,{className:"string",contains:n,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+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],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",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{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 a.contains=i,r.contains=i,{aliases:["pl","pm"],lexemes:/[\w\.]+/,keywords:t,contains:i}}},{name:"pf",create:function(e){var t={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},a={className:"variable",begin:/<(?!\/)/,end:/>/};return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{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 routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|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,t,a]}}},{name:"php",create:function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},a={className:"meta",begin:/<\?(php)?|\?>/},r={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[a]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},a,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,r,s]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},r,s]}}},{name:"pony",create:function(e){var t={keyword:"actor addressof and as be break class compile_error compile_intrinsicconsume continue delegate digestof do else elseif embed end errorfor fun if ifdef in interface is isnt lambda let match new not objector 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"},a={className:"string",begin:'"""',end:'"""',relevance:10},r={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},s={className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},n={className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},i={begin:e.IDENT_RE+"'",relevance:0},l={className:"class",beginKeywords:"class actor",end:"$",contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE]},o={className:"function",beginKeywords:"new fun",end:"=>",contains:[e.TITLE_MODE,{begin:/\(/,end:/\)/,contains:[n,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:/:/,endsWithParent:!0,contains:[n]},e.C_LINE_COMMENT_MODE]};return{keywords:t,contains:[l,o,n,a,r,s,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}},{name:"powershell",create:function(e){var t={begin:"`[\\s\\S]",relevance:0},a={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},r={className:"literal",begin:/\$(null|true|false)\b/},s={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[t,a,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},n={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},i={className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},l=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],
+contains:[i]});return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",built_in:"Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",nomarkup:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[t,e.NUMBER_MODE,s,n,r,a,l]}}},{name:"processing",create:function(e){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML 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 break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",title:"setup draw",built_in:"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"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"profile",create:function(e){return{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}]}}},{name:"prolog",create:function(e){var t={begin:/[a-z][A-Za-z0-9_]*/,relevance:0},a={className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},r={begin:/\(/,end:/\)/,relevance:0},s={begin:/\[/,end:/\]/},n={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},l={className:"string",begin:/0\'(\\\'|.)/},o={className:"string",begin:/0\'\\s/},c={begin:/:-/},d=[t,a,r,c,s,n,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,l,o,e.C_NUMBER_MODE];return r.contains=d,s.contains=d,{contains:d.concat([{begin:/\.$/}])}}},{name:"protobuf",create:function(e){return{keywords:{keyword:"package import option optional required repeated group",built_in:"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,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}}},{name:"puppet",create:function(e){var t={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"},a=e.COMMENT("#","$"),r="([A-Za-z_]|::)(\\w|::)*",s=e.inherit(e.TITLE_MODE,{begin:r}),n={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[a,n,i,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[s,a]},{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},{begin:/\{/,end:/\}/,keywords:t,relevance:0,contains:[i,a,{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},n]}],relevance:0}]}}},{name:"purebasic",create:function(e){var t={className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},a={className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"};return{aliases:["pb","pbi"],keywords:"And As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect Continue Data DataSection EndDataSection Debug DebugLevel Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndEnumeration EndIf EndImport EndInterface EndMacro EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration Extends FakeReturn For Next ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface Macro NewList Not Or ProcedureReturn Protected Prototype PrototypeC Read ReDim Repeat Until Restore Return Select Shared Static Step Structure StructureUnion Swap To Wend While With XIncludeFile XOr Procedure ProcedureC ProcedureCDLL ProcedureDLL Declare DeclareC DeclareCDLL DeclareDLL",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]},t,a]}}},{name:"python",create:function(e){var t={className:"meta",begin:/^(>>>|\.\.\.) /},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[t],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[t],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]},r={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},s={className:"params",begin:/\(/,end:/\)/,contains:["self",t,r,a]};return{aliases:["py","gyp"],keywords:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},illegal:/(<\/|->|\?)/,contains:[t,r,a,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def",relevance:10},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,s,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},{name:"q",create:function(e){var t={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"};return{aliases:["k","kdb"],keywords:t,lexemes:/(`?)[A-Za-z0-9_]+\b/,contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},{name:"qml",create:function(e){var t={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 var variant vector2d vector3d vector4dPromise"},a="[a-zA-Z_][a-zA-Z0-9\\._]*",r={className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},s={className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},n={className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:a,returnEnd:!1}},i={begin:a+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:a,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},l={begin:a+"\\s*{",end:"{",returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:a})]};return{aliases:["qt"],case_insensitive:!1,keywords:t,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:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},s,r,{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,i,l],illegal:/#/}}},{name:"r",create:function(e){var t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[e.HASH_COMMENT_MODE,{begin:t,lexemes:t,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}},{name:"rib",create:function(e){return{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:"</",contains:[e.HASH_COMMENT_MODE,e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}},{name:"roboconf",create:function(e){var t="[a-zA-Z-_][^\\n{]+\\{",a={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{aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+t,end:"}",keywords:"facet",contains:[a,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+t,end:"}",keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",a,e.HASH_COMMENT_MODE]},{begin:"^"+t,end:"}",contains:[a,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}},{name:"rsl",create:function(e){return{keywords:{keyword:"float color point normal vector matrix 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"},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"surface displacement light volume imager",end:"\\("},{beginKeywords:"illuminate illuminance gather",end:"\\("}]}}},{name:"ruby",create:function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},r={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},n=[e.COMMENT("#","$",{contains:[r]}),e.COMMENT("^\\=begin","^\\=end",{contains:[r],relevance:10}),e.COMMENT("^__END__","\\n$")],i={className:"subst",begin:"#\\{",end:"}",keywords:a},l={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},o={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},c=[l,s,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(n)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),o].concat(n)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[l,{begin:t}],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:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[s,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,i],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(n),relevance:0}].concat(n);i.contains=c,o.contains=c;var d="[>?]>",m="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",h=[{begin:/^\s*=>/,starts:{end:"$",contains:c}},{className:"meta",begin:"^("+d+"|"+m+"|"+u+")",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:n.concat(h).concat(c)}}},{name:"ruleslanguage",create:function(e){return{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+[a-zA-Z\\ \\.]*",relevance:0},{begin:"#[a-zA-Z\\ \\.]+"}]}]}}},{name:"rust",create:function(e){var t="([uif](8|16|32|64|size))?",a=e.inherit(e.C_BLOCK_COMMENT_MODE);a.contains.push("self");var r="alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default int i8 i16 i32 i64 isize uint u8 u32 u64 usize float f32 f64 str char bool",s="Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option Result SliceConcatExt String ToString Vec assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules!";return{aliases:["rs"],keywords:{keyword:r,literal:"true false Some None Ok Err",built_in:s},lexemes:e.IDENT_RE+"!?",illegal:"</",contains:[e.C_LINE_COMMENT_MODE,a,e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"string",variants:[{begin:/r(#*)".*?"\1(?!#)/},{begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],relevance:0},{className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE]
+},{className:"meta",begin:"#\\!?\\[",end:"\\]",contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"\\S"},{className:"class",beginKeywords:"trait enum struct",end:"{",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"},{begin:e.IDENT_RE+"::",keywords:{built_in:s}},{begin:"->"}]}}},{name:"scala",create:function(e){var t={className:"meta",begin:"@[A-Za-z]+"},a={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},r={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,a]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[a],relevance:10}]},s={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},n={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},i={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},l={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[n]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[n]},i]},o={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[i]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,s,n,o,l,e.C_NUMBER_MODE,t]}}},{name:"scheme",create:function(e){var t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",a="(\\-|\\+)?\\d+([./]\\d+)?",r=a+"[+\\-]"+a+"i",s={"builtin-name":"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-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? 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-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? 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?"},n={className:"meta",begin:"^#!",end:"$"},i={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},l={className:"number",variants:[{begin:a,relevance:0},{begin:r,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,c=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],d={begin:t,relevance:0},m={className:"symbol",begin:"'"+t},u={endsWithParent:!0,relevance:0},h={begin:/'/,contains:[{begin:"\\(",end:"\\)",contains:["self",i,o,l,d,m]}]},p={className:"name",begin:t,lexemes:t,keywords:s},g={begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[p,{begin:/\(/,end:/\)/,endsParent:!0,contains:[d]}]},b={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[g,p,u]};return u.contains=[i,l,o,d,m,h,b].concat(c),{illegal:/\S/,contains:[n,l,o,m,h,b].concat(c)}}},{name:"scilab",create:function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],lexemes:/%?\w+/,keywords:{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]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}},{name:"scss",create:function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",a={className:"variable",begin:"(\\$"+t+")\\b"},r={className:"number",begin:"#[0-9A-Fa-f]+"};({className:"attribute",begin:"[A-Z\\_\\.\\-]+",end:":",excludeEnd:!0,illegal:"[^\\s]",starts:{endsWithParent:!0,excludeEnd:!0,contains:[r,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"!important"}]}});return{case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},a,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{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:";",contains:[a,r,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,r,e.CSS_NUMBER_MODE,{begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}}},{name:"smali",create:function(e){var 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"],a=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],r=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["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("+r.join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+a.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}}},{name:"smalltalk",create:function(e){var t="[a-z][a-zA-Z0-9_]*",a={className:"string",begin:"\\$.{1}"},r={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{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,a,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"\\#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,a,e.C_NUMBER_MODE,r]}]}}},{name:"sml",create:function(e){return{aliases:["ml"],keywords:{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:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",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:/[-=]>/}]}}},{name:"sqf",create:function(e){var t=e.getLanguage("cpp").exports,a={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:"case catch default do else exit exitWith for forEach from if switch then throw to try while with",built_in:"or plus abs accTime acos action actionKeys actionKeysImages actionKeysNames actionKeysNamesArray actionName activateAddons activatedAddons activateKey addAction addBackpack addBackpackCargo addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats addMagazine addMagazine array addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler addMPEventHandler addMusicEventHandler addPrimaryWeaponItem addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem addSwitchableUnit addTeamMember addToRemainsCollector addUniform addVehicle addVest addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponPool addWeaponTurret agent agents AGLToASL aimedAtTarget aimPos airDensityRTD airportSide AISFinishHeal alive allControls allCurators allDead allDeadMen allDisplays allGroups allMapMarkers allMines allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage allowDammage allowFileOperations allowFleeing allowGetIn allPlayers allSites allTurrets allUnits allUnitsUAV allVariables ammo and animate animateDoor animationPhase animationState append armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines backpackSpaceFor behaviour benchmark binocular blufor boundingBox boundingBoxReal boundingCenter breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode 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 canFire canMove canSlingLoad canStand canUnloadInCombat captive captiveNum cbChecked cbSetChecked ceil cheatsEnabled checkAIFeature civilian className clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool closeDialog closeDisplay closeOverlay collapseObjectTree combatMode commandArtilleryFire commandChat commander commandFire commandFollow commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop commandTarget commandWatch comment commitOverlay compile compileFinal completedFSM composeText configClasses configFile configHierarchy configName configProperties configSourceMod configSourceModList connectTerminalToUAV controlNull controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count countEnemy countFriendly countSide countType countUnknown createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker createMarkerLocal createMenu createMine createMissionDisplay createSimpleTask createSite createSoundSource createTask createTeam createTrigger createUnit createUnit array createVehicle createVehicle array createVehicleCrew createVehicleLocal crew ctrlActivate ctrlAddEventHandler ctrlAutoScrollDelay ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ctrlParent ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ctrlScale ctrlSetActiveColor ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontP ctrlSetFontPB ctrlSetForegroundColor ctrlSetModel ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPosition ctrlSetScale ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ctrlType ctrlVisible curatorAddons curatorCamera curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected curatorWaypointCost currentChannel currentCommand currentMagazine currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorTarget customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime deActivateKey debriefingText debugFSM debugLog deg deleteAt deleteCenter deleteCollection deleteEditorObject deleteGroup deleteIdentity deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines diag activeMissionFSMs diag activeSQFScripts diag activeSQSScripts diag captureFrame diag captureSlowFrame diag fps diag fpsMin diag frameNo diag log diag logSlowFrame diag tickTime dialog diarySubjectExists didJIP didJIPOwner difficulty difficultyEnabled difficultyEnabledRTD direction directSay disableAI disableCollisionWith disableConversation disableDebriefingStats disableSerialization disableTIEquipment disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayNull displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam distance distance2D distanceSqr distributionRegion doArtilleryFire doFire doFollow doFSM doGetOut doMove doorPhase doStop doTarget doWatch drawArrow drawEllipse drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawRectangle driver drop east echo editObject editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature enableAttack enableCamShake enableCaustics enableCollisionWith enableCopilot enableDebriefingStats enableDiagLegend enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights enableIRLasers enableMimics enablePersonTurret enableRadio enableReload enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation enableSimulationGlobal enableTeamSwitch enableUAVConnectability enableUAVWaypoints endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack everyContainer exec execEditorScript execFSM execVM exp expectedDestination eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition findEmptyPositionReady findNearestEnemy finishMissionInit finite fire fireAtTarget firstBackpack flag flagOwner fleeing floor flyInHeight fog fogForecast fogParams forceAddUniform forceEnd forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange forEachMember forEachMemberAgent forEachMemberTeam format formation formationDirection formationLeader formationMembers formationPosition formationTask formatText formLeader freeLook fromEditor fuel fullCrew gearSlotAmmoCount gearSlotData getAllHitPointsDamage getAmmoCargo getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining getBurningValue getCargoIndex getCenterOfMass getClientState getConnectedUAV getDammage getDescription getDir getDirVisual getDLCs getEditorCamera getEditorMode getEditorObjectScope getElevationOffset getFatigue getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos getMarkerSize getMarkerType getMass getModelInfo getNumber getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs getPlayerChannel getPlayerUID getPos getPosASL getPosASLVisual getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getRepairCargo getResolution getShadowDistance getSlingLoad getSpeed getSuppression getTerrainHeightASL getText getVariable getWeaponCargo getWPPos glanceAt globalChat globalRadio goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId groupOwner groupRadio groupSelectedUnits groupSelectUnit grpNull gunner gusts halt handgunItems handgunMagazine handgunWeapon handsHit hasInterface hasWeapon hcAllGroups hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hint hintC hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups importance in incapacitatedState independent inflame inflamed inGameUISetEventHandler inheritsFrom initAmbientLife inputAction inRangeOfArtillery insertEditorObject intersect isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDedicated isDLCAvailable isEngineOn isEqualTo isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn isKeyActive isKindOf isLightOn isLocalized isManualFire isMarkedForCollection isMultiplayer isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad isPipEnabled isPlayer isRealTime isServer isShowing3DIcons isSteamMission isStreamFriendlyUIEnabled isText isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUniformAllowed isWalking isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language laserTarget lbAdd lbClear lbColor lbCurSel lbData lbDelete lbIsSelected lbPicture lbSelection lbSetColor lbSetCurSel lbSetData lbSetPicture lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetTooltip lbSetValue lbSize lbSort lbSortByValue lbText lbValue leader leaderboardDeInit leaderboardGetRows leaderboardInit leaveVehicle libraryCredits libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed linearConversion lineBreak lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith linkItem list listObjects ln lnbAddArray lnbAddColumn lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData lnbSetPicture lnbSetText lnbSetValue lnbSize lnbText lnbValue load loadAbs loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform loadVest local localize locationNull locationPosition lock lockCameraTo lockCargo lockDriver locked lockedCargo lockedDriver lockedTurret lockTurret lockWP log logEntities lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText markerType max members min mineActive mineDetectedBy missionConfigFile missionName missionNamespace missionStart mod modelToWorld modelToWorldVisual moonIntensity morale move moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name name location nameSound nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing nearestObject nearestObjects nearObjects nearObjectsReady nearRoads nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex nextWeatherChange nMenuItems not numberToDate objectCurators objectFromNetId objectParent objNull objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch openCuratorInterface openMap openYoutubeVideo opfor or orderGetIn overcast overcastForecast owner param params parseNumber parseText parsingNamespace particlesQuality pi pickWeaponPool pitch playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ppEffectForceInNVG precision preloadCamera preloadObject preloadSound preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon primaryWeaponItems primaryWeaponMagazine priority private processDiaryLink productVersion profileName profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition publicVariable publicVariableClient publicVariableServer pushBack putWeaponPool queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl remoteExec remoteExecCall removeAction removeAllActions removeAllAssignedItems removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers removeAllMusicEventHandlers removeAllPrimaryWeaponItems removeAllWeapons removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler removeMusicEventHandler removePrimaryWeaponItem removeSecondaryWeaponItem removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon removeWeaponGlobal removeWeaponTurret requiredVersion resetCamShake resetSubgroupDirection resistance resize resources respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ropeAttachTo ropeCreate ropeCut ropeEndPosition ropeLength ropes ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY saveGame saveIdentity saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D scopeName score scoreSide screenToWorld scriptDone scriptName scriptNull scudState secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces selectDiarySubject selectedEditorObjects selectEditorObject selectionPosition selectLeader selectNoPlayer selectPlayer selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime set setAccTime setAirportSide setAmmo setAmmoCargo setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour setBleedingRemaining setCameraInterest setCamShakeDefParams setCamShakeParams setCamUseTi setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination setDetailMapBlendPars setDir setDirection setDrawIcon setDropInterval setEditorMode setEditorObjectScope setEffectCondition setFace setFaceAnimation setFatigue setFlagOwner setFlagSide setFlagTexture setFog setFog array setFormation setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setLeader setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound setObjectArguments setObjectMaterial setObjectProxy setObjectTexture setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom setPilotLight setPiPEffect setPitch setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW setPosATL setPosition setPosWorld setRadioMsg setRain setRainbow setRandomLip setRank setRectangular setRepairCargo setShadowDistance setSide setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimulWeatherLayers setSize setSkill setSkill array setSlingLoad setSoundEffect setSpeaker setSpeech setSpeedMode setStatValue setSuppression setSystemOfUnits setTargetAge setTaskResult setTaskState setTerrainGrid setText setTimeMultiplier setTitleEffect setTriggerActivation setTriggerArea setTriggerStatements setTriggerText setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitPos setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnloadInCombat setUserActionText setVariable setVectorDir setVectorDirAndUp setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleId setVehicleLock setVehiclePosition setVehicleTiPars setVehicleVarName setVelocity setVelocityTransformation setViewDistance setVisibleIfTreeCollapsed setWaves setWaypointBehaviour setWaypointCombatMode setWaypointCompletionRadius setWaypointDescription setWaypointFormation setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce setWindStr setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap shownPad shownRadio shownUAVFeed shownWarrant shownWatch showPad showRadio showSubtitles showUAVFeed showWarrant showWatch showWaypoint side sideChat sideEnemy sideFriendly sideLogic sideRadio sideUnknown 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 speed speedMode splitString sqrt squadParams stance startLoadingScreen step stop stopped str sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth switchableUnits switchAction switchCamera switchGesture switchLight switchMove synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint synchronizeWaypoint trigger systemChat systemOfUnits tan targetKnowledge targetsAggregate targetsQuery taskChildren taskCompleted taskDescription taskDestination taskHint taskNull taskParent taskResult taskState teamMember teamMemberNull teamName teams teamSwitch teamSwitchEnabled teamType terminate terrainIntersect terrainIntersectASL text text location textLog textLogFormat tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toLower toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle triggerAttachObject triggerAttachVehicle triggerStatements triggerText triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear tvCollapse tvCount tvCurSel tvData tvDelete tvExpand tvPicture tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetTooltip tvSetValue tvSort tvSortByValue tvText tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems uniformMagazines unitAddons unitBackpack unitPos unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAudioTimeForMoves vectorAdd vectorCos vectorCrossProduct vectorDiff vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo vectorMagnitude vectorMagnitudeSqr vectorMultiply vectorNormalized vectorUp vectorUpVisual vehicle vehicleChat vehicleRadio vehicles vehicleVarName velocity velocityModelSpace verifySignature vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap visiblePosition visiblePositionASL visibleWatch waitUntil waves waypointAttachedObject waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour waypointCombatMode waypointCompletionRadius waypointDescription waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible weaponAccessories weaponCargo weaponDirection weaponLowered weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD west WFSideText wind windDir windStr wingsForcesRTD worldName worldSize worldToModel worldToModelVisual worldToScreen _forEachIndex _this _x",
+literal:"true false nil"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,a,t.preprocessor],illegal:/#/}}},{name:"sql",create:function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}}},{name:"stan",create:function(e){return{contains:[e.HASH_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE,lexemes:e.UNDERSCORE_IDENT_RE,keywords:{name:"for in while repeat until if then else",symbol:"bernoulli bernoulli_logit binomial binomial_logit beta_binomial hypergeometric categorical categorical_logit ordered_logistic neg_binomial neg_binomial_2 neg_binomial_2_log poisson poisson_log multinomial normal exp_mod_normal skew_normal student_t cauchy double_exponential logistic gumbel lognormal chi_square inv_chi_square scaled_inv_chi_square exponential inv_gamma weibull frechet rayleigh wiener pareto pareto_type_2 von_mises uniform multi_normal multi_normal_prec multi_normal_cholesky multi_gp multi_gp_cholesky multi_student_t gaussian_dlm_obs dirichlet lkj_corr lkj_corr_cholesky wishart inv_wishart","selector-tag":"int real vector simplex unit_vector ordered positive_ordered row_vector matrix cholesky_factor_corr cholesky_factor_cov corr_matrix cov_matrix",title:"functions model data parameters quantities transformed generated",literal:"true false"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0}]}}},{name:"stata",create:function(e){return{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 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 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 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 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 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 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 meqparse mer merg merge 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 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_]+\}?/},{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]}}},{name:"step21",create:function(e){var t="[A-Z_][A-Z0-9_.]*",a={keyword:"HEADER ENDSEC DATA"},r={className:"meta",begin:"ISO-10303-21;",relevance:10},s={className:"meta",begin:"END-ISO-10303-21;",relevance:10};return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:t,keywords:a,contains:[r,s,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"}]}]}}},{name:"stylus",create:function(e){var t={className:"variable",begin:"\\$"+e.IDENT_RE},a={className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},r=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],s=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],n=["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","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"],i="[\\.\\s\\n\\[\\:,]",l=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","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-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","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","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-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],o=["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];
+return{aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+o.join("|")+")",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+i,returnBegin:!0,contains:[{className:"selector-class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+i,returnBegin:!0,contains:[{className:"selector-id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+n.join("|")+")"+i,returnBegin:!0,contains:[{className:"selector-tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"&?:?:\\b("+s.join("|")+")"+i},{begin:"@("+r.join("|")+")\\b"},t,e.CSS_NUMBER_MODE,e.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:[a,t,e.APOS_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+l.reverse().join("|")+")\\b",starts:{end:/;|$/,contains:[a,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/\./,relevance:0}}]}}},{name:"subunit",create:function(e){var t={className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},a={className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},r={className:"string",begin:"(\\+|-)\\d+"},s={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:"}]};return{case_insensitive:!0,contains:[t,a,r,s]}}},{name:"swift",create:function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},n={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},i=e.inherit(e.QUOTE_STRING_MODE,{contains:[s,e.BACKSLASH_ESCAPE]});return s.contains=[n],{keywords:t,contains:[i,e.C_LINE_COMMENT_MODE,r,a,n,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin:/</,end:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",n,i,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"meta",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,r]}]}}},{name:"taggerscript",create:function(e){var t={className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\(/,end:/\)/,contains:["self",{begin:/\\./}]}],relevance:10},a={className:"keyword",begin:/\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,end:/\(/,excludeEnd:!0},r={className:"variable",begin:/%[_a-zA-Z0-9:]*/,end:"%"},s={className:"symbol",begin:/\\./};return{contains:[t,a,r,s]}}},{name:"tap",create:function(e){return{case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:"(s+)?---$",end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}},{name:"tcl",create:function(e){return{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}]},{excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]}]}}},{name:"tex",create:function(e){var t={className:"tag",begin:/\\/,relevance:0,contains:[{className:"name",variants:[{begin:/[a-zA-Zа-яА-я]+[*]?/},{begin:/[^a-zA-Zа-яА-я0-9]/}],starts:{endsWithParent:!0,relevance:0,contains:[{className:"string",variants:[{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/}]},{begin:/\s*=\s*/,endsWithParent:!0,relevance:0,contains:[{className:"number",begin:/-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{contains:[t,{className:"formula",contains:[t],relevance:0,variants:[{begin:/\$\$/,end:/\$\$/},{begin:/\$/,end:/\$/}]},e.COMMENT("%","$",{relevance:0})]}}},{name:"thrift",create:function(e){var t="bool byte i16 i32 i64 double string binary";return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in: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*<",end:">",keywords:t,contains:["self"]}]}}},{name:"tp",create:function(e){var t={className:"number",begin:"[1-9][0-9]*",relevance:0},a={className:"symbol",begin:":[^\\]]+"},r={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,a]},s={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,a]};return{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:[r,s,{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_]+"}]}}},{name:"twig",create:function(e){var t={className:"params",begin:"\\(",end:"\\)"},a="attribute block constant cycle date dump include max min parent random range source template_from_string",r={beginKeywords:a,keywords:{name:a},relevance:0,contains:[t]},s={begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[r]},n="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return n=n+" "+n.split(" ").map(function(e){return"end"+e}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#}/),{className:"template-tag",begin:/\{%/,end:/%}/,contains:[{className:"name",begin:/\w+/,keywords:n,starts:{endsWithParent:!0,contains:[s,r],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/}}/,contains:["self",s,r]}]}}},{name:"typescript",create:function(e){var t={keyword:"in 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 class public private protected get set super static implements enum export import declare type namespace abstract",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 any number boolean string void"};return{aliases:["ts"],keywords:t,contains:[{className:"meta",begin:/^\s*['"]use strict['"]/},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],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0}]}}},{name:"vala",create:function(e){return{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:"$",relevance:2}]}}},{name:"vbnet",create:function(e){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as 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 is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem 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 xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT("'","$",{returnBegin:!0,contains:[{className:"doctag",begin:"'''|<!--|-->",contains:[e.PHRASAL_WORDS_MODE]},{className:"doctag",begin:"</?",end:">",contains:[e.PHRASAL_WORDS_MODE]}]}),e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end region externalsource"}}]}}},{name:"vbscript-html",create:function(e){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}},{name:"vbscript",create:function(e){return{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:"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 scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}},{name:"verilog",create:function(e){var t={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"};return{aliases:["v","sv","svh"],case_insensitive:!1,keywords:t,lexemes:/[\w\$]+/,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"\\b((\\d+'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\B(('(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\b([0-9_])+",relevance:0}]},{className:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{className:"meta",begin:"`",end:"$",keywords:{"meta-keyword":"define __FILE__ __LINE__ begin_keywords celldefine default_nettype define else elsif end_keywords endcelldefine endif ifdef ifndef include line nounconnected_drive pragma resetall timescale unconnected_drive undef undefineall"},relevance:0}]}}},{name:"vhdl",create:function(e){var t="\\d(_|\\d)*",a="[eE][-+]?"+t,r=t+"(\\."+t+")?("+a+")?",s="\\w+",n=t+"#"+s+"(\\."+s+")?#("+a+")?",i="\\b("+n+"|"+r+")";return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert 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 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 vmode vprop vunit wait when while with xnor xor",built_in:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:i,relevance:0},{className:"literal",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]}]}}},{name:"vim",create:function(e){return{lexemes:/[!#@\w]+/,keywords:{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,e.APOS_STRING_MODE,{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}},{name:"x86asm",create:function(e){return{case_insensitive:!0,lexemes:"[.%]?"+e.IDENT_RE,keywords:{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_-]+/}]}}},{name:"xl",create:function(e){var t="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",a={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 "+t},r={className:"string",begin:'"',end:'"',illegal:"\\n"},s={className:"string",begin:"'",end:"'",illegal:"\\n"},n={className:"string",begin:"<<",end:">>"},i={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},l={beginKeywords:"import",end:"$",keywords:a,contains:[r]},o={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:a}})]};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,s,n,o,l,i,e.NUMBER_MODE]}}},{name:"xml",create:function(e){var t="[A-Za-z0-9\\._:-]+",a={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:t,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("<!--","-->",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{name:"style"},contains:[a],starts:{end:"</style>",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{name:"script"},contains:[a],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},a]}]}}},{name:"xquery",create:function(e){var t="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",a="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",r={begin:/\$[a-zA-Z0-9\-]+/},s={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},n={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},i={className:"meta",begin:"%\\w+"},l={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doctag",begin:"@\\w+"}]},o={begin:"{",end:"}"},c=[r,n,s,l,i,o];return o.contains=c,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:t,literal:a},contains:c}}},{name:"yaml",create:function(e){var t={literal:"{ } true false yes no Yes No True False null"},a="^[ \\-]*",r="[a-zA-Z_][\\w\\-]*",s={className:"attr",variants:[{begin:a+r+":"},{begin:a+'"'+r+'":'},{begin:a+"'"+r+"':"}]},n={className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]},i={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}],contains:[e.BACKSLASH_ESCAPE,n]};return{case_insensitive:!0,aliases:["yml","YAML","yaml"],contains:[s,{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>] *$",returnEnd:!0,contains:i.contains,end:s.variants[0].begin},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!!"+e.UNDERSCORE_IDENT_RE},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"^ *-",relevance:0},i,e.HASH_COMMENT_MODE,e.C_NUMBER_MODE],keywords:t}}},{name:"zephir",create:function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{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",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_BLOCK_COMMENT_MODE,t,a]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},t,a]}}}],n=0;n<s.length;++n)r.registerLanguage(s[n].name,s[n].create);t.exports={styles:{agate:".hljs-agate{/*! * Agate by Taufik Nurrohman <https://github.com/tovic> * ---------------------------------------------------- * * #ade5fc * #a2fca2 * #c6b4f0 * #d36363 * #fcc28c * #fc9b9b * #ffa * #fff * #333 * #62c8f3 * #888 * */}.hljs-agate .hljs{display:block;overflow-x:auto;padding:.5em;background:#333;color:white}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic}.hljs-agate .hljs-tag{color:#62c8f3}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0}.hljs-agate .hljs-meta{color:#fc9b9b}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333}.hljs-agate .hljs a{color:inherit}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline}",androidstudio:".hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:.5em}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080}.hljs-androidstudio .hljs-meta{color:#bbb529}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a}.hljs-androidstudio .hljs-emphasis{font-style:italic}.hljs-androidstudio .hljs-strong{font-weight:bold}","arduino-light":".hljs-arduino-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFFF}.hljs-arduino-light .hljs,.hljs-arduino-light .hljs-subst{color:#434f54}.hljs-arduino-light .hljs-keyword,.hljs-arduino-light .hljs-attribute,.hljs-arduino-light .hljs-selector-tag,.hljs-arduino-light .hljs-doctag,.hljs-arduino-light .hljs-name{color:#00979D}.hljs-arduino-light .hljs-built_in,.hljs-arduino-light .hljs-literal,.hljs-arduino-light .hljs-bullet,.hljs-arduino-light .hljs-code,.hljs-arduino-light .hljs-addition{color:#D35400}.hljs-arduino-light .hljs-regexp,.hljs-arduino-light .hljs-symbol,.hljs-arduino-light .hljs-variable,.hljs-arduino-light .hljs-template-variable,.hljs-arduino-light .hljs-link,.hljs-arduino-light .hljs-selector-attr,.hljs-arduino-light .hljs-selector-pseudo{color:#00979D}.hljs-arduino-light .hljs-type,.hljs-arduino-light .hljs-string,.hljs-arduino-light .hljs-selector-id,.hljs-arduino-light .hljs-selector-class,.hljs-arduino-light .hljs-quote,.hljs-arduino-light .hljs-template-tag,.hljs-arduino-light .hljs-deletion{color:#005C5F}.hljs-arduino-light .hljs-title,.hljs-arduino-light .hljs-section{color:#880000;font-weight:bold}.hljs-arduino-light .hljs-comment{color:rgba(149,165,166,0.8)}.hljs-arduino-light .hljs-meta-keyword{color:#728E00}.hljs-arduino-light .hljs-meta{color:#728E00;color:#434f54}.hljs-arduino-light .hljs-emphasis{font-style:italic}.hljs-arduino-light .hljs-strong{font-weight:bold}.hljs-arduino-light .hljs-function{color:#728E00}.hljs-arduino-light .hljs-number{color:#8A7B52}",arta:".hljs-arta .hljs{display:block;overflow-x:auto;padding:.5em;background:#222}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa}.hljs-arta .hljs-section{color:#fff}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold}.hljs-arta .hljs-emphasis{font-style:italic}",ascetic:".hljs-ascetic .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold}.hljs-ascetic .hljs-emphasis{font-style:italic}","atelier-cave-dark":".hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:.5em}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold}","atelier-cave-light":".hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:.5em}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic}.hljs-atelier-cave-light .hljs-strong{font-weight:bold}","atelier-dune-dark":".hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:.5em}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold}","atelier-dune-light":".hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:.5em}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic}.hljs-atelier-dune-light .hljs-strong{font-weight:bold}","atelier-estuary-dark":".hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:.5em}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold}","atelier-estuary-light":".hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:.5em}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold}","atelier-forest-dark":".hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:.5em}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold}","atelier-forest-light":".hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:.5em}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic}.hljs-atelier-forest-light .hljs-strong{font-weight:bold}","atelier-heath-dark":".hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:.5em}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold}","atelier-heath-light":".hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:.5em}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic}.hljs-atelier-heath-light .hljs-strong{font-weight:bold}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:.5em}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold}",
+"atelier-lakeside-light":".hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:.5em}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold}","atelier-plateau-dark":".hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:.5em}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold}","atelier-plateau-light":".hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:.5em}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold}","atelier-savanna-dark":".hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:.5em}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold}","atelier-savanna-light":".hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:.5em}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold}","atelier-seaside-dark":".hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:.5em}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold}","atelier-seaside-light":".hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:.5em}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:.5em}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:.5em}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold}","atom-one-dark":".hljs-atom-one-dark .hljs{display:block;overflow-x:auto;padding:.5em;color:#abb2bf;background:#282c34}.hljs-atom-one-dark .hljs-comment,.hljs-atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.hljs-atom-one-dark .hljs-doctag,.hljs-atom-one-dark .hljs-keyword,.hljs-atom-one-dark .hljs-formula{color:#c678dd}.hljs-atom-one-dark .hljs-section,.hljs-atom-one-dark .hljs-name,.hljs-atom-one-dark .hljs-selector-tag,.hljs-atom-one-dark .hljs-deletion,.hljs-atom-one-dark .hljs-subst{color:#e06c75}.hljs-atom-one-dark .hljs-literal{color:#56b6c2}.hljs-atom-one-dark .hljs-string,.hljs-atom-one-dark .hljs-regexp,.hljs-atom-one-dark .hljs-addition,.hljs-atom-one-dark .hljs-attribute,.hljs-atom-one-dark .hljs-meta-string{color:#98c379}.hljs-atom-one-dark .hljs-built_in,.hljs-atom-one-dark .hljs-class .hljs-title{color:#e6c07b}.hljs-atom-one-dark .hljs-variable,.hljs-atom-one-dark .hljs-template-variable,.hljs-atom-one-dark .hljs-type,.hljs-atom-one-dark .hljs-selector-class,.hljs-atom-one-dark .hljs-selector-attr,.hljs-atom-one-dark .hljs-selector-pseudo,.hljs-atom-one-dark .hljs-number{color:#d19a66}.hljs-atom-one-dark .hljs-symbol,.hljs-atom-one-dark .hljs-bullet,.hljs-atom-one-dark .hljs-link,.hljs-atom-one-dark .hljs-meta,.hljs-atom-one-dark .hljs-selector-id,.hljs-atom-one-dark .hljs-title{color:#61aeee}.hljs-atom-one-dark .hljs-emphasis{font-style:italic}.hljs-atom-one-dark .hljs-strong{font-weight:bold}.hljs-atom-one-dark .hljs-link{text-decoration:underline}","atom-one-light":".hljs-atom-one-light .hljs{display:block;overflow-x:auto;padding:.5em;color:#383a42;background:#fafafa}.hljs-atom-one-light .hljs-comment,.hljs-atom-one-light .hljs-quote{color:#a0a1a7;font-style:italic}.hljs-atom-one-light .hljs-doctag,.hljs-atom-one-light .hljs-keyword,.hljs-atom-one-light .hljs-formula{color:#a626a4}.hljs-atom-one-light .hljs-section,.hljs-atom-one-light .hljs-name,.hljs-atom-one-light .hljs-selector-tag,.hljs-atom-one-light .hljs-deletion,.hljs-atom-one-light .hljs-subst{color:#e45649}.hljs-atom-one-light .hljs-literal{color:#0184bb}.hljs-atom-one-light .hljs-string,.hljs-atom-one-light .hljs-regexp,.hljs-atom-one-light .hljs-addition,.hljs-atom-one-light .hljs-attribute,.hljs-atom-one-light .hljs-meta-string{color:#50a14f}.hljs-atom-one-light .hljs-built_in,.hljs-atom-one-light .hljs-class .hljs-title{color:#c18401}.hljs-atom-one-light .hljs-variable,.hljs-atom-one-light .hljs-template-variable,.hljs-atom-one-light .hljs-type,.hljs-atom-one-light .hljs-selector-class,.hljs-atom-one-light .hljs-selector-attr,.hljs-atom-one-light .hljs-selector-pseudo,.hljs-atom-one-light .hljs-number{color:#986801}.hljs-atom-one-light .hljs-symbol,.hljs-atom-one-light .hljs-bullet,.hljs-atom-one-light .hljs-link,.hljs-atom-one-light .hljs-meta,.hljs-atom-one-light .hljs-selector-id,.hljs-atom-one-light .hljs-title{color:#4078f2}.hljs-atom-one-light .hljs-emphasis{font-style:italic}.hljs-atom-one-light .hljs-strong{font-weight:bold}.hljs-atom-one-light .hljs-link{text-decoration:underline}","brown-paper":".hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:.5em;background:#b7a68e url(brown-papersq.png)}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold}.hljs-brown-paper .hljs-emphasis{font-style:italic}","codepen-embed":".hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:.5em;background:#222;color:#fff}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c}.hljs-codepen-embed .hljs-emphasis{font-style:italic}.hljs-codepen-embed .hljs-strong{font-weight:bold}","color-brewer":".hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd}.hljs-color-brewer .hljs-emphasis{font-style:italic}.hljs-color-brewer .hljs-attribute{color:#e6550d}",darcula:".hljs-darcula .hljs{display:block;overflow-x:auto;padding:.5em;background:#2b2b2b}.hljs-darcula .hljs{color:#bababa}.hljs-darcula .hljs-strong,.hljs-darcula .hljs-emphasis{color:#a8a8a2}.hljs-darcula .hljs-bullet,.hljs-darcula .hljs-quote,.hljs-darcula .hljs-link,.hljs-darcula .hljs-number,.hljs-darcula .hljs-regexp,.hljs-darcula .hljs-literal{color:#6896ba}.hljs-darcula .hljs-code,.hljs-darcula .hljs-selector-class{color:#a6e22e}.hljs-darcula .hljs-emphasis{font-style:italic}.hljs-darcula .hljs-keyword,.hljs-darcula .hljs-selector-tag,.hljs-darcula .hljs-section,.hljs-darcula .hljs-attribute,.hljs-darcula .hljs-name,.hljs-darcula .hljs-variable{color:#cb7832}.hljs-darcula .hljs-params{color:#b9b9b9}.hljs-darcula .hljs-string{color:#6a8759}.hljs-darcula .hljs-subst,.hljs-darcula .hljs-type,.hljs-darcula .hljs-built_in,.hljs-darcula .hljs-builtin-name,.hljs-darcula .hljs-symbol,.hljs-darcula .hljs-selector-id,.hljs-darcula .hljs-selector-attr,.hljs-darcula .hljs-selector-pseudo,.hljs-darcula .hljs-template-tag,.hljs-darcula .hljs-template-variable,.hljs-darcula .hljs-addition{color:#e0c46c}.hljs-darcula .hljs-comment,.hljs-darcula .hljs-deletion,.hljs-darcula .hljs-meta{color:#7f7f7f}",dark:".hljs-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#444}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold}.hljs-dark .hljs-emphasis{font-style:italic}",darkula:".hljs-darkula{@import url('darcula.css');}",default:".hljs-default .hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444}.hljs-default .hljs-comment{color:#888888}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060}.hljs-default .hljs-literal{color:#78A960}.hljs-default .hljs-built_in,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#397300}.hljs-default .hljs-meta{color:#1f7199}.hljs-default .hljs-meta-string{color:#4d99bf}.hljs-default .hljs-emphasis{font-style:italic}.hljs-default .hljs-strong{font-weight:bold}",docco:".hljs-docco .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#f8f8ff}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121}.hljs-docco .hljs-number{color:#40a070}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d}.hljs-docco .hljs-params{color:#00f}.hljs-docco .hljs-title{color:#458;font-weight:bold}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3}.hljs-docco .hljs-meta{color:#999;font-weight:bold}.hljs-docco .hljs-deletion{background:#fdd}.hljs-docco .hljs-addition{background:#dfd}.hljs-docco .hljs-emphasis{font-style:italic}.hljs-docco .hljs-strong{font-weight:bold}",dracula:".hljs-dracula .hljs{display:block;overflow-x:auto;padding:.5em;background:#282a36}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-section,.hljs-dracula .hljs-link{color:#8be9fd}.hljs-dracula .hljs-function .hljs-keyword{color:#ff79c6}.hljs-dracula .hljs,.hljs-dracula .hljs-subst{color:#f8f8f2}.hljs-dracula .hljs-string,.hljs-dracula .hljs-title,.hljs-dracula .hljs-name,.hljs-dracula .hljs-type,.hljs-dracula .hljs-attribute,.hljs-dracula .hljs-symbol,.hljs-dracula .hljs-bullet,.hljs-dracula .hljs-addition,.hljs-dracula .hljs-variable,.hljs-dracula .hljs-template-tag,.hljs-dracula .hljs-template-variable{color:#f1fa8c}.hljs-dracula .hljs-comment,.hljs-dracula .hljs-quote,.hljs-dracula .hljs-deletion,.hljs-dracula .hljs-meta{color:#6272a4}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-title,.hljs-dracula .hljs-section,.hljs-dracula .hljs-doctag,.hljs-dracula .hljs-type,.hljs-dracula .hljs-name,.hljs-dracula .hljs-strong{font-weight:bold}.hljs-dracula .hljs-emphasis{font-style:italic}",far:".hljs-far .hljs{display:block;overflow-x:auto;padding:.5em;background:#000080}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0}.hljs-far .hljs-meta{color:#008080}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold}.hljs-far .hljs-emphasis{font-style:italic}",foundation:".hljs-foundation .hljs{display:block;overflow-x:auto;padding:.5em;background:#eee;color:black}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070}.hljs-foundation .hljs-emphasis{font-style:italic}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14}.hljs-foundation .hljs-strong{font-weight:bold}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699}.hljs-foundation .hljs-bullet{color:#997700}.hljs-foundation .hljs-meta{color:#3344bb}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088}.hljs-foundation .hljs-symbol{color:#990073}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700}","github-gist":".hljs-github-gist .hljs{display:block;background:white;padding:.5em;color:#333333;overflow-x:auto}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896}.hljs-github-gist .hljs-string,.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#a71d5d}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c}.hljs-github-gist .hljs-tag{color:#333333}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#795da3}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-github-gist .hljs-link{text-decoration:underline}",github:".hljs-github .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold}.hljs-github .hljs-subst{font-weight:normal}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3}.hljs-github .hljs-meta{color:#999;font-weight:bold}.hljs-github .hljs-deletion{background:#fdd}.hljs-github .hljs-addition{background:#dfd}.hljs-github .hljs-emphasis{font-style:italic}.hljs-github .hljs-strong{font-weight:bold}",googlecode:".hljs-googlecode .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9B703F}.hljs-googlecode .hljs-addition{background-color:#baeeba}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold}.hljs-googlecode .hljs-emphasis{font-style:italic}",
+grayscale:".hljs-grayscale .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#fff}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold}.hljs-grayscale .hljs-subst{font-weight:normal}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold}.hljs-grayscale .hljs-tag{color:#333}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-emphasis{font-style:italic}.hljs-grayscale .hljs-strong{font-weight:bold}","gruvbox-dark":".hljs-gruvbox-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#282828}.hljs-gruvbox-dark .hljs,.hljs-gruvbox-dark .hljs-subst{color:#ebdbb2}.hljs-gruvbox-dark .hljs-deletion,.hljs-gruvbox-dark .hljs-formula,.hljs-gruvbox-dark .hljs-keyword,.hljs-gruvbox-dark .hljs-link,.hljs-gruvbox-dark .hljs-selector-tag{color:#fb4934}.hljs-gruvbox-dark .hljs-built_in,.hljs-gruvbox-dark .hljs-emphasis,.hljs-gruvbox-dark .hljs-name,.hljs-gruvbox-dark .hljs-quote,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-title,.hljs-gruvbox-dark .hljs-variable{color:#83a598}.hljs-gruvbox-dark .hljs-attr,.hljs-gruvbox-dark .hljs-params,.hljs-gruvbox-dark .hljs-template-tag,.hljs-gruvbox-dark .hljs-type{color:#fabd2f}.hljs-gruvbox-dark .hljs-builtin-name,.hljs-gruvbox-dark .hljs-doctag,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#8f3f71}.hljs-gruvbox-dark .hljs-code,.hljs-gruvbox-dark .hljs-meta,.hljs-gruvbox-dark .hljs-regexp,.hljs-gruvbox-dark .hljs-selector-id,.hljs-gruvbox-dark .hljs-template-variable{color:#fe8019}.hljs-gruvbox-dark .hljs-addition,.hljs-gruvbox-dark .hljs-meta-string,.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-selector-attr,.hljs-gruvbox-dark .hljs-selector-class,.hljs-gruvbox-dark .hljs-string,.hljs-gruvbox-dark .hljs-symbol{color:#b8bb26}.hljs-gruvbox-dark .hljs-attribute,.hljs-gruvbox-dark .hljs-bullet,.hljs-gruvbox-dark .hljs-class,.hljs-gruvbox-dark .hljs-function,.hljs-gruvbox-dark .hljs-function .hljs-keyword,.hljs-gruvbox-dark .hljs-meta-keyword,.hljs-gruvbox-dark .hljs-selector-pseudo,.hljs-gruvbox-dark .hljs-tag{color:#8ec07c}.hljs-gruvbox-dark .hljs-comment{color:#928374}.hljs-gruvbox-dark .hljs-link_label,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#d3869b}.hljs-gruvbox-dark .hljs-comment,.hljs-gruvbox-dark .hljs-emphasis{font-style:italic}.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-tag{font-weight:bold}","gruvbox-light":".hljs-gruvbox-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fbf1c7}.hljs-gruvbox-light .hljs,.hljs-gruvbox-light .hljs-subst{color:#3c3836}.hljs-gruvbox-light .hljs-deletion,.hljs-gruvbox-light .hljs-formula,.hljs-gruvbox-light .hljs-keyword,.hljs-gruvbox-light .hljs-link,.hljs-gruvbox-light .hljs-selector-tag{color:#9d0006}.hljs-gruvbox-light .hljs-built_in,.hljs-gruvbox-light .hljs-emphasis,.hljs-gruvbox-light .hljs-name,.hljs-gruvbox-light .hljs-quote,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-title,.hljs-gruvbox-light .hljs-variable{color:#076678}.hljs-gruvbox-light .hljs-attr,.hljs-gruvbox-light .hljs-params,.hljs-gruvbox-light .hljs-template-tag,.hljs-gruvbox-light .hljs-type{color:#b57614}.hljs-gruvbox-light .hljs-builtin-name,.hljs-gruvbox-light .hljs-doctag,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-code,.hljs-gruvbox-light .hljs-meta,.hljs-gruvbox-light .hljs-regexp,.hljs-gruvbox-light .hljs-selector-id,.hljs-gruvbox-light .hljs-template-variable{color:#af3a03}.hljs-gruvbox-light .hljs-addition,.hljs-gruvbox-light .hljs-meta-string,.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-selector-attr,.hljs-gruvbox-light .hljs-selector-class,.hljs-gruvbox-light .hljs-string,.hljs-gruvbox-light .hljs-symbol{color:#79740e}.hljs-gruvbox-light .hljs-attribute,.hljs-gruvbox-light .hljs-bullet,.hljs-gruvbox-light .hljs-class,.hljs-gruvbox-light .hljs-function,.hljs-gruvbox-light .hljs-function .hljs-keyword,.hljs-gruvbox-light .hljs-meta-keyword,.hljs-gruvbox-light .hljs-selector-pseudo,.hljs-gruvbox-light .hljs-tag{color:#427b58}.hljs-gruvbox-light .hljs-comment{color:#928374}.hljs-gruvbox-light .hljs-link_label,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-comment,.hljs-gruvbox-light .hljs-emphasis{font-style:italic}.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-tag{font-weight:bold}",hopscotch:".hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e}.hljs-hopscotch .hljs-meta{color:#149b93}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:.5em}.hljs-hopscotch .hljs-emphasis{font-style:italic}.hljs-hopscotch .hljs-strong{font-weight:bold}",hybrid:".hljs-hybrid .hljs{display:block;overflow-x:auto;padding:.5em;background:#1d1f21}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41}.hljs-hybrid .hljs{color:#c5c8c6}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f}.hljs-hybrid .hljs-emphasis{font-style:italic}.hljs-hybrid .hljs-strong{font-weight:bold}",idea:".hljs-idea .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#fff}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic}.hljs-idea .hljs-meta{color:#808000}.hljs-idea .hljs-tag{background:#efefef}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal}.hljs-idea .hljs-string{color:#008000;font-weight:bold}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic}.hljs-idea .hljs-doctag{text-decoration:underline}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a}.hljs-idea .hljs-addition{background:#baeeba}.hljs-idea .hljs-deletion{background:#ffc8bd}.hljs-idea .hljs-emphasis{font-style:italic}.hljs-idea .hljs-strong{font-weight:bold}","ir-black":".hljs-ir-black .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60}.hljs-ir-black .hljs-subst{color:#daefa3}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd}.hljs-ir-black .hljs-emphasis{font-style:italic}.hljs-ir-black .hljs-strong{font-weight:bold}","kimbie.dark":".hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:.5em}.hljs-kimbie.dark .hljs-emphasis{font-style:italic}.hljs-kimbie.dark .hljs-strong{font-weight:bold}","kimbie.light":".hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:.5em}.hljs-kimbie.light .hljs-emphasis{font-style:italic}.hljs-kimbie.light .hljs-strong{font-weight:bold}",magula:".hljs-magula .hljs{display:block;overflow-x:auto;padding:.5em;background-color:#f4f4f4}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy}.hljs-magula .hljs-emphasis{font-style:italic}.hljs-magula .hljs-strong{font-weight:bold}","mono-blue":".hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:.5em;background:#eaeef3}.hljs-mono-blue .hljs{color:#00193a}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold}.hljs-mono-blue .hljs-comment{color:#738191}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9}.hljs-mono-blue .hljs-emphasis{font-style:italic}","monokai-sublime":".hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:.5em;background:#23241f}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e}.hljs-monokai-sublime .hljs-strong{font-weight:bold}.hljs-monokai-sublime .hljs-emphasis{font-style:italic}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e}",monokai:".hljs-monokai .hljs{display:block;overflow-x:auto;padding:.5em;background:#272822;color:#ddd}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672}.hljs-monokai .hljs-code{color:#66d9ef}.hljs-monokai .hljs-class .hljs-title{color:white}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold}",obsidian:".hljs-obsidian .hljs{display:block;overflow-x:auto;padding:.5em;background:#282b2e}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763}.hljs-obsidian .hljs-number{color:#ffcd22}.hljs-obsidian .hljs{color:#e0e2e4}.hljs-obsidian .hljs-attribute{color:#668bb0}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745}.hljs-obsidian .hljs-meta{color:#557182}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96}.hljs-obsidian .hljs-selector-class{color:#A082BD}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold}",ocean:".hljs-ocean .hljs-comment,.hljs-ocean .hljs-quote{color:#65737e}.hljs-ocean .hljs-variable,.hljs-ocean .hljs-template-variable,.hljs-ocean .hljs-tag,.hljs-ocean .hljs-name,.hljs-ocean .hljs-selector-id,.hljs-ocean .hljs-selector-class,.hljs-ocean .hljs-regexp,.hljs-ocean .hljs-deletion{color:#bf616a}.hljs-ocean .hljs-number,.hljs-ocean .hljs-built_in,.hljs-ocean .hljs-builtin-name,.hljs-ocean .hljs-literal,.hljs-ocean .hljs-type,.hljs-ocean .hljs-params,.hljs-ocean .hljs-meta,.hljs-ocean .hljs-link{color:#d08770}.hljs-ocean .hljs-attribute{color:#ebcb8b}.hljs-ocean .hljs-string,.hljs-ocean .hljs-symbol,.hljs-ocean .hljs-bullet,.hljs-ocean .hljs-addition{color:#a3be8c}.hljs-ocean .hljs-title,.hljs-ocean .hljs-section{color:#8fa1b3}.hljs-ocean .hljs-keyword,.hljs-ocean .hljs-selector-tag{color:#b48ead}.hljs-ocean .hljs{display:block;overflow-x:auto;background:#2b303b;color:#c0c5ce;padding:.5em}.hljs-ocean .hljs-emphasis{font-style:italic}.hljs-ocean .hljs-strong{font-weight:bold}","paraiso-dark":".hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:.5em}.hljs-paraiso-dark .hljs-emphasis{font-style:italic}.hljs-paraiso-dark .hljs-strong{font-weight:bold}","paraiso-light":".hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:.5em}.hljs-paraiso-light .hljs-emphasis{font-style:italic}.hljs-paraiso-light .hljs-strong{font-weight:bold}",purebasic:".hljs-purebasic .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFDF}.hljs-purebasic .hljs,.hljs-purebasic .hljs-type,.hljs-purebasic .hljs-function,.hljs-purebasic .hljs-name,.hljs-purebasic .hljs-number,.hljs-purebasic .hljs-attr,.hljs-purebasic .hljs-params,.hljs-purebasic .hljs-subst{color:#000000}.hljs-purebasic .hljs-comment,.hljs-purebasic .hljs-regexp,.hljs-purebasic .hljs-section,.hljs-purebasic .hljs-selector-pseudo,.hljs-purebasic .hljs-addition{color:#00AAAA}.hljs-purebasic .hljs-title,.hljs-purebasic .hljs-tag,.hljs-purebasic .hljs-variable,.hljs-purebasic .hljs-code{color:#006666}.hljs-purebasic .hljs-keyword,.hljs-purebasic .hljs-class,.hljs-purebasic .hljs-meta-keyword,.hljs-purebasic .hljs-selector-class,.hljs-purebasic .hljs-built_in,.hljs-purebasic .hljs-builtin-name{color:#006666;font-weight:bold}.hljs-purebasic .hljs-string,.hljs-purebasic .hljs-selector-attr{color:#0080FF}.hljs-purebasic .hljs-symbol,.hljs-purebasic .hljs-link,.hljs-purebasic .hljs-deletion,.hljs-purebasic .hljs-attribute{color:#924B72}.hljs-purebasic .hljs-meta,.hljs-purebasic .hljs-literal,.hljs-purebasic .hljs-selector-id{color:#924B72;font-weight:bold}.hljs-purebasic .hljs-strong,.hljs-purebasic .hljs-name{font-weight:bold}.hljs-purebasic .hljs-emphasis{font-style:italic}",qtcreator_dark:".hljs-qtcreator_dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#000000}.hljs-qtcreator_dark .hljs,.hljs-qtcreator_dark .hljs-subst,.hljs-qtcreator_dark .hljs-tag,.hljs-qtcreator_dark .hljs-title{color:#aaaaaa}.hljs-qtcreator_dark .hljs-strong,.hljs-qtcreator_dark .hljs-emphasis{color:#a8a8a2}.hljs-qtcreator_dark .hljs-bullet,.hljs-qtcreator_dark .hljs-quote,.hljs-qtcreator_dark .hljs-number,.hljs-qtcreator_dark .hljs-regexp,.hljs-qtcreator_dark .hljs-literal{color:#ff55ff}.hljs-qtcreator_dark .hljs-code .hljs-selector-class{color:#aaaaff}.hljs-qtcreator_dark .hljs-emphasis,.hljs-qtcreator_dark .hljs-stronge,.hljs-qtcreator_dark .hljs-type{font-style:italic}.hljs-qtcreator_dark .hljs-keyword,.hljs-qtcreator_dark .hljs-selector-tag,.hljs-qtcreator_dark .hljs-function,.hljs-qtcreator_dark .hljs-section,.hljs-qtcreator_dark .hljs-symbol,.hljs-qtcreator_dark .hljs-name{color:#ffff55}.hljs-qtcreator_dark .hljs-attribute{color:#ff5555}.hljs-qtcreator_dark .hljs-variable,.hljs-qtcreator_dark .hljs-params,.hljs-qtcreator_dark .hljs-class .hljs-title{color:#8888ff}.hljs-qtcreator_dark .hljs-string,.hljs-qtcreator_dark .hljs-selector-id,.hljs-qtcreator_dark .hljs-selector-attr,.hljs-qtcreator_dark .hljs-selector-pseudo,.hljs-qtcreator_dark .hljs-type,.hljs-qtcreator_dark .hljs-built_in,.hljs-qtcreator_dark .hljs-builtin-name,.hljs-qtcreator_dark .hljs-template-tag,.hljs-qtcreator_dark .hljs-template-variable,.hljs-qtcreator_dark .hljs-addition,.hljs-qtcreator_dark .hljs-link{color:#ff55ff}.hljs-qtcreator_dark .hljs-comment,.hljs-qtcreator_dark .hljs-meta,.hljs-qtcreator_dark .hljs-deletion{color:#55ffff}",qtcreator_light:".hljs-qtcreator_light .hljs{display:block;overflow-x:auto;padding:.5em;background:#ffffff}.hljs-qtcreator_light .hljs,.hljs-qtcreator_light .hljs-subst,.hljs-qtcreator_light .hljs-tag,.hljs-qtcreator_light .hljs-title{color:#000000}.hljs-qtcreator_light .hljs-strong,.hljs-qtcreator_light .hljs-emphasis{color:#000000}.hljs-qtcreator_light .hljs-bullet,.hljs-qtcreator_light .hljs-quote,.hljs-qtcreator_light .hljs-number,.hljs-qtcreator_light .hljs-regexp,.hljs-qtcreator_light .hljs-literal{color:#000080}.hljs-qtcreator_light .hljs-code .hljs-selector-class{color:#800080}.hljs-qtcreator_light .hljs-emphasis,.hljs-qtcreator_light .hljs-stronge,.hljs-qtcreator_light .hljs-type{font-style:italic}.hljs-qtcreator_light .hljs-keyword,.hljs-qtcreator_light .hljs-selector-tag,.hljs-qtcreator_light .hljs-function,.hljs-qtcreator_light .hljs-section,.hljs-qtcreator_light .hljs-symbol,.hljs-qtcreator_light .hljs-name{color:#808000}.hljs-qtcreator_light .hljs-attribute{color:#800000}.hljs-qtcreator_light .hljs-variable,.hljs-qtcreator_light .hljs-params,.hljs-qtcreator_light .hljs-class .hljs-title{color:#0055AF}.hljs-qtcreator_light .hljs-string,.hljs-qtcreator_light .hljs-selector-id,.hljs-qtcreator_light .hljs-selector-attr,.hljs-qtcreator_light .hljs-selector-pseudo,.hljs-qtcreator_light .hljs-type,.hljs-qtcreator_light .hljs-built_in,.hljs-qtcreator_light .hljs-builtin-name,.hljs-qtcreator_light .hljs-template-tag,.hljs-qtcreator_light .hljs-template-variable,.hljs-qtcreator_light .hljs-addition,.hljs-qtcreator_light .hljs-link{color:#008000}.hljs-qtcreator_light .hljs-comment,.hljs-qtcreator_light .hljs-meta,.hljs-qtcreator_light .hljs-deletion{color:#008000}",railscasts:".hljs-railscasts .hljs{display:block;overflow-x:auto;padding:.5em;background:#232323;color:#e6e1dc}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261}.hljs-railscasts .hljs-subst{color:#519f50}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a}.hljs-railscasts .hljs-type{color:#da4939}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe}.hljs-railscasts .hljs-params{color:#d0d0ff}.hljs-railscasts .hljs-attribute{color:#cda869}.hljs-railscasts .hljs-meta{color:#9b859d}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-selector-class{color:#9b703f}.hljs-railscasts .hljs-selector-id{color:#8b98ab}.hljs-railscasts .hljs-emphasis{font-style:italic}.hljs-railscasts .hljs-strong{font-weight:bold}.hljs-railscasts .hljs-link{text-decoration:underline}",rainbow:".hljs-rainbow .hljs{display:block;overflow-x:auto;padding:.5em;background:#474949;color:#d1d9e1}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157}.hljs-rainbow .hljs-deletion{color:#dc322f}.hljs-rainbow .hljs-formula{background:#eee8d5}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be}.hljs-rainbow .hljs-emphasis{font-style:italic}","school-book":".hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px .5em .5em 30px;font-size:11px;line-height:16px}.hljs-school-book pre{background:#f6f6ae url(school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold}.hljs-school-book .hljs-emphasis{font-style:italic}",
+"solarized-dark":".hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f}.hljs-solarized-dark .hljs-formula{background:#073642}.hljs-solarized-dark .hljs-emphasis{font-style:italic}.hljs-solarized-dark .hljs-strong{font-weight:bold}","solarized-light":".hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f}.hljs-solarized-light .hljs-formula{background:#eee8d5}.hljs-solarized-light .hljs-emphasis{font-style:italic}.hljs-solarized-light .hljs-strong{font-weight:bold}",sunburst:".hljs-sunburst .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964}.hljs-sunburst .hljs-string{color:#65b042}.hljs-sunburst .hljs-subst{color:#daefa3}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3}.hljs-sunburst .hljs-attribute{color:#cda869}.hljs-sunburst .hljs-meta{color:#8996a8}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8}.hljs-sunburst .hljs-selector-class{color:#9b703f}.hljs-sunburst .hljs-selector-id{color:#8b98ab}.hljs-sunburst .hljs-emphasis{font-style:italic}.hljs-sunburst .hljs-strong{font-weight:bold}","tomorrow-night-blue":".hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:.5em}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold}","tomorrow-night-bright":".hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:.5em}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:.5em}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold}","tomorrow-night":".hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f}.hljs-tomorrow-night .hljs-attribute{color:#f0c674}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:.5em}.hljs-tomorrow-night .hljs-emphasis{font-style:italic}.hljs-tomorrow-night .hljs-strong{font-weight:bold}",tomorrow:".hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f}.hljs-tomorrow .hljs-attribute{color:#eab700}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:.5em}.hljs-tomorrow .hljs-emphasis{font-style:italic}.hljs-tomorrow .hljs-strong{font-weight:bold}",vs:".hljs-vs .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af}.hljs-vs .hljs-doctag{color:#808080}.hljs-vs .hljs-attr{color:#f00}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8}.hljs-vs .hljs-emphasis{font-style:italic}.hljs-vs .hljs-strong{font-weight:bold}",xcode:".hljs-xcode .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:black}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#006a00}.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal{color:#aa0d91}.hljs-xcode .hljs-name{color:#008}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#660}.hljs-xcode .hljs-string{color:#c41a16}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#080}.hljs-xcode .hljs-title,.hljs-xcode .hljs-tag,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number,.hljs-xcode .hljs-meta{color:#1c00cf}.hljs-xcode .hljs-section,.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-attr,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699}.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-subst{color:#000}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic}.hljs-xcode .hljs-addition{background-color:#baeeba}.hljs-xcode .hljs-deletion{background-color:#ffc8bd}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold}.hljs-xcode .hljs-emphasis{font-style:italic}",xt256:".hljs-xt256 .hljs{display:block;overflow-x:auto;color:#eaeaea;background:#000;padding:.5}.hljs-xt256 .hljs-subst{color:#eaeaea}.hljs-xt256 .hljs-emphasis{font-style:italic}.hljs-xt256 .hljs-strong{font-weight:bold}.hljs-xt256 .hljs-builtin-name,.hljs-xt256 .hljs-type{color:#eaeaea}.hljs-xt256 .hljs-params{color:#da0000}.hljs-xt256 .hljs-literal,.hljs-xt256 .hljs-number,.hljs-xt256 .hljs-name{color:#ff0000;font-weight:bolder}.hljs-xt256 .hljs-comment{color:#969896}.hljs-xt256 .hljs-selector-id,.hljs-xt256 .hljs-quote{color:#00ffff}.hljs-xt256 .hljs-template-variable,.hljs-xt256 .hljs-variable,.hljs-xt256 .hljs-title{color:#00ffff;font-weight:bold}.hljs-xt256 .hljs-selector-class,.hljs-xt256 .hljs-keyword,.hljs-xt256 .hljs-symbol{color:#fff000}.hljs-xt256 .hljs-string,.hljs-xt256 .hljs-bullet{color:#00ff00}.hljs-xt256 .hljs-tag,.hljs-xt256 .hljs-section{color:#000fff}.hljs-xt256 .hljs-selector-tag{color:#000fff;font-weight:bold}.hljs-xt256 .hljs-attribute,.hljs-xt256 .hljs-built_in,.hljs-xt256 .hljs-regexp,.hljs-xt256 .hljs-link{color:#ff00ff}.hljs-xt256 .hljs-meta{color:#fff;font-weight:bolder}",zenburn:".hljs-zenburn .hljs{display:block;overflow-x:auto;padding:.5em;background:#3f3f3f;color:#dcdcdc}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab}.hljs-zenburn .hljs-template-tag{color:#dcdcdc}.hljs-zenburn .hljs-number{color:#8cd0d3}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc}.hljs-zenburn .hljs-literal{color:#efefaf}.hljs-zenburn .hljs-subst{color:#8f8f8f}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f}.hljs-zenburn .hljs-emphasis{font-style:italic}.hljs-zenburn .hljs-strong{font-weight:bold}"},engine:r}},{}],15:[function(e,t,a){function r(){}function s(e,t,a){var r,n;for(a=a||[];null!==(r=t.exec(e));)r.index>0&&a.push({type:"text",text:e.substring(0,r.index)}),r[o]?a.push({type:"code",text:r[0]}):r[c]?a.push({type:"text",text:r[0]}):r[m]?a.push({type:"fences",text:r[0]}):r[u]?a.push({type:"def",id:r[u].toLowerCase(),href:r[h],title:r[p]}):r[g]?a.push({type:"macro",name:r[g],args:(r[b]||"").split(",").map(i),obj:r[_]}):r[f]?a.push({type:"separator",text:r[f]}):r[v]?a.push({type:"notes_separator",text:r[v]}):r[d]&&(n=l(e,r.index+r[0].length),void 0!==n?(e=e.substring(n.length+1),"\\"!==r[0][0]?(a.push({type:"content_start",classes:r[d].substring(1).split("."),block:n.indexOf("\n")!==-1}),s(n,y,a),a.push({type:"content_end",block:n.indexOf("\n")!==-1})):a.push({type:"text",text:r[0].substring(1)+n+"]"})):a.push({type:"text",text:r[0]})),e=e.substring(r.index+r[0].length);return(e||!e&&0===a.length)&&a.push({type:"text",text:e}),a}function n(e,t){return new RegExp(e.source.replace(/\w{2,}/g,function(e){return t[e].source}))}function i(e){return"string"==typeof e?e.trim():e}function l(e,t){for(var a,r=1,s=t;r>0&&s<e.length;)a=e[s++],r+="["===a&&1||"]"===a&&-1||0;if(0===r)return e=e.substr(t,s-t-1)}t.exports=r;var o=1,c=2,d=3,m=4,u=5,h=6,p=7,g=8,b=9,_=10,f=11,v=12,j={CODE:/(?:^|\n)( {4}[^\n]+\n*)+/,INLINE_CODE:/`([^`]+?)`/,CONTENT:/(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,FENCES:/(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,DEF:/(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,MACRO:/!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,SEPARATOR:/(?:^|\n)(---?)(?:\n|$)/,NOTES_SEPARATOR:/(?:^|\n)(\?{3})(?:\n|$)/},E=n(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/,j),y=n(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/,j);r.prototype.lex=function(e){var t,a=s(e,E);for(t=a.length-2;t>=0;t--)"text"===a[t].type&&"text"===a[t+1].type&&(a[t].text+=a[t+1].text,a.splice(t+1,1));return a}},{}],16:[function(e,t,a){var r=t.exports={};r.hello=function(){return"hello!"}},{}],17:[function(e,t,a){function r(e,t,a){var r=this;r.properties=t.properties||{},r.links=t.links||{},r.content=t.content||[],r.notes=t.notes||"",r.getSlideIndex=function(){return e},a&&s(r,a)}function s(e,t){n(e,t),l(e,t),c(e,t)}function n(e,t){var a,r;for(a in t.properties)t.properties.hasOwnProperty(a)&&!i(a)&&(r=[t.properties[a]],"class"===a&&e.properties[a]&&r.push(e.properties[a]),"class"!==a&&void 0!==e.properties[a]||(e.properties[a]=r.join(", ")))}function i(e){return"name"===e||"layout"===e||"count"===e}function l(e,t){var a;e.properties.content=e.content.slice(),o(e,t.content),a=e.expandVariables(!0),void 0===a.content&&(e.content=e.content.concat(e.properties.content)),delete e.properties.content}function o(e,t){var a;for(e.content=[],a=0;a<t.length;++a)"string"==typeof t[a]?e.content.push(t[a]):(e.content.push({block:t[a].block,class:t[a].class}),o(e.content[e.content.length-1],t[a].content))}function c(e,t){t.notes&&(e.notes=t.notes+"\n\n"+e.notes)}e("../converter");t.exports=r,r.prototype.expandVariables=function(e,t,a){function r(t,r,s,i){var l,o=i.trim();return r?e?t[0]:s:e&&"content"!==o?t:(l=n[o],void 0!==l?(a[o]=l,l):"content"===o?"":s)}var s,n=this.properties;for(t=void 0!==t?t:this.content,a=a||{},s=0;s<t.length;++s)"string"==typeof t[s]?t[s]=t[s].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g,r):this.expandVariables(e,t[s].content,a);return a}},{"../converter":12}],18:[function(e,t,a){function r(e,t,a,r){function o(t){t=t||"",C=s(t,a),n(C),k={},C.forEach(function(e){for(var t in e.links)e.links.hasOwnProperty(t)&&(k[t]=e.links[t])}),e.emit("slidesChanged")}function c(e,r){var s=new t.XMLHttpRequest;return s.open("GET",a.sourceUrl,!0),s.onload=function(e){if(4===s.readyState){if(200!==s.status)throw Error(s.statusText);a.source=s.responseText.replace(/\r\n/g,"\n"),o(a.source),"function"==typeof r&&r(S)}},s.onerror=function(e){throw Error(s.statusText)},s.send(null),s}function d(){e.emit("resize")}function m(){return k}function u(){return C.map(function(e){return e})}function h(){return C.length}function p(e){return C.byName[e]}function g(){e.emit("togglePresenterMode")}function b(){e.emit("toggleHelp")}function _(){e.emit("toggleBlackout")}function f(){e.emit("toggleMirrored")}function v(){e.emit("toggleFullscreen")}function j(){e.emit("createClone")}function E(){e.emit("resetTimer")}function y(e,t){return function(){return void 0===a[e]?t:a[e]}}var S=this,C=[],k={};C.byName={},a=a||{},l.call(S,e),i.call(S,e),S.loadFromString=o,S.loadFromUrl=c,S.update=d,S.getLinks=m,S.getSlides=u,S.getSlideCount=h,S.getSlideByName=p,S.togglePresenterMode=g,S.toggleHelp=b,S.toggleBlackout=_,S.toggleMirrored=f,S.toggleFullscreen=v,S.createClone=j,S.resetTimer=E,S.getRatio=y("ratio","4:3"),S.getHighlightStyle=y("highlightStyle","default"),S.getHighlightLines=y("highlightLines",!1),S.getHighlightSpans=y("highlightSpans",!1),S.getHighlightInlineCode=y("highlightInlineCode",!1),S.getHighlightLanguage=y("highlightLanguage",""),S.getSlideNumberFormat=y("slideNumberFormat","%current% / %total%"),S.getCloneTarget=y("cloneTarget","_blank"),e.on("toggleBlackout",function(){S.clone&&!S.clone.closed&&S.clone.postMessage("toggleBlackout","*")}),a.sourceUrl?c(a.sourceUrl,r):(o(a.source),"function"==typeof r&&r(S))}function s(e,t){var a,r=new c,s=r.parse(e,d),n=[],i={};return n.byName={},s.forEach(function(e,r){var s,l;"true"===e.properties.continued&&r>0?s=n[n.length-1]:i[e.properties.template]?s=i[e.properties.template]:"false"===e.properties.layout?a=void 0:a&&"true"!==e.properties.layout&&(s=a),"true"===e.properties.continued&&t.countIncrementalSlides===!1&&void 0===e.properties.count&&(e.properties.count="false"),l=new o(n.length,e,s),"true"===e.properties.layout&&(a=l),e.properties.name&&(i[e.properties.name]=l),"true"!==e.properties.layout&&(n.push(l),e.properties.name&&(n.byName[e.properties.name]=l))}),n}function n(e){e.forEach(function(e){e.expandVariables()})}var i=e("./slideshow/navigation"),l=e("./slideshow/events"),o=(e("../utils"),e("./slide")),c=e("../parser"),d=e("../macros");t.exports=r},{"../macros":16,"../parser":21,"../utils":24,"./slide":17,"./slideshow/events":19,"./slideshow/navigation":20}],19:[function(e,t,a){function r(e){var t=this,a=new s;a.setMaxListeners(0),t.on=function(){return a.on.apply(a,arguments),t},["showSlide","hideSlide","beforeShowSlide","afterShowSlide","beforeHideSlide","afterHideSlide","toggledPresenter"].map(function(r){e.on(r,function(e){var s=t.getSlides()[e];a.emit(r,s)})})}var s=e("events").EventEmitter;t.exports=r},{events:1}],20:[function(e,t,a){function r(e){function t(){e.emit("pause")}function a(){e.emit("resume")}function r(){return u}function s(t,a){var r=t===u,s=t<0||t>m.getSlideCount()-1;void 0===a&&(a=!1),r||s||(u!==-1&&e.emit("hideSlide",u,!1),null===h?h=!1:h===!1&&(e.emit("start"),h=!0),e.emit("showSlide",t),u=t,e.emit("slideChanged",t+1),a||(m.clone&&!m.clone.closed&&m.clone.postMessage("gotoSlide:"+(u+1),"*"),window.opener&&window.opener.postMessage("gotoSlide:"+(u+1),"*")))}function n(e,t){var a=d(e);s(a,t)}function i(){s(u-1)}function l(){s(u+1)}function o(){s(0)}function c(){s(m.getSlideCount()-1)}function d(t){var a,r;return"number"==typeof t?t-1:(a=parseInt(t,10),a.toString()===t?a-1:t.match(/^p\d+$/)?(e.emit("forcePresenterMode"),parseInt(t.substr(1),10)-1):(r=m.getSlideByName(t),r?r.getSlideIndex():0))}var m=this,u=-1,h=null;m.getCurrentSlideIndex=r,m.gotoSlide=n,m.gotoPreviousSlide=i,m.gotoNextSlide=l,m.gotoFirstSlide=o,m.gotoLastSlide=c,m.pause=t,m.resume=a,e.on("gotoSlide",n),e.on("gotoPreviousSlide",i),e.on("gotoNextSlide",l),e.on("gotoFirstSlide",o),e.on("gotoLastSlide",c),e.on("slidesChanged",function(){u>m.getSlideCount()&&(u=m.getSlideCount())}),e.on("createClone",function(){!m.clone||m.clone.closed?m.clone=window.open(location.href,m.getCloneTarget(),"location=no"):m.clone.focus()}),e.on("resetTimer",function(){h=!1})}t.exports=r},{}],21:[function(e,t,a){function r(){}function s(){return{content:[],properties:{continued:"false"},links:{}}}function n(e){return{class:e.classes.join(" "),block:e.block,content:[]}}function i(e,t){var a=e.content;void 0!==e.notes&&(a=e.notes);var r=a.length-1;"string"==typeof a[r]&&"string"==typeof t?a[r]+=t:a.push(t)}function l(e,t){for(var a,r=/^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i;null!==(a=r.exec(e));)e=e.substr(0,a.index)+e.substr(a.index+a[0].length),void 0!==a[1]?t[a[1].trim()]=a[2].trim():t[a[3].trim()]=a[4].trim(),r.lastIndex=a.index;return e}function o(e){var t=function(e,t){for(var a,r=[];null!==(a=t.exec(e));)r.push(a[1]);return r},a=/^([ \t]*)[^ \t\n]/gm,r=t(e,a).map(function(e){return e.length}),s=Math.min.apply(Math,r),n=new RegExp("^[ \\t]{0,"+s+"}","gm");return e.replace(n,"")}var c=e("./lexer");t.exports=r,r.prototype.parse=function(e,t){var a=this,r=new c,d=r.lex(o(e)),m=[],u=[s()];return t=t||{},d.forEach(function(e){switch(e.type){case"text":case"code":case"fences":i(u[u.length-1],e.text);break;case"def":u[0].links[e.id]={href:e.href,title:e.title};break;case"macro":var r=t[e.name];if("function"!=typeof r)throw new Error('Macro "'+e.name+"\" not found. You need to define macro using remark.macros['"+e.name+"'] = function () { ... };");var l=r.apply(e.obj,e.args);"string"==typeof l?(l=a.parse(l,t),i(u[u.length-1],l[0].content[0])):i(u[u.length-1],void 0===l?"":l.toString());break;case"content_start":u.push(n(e));break;case"content_end":i(u[u.length-2],u[u.length-1]),u.pop();break;case"separator":m.push(u[0]),u=[s()],u[0].properties.continued=("--"===e.text).toString();break;case"notes_separator":u[0].notes=[]}}),m.push(u[0]),m.forEach(function(e){e.content[0]=l(e.content[0]||"",e.properties)}),m.filter(function(e){var t=(e.properties.exclude||"").toLowerCase();return"true"!==t})}},{"./lexer":15}],22:[function(e,t,a){t.exports={version:"0.14.1",documentStyles:"html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact}.remark-container{background:#d7d8d2;margin:0;overflow:hidden}.remark-container:focus{outline-style:solid;outline-width:1px}.remark-container:-webkit-full-screen{width:100%;height:100%}body:-webkit-full-screen{background:#000000}body:-moz-full-screen{background:#000000}body:fullscreen{background:#000000}.remark-slides-area{position:relative;height:100%;width:100%}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always}.remark-slide-scaler{background-color:transparent;overflow:hidden;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed}.remark-slide>.left{text-align:left}.remark-slide>.center{text-align:center}.remark-slide>.right{text-align:right}.remark-slide>.top{vertical-align:top}.remark-slide>.middle{vertical-align:middle}.remark-slide>.bottom{vertical-align:bottom}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;font-size:20px;padding:1em 4em 1em 4em}.remark-slide-content h1{font-size:55px}.remark-slide-content h2{font-size:45px}.remark-slide-content h3{font-size:35px}.remark-slide-content .left{display:block;text-align:left}.remark-slide-content .center{display:block;text-align:center}.remark-slide-content .right{display:block;text-align:right}.remark-slide-number{bottom:12px;opacity:.5;position:absolute;right:20px}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none}.remark-code{font-size:18px}.remark-code-line{min-height:1em}.remark-code-line-highlighted{background-color:rgba(255,255,0,0.5)}.remark-code-span-highlighted{background-color:rgba(255,255,0,0.5);padding:1px 2px 2px 2px}.remark-visible{display:block;z-index:2}.remark-fading{display:block;z-index:1}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:.5}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%}.remark-help .remark-help-content h1{font-size:36px}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px}.remark-help .remark-help-content td:first-child{padding-left:0}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px}.remark-help .dismiss{top:85%}.remark-container.remark-help-mode .remark-help{display:block}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:.95}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:.5;position:absolute;height:47.25%;width:48%}.remark-preview-area .remark-slide-container{display:block}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:.75em;text-transform:uppercase;color:#ccc}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0;left:0;right:0;overflow-y:auto;margin-bottom:20px;padding-top:10px}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0;left:0;right:0;overflow-y:auto}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0}.remark-toolbar{color:#979892;vertical-align:middle}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%}.remark-container.remark-presenter-mode .remark-preview-area{display:block}.remark-container.remark-presenter-mode .remark-notes-area{display:block}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:.99}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1)}@media print{.remark-container{overflow:visible;background-color:#fff}.remark-container.remark-presenter-mode .remark-slides-area{top:0;left:0;height:100%;width:681px}.remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none}.remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px}.remark-slide-container{display:block;position:relative}.remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none}}@page{margin:0}",
+containerLayout:'<div class="remark-notes-area">\n  <div class="remark-top-area">\n    <div class="remark-toolbar">\n      <a class="remark-toolbar-link" href="#increase">+</a>\n      <a class="remark-toolbar-link" href="#decrease">-</a>\n      <span class="remark-toolbar-timer"></span>\n    </div>\n  </div>\n  <div class="remark-bottom-area">\n    <div class="remark-notes-current-area">\n      <div class="remark-toggle">Notes for current slide</div>\n      <div class="remark-notes"></div>\n    </div>\n    <div class="remark-notes-preview-area">\n      <div class="remark-toggle">Notes for next slide</div>\n      <div class="remark-notes-preview"></div>\n    </div>\n  </div>\n</div>\n<div class="remark-slides-area"></div>\n<div class="remark-preview-area"></div>\n<div class="remark-backdrop"></div>\n<div class="remark-pause">\n  <div class="remark-pause-lozenge">\n    <span>Paused</span>\n  </div>\n</div>\n<div class="remark-help">\n  <div class="remark-help-content">\n    <h1>Help</h1>\n    <p><b>Keyboard shortcuts</b></p>\n    <table class="light-keys">\n      <tr>\n        <td>\n          <span class="key"><b>&uarr;</b></span>,\n          <span class="key"><b>&larr;</b></span>,\n          <span class="key">Pg Up</span>,\n          <span class="key">k</span>\n        </td>\n        <td>Go to previous slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key"><b>&darr;</b></span>,\n          <span class="key"><b>&rarr;</b></span>,\n          <span class="key">Pg Dn</span>,\n          <span class="key">Space</span>,\n          <span class="key">j</span>\n        </td>\n        <td>Go to next slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">Home</span>\n        </td>\n        <td>Go to first slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">End</span>\n        </td>\n        <td>Go to last slide</td>\n      </tr>\n      <tr>\n        <td>\n          Number + <span class="key">Return</span>\n        </td>\n        <td>Go to specific slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">b</span>&nbsp;/\n          <span class="key">m</span>&nbsp;/\n          <span class="key">f</span>\n        </td>\n        <td>Toggle blackout / mirrored / fullscreen mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">c</span>\n        </td>\n        <td>Clone slideshow</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">p</span>\n        </td>\n        <td>Toggle presenter mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">t</span>\n        </td>\n        <td>Restart the presentation timer</td>\n      </tr>\n      <tr>\n        <td>\n          <span class="key">?</span>,\n          <span class="key">h</span>\n        </td>\n        <td>Toggle this help</td>\n      </tr>\n    </table>\n  </div>\n  <div class="content dismiss">\n    <table class="light-keys">\n      <tr>\n        <td>\n          <span class="key">Esc</span>\n        </td>\n        <td>Back to slideshow</td>\n      </tr>\n    </table>\n  </div>\n</div>\n'}},{}],23:[function(e,t,a){function r(e,t){var a=this;a.events=e,a.slideshow=t,a.ratio=s(t),a.dimensions=n(a.ratio),a.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&(a.ratio=s(t),a.dimensions=n(a.ratio))})}function s(e){var t,a=e.getRatio().split(":");return t={width:parseInt(a[0],10),height:parseInt(a[1],10)},t.ratio=t.width/t.height,t}function n(e){return{width:Math.floor(i/o*e.ratio),height:l}}var i=908,l=681,o=i/l;t.exports=r,r.prototype.scaleToFit=function(e,t){var a,r,s,n,i,l=this,o=t.clientHeight,c=t.clientWidth,d=l.ratio,m=l.dimensions;a=c/d.width>o/d.height?o/m.height:c/m.width,r=m.width*a,s=m.height*a,n=(c-r)/2,i=(o-s)/2,e.style["-webkit-transform"]="scale("+a+")",e.style.MozTransform="scale("+a+")",e.style.left=Math.max(n,0)+"px",e.style.top=Math.max(i,0)+"px"}},{}],24:[function(e,t,a){a.addClass=function(e,t){e.className=a.getClasses(e).concat([t]).join(" ")},a.removeClass=function(e,t){e.className=a.getClasses(e).filter(function(e){return e!==t}).join(" ")},a.toggleClass=function(e,t){var r=a.getClasses(e),s=r.indexOf(t);s!==-1?r.splice(s,1):r.push(t),e.className=r.join(" ")},a.getClasses=function(e){return e.className.split(" ").filter(function(e){return""!==e})},a.hasClass=function(e,t){return a.getClasses(e).indexOf(t)!==-1},a.getPrefixedProperty=function(e,t){var a=t[0].toUpperCase()+t.slice(1);return e[t]||e["moz"+a]||e["webkit"+a]}},{}],25:[function(e,t,a){function r(e,t,a){var r=this;r.events=e,r.element=t,r.slideViewsAccessor=a,r.configureElements(),e.on("showSlide",function(e){r.showSlide(e)})}e("../converter");t.exports=r,r.prototype.showSlide=function(e){var t=this,a=t.slideViewsAccessor(),r=a[e],s=a[e+1];t.notesElement.innerHTML=r.notesElement.innerHTML,s?t.notesPreviewElement.innerHTML=s.notesElement.innerHTML:t.notesPreviewElement.innerHTML=""},r.prototype.configureElements=function(){var e=this;e.notesElement=e.element.getElementsByClassName("remark-notes")[0],e.notesPreviewElement=e.element.getElementsByClassName("remark-notes-preview")[0],e.notesElement.addEventListener("mousewheel",function(e){e.stopPropagation()}),e.notesPreviewElement.addEventListener("mousewheel",function(e){e.stopPropagation()}),e.toolbarElement=e.element.getElementsByClassName("remark-toolbar")[0];var t={increase:function(){e.notesElement.style.fontSize=(parseFloat(e.notesElement.style.fontSize)||1)+.1+"em",e.notesPreviewElement.style.fontsize=e.notesElement.style.fontSize},decrease:function(){e.notesElement.style.fontSize=(parseFloat(e.notesElement.style.fontSize)||1)-.1+"em",e.notesPreviewElement.style.fontsize=e.notesElement.style.fontSize}};e.toolbarElement.getElementsByTagName("a").forEach(function(e){e.addEventListener("click",function(e){var a=e.target.hash.substr(1);t[a](),e.preventDefault()})})}},{"../converter":12}],26:[function(e,t,a){function r(e,t,a,r){var s=this;s.events=e,s.slideshow=t,s.scaler=a,s.slide=r,s.slideNumber=new g(r,t),s.configureElements(),s.updateDimensions(),s.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&s.updateDimensions()})}function s(e,t,a){var r=document.createElement("div");return a.properties.name&&(r.id="slide-"+a.properties.name),n(t,r,a.properties),r.innerHTML=b.convertMarkdown(a.content,t.getLinks()),d(r,t),r}function n(e,t,a){t.className="",c(t,a),o(t,a,e),l(t,a)}function i(e,t){var a=document.createElement("div");return a.className="remark-slide-notes",a.innerHTML=b.convertMarkdown(t,e.getLinks()),d(a,e),a}function l(e,t){var a=t["background-image"],r=t["background-color"],s=t["background-size"],n=t["background-position"];a&&(e.style.backgroundImage=a),r&&(e.style.backgroundColor=r),s&&(e.style.backgroundSize=s),n&&(e.style.backgroundPosition=n)}function o(e,t,a){var r=t["highlight-style"]||a.getHighlightStyle();r&&f.addClass(e,"hljs-"+r)}function c(e,t){f.addClass(e,"remark-slide-content"),(t.class||"").split(/,| /).filter(function(e){return""!==e}).forEach(function(t){f.addClass(e,t)})}function d(e,t){var a,r=e.getElementsByTagName("code"),s=t.getHighlightLines(),n=t.getHighlightSpans(),i=t.getHighlightInlineCode();r.forEach(function(e){return""===e.className&&(e.className=t.getHighlightLanguage()),"PRE"!==e.parentElement.tagName?(f.addClass(e,"remark-inline-code"),void(i&&_.engine.highlightBlock(e,""))):(s&&(a=m(e)),""!==e.className&&_.engine.highlightBlock(e,"  "),u(e),s&&h(e,a.highlightedLines),n&&p(e),void f.addClass(e,"remark-code"))})}function m(e){var t=[];return e.innerHTML=e.innerHTML.split(/\r?\n/).map(function(e,a){return 0===e.indexOf("*")?(t.push(a),e.replace(/^\*( )?/,"$1$1")):e}).join("\n"),{highlightedLines:t}}function u(e){var t=e.innerHTML.split(/\r?\n/).map(function(e){return'<div class="remark-code-line">'+e+"</div>"});t.length&&t[t.length-1].indexOf("><")!==-1&&t.pop(),e.innerHTML=t.join("")}function h(e,t){t.forEach(function(t){f.addClass(e.childNodes[t],"remark-code-line-highlighted")})}function p(e){var t=/([^`])`([^`]+?)`/g;e.childNodes.forEach(function(e){e.innerHTML=e.innerHTML.replace(t,function(e,t,a){return"\\"===t?e.substr(1):t+'<span class="remark-code-span-highlighted">'+a+"</span>"})})}var g=e("../components/slide-number/slide-number"),b=e("../converter"),_=e("../highlighter"),f=e("../utils");t.exports=r,r.prototype.updateDimensions=function(){var e=this,t=e.scaler.dimensions;e.scalingElement.style.width=t.width+"px",e.scalingElement.style.height=t.height+"px"},r.prototype.scale=function(e){var t=this;t.scaler.scaleToFit(t.scalingElement,e)},r.prototype.show=function(){f.addClass(this.containerElement,"remark-visible"),f.removeClass(this.containerElement,"remark-fading")},r.prototype.hide=function(){var e=this;f.removeClass(this.containerElement,"remark-visible"),f.addClass(this.containerElement,"remark-fading"),setTimeout(function(){f.removeClass(e.containerElement,"remark-fading")},1e3)},r.prototype.configureElements=function(){var e=this;e.containerElement=document.createElement("div"),e.containerElement.className="remark-slide-container",e.scalingElement=document.createElement("div"),e.scalingElement.className="remark-slide-scaler",e.element=document.createElement("div"),e.element.className="remark-slide",e.contentElement=s(e.events,e.slideshow,e.slide),e.notesElement=i(e.slideshow,e.slide.notes),e.contentElement.appendChild(e.slideNumber.element),e.element.appendChild(e.contentElement),e.scalingElement.appendChild(e.element),e.containerElement.appendChild(e.scalingElement),e.containerElement.appendChild(e.notesElement)},r.prototype.scaleBackgroundImage=function(e){var t,a,r,s=this,n=window.getComputedStyle(this.contentElement),i=n.backgroundImage,l=n.backgroundSize,o=n.backgroundPosition;(!l&&!o||s.backgroundSizeSet)&&null!==(t=/^url\(("?)([^\)]+?)\1\)/.exec(i))&&(a=new Image,a.onload=function(){a.width>e.width||a.height>e.height?s.originalBackgroundSize||(s.originalBackgroundSize=s.contentElement.style.backgroundSize,s.originalBackgroundPosition=s.contentElement.style.backgroundPosition,s.backgroundSizeSet=!0,r=e.width/a.width<e.height/a.height?e.width/a.width:e.height/a.height,s.contentElement.style.backgroundSize=a.width*r+"px "+a.height*r+"px",s.contentElement.style.backgroundPosition="50% "+(e.height-a.height*r)/2+"px"):s.backgroundSizeSet&&(s.contentElement.style.backgroundSize=s.originalBackgroundSize,s.contentElement.style.backgroundPosition=s.originalBackgroundPosition,s.backgroundSizeSet=!1)},a.src=t[2])}},{"../components/slide-number/slide-number":"components/slide-number","../converter":12,"../highlighter":14,"../utils":24}],27:[function(e,t,a){function r(e,t,a,r){var n=this;n.events=e,n.dom=t,n.slideshow=r,n.scaler=new c(e,r),n.slideViews=[],n.configureContainerElement(a),n.configureChildElements(),n.updateDimensions(),n.scaleElements(),n.updateSlideViews(),n.timer=new l(e,n.timerElement),e.on("slidesChanged",function(){n.updateSlideViews()}),e.on("hideSlide",function(e){n.elementArea.getElementsByClassName("remark-fading").forEach(function(e){m.removeClass(e,"remark-fading")}),n.hideSlide(e)}),e.on("showSlide",function(e){n.showSlide(e)}),e.on("forcePresenterMode",function(){m.hasClass(n.containerElement,"remark-presenter-mode")||(m.toggleClass(n.containerElement,"remark-presenter-mode"),n.scaleElements(),u.setPageOrientation("landscape"))}),e.on("togglePresenterMode",function(){m.toggleClass(n.containerElement,"remark-presenter-mode"),n.scaleElements(),e.emit("toggledPresenter",n.slideshow.getCurrentSlideIndex()+1),m.hasClass(n.containerElement,"remark-presenter-mode")?u.setPageOrientation("portrait"):u.setPageOrientation("landscape")}),e.on("toggleHelp",function(){m.toggleClass(n.containerElement,"remark-help-mode")}),e.on("toggleBlackout",function(){m.toggleClass(n.containerElement,"remark-blackout-mode")}),e.on("toggleMirrored",function(){m.toggleClass(n.containerElement,"remark-mirrored-mode")}),e.on("hideOverlay",function(){m.removeClass(n.containerElement,"remark-blackout-mode"),m.removeClass(n.containerElement,"remark-help-mode")}),e.on("pause",function(){m.toggleClass(n.containerElement,"remark-pause-mode")}),e.on("resume",function(){m.toggleClass(n.containerElement,"remark-pause-mode")}),s(n)}function s(e){var t=m.getPrefixedProperty(e.containerElement,"requestFullScreen"),a=m.getPrefixedProperty(document,"cancelFullScreen");e.events.on("toggleFullscreen",function(){var r=m.getPrefixedProperty(document,"fullscreenElement")||m.getPrefixedProperty(document,"fullScreenElement");!r&&t?t.call(e.containerElement,Element.ALLOW_KEYBOARD_INPUT):a&&a.call(document),e.scaleElements()})}function n(e,t,a){a.forEach(function(a){t.addEventListener(a,function(){var t=Array.prototype.slice.call(arguments);e.emit.apply(e,[a].concat(t))})})}var i=e("./slideView"),l=e("../components/timer/timer"),o=e("./notesView"),c=e("../scaler"),d=e("../resources"),m=e("../utils"),u=e("../components/printing/printing");t.exports=r,r.prototype.isEmbedded=function(){return this.containerElement!==this.dom.getBodyElement()},r.prototype.configureContainerElement=function(e){var t=this;t.containerElement=e,m.addClass(e,"remark-container"),e===t.dom.getBodyElement()?(m.addClass(t.dom.getHTMLElement(),"remark-container"),n(t.events,window,["hashchange","resize","keydown","keypress","mousewheel","message","DOMMouseScroll"]),n(t.events,t.containerElement,["touchstart","touchmove","touchend","click","contextmenu"])):(e.style.position="absolute",e.tabIndex=-1,n(t.events,window,["resize"]),n(t.events,e,["keydown","keypress","mousewheel","touchstart","touchmove","touchend"])),t.events.on("tap",function(e){e<t.containerElement.clientWidth/2?t.slideshow.gotoPreviousSlide():t.slideshow.gotoNextSlide()})},r.prototype.configureChildElements=function(){function e(){a.scaleElements()}function t(e){var t;t=e.isPortrait?.4*e.pageHeight:e.pageHeight,a.slideViews.forEach(function(a){a.scale({clientWidth:e.pageWidth,clientHeight:t}),e.isPortrait&&(a.scalingElement.style.top="20px",a.notesElement.style.top=t+40+"px")})}var a=this;a.containerElement.innerHTML+=d.containerLayout,a.elementArea=a.containerElement.getElementsByClassName("remark-slides-area")[0],a.previewArea=a.containerElement.getElementsByClassName("remark-preview-area")[0],a.notesArea=a.containerElement.getElementsByClassName("remark-notes-area")[0],a.notesView=new o(a.events,a.notesArea,function(){return a.slideViews}),a.backdropElement=a.containerElement.getElementsByClassName("remark-backdrop")[0],a.helpElement=a.containerElement.getElementsByClassName("remark-help")[0],a.timerElement=a.notesArea.getElementsByClassName("remark-toolbar-timer")[0],a.pauseElement=a.containerElement.getElementsByClassName("remark-pause")[0],a.events.on("propertiesChanged",function(e){e.hasOwnProperty("ratio")&&a.updateDimensions()}),a.events.on("resize",e),u.init(),u.on("print",t)},r.prototype.updateSlideViews=function(){var e=this;e.slideViews.forEach(function(t){e.elementArea.removeChild(t.containerElement)}),e.slideViews=e.slideshow.getSlides().map(function(t){return new i(e.events,e.slideshow,e.scaler,t)}),e.slideViews.forEach(function(t){e.elementArea.appendChild(t.containerElement)}),e.updateDimensions(),e.slideshow.getCurrentSlideIndex()>-1&&e.showSlide(e.slideshow.getCurrentSlideIndex())},r.prototype.scaleSlideBackgroundImages=function(e){var t=this;t.slideViews.forEach(function(t){t.scaleBackgroundImage(e)})},r.prototype.showSlide=function(e){var t=this,a=t.slideViews[e],r=t.slideViews[e+1];t.events.emit("beforeShowSlide",e),a.show(),r?t.previewArea.innerHTML=r.containerElement.outerHTML:t.previewArea.innerHTML="",t.events.emit("afterShowSlide",e)},r.prototype.hideSlide=function(e){var t=this,a=t.slideViews[e];t.events.emit("beforeHideSlide",e),a.hide(),t.events.emit("afterHideSlide",e)},r.prototype.updateDimensions=function(){var e=this,t=e.scaler.dimensions;e.helpElement.style.width=t.width+"px",e.helpElement.style.height=t.height+"px",e.scaleSlideBackgroundImages(t),e.scaleElements()},r.prototype.scaleElements=function(){var e=this;e.slideViews.forEach(function(t){t.scale(e.elementArea)}),e.previewArea.children.length&&e.scaler.scaleToFit(e.previewArea.children[0].children[0],e.previewArea),e.scaler.scaleToFit(e.helpElement,e.containerElement),e.scaler.scaleToFit(e.pauseElement,e.containerElement)}},{"../components/printing/printing":"components/printing","../components/timer/timer":"components/timer","../resources":22,"../scaler":23,"../utils":24,"./notesView":25,"./slideView":26}],"components/printing":[function(e,t,a){function r(){}var s=e("events").EventEmitter,n=e("../styler/styler"),i="landscape",l="portrait",o=681,c=908;r.prototype=new s,r.prototype.init=function(){var e=this;return this.setPageOrientation(i),!!window.matchMedia&&void window.matchMedia("print").addListener(function(t){e.onPrint(t)})},r.prototype.onPrint=function(e){e.matches&&this.emit("print",{isPortrait:"portrait"===this._orientation,pageHeight:this._pageHeight,pageWidth:this._pageWidth})},r.prototype.setPageOrientation=function(e){if(e===l)this._pageHeight=c,this._pageWidth=o;else{if(e!==i)throw new Error("Unknown print orientation: "+e);this._pageHeight=o,this._pageWidth=c}this._orientation=e,n.setPageSize(this._pageWidth+"px "+this._pageHeight+"px")},t.exports=new r},{"../styler/styler":"components/styler",events:1}],"components/slide-number":[function(e,t,a){function r(e,t){var a=this;a.slide=e,a.slideshow=t,a.element=document.createElement("div"),a.element.className="remark-slide-number",a.element.innerHTML=s(a.slide,a.slideshow)}function s(e,t){var a=t.getSlideNumberFormat(),r=t.getSlides(),s=n(e,t),i=n(r[r.length-1],t);return"function"==typeof a?a.call(t,s,i):a.replace("%current%",s).replace("%total%",i)}function n(e,t){var a,r=t.getSlides(),s=0;for(a=0;a<=e.getSlideIndex()&&a<r.length;++a)"false"!==r[a].properties.count&&(s+=1);return Math.max(1,s)}t.exports=r},{}],"components/styler":[function(e,t,a){function r(){var e,t,a;if(!n()){e=document.getElementsByTagName("head")[0],t=document.createElement("style"),t.type="text/css",t.title="remark",t.innerHTML=l.documentStyles;for(a in o.styles)o.styles.hasOwnProperty(a)&&(t.innerHTML=t.innerHTML+o.styles[a]);e.insertBefore(t,e.firstChild)}}function s(e){var t=n(),a=i(t);a.style.size=e}function n(){var e,t=document.styleSheets.length;for(e=0;e<t;++e)if("remark"===document.styleSheets[e].title)return document.styleSheets[e]}function i(e){var t,a=e.cssRules.length;for(t=0;t<a;++t)if(e.cssRules[t]instanceof window.CSSPageRule)return e.cssRules[t]}var l=e("../../resources"),o=e("../../highlighter");t.exports={styleDocument:r,setPageSize:s}},{"../../highlighter":14,"../../resources":22}],"components/timer":[function(e,t,a){function r(e,t){var a=this;a.events=e,a.element=t,a.startTime=null,a.pauseStart=null,a.pauseLength=0,t.innerHTML="0:00:00",setInterval(function(){a.updateTimer()},100),e.on("start",function(){a.startTime=new Date}),e.on("resetTimer",function(){a.startTime=null,a.pauseStart=null,a.pauseLength=0,a.element.innerHTML="0:00:00"}),e.on("pause",function(){a.pauseStart=new Date}),e.on("resume",function(){a.pauseLength+=new Date-a.pauseStart,a.pauseStart=null})}e("../../utils");t.exports=r,r.prototype.updateTimer=function(){var e=this;if(e.startTime){var t;t=e.pauseStart?e.pauseStart-e.startTime-e.pauseLength:new Date-e.startTime-e.pauseLength;var a=Math.floor(t/1e3)%60,r=Math.floor(t/6e4)%60,s=Math.floor(t/36e5);e.element.innerHTML=s+(r>9?":":":0")+r+(a>9?":":":0")+a}}},{"../../utils":24}]},{},[4]);
\ No newline at end of file
diff --git a/web/web.html b/web/web.html
new file mode 100644
index 0000000000000000000000000000000000000000..9758bb5d387abe77eac79294aec041970824323c
--- /dev/null
+++ b/web/web.html
@@ -0,0 +1,1093 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Web</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <link rel="stylesheet" href="css/remark.css">
+    <link rel="stylesheet" media="print" href="css/remark.print.css">
+  </head>
+  <body>
+    <textarea id="source">
+
+class: center, middle
+
+# An Introduction into modern web
+
+<img src="images/thealternative-logo.jpg" width="30%">
+
+---
+
+# What we will look at
+
+**HTML** for (structured) content.  
+Add text, images, files and meta data.
+
+**CSS** for the design.  
+Define spacing, font and colors.
+
+**JavaScript** to add functionality.  
+Animations! Filters! Sorting!
+
+**PHP** to generate content.  
+Update the webpage more conveniently.
+
+*Each of these areas is its own profession!  
+We only briefly touch JavaScript and PHP.*
+
+---
+
+# Structure of the course
+
+**HTML**: Hypertext Markup Language to semantically structure content.  
+*Goal: Know the most important HTML tags.*  
+
+**CSS**: Cascading Style Sheets to style HTML.  
+*Goal: Know design basics and using a css framework.*
+
+**JavaScript**: Functionality directly in the browser.  
+*Goal: Apply jQuery & friends.*
+
+**PHP**: Widely supported functionality on the server.  
+*Goal: Generate your webpage based on data on the server.*
+
+---
+
+
+class: center, middle
+
+# Hypertext Markup Language (HTML)
+
+*Slogan: So easy, its not even programming!*
+
+---
+
+# A HTML document
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport"
+		  content="width=device-width, initial-scale=1">
+
+    <title>Hello, world!</title>
+    <meta name="description" content="A simple HTML document.">
+  </head>
+  <body>
+    <h1>Hello, world!</h1>
+	<p>This demonstrates a simple HTML document.</p>
+  </body>
+</html>
+```
+
+---
+
+# The core constructs
+
+Tags:
+
+```html
+<tag> 
+	content of tag
+</tag>
+```
+
+Attributes:
+
+```html
+<tag attribute="content of attribute"></tag>
+<tag no-content-attribute></tag>
+```
+
+Comments:
+
+```html
+<!-- whatever in here is ignored -->
+```
+
+That's all!
+
+---
+
+# Technical
+
+```html
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+	<!-- ... -->
+  </head>
+  <!-- ... -->
+</html>
+```
+
+**Charset** defines how your bits & bytes are mapped to text.
+
+**Viewport** defines the width of the document shown in the browser.  
+Primarily useful for mobile devices.
+
+---
+
+# Meta data
+
+```html
+<html>
+  <head>
+	<!-- ... -->
+    <title>Hello, world!</title>
+    <meta name="description" content="A simple HTML document.">
+  </head>
+  <!-- ... -->
+</html>
+```
+
+Used by search engines to classify the document and show a preview.
+
+<img src="images/html_meta.png" width="40%">
+
+Used by browsers in the browser tab.
+
+<img src="images/html_meta_browser.png" width="40%">
+
+---
+
+# Body
+
+```html
+<html>
+  <!-- ... -->
+  <body>
+    <h1>Hello, world!</h1>
+	<p>This demonstrates a simple HTML document.</p>
+  </body>
+</html>
+```
+
+The actual, structured content.
+
+Elements:
+- Headers: `<h1>`, `<h2>`, `<h3>`, `<h4>`, ...
+- Text: `<p>`, `<br>`, `<a>`, `<i>`, `<u>`
+- Images: `<img>`
+- Structure: `<section>`, `<article>`, `<div>`
+
+---
+
+# Headers
+
+H1 for the title (only once)!  
+H2 for chapter headers.  
+H3 for subheaders.
+
+#`<h1>`Header H1`</h1>`
+##`<h2>`Header H2`</h2>`
+###`<h3>`Header H3`</h3>`
+####`<h4>`Header H4`</h4>`
+
+---
+
+# Text
+
+```html
+<p>Write a paragraph inside p tags.</p>
+
+<p>Use <br/>
+if you must start a new line manually</p>
+```
+
+```html
+<i>italic</i> <br/>
+<b>bold</b> <br/>
+<u>underline</u>
+```
+
+
+```html
+<a href="https://developer.mozilla.org/">mozilla documentation</a>
+```
+
+```html
+<a ... target="_blank">open in new tab</a>
+```
+<a href="https://developer.mozilla.org/">mozilla documentation</a>
+<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a" target="_blank">open in new tab</a> <br/>
+
+---
+
+# Images
+
+
+```html
+<img src="images/UZH-logo.png" alt="Logo UZH">
+```
+
+<img src="images/UZH-logo.png" alt="Logo UZH" width="40%">
+
+describe the image with the `alt` tag.  
+used by search engines, screen readers, ....  
+or if the image does not load.
+
+---
+
+# Files
+
+```html
+<a href="images/UZH-logo.png" download>download file</a>
+```
+
+<a href="images/UZH-logo.png" download>download file</a>
+
+add the download attribute to force downloading  
+else it opens in browser (which might then display download dialog)
+
+
+---
+
+# Misc
+
+```html
+<audio src="files/audio.mp3">play audio</audio>
+```
+
+```html
+<video src="files/video.mp4">play video</video>
+```
+
+```html
+<ul>
+	<li>Banana</li>
+	<li>Apple</li>
+</ul>
+```
+
+```html
+<ol>
+	<li>Learn HTML</li>
+	<li>Learn CSS</li>
+	...
+</ol>
+```
+
+---
+
+# (Semantic) Structure
+
+```html
+<section>
+  <div class="container">
+	<article>
+		<h1>About HTML</h1>
+		
+		<h2>Introduction</h2>
+		<p>We are going to learn about (...)</p>
+		
+		<h2>About Semantic HTML</h2>
+		<p>Use semantic tags to (...)</p>
+	</article>
+  </div>
+</section>
+```
+
+Create own tags (like `<section>`) without special behaviour (such as `<a>`).  
+Give your document semantic meaning to make editing & styling easier.
+
+Have something important? Use `<strong>` instead of `<b>`.  
+Writing an article? Wrap it in `<article>` instead of `<div>`.
+
+---
+
+class: center, middle
+
+# Cascading Style Sheets (CSS)
+
+*Slogan: Confused yet?*
+
+---
+
+class: center, middle
+
+```html
+<design-crashcourse>
+```
+
+Why? Because:
+<blockquote>
+Users often perceive aesthetically pleasing design as design that’s more usable. -
+<a href="https://www.nngroup.com/articles/aesthetic-usability-effect/" target="_blank">https://www.nngroup.com/articles/aesthetic-usability-effect/</a>
+</blockquote>
+
+---
+
+# Typography - Typeface
+
+**serif** for books (see header).  
+Line-like Serifs help the eye read.  
+*Arial, Times New Roman, ...*
+
+**sans-serif** for displays (see body).  
+No serifs look cleaner.  
+*Verdana, Courier, Helvetica, ...*
+
+**monospace** for code (`like this`).  
+Same width characters help notice patterns faster.  
+*Consolas, ...*
+
+many more variations...
+
+---
+
+# Typography - Font
+
+Typefaces may consist of fonts of different weights
+<img src="images/typography_weight.png" width="50%">
+
+Many free-to-use fonts exist, like [google fonts](https://fonts.google.com/).  
+You might want to [pair fonts](https://fontpair.co/).
+
+---
+
+# Typography - Size
+
+Adjust font size, line height & line length.
+
+Line height  
+<img src="images/typography_line_height.png" width="48%">
+
+A line should be around 15 words long. 
+If its too long, the eye can not easily find the start of the next line.
+If its too short, the eye has to move around too much. 
+There are other factors that affect readability, which we will see on the next slide. 
+
+---
+
+# Typography - Balance
+
+Balance font weight, font size, line length and line height.
+
+Improve readability:
+- increase line height
+- increase font size
+- increase font boldness 
+- decrease line length
+
+<img src="images/typography_light.png" width="48%">
+<img src="images/typography_regular.png" width="48%">
+
+---
+
+# Spacing
+
+Separate what does not belong together.  
+Separate little what does.  
+
+<br>
+<br>
+<br>
+Emphasize importance with more space around.  
+<br>
+<br>
+<br>
+
+You may want to define a spacing scheme for consistency.  
+Like 4, 8, 16, 32, 64 (geometric progression).  
+Like 5, 8, 13, 21, 34 (Fibonacci numbers / golden cut).
+
+---
+
+# Spacing - Example
+
+<img src="images/spacing_original.png" width="80%">
+
+---
+
+# Spacing - Example
+
+<img src="images/spacing_annotated.png" width="80%">
+
+
+---
+
+# Colors
+
+Give your site a distinctive look with your "brand" colors.
+
+Primary color associated with your brand.  
+Secondary color which contrasts primary nicely (like complement).  
+Colors for messages (red for errors, orance for warnings, ...).
+
+Pastel colors for a soft look, bright colors for inspiring effects  
+<img src="images/color_palette.png" width="40%" alt="https://colorhunt.co/palette/7642">
+<img src="images/color_bright.png" width="40%" alt="https://colorhunt.co/palette/220000">
+
+Many premade color schemes, like [colorhunt](https://colorhunt.co)  
+Many color scheme generators, like [paletton](https://paletton.com)
+
+---
+
+class: center, middle
+
+```html
+</design-crashcourse>
+```
+
+---
+
+# CSS basics
+
+```css
+body {
+  color: blue;
+}
+```
+
+choose a **selector** (like `body`)  
+for **properties** (like `color`)  
+override the default **value** (like `blue`)
+
+---
+
+# CSS selector
+
+by element, class or id 
+```html
+<section class="content" id="introduction"></section>
+```
+```css
+section {
+  background: red
+}
+
+.content {
+  background: blue;
+}
+
+#introduction {
+  background: green;
+}
+```
+
+choose the most appropriate selector according to your structure (usually it ends up being the `class`).  
+
+---
+
+# Typography - Font Family
+
+```css
+body {
+  font-family: 'Times New Roman', Times, serif;
+  font-weight: bold;
+  font-style: italic;
+}
+```
+
+including your own font family with 
+```css
+@font-face {
+  font-family: 'Vegur';
+  src: url('Vegur-Bold.ttf') format('ttf');
+  font-weight: bold;
+  font-style: normal;
+}
+```
+
+Generate optimized font family files [transfonter.org](https://transfonter.org/).
+
+---
+
+# Typography - Size
+
+```css
+body {
+  font-size: 16px;
+  line-height: 1.2em;
+}
+```
+
+`em` is a relative unit to the current font size.  
+`rem` is a relative unit to the `html` font size. 
+
+You can try out different combinations on [app.typeanything.io](https://app.typeanything.io/).
+
+---
+
+# Spacing
+
+```css
+.rectangle {
+  background: blue;
+  width: 60px;
+  height: 20px;
+  padding: 50px;
+  margin: 20px;
+  border: 10px solid yellow;
+}
+```
+```html
+<div class="rectangle"></div>
+```
+
+<div class="rectangle"></div>
+<img src="images/css_spacing.png" width="35%">
+
+---
+
+class: inverted
+
+# Color
+
+```css
+body {
+  color: #FFFFFF; 
+  background: rgb(0,0,0);
+}
+```
+
+use predefined [colors](https://developer.mozilla.org/de/docs/Web/CSS/Farben).  
+
+or specify own color (using additive light mixing).  
+use hex (like `#rrggbb`).  
+or rgb (like `rgb(red, green , blue)`).  
+or rgba (like `rgba(red, green , blue, opacity)`) representations.
+
+---
+
+# Display
+
+
+```css
+body {
+  display: block;
+}
+```
+
+defines how element is placed (and elements around).
+
+`display: block` renders a full-width container.  
+`display: inline-block` renders as wide as the content.  
+
+for arranging items along a grid, use `display:`&nbsp[`grid`](https://css-tricks.com/snippets/css/complete-guide-grid/).  
+for distributing items use `display:`&nbsp[`flex`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/).
+
+---
+
+# Position
+
+.row[
+.column[
+```css
+.container-outer {
+  position: relative;
+  top: 10px;
+  left: 0px;
+  width: 100%;
+  height: 35px;
+  background-color: blue;
+}
+```
+]
+
+.column[
+```css
+.container-inner {
+  position: absolute;
+  top: 20px;
+  right: 20px;
+  width: 100%;
+  height: 10px;
+  background-color: yellow;  
+}
+```
+]
+]
+
+<img src="images/css_position.png" width="65%" >
+
+---
+
+# Position 
+
+`relative` to original position.
+
+<img src="images/css_position_relative.png" width="65%">
+
+
+<br>
+
+`absolute` to its *closest positioned ancestor*: next parent with `position: relative`.
+Removed from the document flow.
+
+<img src="images/css_position_absolute.png" width="65%">
+
+---
+
+# (Good) design & CSS is hard!
+
+Use proper resources: 
+- https://developer.mozilla.org/en-US/docs/Web/CSS
+
+Use a CSS framework:
+- [Bootstrap](https://getbootstrap.com/)
+- [Foundation](https://get.foundation/)
+- [Bulma](https://bulma.io/)
+
+
+<br/>
+
+Getting it right is *extremely* hard!  
+Advice: Learn a framework properly. Avoid writing CSS.
+
+---
+
+class: center, middle
+
+# JavaScript
+
+*Slogan: Absolutely no similarities with Java AT ALL.*
+
+---
+
+# Why?
+
+<img src="images/server_client.png" width="50%">
+
+Execute code on client for interactivity.
+
+Examples:
+- Upon scrolling, content fades in (design)
+- Button is disabled as long as user must not click it (usability)
+- Table entries can be filtered and searched for (functionality)
+
+---
+
+# About JavaScript
+
+General-Purpose programming language.
+
+Dynamically typed (like python).  
+Curly brackets to designate blocks of code (like C#, Java).  
+Prototype-based inheritance (like Lua; rarely used concept).
+
+In browsers, has access to DOM (representation of HTML).  
+Can rewrite the content of the page!
+
+Essentially two concepts on how to use JavaScript:
+- **to enhance server-generated HTML ("traditional")**
+- to generate HTML ("webapps")
+
+---
+
+# Webapps
+
+heavy client-side functionality.  
+
+communicates with the server using mostly using "AJAX" requests: Content is loaded continuously in the background without the user noticing.
+
+examples:
+- google docs
+- spotify
+- facebook
+
+frameworks:
+- [Angular](https://angular.io/)
+- [React](https://reactjs.org/)
+- [VueJS](https://vuejs.org/)
+- many, MANY more
+
+---
+
+# Traditional websites
+
+content is generated by the server, but some small interactivity is added.
+
+the webpage is mostly complete & usable without JavaScript; its a "Nice-to-have".
+
+examples:
+- ETH, UZH homepages
+- this presentation
+- most KMU webpages
+
+by combining multiple JavaScript libraries (for tables, for animations, for modals, ...) and pointing them to right DOM element to "enhance".
+
+---
+
+# JavaScript Samples
+
+
+Hello world
+```js
+let message = "Hello world";
+console.log(message);
+```
+
+Loops
+```js
+let sum = 0
+for (let i = 0; i < 10; i++) {
+  sum += i
+}
+console.log(sum)
+```
+
+Interact with the DOM and browser
+```js
+document.getElementById("wrapper").innerHtml = "Hello world";
+window.location.href = "https://developer.mozilla.com";
+alert("This is annoying");
+```
+
+---
+
+# jQuery
+
+library which simplifies interacting with the DOM.
+
+DOM manipulation
+```js
+$(".button").click()
+```
+
+Event handling
+```js
+$(document).ready(() => { $(".button").click() });
+```
+
+Ajax
+```js
+$.ajax({
+	type: "POST",
+	url: 'index.php',
+	data: $('.form').serialize()
+});
+```
+
+---
+
+# DataTable example
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+	<!-- ... -->
+	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
+	
+	<link rel="stylesheet" href="https://cdn.datatables.net/1.10.23/css/jquery.dataTables.min.css">
+	<script src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script> 
+	<script>
+		$(document).ready(function () {
+			$('.table-interactive').DataTable();
+		});
+	</script>
+  </head>
+  <body>
+	<table class="table table-interactive">
+		<!-- ... -->
+	</table>
+  </body>
+</html>
+```
+
+---
+
+# Masonry example
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+	<!-- ... -->
+	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
+	
+	<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
+	<script>
+		$(document).ready(function () {
+			$('.grid').masonry({
+			  itemSelector: '.grid-item',
+			});
+		});
+	</script>
+  </head>
+  <body>
+	<div class="grid">
+	  <div class="grid-item ..."></div>
+	  <div class="grid-item ..."></div>
+	  <!-- ... -->
+	</div>
+  </body>
+</html>
+```
+
+---
+
+# Development tools
+
+In browser, do right click and select "Inspect element" or similar.
+
+HTML view:
+- view & modify the HTML
+- investigate applied css properties
+
+Console view:
+- view errors if they occurred
+- directly execute JavaScript
+
+Useful to try out / investigate when something does not work.
+
+---
+
+# JavaScript summary
+
+General-Purpose language.
+Many read-to-use libraries for beginners.
+
+General steps to use a library:
+- Include required JavaScript / css files
+- Add initialization code hooking library and DOM
+- Debug using the Development tools
+
+Resources:
+- [jQuery libraries](https://github.com/petk/awesome-jquery)
+- [JavaScript Developer Roadmap](https://github.com/kamranahmedse/developer-roadmap)
+- [Package manager introduction](https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70)
+
+---
+
+class: center, middle
+
+# PHP: Hypertext Preprocessor (PHP)
+
+*Slogan: It is getting better. Or: [PHP: a fractal of bad design](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/)*.
+
+---
+
+# Why?
+
+<img src="images/server_client.png" width="50%">
+
+Generate HTML on server (for example using data from a database).
+
+Examples:
+- A table of all upcoming events is generated
+- An E-Mail is sent upon contact form submission
+
+---
+
+# About PHP
+
+General-Purpose programming language.
+
+Dynamically typed (like python).  
+Curly brackets to designate blocks of code (like C#, Java).  
+"Normal" inheritance (like C#, Java).  
+Developments towards more "typing". 
+
+Multiple approaches:
+- **Inject into HTML to generate only (dynamic) parts of page**
+- Configure pre-made content management system (CMS)
+- Use fully-fledged framework for webapps which generates HTML
+- Provide only data over API to be consumed by client-side code
+
+---
+
+# Executing PHP
+
+PHP is a server-side language.
+You need a PHP server!
+
+ETH student?
+- Login per SSH into slab1.ethz.ch with kürzel & password.
+- Place files in homepage folder.
+- Access your personal webpage under `https://n.ethz.ch/~kürzel/`
+
+Many commercial products like [cyon](https://www.cyon.ch/), [metanet](https://www.metanet.ch/), [hostpoint](https://www.hostpoint.ch/), ...
+
+Test locally with [XAMPP](https://www.apachefriends.org/de/index.html) or read the documentation of your linux distribution how to setup Apache with PHP.
+
+You can use [FileZilla](https://filezilla-project.org/) to access the server via FTP / SSH.
+
+---
+
+# "Hello World" in PHP
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+  </head>
+  <body>
+	<?php
+		echo "<h1>Hallo Welt</h1>";
+	?>
+  </body>
+</html>
+```
+
+Placed as `index.php` on your root directory, it generates:
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+  </head>
+  <body>
+    <h1>Hallo Welt</h1>
+  </body>
+</html>
+```
+
+---
+
+# Upcoming events in table (1/2)
+
+Dynamic data generation requires:
+- data source (like database or simply a file)
+- transformation (transform result of query into usable php variables)
+- generation (generate html out of the variables)
+
+For this example, we place `events.json` in the same directory as our script:
+```json
+[
+  {
+    "title": "Web course",
+    "date:" "30.08.2020"
+  },
+  {
+    "title": "Web course",
+    "date:" "30.08.2020"
+  },
+  ...
+]
+```
+
+---
+
+# Upcoming events in table (2/2)
+
+create one row in the table for each event
+```php
+<?php
+$eventsJson = file_get_content("events.json");
+$events = json_decode($eventsJson);
+?>
+...
+<table>
+  <tbody>
+    <?php foreach ($events as $event) { ?>
+      <tr>
+        <td><?= $event->title ?></td>
+        <td><?= $event->date ?></td>
+      </tr>
+    <?php } ?>
+  </tbody>
+</table>
+...
+```
+
+---
+
+# Contact form submission
+
+We require:
+- get user input (like using a form)
+- send it to the server (HTTP GET / POST / PUT / ...)
+- process it on the server (query global php variables)
+
+Get user input with HTML forms:
+
+```php
+<!-- ... -->
+<form method="post">
+	<input name="name" type="text"></input>
+	<textarea name="message">
+	<input name="submit" type="submit"></input>
+</form>
+<!-- ... -->
+<?php
+if (isset($_POST["name"]) && isset($_POST["message"])) {
+	$body = $_POST["name"]." has message ".$_POST["message"];
+	mail("info@thealternative.ch", "Contact request", $body);
+}
+?>
+<!-- ... -->
+```
+
+---
+
+# Develop PHP snippets
+
+Beginning is simple, mastery is hard.
+
+Challenges:
+- Subtle bugs as PHP very permissive
+- Many security challenges (especially with user-input)
+- Many beginners = much wrong information
+
+Resources:
+- Use `var_dump` function to debug variables
+- https://www.php.net/ for the documentation
+- https://stitcher.io/ for news about php
+
+---
+
+# Content Management System (CMS)
+
+After installation, non-technical users can modify content.
+
+Easy to setup marketing webpage, blog, small online shops, ...
+
+Examples:
+- [Wordpress](https://wordpress.com/) as most used, very good usability
+- [Joomla](https://www.joomla.ch/) as another much used alternative
+- [Drupal](https://www.drupal.org/) for more complex applications
+
+Popular Webpage-As-A-Service:
+- [Wix](https://wix.com/)
+- [Squarespace](https://squarespace.com/)
+
+---
+
+# Frameworks
+
+PHP is good for beginners, but scaling is difficult.  
+Use one of the well-designed, stable frameworks. 
+
+Recommended Frameworks:
+- [Symfony](https://symfony.com/) as the most used framework
+- [Laravel](https://laravel.com/) uses symfony concepts, more "hip"  
+- [Slim](https://www.slimframework.com/) as a minimal framework
+- [ApiPlatform](https://api-platform.com/) which speeds up API development
+
+Mastery of Frameworks takes *years*,  
+but reduces development / maintenance by *order of magnitudes*.
+
+---
+
+# Next steps
+
+Summary:
+- **HTML** for (structured) content.  
+- **CSS** for the design.  
+- **JavaScript** to add client functionality.  
+- **PHP** to generate content on the server.
+
+For developers:
+- Choose focus (Frontend? Backend? Marketing? Engineering?)
+- Learn! Useful: [Roadmap](https://github.com/kamranahmedse/developer-roadmap)
+- Ask questions on [stackoverflow](https://stackoverflow.com/) once you can [ask good questions](https://stackoverflow.com/help/how-to-ask)
+- High investment = high reward
+
+For researcher webpages:
+- Connect to the provided ETH server
+- Write HTML / CSS; add PHP / JavaScript only when necessary
+- Use CSS frameworks if you want to have it look good
+
+Many, many more use cases. This presentation is technically also a webpage :)
+
+
+    </textarea>
+    <script src="js/remark.min.js" type="text/javascript"></script>
+    <script src="js/remark.driver.js" type="text/javascript"></script>
+  </body>
+</html>