<language name="Jinja/Ruby" alternativeNames="Jinja/RB;Jinja/JRuby" section="Other" version="1771861648" kateversion="5.79" extensions="*.rb.jinja;*.rb.jinja2;*.rb.j2;*.rjs.jinja;*.rjs.jinja2;*.rjs.j2;*.rxml.jinja;*.rxml.jinja2;*.rxml.j2;*.xml.erb.jinja;*.xml.erb.jinja2;*.xml.erb.j2;*.js.erb.jinja;*.js.erb.jinja2;*.js.erb.j2;*.rake.jinja;*.rake.jinja2;*.rake.j2;Rakefile.jinja;Rakefile.jinja2;Rakefile.j2;Gemfile.jinja;Gemfile.jinja2;Gemfile.j2;*.gemspec.jinja;*.gemspec.jinja2;*.gemspec.j2;Vagrantfile.jinja;Vagrantfile.jinja2;Vagrantfile.j2" mimetype="application/x-ruby.jinja" style="ruby" indenter="ruby" author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com), Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT" priority="0" generated="true">

	<!--Generated by generate_jinja.py, the Jinja infusion script for KDE Syntax Highlighting-->

	<highlighting>

		<list name="keyword">
			<item>class</item>
			<item>def</item>
			<item>end</item>
			<item>ensure</item>
			<item>when</item>
			<include>keyword-begin-end-cond</include>
			<include>keyword-block-cond</include>
			<include>keyword-block-then-value</include>
			<include>keyword-block</include>
			<include>keyword-loop</include>
			<include>keyword-then-stmt</include>
			<include>keyword-then-value</include>
		</list>

		<list name="keyword-then-value">
			<item>break</item>
			<item>defined?</item>
			<item>in</item>
			<item>next</item>
			<item>redo</item>
			<item>retry</item>
			<item>return</item>
			<item>yield</item>
		</list>

		<list name="keyword-then-stmt">
			<item>and</item>
			<item>not</item>
			<item>or</item>
			<item>then</item>
			<item>BEGIN</item>
			<item>END</item>
		</list>

		<list name="keyword-block">
			<item>begin</item>
			<item>do</item>
		</list>

		<list name="keyword-block-then-value">
			<item>case</item>
			<item>module</item>
		</list>

		
		<list name="keyword-block-cond">
			<item>if</item>
			<item>unless</item>
		</list>

		<list name="keyword-begin-end-cond">
			<item>else</item>
			<item>elsif</item>
			<item>rescue</item>
		</list>

		
		<list name="keyword-loop">
			<item>for</item>
			<item>until</item>
			<item>while</item>
		</list>

		<list name="keyword-modifiers">
			<item>if</item>
			<item>unless</item>
			<item>until</item>
			<item>while</item>
			<item>rescue</item>
		</list>

		<list name="access-control">
			<item>private_class_method</item>
			<item>private</item>
			<item>protected</item>
			<item>public_class_method</item>
			<item>public</item>
		</list>

		<list name="attribute-definitions">
			<item>attr_reader</item>
			<item>attr_writer</item>
			<item>attr_accessor</item>
		</list>

		<list name="definitions">
			<item>alias</item>
			<item>module</item>
			<item>class</item>
			<item>def</item>
			<item>undef</item>
		</list>

		<list name="pseudo-variables">
			<item>self</item>
			<item>super</item>
			<item>nil</item>
			<item>false</item>
			<item>true</item>
			<item>caller</item>
			<item>__FILE__</item>
			<item>__LINE__</item>
		</list>

		<list name="default-globals">
			<item>$stdout</item>
			<item>$stderr</item>
			<item>$stdin</item>
		</list>

		
		<list name="kernel-methods">
			
			<item>abort</item>
			<item>at_exit</item>
			<item>autoload</item>
			<item>autoload?</item>
			<item>binding</item>
			<item>block_given?</item>
			<item>callcc</item>
			<item>caller</item>
			<item>catch</item>
			<item>chomp</item>
			<item>chomp!</item>
			<item>chop</item>
			<item>chop!</item>
			<item>eval</item>
			<item>exec</item>
			<item>exit</item>
			<item>exit!</item>
			<item>fail</item>
			<item>fork</item>
			<item>format</item>
			<item>getc</item>
			<item>gets</item>
			<item>global_variables</item>
			<item>gsub</item>
			<item>gsub!</item>
			<item>iterator?</item>
			<item>lambda</item>
			<item>load</item>
			<item>local_variables</item>
			<item>loop</item>
			<item>method_missing</item>
			<item>open</item>
			<item>p</item>
			<item>print</item>
			<item>printf</item>
			<item>proc</item>
			<item>putc</item>
			<item>puts</item>
			<item>raise</item>
			<item>rand</item>
			<item>readline</item>
			<item>readlines</item>
			<item>require</item>
			<item>require_relative</item>
			<item>scan</item>
			<item>select</item>
			<item>set_trace_func</item>
			<item>sleep</item>
			<item>split</item>
			<item>sprintf</item>
			<item>srand</item>
			<item>sub</item>
			<item>sub!</item>
			<item>syscall</item>
			<item>system</item>
			<item>test</item>
			<item>throw</item>
			<item>trace_var</item>
			<item>trap</item>
			<item>untrace_var</item>
			<item>warn</item>
		</list>

		<list name="mixin-methods">
			<item>extend</item>
			<item>include</item>
			<item>prepend</item>
			<item>refine</item>
			<item>using</item>
		</list>

		<contexts>
			<context name="Normal" attribute="Normal Text" fallthroughContext="Ruby">
				
				<IncludeRules context="jinja_boot##Jinja" />
				
				<StringDetect attribute="Keyword" String="#!/" context="Shebang" column="0" />
			</context>

			<context name="Shebang" attribute="Keyword" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			</context>

			<context name="Ruby" attribute="Normal Text" fallthroughContext="Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />

				<AnyChar attribute="Normal Text" String=";(" />
				<DetectChar attribute="Normal Text" char=")" context="Op1ThenExpr" />

				<DetectChar attribute="Delimiter" char="]" context="Op1ThenExpr" />

				<DetectChar attribute="Operator" char="{" beginRegion="brace" />
				<DetectChar attribute="Operator" char="}" context="Op1ThenExpr" endRegion="brace" />

				<DetectChar attribute="Comment" char="#" context="General Comment" />

				<DetectChar char="@" context="AtVarMsgParamOrOp2" lookAhead="1" />
				<DetectChar char="$" context="VarMsgParamOrOp2" lookAhead="1" />

				<HlCChar attribute="Char" />
				<DetectChar attribute="String" char="&quot;" context="DQuote" />
				<DetectChar attribute="Raw String" char="'" context="SQuote" />
				<DetectChar attribute="Command" char="`" context="Command String" />
				<DetectChar lookAhead="1" char="." context="MsgParamOrOp2" />

				<RegExpr attribute="Normal Text" String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" context="MsgParamOrOp2" />

				
				<RegExpr attribute="Symbol" String="[_[:alpha:]]\w*+[=?!]?:(?!:)|\[\]=?:" context="MsgParamOrOp2" />

				<DetectChar attribute="Delimiter" char="[" context="MsgParamOrOp2" />

				<keyword attribute="Keyword" String="keyword-block" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-loop" context="Loop" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-block-then-value" context="MsgParamOrOp2" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-begin-end-cond" context="Cond" endRegion="def block" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-then-stmt" />
				<keyword attribute="Keyword" String="keyword-then-value" context="MsgParamOrOp2" />
				<keyword attribute="Keyword" String="keyword-block-cond" context="Cond" beginRegion="def block" />
				<WordDetect attribute="Keyword" String="end" context="MsgParamOrOp2" endRegion="def block" />
				<WordDetect attribute="Keyword" String="class" context="Op1ThenExpr" beginRegion="def block" />
				<WordDetect attribute="Keyword" String="def" context="DefFn" beginRegion="def block" />
				<WordDetect attribute="Keyword" String="when" context="Cond" />
				<WordDetect attribute="Keyword" String="ensure" endRegion="def block" beginRegion="def block" />
				<WordDetect attribute="Definition" String="alias" context="Alias" />
				<WordDetect attribute="Definition" String="undef" context="Alias" />

				<keyword attribute="Attribute Definition" String="attribute-definitions" context="Op2ThenExpr" />
				<keyword attribute="Access Control" String="access-control" context="Op2ThenExpr" />
				<keyword attribute="Definition" String="definitions" context="Expr" />
				<keyword attribute="Pseudo variable" String="pseudo-variables" context="Op1ThenExpr" />
				<keyword attribute="Kernel methods" String="kernel-methods" context="Op2ThenExpr" />
				<keyword attribute="Module mixin methods" String="mixin-methods" context="Op2ThenExpr" />

				
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" context="MsgParamOrOp2" />
				<RegExpr attribute="Global Constant" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" context="MsgParamOrOp2" />

				
				<RegExpr attribute="Keyword" String="^__END__$" context="DATA" column="0" />

				<DetectIdentifier attribute="Normal Text" context="SuffixFunctionMsgParamOrOp2" />

				
				<WordDetect attribute="Blockcomment" String="=begin" context="Embedded documentation" beginRegion="comment block" column="0" />

				
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="SuffixFunctionMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!MsgParamOrOp2">
				<IncludeRules context="jinja_boot##Jinja" />
				<AnyChar attribute="Normal Text" String="!?" context="#pop!MsgParamOrOp2" />
			</context>


			
			<context name="Loop" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="LoopExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="{" context="LoopFindBrace" beginRegion="brace" />
				<DetectChar attribute="Operator" char="}" context="#pop" lookAhead="1" />
				<WordDetect attribute="Keyword" String="do" context="#pop" />
				<LineContinue attribute="Normal Text" />
			</context>
			<context name="LoopFindBrace" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="LoopExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="{" context="LoopFindBrace" beginRegion="brace" />
				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenLoopExpr" endRegion="brace" />
				<WordDetect attribute="Keyword" String="do" context="#pop" lookAhead="1" />
				<LineContinue attribute="Normal Text" />
			</context>
			<context name="LoopExpr" attribute="Normal Text" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<WordDetect attribute="Keyword" String="do" context="#pop" lookAhead="1" />
				<IncludeRules context="Expr" />
			</context>

			
			<context name="Cond" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="CondExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="{" context="CondFindBrace" beginRegion="brace" />
				<DetectChar attribute="Operator" char="}" context="#pop" lookAhead="1" />
				<WordDetect attribute="Keyword" String="then" context="#pop" />
				<LineContinue attribute="Normal Text" />
			</context>
			<context name="CondFindBrace" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="CondExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="{" context="CondFindBrace" beginRegion="brace" />
				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenCondExpr" endRegion="brace" />
				<WordDetect attribute="Keyword" String="then" context="#pop" lookAhead="1" />
				<LineContinue attribute="Normal Text" />
			</context>
			<context name="CondExpr" attribute="Normal Text" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<WordDetect attribute="Keyword" String="then" context="#pop" lookAhead="1" />
				<IncludeRules context="Expr" />
			</context>

			
			<context name="MsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop!Expr" />
				<DetectChar attribute="Member" char="." context="MemberAccessCall" />
				<StringDetect attribute="Operator" String="::" context="MemberAccessCall" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="MsgFnName" attribute="Normal Text" lineEndContext="#pop#pop#pop" fallthroughContext="#pop!FnParent">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Member" char="." context="MemberAccess" />
				<StringDetect attribute="Operator" String="::" context="MemberAccess" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Expr" attribute="Normal Text" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />

				<StringDetect attribute="Operator" String=".." context="Dot2Op" />
				<DetectChar attribute="Member" char="." context="MemberAccess" />

				<DetectChar attribute="Operator" char="=" context="#pop" />

				
				<AnyChar String="{}" context="#pop" lookAhead="1" />

				<AnyChar attribute="Normal Text" String=";(" context="#pop" />
				<DetectChar attribute="Normal Text" char="," />
				<DetectChar attribute="Normal Text" char=")" context="Op1" />

				<DetectChar attribute="Comment" char="#" context="#pop!General Comment" />

				<DetectChar char="@" context="AtVar" lookAhead="1" />
				<DetectChar char="$" context="Var" lookAhead="1" />

				<DetectChar attribute="Delimiter" char="]" context="Op1" />

				<HlCChar attribute="Char" context="Op1" />
				<DetectChar attribute="String" char="&quot;" context="DQuote" />
				<DetectChar attribute="Raw String" char="'" context="SQuote" />
				<DetectChar attribute="Command" char="`" context="Command String" />

				<DetectChar attribute="Regular Expression" char="/" context="RegEx" />
				
				<DetectChar char="?" context="MaybeCharLiteral" lookAhead="1" />

				<AnyChar context="Number" String="0123456789" lookAhead="1" />

				<RegExpr attribute="Normal Text" String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" context="Op2" />

				<RegExpr attribute="Symbol" String="[_[:alpha:]]\w*+[=?!]?:(?!:)|\[\]=?:" context="#pop!MsgParamOrOp2" />

				<DetectChar attribute="Delimiter" char="[" context="#pop!MsgParamOrOp2" />

				<StringDetect attribute="Operator" String="::" context="MemberAccess" />

				<LineContinue attribute="Normal Text" />

				<keyword attribute="Attribute Definition" String="attribute-definitions" context="Op2" />
				<keyword attribute="Access Control" String="access-control" context="Op2" />
				<keyword attribute="Pseudo variable" String="pseudo-variables" context="Op1" />
				<keyword attribute="Kernel methods" String="kernel-methods" context="Op2" />
				<keyword attribute="Module mixin methods" String="mixin-methods" context="Op2" />

				<keyword attribute="Keyword" String="keyword-modifiers" />

				<keyword attribute="Keyword" String="keyword-block" beginRegion="def block" context="#pop" />
				<keyword attribute="Keyword" String="keyword-loop" context="#pop!Loop" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-block-then-value" context="#pop!MsgParamOrOp2" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-begin-end-cond" context="#pop!Cond" endRegion="def block" beginRegion="def block" />
				<keyword attribute="Keyword" String="keyword-then-stmt" context="#pop" />
				<keyword attribute="Keyword" String="keyword-then-value" context="#pop!MsgParamOrOp2" />
				<WordDetect attribute="Keyword" String="end" context="#pop!MsgParamOrOp2" endRegion="def block" />
				<WordDetect attribute="Keyword" String="class" context="Op1" beginRegion="def block" />
				<WordDetect attribute="Keyword" String="def" context="#pop!DefFn" beginRegion="def block" />
				<WordDetect attribute="Keyword" String="when" context="#pop!Cond" />
				<WordDetect attribute="Keyword" String="ensure" context="#pop" endRegion="def block" beginRegion="def block" />
				<WordDetect attribute="Definition" String="alias" context="Alias" />
				<WordDetect attribute="Definition" String="undef" context="Alias" />

				<keyword attribute="Definition" String="definitions" />

				
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" context="ExprSubClass" />
				<RegExpr attribute="Global Constant" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" context="ExprSubClass" />

				<RegExpr attribute="Symbol" String=":((@@?|\$)[_[:alpha:]]\w*+|[_[:alpha:]]\w*+([?]|!(?!=)|=(?![=&gt;~]))?|\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=&gt;?)?|&gt;=?|=~|===?|\*\*?|(?=['&quot;])|\$([!@~&amp;`'+/\\&lt;&gt;._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*))" context="Op1" />

				
				
				<RegExpr attribute="GDL input" context="find_gdl_input" String="%(?=[QqxwWiIsr]?[^\s[:alnum:]])" beginRegion="GdlInput" />

				
				<RegExpr attribute="Operator" context="Heredoc" String="&lt;&lt;(?=[-~]?(\w+|'\w+'|&quot;\w+&quot;|`\w+`))" beginRegion="HereDocument" />

				
				<RegExpr attribute="Operator" String="([/%?:]|&lt;&lt;?)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*|(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)+" />
				<DetectIdentifier attribute="Normal Text" context="SuffixFunction" />
			</context>

			
			<context name="Alias" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<AnyChar attribute="Operator" String="-+*~^|&amp;=&lt;&gt;!%/" />
				<DetectChar char="$" context="Var" lookAhead="1" />
				<DetectChar attribute="String" char="&quot;" context="AliasDQuote" />
				<DetectChar attribute="Raw String" char="'" context="AliasSQuote" />
				<DetectChar attribute="Normal Text" char="," />
				<LineContinue attribute="Normal Text" />
				<RegExpr attribute="Symbol" String=":([_[:alpha:]]\w*+[=?!]?|\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=&gt;?)?|&gt;=?|=~|===?|\*\*?)" />
				<RegExpr attribute="Normal Text" String="\b(?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|__FILE__|for|fork|format|getc|gets|global_variables|if|in|include|lambda|__LINE__|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield|autoload|chomp|chop|exit|gsub|sub)([^?!\w]|$))[_[:alpha:]]\w*+" />
			</context>
			<context name="AliasDQuote" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char="&quot;" attribute="String" context="AliasCheckSym" />
				<IncludeRules context="DQuoteSpecial" />
			</context>
			<context name="AliasSQuote" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<Detect2Chars attribute="String" char="\" char1="\" />
				<Detect2Chars attribute="String" char="\" char1="'" />
				<DetectChar char="'" attribute="Raw String" context="AliasCheckSym" />
			</context>
			<context name="AliasCheckSym" attribute="Raw String" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char=":" attribute="Symbol" context="#pop#pop" />
			</context>

			<context name="Dot2Op" attribute="Operator" lineEndContext="#pop#pop" fallthroughContext="#pop">
				
				<IncludeRules context="jinja_boot##Jinja" />
				
				<DetectChar attribute="Operator" char="." context="#pop" />
			</context>

			<context name="SuffixFunction" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Op2">
				<IncludeRules context="jinja_boot##Jinja" />
				<AnyChar attribute="Normal Text" String="!?" context="#pop!Op2" />
			</context>

			
			<context name="Op1" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Op1ThenExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop!Expr" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Op1ThenLoopExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!LoopExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop!LoopExpr" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Op1ThenCondExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!CondExpr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop!CondExpr" />
				<LineContinue attribute="Normal Text" />
			</context>

			
			<context name="Op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Op2ThenExpr" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<DetectChar attribute="Operator" char="=" context="#pop" />
				<RegExpr attribute="Operator" String="(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=&gt;?|(?!&lt;))|[!&gt;]=?|\.\.\.?)*+" context="#pop!Expr" />
				<LineContinue attribute="Normal Text" />
			</context>

			<context name="Var" attribute="Normal Text" lineEndContext="#pop#pop">
				
				<IncludeRules context="jinja_boot##Jinja" />
				
				<RegExpr attribute="Global Variable" String="\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)" context="#pop!Op1" />
				
				<RegExpr attribute="Default globals" String="\$([!@~&amp;`'+/\\&lt;&gt;._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" context="#pop!Op1" />
				<DetectChar attribute="Error" char="$" context="#pop!Op1" />
			</context>

			<context name="VarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop">
				
				<IncludeRules context="jinja_boot##Jinja" />
				
				<RegExpr attribute="Global Variable" String="\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)" context="#pop!MsgParamOrOp2" />
				
				<RegExpr attribute="Default globals" String="\$([!@~&amp;`'+/\\&lt;&gt;._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" context="#pop!MsgParamOrOp2" />
				<DetectChar attribute="Error" char="$" context="#pop!MsgParamOrOp2" />
			</context>

			<context name="AtVar" attribute="Normal Text" lineEndContext="#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Instance Variable" String="@[_[:alpha:]]\w*+" context="#pop!Op1" />
				<RegExpr attribute="Class Variable" String="@@[_[:alpha:]]\w*+" context="#pop!Op1" />
				<DetectChar attribute="Error" char="@" context="#pop!Op1" />
			</context>

			<context name="AtVarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Instance Variable" String="@[_[:alpha:]]\w*+" context="#pop!MsgParamOrOp2" />
				<RegExpr attribute="Class Variable" String="@@[_[:alpha:]]\w*+" context="#pop!MsgParamOrOp2" />
				<DetectChar attribute="Error" char="@" context="#pop!MsgParamOrOp2" />
			</context>

			
			<context name="DefFn" attribute="Normal Text" fallthroughContext="FnName">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				<LineContinue attribute="Normal Text" />
				<DetectChar attribute="Comment" char="#" context="General Comment" />
			</context>
			<context name="FnName" attribute="Normal Text" fallthroughContext="FnParent">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Normal Text" String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" context="MsgFnName" />

				<keyword attribute="Attribute Definition" String="attribute-definitions" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Access Control" String="access-control" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Definition" String="definitions" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Pseudo variable" String="pseudo-variables" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Kernel methods" String="kernel-methods" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Module mixin methods" String="mixin-methods" context="FnParent" weakDeliminator=":" />
				<keyword attribute="Keyword" String="keyword" context="FnParent" weakDeliminator=":" />

				<RegExpr attribute="Operator" String="[-+~]@?|![~@]?|[/%^]|\*\*?|\|\||&amp;&amp;|&lt;(=&gt;?)?|&gt;=?|===?|\*\*?" context="FnParent" />
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" context="MsgFnName" />
				<RegExpr attribute="Global Constant" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" context="MsgFnName" />

				<StringDetect attribute="Symbol" String="[]=" context="FnParent" />
				<StringDetect attribute="Symbol" String="[]" context="FnParent" />
				<DetectChar attribute="Comment" char="#" context="General Comment" />
			</context>
			<context name="FnParent" attribute="Normal Text" fallthroughContext="#pop#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Normal Text" char="(" context="DefFnParams" />
				<DetectSpaces attribute="Normal Text" />
				<LineContinue attribute="Normal Text" />
				<DetectChar attribute="Comment" char="#" context="General Comment" />
			</context>
			<context name="DefFnParams" attribute="Normal Text" fallthroughContext="#pop#pop#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Normal Text" char=")" context="#pop#pop#pop#pop" />
				<DetectChar attribute="Comment" char="#" context="General Comment" />
				<RegExpr attribute="Normal Text" String="([\s,]+|\b(?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|__FILE__|for|fork|format|getc|gets|global_variables|if|in|include|lambda|__LINE__|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield|autoload|chomp|chop|exit|gsub|sub)\b|[[:upper:]])[_[:alpha:]]\w*+(?=$|[^?!]))++" />
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" />
				<RegExpr attribute="Global Constant" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" />
				<keyword attribute="Attribute Definition" String="attribute-definitions" />
				<keyword attribute="Access Control" String="access-control" />
				<keyword attribute="Kernel methods" String="kernel-methods" />
				<keyword attribute="Module mixin methods" String="mixin-methods" />
			</context>


			
			<context name="Number" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="NumberError">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Dec" String="\b(0[dD][0-9](_?[0-9]++)*+|(0(\b|(?=[ri]))|[1-9](_?[0-9]++)*+)(?![eE]|[.][0-9]))" context="NumberSuffix" />
				<RegExpr attribute="Float" String="\b([1-9](_?[0-9]++)*+|0)(\.[0-9](_?[0-9]++)*+([eE][-+]?[0-9](_?[0-9]++)*+)?|[eE][-+]?[0-9](_?[0-9]++)*+)" context="NumberSuffix" />
				<RegExpr attribute="Hex" String="\b0[xX][0-9a-fA-F](_?[0-9a-fA-F]++)*+" context="NumberSuffix" />
				<RegExpr attribute="Bin" String="\b0[bB][01](_?[01]++)*+" context="NumberSuffix" />
				<RegExpr attribute="Octal" String="\b0[oO]?[0-7](_?[0-7]++)*+" context="NumberSuffix" />
				<DetectChar char="0" attribute="Dec" context="NumberError" />
			</context>

			<context name="NumberSuffix" attribute="Number Suffix" lineEndContext="#pop#pop" fallthroughContext="#pop!NumberError">
				<IncludeRules context="jinja_boot##Jinja" />
				<StringDetect attribute="Number Suffix" String="ri" context="#pop!NumberError" />
				<AnyChar attribute="Number Suffix" String="ri" context="#pop!NumberError" />
			</context>

			<context name="NumberError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop!Op1">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectIdentifier />
				<AnyChar String="0123456789" />
			</context>

			<context name="Find closing brace" attribute="Normal Text" fallthroughContext="Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Operator" char="}" context="#pop!Op1ThenExpr" endRegion="brace" />
				<IncludeRules context="Ruby" />
			</context>

			
			<context name="DQuote" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char="&quot;" attribute="String" context="CheckSym" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			
			<context name="CheckSym" attribute="Raw String" lineEndContext="#pop#pop!Op1" fallthroughContext="#pop#pop!Op1">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char=":" attribute="Symbol" context="#pop#pop#pop" />
			</context>

			
			<context name="DQuoteSpecial" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char="\" context="DQuoteEscape" lookAhead="1" />
				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1" />
			</context>
			<context name="DQuoteEscape" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="String Char" String="\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|$)" context="#pop" />
				<RegExpr attribute="Error" String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|)" context="#pop" />
			</context>
			<context name="DQuoteSubstitution" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<StringDetect attribute="Substitution" String="#{" context="#pop!Subst" />
				<RegExpr attribute="Substitution" String="#@@?\w+|#\$([!@~&amp;`'+/\\&lt;&gt;._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" context="#pop" />
				<DetectChar char="#" context="#pop" />
			</context>

			
			<context name="SQuote" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<Detect2Chars attribute="String" char="\" char1="\" />
				<Detect2Chars attribute="String" char="\" char1="'" />
				<DetectChar char="'" attribute="Raw String" context="CheckSym" />
			</context>

			
			<context name="Command String" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char="`" attribute="Command" context="#pop!Op1" />
				<Detect2Chars attribute="String" char="\" char1="\" />
				<Detect2Chars attribute="String" char="\" char1="`" />
				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1" />
			</context>

			
			<context name="MaybeCharLiteral" attribute="String" lineEndContext="#pop" fallthroughContext="#pop!Op1">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Operator" String="\?(?=\s|$)" context="#pop" />
				<DetectChar attribute="Char Literal" char="?" context="CharLiteral" />
			</context>
			<context name="CharLiteral" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Char" String="[^\\\s]" context="#pop#pop!Op1" />
				<RegExpr attribute="String Char" String="\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|$)" context="#pop#pop!Op1" />
				<RegExpr attribute="Error" String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|)" context="#pop#pop!Op1" />
			</context>

			<context name="Embedded documentation" attribute="Blockcomment">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces />
				<IncludeRules context="##Jinja/Comments" />
				<DetectIdentifier />
				<WordDetect attribute="Comment" String="=end" context="Embedded documentation End" endRegion="comment block" column="0" />
			</context>
			<context name="Embedded documentation End" attribute="Comment" lineEndContext="#pop#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			</context>

			<context name="RegEx" attribute="Regular Expression">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Regular Expression" context="RegExMode" char="/" />
				<IncludeRules context="RegExSpecial" />
			</context>
			
			<context name="RegExSpecial" attribute="String Char">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar char="#" context="DQuoteSubstitution" lookAhead="1" />
				<DetectChar char="\" context="RegExEscape" lookAhead="1" />
			</context>
			<context name="RegExEscape" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="String Char" String="\\([^0-7xucCMp]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|p\{[-[:alpha:]]*\}|$)" context="#pop" />
				<RegExpr attribute="Error" String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|p\{?|)" context="#pop" />
			</context>

			<context name="RegExMode" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Op1">
				<IncludeRules context="jinja_boot##Jinja" />
				<AnyChar attribute="Regular Expression" String="imxonues" />
			</context>

			
			<context name="Subst" attribute="Normal Text" fallthroughContext="Expr">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Operator" char="{" context="Find closing brace" beginRegion="brace" />
				<DetectChar attribute="Substitution" char="}" context="#pop" />
				
				<IncludeRules context="Ruby" />
			</context>

			
			<context name="MemberAccess" attribute="Member" fallthroughContext="#pop!Op1">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				
				<RegExpr attribute="Message" String="\b(?!((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))[_[:alpha:]]\w*+[?!]?" context="SubClass" />
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" context="SubClass" />
				<RegExpr attribute="Constant Value" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" context="SubClass" />
				<RegExpr attribute="Operator" String="\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=&gt;?)?|&gt;=?|=~|===?|\*\*?" context="#pop" />
			</context>
			<context name="SubClass" attribute="Normal Text" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<StringDetect attribute="Operator" String="::" context="#pop" />
			</context>

			<context name="ExprSubClass" attribute="Normal Text" fallthroughContext="#pop!Op1" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<StringDetect attribute="Operator" String="::" context="#pop!MemberAccess" />
			</context>

			<context name="MemberAccessCall" attribute="Member" fallthroughContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces attribute="Normal Text" />
				
				<RegExpr attribute="Message" String="\b(?!((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))[_[:alpha:]]\w*+[?!]?" context="SubClassCall" />
				<RegExpr attribute="Constant" String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" context="SubClassCall" />
				<RegExpr attribute="Constant Value" String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" context="SubClassCall" />
				<RegExpr attribute="Operator" String="\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=&gt;?)?|&gt;=?|=~|===?|\*\*?" context="#pop" />
			</context>
			<context name="SubClassCall" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<StringDetect attribute="Operator" String="::" context="#pop" />
			</context>

			<context name="General Comment" attribute="Comment" lineEndContext="#pop">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectSpaces />
				<IncludeRules context="##Jinja/Comments" />
				<DetectIdentifier />
			</context>

			
			
			<context name="Heredoc" attribute="Normal Text">
				<IncludeRules context="jinja_boot##Jinja" />
				<AnyChar attribute="Operator" String="-~" context="#pop!IndentedHeredoc" />
				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
				<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />
			</context>
			<context name="IndentedHeredoc" attribute="Normal Text">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
				<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />
			</context>
			
			<context name="indented_heredoc" attribute="Here Document">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true" />
				<IncludeRules context="DQuoteSpecial" />
			</context>
			<context name="apostrophed_indented_heredoc" attribute="Here Document">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true" />
			</context>

			<context name="normal_heredoc" attribute="Here Document">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0" />
				<IncludeRules context="DQuoteSpecial" />
			</context>
			<context name="apostrophed_normal_heredoc" attribute="Here Document">
				<IncludeRules context="jinja_boot##Jinja" />
				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0" />
			</context>

			
			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">
				
				<IncludeRules context="jinja_boot##Jinja" />
				
				<DetectChar attribute="GDL input" context="%Q(" char="(" />
				<DetectChar attribute="GDL input" context="%Q{" char="{" />
				<DetectChar attribute="GDL input" context="%Q[" char="[" />
				<DetectChar attribute="GDL input" context="%Q&lt;" char="&lt;" />
				<StringDetect attribute="GDL input" context="%Q(" String="Q(" />
				<StringDetect attribute="GDL input" context="%Q{" String="Q{" />
				<StringDetect attribute="GDL input" context="%Q[" String="Q[" />
				<StringDetect attribute="GDL input" context="%Q&lt;" String="Q&lt;" />

				
				<StringDetect attribute="GDL input" context="%Q(" String="W(" />
				<StringDetect attribute="GDL input" context="%Q{" String="W{" />
				<StringDetect attribute="GDL input" context="%Q[" String="W[" />
				<StringDetect attribute="GDL input" context="%Q&lt;" String="W&lt;" />

				
				<StringDetect attribute="GDL input" context="%Q(" String="I(" />
				<StringDetect attribute="GDL input" context="%Q{" String="I{" />
				<StringDetect attribute="GDL input" context="%Q[" String="I[" />
				<StringDetect attribute="GDL input" context="%Q&lt;" String="I&lt;" />

				
				<RegExpr attribute="GDL input" context="%Q_" String="[QWI]?([^[:alnum:]])" />

				
				<StringDetect attribute="GDL input" context="%w(" String="w(" />
				<StringDetect attribute="GDL input" context="%w{" String="w{" />
				<StringDetect attribute="GDL input" context="%w[" String="w[" />
				<StringDetect attribute="GDL input" context="%w&lt;" String="w&lt;" />

				
				<StringDetect attribute="GDL input" context="%w(" String="i(" />
				<StringDetect attribute="GDL input" context="%w{" String="i{" />
				<StringDetect attribute="GDL input" context="%w[" String="i[" />
				<StringDetect attribute="GDL input" context="%w&lt;" String="i&lt;" />

				
				<RegExpr attribute="GDL input" context="%w_" String="[wi]([^[:alnum:]])" />

				
				<StringDetect attribute="GDL input" context="%q(" String="q(" />
				<StringDetect attribute="GDL input" context="%q{" String="q{" />
				<StringDetect attribute="GDL input" context="%q[" String="q[" />
				<StringDetect attribute="GDL input" context="%q&lt;" String="q&lt;" />
				
				<RegExpr attribute="GDL input" context="%q_" String="q([^[:alnum:]])" />

				
				<StringDetect attribute="GDL input" context="%s(" String="s(" />
				<StringDetect attribute="GDL input" context="%s{" String="s{" />
				<StringDetect attribute="GDL input" context="%s[" String="s[" />
				<StringDetect attribute="GDL input" context="%s&lt;" String="s&lt;" />
				
				<RegExpr attribute="GDL input" context="%s_" String="s([^[:alnum:]])" />

				
				<StringDetect attribute="GDL input" context="%r(" String="r(" />
				<StringDetect attribute="GDL input" context="%r{" String="r{" />
				<StringDetect attribute="GDL input" context="%r[" String="r[" />
				<StringDetect attribute="GDL input" context="%r&lt;" String="r&lt;" />
				
				<RegExpr attribute="GDL input" context="%r_" String="r([^[:alnum:]])" />

				
				<StringDetect attribute="GDL input" context="%x(" String="x(" />
				<StringDetect attribute="GDL input" context="%x{" String="x{" />
				<StringDetect attribute="GDL input" context="%x[" String="x[" />
				<StringDetect attribute="GDL input" context="%x&lt;" String="x&lt;" />
				
				<RegExpr attribute="GDL input" context="%x_" String="x([^[:alnum:]])" />
			</context>


			

			<context name="%Q(" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />
				<IncludeRules context="%Q(_rule" />
			</context>
			<context name="%Q(_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char=")" />
				<IncludeRules context="%Q(_rule" />
			</context>
			<context name="%Q(_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%Q(_nested" char="(" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			
			<context name="%Q{" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />
				<IncludeRules context="%Q{_rule" />
			</context>
			<context name="%Q{_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="}" />
				<IncludeRules context="%Q{_rule" />
			</context>
			<context name="%Q{_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%Q{_nested" char="{" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			<context name="%Q[" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />
				<IncludeRules context="%Q[_rule" />
			</context>
			<context name="%Q[_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="]" />
				<IncludeRules context="%Q[_rule" />
			</context>
			<context name="%Q[_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%Q[_nested" char="[" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			<context name="%Q&lt;" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%Q&lt;_rule" />
			</context>
			<context name="%Q&lt;_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="&gt;" />
				<IncludeRules context="%Q&lt;_rule" />
			</context>
			<context name="%Q&lt;_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%Q&lt;_nested" char="&lt;" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			
			<context name="%Q_" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />
				<IncludeRules context="DQuoteSpecial" />
			</context>


			

			<context name="%w(" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />
				<IncludeRules context="%w(_rule" />
			</context>
			<context name="%w(_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char=")" />
				<IncludeRules context="%w(_rule" />
			</context>
			<context name="%w(_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%w(_nested" char="(" />
				<Detect2Chars attribute="String Char" char="\" char1=" " />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1=")" />
				<Detect2Chars attribute="String Char" char="\" char1="(" />
			</context>

			<context name="%w{" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />
				<IncludeRules context="%w{_rule" />
			</context>
			<context name="%w{_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="}" />
				<IncludeRules context="%w{_rule" />
			</context>
			<context name="%w{_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%w{_nested" char="{" />
				<Detect2Chars attribute="String Char" char="\" char1=" " />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="}" />
				<Detect2Chars attribute="String Char" char="\" char1="{" />
			</context>

			<context name="%w[" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />
				<IncludeRules context="%w[_rule" />
			</context>
			<context name="%w[_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="]" />
				<IncludeRules context="%w[_rule" />
			</context>
			<context name="%w[_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%w[_nested" char="[" />
				<Detect2Chars attribute="String Char" char="\" char1=" " />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="]" />
				<Detect2Chars attribute="String Char" char="\" char1="[" />
			</context>

			<context name="%w&lt;" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%w&lt;_rule" />
			</context>
			<context name="%w&lt;_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
				<IncludeRules context="%w&lt;_rule" />
			</context>
			<context name="%w&lt;_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%w&lt;_nested" char="&lt;" />
				<Detect2Chars attribute="String Char" char="\" char1=" " />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="&gt;" />
				<Detect2Chars attribute="String Char" char="\" char1="&lt;" />
			</context>

			
			<context name="%w_" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<Detect2Chars attribute="String Char" char="\" char1=" " />
				<IncludeRules context="%q_" />
			</context>


			

			<context name="%q(" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />
				<IncludeRules context="%q(_rule" />
			</context>
			<context name="%q(_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char=")" />
				<IncludeRules context="%q(_rule" />
			</context>
			<context name="%q(_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%q(_nested" char="(" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1=")" />
				<Detect2Chars attribute="String Char" char="\" char1="(" />
			</context>

			<context name="%q{" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />
				<IncludeRules context="%q{_rule" />
			</context>
			<context name="%q{_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="}" />
				<IncludeRules context="%q{_rule" />
			</context>
			<context name="%q{_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%q{_nested" char="{" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="}" />
				<Detect2Chars attribute="String Char" char="\" char1="{" />
			</context>

			<context name="%q[" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />
				<IncludeRules context="%q[_rule" />
			</context>
			<context name="%q[_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="]" />
				<IncludeRules context="%q[_rule" />
			</context>
			<context name="%q[_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%q[_nested" char="[" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="]" />
				<Detect2Chars attribute="String Char" char="\" char1="[" />
			</context>

			<context name="%q&lt;" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%q&lt;_rule" />
			</context>
			<context name="%q&lt;_nested" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
				<IncludeRules context="%q&lt;_rule" />
			</context>
			<context name="%q&lt;_rule" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Raw String" context="%q&lt;_nested" char="&lt;" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="&gt;" />
				<Detect2Chars attribute="String Char" char="\" char1="&lt;" />
			</context>

			
			<context name="%q_" attribute="Raw String">
				<IncludeRules context="jinja_boot##Jinja" />
				<Detect2Chars attribute="Raw String" char="\" char1="\" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />
				<StringDetect attribute="String Char" String="\%1" dynamic="true" />
			</context>


			

			<context name="%s(" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />
				<IncludeRules context="%s(_rule" />
			</context>
			<context name="%s(_nested" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="#pop" char=")" />
				<IncludeRules context="%s(_rule" />
			</context>
			<context name="%s(_rule" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="%s(_nested" char="(" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1=")" />
				<Detect2Chars attribute="String Char" char="\" char1="(" />
			</context>

			<context name="%s{" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />
				<IncludeRules context="%s{_rule" />
			</context>
			<context name="%s{_nested" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="#pop" char="}" />
				<IncludeRules context="%s{_rule" />
			</context>
			<context name="%s{_rule" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="%s{_nested" char="{" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="}" />
				<Detect2Chars attribute="String Char" char="\" char1="{" />
			</context>

			<context name="%s[" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />
				<IncludeRules context="%s[_rule" />
			</context>
			<context name="%s[_nested" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="#pop" char="]" />
				<IncludeRules context="%s[_rule" />
			</context>
			<context name="%s[_rule" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="%s[_nested" char="[" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="]" />
				<Detect2Chars attribute="String Char" char="\" char1="[" />
			</context>

			<context name="%s&lt;" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%s&lt;_rule" />
			</context>
			<context name="%s&lt;_nested" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="#pop" char="&gt;" />
				<IncludeRules context="%s&lt;_rule" />
			</context>
			<context name="%s&lt;_rule" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Symbol" context="%s&lt;_nested" char="&lt;" />
				<Detect2Chars attribute="String Char" char="\" char1="\" />
				<Detect2Chars attribute="String Char" char="\" char1="&gt;" />
				<Detect2Chars attribute="String Char" char="\" char1="&lt;" />
			</context>

			
			<context name="%s_" attribute="Symbol">
				<IncludeRules context="jinja_boot##Jinja" />
				<Detect2Chars attribute="Symbol" char="\" char1="\" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="1" dynamic="true" endRegion="GdlInput" />
				<StringDetect attribute="String Char" String="\%1" dynamic="true" />
			</context>


			

			<context name="%r(" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop!RegExMode" char=")" endRegion="GdlInput" /> <IncludeRules context="%r(_rule" />
			</context>
			<context name="%r(_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char=")" />
				<IncludeRules context="%r(_rule" />
			</context>
			<context name="%r(_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%r(_nested" char="(" />
				<IncludeRules context="RegExSpecial" />
			</context>

			<context name="%r{" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="}" endRegion="GdlInput" />
				<IncludeRules context="%r{_rule" />
			</context>
			<context name="%r{_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="}" />
				<IncludeRules context="%r{_rule" />
			</context>
			<context name="%r{_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%r{_nested" char="{" />
				<IncludeRules context="RegExSpecial" />
			</context>

			<context name="%r[" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="]" endRegion="GdlInput" />
				<IncludeRules context="%r[_rule" />
			</context>
			<context name="%r[_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="]" />
				<IncludeRules context="%r[_rule" />
			</context>
			<context name="%r[_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%r[_nested" char="[" />
				<IncludeRules context="RegExSpecial" />
			</context>

			<context name="%r&lt;" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%r&lt;_rule" />
			</context>
			<context name="%r&lt;_nested" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="#pop" char="&gt;" />
				<IncludeRules context="%r&lt;_rule" />
			</context>
			<context name="%r&lt;_rule" attribute="String">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="String" context="%r&lt;_nested" char="&lt;" />
				<IncludeRules context="RegExSpecial" />
			</context>

			
			<context name="%r_" attribute="Regular Expression">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop!RegExMode" char="1" dynamic="true" endRegion="GdlInput" />
				<StringDetect attribute="String Char" String="\%1" dynamic="true" />
				<IncludeRules context="RegExSpecial" />
			</context>


			

			<context name="%x(" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char=")" endRegion="GdlInput" />
				<IncludeRules context="%x(_rule" />
			</context>
			<context name="%x(_nested" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="#pop" char=")" />
				<IncludeRules context="%x(_rule" />
			</context>
			<context name="%x(_rule" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="%x(_nested" char="(" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			<context name="%x{" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="}" endRegion="GdlInput" />
				<IncludeRules context="%x{_rule" />
			</context>
			<context name="%x{_nested" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="#pop" char="}" />
				<IncludeRules context="%x{_rule" />
			</context>
			<context name="%x{_rule" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="%x{_nested" char="{" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			<context name="%x[" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="]" endRegion="GdlInput" />
				<IncludeRules context="%x[_rule" />
			</context>
			<context name="%x[_nested" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="#pop" char="]" />
				<IncludeRules context="%x[_rule" />
			</context>
			<context name="%x[_rule" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="%x[_nested" char="[" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			<context name="%x&lt;" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="GDL input" context="#pop#pop!Op1" char="&gt;" endRegion="GdlInput" />
				<IncludeRules context="%x&lt;_rule" />
			</context>
			<context name="%x&lt;_nested" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="#pop" char="&gt;" />
				<IncludeRules context="%x&lt;_rule" />
			</context>
			<context name="%x&lt;_rule" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<DetectChar attribute="Command" context="%x&lt;_nested" char="&lt;" />
				<IncludeRules context="DQuoteSpecial" />
			</context>

			
			<context name="%x_" attribute="Command">
				<IncludeRules context="jinja_boot##Jinja" />
				<IncludeRules context="%Q_" />
			</context>

			

			
			<context name="DATA" attribute="Data"><IncludeRules context="jinja_boot##Jinja" /></context>
		</contexts>

		<itemDatas>
			<itemData name="Normal Text" defStyleNum="dsNormal" />

			<itemData name="Keyword" defStyleNum="dsControlFlow" />
			<itemData name="Attribute Definition" defStyleNum="dsOthers" />
			<itemData name="Access Control" defStyleNum="dsAttribute" bold="1" /> 
			<itemData name="Definition" defStyleNum="dsKeyword" />
			<itemData name="Pseudo variable" defStyleNum="dsDecVal" />

			<itemData name="Dec" defStyleNum="dsDecVal" />
			<itemData name="Float" defStyleNum="dsFloat" />
			<itemData name="Octal" defStyleNum="dsBaseN" />
			<itemData name="Hex" defStyleNum="dsBaseN" />
			<itemData name="Bin" defStyleNum="dsBaseN" />
			<itemData name="Number Suffix" defStyleNum="dsBuiltIn" />

			<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0" /> 
			<itemData name="String" defStyleNum="dsString" />
			<itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false" />
			<itemData name="Raw String" defStyleNum="dsVerbatimString" /> 
			<itemData name="Char Literal" defStyleNum="dsSpecialChar" spellChecking="false" />
			<itemData name="Char" defStyleNum="dsChar" />

			<itemData name="Command" defStyleNum="dsInformation" /> 
			<itemData name="Message" defStyleNum="dsAttribute" bold="0" /> 
			<itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="false" /> 
			<itemData name="Substitution" defStyleNum="dsSpecialChar" />
			<itemData name="Data" defStyleNum="dsNormal" />
			
			<itemData name="GDL input" defStyleNum="dsOthers" />

			<itemData name="Default globals" defStyleNum="dsVariable" bold="1" /> 
			<itemData name="Global Variable" defStyleNum="dsVariable" /> 
			<itemData name="Global Constant" defStyleNum="dsConstant" bold="1" /> 
			<itemData name="Constant" defStyleNum="dsDataType" />
			<itemData name="Constant Value" defStyleNum="dsConstant" bold="0" /> 
			<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1" /> 
			<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1" /> 
			<itemData name="Member" defStyleNum="dsAttribute" />
			<itemData name="Instance Variable" defStyleNum="dsOthers" />
			<itemData name="Class Variable" defStyleNum="dsOthers" />

			<itemData name="Comment" defStyleNum="dsComment" />
			<itemData name="Blockcomment" defStyleNum="dsComment" />

			<itemData name="Here Document" defStyleNum="dsDocumentation" />

			<itemData name="Delimiter" defStyleNum="dsKeyword" /> 
			<itemData name="Operator" defStyleNum="dsOperator" bold="1" /> 

			<itemData name="Error" defStyleNum="dsError" />
		</itemDatas>
	</highlighting>
	<general>
		<comments>
			<comment name="singleLine" start="#" position="afterwhitespace" />
		</comments>
		<keywords casesensitive="1" weakDeliminator="!?" />
	</general>
</language>