<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="OpenSCAD" version="6" indenter="cstyle" kateversion="5.62" section="3D" extensions="*.scad" mimetype="text/x-openscad-src" priority="1" author="Julian Stirling (julian@julianstirling.co.uk)" license="MIT"><highlighting><list name="preprocessor"><item>import</item><item>include</item><item>use</item></list><list name="keywords"><item>else</item><item>false</item><item>for</item><item>function</item><item>if</item><item>intersection_for</item><item>module</item><item>true</item><item>undef</item></list><list name="2D"><item>circle</item><item>polygon</item><item>square</item><item>text</item></list><list name="3D"><item>cube</item><item>cylinder</item><item>polyhedron</item><item>sphere</item></list><list name="transformations"><item>color</item><item>hull</item><item>minkowski</item><item>mirror</item><item>multmatrix</item><item>offset</item><item>resize</item><item>rotate</item><item>scale</item><item>translate</item></list><list name="boolean"><item>difference</item><item>intersection</item><item>union</item></list><list name="mathematical"><item>abs</item><item>acos</item><item>asin</item><item>atan</item><item>atan2</item><item>ceil</item><item>cos</item><item>exp</item><item>floor</item><item>len</item><item>let</item><item>ln</item><item>log</item><item>max</item><item>min</item><item>pow</item><item>rands</item><item>round</item><item>sign</item><item>sin</item><item>sqrt</item><item>tan</item></list><list name="functions"><item>assert</item><item>chr</item><item>concat</item><item>cross</item><item>lookup</item><item>norm</item><item>parent_module</item><item>search</item><item>str</item><item>version</item><item>version_num</item></list><list name="list_comp"><item>Assignments</item><item>Conditions</item><item>Generate</item></list><list name="other"><item>children</item><item>echo</item><item>linear_extrude</item><item>projection</item><item>render</item><item>rotate_extrude</item><item>surface</item></list><contexts><context name="Normal" attribute="Normal Text"><DetectSpaces/><RegExpr String="\$[a-zA-Z]" attribute="Error" context="AfterDollar" insensitive="1" lookAhead="1"/><keyword String="preprocessor" attribute="Preprocessor"/><keyword String="keywords" attribute="Keywords"/><keyword String="2D" attribute="Two Dim"/><keyword String="3D" attribute="Three Dim"/><keyword String="transformations" attribute="Transformation"/><keyword String="boolean" attribute="Boolean"/><keyword String="mathematical" attribute="Mathematical"/><keyword String="functions" attribute="Functions"/><keyword String="list_comp" attribute="List Comprehensions"/><keyword String="other" attribute="Other"/><Float attribute="Float"/><Int attribute="Decimal"/><DetectChar char='"' attribute="String" context="Strings" beginRegion="String"/><DetectChar char="{" attribute="Symbol" beginRegion="Scope"/><DetectChar char="}" attribute="Symbol" endRegion="Scope"/><DetectChar char="[" attribute="Symbol" beginRegion="Vector"/><DetectChar char="]" attribute="Symbol" endRegion="Vector"/><StringDetect String="//" attribute="Comment" context="OneLineCom"/><StringDetect String="/*" attribute="Comment" context="MultLineCom" beginRegion="Comment"/><AnyChar String=":!%&amp;()+,-/*&lt;=>?|^;#" attribute="Symbol"/></context><context name="AfterDollar" attribute="Error" lineEndContext="#pop"><RegExpr String="\$(fa|fs|fn|t|vpr|vpt|vpd|children)" attribute="SpecialVar" context="SpecialVar" insensitive="1"/><RegExpr String="[^a-zA-Z0-9\$]" attribute="Normal Text" context="#pop" insensitive="1"/></context><context name="MultLineCom" attribute="Comment"><DetectSpaces/><StringDetect String="*/" attribute="Comment" context="#pop" endRegion="Comment"/><IncludeRules context="##Comments"/></context><context name="OneLineCom" attribute="Comment" lineEndContext="#pop"><DetectSpaces/><IncludeRules context="##Comments"/></context><context name="SpecialVar" attribute="SpecialVar" lineEndContext="#pop"><RegExpr String="[^\s=\*\+\-/\);]+" attribute="Error" context="#pop#pop" insensitive="1"/><RegExpr String="\s*[=\*\+\-/\);]" attribute="Normal Text" context="#pop#pop" insensitive="1"/></context><context name="Strings" attribute="String"><StringDetect String="\\" attribute="String"/><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="#pop" endRegion="String"/></context></contexts><itemDatas><itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="Error" defStyleNum="dsError" spellChecking="0"/><itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="0"/><itemData name="Keywords" defStyleNum="dsKeyword" spellChecking="0"/><itemData name="Two Dim" defStyleNum="dsKeyword" spellChecking="0"/><itemData name="Three Dim" defStyleNum="dsKeyword" spellChecking="0"/><itemData name="Transformation" defStyleNum="dsFunction" spellChecking="0"/><itemData name="Boolean" defStyleNum="dsFunction" spellChecking="0"/><itemData name="Mathematical" defStyleNum="dsBuiltIn" spellChecking="0"/><itemData name="Functions" defStyleNum="dsExtension" spellChecking="0"/><itemData name="List Comprehensions" defStyleNum="dsFunction" spellChecking="0"/><itemData name="Other" defStyleNum="dsExtension" spellChecking="0"/><itemData name="SpecialVar" defStyleNum="dsAttribute" spellChecking="0"/><itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="0"/><itemData name="Float" defStyleNum="dsFloat" spellChecking="0"/><itemData name="String" defStyleNum="dsString"/><itemData name="Symbol" defStyleNum="dsOperator" spellChecking="0"/></itemDatas></highlighting><general><comments><comment name="singleLine" start="//"/><comment name="multiLine" start="/*" end="*/" region="Comment"/></comments><keywords casesensitive="1" additionalDeliminator="'&#34;"/></general></language>