diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,19 @@
 # Revision history for skylighting and skylighting-core
 
+## 0.14.7
+
+  * Update xml syntax definitions: agda, apache, bash, c, clojure,
+    cmake, coffee, commonlisp, cpp, djangotemplate, dot, dtd, fasm,
+    gd-script, glsl, gnuassembler, html, ini, java, json, julia, kotlin,
+    latex, lua, mathematica, mediawiki, metafont, mips, mustache, nasm,
+    objectivecpp, octave, perl, php, povray, powershell, protobuf,
+    python, racket, raku, rhtml, ruby, scheme, sed, sgml,
+    sql-postgresql, stan, systemverilog, tcl, xml, xul.
+
+  * Add gleam.
+
+  * Relax xml-conduit upper bound.
+
 ## 0.14.6
 
   * Export Skylighting.Format.Typst from Skylighting [API change] (#201).
diff --git a/skylighting-core.cabal b/skylighting-core.cabal
--- a/skylighting-core.cabal
+++ b/skylighting-core.cabal
@@ -1,5 +1,5 @@
 name:                skylighting-core
-version:             0.14.6
+version:             0.14.7
 synopsis:            syntax highlighting library
 description:         Skylighting is a syntax highlighting library.
                      It derives its tokenizers from XML syntax
@@ -125,7 +125,7 @@
                        case-insensitive,
                        attoparsec,
                        utf8-string,
-                       xml-conduit >= 1.9.1.3 && < 1.10,
+                       xml-conduit >= 1.9.1.3 && < 1.11,
                        safe,
                        base64-bytestring,
                        colour >= 2.0,
diff --git a/test/expected/abc.perl.native b/test/expected/abc.perl.native
--- a/test/expected/abc.perl.native
+++ b/test/expected/abc.perl.native
@@ -1,7 +1,9 @@
 [ [ ( FunctionTok , "use" )
   , ( NormalTok , " " )
   , ( FunctionTok , "Test::More" )
-  , ( NormalTok , " tests => " )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "tests" )
+  , ( NormalTok , " => " )
   , ( DecValTok , "8" )
   , ( NormalTok , ";" )
   ]
diff --git a/test/expected/abc.scheme.native b/test/expected/abc.scheme.native
--- a/test/expected/abc.scheme.native
+++ b/test/expected/abc.scheme.native
@@ -61,12 +61,16 @@
 , [ ( NormalTok , "(" )
   , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
-  , ( NormalTok , "(can-make-word? w)" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "can-make-word? " )
+  , ( NormalTok , "w)" )
   ]
 , [ ( NormalTok , "  (" )
   , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
-  , ( NormalTok , "(usable-block blocks word-char)" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "usable-block " )
+  , ( NormalTok , "blocks word-char)" )
   ]
 , [ ( NormalTok
     , "    (for/first ((b (in-list blocks)) #:when (memf (curry "
@@ -78,7 +82,9 @@
 , [ ( NormalTok , "  (" )
   , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
-  , ( NormalTok , "(inner word-chars blocks tried-blocks)" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "inner " )
+  , ( NormalTok , "word-chars blocks tried-blocks)" )
   ]
 , [ ( NormalTok , "    (" ) , ( KeywordTok , "cond" ) ]
 , [ ( NormalTok , "      " )
@@ -153,7 +159,9 @@
 , [ ( NormalTok , "(" )
   , ( ExtensionTok , "define" )
   , ( FunctionTok , " " )
-  , ( NormalTok , "(report-word w)" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "report-word " )
+  , ( NormalTok , "w)" )
   ]
 , [ ( NormalTok , "  (printf " )
   , ( StringTok , "\"Can we make: ~a? ~a~%\"" )
diff --git a/test/expected/abc.tcl.native b/test/expected/abc.tcl.native
--- a/test/expected/abc.tcl.native
+++ b/test/expected/abc.tcl.native
@@ -43,28 +43,33 @@
   , ( DecValTok , "0" )
   ]
 , [ ( NormalTok , "        " )
-  , ( KeywordTok , "foreach" )
+  , ( ControlFlowTok , "foreach" )
   , ( NormalTok , " blk " )
   , ( DataTypeTok , "$blocks" )
   , ( NormalTok , " " )
   , ( KeywordTok , "{" )
   ]
 , [ ( NormalTok , "            " )
-  , ( KeywordTok , "if" )
+  , ( ControlFlowTok , "if" )
   , ( NormalTok , " " )
   , ( KeywordTok , "{" )
   , ( DataTypeTok , "$ch" )
   , ( NormalTok , " in " )
   , ( DataTypeTok , "$blk" )
-  , ( NormalTok , " && (!" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "&&" )
+  , ( NormalTok , " (" )
+  , ( OperatorTok , "!" )
   , ( KeywordTok , "[llength" )
   , ( NormalTok , " " )
   , ( DataTypeTok , "$rest" )
   , ( KeywordTok , "]" )
   ]
-, [ ( NormalTok , "                    || " )
-  , ( KeywordTok , "[" )
-  , ( NormalTok , "apply " )
+, [ ( NormalTok , "                    " )
+  , ( OperatorTok , "||" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[apply" )
+  , ( NormalTok , " " )
   , ( DataTypeTok , "$abc" )
   , ( NormalTok , " " )
   , ( DataTypeTok , "$rest" )
@@ -86,7 +91,7 @@
   , ( KeywordTok , "{" )
   ]
 , [ ( NormalTok , "                " )
-  , ( KeywordTok , "return" )
+  , ( ControlFlowTok , "return" )
   , ( NormalTok , " true" )
   ]
 , [ ( NormalTok , "            " ) , ( KeywordTok , "}" ) ]
@@ -96,15 +101,15 @@
   ]
 , [ ( NormalTok , "        " ) , ( KeywordTok , "}" ) ]
 , [ ( NormalTok , "        " )
-  , ( KeywordTok , "return" )
+  , ( ControlFlowTok , "return" )
   , ( NormalTok , " false" )
   ]
 , [ ( NormalTok , "    " ) , ( KeywordTok , "}}" ) ]
 , [ ( NormalTok , "    " )
-  , ( KeywordTok , "return" )
+  , ( ControlFlowTok , "return" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "[" )
-  , ( NormalTok , "apply " )
+  , ( KeywordTok , "[apply" )
+  , ( NormalTok , " " )
   , ( DataTypeTok , "$abc" )
   , ( NormalTok , " " )
   , ( KeywordTok , "[split" )
@@ -114,8 +119,8 @@
   , ( StringTok , "\"\"" )
   , ( KeywordTok , "]" )
   , ( NormalTok , " " )
-  , ( KeywordTok , "[" )
-  , ( NormalTok , "lmap b " )
+  , ( KeywordTok , "[lmap" )
+  , ( NormalTok , " b " )
   , ( DataTypeTok , "$blocks" )
   , ( NormalTok , " " )
   , ( KeywordTok , "{split" )
@@ -130,7 +135,7 @@
   ]
 , [ ( KeywordTok , "}" ) ]
 , []
-, [ ( KeywordTok , "foreach" )
+, [ ( ControlFlowTok , "foreach" )
   , ( NormalTok , " word " )
   , ( KeywordTok , "{" )
   , ( StringTok , "\"\"" )
diff --git a/test/expected/docbook.xml.native b/test/expected/docbook.xml.native
--- a/test/expected/docbook.xml.native
+++ b/test/expected/docbook.xml.native
@@ -1,7 +1,9 @@
 [ [ ( FunctionTok , "<?xml" )
-  , ( OtherTok , " version=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "version=" )
   , ( StringTok , "\"1.0\"" )
-  , ( OtherTok , " encoding=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "encoding=" )
   , ( StringTok , "\"utf-8\"" )
   , ( FunctionTok , "?>" )
   ]
@@ -38,7 +40,8 @@
   ]
 , [ ( NormalTok , "      <" )
   , ( KeywordTok , "filename" )
-  , ( OtherTok , " class=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "class=" )
   , ( StringTok , "\"directory\"" )
   , ( NormalTok , ">/usr/bin</" )
   , ( KeywordTok , "filename" )
diff --git a/xml/agda.xml b/xml/agda.xml
--- a/xml/agda.xml
+++ b/xml/agda.xml
@@ -3,7 +3,7 @@
   <!ENTITY charsdelim "_;.&#34;(){}@">
   <!ENTITY wordsep "(?=[&charsdelim;]|\s|$)">
 ]>
-<language name="Agda" version="9" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
+<language name="Agda" version="10" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
   <highlighting>
     <list name="reserved keywords">
       <item>abstract</item>
@@ -29,6 +29,7 @@
       <item>module</item>
       <item>mutual</item>
       <item>no-eta-equality</item>
+      <item>opaque</item>
       <item>open</item>
       <item>overlap</item>
       <item>pattern</item>
@@ -44,6 +45,7 @@
       <item>syntax</item>
       <item>tactic</item>
       <item>to</item>
+      <item>unfolding</item>
       <item>unquote</item>
       <item>unquoteDecl</item>
       <item>unquoteDef</item>
diff --git a/xml/apache.xml b/xml/apache.xml
--- a/xml/apache.xml
+++ b/xml/apache.xml
@@ -426,7 +426,6 @@
 <item>None</item>
 <item>AuthConfig</item>
 <item>FileInfo</item>
-<item>Indexes</item>
 <item>Limit</item>
 <item>Options</item>
 
@@ -488,7 +487,6 @@
 <item>Descending</item>
 <item>Name</item>
 <item>Date</item>
-<item>Size</item>
 <item>Description</item>
 <item>SSL</item>
 <item>TLS</item>
@@ -496,7 +494,6 @@
 <item>emerg</item>
 <item>alert</item>
 <item>crit</item>
-<item>error</item>
 <item>warn</item>
 <item>notice</item>
 <item>info</item>
@@ -527,12 +524,8 @@
 <item>Prod</item>
 <item>ProductOnly</item>
 <item>OS</item>
-<item>Full</item>
 <item>optional</item>
-<item>posixsem</item>
-<item>sysvsem</item>
 <item>sem</item>
-<item>pthread</item>
 <item>fcntl:</item>
 <item>flock:</item>
 <item>file:</item>
diff --git a/xml/bash.xml b/xml/bash.xml
--- a/xml/bash.xml
+++ b/xml/bash.xml
@@ -71,7 +71,7 @@
 
 <language
     name="Bash"
-    version="53"
+    version="54"
     kateversion="5.79"
     section="Scripts"
     extensions="*.sh;*.bash;*.ebuild;*.eclass;*.exlib;*.exheres-0;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD"
@@ -1276,12 +1276,23 @@
       </context>
 
       <!-- VarBraceStart is called as soon as ${ is encoutered -->
-      <context attribute="Variable" lineEndContext="#pop!VarBrace" name="VarBraceStart" fallthroughContext="#pop!VarBrace">
+      <context attribute="Variable" lineEndContext="SubstBraceCommand" name="VarBraceStart" fallthroughContext="#pop!VarBrace">
+        <!-- '${!}' as process ID variable, not a Parameter Expansion -->
         <StringDetect context="#pop!VarBrace" String="!}" lookAhead="1"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBracePrefix" char="!"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBrace" char="#"/>
+        <!-- Bash-5.3: ${ cmd; } -->
+        <DetectSpaces attribute="Normal Text" context="SubstBraceCommand"/>
+        <!-- Bash-5.3: ${|cmd;} -->
+        <DetectChar attribute="Control" context="SubstBraceCommand" char="|"/>
       </context>
 
+      <!-- SubstBraceCommand is called after a '${ ' are '${|' are encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBraceCommand" fallthroughContext="Command">
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
+        <IncludeRules context="Start"/>
+      </context>
+
       <!-- VarBracePrefix called as soon as ${! is encoutered -->
       <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefix">
         <DetectIdentifier attribute="Variable" context="#pop!VarBracePrefixSuffix"/>
@@ -1928,3 +1939,4 @@
     <keywords casesensitive="1" weakDeliminator="_&weakDeliminatorSymbols;" additionalDeliminator="`"/>
   </general>
 </language>
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/xml/c.xml b/xml/c.xml
--- a/xml/c.xml
+++ b/xml/c.xml
@@ -15,7 +15,7 @@
     <!ENTITY pphash "&ispphash;\s*">
 ]>
 <language name="C" section="Sources"
-          version="18" kateversion="5.79"
+          version="19" kateversion="5.79"
           indenter="cstyle"
           extensions="*.c;*.C;*.h"
           mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
@@ -130,7 +130,6 @@
       <item>wint_t</item>
       <item>_BitInt</item> <!-- C23 -->
       <item>_Bool</item>
-      <item>bool</item>
       <item>_Decimal32</item> <!-- C23 -->
       <item>_Decimal64</item> <!-- C23 -->
       <item>_Decimal128</item> <!-- C23 -->
diff --git a/xml/clojure.xml b/xml/clojure.xml
--- a/xml/clojure.xml
+++ b/xml/clojure.xml
@@ -22,7 +22,7 @@
  * Boston, MA  02110-1301, USA.                                       *
  **********************************************************************
  -->
-<language version="17" kateversion="5.0" name="Clojure" alternativeNames="CLJ" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
+<language version="18" kateversion="5.0" name="Clojure" alternativeNames="CLJ" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
   <highlighting>
     <list name="definitions">
       <item>def</item>
@@ -696,7 +696,6 @@
       <item>*testing-vars*</item>
       <item>*test-out*</item>
       <item>*use-context-classloader*</item>
-      <item>*warn-on-reflection*</item>
       <item>*warn-on-reflection*</item>
       <item>false</item>
       <item>nil</item>
diff --git a/xml/cmake.xml b/xml/cmake.xml
--- a/xml/cmake.xml
+++ b/xml/cmake.xml
@@ -12,7 +12,7 @@
     SPDX-FileCopyrightText: 2004 Alexander Neundorf <neundorf@kde.org>
     SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
     SPDX-FileCopyrightText: 2007, 2008, 2013, 2014 Matthew Woehlke <mw_triad@users.sourceforge.net>
-    SPDX-FileCopyrightText: 2013-2015, 2017-2023 Alex Turbov <i.zaufi@gmail.com>
+    SPDX-FileCopyrightText: 2013-2015, 2017-2025 Alex Turbov <i.zaufi@gmail.com>
 
     SPDX-License-Identifier: LGPL-2.0-or-later
  -->
@@ -24,7 +24,7 @@
 
 <language
     name="CMake"
-    version="53"
+    version="54"
     kateversion="5.62"
     section="Other"
     extensions="CMakeLists.txt;*.cmake;*.cmake.in"
@@ -1046,6 +1046,7 @@
       <item>EXPORT</item>
       <item>EXPORT_ANDROID_MK</item>
       <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>EXPORT_PACKAGE_DEPENDENCIES</item>
       <item>FILE</item>
       <item>FILES</item>
       <item>FILES_MATCHING</item>
@@ -1712,6 +1713,7 @@
       <item>INSTALL_BYPRODUCTS</item>
       <item>INSTALL_COMMAND</item>
       <item>INSTALL_DIR</item>
+      <item>INSTALL_JOB_SERVER_AWARE</item>
       <item>LIST_SEPARATOR</item>
       <item>LOG_BUILD</item>
       <item>LOG_CONFIGURE</item>
@@ -2055,6 +2057,7 @@
     <list name="bison_target_nargs">
       <item>COMPILE_FLAGS</item>
       <item>DEFINES_FILE</item>
+      <item>OPTIONS</item>
       <item>REPORT_FILE</item>
       <item>VERBOSE</item>
     </list>
@@ -2077,6 +2080,7 @@
     <list name="flex_target_nargs">
       <item>COMPILE_FLAGS</item>
       <item>DEFINES_FILE</item>
+      <item>OPTIONS</item>
     </list>
     <list name="gettext_create_translations_nargs">
       <item>ALL</item>
@@ -2132,6 +2136,22 @@
       <item>DESCRIPTORS</item>
       <item>EXPORT_MACRO</item>
     </list>
+    <list name="protobuf_generate_nargs">
+      <item>APPEND_PATH</item>
+      <item>DEPENDENCIES</item>
+      <item>EXPORT_MACRO</item>
+      <item>GENERATE_EXTENSIONS</item>
+      <item>IMPORT_DIRS</item>
+      <item>LANGUAGE</item>
+      <item>OUT_VAR</item>
+      <item>PLUGIN</item>
+      <item>PLUGIN_OPTIONS</item>
+      <item>PROTOC_EXE</item>
+      <item>PROTOC_OPTIONS</item>
+      <item>PROTOC_OUT_DIR</item>
+      <item>PROTOS</item>
+      <item>TARGET</item>
+    </list>
     <list name="Python_add_library_nargs">
       <item>MODULE</item>
       <item>SHARED</item>
@@ -2143,6 +2163,7 @@
     </list>
 
     <list name="variables">
+      <item>AIX</item>
       <item>ALSA_LIBRARY</item>
       <item>ANDROID</item>
       <item>APPLE</item>
@@ -2314,6 +2335,7 @@
       <item>CMAKE_C_LINK_PIE_SUPPORTED</item>
       <item>CMAKE_C_STANDARD</item>
       <item>CMAKE_C_STANDARD_REQUIRED</item>
+      <item>CMAKE_DEBUGGER_WORKING_DIRECTORY</item>
       <item>CMAKE_DEBUG_POSTFIX</item>
       <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
       <item>CMAKE_DEFAULT_BUILD_TYPE</item>
@@ -2337,6 +2359,7 @@
       <item>CMAKE_EXECUTABLE_ENABLE_EXPORTS</item>
       <item>CMAKE_EXECUTABLE_SUFFIX</item>
       <item>CMAKE_EXECUTE_PROCESS_COMMAND_ECHO</item>
+      <item>CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL</item>
       <item>CMAKE_EXE_LINKER_FLAGS</item>
       <item>CMAKE_EXE_LINKER_FLAGS_INIT</item>
       <item>CMAKE_EXPORT_BUILD_DATABASE</item>
@@ -2409,6 +2432,7 @@
       <item>CMAKE_HIP_PLATFORM</item>
       <item>CMAKE_HIP_STANDARD</item>
       <item>CMAKE_HIP_STANDARD_REQUIRED</item>
+      <item>CMAKE_HOST_AIX</item>
       <item>CMAKE_HOST_APPLE</item>
       <item>CMAKE_HOST_BSD</item>
       <item>CMAKE_HOST_EXECUTABLE_SUFFIX</item>
@@ -2510,6 +2534,7 @@
       <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
       <item>CMAKE_LINK_SEARCH_END_STATIC</item>
       <item>CMAKE_LINK_SEARCH_START_STATIC</item>
+      <item>CMAKE_LINK_WARNING_AS_ERROR</item>
       <item>CMAKE_LINK_WHAT_YOU_USE</item>
       <item>CMAKE_LINK_WHAT_YOU_USE_CHECK</item>
       <item>CMAKE_MACOSX_BUNDLE</item>
@@ -2530,6 +2555,7 @@
       <item>CMAKE_MODULE_PATH</item>
       <item>CMAKE_MSVCIDE_RUN_PATH</item>
       <item>CMAKE_MSVC_DEBUG_INFORMATION_FORMAT</item>
+      <item>CMAKE_MSVC_RUNTIME_CHECKS</item>
       <item>CMAKE_MSVC_RUNTIME_LIBRARY</item>
       <item>CMAKE_NETRC</item>
       <item>CMAKE_NETRC_FILE</item>
@@ -2583,6 +2609,7 @@
       <item>CMAKE_PKG_CONFIG_SYS_LIB_DIRS</item>
       <item>CMAKE_PKG_CONFIG_TOP_BUILD_DIR</item>
       <item>CMAKE_PLATFORM_NO_VERSIONED_SONAME</item>
+      <item>CMAKE_POLICY_VERSION_MINIMUM</item>
       <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
       <item>CMAKE_PREFIX_PATH</item>
       <item>CMAKE_PROGRAM_PATH</item>
@@ -2730,10 +2757,12 @@
       <item>CMAKE_XCODE_SCHEME_GUARD_MALLOC</item>
       <item>CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION</item>
       <item>CMAKE_XCODE_SCHEME_LAUNCH_MODE</item>
+      <item>CMAKE_XCODE_SCHEME_LLDB_INIT_FILE</item>
       <item>CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
       <item>CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
       <item>CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE</item>
       <item>CMAKE_XCODE_SCHEME_MALLOC_STACK</item>
+      <item>CMAKE_XCODE_SCHEME_TEST_CONFIGURATION</item>
       <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER</item>
       <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
       <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
@@ -3215,6 +3244,7 @@
       <item>ExternalData_CUSTOM_ERROR</item>
       <item>ExternalData_CUSTOM_FILE</item>
       <item>ExternalData_CUSTOM_LOCATION</item>
+      <item>ExternalData_HTTPHEADERS</item>
       <item>ExternalData_LINK_CONTENT</item>
       <item>ExternalData_NO_SYMLINKS</item>
       <item>ExternalData_OBJECT_STORES</item>
@@ -3508,6 +3538,7 @@
       <item>Protobuf_SRC_ROOT_FOLDER</item>
       <item>Protobuf_USE_STATIC_LIBS</item>
       <item>Python2_ARTIFACTS_INTERACTIVE</item>
+      <item>Python2_ARTIFACTS_PREFIX</item>
       <item>Python2_COMPILER</item>
       <item>Python2_COMPILER_ID</item>
       <item>Python2_DEBUG_POSTFIX</item>
@@ -3531,6 +3562,7 @@
       <item>Python2_STDLIB</item>
       <item>Python2_USE_STATIC_LIBS</item>
       <item>Python3_ARTIFACTS_INTERACTIVE</item>
+      <item>Python3_ARTIFACTS_PREFIX</item>
       <item>Python3_COMPILER</item>
       <item>Python3_COMPILER_ID</item>
       <item>Python3_DEBUG_POSTFIX</item>
@@ -3555,6 +3587,7 @@
       <item>Python3_STDLIB</item>
       <item>Python3_USE_STATIC_LIBS</item>
       <item>Python_ARTIFACTS_INTERACTIVE</item>
+      <item>Python_ARTIFACTS_PREFIX</item>
       <item>Python_COMPILER</item>
       <item>Python_COMPILER_ID</item>
       <item>Python_DEBUG_POSTFIX</item>
@@ -3709,6 +3742,7 @@
       <item>CMAKE_MSVCIDE_RUN_PATH</item>
       <item>CMAKE_NO_VERBOSE</item>
       <item>CMAKE_OSX_ARCHITECTURES</item>
+      <item>CMAKE_POLICY_VERSION_MINIMUM</item>
       <item>CMAKE_PREFIX_PATH</item>
       <item>CMAKE_PROGRAM_PATH</item>
       <item>CMAKE_TLS_VERIFY</item>
@@ -3826,6 +3860,7 @@
       <item>TEST_INCLUDE_FILE</item>
       <item>TEST_INCLUDE_FILES</item>
       <item>VARIABLES</item>
+      <item>VS_SOLUTION_ITEMS</item>
       <item>VS_STARTUP_PROJECT</item>
     </list>
     <list name="target-properties">
@@ -3912,6 +3947,7 @@
       <item>C_EXTENSIONS</item>
       <item>C_STANDARD</item>
       <item>C_STANDARD_REQUIRED</item>
+      <item>DEBUGGER_WORKING_DIRECTORY</item>
       <item>DEFINE_SYMBOL</item>
       <item>DEPLOYMENT_ADDITIONAL_FILES</item>
       <item>DEPLOYMENT_REMOTE_DIRECTORY</item>
@@ -4012,6 +4048,7 @@
       <item>LINK_OPTIONS</item>
       <item>LINK_SEARCH_END_STATIC</item>
       <item>LINK_SEARCH_START_STATIC</item>
+      <item>LINK_WARNING_AS_ERROR</item>
       <item>LINK_WHAT_YOU_USE</item>
       <item>LOCATION</item>
       <item>MACHO_COMPATIBILITY_VERSION</item>
@@ -4027,6 +4064,7 @@
       <item>MACOSX_RPATH</item>
       <item>MANUALLY_ADDED_DEPENDENCIES</item>
       <item>MSVC_DEBUG_INFORMATION_FORMAT</item>
+      <item>MSVC_RUNTIME_CHECKS</item>
       <item>MSVC_RUNTIME_LIBRARY</item>
       <item>NAME</item>
       <item>NO_SONAME</item>
@@ -4147,10 +4185,12 @@
       <item>XCODE_SCHEME_GUARD_MALLOC</item>
       <item>XCODE_SCHEME_LAUNCH_CONFIGURATION</item>
       <item>XCODE_SCHEME_LAUNCH_MODE</item>
+      <item>XCODE_SCHEME_LLDB_INIT_FILE</item>
       <item>XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
       <item>XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
       <item>XCODE_SCHEME_MALLOC_SCRIBBLE</item>
       <item>XCODE_SCHEME_MALLOC_STACK</item>
+      <item>XCODE_SCHEME_TEST_CONFIGURATION</item>
       <item>XCODE_SCHEME_THREAD_SANITIZER</item>
       <item>XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
       <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
@@ -4192,6 +4232,7 @@
       <item>Swift_DEPENDENCIES_FILE</item>
       <item>Swift_DIAGNOSTICS_FILE</item>
       <item>VS_COPY_TO_OUT_DIR</item>
+      <item>VS_CUSTOM_COMMAND_DISABLE_PARALLEL_BUILD</item>
       <item>VS_DEPLOYMENT_CONTENT</item>
       <item>VS_DEPLOYMENT_LOCATION</item>
       <item>VS_INCLUDE_IN_VSIX</item>
@@ -4412,6 +4453,7 @@
       <item>GET_RELATIVE_PART</item>
       <item>GET_PARENT_PATH</item>
       <item>CMAKE_PATH</item>
+      <item>NATIVE_PATH</item>
       <item>APPEND</item>
       <item>REMOVE_FILENAME</item>
       <item>REPLACE_FILENAME</item>
@@ -4532,7 +4574,6 @@
       <item>Fontconfig</item>
       <item>Freetype</item>
       <item>GCCXML</item>
-      <item>GDAL</item>
       <item>Gettext</item>
       <item>GIF</item>
       <item>Git</item>
@@ -4675,6 +4716,7 @@
       <item>WriteCompilerDetectionHeader</item>
       <item>FindCUDA</item>
       <item>FindDart</item>
+      <item>FindGDAL</item>
       <item>FindPythonInterp</item>
       <item>FindPythonLibs</item>
       <item>FindQt</item>
@@ -4994,6 +5036,7 @@
         <WordDetect String="pkg_get_variable" insensitive="true" attribute="CMake Provided Function/Macro" context="pkg_get_variable_ctx"/>
         <WordDetect String="protobuf_generate_cpp" insensitive="true" attribute="CMake Provided Function/Macro" context="protobuf_generate_cpp_ctx"/>
         <WordDetect String="protobuf_generate_python" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="protobuf_generate" insensitive="true" attribute="CMake Provided Function/Macro" context="protobuf_generate_ctx"/>
         <WordDetect String="Python_add_library" insensitive="true" attribute="CMake Provided Function/Macro" context="Python_add_library_ctx"/>
         <WordDetect String="Subversion_WC_INFO" insensitive="true" attribute="CMake Provided Function/Macro" context="Subversion_WC_INFO_ctx"/>
         <WordDetect String="Subversion_WC_LOG" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
@@ -5002,7 +5045,6 @@
         <DetectChar attribute="Comment" context="Match Comments and Docs" char="#" lookAhead="true"/>
         <DetectIdentifier attribute="User Function/Macro" context="User Function"/>
         <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="block_ctx">
         <DetectChar attribute="Normal Text" context="block_ctx_op" char="("/>
@@ -5492,7 +5534,6 @@
         <RegExpr attribute="Aliased Targets" context="add_custom_target_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="add_custom_target_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op">
         <DetectSpaces/>
@@ -5517,7 +5558,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx">
         <DetectChar attribute="Normal Text" context="add_executable_ctx_op_tgt_first" char="("/>
@@ -5528,7 +5568,6 @@
         <RegExpr attribute="Aliased Targets" context="add_executable_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="add_executable_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx_op">
         <DetectSpaces/>
@@ -5545,7 +5584,6 @@
         <RegExpr attribute="Aliased Targets" context="add_library_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="add_library_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx_op">
         <DetectSpaces/>
@@ -5664,7 +5702,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Args"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx">
         <DetectChar attribute="Normal Text" context="get_source_file_property_ctx_op" char="("/>
@@ -5739,7 +5776,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Args"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx">
         <DetectChar attribute="Normal Text" context="link_directories_ctx_op" char="("/>
@@ -5808,7 +5844,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx_op">
         <DetectSpaces/>
@@ -5848,7 +5883,6 @@
         <RegExpr attribute="Aliased Targets" context="target_compile_definitions_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_compile_definitions_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx_op">
         <DetectSpaces/>
@@ -5865,7 +5899,6 @@
         <RegExpr attribute="Aliased Targets" context="target_compile_features_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_compile_features_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx_op">
         <DetectSpaces/>
@@ -5883,7 +5916,6 @@
         <RegExpr attribute="Aliased Targets" context="target_compile_options_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_compile_options_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx_op">
         <DetectSpaces/>
@@ -5900,7 +5932,6 @@
         <RegExpr attribute="Aliased Targets" context="target_include_directories_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_include_directories_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx_op">
         <DetectSpaces/>
@@ -5917,7 +5948,6 @@
         <RegExpr attribute="Aliased Targets" context="target_link_libraries_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_link_libraries_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx_op">
         <DetectSpaces/>
@@ -5935,7 +5965,6 @@
         <RegExpr attribute="Aliased Targets" context="target_precompile_headers_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_precompile_headers_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx_op">
         <DetectSpaces/>
@@ -5952,7 +5981,6 @@
         <RegExpr attribute="Aliased Targets" context="target_sources_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="target_sources_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx_op">
         <DetectSpaces/>
@@ -6246,7 +6274,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Args"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_push_check_state_ctx">
         <DetectChar attribute="Normal Text" context="cmake_push_check_state_ctx_op" char="("/>
@@ -6490,7 +6517,6 @@
         <RegExpr attribute="Aliased Targets" context="generate_export_header_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="generate_export_header_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="generate_export_header_ctx_op">
         <DetectSpaces/>
@@ -6518,7 +6544,6 @@
         <RegExpr attribute="Aliased Targets" context="gtest_discover_tests_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="gtest_discover_tests_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="gtest_discover_tests_ctx_op">
         <DetectSpaces/>
@@ -6536,7 +6561,6 @@
         <RegExpr attribute="Aliased Targets" context="add_jar_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="add_jar_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="add_jar_ctx_op">
         <DetectSpaces/>
@@ -6553,7 +6577,6 @@
         <RegExpr attribute="Aliased Targets" context="install_jar_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <RegExpr attribute="Targets" context="install_jar_ctx_op" String="&tgt_name_re;"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_ctx_op">
         <DetectSpaces/>
@@ -6590,7 +6613,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Args"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="export_jars_ctx">
         <DetectChar attribute="Normal Text" context="export_jars_ctx_op" char="("/>
@@ -6610,7 +6632,6 @@
         <IncludeRules context="Detect Aliased Targets"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Args"/>
-        <IncludeRules context="LineError"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="find_jar_ctx">
         <DetectChar attribute="Normal Text" context="find_jar_ctx_op" char="("/>
@@ -6782,6 +6803,16 @@
         <keyword attribute="Named Args" context="#stay" String="protobuf_generate_cpp_nargs"/>
         <IncludeRules context="User Function Args"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="protobuf_generate_ctx">
+        <DetectChar attribute="Normal Text" context="protobuf_generate_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="protobuf_generate_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="protobuf_generate_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="Python_add_library_ctx">
         <DetectChar attribute="Normal Text" context="Python_add_library_ctx_op" char="("/>
         <DetectChar attribute="Normal Text" context="#pop" char=")"/>
@@ -6836,8 +6867,8 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
-        <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&var_ref_re;_(COMPILER_(ABI|ARCHITECTURE_ID|VERSION_INTERNAL)|PLATFORM_ID))\b"/>
-        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:&var_ref_re;_(((STATIC_)?LINK_)?LIBRARIES|(BINARY|SOURCE)_DIR|(C|LD)FLAGS(_OTHER)?|(INCLUDE|LIBRARY)_DIRS|CONFIG|CONSIDERED_(CONFIGS|VERSIONS)|DESCRIPTION|FIND_(COMPONENTS|REQUIRED(_&var_ref_re;)?|VERSION_(COMPLETE|COUNT|EXACT|M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?|RANGE(_(MAX|MIN))?)|QUIETLY)|FOUND|HOMEPAGE_URL|IS_TOP_LEVEL|KEYWORDS_MISSING_VALUES|MODULE_NAME|ROOT|UNPARSED_ARGUMENTS|VERSION(_(MAJOR|MINOR|PATCH|TWEAK|COUNT|STRING))?)|&var_ref_re;__TRYRUN_OUTPUT|(DOXYGEN|ExternalData_(CUSTOM_SCRIPT|URL_ALGO)|FETCHCONTENT_(SOURCE_DIR|UPDATES_DISCONNECTED))_&var_ref_re;|ARGV[0-9]+|BISON_&var_ref_re;_(COMPILE_FLAGS|DEFINED|INPUT|OUTPUT(S|_(HEADER|SOURCE)))|Boost_&var_ref_re;_LIBRARY(_(DEBUG|RELEASE))?|CMAKE_(&var_ref_re;_(ANDROID_TOOLCHAIN_((PRE|SUF)FIX|MACHINE)|ARCHIVE_(APPEND|CREATE|FINISH)|BYTE_ORDER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|COMPILER(_(AR|EXTERNAL_TOOLCHAIN|FRONTEND_VARIANT|ID|LAUNCHER|LINKER(_(FRONTEND_VARIANT|ID|VERSION))?|LOADED|PREDEFINES_COMMAND|RANLIB|TARGET|VERSION))?|COMPILE_OBJECT|CPP(CHECK|LINT)|CREATE_(SHARED_(LIBRARY(_ARCHIVE)?|MODULE)|STATIC_LIBRARY)|EXTENSIONS(_DEFAULT)?|FLAGS(_((DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var_ref_re;)(_INIT)?|INIT))?|HOST_COMPILER(_ID)?|IGNORE_EXTENSIONS|IMPLICIT_(INCLUDE_DIRECTORIES|LINK_((FRAMEWORK_)?DIRECTORIES|LIBRARIES))|INCLUDE_WHAT_YOU_USE|LIBRARY_ARCHITECTURE|LINKER_(LAUNCHER|PREFERENCE(_PROPAGATES)?|WRAPPER_FLAG(_SEP)?)|LINK_(EXECUTABLE|GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(FILE_FLAG|FLAG|USING_&var_ref_re;(_SUPPORTED)?)|WHAT_YOU_USE_FLAG)|OUTPUT_EXTENSION|POSTFIX|SIMULATE_(ID|VERSION)|SIZEOF_DATA_PTR|SOURCE_FILE_EXTENSIONS|STANDARD_((INCLUDE_DIRECTO|LIBRA)RIES|DEFAULT|LATEST|LINK_DIRECTORIES)|USING_LINKER_(&var_ref_re;|MODE)|VISIBILITY_PRESET)|((ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY|(DISABLE|REQUIRE)_FIND_PACKAGE|FRAMEWORK_MULTI_CONFIG_POSTFIX|GET_OS_RELEASE_FALLBACK_RESULT|INTERPROCEDURAL_OPTIMIZATION|MAP_IMPORTED_CONFIG|USER_MAKE_RULES_OVERRIDE|XCODE_ATTRIBUTE)_&var_ref_re;|(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var_ref_re;(_INIT)?|LINK_(GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(&var_ref_re;_ATTRIBUTES|USING_&var_ref_re;(_SUPPORTED)?))|PKG_CONFIG_&var_ref_re;_PRIVATE|PROJECT_&var_ref_re;_INCLUDE(_BEFORE)?)|CMAKE_(ARGV|MATCH_)[0-9]+|CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}|CPACK_(&var_ref_re;_COMPONENT_INSTALL|ARCHIVE_&var_ref_re;_FILE_NAME|BINARY_&var_ref_re;|COMPONENT_&var_ref_re;_(DEPENDS|DESCRIPTION|DIS(ABLED|PLAY_NAME)|GROUP|HIDDEN|REQUIRED)|DEBIAN_&var_ref_re;_(DESCRIPTION|FILE_NAME|PACKAGE_((PRE)?DEPENDS|ARCHITECTURE|BREAKS|CONFLICTS|CONTROL_(EXTRA|STRICT_PERMISSION)|ENHANCES|MULTIARCH|NAME|PRIORITY|PROVIDES|RECOMMENDS|REPLACES|SECTION|SHLIBDEPS|SOURCE|SUGGESTS)|DEBUGINFO_PACKAGE)|DMG_&var_ref_re;_FILE_NAME|INNOSETUP_(&var_ref_re;_INSTALL_DIRECTORY|(DEFINE|SETUP)_&var_ref_re;)|NSIS_&var_ref_re;_INSTALL_DIRECTORY|NUGET_(&var_ref_re;_(PACKAGE_(AUTHORS|COPYRIGHT|DEPENDENCIES(_&var_ref_re;)?|DESCRIPTION(_SUMMARY)?|HOMEPAGE_URL|ICON(URL)?|LANGUAGE|LICENSE(URL|_(EXPRESSION|FILE_NAME))|NAME|OWNERS|README|RELEASE_NOTES|TAGS|TFMS|TITLE)|REPOSITORY_(BRANCH|COMMIT|TYPE|URL))|PACKAGE_DEPENDENCIES_&var_ref_re;)|P(RE|OST)FLIGHT_&var_ref_re;_SCRIPT|RPM_(&var_ref_re;_(DEFAULT_((DIR|FILE)_PERMISSIONS|GROUP|USER)|BUILD_SOURCE_DIRS_PREFIX|DEBUGINFO_(FILE_NAME|PACKAGE)|FILE_NAME|PACKAGE_(ARCHITECTURE|AUTO(PROV|REQ(PROV)?)|CONFLICTS|DESCRIPTION|GROUP|NAME|OBSOLETES|PREFIX|PROVIDES|REQUIRES(_P(RE|OST)(UN)?)?|SUGGESTS|SUMMARY|URL)|USER_(FILELIST|BINARY_SPECFILE))|NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION)|WIX_(&var_ref_re;_EXT(ENSIONS|RA_FLAGS)|PROPERTY_&var_ref_re;))|ICU_&var_ref_re;_(LIBRARY|EXECUTABLE)|MPI_&var_ref_re;_(ADDITIONAL_INCLUDE_VARS|COMPILE(R|_(DEFINI|OP)TIONS)|LIB(_NAMES|RARY))|OpenACC_&var_ref_re;_(FLAGS|OPTIONS|SPEC_DATE)|OpenMP_&var_ref_re;_(FLAGS|LIB(_NAMES|RARY)|SPEC_DATE)|SWIG_MODULE_&var_ref_re;_EXTRA_DEPS)\b"/>
+        <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&var_ref_re;_(COMPILER_(ABI|ARCHITECTURE_ID|VERSION_INTERNAL)|PLATFORM_ID|USING_LINKER_MODE))\b"/>
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:&var_ref_re;_(((STATIC_)?LINK_)?LIBRARIES|(BINARY|SOURCE)_DIR|(C|LD)FLAGS(_OTHER)?|(INCLUDE|LIBRARY)_DIRS|CONFIG|CONSIDERED_(CONFIGS|VERSIONS)|DESCRIPTION|FIND_(COMPONENTS|REQUIRED(_&var_ref_re;)?|VERSION_(COMPLETE|COUNT|EXACT|M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?|RANGE(_(MAX|MIN))?)|QUIETLY)|FOUND|HOMEPAGE_URL|IS_TOP_LEVEL|KEYWORDS_MISSING_VALUES|MODULE_NAME|ROOT|UNPARSED_ARGUMENTS|VERSION(_(MAJOR|MINOR|PATCH|TWEAK|COUNT|STRING))?)|&var_ref_re;__TRYRUN_OUTPUT|(DOXYGEN|ExternalData_(CUSTOM_SCRIPT|URL_ALGO)|FETCHCONTENT_(SOURCE_DIR|UPDATES_DISCONNECTED))_&var_ref_re;|ARGV[0-9]+|BISON_&var_ref_re;_(COMPILE_FLAGS|DEFINED|INPUT|OUTPUT(S|_(HEADER|SOURCE)))|Boost_&var_ref_re;_LIBRARY(_(DEBUG|RELEASE))?|CMAKE_(&var_ref_re;_(ANDROID_TOOLCHAIN_((PRE|SUF)FIX|MACHINE)|ARCHIVE_(APPEND|CREATE|FINISH)|BYTE_ORDER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|COMPILER(_(AR|EXTERNAL_TOOLCHAIN|FRONTEND_VARIANT|ID|LAUNCHER|LINKER(_(FRONTEND_VARIANT|ID|VERSION))?|LOADED|PREDEFINES_COMMAND|RANLIB|TARGET|VERSION))?|COMPILE_OBJECT|CPP(CHECK|LINT)|CREATE_(SHARED_(LIBRARY(_ARCHIVE)?|MODULE)|STATIC_LIBRARY)|DEVICE_LINK_MODE|EXTENSIONS(_DEFAULT)?|FLAGS(_((DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var_ref_re;)(_INIT)?|INIT))?|HOST_COMPILER(_ID)?|IGNORE_EXTENSIONS|IMPLICIT_(INCLUDE_DIRECTORIES|LINK_((FRAMEWORK_)?DIRECTORIES|LIBRARIES))|INCLUDE_WHAT_YOU_USE|LIBRARY_ARCHITECTURE|LINKER_(LAUNCHER|PREFERENCE(_PROPAGATES)?|WRAPPER_FLAG(_SEP)?)|LINK_(EXECUTABLE|GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(FILE_FLAG|FLAG|SUFFIX|USING_&var_ref_re;(_SUPPORTED)?)|MODE|WHAT_YOU_USE_FLAG)|OUTPUT_EXTENSION|POSTFIX|SIMULATE_(ID|VERSION)|SIZEOF_DATA_PTR|SOURCE_FILE_EXTENSIONS|STANDARD_((INCLUDE_DIRECTO|LIBRA)RIES|DEFAULT|LATEST|LINK_DIRECTORIES)|USING_LINKER_&var_ref_re;|VISIBILITY_PRESET)|((ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY|(DISABLE|REQUIRE)_FIND_PACKAGE|FRAMEWORK_MULTI_CONFIG_POSTFIX|GET_OS_RELEASE_FALLBACK_RESULT|INTERPROCEDURAL_OPTIMIZATION|MAP_IMPORTED_CONFIG|USER_MAKE_RULES_OVERRIDE|XCODE_ATTRIBUTE)_&var_ref_re;|(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var_ref_re;(_INIT)?|LINK_(GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(&var_ref_re;_ATTRIBUTES|USING_&var_ref_re;(_SUPPORTED)?))|PKG_CONFIG_&var_ref_re;_PRIVATE|PROJECT_&var_ref_re;_INCLUDE(_BEFORE)?)|CMAKE_(ARGV|MATCH_)[0-9]+|CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}|CPACK_(&var_ref_re;_COMPONENT_INSTALL|ARCHIVE_&var_ref_re;_FILE_NAME|BINARY_&var_ref_re;|COMPONENT_&var_ref_re;_(DEPENDS|DESCRIPTION|DIS(ABLED|PLAY_NAME)|GROUP|HIDDEN|REQUIRED)|DEBIAN_&var_ref_re;_(DESCRIPTION|FILE_NAME|PACKAGE_((PRE)?DEPENDS|ARCHITECTURE|BREAKS|CONFLICTS|CONTROL_(EXTRA|STRICT_PERMISSION)|ENHANCES|MULTIARCH|NAME|PRIORITY|PROVIDES|RECOMMENDS|REPLACES|SECTION|SHLIBDEPS|SOURCE|SUGGESTS)|DEBUGINFO_PACKAGE)|DMG_&var_ref_re;_FILE_NAME|INNOSETUP_(&var_ref_re;_INSTALL_DIRECTORY|(DEFINE|SETUP)_&var_ref_re;)|NSIS_&var_ref_re;_INSTALL_DIRECTORY|NUGET_(&var_ref_re;_(PACKAGE_(AUTHORS|COPYRIGHT|DEPENDENCIES(_&var_ref_re;)?|DESCRIPTION(_SUMMARY)?|HOMEPAGE_URL|ICON(URL)?|LANGUAGE|LICENSE(URL|_(EXPRESSION|FILE_NAME))|NAME|OWNERS|README|RELEASE_NOTES|TAGS|TFMS|TITLE)|REPOSITORY_(BRANCH|COMMIT|TYPE|URL))|PACKAGE_DEPENDENCIES_&var_ref_re;)|P(RE|OST)FLIGHT_&var_ref_re;_SCRIPT|RPM_(&var_ref_re;_(DEFAULT_((DIR|FILE)_PERMISSIONS|GROUP|USER)|BUILD_SOURCE_DIRS_PREFIX|DEBUGINFO_(FILE_NAME|PACKAGE)|FILE_NAME|PACKAGE_(ARCHITECTURE|AUTO(PROV|REQ(PROV)?)|CONFLICTS|DESCRIPTION|GROUP|NAME|OBSOLETES|PREFIX|PROVIDES|REQUIRES(_P(RE|OST)(UN)?)?|SUGGESTS|SUMMARY|URL)|USER_(FILELIST|BINARY_SPECFILE))|NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION)|WIX_(&var_ref_re;_EXT(ENSIONS|RA_FLAGS)|PROPERTY_&var_ref_re;))|ICU_&var_ref_re;_(LIBRARY|EXECUTABLE)|MPI_&var_ref_re;_(ADDITIONAL_INCLUDE_VARS|COMPILE(R|_(DEFINI|OP)TIONS)|LIB(_NAMES|RARY))|OpenACC_&var_ref_re;_(FLAGS|OPTIONS|SPEC_DATE)|OpenMP_&var_ref_re;_(FLAGS|LIB(_NAMES|RARY)|SPEC_DATE)|SWIG_MODULE_&var_ref_re;_EXTRA_DEPS)\b"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
@@ -6877,17 +6908,12 @@
         <RegExpr attribute="Aliased Targets" context="#pop" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
         <IncludeRules context="Detect Targets"/>
         <IncludeRules context="User Function Opened"/>
-        <IncludeRules context="LineError"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Targets">
         <RegExpr attribute="Targets" context="#stay" String="&tgt_name_re;"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="LineError">
-        <RegExpr attribute="Error" context="#stay" String=".*"/>
-      </context>
-
       <context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">
         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="("/>
         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")"/>
@@ -7026,7 +7052,6 @@
       <itemData name="Standard Module" defStyleNum="dsImport" spellChecking="false"/>
       <itemData name="Deprecated Module" defStyleNum="dsImport" spellChecking="false"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
-      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
     </itemDatas>
 
   </highlighting>
diff --git a/xml/coffee.xml b/xml/coffee.xml
--- a/xml/coffee.xml
+++ b/xml/coffee.xml
@@ -55,12 +55,9 @@
       <item>delete</item>
       <item>where</item>
       <item>super</item>
-      <item>try</item>
       <item>catch</item>
       <item>finally</item>
       <item>try</item>
-      <item>catch</item>
-      <item>finally</item>
       <item>constructor</item>
     </list>
     <!-- Keywords which are always followed by a class name. -->
diff --git a/xml/commonlisp.xml b/xml/commonlisp.xml
--- a/xml/commonlisp.xml
+++ b/xml/commonlisp.xml
@@ -427,7 +427,6 @@
       <item>initialize-instance</item> 
       <item>inline</item> 
       <item>in-package</item> 
-      <item>in-package</item> 
       <item>input-stream-p</item> 
       <item>inspect</item> 
       <item>int-char</item> 
@@ -520,7 +519,6 @@
       <item>macro-function</item> 
       <item>macrolet</item> 
       <item>make-array</item> 
-      <item>make-array</item> 
       <item>make-broadcast-stream</item> 
       <item>make-char</item> 
       <item>make-concatenated-stream</item> 
@@ -1057,15 +1055,11 @@
     <list name="variables">
       <item>*applyhook*</item>
       <item>*break-on-signals*</item>
-      <item>*break-on-signals*</item>
       <item>*break-on-warnings*</item>
       <item>*compile-file-pathname*</item>
-      <item>*compile-file-pathname*</item>
       <item>*compile-file-truename*</item>
-      <item>*compile-file-truename*</item>
       <item>*compile-print*</item>
       <item>*compile-verbose*</item>
-      <item>*compile-verbose*</item>
       <item>*debugger-hook*</item>
       <item>*debug-io*</item>
       <item>*default-pathname-defaults*</item>
@@ -1090,13 +1084,10 @@
       <item>*print-level*</item>
       <item>*print-lines*</item>
       <item>*print-miser-width*</item>
-      <item>*print-miser-width*</item>
       <item>*print-pprint-dispatch*</item>
-      <item>*print-pprint-dispatch*</item>
       <item>*print-pretty*</item>
       <item>*print-radix*</item>
       <item>*print-readably*</item>
-      <item>*print-right-margin*</item>
       <item>*print-right-margin*</item>
       <item>*query-io*</item>
       <item>*random-state*</item>
diff --git a/xml/cpp.xml b/xml/cpp.xml
--- a/xml/cpp.xml
+++ b/xml/cpp.xml
@@ -121,9 +121,6 @@
     <item>QAXTYPE</item>
     <!-- http://doc.qt.io/qt-5/qdesignercustomwidgetinterface.html#macros -->
     <item>QDESIGNER_WIDGET_EXPORT</item>
-    <!-- http://doc.qt.io/qt-5/qqmlengine.html#macros -->
-    <item>QML_DECLARE_TYPE</item>
-    <item>QML_DECLARE_TYPEINFO</item>
     <!-- http://doc.qt.io/qt-5/qmetaobject.html#macros -->
     <item>Q_ARG</item>
     <item>Q_RETURN_ARG</item>
@@ -366,7 +363,6 @@
     <item>Q_DECL_RELAXED_CONSTEXPR</item>
     <item>Q_DESTRUCTOR_FUNCTION</item>
     <item>Q_DESTRUCTOR_FUNCTION0</item>
-    <item>Q_DISABLE_COPY</item>
     <item>Q_DUMMY_COMPARISON_OPERATOR</item>
     <item>Q_FALLTHROUGH</item>
     <item>Q_FOREACH</item>
@@ -464,6 +460,7 @@
     <item>Q_MOVABLE_TYPE</item>
     <item>Q_DUMMY_TYPE</item>
     <item>Q_RELOCATABLE_TYPE</item>
+    <!-- http://doc.qt.io/qt-5/qqmlengine.html#macros -->
     <!--https://doc.qt.io/qt-6/qqmlengine.html#macros-->
     <item>QML_ADDED_IN_MINOR_VERSION</item>
     <item>QML_ANONYMOUS</item>
@@ -593,7 +590,6 @@
     <item>qRed</item>
     <item>qRgb</item>
     <item>qRgba</item>
-    <item>qRgba</item>
     <item>qRgba64</item>
     <item>qUnpremultiply</item>
     <!-- http://doc.qt.io/qt-5/qcoreapplication.html#related-non-members -->
@@ -1438,7 +1434,6 @@
     <item>QJulianCalendar</item>
     <item>QKeyboardDevice</item>
     <item>QKeyboardHandler</item>
-    <item>QKeyEvent</item>
     <item>QKeyCombination</item>
     <item>QKeyEvent</item>
     <item>QKeyEventTransition</item>
@@ -1603,7 +1598,6 @@
     <item>QMorphTarget</item>
     <item>QMouseDevice</item>
     <item>QMouseEvent</item>
-    <item>QMouseEvent</item>
     <item>QMouseEventTransition</item>
     <item>QMouseHandler</item>
     <item>QMoveEvent</item>
@@ -2693,7 +2687,6 @@
     <item>QWhatsThis</item>
     <item>QWhatsThisClickedEvent</item>
     <item>QWheelEvent</item>
-    <item>QWheelEvent</item>
     <item>QWidget</item>
     <item>QWidgetAction</item>
     <item>QWidgetItem</item>
@@ -2775,7 +2768,6 @@
     <!-- Some public types, but not listed in main class list -->
     <item>QFileInfoList</item>
     <item>QMutableStringListIterator</item>
-    <item>QTouchEventSequence</item>                      <!-- QTest -->
     <item>QStringListIterator</item>
     <item>QStringBuilder</item>
     <!-- Helper classes for C++11-only code, where qOverload (requires C++14) can't be used
diff --git a/xml/djangotemplate.xml b/xml/djangotemplate.xml
--- a/xml/djangotemplate.xml
+++ b/xml/djangotemplate.xml
@@ -4,7 +4,7 @@
 	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
 ]>
-<language name="Django HTML Template" version="8" kateversion="5.79" section="Markup" extensions="*.htm;*.html" mimetype="text/html"  author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
+<language name="Django HTML Template" version="9" kateversion="5.79" section="Markup" extensions="*.htm;*.html" mimetype="text/html"  author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
 
 <!--
     Based off of the katepart html syntax highlighting by Wilbert Berendsen.
@@ -159,8 +159,8 @@
   </context>
 
   <context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Attribute" context="#stay" String="^&name;|\s+&name;" />
     <DetectChar attribute="Attribute" context="Value" char="=" />
+    <RegExpr attribute="Attribute" context="#stay" String="^&name;|\s+&name;" />
   </context>
 
   <context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
@@ -174,14 +174,12 @@
     <IncludeRules context="FindTemplate" />
     <DetectIdentifier/>
     <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
-    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
   </context>
 
   <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
     <DetectSpaces/>
     <DetectIdentifier/>
     <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
-    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
   </context>
 
   <context name="PI" attribute="Normal Text" lineEndContext="#stay">
@@ -217,60 +215,50 @@
     <IncludeRules context="FindPEntityRefs" />
   </context>
 
-  <context name="El Open" attribute="Normal Text" lineEndContext="#stay">
+  <context name="El Open" attribute="Error" lineEndContext="#stay">
     <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
     <DetectChar attribute="Element" context="#pop" char="&gt;" />
     <IncludeRules context="FindAttributes" />
+    <DetectSpaces attribute="Normal Text"/>
     <IncludeRules context="FindTemplate" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
   </context>
 
-  <context name="El Close" attribute="Normal Text" lineEndContext="#stay">
+  <context name="El Close" attribute="Error" lineEndContext="#stay">
     <DetectChar attribute="Element" context="#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Normal Text"/>
   </context>
 
-  <context name="CSS" attribute="Normal Text" lineEndContext="#stay">
+  <context name="CSS" attribute="Error" lineEndContext="#stay">
     <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
     <DetectChar attribute="Element" context="CSS content" char="&gt;" />
     <IncludeRules context="FindAttributes" />
     <IncludeRules context="FindTemplate" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Normal Text"/>
   </context>
 
   <context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
-    <WordDetect attribute="Element" context="El Close 2" String="&lt;/style" insensitive="true" endRegion="style" />
+    <WordDetect attribute="Element" context="#pop#pop!El Close" String="&lt;/style" insensitive="true" endRegion="style" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="##CSS" includeAttrib="true"/>
   </context>
 
-  <context name="JS" attribute="Normal Text" lineEndContext="#stay">
+  <context name="JS" attribute="Error" lineEndContext="#stay">
     <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
     <DetectChar attribute="Element" context="JS content" char="&gt;" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="FindAttributes" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Normal Text"/>
   </context>
 
   <context name="JS content" attribute="Normal Text" lineEndContext="#stay">
-    <WordDetect attribute="Element" context="El Close 2" String="&lt;/script" insensitive="true" endRegion="script" />
+    <WordDetect attribute="Element" context="#pop#pop!El Close" String="&lt;/script" insensitive="true" endRegion="script" />
     <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
   </context>
 
   <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
-    <WordDetect attribute="Element" context="El Close 3" String="&lt;/script" insensitive="true" endRegion="script" />
+    <WordDetect attribute="Element" context="#pop#pop#pop!El Close" String="&lt;/script" insensitive="true" endRegion="script" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="##Comments" />
   </context>
diff --git a/xml/dot.xml b/xml/dot.xml
--- a/xml/dot.xml
+++ b/xml/dot.xml
@@ -74,10 +74,6 @@
       <item>label</item>
       <item>URL</item>
       <!-- Shared attributes (nodes and edges) -->
-      <item>fontcolor</item>
-      <item>fontname</item>
-      <item>fontsize</item>
-      <item>layer</item>
       <item>style</item>
     </list>
 
diff --git a/xml/dtd.xml b/xml/dtd.xml
--- a/xml/dtd.xml
+++ b/xml/dtd.xml
@@ -1,11 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE language[
-  <!ENTITY nmtoken "[\-\w\d\.:_]+">
-  <!ENTITY entref  "(#[0-9]+|#[xX][0-9A-Fa-f]+|&nmtoken;);">
+  <!ENTITY nmtoken "[-\w.:]+">
+  <!ENTITY entity  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&nmtoken;);">
 ]>
-<language name="DTD" version="4" kateversion="5.0" section="Markup" extensions="*.dtd" mimetype="application/xml-dtd" author="Andriy Lesyuk (s-andy@in.if.ua)" license="LGPL">
+<language name="DTD" version="5" kateversion="5.62" section="Markup" extensions="*.dtd" mimetype="application/xml-dtd" author="Andriy Lesyuk (s-andy@in.if.ua)" license="LGPL">
   <highlighting>
 
+    <!--
+      https://www.w3.org/TR/REC-xml/#ext-Subset
+    -->
+
     <list name="Category">
       <item>EMPTY</item>
       <item>ANY</item>
@@ -39,41 +43,82 @@
         <StringDetect attribute="Declaration" context="Declaration" String="&lt;!ATTLIST" beginRegion="declaration" />
         <StringDetect attribute="Declaration" context="Declaration" String="&lt;!NOTATION" beginRegion="declaration" />
         <StringDetect attribute="Declaration" context="Declaration" String="&lt;!ENTITY" beginRegion="declaration" />
+        <RegExpr attribute="Entity" context="#stay" String="%&nmtoken;;" />
+        <StringDetect attribute="Conditional Section" context="conditionalSect" String="&lt;![" beginRegion="section"/>
         <DetectIdentifier />
       </context>
 
       <context name="Comment" attribute="Comment" lineEndContext="#stay">
         <DetectSpaces />
-        <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+        <StringDetect context="EndComment" String="--" lookAhead="1"/>
         <IncludeRules context="##Comments" />
         <DetectIdentifier />
       </context>
+      <context name="EndComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <StringDetect attribute="Comment" context="#pop#pop" String="-->" endRegion="comment" />
+        <DetectChar attribute="Error" char="-" />
+      </context>
 
       <context name="PI" attribute="Other" lineEndContext="#stay">
         <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
       </context>
 
-      <context name="Declaration" attribute="Other" lineEndContext="#stay">
+      <context name="Declaration" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces />
         <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
-        <Detect2Chars attribute="Comment" context="InlineComment" char="-" char1="-" />
         <DetectChar attribute="Declaration" context="#pop" char="&gt;" endRegion="declaration" />
-        <DetectChar attribute="String" context="String" char="&quot;" />
-        <RegExpr attribute="Declaration" context="#stay" String="(-|O)\s(-|O)" />
+        <DetectChar attribute="String" context="StringDQ" char="&quot;" />
+        <DetectChar attribute="String" context="StringSQ" char="'" />
+        <Detect2Chars attribute="Comment" context="InlineComment" char="-" char1="-" />
+        <RegExpr attribute="Declaration" context="#stay" String="[-O]\s[-O]" />
         <AnyChar attribute="Delimiter" context="#stay" String="(|)," />
-        <RegExpr attribute="Entity" context="#stay" String="(%|&amp;)&entref;" />
         <AnyChar attribute="Symbol" context="#stay" String="?*+-&amp;" />
-        <RegExpr attribute="Local" context="#stay" String="%\s" />
+        <IncludeRules context="FindReference"/>
+        <StringDetect attribute="Local" context="#stay" String="% " />
+        <StringDetect attribute="Local" context="#stay" String="%&#9;" />
         <keyword attribute="Keyword" context="#stay" String="Category" />
         <keyword attribute="Keyword" context="#stay" String="Keywords" />
         <RegExpr attribute="Name" context="#stay" String="\b&nmtoken;\b" />
       </context>
 
-      <context name="String" attribute="String" lineEndContext="#stay">
-        <DetectSpaces />
+      <context name="StringDQ" attribute="String" lineEndContext="#stay">
         <DetectChar attribute="String" context="#pop" char="&quot;" />
-        <RegExpr attribute="Entity" context="#stay" String="%&nmtoken;;" />
+        <IncludeRules context="InString"/>
       </context>
 
+      <context name="StringSQ" attribute="String" lineEndContext="#stay">
+        <DetectChar attribute="String" context="#pop" char="'" />
+        <IncludeRules context="InString"/>
+      </context>
+
+      <context name="InString" attribute="String" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <IncludeRules context="FindReference"/>
+      </context>
+
+      <context name="FindReference" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Entity" context="#stay" String="&entity;|%&nmtoken;;" />
+      </context>
+
+      <context name="conditionalSect" attribute="Conditional Section" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <WordDetect attribute="Conditional Section" context="conditionalContraint" String="INCLUDE" />
+        <WordDetect attribute="Conditional Section" context="conditionalContraint" String="IGNORE" />
+        <RegExpr attribute="Entity" context="conditionalContraint" String="%&nmtoken;;" />
+      </context>
+
+      <context name="conditionalContraint" attribute="Conditional Section" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Conditional Section" context="section" char="["/>
+      </context>
+
+      <context name="section" attribute="Normal">
+        <StringDetect attribute="Conditional Section" context="#pop#pop#pop" String="]]>" endRegion="section"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <!-- SGML -->
       <context name="InlineComment" attribute="Comment" lineEndContext="#pop">
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="#pop" char="-" char1="-" />
@@ -96,6 +141,8 @@
       <itemData name="String" defStyleNum="dsString" spellChecking="false" />
       <itemData name="Entity" defStyleNum="dsDecVal" spellChecking="false" />
       <itemData name="Local" defStyleNum="dsDecVal" bold="1" spellChecking="false" />
+      <itemData name="Conditional Section" defStyleNum="dsControlFlow" spellChecking="false" />
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
     </itemDatas>
   </highlighting>
 
diff --git a/xml/fasm.xml b/xml/fasm.xml
--- a/xml/fasm.xml
+++ b/xml/fasm.xml
@@ -186,11 +186,6 @@
       <item>loopz</item>
       <item>loopzd</item>
       <item>loopzw</item>
-      <item>loopnz</item>
-      <item>loopnzd</item>
-      <item>loopnzw</item>
-      <item>loopz</item>
-      <item>loopzw</item>
       <item>ret</item>
       <item>retd</item>
       <item>retf</item>
diff --git a/xml/gd-script.xml b/xml/gd-script.xml
--- a/xml/gd-script.xml
+++ b/xml/gd-script.xml
@@ -60,7 +60,6 @@
             <item>yield</item>
 		</list>
 		<list name="builtinfuncs">
-            <item>min</item>
             <item>Color8</item>
             <item>ColorN</item>
             <item>abs</item>
diff --git a/xml/gleam.xml b/xml/gleam.xml
new file mode 100644
--- /dev/null
+++ b/xml/gleam.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    ==============================================
+     Gleam syntax-highlighting definition for KDE
+    ==============================================
+
+    SPDX-FileCopyrightText: 2024 Louis Guichard <kde@glpda.net>
+    SPDX-License-Identifier: MIT
+
+-->
+<!DOCTYPE language
+[
+	<!ENTITY camel_case "[A-Z][0-9a-zA-Z]*">
+	<!ENTITY snake_case "[_a-z][_0-9a-z]*">
+	<!ENTITY binary_digits "[01]+(?:_[01]+)*">
+	<!ENTITY octal_digits "[0-7]+(?:_[0-7]+)*">
+	<!ENTITY decimal_digits "[0-9]+(?:_[0-9]+)*">
+	<!ENTITY hex_digits "[0-9a-fA-F]+(?:_[0-9a-fA-F]+)*">
+]>
+<language name="Gleam" version="3" kateversion="5.79" section="Sources" extensions="*.gleam" priority="1" indenter="cstyle" license="MIT" author="Louis Guichard (kde@glpda.net)">
+<highlighting>
+	<list name="keywords">
+		<item>as</item>
+		<item>case</item>
+		<item>const</item>
+		<item>echo</item>
+		<item>fn</item>
+		<item>if</item>
+		<item>let</item>
+		<item>opaque</item>
+		<item>pub</item>
+		<item>type</item>
+		<item>use</item>
+	</list>
+	<list name="import keyword">
+		<item>import</item>
+	</list>
+	<list name="crash keywords">
+		<item>assert</item>
+		<item>panic</item>
+		<item>todo</item>
+	</list>
+	<list name="reserved keywords">
+		<item>auto</item>
+		<item>delegate</item>
+		<item>derive</item>
+		<item>else</item>
+		<item>implement</item>
+		<item>macro</item>
+		<item>test</item>
+	</list>
+	<list name="attributes">
+		<item>@deprecated</item>
+		<item>@external</item>
+		<item>@internal</item>
+		<item>@target</item>
+	</list>
+	<list name="bitarrayoptions">
+		<item>size</item>
+		<item>unit</item>
+		<item>bits</item>
+		<item>bytes</item>
+		<item>float</item>
+		<item>int</item>
+		<item>big</item>
+		<item>little</item>
+		<item>native</item>
+		<item>utf8</item>
+		<item>utf16</item>
+		<item>utf32</item>
+		<item>utf8_codepoint</item>
+		<item>utf16_codepoint</item>
+		<item>utf32_codepoint</item>
+		<item>signed</item>
+		<item>unsigned</item>
+	</list>
+	<list name="types">
+		<item>Int</item>
+		<item>Float</item>
+		<!--<item>Infinity</item>-->
+		<!--<item>NaN</item>-->
+		<item>Bool</item>
+		<item>True</item>
+		<item>False</item>
+		<item>Nil</item>
+		<item>Option</item>
+		<item>Some</item>
+		<item>None</item>
+		<item>Result</item>
+		<item>Ok</item>
+		<item>Error</item>
+		<item>String</item>
+		<item>StringBuilder</item>
+		<item>BitArray</item>
+		<item>BytesBuilder</item>
+		<item>List</item>
+		<item>Dict</item>
+		<item>Dynamic</item>
+		<item>Decoder</item>
+		<item>DecodeError</item>
+		<item>DecodeErrors</item>
+		<item>Order</item>
+		<item>Lt</item>
+		<item>Eq</item>
+		<item>Gt</item>
+		<item>InvalidBase</item>
+		<item>Iterator</item>
+		<item>Step</item>
+		<item>Next</item>
+		<item>Done</item>
+		<item>ContinueOrStop</item>
+		<item>Continue</item>
+		<item>Stop</item>
+		<item>Queue</item>
+		<item>Regex</item>
+		<item>CompileError</item>
+		<item>Match</item>
+		<item>Options</item>
+		<item>Set</item>
+		<item>Uri</item>
+	</list>
+	<contexts>
+		<context attribute="Normal Text" lineEndContext="#stay" name="normal text" >
+			<DetectSpaces attribute="Normal Text" />
+			<IncludeRules context="find comments" />
+			<!-- Strings and BitArrays -->
+			<DetectChar attribute="String" context="string" char="&quot;" beginRegion="quotes" />
+			<Detect2Chars attribute="Symbol" context="bitarray" char="&lt;" char1="&lt;" beginRegion="chevrons" />
+			<!-- Keywords -->
+			<keyword attribute="Keyword" context="#stay" String="keywords" />
+			<keyword attribute="Error" context="#stay" String="reserved keywords" />
+			<keyword attribute="Crash" context="#stay" String="crash keywords" />
+			<keyword attribute="Keyword" context="import module" String="import keyword" />
+			<!-- Names -->
+			<keyword attribute="Attribute" context="#stay" String="attributes" />
+			<RegExpr attribute="Error" context="#stay" String="@\w*\b" />
+			<keyword attribute="Type" context="#stay" String="types" />
+			<RegExpr attribute="Type" context="#stay" String="\b&camel_case;\b" />
+			<RegExpr attribute="Function" context="#stay" String="\b&snake_case;(?=\()" />
+			<!-- Numbers -->
+			<RegExpr attribute="Float" context="number suffix error" String="&decimal_digits;\.(?:&decimal_digits;)?(?:e-?&decimal_digits;)?" />
+			<RegExpr attribute="Binary" context="number suffix error" String="\b0[bB]&binary_digits;" />
+			<RegExpr attribute="Octal" context="number suffix error" String="\b0[oO]&octal_digits;" />
+			<RegExpr attribute="Hex" context="number suffix error" String="\b0[xX]&hex_digits;" />
+			<RegExpr attribute="Decimal" context="number suffix error" String="\b&decimal_digits;" />
+			<!-- Symbols -->
+			<DetectChar attribute="Symbol" context="#stay" char="(" beginRegion="round brackets" />
+			<DetectChar attribute="Symbol" context="#stay" char=")" endRegion="round brackets" />
+			<DetectChar attribute="Symbol" context="#stay" char="[" beginRegion="square brackets" />
+			<DetectChar attribute="Symbol" context="#stay" char="]" endRegion="square brackets" />
+			<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="curly brackets" />
+			<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="curly brackets" />
+			<AnyChar String="#:!,.+-*/%&lt;=&gt;|&amp;" attribute="Symbol" context="#stay" />
+			<AnyChar String=";?&apos;~^$\" attribute="Error" context="#stay" />
+		</context>
+		<!-- Strings and BitArrays -->
+		<context attribute="String" lineEndContext="#stay" name="string" >
+			<LineContinue attribute="Error" context="#stay" />
+			<DetectChar attribute="EscapeSequence" context="escape sequence" char="\" />
+			<DetectChar attribute="String" context="#pop" char="&quot;" endRegion="quotes" />
+		</context>
+		<context attribute="EscapeSequence" lineEndContext="#pop!error" fallthroughContext="#pop!error" name="escape sequence" >
+			<AnyChar attribute="EscapeSequence" context="#pop" String="efnrt&quot;\" />
+			<RegExpr attribute="EscapeSequence" context="#pop" String="u\{[0-9a-fA-F]{1,6}\}" />
+			<RegExpr attribute="Error" context="#pop" String="u\{[^}]*\}|[^efnrt&quot;\\]" />
+		</context>
+		<context attribute="Normal Text" lineEndContext="#stay" name="bitarray" >
+			<keyword attribute="BitArrayOption" context="#stay" String="bitarrayoptions" />
+			<Detect2Chars attribute="Symbol" context="#pop" char="&gt;" char1="&gt;" endRegion="chevrons" />
+			<IncludeRules context="normal text" />
+		</context>
+		<!-- Comments -->
+		<context attribute="Normal Text" lineEndContext="#stay" name="find comments" >
+			<StringDetect attribute="Documentation" context="documentation" String="///" />
+			<Detect2Chars attribute="Comment" context="comment" char="/" char1="/" />
+        </context>
+		<context attribute="Comment" lineEndContext="#pop" name="comment" >
+			<DetectSpaces/>
+			<IncludeRules context="##Comments" />
+		</context>
+		<context attribute="Documentation" lineEndContext="#pop" name="documentation" >
+			<!-- TODO documentation use a markdown syntax -->
+		</context>
+		<!-- Imports -->
+		<context attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#stay"  name="import module" fallthroughContext="#pop!error" >
+			<DetectSpaces attribute="Normal Text" />
+			<IncludeRules context="find comments" />
+			<keyword attribute="Error" context="#pop" String="keywords" />
+			<keyword attribute="Error" context="#pop" String="reserved keywords" />
+			<keyword attribute="Error" context="#pop" String="import keyword" />
+			<RegExpr attribute="Module" context="#pop!import suffix" String="&snake_case;(?:/&snake_case;)*\b" />
+		</context>
+		<context attribute="Normal Text" lineEndContext="#stay" name="import suffix" fallthroughContext="#pop#pop" >
+			<DetectSpaces attribute="Normal Text" />
+			<Detect2Chars attribute="Symbol" context="unqualified imports" char="." char1="{" beginRegion="curly brackets" />
+			<WordDetect attribute="Keyword" context="#pop!renamed import" String="as" />
+		</context>
+		<context attribute="Normal Text" lineEndContext="#stay" name="unqualified imports" >
+			<DetectChar attribute="Symbol" context="#pop" char="}" endRegion="curly brackets" />
+			<IncludeRules context="normal text" />
+		</context>
+		<context attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#stay" name="renamed import" fallthroughContext="#pop!error" >
+			<DetectSpaces attribute="Normal Text" />
+			<IncludeRules context="find comments" />
+			<keyword attribute="Error" context="#pop" String="keywords" />
+			<keyword attribute="Error" context="#pop" String="reserved keywords" />
+			<keyword attribute="Error" context="#pop" String="import keyword" />
+			<RegExpr attribute="Module" context="#pop" String="&snake_case;\b" />
+		</context>
+		<!-- Errors -->
+		<context attribute="Error" lineEndContext="#pop" name="error" >
+		</context>
+		<context attribute="Normal Text" lineEndContext="#pop" name="number suffix error" fallthroughContext="#pop" >
+			<RegExpr attribute="Error" String="\w+" context="#pop"/>
+		</context>
+	</contexts>
+	<itemDatas>
+		<itemData name="Normal Text" defStyleNum="dsNormal" />
+		<itemData name="Error" defStyleNum="dsError" />
+		<!-- Strings and BitArrays -->
+		<itemData name="String" defStyleNum="dsString" />
+		<itemData name="EscapeSequence" defStyleNum="dsSpecialChar" />
+		<itemData name="BitArrayOption" defStyleNum="dsSpecialChar" />
+		<!-- Comments -->
+		<itemData name="Comment" defStyleNum="dsComment" />
+		<itemData name="Documentation" defStyleNum="dsDocumentation" />
+		<!-- Keywords -->
+		<itemData name="Keyword" defStyleNum="dsKeyword" />
+		<itemData name="Crash" defStyleNum="dsControlFlow" />
+		<!-- Names -->
+		<itemData name="Attribute" defStyleNum="dsAttribute" />
+		<itemData name="Module" defStyleNum="dsImport" />
+		<itemData name="Function" defStyleNum="dsFunction" />
+		<itemData name="Type" defStyleNum="dsDataType" />
+		<!-- Numbers -->
+		<itemData name="Binary" defStyleNum="dsBaseN" />
+		<itemData name="Octal" defStyleNum="dsBaseN" />
+		<itemData name="Decimal" defStyleNum="dsDecVal" />
+		<itemData name="Hex" defStyleNum="dsBaseN" />
+		<itemData name="Float" defStyleNum="dsFloat" />
+		<!-- Symbols -->
+		<itemData name="Symbol" defStyleNum="dsOperator" />
+	</itemDatas>
+</highlighting>
+<general>
+	<comments>
+		<comment name="singleLine" start="//" position="afterwhitespace"/>
+	</comments>
+	<keywords casesensitive="true"/>
+	<folding indentationsensitive="false"/>
+</general>
+</language>
diff --git a/xml/glsl.xml b/xml/glsl.xml
--- a/xml/glsl.xml
+++ b/xml/glsl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="11" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL" indenter="cstyle">
+<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="12" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL" indenter="cstyle">
 	<!--
 		Based on GLSLangSpec.4.60.pdf
 		https://www.khronos.org/registry/OpenGL/specs/gl/
@@ -189,7 +189,7 @@
 			<item>uimage2D</item>
 
 			<item>usampler2DArray</item>
-			<item>utexture1DArray</item>
+			<item>utexture2DArray</item>
 			<item>uimage2DArray</item>
 
 			<item>usampler2DMS</item>
@@ -292,7 +292,6 @@
 
 			<!-- tesselation -->
 			<item>isolines</item>
-			<item>triangles</item>
 			<item>quads</item>
 			<item>point_mode</item>
 			<item>equal_spacing</item>
@@ -337,7 +336,6 @@
 			<item>atomicCounterXor</item>
 			<item>atomicAdd</item>
 			<item>atomicAnd</item>
-			<item>atomicCompSwap</item>
 			<item>atomicExchange</item>
 			<item>atomicMax</item>
 			<item>atomicMin</item>
@@ -1192,7 +1190,6 @@
 			<item>gl_MultiTexCoord0</item>
 			<item>gl_MultiTexCoord1</item>
 			<item>gl_MultiTexCoord2</item>
-			<item>gl_MultiTexCoord2</item>
 			<item>gl_MultiTexCoord3</item>
 			<item>gl_MultiTexCoord4</item>
 			<item>gl_MultiTexCoord5</item>
@@ -1221,7 +1218,6 @@
 			<item>gl_MaxAtomicCounterBindings</item>
 			<item>gl_MaxAtomicCounterBufferSize</item>
 			<item>gl_MaxClipDistances</item>
-			<item>gl_MaxClipPlanes</item>
 			<item>gl_MaxCombinedAtomicCounterBuffers</item>
 			<item>gl_MaxCombinedAtomicCounters</item>
 			<item>gl_MaxCombinedClipAndCullDistances</item>
@@ -1257,7 +1253,6 @@
 			<item>gl_MaxImageUnits</item>
 			<item>gl_MaxInputAttachments</item>
 			<item>gl_MaxLights</item>
-			<item>gl_MaxPatchVertices</item>
 			<item>gl_MaxProgramTexelOffset</item>
 			<item>gl_MaxSamples</item>
 			<item>gl_MaxTessControlAtomicCounterBuffers</item>
@@ -1277,13 +1272,10 @@
 			<item>gl_MaxTessEvaluationUniformComponents</item>
 			<item>gl_MaxTessGenLevel</item>
 			<item>gl_MaxTessPatchComponents</item>
-			<item>gl_MaxTextureCoords</item>
 			<item>gl_MaxTextureImageUnits</item>
-			<item>gl_MaxTextureUnits</item>
 			<item>gl_MaxTransformFeedbackBuffers</item>
 			<item>gl_MaxTransformFeedbackInterleavedComponents</item>
 			<item>gl_MaxVaryingComponents</item>
-			<item>gl_MaxVaryingFloats</item>
 			<item>gl_MaxVaryingVectors</item>
 			<item>gl_MaxVertexAtomicCounterBuffers</item>
 			<item>gl_MaxVertexAtomicCounters</item>
@@ -1359,8 +1351,6 @@
 			<item>gl_BackSecondaryColor</item>
 			<item>gl_TexCoord</item>
 			<item>gl_FogFragCoord</item>
-			<item>gl_Color</item>
-			<item>gl_SecondaryColor</item>
 		</list>
 		<contexts>
 			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
diff --git a/xml/gnuassembler.xml b/xml/gnuassembler.xml
--- a/xml/gnuassembler.xml
+++ b/xml/gnuassembler.xml
@@ -7,2326 +7,5132 @@
 *               Syntax highlighting for the GNU Assembler               *
 *                   Copyright (C) 2002, John Zaitseff                   *
 *                   Copyright (C) 2021, Waqar Ahmed                     *
-*                                                                       *
-*************************************************************************
-
-Updated:  Waqar Ahmed <waqar.17a@gmail.com>
-Date:     30 April, 2021
-Version:  2.0
-
-Updated:  Miquel Sabaté <mikisabate@gmail.com>
-Date:     14th September, 2010
-Version:  1.02
-
-Updated:  Roland Pabel <roland@pabel.name>
-Date:     15th August, 2002
-Version:  1.01
-
-Author:   John Zaitseff <J.Zaitseff@zap.org.au>
-Date:     15th April, 2002
-Version:  1.0
-
-This file contains the XML syntax highlighting description for the GNU
-Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken
-directly from the GNU Assembler source code (read.c).
-
-Known problems: Floating point highlighting does not work correctly.
-
-This program, including associated files, is free software.  You may
-distribute it and/or modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either Version 2 of
-the license, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
--->
-
-<language name="GNU Assembler" version="9" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) Waqar Ahmed (waqar.17a@gmail.com)" license="GPLv2+">
-  <highlighting>
-    <list name="registers">
-      <!-- General purpose registers -->
-      <item>rax</item>
-      <item>eax</item>
-      <item>ax</item>
-      <item>ah</item>
-      <item>al</item>
-      <item>rbx</item>
-      <item>ebx</item>
-      <item>bx</item>
-      <item>bh</item>
-      <item>bl</item>
-      <item>rcx</item>
-      <item>ecx</item>
-      <item>cx</item>
-      <item>ch</item>
-      <item>cl</item>
-      <item>rdx</item>
-      <item>edx</item>
-      <item>dx</item>
-      <item>dh</item>
-      <item>dl</item>
-      <item>rbp</item>
-      <item>ebp</item>
-      <item>bp</item>
-      <item>bpl</item>
-      <item>rsi</item>
-      <item>esi</item>
-      <item>si</item>
-      <item>sil</item>
-      <item>rdi</item>
-      <item>edi</item>
-      <item>di</item>
-      <item>dil</item>
-
-      <item>rip</item>
-      <item>eip</item>
-      <item>ip</item>
-
-      <item>rsp</item>
-      <item>esp</item>
-      <item>sp</item>
-      <item>spl</item>
-      <item>r8</item>
-      <item>r8d</item>
-      <item>r8w</item>
-      <item>r8b</item>
-      <item>r9</item>
-      <item>r9d</item>
-      <item>r9w</item>
-      <item>r9b</item>
-      <item>r10</item>
-      <item>r10d</item>
-      <item>r10w</item>
-      <item>r10b</item>
-      <item>r11</item>
-      <item>r11d</item>
-      <item>r11w</item>
-      <item>r11b</item>
-      <item>r12</item>
-      <item>r12d</item>
-      <item>r12w</item>
-      <item>r12b</item>
-      <item>r13</item>
-      <item>r13d</item>
-      <item>r13w</item>
-      <item>r13b</item>
-      <item>r14</item>
-      <item>r14d</item>
-      <item>r14w</item>
-      <item>r14b</item>
-      <item>r15</item>
-      <item>r15d</item>
-      <item>r15w</item>
-      <item>r15b</item>
-      <!-- Segmentation registers -->
-      <item>cs</item>
-      <item>ds</item>
-      <item>es</item>
-      <item>fs</item>
-      <item>gs</item>
-      <item>ss</item>
-      <!-- Control registers -->
-      <item>cr0</item>
-      <!--<item>cr1</item>-->
-      <item>cr2</item>
-      <item>cr3</item>
-      <item>cr4</item>
-      <!-- Debug registers -->
-      <item>dr0</item>
-      <item>dr1</item>
-      <item>dr2</item>
-      <item>dr3</item>
-      <item>dr6</item>
-      <item>dr7</item>
-      <!-- x87 FPU Registers -->
-      <item>st</item>
-      <!-- MMX registers -->
-      <item>mm0</item>
-      <item>mm1</item>
-      <item>mm2</item>
-      <item>mm3</item>
-      <item>mm4</item>
-      <item>mm5</item>
-      <item>mm6</item>
-      <item>mm7</item>
-      <!-- XMM registers -->
-      <item>xmm0</item>
-      <item>xmm1</item>
-      <item>xmm2</item>
-      <item>xmm3</item>
-      <item>xmm4</item>
-      <item>xmm5</item>
-      <item>xmm6</item>
-      <item>xmm7</item>
-      <item>xmm8</item>
-      <item>xmm9</item>
-      <item>xmm10</item>
-      <item>xmm11</item>
-      <item>xmm12</item>
-      <item>xmm13</item>
-      <item>xmm14</item>
-      <item>xmm15</item>
-      <item>xmm16</item>
-      <item>xmm17</item>
-      <item>xmm18</item>
-      <item>xmm19</item>
-      <item>xmm20</item>
-      <item>xmm21</item>
-      <item>xmm22</item>
-      <item>xmm23</item>
-      <item>xmm24</item>
-      <item>xmm25</item>
-      <item>xmm26</item>
-      <item>xmm27</item>
-      <item>xmm28</item>
-      <item>xmm29</item>
-      <item>xmm30</item>
-      <item>xmm31</item>
-      <!-- YMM registers -->
-      <item>ymm0</item>
-      <item>ymm1</item>
-      <item>ymm2</item>
-      <item>ymm3</item>
-      <item>ymm4</item>
-      <item>ymm5</item>
-      <item>ymm6</item>
-      <item>ymm7</item>
-      <item>ymm8</item>
-      <item>ymm9</item>
-      <item>ymm10</item>
-      <item>ymm11</item>
-      <item>ymm12</item>
-      <item>ymm13</item>
-      <item>ymm14</item>
-      <item>ymm15</item>
-      <item>ymm16</item>
-      <item>ymm17</item>
-      <item>ymm18</item>
-      <item>ymm19</item>
-      <item>ymm20</item>
-      <item>ymm21</item>
-      <item>ymm22</item>
-      <item>ymm23</item>
-      <item>ymm24</item>
-      <item>ymm25</item>
-      <item>ymm26</item>
-      <item>ymm27</item>
-      <item>ymm28</item>
-      <item>ymm29</item>
-      <item>ymm30</item>
-      <item>ymm31</item>
-      <!-- ZMM registers -->
-      <item>zmm0</item>
-      <item>zmm1</item>
-      <item>zmm2</item>
-      <item>zmm3</item>
-      <item>zmm4</item>
-      <item>zmm5</item>
-      <item>zmm6</item>
-      <item>zmm7</item>
-      <item>zmm8</item>
-      <item>zmm9</item>
-      <item>zmm10</item>
-      <item>zmm11</item>
-      <item>zmm12</item>
-      <item>zmm13</item>
-      <item>zmm14</item>
-      <item>zmm15</item>
-      <item>zmm16</item>
-      <item>zmm17</item>
-      <item>zmm18</item>
-      <item>zmm19</item>
-      <item>zmm20</item>
-      <item>zmm21</item>
-      <item>zmm22</item>
-      <item>zmm23</item>
-      <item>zmm24</item>
-      <item>zmm25</item>
-      <item>zmm26</item>
-      <item>zmm27</item>
-      <item>zmm28</item>
-      <item>zmm29</item>
-      <item>zmm30</item>
-      <item>zmm31</item>
-    </list>
-
-    <list name="instructions">
-      <item>lock</item>
-      <item>rep</item>
-      <item>repe</item>
-      <item>repz</item>
-      <item>repne</item>
-      <item>repnz</item>
-      <item>xaquire</item>
-      <item>xrelease</item>
-      <item>bnd</item>
-      <item>nobnd</item>
-      <item>aaa</item>
-      <item>aad</item>
-      <item>aam</item>
-      <item>aas</item>
-      <item>adc</item>
-      <item>addb</item>
-      <item>addw</item>
-      <item>addl</item>
-      <item>addq</item>
-      <item>and</item>
-      <item>arpl</item>
-      <item>bb0_reset</item>
-      <item>bb1_reset</item>
-      <item>bound</item>
-      <item>bsf</item>
-      <item>bsr</item>
-      <item>bswap</item>
-      <item>bt</item>
-      <item>btc</item>
-      <item>btr</item>
-      <item>bts</item>
-      <item>cbw</item>
-      <item>cdq</item>
-      <item>cdqe</item>
-      <item>clc</item>
-      <item>cld</item>
-      <item>cli</item>
-      <item>clts</item>
-      <item>cltd</item>
-      <item>cbtw</item>
-      <item>cwtl</item>
-      <item>cwtd</item>
-      <item>cltq</item>
-      <item>cqto</item>
-      <item>cmc</item>
-      <item>cmpb</item>
-      <item>cmpw</item>
-      <item>cmpl</item>
-      <item>cmpq</item>
-      <item>cmpsb</item>
-      <item>cmpsd</item>
-      <item>cmpsq</item>
-      <item>cmpsw</item>
-      <item>cmpxchg</item>
-      <item>cmpxchg486</item>
-      <item>cmpxchg8b</item>
-      <item>cmpxchg16b</item>
-      <item>cpuid</item>
-      <item>cpu_read</item>
-      <item>cpu_write</item>
-      <item>cqo</item>
-      <item>cwd</item>
-      <item>cwde</item>
-      <item>daa</item>
-      <item>das</item>
-      <item>dec</item>
-      <item>decl</item>
-      <item>decq</item>
-      <item>div</item>
-      <item>divb</item>
-      <item>divw</item>
-      <item>divl</item>
-      <item>divq</item>
-      <item>dmint</item>
-      <item>emms</item>
-      <item>enter</item>
-      <item>equ</item>
-      <item>f2xm1</item>
-      <item>fabs</item>
-      <item>fadd</item>
-      <item>faddp</item>
-      <item>fbld</item>
-      <item>fbstp</item>
-      <item>fchs</item>
-      <item>fclex</item>
-      <item>fcmovb</item>
-      <item>fcmovbe</item>
-      <item>fcmove</item>
-      <item>fcmovnb</item>
-      <item>fcmovnbe</item>
-      <item>fcmovne</item>
-      <item>fcmovnu</item>
-      <item>fcmovu</item>
-      <item>fcom</item>
-      <item>fcomi</item>
-      <item>fcomip</item>
-      <item>fcomp</item>
-      <item>fcompp</item>
-      <item>fcos</item>
-      <item>fdecstp</item>
-      <item>fdisi</item>
-      <item>fdiv</item>
-      <item>fdivp</item>
-      <item>fdivr</item>
-      <item>fdivrp</item>
-      <item>femms</item>
-      <item>feni</item>
-      <item>ffree</item>
-      <item>ffreep</item>
-      <item>fiadd</item>
-      <item>ficom</item>
-      <item>ficomp</item>
-      <item>fidiv</item>
-      <item>fidivr</item>
-      <item>fild</item>
-      <item>fimul</item>
-      <item>fincstp</item>
-      <item>finit</item>
-      <item>fist</item>
-      <item>fistp</item>
-      <item>fisttp</item>
-      <item>fisub</item>
-      <item>fisubr</item>
-      <item>fld</item>
-      <item>fld1</item>
-      <item>fldcw</item>
-      <item>fldenv</item>
-      <item>fldl2e</item>
-      <item>fldl2t</item>
-      <item>fldlg2</item>
-      <item>fldln2</item>
-      <item>fldpi</item>
-      <item>fldz</item>
-      <item>fmul</item>
-      <item>fmulp</item>
-      <item>fnclex</item>
-      <item>fndisi</item>
-      <item>fneni</item>
-      <item>fninit</item>
-      <item>fnop</item>
-      <item>fnsave</item>
-      <item>fnstcw</item>
-      <item>fnstenv</item>
-      <item>fnstsw</item>
-      <item>fpatan</item>
-      <item>fprem</item>
-      <item>fprem1</item>
-      <item>fptan</item>
-      <item>frndint</item>
-      <item>frstor</item>
-      <item>fsave</item>
-      <item>fscale</item>
-      <item>fsetpm</item>
-      <item>fsin</item>
-      <item>fsincos</item>
-      <item>fsqrt</item>
-      <item>fst</item>
-      <item>fstcw</item>
-      <item>fstenv</item>
-      <item>fstp</item>
-      <item>fstsw</item>
-      <item>fsub</item>
-      <item>fsubp</item>
-      <item>fsubr</item>
-      <item>fsubrp</item>
-      <item>ftst</item>
-      <item>fucom</item>
-      <item>fucomi</item>
-      <item>fucomip</item>
-      <item>fucomp</item>
-      <item>fucompp</item>
-      <item>fxam</item>
-      <item>fxch</item>
-      <item>fxtract</item>
-      <item>fyl2x</item>
-      <item>fyl2xp1</item>
-      <item>global</item>
-      <item>globl</item>
-      <item>hlt</item>
-      <item>ibts</item>
-      <item>icebp</item>
-      <item>idiv</item>
-      <item>idivb</item>
-      <item>idivw</item>
-      <item>idivl</item>
-      <item>idivq</item>
-      <item>imul</item>
-      <item>imulb</item>
-      <item>imulw</item>
-      <item>imull</item>
-      <item>imulq</item>
-      <item>in</item>
-      <item>inc</item>
-      <item>incl</item>
-      <item>incq</item>
-      <item>incbin</item>
-      <item>insb</item>
-      <item>insd</item>
-      <item>insw</item>
-      <item>int</item>
-      <item>int01</item>
-      <item>int1</item>
-      <item>int03</item>
-      <item>int3</item>
-      <item>into</item>
-      <item>invd</item>
-      <item>invpcid</item>
-      <item>invlpg</item>
-      <item>invlpga</item>
-      <item>iret</item>
-      <item>iretd</item>
-      <item>iretq</item>
-      <item>iretw</item>
-      <item>jcxz</item>
-      <item>jecxz</item>
-      <item>jrcxz</item>
-      <item>lahf</item>
-      <item>lar</item>
-      <item>lds</item>
-      <item>leal</item>
-      <item>leaq</item>
-      <item>leave</item>
-      <item>les</item>
-      <item>lfence</item>
-      <item>lfs</item>
-      <item>lgdt</item>
-      <item>lgs</item>
-      <item>lidt</item>
-      <item>lldt</item>
-      <item>lmsw</item>
-      <item>loadall</item>
-      <item>loadall286</item>
-      <item>lodsb</item>
-      <item>lodsd</item>
-      <item>lodsq</item>
-      <item>lodsw</item>
-      <item>loop</item>
-      <item>loope</item>
-      <item>loopne</item>
-      <item>loopnz</item>
-      <item>loopz</item>
-      <item>lsl</item>
-      <item>lss</item>
-      <item>ltr</item>
-      <item>mfence</item>
-      <item>monitor</item>
-      <item>movb</item>
-      <item>movw</item>
-      <item>movl</item>
-      <item>movq</item>
-      <item>movsb</item>
-      <item>movsd</item>
-      <item>movsq</item>
-      <item>movsw</item>
-      <item>movsx</item>
-      <item>movsxd</item>
-      <item>movzx</item>
-      <item>movsbw</item>
-      <item>movsxb</item>
-      <item>movsbl</item>
-      <item>movsbq</item>
-      <item>movswl</item>
-      <item>movsxw</item>
-      <item>movswq</item>
-      <item>movslq</item>
-      <item>movsxl</item>
-      <item>movzbw</item>
-      <item>movzxb</item>
-      <item>movzbl</item>
-      <item>movzbq</item>
-      <item>movzwl</item>
-      <item>movzxw</item>
-      <item>movzwq</item>
-      <item>mul</item>
-      <item>mulb</item>
-      <item>mulw</item>
-      <item>mull</item>
-      <item>mulq</item>
-      <item>mwait</item>
-      <item>neg</item>
-      <item>nop</item>
-      <item>not</item>
-      <item>or</item>
-      <item>out</item>
-      <item>outsb</item>
-      <item>outsd</item>
-      <item>outsw</item>
-      <item>packssdw</item>
-      <item>packsswb</item>
-      <item>packuswb</item>
-      <item>paddb</item>
-      <item>paddd</item>
-      <item>paddsb</item>
-      <item>paddsiw</item>
-      <item>paddsw</item>
-      <item>paddusb</item>
-      <item>paddusw</item>
-      <item>paddw</item>
-      <item>pand</item>
-      <item>pandn</item>
-      <item>pause</item>
-      <item>paveb</item>
-      <item>pavgusb</item>
-      <item>pcmpeqb</item>
-      <item>pcmpeqd</item>
-      <item>pcmpeqw</item>
-      <item>pcmpgtb</item>
-      <item>pcmpgtd</item>
-      <item>pcmpgtw</item>
-      <item>pdistib</item>
-      <item>pf2id</item>
-      <item>pfacc</item>
-      <item>pfadd</item>
-      <item>pfcmpeq</item>
-      <item>pfcmpge</item>
-      <item>pfcmpgt</item>
-      <item>pfmax</item>
-      <item>pfmin</item>
-      <item>pfmul</item>
-      <item>pfrcp</item>
-      <item>pfrcpit1</item>
-      <item>pfrcpit2</item>
-      <item>pfrsqit1</item>
-      <item>pfrsqrt</item>
-      <item>pfsub</item>
-      <item>pfsubr</item>
-      <item>pi2fd</item>
-      <item>pmachriw</item>
-      <item>pmaddwd</item>
-      <item>pmagw</item>
-      <item>pmulhriw</item>
-      <item>pmulhrwa</item>
-      <item>pmulhrwc</item>
-      <item>pmulhw</item>
-      <item>pmullw</item>
-      <item>pmvgezb</item>
-      <item>pmvlzb</item>
-      <item>pmvnzb</item>
-      <item>pmvzb</item>
-      <item>pop</item>
-      <item>popl</item>
-      <item>popq</item>
-      <item>popa</item>
-      <item>popad</item>
-      <item>popaw</item>
-      <item>popf</item>
-      <item>popfd</item>
-      <item>popfq</item>
-      <item>popfw</item>
-      <item>por</item>
-      <item>prefetch</item>
-      <item>prefetchw</item>
-      <item>pslld</item>
-      <item>psllq</item>
-      <item>psllw</item>
-      <item>psrad</item>
-      <item>psraw</item>
-      <item>psrld</item>
-      <item>psrlq</item>
-      <item>psrlw</item>
-      <item>psubb</item>
-      <item>psubd</item>
-      <item>psubsb</item>
-      <item>psubsiw</item>
-      <item>psubsw</item>
-      <item>psubusb</item>
-      <item>psubusw</item>
-      <item>psubw</item>
-      <item>punpckhbw</item>
-      <item>punpckhdq</item>
-      <item>punpckhwd</item>
-      <item>punpcklbw</item>
-      <item>punpckldq</item>
-      <item>punpcklwd</item>
-      <item>push</item>
-      <item>pusha</item>
-      <item>pushl</item>
-      <item>pushq</item>
-      <item>pushad</item>
-      <item>pushaw</item>
-      <item>pushf</item>
-      <item>pushfd</item>
-      <item>pushfq</item>
-      <item>pushfw</item>
-      <item>pxor</item>
-      <item>rcl</item>
-      <item>rcr</item>
-      <item>rdshr</item>
-      <item>rdmsr</item>
-      <item>rdpmc</item>
-      <item>rdtsc</item>
-      <item>rdtscp</item>
-      <item>ret</item>
-      <item>retf</item>
-      <item>retn</item>
-      <item>retq</item>
-      <item>rol</item>
-      <item>ror</item>
-      <item>rdm</item>
-      <item>rsdc</item>
-      <item>rsldt</item>
-      <item>rsm</item>
-      <item>rsts</item>
-      <item>sahf</item>
-      <item>sal</item>
-      <item>sall</item>
-      <item>salq</item>
-      <item>salc</item>
-      <item>sar</item>
-      <item>sarl</item>
-      <item>sarq</item>
-      <item>sbb</item>
-      <item>scasb</item>
-      <item>scasd</item>
-      <item>scasq</item>
-      <item>scasw</item>
-      <item>sfence</item>
-      <item>sgdt</item>
-      <item>shl</item>
-      <item>shll</item>
-      <item>shllq</item>
-      <item>shld</item>
-      <item>shr</item>
-      <item>shrd</item>
-      <item>sidt</item>
-      <item>sldt</item>
-      <item>skinit</item>
-      <item>smi</item>
-      <item>smint</item>
-      <item>smintold</item>
-      <item>smsw</item>
-      <item>stc</item>
-      <item>std</item>
-      <item>sti</item>
-      <item>stosb</item>
-      <item>stosd</item>
-      <item>stosq</item>
-      <item>stosw</item>
-      <item>str</item>
-      <item>sub</item>
-      <item>subw</item>
-      <item>subl</item>
-      <item>subq</item>
-      <item>svdc</item>
-      <item>svldt</item>
-      <item>svts</item>
-      <item>swapgs</item>
-      <item>syscall</item>
-      <item>sysenter</item>
-      <item>sysexit</item>
-      <item>sysret</item>
-      <item>test</item>
-      <item>testl</item>
-      <item>testq</item>
-      <item>ud0</item>
-      <item>ud1</item>
-      <item>ud2b</item>
-      <item>ud2</item>
-      <item>ud2a</item>
-      <item>umov</item>
-      <item>verr</item>
-      <item>verw</item>
-      <item>fwait</item>
-      <item>wbinvd</item>
-      <item>wrshr</item>
-      <item>wrmsr</item>
-      <item>xadd</item>
-      <item>xbts</item>
-      <item>xchg</item>
-      <item>xlatb</item>
-      <item>xlat</item>
-      <item>xor</item>
-      <item>xorl</item>
-      <item>xorq</item>
-      <item>cmove</item>
-      <item>cmovz</item>
-      <item>cmovne</item>
-      <item>cmovnz</item>
-      <item>cmova</item>
-      <item>cmovnbe</item>
-      <item>cmovae</item>
-      <item>cmovnb</item>
-      <item>cmovb</item>
-      <item>cmovnae</item>
-      <item>cmovbe</item>
-      <item>cmovna</item>
-      <item>cmovg</item>
-      <item>cmovnle</item>
-      <item>cmovge</item>
-      <item>cmovnl</item>
-      <item>cmovl</item>
-      <item>cmovnge</item>
-      <item>cmovle</item>
-      <item>cmovng</item>
-      <item>cmovc</item>
-      <item>cmovnc</item>
-      <item>cmovo</item>
-      <item>cmovno</item>
-      <item>cmovs</item>
-      <item>cmovns</item>
-      <item>cmovp</item>
-      <item>cmovpe</item>
-      <item>cmovnp</item>
-      <item>cmovpo</item>
-      <item>sete</item>
-      <item>setz</item>
-      <item>setne</item>
-      <item>setnz</item>
-      <item>seta</item>
-      <item>setnbe</item>
-      <item>setae</item>
-      <item>setnb</item>
-      <item>setnc</item>
-      <item>setb</item>
-      <item>setnae</item>
-      <item>setcset</item>
-      <item>setbe</item>
-      <item>setna</item>
-      <item>setg</item>
-      <item>setnle</item>
-      <item>setge</item>
-      <item>setnl</item>
-      <item>setl</item>
-      <item>setnge</item>
-      <item>setle</item>
-      <item>setng</item>
-      <item>sets</item>
-      <item>setns</item>
-      <item>seto</item>
-      <item>setno</item>
-      <item>setpe</item>
-      <item>setp</item>
-      <item>setpo</item>
-      <item>setnp</item>
-      <item>addps</item>
-      <item>addss</item>
-      <item>andnps</item>
-      <item>andps</item>
-      <item>cmpeqps</item>
-      <item>cmpeqss</item>
-      <item>cmpleps</item>
-      <item>cmpless</item>
-      <item>cmpltps</item>
-      <item>cmpltss</item>
-      <item>cmpneqps</item>
-      <item>cmpneqss</item>
-      <item>cmpnleps</item>
-      <item>cmpnless</item>
-      <item>cmpnltps</item>
-      <item>cmpnltss</item>
-      <item>cmpordps</item>
-      <item>cmpordss</item>
-      <item>cmpunordps</item>
-      <item>cmpunordss</item>
-      <item>cmpps</item>
-      <item>cmpss</item>
-      <item>comiss</item>
-      <item>cvtpi2ps</item>
-      <item>cvtps2pi</item>
-      <item>cvtsi2ss</item>
-      <item>cvtss2si</item>
-      <item>cvttps2pi</item>
-      <item>cvttss2si</item>
-      <item>divps</item>
-      <item>divss</item>
-      <item>ldmxcsr</item>
-      <item>maxps</item>
-      <item>maxss</item>
-      <item>minps</item>
-      <item>minss</item>
-      <item>movaps</item>
-      <item>movhps</item>
-      <item>movlhps</item>
-      <item>movlps</item>
-      <item>movhlps</item>
-      <item>movmskps</item>
-      <item>movntps</item>
-      <item>movss</item>
-      <item>movups</item>
-      <item>mulps</item>
-      <item>mulss</item>
-      <item>orps</item>
-      <item>rcpps</item>
-      <item>rcpss</item>
-      <item>rsqrtps</item>
-      <item>rsqrtss</item>
-      <item>shufps</item>
-      <item>sqrtps</item>
-      <item>sqrtss</item>
-      <item>stmxcsr</item>
-      <item>subps</item>
-      <item>subss</item>
-      <item>ucomiss</item>
-      <item>unpckhps</item>
-      <item>unpcklps</item>
-      <item>xorps</item>
-      <item>fxrstor</item>
-      <item>fxrstor64</item>
-      <item>fxsave</item>
-      <item>fxsave64</item>
-      <item>xgetbv</item>
-      <item>xsetbv</item>
-      <item>xsave</item>
-      <item>xsave64</item>
-      <item>xsaveopt</item>
-      <item>xsaveopt64</item>
-      <item>xrstor</item>
-      <item>xrstor64</item>
-      <item>prefetchnta</item>
-      <item>prefetcht0</item>
-      <item>prefetcht1</item>
-      <item>prefetcht2</item>
-      <item>maskmovq</item>
-      <item>movntq</item>
-      <item>pavgb</item>
-      <item>pavgw</item>
-      <item>pextrw</item>
-      <item>pinsrw</item>
-      <item>pmaxsw</item>
-      <item>pmaxub</item>
-      <item>pminsw</item>
-      <item>pminub</item>
-      <item>pmovmskb</item>
-      <item>pmulhuw</item>
-      <item>psadbw</item>
-      <item>pshufw</item>
-      <item>pf2iw</item>
-      <item>pfnacc</item>
-      <item>pfpnacc</item>
-      <item>pi2fw</item>
-      <item>pswapd</item>
-      <item>maskmovdqu</item>
-      <item>clflush</item>
-      <item>movntdq</item>
-      <item>movnti</item>
-      <item>movntpd</item>
-      <item>movdqa</item>
-      <item>movdqu</item>
-      <item>movdq2q</item>
-      <item>movq2dq</item>
-      <item>paddq</item>
-      <item>pmuludq</item>
-      <item>pshufd</item>
-      <item>pshufhw</item>
-      <item>pshuflw</item>
-      <item>pslldq</item>
-      <item>psrldq</item>
-      <item>psubq</item>
-      <item>punpckhqdq</item>
-      <item>punpcklqdq</item>
-      <item>addpd</item>
-      <item>addsd</item>
-      <item>andnpd</item>
-      <item>andpd</item>
-      <item>cmpeqpd</item>
-      <item>cmpeqsd</item>
-      <item>cmplepd</item>
-      <item>cmplesd</item>
-      <item>cmpltpd</item>
-      <item>cmpltsd</item>
-      <item>cmpneqpd</item>
-      <item>cmpneqsd</item>
-      <item>cmpnlepd</item>
-      <item>cmpnlesd</item>
-      <item>cmpnltpd</item>
-      <item>cmpnltsd</item>
-      <item>cmpordpd</item>
-      <item>cmpordsd</item>
-      <item>cmpunordpd</item>
-      <item>cmpunordsd</item>
-      <item>cmppd</item>
-      <item>comisd</item>
-      <item>cvtdq2pd</item>
-      <item>cvtdq2ps</item>
-      <item>cvtpd2dq</item>
-      <item>cvtpd2pi</item>
-      <item>cvtpd2ps</item>
-      <item>cvtpi2pd</item>
-      <item>cvtps2dq</item>
-      <item>cvtps2pd</item>
-      <item>cvtsd2si</item>
-      <item>cvtsd2ss</item>
-      <item>cvtsi2sd</item>
-      <item>cvtss2sd</item>
-      <item>cvttpd2pi</item>
-      <item>cvttpd2dq</item>
-      <item>cvttps2dq</item>
-      <item>cvttsd2si</item>
-      <item>divpd</item>
-      <item>divsd</item>
-      <item>maxpd</item>
-      <item>maxsd</item>
-      <item>minpd</item>
-      <item>minsd</item>
-      <item>movapd</item>
-      <item>movhpd</item>
-      <item>movlpd</item>
-      <item>movmskpd</item>
-      <item>movupd</item>
-      <item>mulpd</item>
-      <item>mulsd</item>
-      <item>orpd</item>
-      <item>shufpd</item>
-      <item>sqrtpd</item>
-      <item>sqrtsd</item>
-      <item>subpd</item>
-      <item>subsd</item>
-      <item>ucomisd</item>
-      <item>unpckhpd</item>
-      <item>unpcklpd</item>
-      <item>xorpd</item>
-      <item>addsubpd</item>
-      <item>addsubps</item>
-      <item>haddpd</item>
-      <item>haddps</item>
-      <item>hsubpd</item>
-      <item>hsubps</item>
-      <item>lddqu</item>
-      <item>movddup</item>
-      <item>movshdup</item>
-      <item>movsldup</item>
-      <item>clgi</item>
-      <item>stgi</item>
-      <item>vmcall</item>
-      <item>vmclear</item>
-      <item>vmfunc</item>
-      <item>vmlaunch</item>
-      <item>vmload</item>
-      <item>vmmcall</item>
-      <item>vmptrld</item>
-      <item>vmptrst</item>
-      <item>vmread</item>
-      <item>vmresume</item>
-      <item>vmrun</item>
-      <item>vmsave</item>
-      <item>vmwrite</item>
-      <item>vmxoff</item>
-      <item>vmxon</item>
-      <item>invept</item>
-      <item>invvpid</item>
-      <item>pabsb</item>
-      <item>pabsw</item>
-      <item>pabsd</item>
-      <item>palignr</item>
-      <item>phaddw</item>
-      <item>phaddd</item>
-      <item>phaddsw</item>
-      <item>phsubw</item>
-      <item>phsubd</item>
-      <item>phsubsw</item>
-      <item>pmaddubsw</item>
-      <item>pmulhrsw</item>
-      <item>pshufb</item>
-      <item>psignb</item>
-      <item>psignw</item>
-      <item>psignd</item>
-      <item>extrq</item>
-      <item>insertq</item>
-      <item>movntsd</item>
-      <item>movntss</item>
-      <item>lzcnt</item>
-      <item>blendpd</item>
-      <item>blendps</item>
-      <item>blendvpd</item>
-      <item>blendvps</item>
-      <item>dppd</item>
-      <item>dpps</item>
-      <item>extractps</item>
-      <item>insertps</item>
-      <item>movntdqa</item>
-      <item>mpsadbw</item>
-      <item>packusdw</item>
-      <item>pblendvb</item>
-      <item>pblendw</item>
-      <item>pcmpeqq</item>
-      <item>pextrb</item>
-      <item>pextrd</item>
-      <item>pextrq</item>
-      <item>phminposuw</item>
-      <item>pinsrb</item>
-      <item>pinsrd</item>
-      <item>pinsrq</item>
-      <item>pmaxsb</item>
-      <item>pmaxsd</item>
-      <item>pmaxud</item>
-      <item>pmaxuw</item>
-      <item>pminsb</item>
-      <item>pminsd</item>
-      <item>pminud</item>
-      <item>pminuw</item>
-      <item>pmovsxbw</item>
-      <item>pmovsxbd</item>
-      <item>pmovsxbq</item>
-      <item>pmovsxwd</item>
-      <item>pmovsxwq</item>
-      <item>pmovsxdq</item>
-      <item>pmovzxbw</item>
-      <item>pmovzxbd</item>
-      <item>pmovzxbq</item>
-      <item>pmovzxwd</item>
-      <item>pmovzxwq</item>
-      <item>pmovzxdq</item>
-      <item>pmuldq</item>
-      <item>pmulld</item>
-      <item>ptest</item>
-      <item>roundpd</item>
-      <item>roundps</item>
-      <item>roundsd</item>
-      <item>roundss</item>
-      <item>crc32</item>
-      <item>pcmpestri</item>
-      <item>pcmpestrm</item>
-      <item>pcmpistri</item>
-      <item>pcmpistrm</item>
-      <item>pcmpgtq</item>
-      <item>popcnt</item>
-      <item>getsec</item>
-      <item>pfrcpv</item>
-      <item>pfrsqrtv</item>
-      <item>movbe</item>
-      <item>aesenc</item>
-      <item>aesenclast</item>
-      <item>aesdec</item>
-      <item>aesdeclast</item>
-      <item>aesimc</item>
-      <item>aeskeygenassist</item>
-      <item>vaesenc</item>
-      <item>vaesenclast</item>
-      <item>vaesdec</item>
-      <item>vaesdeclast</item>
-      <item>vaesimc</item>
-      <item>vaeskeygenassist</item>
-      <item>vaddpd</item>
-      <item>vaddps</item>
-      <item>vaddsd</item>
-      <item>vaddss</item>
-      <item>vaddsubpd</item>
-      <item>vaddsubps</item>
-      <item>vandpd</item>
-      <item>vandps</item>
-      <item>vandnpd</item>
-      <item>vandnps</item>
-      <item>vblendpd</item>
-      <item>vblendps</item>
-      <item>vblendvpd</item>
-      <item>vblendvps</item>
-      <item>vbroadcastss</item>
-      <item>vbroadcastsd</item>
-      <item>vbroadcastf128</item>
-      <item>vcmpeq_ospd</item>
-      <item>vcmpeqpd</item>
-      <item>vcmplt_ospd</item>
-      <item>vcmpltpd</item>
-      <item>vcmple_ospd</item>
-      <item>vcmplepd</item>
-      <item>vcmpunord_qpd</item>
-      <item>vcmpunordpd</item>
-      <item>vcmpneq_uqpd</item>
-      <item>vcmpneqpd</item>
-      <item>vcmpnlt_uspd</item>
-      <item>vcmpnltpd</item>
-      <item>vcmpnle_uspd</item>
-      <item>vcmpnlepd</item>
-      <item>vcmpord_qpd</item>
-      <item>vcmpordpd</item>
-      <item>vcmpeq_uqpd</item>
-      <item>vcmpnge_uspd</item>
-      <item>vcmpngepd</item>
-      <item>vcmpngt_uspd</item>
-      <item>vcmpngtpd</item>
-      <item>vcmpfalse_oqpd</item>
-      <item>vcmpfalsepd</item>
-      <item>vcmpneq_oqpd</item>
-      <item>vcmpge_ospd</item>
-      <item>vcmpgepd</item>
-      <item>vcmpgt_ospd</item>
-      <item>vcmpgtpd</item>
-      <item>vcmptrue_uqpd</item>
-      <item>vcmptruepd</item>
-      <item>vcmplt_oqpd</item>
-      <item>vcmple_oqpd</item>
-      <item>vcmpunord_spd</item>
-      <item>vcmpneq_uspd</item>
-      <item>vcmpnlt_uqpd</item>
-      <item>vcmpnle_uqpd</item>
-      <item>vcmpord_spd</item>
-      <item>vcmpeq_uspd</item>
-      <item>vcmpnge_uqpd</item>
-      <item>vcmpngt_uqpd</item>
-      <item>vcmpfalse_ospd</item>
-      <item>vcmpneq_ospd</item>
-      <item>vcmpge_oqpd</item>
-      <item>vcmpgt_oqpd</item>
-      <item>vcmptrue_uspd</item>
-      <item>vcmppd</item>
-      <item>vcmpeq_osps</item>
-      <item>vcmpeqps</item>
-      <item>vcmplt_osps</item>
-      <item>vcmpltps</item>
-      <item>vcmple_osps</item>
-      <item>vcmpleps</item>
-      <item>vcmpunord_qps</item>
-      <item>vcmpunordps</item>
-      <item>vcmpneq_uqps</item>
-      <item>vcmpneqps</item>
-      <item>vcmpnlt_usps</item>
-      <item>vcmpnltps</item>
-      <item>vcmpnle_usps</item>
-      <item>vcmpnleps</item>
-      <item>vcmpord_qps</item>
-      <item>vcmpordps</item>
-      <item>vcmpeq_uqps</item>
-      <item>vcmpnge_usps</item>
-      <item>vcmpngeps</item>
-      <item>vcmpngt_usps</item>
-      <item>vcmpngtps</item>
-      <item>vcmpfalse_oqps</item>
-      <item>vcmpfalseps</item>
-      <item>vcmpneq_oqps</item>
-      <item>vcmpge_osps</item>
-      <item>vcmpgeps</item>
-      <item>vcmpgt_osps</item>
-      <item>vcmpgtps</item>
-      <item>vcmptrue_uqps</item>
-      <item>vcmptrueps</item>
-      <item>vcmplt_oqps</item>
-      <item>vcmple_oqps</item>
-      <item>vcmpunord_sps</item>
-      <item>vcmpneq_usps</item>
-      <item>vcmpnlt_uqps</item>
-      <item>vcmpnle_uqps</item>
-      <item>vcmpord_sps</item>
-      <item>vcmpeq_usps</item>
-      <item>vcmpnge_uqps</item>
-      <item>vcmpngt_uqps</item>
-      <item>vcmpfalse_osps</item>
-      <item>vcmpneq_osps</item>
-      <item>vcmpge_oqps</item>
-      <item>vcmpgt_oqps</item>
-      <item>vcmptrue_usps</item>
-      <item>vcmpps</item>
-      <item>vcmpeq_ossd</item>
-      <item>vcmpeqsd</item>
-      <item>vcmplt_ossd</item>
-      <item>vcmpltsd</item>
-      <item>vcmple_ossd</item>
-      <item>vcmplesd</item>
-      <item>vcmpunord_qsd</item>
-      <item>vcmpunordsd</item>
-      <item>vcmpneq_uqsd</item>
-      <item>vcmpneqsd</item>
-      <item>vcmpnlt_ussd</item>
-      <item>vcmpnltsd</item>
-      <item>vcmpnle_ussd</item>
-      <item>vcmpnlesd</item>
-      <item>vcmpord_qsd</item>
-      <item>vcmpordsd</item>
-      <item>vcmpeq_uqsd</item>
-      <item>vcmpnge_ussd</item>
-      <item>vcmpngesd</item>
-      <item>vcmpngt_ussd</item>
-      <item>vcmpngtsd</item>
-      <item>vcmpfalse_oqsd</item>
-      <item>vcmpfalsesd</item>
-      <item>vcmpneq_oqsd</item>
-      <item>vcmpge_ossd</item>
-      <item>vcmpgesd</item>
-      <item>vcmpgt_ossd</item>
-      <item>vcmpgtsd</item>
-      <item>vcmptrue_uqsd</item>
-      <item>vcmptruesd</item>
-      <item>vcmplt_oqsd</item>
-      <item>vcmple_oqsd</item>
-      <item>vcmpunord_ssd</item>
-      <item>vcmpneq_ussd</item>
-      <item>vcmpnlt_uqsd</item>
-      <item>vcmpnle_uqsd</item>
-      <item>vcmpord_ssd</item>
-      <item>vcmpeq_ussd</item>
-      <item>vcmpnge_uqsd</item>
-      <item>vcmpngt_uqsd</item>
-      <item>vcmpfalse_ossd</item>
-      <item>vcmpneq_ossd</item>
-      <item>vcmpge_oqsd</item>
-      <item>vcmpgt_oqsd</item>
-      <item>vcmptrue_ussd</item>
-      <item>vcmpsd</item>
-      <item>vcmpeq_osss</item>
-      <item>vcmpeqss</item>
-      <item>vcmplt_osss</item>
-      <item>vcmpltss</item>
-      <item>vcmple_osss</item>
-      <item>vcmpless</item>
-      <item>vcmpunord_qss</item>
-      <item>vcmpunordss</item>
-      <item>vcmpneq_uqss</item>
-      <item>vcmpneqss</item>
-      <item>vcmpnlt_usss</item>
-      <item>vcmpnltss</item>
-      <item>vcmpnle_usss</item>
-      <item>vcmpnless</item>
-      <item>vcmpord_qss</item>
-      <item>vcmpordss</item>
-      <item>vcmpeq_uqss</item>
-      <item>vcmpnge_usss</item>
-      <item>vcmpngess</item>
-      <item>vcmpngt_usss</item>
-      <item>vcmpngtss</item>
-      <item>vcmpfalse_oqss</item>
-      <item>vcmpfalsess</item>
-      <item>vcmpneq_oqss</item>
-      <item>vcmpge_osss</item>
-      <item>vcmpgess</item>
-      <item>vcmpgt_osss</item>
-      <item>vcmpgtss</item>
-      <item>vcmptrue_uqss</item>
-      <item>vcmptruess</item>
-      <item>vcmplt_oqss</item>
-      <item>vcmple_oqss</item>
-      <item>vcmpunord_sss</item>
-      <item>vcmpneq_usss</item>
-      <item>vcmpnlt_uqss</item>
-      <item>vcmpnle_uqss</item>
-      <item>vcmpord_sss</item>
-      <item>vcmpeq_usss</item>
-      <item>vcmpnge_uqss</item>
-      <item>vcmpngt_uqss</item>
-      <item>vcmpfalse_osss</item>
-      <item>vcmpneq_osss</item>
-      <item>vcmpge_oqss</item>
-      <item>vcmpgt_oqss</item>
-      <item>vcmptrue_usss</item>
-      <item>vcmpss</item>
-      <item>vcomisd</item>
-      <item>vcomiss</item>
-      <item>vcvtdq2pd</item>
-      <item>vcvtdq2ps</item>
-      <item>vcvtpd2dq</item>
-      <item>vcvtpd2ps</item>
-      <item>vcvtps2dq</item>
-      <item>vcvtps2pd</item>
-      <item>vcvtsd2si</item>
-      <item>vcvtsd2ss</item>
-      <item>vcvtsi2sd</item>
-      <item>vcvtsi2ss</item>
-      <item>vcvtss2sd</item>
-      <item>vcvtss2si</item>
-      <item>vcvttpd2dq</item>
-      <item>vcvttps2dq</item>
-      <item>vcvttsd2si</item>
-      <item>vcvttss2si</item>
-      <item>vdivpd</item>
-      <item>vdivps</item>
-      <item>vdivsd</item>
-      <item>vdivss</item>
-      <item>vdppd</item>
-      <item>vdpps</item>
-      <item>vextractf128</item>
-      <item>vextractps</item>
-      <item>vhaddpd</item>
-      <item>vhaddps</item>
-      <item>vhsubpd</item>
-      <item>vhsubps</item>
-      <item>vinsertf128</item>
-      <item>vinsertps</item>
-      <item>vlddqu</item>
-      <item>vldqqu</item>
-      <item>vldmxcsr</item>
-      <item>vmaskmovdqu</item>
-      <item>vmaskmovps</item>
-      <item>vmaskmovpd</item>
-      <item>vmaxpd</item>
-      <item>vmaxps</item>
-      <item>vmaxsd</item>
-      <item>vmaxss</item>
-      <item>vminpd</item>
-      <item>vminps</item>
-      <item>vminsd</item>
-      <item>vminss</item>
-      <item>vmovapd</item>
-      <item>vmovaps</item>
-      <item>vmovd</item>
-      <item>vmovq</item>
-      <item>vmovddup</item>
-      <item>vmovdqa</item>
-      <item>vmovqqa</item>
-      <item>vmovdqu</item>
-      <item>vmovqqu</item>
-      <item>vmovhlps</item>
-      <item>vmovhpd</item>
-      <item>vmovhps</item>
-      <item>vmovlhps</item>
-      <item>vmovlpd</item>
-      <item>vmovlps</item>
-      <item>vmovmskpd</item>
-      <item>vmovmskps</item>
-      <item>vmovntdq</item>
-      <item>vmovntqq</item>
-      <item>vmovntdqa</item>
-      <item>vmovntpd</item>
-      <item>vmovntps</item>
-      <item>vmovsd</item>
-      <item>vmovshdup</item>
-      <item>vmovsldup</item>
-      <item>vmovss</item>
-      <item>vmovupd</item>
-      <item>vmovups</item>
-      <item>vmpsadbw</item>
-      <item>vmulpd</item>
-      <item>vmulps</item>
-      <item>vmulsd</item>
-      <item>vmulss</item>
-      <item>vorpd</item>
-      <item>vorps</item>
-      <item>vpabsb</item>
-      <item>vpabsw</item>
-      <item>vpabsd</item>
-      <item>vpacksswb</item>
-      <item>vpackssdw</item>
-      <item>vpackuswb</item>
-      <item>vpackusdw</item>
-      <item>vpaddb</item>
-      <item>vpaddw</item>
-      <item>vpaddd</item>
-      <item>vpaddq</item>
-      <item>vpaddsb</item>
-      <item>vpaddsw</item>
-      <item>vpaddusb</item>
-      <item>vpaddusw</item>
-      <item>vpalignr</item>
-      <item>vpand</item>
-      <item>vpandn</item>
-      <item>vpavgb</item>
-      <item>vpavgw</item>
-      <item>vpblendvb</item>
-      <item>vpblendw</item>
-      <item>vpcmpestri</item>
-      <item>vpcmpestrm</item>
-      <item>vpcmpistri</item>
-      <item>vpcmpistrm</item>
-      <item>vpcmpeqb</item>
-      <item>vpcmpeqw</item>
-      <item>vpcmpeqd</item>
-      <item>vpcmpeqq</item>
-      <item>vpcmpgtb</item>
-      <item>vpcmpgtw</item>
-      <item>vpcmpgtd</item>
-      <item>vpcmpgtq</item>
-      <item>vpermilpd</item>
-      <item>vpermilps</item>
-      <item>vperm2f128</item>
-      <item>vpextrb</item>
-      <item>vpextrw</item>
-      <item>vpextrd</item>
-      <item>vpextrq</item>
-      <item>vphaddw</item>
-      <item>vphaddd</item>
-      <item>vphaddsw</item>
-      <item>vphminposuw</item>
-      <item>vphsubw</item>
-      <item>vphsubd</item>
-      <item>vphsubsw</item>
-      <item>vpinsrb</item>
-      <item>vpinsrw</item>
-      <item>vpinsrd</item>
-      <item>vpinsrq</item>
-      <item>vpmaddwd</item>
-      <item>vpmaddubsw</item>
-      <item>vpmaxsb</item>
-      <item>vpmaxsw</item>
-      <item>vpmaxsd</item>
-      <item>vpmaxub</item>
-      <item>vpmaxuw</item>
-      <item>vpmaxud</item>
-      <item>vpminsb</item>
-      <item>vpminsw</item>
-      <item>vpminsd</item>
-      <item>vpminub</item>
-      <item>vpminuw</item>
-      <item>vpminud</item>
-      <item>vpmovmskb</item>
-      <item>vpmovsxbw</item>
-      <item>vpmovsxbd</item>
-      <item>vpmovsxbq</item>
-      <item>vpmovsxwd</item>
-      <item>vpmovsxwq</item>
-      <item>vpmovsxdq</item>
-      <item>vpmovzxbw</item>
-      <item>vpmovzxbd</item>
-      <item>vpmovzxbq</item>
-      <item>vpmovzxwd</item>
-      <item>vpmovzxwq</item>
-      <item>vpmovzxdq</item>
-      <item>vpmulhuw</item>
-      <item>vpmulhrsw</item>
-      <item>vpmulhw</item>
-      <item>vpmullw</item>
-      <item>vpmulld</item>
-      <item>vpmuludq</item>
-      <item>vpmuldq</item>
-      <item>vpor</item>
-      <item>vpsadbw</item>
-      <item>vpshufb</item>
-      <item>vpshufd</item>
-      <item>vpshufhw</item>
-      <item>vpshuflw</item>
-      <item>vpsignb</item>
-      <item>vpsignw</item>
-      <item>vpsignd</item>
-      <item>vpslldq</item>
-      <item>vpsrldq</item>
-      <item>vpsllw</item>
-      <item>vpslld</item>
-      <item>vpsllq</item>
-      <item>vpsraw</item>
-      <item>vpsrad</item>
-      <item>vpsrlw</item>
-      <item>vpsrld</item>
-      <item>vpsrlq</item>
-      <item>vptest</item>
-      <item>vpsubb</item>
-      <item>vpsubw</item>
-      <item>vpsubd</item>
-      <item>vpsubq</item>
-      <item>vpsubsb</item>
-      <item>vpsubsw</item>
-      <item>vpsubusb</item>
-      <item>vpsubusw</item>
-      <item>vpunpckhbw</item>
-      <item>vpunpckhwd</item>
-      <item>vpunpckhdq</item>
-      <item>vpunpckhqdq</item>
-      <item>vpunpcklbw</item>
-      <item>vpunpcklwd</item>
-      <item>vpunpckldq</item>
-      <item>vpunpcklqdq</item>
-      <item>vpxor</item>
-      <item>vrcpps</item>
-      <item>vrcpss</item>
-      <item>vrsqrtps</item>
-      <item>vrsqrtss</item>
-      <item>vroundpd</item>
-      <item>vroundps</item>
-      <item>vroundsd</item>
-      <item>vroundss</item>
-      <item>vshufpd</item>
-      <item>vshufps</item>
-      <item>vsqrtpd</item>
-      <item>vsqrtps</item>
-      <item>vsqrtsd</item>
-      <item>vsqrtss</item>
-      <item>vstmxcsr</item>
-      <item>vsubpd</item>
-      <item>vsubps</item>
-      <item>vsubsd</item>
-      <item>vsubss</item>
-      <item>vtestps</item>
-      <item>vtestpd</item>
-      <item>vucomisd</item>
-      <item>vucomiss</item>
-      <item>vunpckhpd</item>
-      <item>vunpckhps</item>
-      <item>vunpcklpd</item>
-      <item>vunpcklps</item>
-      <item>vxorpd</item>
-      <item>vxorps</item>
-      <item>vzeroall</item>
-      <item>vzeroupper</item>
-      <item>pclmullqlqdq</item>
-      <item>pclmulhqlqdq</item>
-      <item>pclmullqhqdq</item>
-      <item>pclmulhqhqdq</item>
-      <item>pclmulqdq</item>
-      <item>vpclmullqlqdq</item>
-      <item>vpclmulhqlqdq</item>
-      <item>vpclmullqhqdq</item>
-      <item>vpclmulhqhqdq</item>
-      <item>vpclmulqdq</item>
-      <item>vfmadd132ps</item>
-      <item>vfmadd132pd</item>
-      <item>vfmadd312ps</item>
-      <item>vfmadd312pd</item>
-      <item>vfmadd213ps</item>
-      <item>vfmadd213pd</item>
-      <item>vfmadd123ps</item>
-      <item>vfmadd123pd</item>
-      <item>vfmadd231ps</item>
-      <item>vfmadd231pd</item>
-      <item>vfmadd321ps</item>
-      <item>vfmadd321pd</item>
-      <item>vfmaddsub132ps</item>
-      <item>vfmaddsub132pd</item>
-      <item>vfmaddsub312ps</item>
-      <item>vfmaddsub312pd</item>
-      <item>vfmaddsub213ps</item>
-      <item>vfmaddsub213pd</item>
-      <item>vfmaddsub123ps</item>
-      <item>vfmaddsub123pd</item>
-      <item>vfmaddsub231ps</item>
-      <item>vfmaddsub231pd</item>
-      <item>vfmaddsub321ps</item>
-      <item>vfmaddsub321pd</item>
-      <item>vfmsub132ps</item>
-      <item>vfmsub132pd</item>
-      <item>vfmsub312ps</item>
-      <item>vfmsub312pd</item>
-      <item>vfmsub213ps</item>
-      <item>vfmsub213pd</item>
-      <item>vfmsub123ps</item>
-      <item>vfmsub123pd</item>
-      <item>vfmsub231ps</item>
-      <item>vfmsub231pd</item>
-      <item>vfmsub321ps</item>
-      <item>vfmsub321pd</item>
-      <item>vfmsubadd132ps</item>
-      <item>vfmsubadd132pd</item>
-      <item>vfmsubadd312ps</item>
-      <item>vfmsubadd312pd</item>
-      <item>vfmsubadd213ps</item>
-      <item>vfmsubadd213pd</item>
-      <item>vfmsubadd123ps</item>
-      <item>vfmsubadd123pd</item>
-      <item>vfmsubadd231ps</item>
-      <item>vfmsubadd231pd</item>
-      <item>vfmsubadd321ps</item>
-      <item>vfmsubadd321pd</item>
-      <item>vfnmadd132ps</item>
-      <item>vfnmadd132pd</item>
-      <item>vfnmadd312ps</item>
-      <item>vfnmadd312pd</item>
-      <item>vfnmadd213ps</item>
-      <item>vfnmadd213pd</item>
-      <item>vfnmadd123ps</item>
-      <item>vfnmadd123pd</item>
-      <item>vfnmadd231ps</item>
-      <item>vfnmadd231pd</item>
-      <item>vfnmadd321ps</item>
-      <item>vfnmadd321pd</item>
-      <item>vfnmsub132ps</item>
-      <item>vfnmsub132pd</item>
-      <item>vfnmsub312ps</item>
-      <item>vfnmsub312pd</item>
-      <item>vfnmsub213ps</item>
-      <item>vfnmsub213pd</item>
-      <item>vfnmsub123ps</item>
-      <item>vfnmsub123pd</item>
-      <item>vfnmsub231ps</item>
-      <item>vfnmsub231pd</item>
-      <item>vfnmsub321ps</item>
-      <item>vfnmsub321pd</item>
-      <item>vfmadd132ss</item>
-      <item>vfmadd132sd</item>
-      <item>vfmadd312ss</item>
-      <item>vfmadd312sd</item>
-      <item>vfmadd213ss</item>
-      <item>vfmadd213sd</item>
-      <item>vfmadd123ss</item>
-      <item>vfmadd123sd</item>
-      <item>vfmadd231ss</item>
-      <item>vfmadd231sd</item>
-      <item>vfmadd321ss</item>
-      <item>vfmadd321sd</item>
-      <item>vfmsub132ss</item>
-      <item>vfmsub132sd</item>
-      <item>vfmsub312ss</item>
-      <item>vfmsub312sd</item>
-      <item>vfmsub213ss</item>
-      <item>vfmsub213sd</item>
-      <item>vfmsub123ss</item>
-      <item>vfmsub123sd</item>
-      <item>vfmsub231ss</item>
-      <item>vfmsub231sd</item>
-      <item>vfmsub321ss</item>
-      <item>vfmsub321sd</item>
-      <item>vfnmadd132ss</item>
-      <item>vfnmadd132sd</item>
-      <item>vfnmadd312ss</item>
-      <item>vfnmadd312sd</item>
-      <item>vfnmadd213ss</item>
-      <item>vfnmadd213sd</item>
-      <item>vfnmadd123ss</item>
-      <item>vfnmadd123sd</item>
-      <item>vfnmadd231ss</item>
-      <item>vfnmadd231sd</item>
-      <item>vfnmadd321ss</item>
-      <item>vfnmadd321sd</item>
-      <item>vfnmsub132ss</item>
-      <item>vfnmsub132sd</item>
-      <item>vfnmsub312ss</item>
-      <item>vfnmsub312sd</item>
-      <item>vfnmsub213ss</item>
-      <item>vfnmsub213sd</item>
-      <item>vfnmsub123ss</item>
-      <item>vfnmsub123sd</item>
-      <item>vfnmsub231ss</item>
-      <item>vfnmsub231sd</item>
-      <item>vfnmsub321ss</item>
-      <item>vfnmsub321sd</item>
-      <item>rdfsbase</item>
-      <item>rdgsbase</item>
-      <item>rdrand</item>
-      <item>wrfsbase</item>
-      <item>wrgsbase</item>
-      <item>vcvtph2ps</item>
-      <item>vcvtps2ph</item>
-      <item>adcx</item>
-      <item>adox</item>
-      <item>rdseed</item>
-      <item>clac</item>
-      <item>stac</item>
-      <item>xstore</item>
-      <item>xcryptecb</item>
-      <item>xcryptcbc</item>
-      <item>xcryptctr</item>
-      <item>xcryptcfb</item>
-      <item>xcryptofb</item>
-      <item>montmul</item>
-      <item>xsha1</item>
-      <item>xsha256</item>
-      <item>llwpcb</item>
-      <item>slwpcb</item>
-      <item>lwpval</item>
-      <item>lwpins</item>
-      <item>vfmaddpd</item>
-      <item>vfmaddps</item>
-      <item>vfmaddsd</item>
-      <item>vfmaddss</item>
-      <item>vfmaddsubpd</item>
-      <item>vfmaddsubps</item>
-      <item>vfmsubaddpd</item>
-      <item>vfmsubaddps</item>
-      <item>vfmsubpd</item>
-      <item>vfmsubps</item>
-      <item>vfmsubsd</item>
-      <item>vfmsubss</item>
-      <item>vfnmaddpd</item>
-      <item>vfnmaddps</item>
-      <item>vfnmaddsd</item>
-      <item>vfnmaddss</item>
-      <item>vfnmsubpd</item>
-      <item>vfnmsubps</item>
-      <item>vfnmsubsd</item>
-      <item>vfnmsubss</item>
-      <item>vfrczpd</item>
-      <item>vfrczps</item>
-      <item>vfrczsd</item>
-      <item>vfrczss</item>
-      <item>vpcmov</item>
-      <item>vpcomb</item>
-      <item>vpcomd</item>
-      <item>vpcomq</item>
-      <item>vpcomub</item>
-      <item>vpcomud</item>
-      <item>vpcomuq</item>
-      <item>vpcomuw</item>
-      <item>vpcomw</item>
-      <item>vphaddbd</item>
-      <item>vphaddbq</item>
-      <item>vphaddbw</item>
-      <item>vphadddq</item>
-      <item>vphaddubd</item>
-      <item>vphaddubq</item>
-      <item>vphaddubw</item>
-      <item>vphaddudq</item>
-      <item>vphadduwd</item>
-      <item>vphadduwq</item>
-      <item>vphaddwd</item>
-      <item>vphaddwq</item>
-      <item>vphsubbw</item>
-      <item>vphsubdq</item>
-      <item>vphsubwd</item>
-      <item>vpmacsdd</item>
-      <item>vpmacsdqh</item>
-      <item>vpmacsdql</item>
-      <item>vpmacssdd</item>
-      <item>vpmacssdqh</item>
-      <item>vpmacssdql</item>
-      <item>vpmacsswd</item>
-      <item>vpmacssww</item>
-      <item>vpmacswd</item>
-      <item>vpmacsww</item>
-      <item>vpmadcsswd</item>
-      <item>vpmadcswd</item>
-      <item>vpperm</item>
-      <item>vprotb</item>
-      <item>vprotd</item>
-      <item>vprotq</item>
-      <item>vprotw</item>
-      <item>vpshab</item>
-      <item>vpshad</item>
-      <item>vpshaq</item>
-      <item>vpshaw</item>
-      <item>vpshlb</item>
-      <item>vpshld</item>
-      <item>vpshlq</item>
-      <item>vpshlw</item>
-      <item>vbroadcasti128</item>
-      <item>vpblendd</item>
-      <item>vpbroadcastb</item>
-      <item>vpbroadcastw</item>
-      <item>vpbroadcastd</item>
-      <item>vpbroadcastq</item>
-      <item>vpermd</item>
-      <item>vpermpd</item>
-      <item>vpermps</item>
-      <item>vpermq</item>
-      <item>vperm2i128</item>
-      <item>vextracti128</item>
-      <item>vinserti128</item>
-      <item>vpmaskmovd</item>
-      <item>vpmaskmovq</item>
-      <item>vpsllvd</item>
-      <item>vpsllvq</item>
-      <item>vpsravd</item>
-      <item>vpsrlvd</item>
-      <item>vpsrlvq</item>
-      <item>vgatherdpd</item>
-      <item>vgatherqpd</item>
-      <item>vgatherdps</item>
-      <item>vgatherqps</item>
-      <item>vpgatherdd</item>
-      <item>vpgatherqd</item>
-      <item>vpgatherdq</item>
-      <item>vpgatherqq</item>
-      <item>xabort</item>
-      <item>xbegin</item>
-      <item>xend</item>
-      <item>xtest</item>
-      <item>andn</item>
-      <item>bextr</item>
-      <item>blci</item>
-      <item>blcic</item>
-      <item>blsi</item>
-      <item>blsic</item>
-      <item>blcfill</item>
-      <item>blsfill</item>
-      <item>blcmsk</item>
-      <item>blsmsk</item>
-      <item>blsr</item>
-      <item>blcs</item>
-      <item>bzhi</item>
-      <item>mulx</item>
-      <item>pdep</item>
-      <item>pext</item>
-      <item>rorx</item>
-      <item>sarx</item>
-      <item>shlx</item>
-      <item>shrx</item>
-      <item>tzcnt</item>
-      <item>tzmsk</item>
-      <item>t1mskc</item>
-      <item>valignd</item>
-      <item>valignq</item>
-      <item>vblendmpd</item>
-      <item>vblendmps</item>
-      <item>vbroadcastf32x4</item>
-      <item>vbroadcastf64x4</item>
-      <item>vbroadcasti32x4</item>
-      <item>vbroadcasti64x4</item>
-      <item>vcompresspd</item>
-      <item>vcompressps</item>
-      <item>vcvtpd2udq</item>
-      <item>vcvtps2udq</item>
-      <item>vcvtsd2usi</item>
-      <item>vcvtss2usi</item>
-      <item>vcvttpd2udq</item>
-      <item>vcvttps2udq</item>
-      <item>vcvttsd2usi</item>
-      <item>vcvttss2usi</item>
-      <item>vcvtudq2pd</item>
-      <item>vcvtudq2ps</item>
-      <item>vcvtusi2sd</item>
-      <item>vcvtusi2ss</item>
-      <item>vexpandpd</item>
-      <item>vexpandps</item>
-      <item>vextractf32x4</item>
-      <item>vextractf64x4</item>
-      <item>vextracti32x4</item>
-      <item>vextracti64x4</item>
-      <item>vfixupimmpd</item>
-      <item>vfixupimmps</item>
-      <item>vfixupimmsd</item>
-      <item>vfixupimmss</item>
-      <item>vgetexppd</item>
-      <item>vgetexpps</item>
-      <item>vgetexpsd</item>
-      <item>vgetexpss</item>
-      <item>vgetmantpd</item>
-      <item>vgetmantps</item>
-      <item>vgetmantsd</item>
-      <item>vgetmantss</item>
-      <item>vinsertf32x4</item>
-      <item>vinsertf64x4</item>
-      <item>vinserti32x4</item>
-      <item>vinserti64x4</item>
-      <item>vmovdqa32</item>
-      <item>vmovdqa64</item>
-      <item>vmovdqu32</item>
-      <item>vmovdqu64</item>
-      <item>vpabsq</item>
-      <item>vpandd</item>
-      <item>vpandnd</item>
-      <item>vpandnq</item>
-      <item>vpandq</item>
-      <item>vpblendmd</item>
-      <item>vpblendmq</item>
-      <item>vpcmpltd</item>
-      <item>vpcmpled</item>
-      <item>vpcmpneqd</item>
-      <item>vpcmpnltd</item>
-      <item>vpcmpnled</item>
-      <item>vpcmpd</item>
-      <item>vpcmpltq</item>
-      <item>vpcmpleq</item>
-      <item>vpcmpneqq</item>
-      <item>vpcmpnltq</item>
-      <item>vpcmpnleq</item>
-      <item>vpcmpq</item>
-      <item>vpcmpequd</item>
-      <item>vpcmpltud</item>
-      <item>vpcmpleud</item>
-      <item>vpcmpnequd</item>
-      <item>vpcmpnltud</item>
-      <item>vpcmpnleud</item>
-      <item>vpcmpud</item>
-      <item>vpcmpequq</item>
-      <item>vpcmpltuq</item>
-      <item>vpcmpleuq</item>
-      <item>vpcmpnequq</item>
-      <item>vpcmpnltuq</item>
-      <item>vpcmpnleuq</item>
-      <item>vpcmpuq</item>
-      <item>vpcompressd</item>
-      <item>vpcompressq</item>
-      <item>vpermi2d</item>
-      <item>vpermi2pd</item>
-      <item>vpermi2ps</item>
-      <item>vpermi2q</item>
-      <item>vpermt2d</item>
-      <item>vpermt2pd</item>
-      <item>vpermt2ps</item>
-      <item>vpermt2q</item>
-      <item>vpexpandd</item>
-      <item>vpexpandq</item>
-      <item>vpmaxsq</item>
-      <item>vpmaxuq</item>
-      <item>vpminsq</item>
-      <item>vpminuq</item>
-      <item>vpmovdb</item>
-      <item>vpmovdw</item>
-      <item>vpmovqb</item>
-      <item>vpmovqd</item>
-      <item>vpmovqw</item>
-      <item>vpmovsdb</item>
-      <item>vpmovsdw</item>
-      <item>vpmovsqb</item>
-      <item>vpmovsqd</item>
-      <item>vpmovsqw</item>
-      <item>vpmovusdb</item>
-      <item>vpmovusdw</item>
-      <item>vpmovusqb</item>
-      <item>vpmovusqd</item>
-      <item>vpmovusqw</item>
-      <item>vpord</item>
-      <item>vporq</item>
-      <item>vprold</item>
-      <item>vprolq</item>
-      <item>vprolvd</item>
-      <item>vprolvq</item>
-      <item>vprord</item>
-      <item>vprorq</item>
-      <item>vprorvd</item>
-      <item>vprorvq</item>
-      <item>vpscatterdd</item>
-      <item>vpscatterdq</item>
-      <item>vpscatterqd</item>
-      <item>vpscatterqq</item>
-      <item>vpsraq</item>
-      <item>vpsravq</item>
-      <item>vpternlogd</item>
-      <item>vpternlogq</item>
-      <item>vptestmd</item>
-      <item>vptestmq</item>
-      <item>vptestnmd</item>
-      <item>vptestnmq</item>
-      <item>vpxord</item>
-      <item>vpxorq</item>
-      <item>vrcp14pd</item>
-      <item>vrcp14ps</item>
-      <item>vrcp14sd</item>
-      <item>vrcp14ss</item>
-      <item>vrndscalepd</item>
-      <item>vrndscaleps</item>
-      <item>vrndscalesd</item>
-      <item>vrndscaless</item>
-      <item>vrsqrt14pd</item>
-      <item>vrsqrt14ps</item>
-      <item>vrsqrt14sd</item>
-      <item>vrsqrt14ss</item>
-      <item>vscalefpd</item>
-      <item>vscalefps</item>
-      <item>vscalefsd</item>
-      <item>vscalefss</item>
-      <item>vscatterdpd</item>
-      <item>vscatterdps</item>
-      <item>vscatterqpd</item>
-      <item>vscatterqps</item>
-      <item>vshuff32x4</item>
-      <item>vshuff64x2</item>
-      <item>vshufi32x4</item>
-      <item>vshufi64x2</item>
-      <item>kandnw</item>
-      <item>kandw</item>
-      <item>kmovw</item>
-      <item>knotw</item>
-      <item>kortestw</item>
-      <item>korw</item>
-      <item>kshiftlw</item>
-      <item>kshiftrw</item>
-      <item>kunpckbw</item>
-      <item>kxnorw</item>
-      <item>kxorw</item>
-      <item>vpbroadcastmb2q</item>
-      <item>vpbroadcastmw2d</item>
-      <item>vpconflictd</item>
-      <item>vpconflictq</item>
-      <item>vplzcntd</item>
-      <item>vplzcntq</item>
-      <item>vexp2pd</item>
-      <item>vexp2ps</item>
-      <item>vrcp28pd</item>
-      <item>vrcp28ps</item>
-      <item>vrcp28sd</item>
-      <item>vrcp28ss</item>
-      <item>vrsqrt28pd</item>
-      <item>vrsqrt28ps</item>
-      <item>vrsqrt28sd</item>
-      <item>vrsqrt28ss</item>
-      <item>vgatherpf0dpd</item>
-      <item>vgatherpf0dps</item>
-      <item>vgatherpf0qpd</item>
-      <item>vgatherpf0qps</item>
-      <item>vgatherpf1dpd</item>
-      <item>vgatherpf1dps</item>
-      <item>vgatherpf1qpd</item>
-      <item>vgatherpf1qps</item>
-      <item>vscatterpf0dpd</item>
-      <item>vscatterpf0dps</item>
-      <item>vscatterpf0qpd</item>
-      <item>vscatterpf0qps</item>
-      <item>vscatterpf1dpd</item>
-      <item>vscatterpf1dps</item>
-      <item>vscatterpf1qpd</item>
-      <item>vscatterpf1qps</item>
-      <item>prefetchwt1</item>
-      <item>bndmk</item>
-      <item>bndcl</item>
-      <item>bndcu</item>
-      <item>bndcn</item>
-      <item>bndmov</item>
-      <item>bndldx</item>
-      <item>bndstx</item>
-      <item>sha1rnds4</item>
-      <item>sha1nexte</item>
-      <item>sha1msg1</item>
-      <item>sha1msg2</item>
-      <item>sha256rnds2</item>
-      <item>sha256msg1</item>
-      <item>sha256msg2</item>
-      <item>hint_nop</item>
-    </list>
-
-    <list name="branch instructions">
-      <item>call</item>
-      <item>callq</item>
-      <item>iret</item>
-      <item>iretd</item>
-      <item>iretq</item>
-      <item>iretw</item>
-      <item>ja</item>
-      <item>jae</item>
-      <item>jb</item>
-      <item>jbe</item>
-      <item>jc</item>
-      <item>jcxz</item>
-      <item>je</item>
-      <item>jecxz</item>
-      <item>jg</item>
-      <item>jge</item>
-      <item>jl</item>
-      <item>jle</item>
-      <item>jmp</item>
-      <item>jmpe</item>
-      <item>jna</item>
-      <item>jnae</item>
-      <item>jnb</item>
-      <item>jnbe</item>
-      <item>jnc</item>
-      <item>jne</item>
-      <item>jng</item>
-      <item>jnge</item>
-      <item>jnl</item>
-      <item>jnle</item>
-      <item>jno</item>
-      <item>jnp</item>
-      <item>jns</item>
-      <item>jnz</item>
-      <item>jo</item>
-      <item>jp</item>
-      <item>jpe</item>
-      <item>jpo</item>
-      <item>jrcxz</item>
-      <item>js</item>
-      <item>jz</item>
-      <item>ret</item>
-      <item>retd</item>
-      <item>retf</item>
-      <item>retfd</item>
-      <item>retfq</item>
-      <item>retfw</item>
-      <item>retn</item>
-      <item>retnd</item>
-      <item>retnq</item>
-      <item>retnw</item>
-      <item>retq</item>
-      <item>retw</item>
-    </list>
-
-    <list name="keywords">
-      <item>.abort</item>
-      <item>.align</item>
-      <item>.app-file</item>
-      <item>.appline</item>
-      <item>.ascii</item>
-      <item>.asciz</item>
-      <item>.att_syntax</item>
-      <item>.balign</item>
-      <item>.balignl</item>
-      <item>.balignw</item>
-      <item>.byte</item>
-      <item>.code16</item>
-      <item>.code32</item>
-      <item>.comm</item>
-      <item>.common.s</item>
-      <item>.common</item>
-      <item>.data</item>
-      <item>.dc.b</item>
-      <item>.dc.d</item>
-      <item>.dc.l</item>
-      <item>.dc.s</item>
-      <item>.dc.w</item>
-      <item>.dc.x</item>
-      <item>.dc</item>
-      <item>.dcb.b</item>
-      <item>.dcb.d</item>
-      <item>.dcb.l</item>
-      <item>.dcb.s</item>
-      <item>.dcb.w</item>
-      <item>.dcb.x</item>
-      <item>.dcb</item>
-      <item>.debug</item>
-      <item>.def</item>
-      <item>.desc</item>
-      <item>.dim</item>
-      <item>.double</item>
-      <item>.ds.b</item>
-      <item>.ds.d</item>
-      <item>.ds.l</item>
-      <item>.ds.p</item>
-      <item>.ds.s</item>
-      <item>.ds.w</item>
-      <item>.ds.x</item>
-      <item>.ds</item>
-      <item>.dsect</item>
-      <item>.eject</item>
-      <item>.else</item>
-      <item>.elsec</item>
-      <item>.elseif</item>
-      <item>.end</item>
-      <item>.endc</item>
-      <item>.endef</item>
-      <item>.endfunc</item>
-      <item>.endif</item>
-      <item>.endm</item>
-      <item>.endr</item>
-      <item>.equ</item>
-      <item>.equiv</item>
-      <item>.err</item>
-      <item>.exitm</item>
-      <item>.extend</item>
-      <item>.extern</item>
-      <item>.fail</item>
-      <item>.file</item>
-      <item>.fill</item>
-      <item>.float</item>
-      <item>.format</item>
-      <item>.func</item>
-      <item>.global</item>
-      <item>.globl</item>
-      <item>.hidden</item>
-      <item>.hword</item>
-      <item>.ident</item>
-      <item>.if</item>
-      <item>.ifc</item>
-      <item>.ifdef</item>
-      <item>.ifeq</item>
-      <item>.ifeqs</item>
-      <item>.ifge</item>
-      <item>.ifgt</item>
-      <item>.ifle</item>
-      <item>.iflt</item>
-      <item>.ifnc</item>
-      <item>.ifndef</item>
-      <item>.ifne</item>
-      <item>.ifnes</item>
-      <item>.ifnotdef</item>
-      <item>.include</item>
-      <item>.int</item>
-      <item>.intel_syntax</item>
-      <item>.internal</item>
-      <item>.irep</item>
-      <item>.irepc</item>
-      <item>.irp</item>
-      <item>.irpc</item>
-      <item>.lcomm</item>
-      <item>.lflags</item>
-      <item>.line</item>
-      <item>.linkonce</item>
-      <item>.list</item>
-      <item>.llen</item>
-      <item>.ln</item>
-      <item>.long</item>
-      <item>.lsym</item>
-      <item>.macro</item>
-      <item>.mexit</item>
-      <item>.name</item>
-      <item>.noformat</item>
-      <item>.nolist</item>
-      <item>.nopage</item>
-      <item>noprefix</item>
-      <item>.octa</item>
-      <item>.offset</item>
-      <item>.org</item>
-      <item>.p2align</item>
-      <item>.p2alignl</item>
-      <item>.p2alignw</item>
-      <item>.page</item>
-      <item>.plen</item>
-      <item>.popsection</item>
-      <item>.previous</item>
-      <item>.print</item>
-      <item>.protected</item>
-      <item>.psize</item>
-      <item>.purgem</item>
-      <item>.pushsection</item>
-      <item>.quad</item>
-      <item>.rodata</item>
-      <item>.rep</item>
-      <item>.rept</item>
-      <item>.rva</item>
-      <item>.sbttl</item>
-      <item>.scl</item>
-      <item>.sect.s</item>
-      <item>.sect</item>
-      <item>.section.s</item>
-      <item>.section</item>
-      <item>.set</item>
-      <item>.short</item>
-      <item>.single</item>
-      <item>.size</item>
-      <item>.skip</item>
-      <item>.sleb128</item>
-      <item>.space</item>
-      <item>.spc</item>
-      <item>.stabd</item>
-      <item>.stabn</item>
-      <item>.stabs</item>
-      <item>.string</item>
-      <item>.struct</item>
-      <item>.subsection</item>
-      <item>.symver</item>
-      <item>.tag</item>
-      <item>.text</item>
-      <item>.title</item>
-      <item>.ttl</item>
-      <item>.type</item>
-      <item>.uleb128</item>
-      <item>.use</item>
-      <item>.val</item>
-      <item>.version</item>
-      <item>.vtable_entry</item>
-      <item>.vtable_inherit</item>
-      <item>.weak</item>
-      <item>.word</item>
-      <item>.xcom</item>
-      <item>.xdef</item>
-      <item>.xref</item>
-      <item>.xstabs</item>
-      <item>.zero</item>
-      <!-- Directives specific to ARM -->
-      <item>.arm</item>
-      <item>.bss</item>
-      <item>.code</item>
-      <item>.even</item>
-      <item>.force_thumb</item>
-      <item>.ldouble</item>
-      <item>.loc</item>
-      <item>.ltorg</item>
-      <item>.packed</item>
-      <item>.pool</item>
-      <item>.req</item>
-      <item>.thumb</item>
-      <item>.thumb_func</item>
-      <item>.thumb_set</item>
-    </list>
-
-    <contexts>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
-        <RegExpr      attribute="Label" context="#stay" String="[\.]?[_\w\d-]*\s*:" />
-        <keyword      attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword      attribute="Registers" context="#stay" String="registers"/>
-        <keyword      attribute="Instructions" context="#stay" String="instructions"/>
-        <keyword      attribute="Branch Instructions" context="#stay" String="branch instructions"/>
-        <HlCOct       attribute="Octal" context="#stay" />
-        <HlCHex       attribute="Hex" context="#stay" />
-        <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />
-        <Int          attribute="Decimal" context="#stay" />
-        <RegExpr      attribute="Decimal" context="#stay" String="\$[0-9]+" />
-        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />
-        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
-        <HlCChar      attribute="Char" context="#stay" />
-        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />
-        <DetectChar   attribute="String" context="String" char="&quot;" />
-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
-        <RegExpr      attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" firstNonSpace="true" />
-        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" beginRegion="BlockComment" />
-        <AnyChar      attribute="Comment" context="Commentar 2" String="@;#" />
-        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~" />
-      </context>
-      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
-      </context>
-      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" >
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
-      </context>
-      <context attribute="String" lineEndContext="#pop" name="String">
-        <LineContinue  attribute="String" context="Some Context" />
-        <HlCStringChar attribute="String Char" context="#stay" />
-        <DetectChar    attribute="String" context="#pop" char="&quot;" />
-      </context>
-      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />
-      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
-        <LineContinue attribute="Preprocessor" context="#stay"/>
-      </context>
-      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />
-    </contexts>
-
-    <itemDatas>
-      <itemData name="Normal Text"  defStyleNum="dsNormal"   />
-      <itemData name="Label"        defStyleNum="dsFunction"  />
-      <itemData name="Keyword"      defStyleNum="dsKeyword"  />
-      <itemData name="Registers"    defStyleNum="dsKeyword"  />
-      <itemData name="Instructions" defStyleNum="dsKeyword"  />
-      <itemData name="Branch Instructions" defStyleNum="dsControlFlow"  />
+*                   Copyright (C) 2025, Jure Repinc                     *
+*                                                                       *
+*************************************************************************
+
+Updated:  Jure Repinc <jlp@holodeck1.com>
+Date:     17 April, 2025
+Version:  10
+
+Updated:  Waqar Ahmed <waqar.17a@gmail.com>
+Date:     30 April, 2021
+Version:  2.0
+
+Updated:  Miquel Sabaté <mikisabate@gmail.com>
+Date:     14th September, 2010
+Version:  1.02
+
+Updated:  Roland Pabel <roland@pabel.name>
+Date:     15th August, 2002
+Version:  1.01
+
+Author:   John Zaitseff <J.Zaitseff@zap.org.au>
+Date:     15th April, 2002
+Version:  1.0
+
+This file contains the XML syntax highlighting description for the GNU
+Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken
+directly from the GNU Assembler source code (read.c).
+
+Known problems: Floating point highlighting does not work correctly.
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+-->
+
+<language name="GNU Assembler" version="10" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) Waqar Ahmed (waqar.17a@gmail.com), Jure Repinc (jlp@holodeck1.com)" license="GPLv2+">
+  <highlighting>
+    <list name="registers">
+      <!-- General purpose registers -->
+      <item>rax</item>
+      <item>eax</item>
+      <item>ax</item>
+      <item>ah</item>
+      <item>al</item>
+      <item>rbx</item>
+      <item>ebx</item>
+      <item>bx</item>
+      <item>bh</item>
+      <item>bl</item>
+      <item>rcx</item>
+      <item>ecx</item>
+      <item>cx</item>
+      <item>ch</item>
+      <item>cl</item>
+      <item>rdx</item>
+      <item>edx</item>
+      <item>dx</item>
+      <item>dh</item>
+      <item>dl</item>
+      <item>rbp</item>
+      <item>ebp</item>
+      <item>bp</item>
+      <item>bpl</item>
+      <item>rsi</item>
+      <item>esi</item>
+      <item>si</item>
+      <item>sil</item>
+      <item>rdi</item>
+      <item>edi</item>
+      <item>di</item>
+      <item>dil</item>
+
+      <item>rip</item>
+      <item>eip</item>
+      <item>ip</item>
+
+      <item>rsp</item>
+      <item>esp</item>
+      <item>sp</item>
+      <item>spl</item>
+      <item>r8</item>
+      <item>r8d</item>
+      <item>r8w</item>
+      <item>r8b</item>
+      <item>r9</item>
+      <item>r9d</item>
+      <item>r9w</item>
+      <item>r9b</item>
+      <item>r10</item>
+      <item>r10d</item>
+      <item>r10w</item>
+      <item>r10b</item>
+      <item>r11</item>
+      <item>r11d</item>
+      <item>r11w</item>
+      <item>r11b</item>
+      <item>r12</item>
+      <item>r12d</item>
+      <item>r12w</item>
+      <item>r12b</item>
+      <item>r13</item>
+      <item>r13d</item>
+      <item>r13w</item>
+      <item>r13b</item>
+      <item>r14</item>
+      <item>r14d</item>
+      <item>r14w</item>
+      <item>r14b</item>
+      <item>r15</item>
+      <item>r15d</item>
+      <item>r15w</item>
+      <item>r15b</item>
+      <!-- Segmentation registers -->
+      <item>cs</item>
+      <item>ds</item>
+      <item>es</item>
+      <item>fs</item>
+      <item>gs</item>
+      <item>ss</item>
+      <!-- Control registers -->
+      <item>cr0</item>
+      <!--<item>cr1</item>-->
+      <item>cr2</item>
+      <item>cr3</item>
+      <item>cr4</item>
+      <!-- Debug registers -->
+      <item>dr0</item>
+      <item>dr1</item>
+      <item>dr2</item>
+      <item>dr3</item>
+      <item>dr6</item>
+      <item>dr7</item>
+      <!-- x87 FPU Registers -->
+      <item>st</item>
+      <!-- MMX registers -->
+      <item>mm0</item>
+      <item>mm1</item>
+      <item>mm2</item>
+      <item>mm3</item>
+      <item>mm4</item>
+      <item>mm5</item>
+      <item>mm6</item>
+      <item>mm7</item>
+      <!-- XMM registers -->
+      <item>xmm0</item>
+      <item>xmm1</item>
+      <item>xmm2</item>
+      <item>xmm3</item>
+      <item>xmm4</item>
+      <item>xmm5</item>
+      <item>xmm6</item>
+      <item>xmm7</item>
+      <item>xmm8</item>
+      <item>xmm9</item>
+      <item>xmm10</item>
+      <item>xmm11</item>
+      <item>xmm12</item>
+      <item>xmm13</item>
+      <item>xmm14</item>
+      <item>xmm15</item>
+      <item>xmm16</item>
+      <item>xmm17</item>
+      <item>xmm18</item>
+      <item>xmm19</item>
+      <item>xmm20</item>
+      <item>xmm21</item>
+      <item>xmm22</item>
+      <item>xmm23</item>
+      <item>xmm24</item>
+      <item>xmm25</item>
+      <item>xmm26</item>
+      <item>xmm27</item>
+      <item>xmm28</item>
+      <item>xmm29</item>
+      <item>xmm30</item>
+      <item>xmm31</item>
+      <!-- YMM registers -->
+      <item>ymm0</item>
+      <item>ymm1</item>
+      <item>ymm2</item>
+      <item>ymm3</item>
+      <item>ymm4</item>
+      <item>ymm5</item>
+      <item>ymm6</item>
+      <item>ymm7</item>
+      <item>ymm8</item>
+      <item>ymm9</item>
+      <item>ymm10</item>
+      <item>ymm11</item>
+      <item>ymm12</item>
+      <item>ymm13</item>
+      <item>ymm14</item>
+      <item>ymm15</item>
+      <item>ymm16</item>
+      <item>ymm17</item>
+      <item>ymm18</item>
+      <item>ymm19</item>
+      <item>ymm20</item>
+      <item>ymm21</item>
+      <item>ymm22</item>
+      <item>ymm23</item>
+      <item>ymm24</item>
+      <item>ymm25</item>
+      <item>ymm26</item>
+      <item>ymm27</item>
+      <item>ymm28</item>
+      <item>ymm29</item>
+      <item>ymm30</item>
+      <item>ymm31</item>
+      <!-- ZMM registers -->
+      <item>zmm0</item>
+      <item>zmm1</item>
+      <item>zmm2</item>
+      <item>zmm3</item>
+      <item>zmm4</item>
+      <item>zmm5</item>
+      <item>zmm6</item>
+      <item>zmm7</item>
+      <item>zmm8</item>
+      <item>zmm9</item>
+      <item>zmm10</item>
+      <item>zmm11</item>
+      <item>zmm12</item>
+      <item>zmm13</item>
+      <item>zmm14</item>
+      <item>zmm15</item>
+      <item>zmm16</item>
+      <item>zmm17</item>
+      <item>zmm18</item>
+      <item>zmm19</item>
+      <item>zmm20</item>
+      <item>zmm21</item>
+      <item>zmm22</item>
+      <item>zmm23</item>
+      <item>zmm24</item>
+      <item>zmm25</item>
+      <item>zmm26</item>
+      <item>zmm27</item>
+      <item>zmm28</item>
+      <item>zmm29</item>
+      <item>zmm30</item>
+      <item>zmm31</item>
+
+      <!-- RISC-V general purpose registers -->
+      <item>x0</item>   <item>zero</item>
+      <item>x1</item>   <item>ra</item>
+      <item>x2</item>   <!-- sp already listed -->
+      <item>x3</item>   <item>gp</item>
+      <item>x4</item>   <item>tp</item>
+      <item>x5</item>   <item>t0</item>
+      <item>x6</item>   <item>t1</item>
+      <item>x7</item>   <item>t2</item>
+      <item>x8</item>   <item>s0</item>
+      <item>x9</item>   <item>s1</item>
+      <item>x10</item>  <item>a0</item>
+      <item>x11</item>  <item>a1</item>
+      <item>x12</item>  <item>a2</item>
+      <item>x13</item>  <item>a3</item>
+      <item>x14</item>  <item>a4</item>
+      <item>x15</item>  <item>a5</item>
+      <item>x16</item>  <item>a6</item>
+      <item>x17</item>  <item>a7</item>
+      <item>x18</item>  <item>s2</item>
+      <item>x19</item>  <item>s3</item>
+      <item>x20</item>  <item>s4</item>
+      <item>x21</item>  <item>s5</item>
+      <item>x22</item>  <item>s6</item>
+      <item>x23</item>  <item>s7</item>
+      <item>x24</item>  <item>s8</item>
+      <item>x25</item>  <item>s9</item>
+      <item>x26</item>  <item>s10</item>
+      <item>x27</item>  <item>s11</item>
+      <item>x28</item>  <item>t3</item>
+      <item>x29</item>  <item>t4</item>
+      <item>x30</item>  <item>t5</item>
+      <item>x31</item>  <item>t6</item>
+      <!-- RISC-V floating point registers -->
+      <item>f0</item>   <item>ft0</item>
+      <item>f1</item>   <item>ft1</item>
+      <item>f2</item>   <item>ft2</item>
+      <item>f3</item>   <item>ft3</item>
+      <item>f4</item>   <item>ft4</item>
+      <item>f5</item>   <item>ft5</item>
+      <item>f6</item>   <item>ft6</item>
+      <item>f7</item>   <item>ft7</item>
+      <item>f8</item>   <item>fs0</item>
+      <item>f9</item>   <item>fs1</item>
+      <item>f10</item>  <item>fa0</item>
+      <item>f11</item>  <item>fa1</item>
+      <item>f12</item>  <item>fa2</item>
+      <item>f13</item>  <item>fa3</item>
+      <item>f14</item>  <item>fa4</item>
+      <item>f15</item>  <item>fa5</item>
+      <item>f16</item>  <item>fa6</item>
+      <item>f17</item>  <item>fa7</item>
+      <item>f18</item>  <item>fs2</item>
+      <item>f19</item>  <item>fs3</item>
+      <item>f20</item>  <item>fs4</item>
+      <item>f21</item>  <item>fs5</item>
+      <item>f22</item>  <item>fs6</item>
+      <item>f23</item>  <item>fs7</item>
+      <item>f24</item>  <item>fs8</item>
+      <item>f25</item>  <item>fs9</item>
+      <item>f26</item>  <item>fs10</item>
+      <item>f27</item>  <item>fs11</item>
+      <item>f28</item>  <item>ft8</item>
+      <item>f29</item>  <item>ft9</item>
+      <item>f30</item>  <item>ft10</item>
+      <item>f31</item>  <item>ft11</item>
+      <!-- RISC-V vector/RVV registers -->
+      <item>v0</item>   <item>v0.t</item><!-- vector mask register -->
+      <item>v1</item>
+      <item>v2</item>
+      <item>v3</item>
+      <item>v4</item>
+      <item>v5</item>
+      <item>v6</item>
+      <item>v7</item>
+      <item>v8</item>
+      <item>v9</item>
+      <item>v10</item>
+      <item>v11</item>
+      <item>v12</item>
+      <item>v13</item>
+      <item>v14</item>
+      <item>v15</item>
+      <item>v16</item>
+      <item>v17</item>
+      <item>v18</item>
+      <item>v19</item>
+      <item>v20</item>
+      <item>v21</item>
+      <item>v22</item>
+      <item>v23</item>
+      <item>v24</item>
+      <item>v25</item>
+      <item>v26</item>
+      <item>v27</item>
+      <item>v28</item>
+      <item>v29</item>
+      <item>v30</item>
+      <item>v31</item>
+    </list>
+
+    <list name="instructions">
+      <item>lock</item>
+      <item>rep</item>
+      <item>repe</item>
+      <item>repz</item>
+      <item>repne</item>
+      <item>repnz</item>
+      <item>xaquire</item>
+      <item>xrelease</item>
+      <item>bnd</item>
+      <item>nobnd</item>
+      <item>aaa</item>
+      <item>aad</item>
+      <item>aam</item>
+      <item>aas</item>
+      <item>adc</item>
+      <item>addb</item>
+      <item>addl</item>
+      <item>addq</item>
+      <item>arpl</item>
+      <item>bb0_reset</item>
+      <item>bb1_reset</item>
+      <item>bound</item>
+      <item>bsf</item>
+      <item>bsr</item>
+      <item>bswap</item>
+      <item>bt</item>
+      <item>btc</item>
+      <item>btr</item>
+      <item>bts</item>
+      <item>cbw</item>
+      <item>cdq</item>
+      <item>cdqe</item>
+      <item>clc</item>
+      <item>cld</item>
+      <item>cli</item>
+      <item>clts</item>
+      <item>cltd</item>
+      <item>cbtw</item>
+      <item>cwtl</item>
+      <item>cwtd</item>
+      <item>cltq</item>
+      <item>cqto</item>
+      <item>cmc</item>
+      <item>cmpb</item>
+      <item>cmpw</item>
+      <item>cmpl</item>
+      <item>cmpq</item>
+      <item>cmpsb</item>
+      <item>cmpsd</item>
+      <item>cmpsq</item>
+      <item>cmpsw</item>
+      <item>cmpxchg</item>
+      <item>cmpxchg486</item>
+      <item>cmpxchg8b</item>
+      <item>cmpxchg16b</item>
+      <item>cpuid</item>
+      <item>cpu_read</item>
+      <item>cpu_write</item>
+      <item>cqo</item>
+      <item>cwd</item>
+      <item>cwde</item>
+      <item>daa</item>
+      <item>das</item>
+      <item>dec</item>
+      <item>decl</item>
+      <item>decq</item>
+      <item>div</item>
+      <item>divb</item>
+      <item>divw</item>
+      <item>divl</item>
+      <item>divq</item>
+      <item>dmint</item>
+      <item>emms</item>
+      <item>enter</item>
+      <item>equ</item>
+      <item>f2xm1</item>
+      <item>fabs</item>
+      <item>fadd</item>
+      <item>faddp</item>
+      <item>fbld</item>
+      <item>fbstp</item>
+      <item>fchs</item>
+      <item>fclex</item>
+      <item>fcmovb</item>
+      <item>fcmovbe</item>
+      <item>fcmove</item>
+      <item>fcmovnb</item>
+      <item>fcmovnbe</item>
+      <item>fcmovne</item>
+      <item>fcmovnu</item>
+      <item>fcmovu</item>
+      <item>fcom</item>
+      <item>fcomi</item>
+      <item>fcomip</item>
+      <item>fcomp</item>
+      <item>fcompp</item>
+      <item>fcos</item>
+      <item>fdecstp</item>
+      <item>fdisi</item>
+      <item>fdiv</item>
+      <item>fdivp</item>
+      <item>fdivr</item>
+      <item>fdivrp</item>
+      <item>femms</item>
+      <item>feni</item>
+      <item>ffree</item>
+      <item>ffreep</item>
+      <item>fiadd</item>
+      <item>ficom</item>
+      <item>ficomp</item>
+      <item>fidiv</item>
+      <item>fidivr</item>
+      <item>fild</item>
+      <item>fimul</item>
+      <item>fincstp</item>
+      <item>finit</item>
+      <item>fist</item>
+      <item>fistp</item>
+      <item>fisttp</item>
+      <item>fisub</item>
+      <item>fisubr</item>
+      <item>fld</item>
+      <item>fld1</item>
+      <item>fldcw</item>
+      <item>fldenv</item>
+      <item>fldl2e</item>
+      <item>fldl2t</item>
+      <item>fldlg2</item>
+      <item>fldln2</item>
+      <item>fldpi</item>
+      <item>fldz</item>
+      <item>fmul</item>
+      <item>fmulp</item>
+      <item>fnclex</item>
+      <item>fndisi</item>
+      <item>fneni</item>
+      <item>fninit</item>
+      <item>fnop</item>
+      <item>fnsave</item>
+      <item>fnstcw</item>
+      <item>fnstenv</item>
+      <item>fnstsw</item>
+      <item>fpatan</item>
+      <item>fprem</item>
+      <item>fprem1</item>
+      <item>fptan</item>
+      <item>frndint</item>
+      <item>frstor</item>
+      <item>fsave</item>
+      <item>fscale</item>
+      <item>fsetpm</item>
+      <item>fsin</item>
+      <item>fsincos</item>
+      <item>fsqrt</item>
+      <item>fst</item>
+      <item>fstcw</item>
+      <item>fstenv</item>
+      <item>fstp</item>
+      <item>fstsw</item>
+      <item>fsub</item>
+      <item>fsubp</item>
+      <item>fsubr</item>
+      <item>fsubrp</item>
+      <item>ftst</item>
+      <item>fucom</item>
+      <item>fucomi</item>
+      <item>fucomip</item>
+      <item>fucomp</item>
+      <item>fucompp</item>
+      <item>fxam</item>
+      <item>fxch</item>
+      <item>fxtract</item>
+      <item>fyl2x</item>
+      <item>fyl2xp1</item>
+      <item>global</item>
+      <item>globl</item>
+      <item>hlt</item>
+      <item>ibts</item>
+      <item>icebp</item>
+      <item>idiv</item>
+      <item>idivb</item>
+      <item>idivw</item>
+      <item>idivl</item>
+      <item>idivq</item>
+      <item>imul</item>
+      <item>imulb</item>
+      <item>imulw</item>
+      <item>imull</item>
+      <item>imulq</item>
+      <item>in</item>
+      <item>inc</item>
+      <item>incl</item>
+      <item>incq</item>
+      <item>incbin</item>
+      <item>insb</item>
+      <item>insd</item>
+      <item>insw</item>
+      <item>int</item>
+      <item>int01</item>
+      <item>int1</item>
+      <item>int03</item>
+      <item>int3</item>
+      <item>into</item>
+      <item>invd</item>
+      <item>invpcid</item>
+      <item>invlpg</item>
+      <item>invlpga</item>
+      <item>lahf</item>
+      <item>lar</item>
+      <item>lds</item>
+      <item>leal</item>
+      <item>leaq</item>
+      <item>leave</item>
+      <item>les</item>
+      <item>lfence</item>
+      <item>lfs</item>
+      <item>lgdt</item>
+      <item>lgs</item>
+      <item>lidt</item>
+      <item>lldt</item>
+      <item>lmsw</item>
+      <item>loadall</item>
+      <item>loadall286</item>
+      <item>lodsb</item>
+      <item>lodsd</item>
+      <item>lodsq</item>
+      <item>lodsw</item>
+      <item>loop</item>
+      <item>loope</item>
+      <item>loopne</item>
+      <item>loopnz</item>
+      <item>loopz</item>
+      <item>lsl</item>
+      <item>lss</item>
+      <item>ltr</item>
+      <item>mfence</item>
+      <item>monitor</item>
+      <item>movb</item>
+      <item>movw</item>
+      <item>movl</item>
+      <item>movq</item>
+      <item>movsb</item>
+      <item>movsd</item>
+      <item>movsq</item>
+      <item>movsw</item>
+      <item>movsx</item>
+      <item>movsxd</item>
+      <item>movzx</item>
+      <item>movsbw</item>
+      <item>movsxb</item>
+      <item>movsbl</item>
+      <item>movsbq</item>
+      <item>movswl</item>
+      <item>movsxw</item>
+      <item>movswq</item>
+      <item>movslq</item>
+      <item>movsxl</item>
+      <item>movzbw</item>
+      <item>movzxb</item>
+      <item>movzbl</item>
+      <item>movzbq</item>
+      <item>movzwl</item>
+      <item>movzxw</item>
+      <item>movzwq</item>
+      <item>mul</item>
+      <item>mulb</item>
+      <item>mulw</item>
+      <item>mull</item>
+      <item>mulq</item>
+      <item>mwait</item>
+      <item>neg</item>
+      <item>nop</item>
+      <item>not</item>
+      <item>or</item>
+      <item>out</item>
+      <item>outsb</item>
+      <item>outsd</item>
+      <item>outsw</item>
+      <item>packssdw</item>
+      <item>packsswb</item>
+      <item>packuswb</item>
+      <item>paddb</item>
+      <item>paddd</item>
+      <item>paddsb</item>
+      <item>paddsiw</item>
+      <item>paddsw</item>
+      <item>paddusb</item>
+      <item>paddusw</item>
+      <item>paddw</item>
+      <item>pand</item>
+      <item>pandn</item>
+      <item>paveb</item>
+      <item>pavgusb</item>
+      <item>pcmpeqb</item>
+      <item>pcmpeqd</item>
+      <item>pcmpeqw</item>
+      <item>pcmpgtb</item>
+      <item>pcmpgtd</item>
+      <item>pcmpgtw</item>
+      <item>pdistib</item>
+      <item>pf2id</item>
+      <item>pfacc</item>
+      <item>pfadd</item>
+      <item>pfcmpeq</item>
+      <item>pfcmpge</item>
+      <item>pfcmpgt</item>
+      <item>pfmax</item>
+      <item>pfmin</item>
+      <item>pfmul</item>
+      <item>pfrcp</item>
+      <item>pfrcpit1</item>
+      <item>pfrcpit2</item>
+      <item>pfrsqit1</item>
+      <item>pfrsqrt</item>
+      <item>pfsub</item>
+      <item>pfsubr</item>
+      <item>pi2fd</item>
+      <item>pmachriw</item>
+      <item>pmaddwd</item>
+      <item>pmagw</item>
+      <item>pmulhriw</item>
+      <item>pmulhrwa</item>
+      <item>pmulhrwc</item>
+      <item>pmulhw</item>
+      <item>pmullw</item>
+      <item>pmvgezb</item>
+      <item>pmvlzb</item>
+      <item>pmvnzb</item>
+      <item>pmvzb</item>
+      <item>pop</item>
+      <item>popl</item>
+      <item>popq</item>
+      <item>popa</item>
+      <item>popad</item>
+      <item>popaw</item>
+      <item>popf</item>
+      <item>popfd</item>
+      <item>popfq</item>
+      <item>popfw</item>
+      <item>por</item>
+      <item>prefetch</item>
+      <item>prefetchw</item>
+      <item>pslld</item>
+      <item>psllq</item>
+      <item>psllw</item>
+      <item>psrad</item>
+      <item>psraw</item>
+      <item>psrld</item>
+      <item>psrlq</item>
+      <item>psrlw</item>
+      <item>psubb</item>
+      <item>psubd</item>
+      <item>psubsb</item>
+      <item>psubsiw</item>
+      <item>psubsw</item>
+      <item>psubusb</item>
+      <item>psubusw</item>
+      <item>psubw</item>
+      <item>punpckhbw</item>
+      <item>punpckhdq</item>
+      <item>punpckhwd</item>
+      <item>punpcklbw</item>
+      <item>punpckldq</item>
+      <item>punpcklwd</item>
+      <item>push</item>
+      <item>pusha</item>
+      <item>pushl</item>
+      <item>pushq</item>
+      <item>pushad</item>
+      <item>pushaw</item>
+      <item>pushf</item>
+      <item>pushfd</item>
+      <item>pushfq</item>
+      <item>pushfw</item>
+      <item>pxor</item>
+      <item>rcl</item>
+      <item>rcr</item>
+      <item>rdshr</item>
+      <item>rdmsr</item>
+      <item>rdpmc</item>
+      <item>rdtsc</item>
+      <item>rdtscp</item>
+      <item>rdm</item>
+      <item>rsdc</item>
+      <item>rsldt</item>
+      <item>rsm</item>
+      <item>rsts</item>
+      <item>sahf</item>
+      <item>sal</item>
+      <item>sall</item>
+      <item>salq</item>
+      <item>salc</item>
+      <item>sar</item>
+      <item>sarl</item>
+      <item>sarq</item>
+      <item>sbb</item>
+      <item>scasb</item>
+      <item>scasd</item>
+      <item>scasq</item>
+      <item>scasw</item>
+      <item>sfence</item>
+      <item>sgdt</item>
+      <item>shl</item>
+      <item>shll</item>
+      <item>shllq</item>
+      <item>shld</item>
+      <item>shr</item>
+      <item>shrd</item>
+      <item>sidt</item>
+      <item>sldt</item>
+      <item>skinit</item>
+      <item>smi</item>
+      <item>smint</item>
+      <item>smintold</item>
+      <item>smsw</item>
+      <item>stc</item>
+      <item>std</item>
+      <item>sti</item>
+      <item>stosb</item>
+      <item>stosd</item>
+      <item>stosq</item>
+      <item>stosw</item>
+      <item>str</item>
+      <item>sub</item>
+      <item>subw</item>
+      <item>subl</item>
+      <item>subq</item>
+      <item>svdc</item>
+      <item>svldt</item>
+      <item>svts</item>
+      <item>swapgs</item>
+      <item>syscall</item>
+      <item>sysenter</item>
+      <item>sysexit</item>
+      <item>sysret</item>
+      <item>test</item>
+      <item>testl</item>
+      <item>testq</item>
+      <item>ud0</item>
+      <item>ud1</item>
+      <item>ud2b</item>
+      <item>ud2</item>
+      <item>ud2a</item>
+      <item>umov</item>
+      <item>verr</item>
+      <item>verw</item>
+      <item>fwait</item>
+      <item>wbinvd</item>
+      <item>wrshr</item>
+      <item>wrmsr</item>
+      <item>xadd</item>
+      <item>xbts</item>
+      <item>xchg</item>
+      <item>xlatb</item>
+      <item>xlat</item>
+      <item>xor</item>
+      <item>xorl</item>
+      <item>xorq</item>
+      <item>cmove</item>
+      <item>cmovz</item>
+      <item>cmovne</item>
+      <item>cmovnz</item>
+      <item>cmova</item>
+      <item>cmovnbe</item>
+      <item>cmovae</item>
+      <item>cmovnb</item>
+      <item>cmovb</item>
+      <item>cmovnae</item>
+      <item>cmovbe</item>
+      <item>cmovna</item>
+      <item>cmovg</item>
+      <item>cmovnle</item>
+      <item>cmovge</item>
+      <item>cmovnl</item>
+      <item>cmovl</item>
+      <item>cmovnge</item>
+      <item>cmovle</item>
+      <item>cmovng</item>
+      <item>cmovc</item>
+      <item>cmovnc</item>
+      <item>cmovo</item>
+      <item>cmovno</item>
+      <item>cmovs</item>
+      <item>cmovns</item>
+      <item>cmovp</item>
+      <item>cmovpe</item>
+      <item>cmovnp</item>
+      <item>cmovpo</item>
+      <item>sete</item>
+      <item>setz</item>
+      <item>setne</item>
+      <item>setnz</item>
+      <item>seta</item>
+      <item>setnbe</item>
+      <item>setae</item>
+      <item>setnb</item>
+      <item>setnc</item>
+      <item>setb</item>
+      <item>setnae</item>
+      <item>setcset</item>
+      <item>setbe</item>
+      <item>setna</item>
+      <item>setg</item>
+      <item>setnle</item>
+      <item>setge</item>
+      <item>setnl</item>
+      <item>setl</item>
+      <item>setnge</item>
+      <item>setle</item>
+      <item>setng</item>
+      <item>sets</item>
+      <item>setns</item>
+      <item>seto</item>
+      <item>setno</item>
+      <item>setpe</item>
+      <item>setp</item>
+      <item>setpo</item>
+      <item>setnp</item>
+      <item>addps</item>
+      <item>addss</item>
+      <item>andnps</item>
+      <item>andps</item>
+      <item>cmpeqps</item>
+      <item>cmpeqss</item>
+      <item>cmpleps</item>
+      <item>cmpless</item>
+      <item>cmpltps</item>
+      <item>cmpltss</item>
+      <item>cmpneqps</item>
+      <item>cmpneqss</item>
+      <item>cmpnleps</item>
+      <item>cmpnless</item>
+      <item>cmpnltps</item>
+      <item>cmpnltss</item>
+      <item>cmpordps</item>
+      <item>cmpordss</item>
+      <item>cmpunordps</item>
+      <item>cmpunordss</item>
+      <item>cmpps</item>
+      <item>cmpss</item>
+      <item>comiss</item>
+      <item>cvtpi2ps</item>
+      <item>cvtps2pi</item>
+      <item>cvtsi2ss</item>
+      <item>cvtss2si</item>
+      <item>cvttps2pi</item>
+      <item>cvttss2si</item>
+      <item>divps</item>
+      <item>divss</item>
+      <item>ldmxcsr</item>
+      <item>maxps</item>
+      <item>maxss</item>
+      <item>minps</item>
+      <item>minss</item>
+      <item>movaps</item>
+      <item>movhps</item>
+      <item>movlhps</item>
+      <item>movlps</item>
+      <item>movhlps</item>
+      <item>movmskps</item>
+      <item>movntps</item>
+      <item>movss</item>
+      <item>movups</item>
+      <item>mulps</item>
+      <item>mulss</item>
+      <item>orps</item>
+      <item>rcpps</item>
+      <item>rcpss</item>
+      <item>rsqrtps</item>
+      <item>rsqrtss</item>
+      <item>shufps</item>
+      <item>sqrtps</item>
+      <item>sqrtss</item>
+      <item>stmxcsr</item>
+      <item>subps</item>
+      <item>subss</item>
+      <item>ucomiss</item>
+      <item>unpckhps</item>
+      <item>unpcklps</item>
+      <item>xorps</item>
+      <item>fxrstor</item>
+      <item>fxrstor64</item>
+      <item>fxsave</item>
+      <item>fxsave64</item>
+      <item>xgetbv</item>
+      <item>xsetbv</item>
+      <item>xsave</item>
+      <item>xsave64</item>
+      <item>xsaveopt</item>
+      <item>xsaveopt64</item>
+      <item>xrstor</item>
+      <item>xrstor64</item>
+      <item>prefetchnta</item>
+      <item>prefetcht0</item>
+      <item>prefetcht1</item>
+      <item>prefetcht2</item>
+      <item>maskmovq</item>
+      <item>movntq</item>
+      <item>pavgb</item>
+      <item>pavgw</item>
+      <item>pextrw</item>
+      <item>pinsrw</item>
+      <item>pmaxsw</item>
+      <item>pmaxub</item>
+      <item>pminsw</item>
+      <item>pminub</item>
+      <item>pmovmskb</item>
+      <item>pmulhuw</item>
+      <item>psadbw</item>
+      <item>pshufw</item>
+      <item>pf2iw</item>
+      <item>pfnacc</item>
+      <item>pfpnacc</item>
+      <item>pi2fw</item>
+      <item>pswapd</item>
+      <item>maskmovdqu</item>
+      <item>clflush</item>
+      <item>movntdq</item>
+      <item>movnti</item>
+      <item>movntpd</item>
+      <item>movdqa</item>
+      <item>movdqu</item>
+      <item>movdq2q</item>
+      <item>movq2dq</item>
+      <item>paddq</item>
+      <item>pmuludq</item>
+      <item>pshufd</item>
+      <item>pshufhw</item>
+      <item>pshuflw</item>
+      <item>pslldq</item>
+      <item>psrldq</item>
+      <item>psubq</item>
+      <item>punpckhqdq</item>
+      <item>punpcklqdq</item>
+      <item>addpd</item>
+      <item>addsd</item>
+      <item>andnpd</item>
+      <item>andpd</item>
+      <item>cmpeqpd</item>
+      <item>cmpeqsd</item>
+      <item>cmplepd</item>
+      <item>cmplesd</item>
+      <item>cmpltpd</item>
+      <item>cmpltsd</item>
+      <item>cmpneqpd</item>
+      <item>cmpneqsd</item>
+      <item>cmpnlepd</item>
+      <item>cmpnlesd</item>
+      <item>cmpnltpd</item>
+      <item>cmpnltsd</item>
+      <item>cmpordpd</item>
+      <item>cmpordsd</item>
+      <item>cmpunordpd</item>
+      <item>cmpunordsd</item>
+      <item>cmppd</item>
+      <item>comisd</item>
+      <item>cvtdq2pd</item>
+      <item>cvtdq2ps</item>
+      <item>cvtpd2dq</item>
+      <item>cvtpd2pi</item>
+      <item>cvtpd2ps</item>
+      <item>cvtpi2pd</item>
+      <item>cvtps2dq</item>
+      <item>cvtps2pd</item>
+      <item>cvtsd2si</item>
+      <item>cvtsd2ss</item>
+      <item>cvtsi2sd</item>
+      <item>cvtss2sd</item>
+      <item>cvttpd2pi</item>
+      <item>cvttpd2dq</item>
+      <item>cvttps2dq</item>
+      <item>cvttsd2si</item>
+      <item>divpd</item>
+      <item>divsd</item>
+      <item>maxpd</item>
+      <item>maxsd</item>
+      <item>minpd</item>
+      <item>minsd</item>
+      <item>movapd</item>
+      <item>movhpd</item>
+      <item>movlpd</item>
+      <item>movmskpd</item>
+      <item>movupd</item>
+      <item>mulpd</item>
+      <item>mulsd</item>
+      <item>orpd</item>
+      <item>shufpd</item>
+      <item>sqrtpd</item>
+      <item>sqrtsd</item>
+      <item>subpd</item>
+      <item>subsd</item>
+      <item>ucomisd</item>
+      <item>unpckhpd</item>
+      <item>unpcklpd</item>
+      <item>xorpd</item>
+      <item>addsubpd</item>
+      <item>addsubps</item>
+      <item>haddpd</item>
+      <item>haddps</item>
+      <item>hsubpd</item>
+      <item>hsubps</item>
+      <item>lddqu</item>
+      <item>movddup</item>
+      <item>movshdup</item>
+      <item>movsldup</item>
+      <item>clgi</item>
+      <item>stgi</item>
+      <item>vmcall</item>
+      <item>vmclear</item>
+      <item>vmfunc</item>
+      <item>vmlaunch</item>
+      <item>vmload</item>
+      <item>vmmcall</item>
+      <item>vmptrld</item>
+      <item>vmptrst</item>
+      <item>vmread</item>
+      <item>vmresume</item>
+      <item>vmrun</item>
+      <item>vmsave</item>
+      <item>vmwrite</item>
+      <item>vmxoff</item>
+      <item>vmxon</item>
+      <item>invept</item>
+      <item>invvpid</item>
+      <item>pabsb</item>
+      <item>pabsw</item>
+      <item>pabsd</item>
+      <item>palignr</item>
+      <item>phaddw</item>
+      <item>phaddd</item>
+      <item>phaddsw</item>
+      <item>phsubw</item>
+      <item>phsubd</item>
+      <item>phsubsw</item>
+      <item>pmaddubsw</item>
+      <item>pmulhrsw</item>
+      <item>pshufb</item>
+      <item>psignb</item>
+      <item>psignw</item>
+      <item>psignd</item>
+      <item>extrq</item>
+      <item>insertq</item>
+      <item>movntsd</item>
+      <item>movntss</item>
+      <item>lzcnt</item>
+      <item>blendpd</item>
+      <item>blendps</item>
+      <item>blendvpd</item>
+      <item>blendvps</item>
+      <item>dppd</item>
+      <item>dpps</item>
+      <item>extractps</item>
+      <item>insertps</item>
+      <item>movntdqa</item>
+      <item>mpsadbw</item>
+      <item>packusdw</item>
+      <item>pblendvb</item>
+      <item>pblendw</item>
+      <item>pcmpeqq</item>
+      <item>pextrb</item>
+      <item>pextrd</item>
+      <item>pextrq</item>
+      <item>phminposuw</item>
+      <item>pinsrb</item>
+      <item>pinsrd</item>
+      <item>pinsrq</item>
+      <item>pmaxsb</item>
+      <item>pmaxsd</item>
+      <item>pmaxud</item>
+      <item>pmaxuw</item>
+      <item>pminsb</item>
+      <item>pminsd</item>
+      <item>pminud</item>
+      <item>pminuw</item>
+      <item>pmovsxbw</item>
+      <item>pmovsxbd</item>
+      <item>pmovsxbq</item>
+      <item>pmovsxwd</item>
+      <item>pmovsxwq</item>
+      <item>pmovsxdq</item>
+      <item>pmovzxbw</item>
+      <item>pmovzxbd</item>
+      <item>pmovzxbq</item>
+      <item>pmovzxwd</item>
+      <item>pmovzxwq</item>
+      <item>pmovzxdq</item>
+      <item>pmuldq</item>
+      <item>pmulld</item>
+      <item>ptest</item>
+      <item>roundpd</item>
+      <item>roundps</item>
+      <item>roundsd</item>
+      <item>roundss</item>
+      <item>crc32</item>
+      <item>pcmpestri</item>
+      <item>pcmpestrm</item>
+      <item>pcmpistri</item>
+      <item>pcmpistrm</item>
+      <item>pcmpgtq</item>
+      <item>popcnt</item>
+      <item>getsec</item>
+      <item>pfrcpv</item>
+      <item>pfrsqrtv</item>
+      <item>movbe</item>
+      <item>aesenc</item>
+      <item>aesenclast</item>
+      <item>aesdec</item>
+      <item>aesdeclast</item>
+      <item>aesimc</item>
+      <item>aeskeygenassist</item>
+      <item>vaesenc</item>
+      <item>vaesenclast</item>
+      <item>vaesdec</item>
+      <item>vaesdeclast</item>
+      <item>vaesimc</item>
+      <item>vaeskeygenassist</item>
+      <item>vaddpd</item>
+      <item>vaddps</item>
+      <item>vaddsd</item>
+      <item>vaddss</item>
+      <item>vaddsubpd</item>
+      <item>vaddsubps</item>
+      <item>vandpd</item>
+      <item>vandps</item>
+      <item>vandnpd</item>
+      <item>vandnps</item>
+      <item>vblendpd</item>
+      <item>vblendps</item>
+      <item>vblendvpd</item>
+      <item>vblendvps</item>
+      <item>vbroadcastss</item>
+      <item>vbroadcastsd</item>
+      <item>vbroadcastf128</item>
+      <item>vcmpeq_ospd</item>
+      <item>vcmpeqpd</item>
+      <item>vcmplt_ospd</item>
+      <item>vcmpltpd</item>
+      <item>vcmple_ospd</item>
+      <item>vcmplepd</item>
+      <item>vcmpunord_qpd</item>
+      <item>vcmpunordpd</item>
+      <item>vcmpneq_uqpd</item>
+      <item>vcmpneqpd</item>
+      <item>vcmpnlt_uspd</item>
+      <item>vcmpnltpd</item>
+      <item>vcmpnle_uspd</item>
+      <item>vcmpnlepd</item>
+      <item>vcmpord_qpd</item>
+      <item>vcmpordpd</item>
+      <item>vcmpeq_uqpd</item>
+      <item>vcmpnge_uspd</item>
+      <item>vcmpngepd</item>
+      <item>vcmpngt_uspd</item>
+      <item>vcmpngtpd</item>
+      <item>vcmpfalse_oqpd</item>
+      <item>vcmpfalsepd</item>
+      <item>vcmpneq_oqpd</item>
+      <item>vcmpge_ospd</item>
+      <item>vcmpgepd</item>
+      <item>vcmpgt_ospd</item>
+      <item>vcmpgtpd</item>
+      <item>vcmptrue_uqpd</item>
+      <item>vcmptruepd</item>
+      <item>vcmplt_oqpd</item>
+      <item>vcmple_oqpd</item>
+      <item>vcmpunord_spd</item>
+      <item>vcmpneq_uspd</item>
+      <item>vcmpnlt_uqpd</item>
+      <item>vcmpnle_uqpd</item>
+      <item>vcmpord_spd</item>
+      <item>vcmpeq_uspd</item>
+      <item>vcmpnge_uqpd</item>
+      <item>vcmpngt_uqpd</item>
+      <item>vcmpfalse_ospd</item>
+      <item>vcmpneq_ospd</item>
+      <item>vcmpge_oqpd</item>
+      <item>vcmpgt_oqpd</item>
+      <item>vcmptrue_uspd</item>
+      <item>vcmppd</item>
+      <item>vcmpeq_osps</item>
+      <item>vcmpeqps</item>
+      <item>vcmplt_osps</item>
+      <item>vcmpltps</item>
+      <item>vcmple_osps</item>
+      <item>vcmpleps</item>
+      <item>vcmpunord_qps</item>
+      <item>vcmpunordps</item>
+      <item>vcmpneq_uqps</item>
+      <item>vcmpneqps</item>
+      <item>vcmpnlt_usps</item>
+      <item>vcmpnltps</item>
+      <item>vcmpnle_usps</item>
+      <item>vcmpnleps</item>
+      <item>vcmpord_qps</item>
+      <item>vcmpordps</item>
+      <item>vcmpeq_uqps</item>
+      <item>vcmpnge_usps</item>
+      <item>vcmpngeps</item>
+      <item>vcmpngt_usps</item>
+      <item>vcmpngtps</item>
+      <item>vcmpfalse_oqps</item>
+      <item>vcmpfalseps</item>
+      <item>vcmpneq_oqps</item>
+      <item>vcmpge_osps</item>
+      <item>vcmpgeps</item>
+      <item>vcmpgt_osps</item>
+      <item>vcmpgtps</item>
+      <item>vcmptrue_uqps</item>
+      <item>vcmptrueps</item>
+      <item>vcmplt_oqps</item>
+      <item>vcmple_oqps</item>
+      <item>vcmpunord_sps</item>
+      <item>vcmpneq_usps</item>
+      <item>vcmpnlt_uqps</item>
+      <item>vcmpnle_uqps</item>
+      <item>vcmpord_sps</item>
+      <item>vcmpeq_usps</item>
+      <item>vcmpnge_uqps</item>
+      <item>vcmpngt_uqps</item>
+      <item>vcmpfalse_osps</item>
+      <item>vcmpneq_osps</item>
+      <item>vcmpge_oqps</item>
+      <item>vcmpgt_oqps</item>
+      <item>vcmptrue_usps</item>
+      <item>vcmpps</item>
+      <item>vcmpeq_ossd</item>
+      <item>vcmpeqsd</item>
+      <item>vcmplt_ossd</item>
+      <item>vcmpltsd</item>
+      <item>vcmple_ossd</item>
+      <item>vcmplesd</item>
+      <item>vcmpunord_qsd</item>
+      <item>vcmpunordsd</item>
+      <item>vcmpneq_uqsd</item>
+      <item>vcmpneqsd</item>
+      <item>vcmpnlt_ussd</item>
+      <item>vcmpnltsd</item>
+      <item>vcmpnle_ussd</item>
+      <item>vcmpnlesd</item>
+      <item>vcmpord_qsd</item>
+      <item>vcmpordsd</item>
+      <item>vcmpeq_uqsd</item>
+      <item>vcmpnge_ussd</item>
+      <item>vcmpngesd</item>
+      <item>vcmpngt_ussd</item>
+      <item>vcmpngtsd</item>
+      <item>vcmpfalse_oqsd</item>
+      <item>vcmpfalsesd</item>
+      <item>vcmpneq_oqsd</item>
+      <item>vcmpge_ossd</item>
+      <item>vcmpgesd</item>
+      <item>vcmpgt_ossd</item>
+      <item>vcmpgtsd</item>
+      <item>vcmptrue_uqsd</item>
+      <item>vcmptruesd</item>
+      <item>vcmplt_oqsd</item>
+      <item>vcmple_oqsd</item>
+      <item>vcmpunord_ssd</item>
+      <item>vcmpneq_ussd</item>
+      <item>vcmpnlt_uqsd</item>
+      <item>vcmpnle_uqsd</item>
+      <item>vcmpord_ssd</item>
+      <item>vcmpeq_ussd</item>
+      <item>vcmpnge_uqsd</item>
+      <item>vcmpngt_uqsd</item>
+      <item>vcmpfalse_ossd</item>
+      <item>vcmpneq_ossd</item>
+      <item>vcmpge_oqsd</item>
+      <item>vcmpgt_oqsd</item>
+      <item>vcmptrue_ussd</item>
+      <item>vcmpsd</item>
+      <item>vcmpeq_osss</item>
+      <item>vcmpeqss</item>
+      <item>vcmplt_osss</item>
+      <item>vcmpltss</item>
+      <item>vcmple_osss</item>
+      <item>vcmpless</item>
+      <item>vcmpunord_qss</item>
+      <item>vcmpunordss</item>
+      <item>vcmpneq_uqss</item>
+      <item>vcmpneqss</item>
+      <item>vcmpnlt_usss</item>
+      <item>vcmpnltss</item>
+      <item>vcmpnle_usss</item>
+      <item>vcmpnless</item>
+      <item>vcmpord_qss</item>
+      <item>vcmpordss</item>
+      <item>vcmpeq_uqss</item>
+      <item>vcmpnge_usss</item>
+      <item>vcmpngess</item>
+      <item>vcmpngt_usss</item>
+      <item>vcmpngtss</item>
+      <item>vcmpfalse_oqss</item>
+      <item>vcmpfalsess</item>
+      <item>vcmpneq_oqss</item>
+      <item>vcmpge_osss</item>
+      <item>vcmpgess</item>
+      <item>vcmpgt_osss</item>
+      <item>vcmpgtss</item>
+      <item>vcmptrue_uqss</item>
+      <item>vcmptruess</item>
+      <item>vcmplt_oqss</item>
+      <item>vcmple_oqss</item>
+      <item>vcmpunord_sss</item>
+      <item>vcmpneq_usss</item>
+      <item>vcmpnlt_uqss</item>
+      <item>vcmpnle_uqss</item>
+      <item>vcmpord_sss</item>
+      <item>vcmpeq_usss</item>
+      <item>vcmpnge_uqss</item>
+      <item>vcmpngt_uqss</item>
+      <item>vcmpfalse_osss</item>
+      <item>vcmpneq_osss</item>
+      <item>vcmpge_oqss</item>
+      <item>vcmpgt_oqss</item>
+      <item>vcmptrue_usss</item>
+      <item>vcmpss</item>
+      <item>vcomisd</item>
+      <item>vcomiss</item>
+      <item>vcvtdq2pd</item>
+      <item>vcvtdq2ps</item>
+      <item>vcvtpd2dq</item>
+      <item>vcvtpd2ps</item>
+      <item>vcvtps2dq</item>
+      <item>vcvtps2pd</item>
+      <item>vcvtsd2si</item>
+      <item>vcvtsd2ss</item>
+      <item>vcvtsi2sd</item>
+      <item>vcvtsi2ss</item>
+      <item>vcvtss2sd</item>
+      <item>vcvtss2si</item>
+      <item>vcvttpd2dq</item>
+      <item>vcvttps2dq</item>
+      <item>vcvttsd2si</item>
+      <item>vcvttss2si</item>
+      <item>vdivpd</item>
+      <item>vdivps</item>
+      <item>vdivsd</item>
+      <item>vdivss</item>
+      <item>vdppd</item>
+      <item>vdpps</item>
+      <item>vextractf128</item>
+      <item>vextractps</item>
+      <item>vhaddpd</item>
+      <item>vhaddps</item>
+      <item>vhsubpd</item>
+      <item>vhsubps</item>
+      <item>vinsertf128</item>
+      <item>vinsertps</item>
+      <item>vlddqu</item>
+      <item>vldqqu</item>
+      <item>vldmxcsr</item>
+      <item>vmaskmovdqu</item>
+      <item>vmaskmovps</item>
+      <item>vmaskmovpd</item>
+      <item>vmaxpd</item>
+      <item>vmaxps</item>
+      <item>vmaxsd</item>
+      <item>vmaxss</item>
+      <item>vminpd</item>
+      <item>vminps</item>
+      <item>vminsd</item>
+      <item>vminss</item>
+      <item>vmovapd</item>
+      <item>vmovaps</item>
+      <item>vmovd</item>
+      <item>vmovq</item>
+      <item>vmovddup</item>
+      <item>vmovdqa</item>
+      <item>vmovqqa</item>
+      <item>vmovdqu</item>
+      <item>vmovqqu</item>
+      <item>vmovhlps</item>
+      <item>vmovhpd</item>
+      <item>vmovhps</item>
+      <item>vmovlhps</item>
+      <item>vmovlpd</item>
+      <item>vmovlps</item>
+      <item>vmovmskpd</item>
+      <item>vmovmskps</item>
+      <item>vmovntdq</item>
+      <item>vmovntqq</item>
+      <item>vmovntdqa</item>
+      <item>vmovntpd</item>
+      <item>vmovntps</item>
+      <item>vmovsd</item>
+      <item>vmovshdup</item>
+      <item>vmovsldup</item>
+      <item>vmovss</item>
+      <item>vmovupd</item>
+      <item>vmovups</item>
+      <item>vmpsadbw</item>
+      <item>vmulpd</item>
+      <item>vmulps</item>
+      <item>vmulsd</item>
+      <item>vmulss</item>
+      <item>vorpd</item>
+      <item>vorps</item>
+      <item>vpabsb</item>
+      <item>vpabsw</item>
+      <item>vpabsd</item>
+      <item>vpacksswb</item>
+      <item>vpackssdw</item>
+      <item>vpackuswb</item>
+      <item>vpackusdw</item>
+      <item>vpaddb</item>
+      <item>vpaddw</item>
+      <item>vpaddd</item>
+      <item>vpaddq</item>
+      <item>vpaddsb</item>
+      <item>vpaddsw</item>
+      <item>vpaddusb</item>
+      <item>vpaddusw</item>
+      <item>vpalignr</item>
+      <item>vpand</item>
+      <item>vpandn</item>
+      <item>vpavgb</item>
+      <item>vpavgw</item>
+      <item>vpblendvb</item>
+      <item>vpblendw</item>
+      <item>vpcmpestri</item>
+      <item>vpcmpestrm</item>
+      <item>vpcmpistri</item>
+      <item>vpcmpistrm</item>
+      <item>vpcmpeqb</item>
+      <item>vpcmpeqw</item>
+      <item>vpcmpeqd</item>
+      <item>vpcmpeqq</item>
+      <item>vpcmpgtb</item>
+      <item>vpcmpgtw</item>
+      <item>vpcmpgtd</item>
+      <item>vpcmpgtq</item>
+      <item>vpermilpd</item>
+      <item>vpermilps</item>
+      <item>vperm2f128</item>
+      <item>vpextrb</item>
+      <item>vpextrw</item>
+      <item>vpextrd</item>
+      <item>vpextrq</item>
+      <item>vphaddw</item>
+      <item>vphaddd</item>
+      <item>vphaddsw</item>
+      <item>vphminposuw</item>
+      <item>vphsubw</item>
+      <item>vphsubd</item>
+      <item>vphsubsw</item>
+      <item>vpinsrb</item>
+      <item>vpinsrw</item>
+      <item>vpinsrd</item>
+      <item>vpinsrq</item>
+      <item>vpmaddwd</item>
+      <item>vpmaddubsw</item>
+      <item>vpmaxsb</item>
+      <item>vpmaxsw</item>
+      <item>vpmaxsd</item>
+      <item>vpmaxub</item>
+      <item>vpmaxuw</item>
+      <item>vpmaxud</item>
+      <item>vpminsb</item>
+      <item>vpminsw</item>
+      <item>vpminsd</item>
+      <item>vpminub</item>
+      <item>vpminuw</item>
+      <item>vpminud</item>
+      <item>vpmovmskb</item>
+      <item>vpmovsxbw</item>
+      <item>vpmovsxbd</item>
+      <item>vpmovsxbq</item>
+      <item>vpmovsxwd</item>
+      <item>vpmovsxwq</item>
+      <item>vpmovsxdq</item>
+      <item>vpmovzxbw</item>
+      <item>vpmovzxbd</item>
+      <item>vpmovzxbq</item>
+      <item>vpmovzxwd</item>
+      <item>vpmovzxwq</item>
+      <item>vpmovzxdq</item>
+      <item>vpmulhuw</item>
+      <item>vpmulhrsw</item>
+      <item>vpmulhw</item>
+      <item>vpmullw</item>
+      <item>vpmulld</item>
+      <item>vpmuludq</item>
+      <item>vpmuldq</item>
+      <item>vpor</item>
+      <item>vpsadbw</item>
+      <item>vpshufb</item>
+      <item>vpshufd</item>
+      <item>vpshufhw</item>
+      <item>vpshuflw</item>
+      <item>vpsignb</item>
+      <item>vpsignw</item>
+      <item>vpsignd</item>
+      <item>vpslldq</item>
+      <item>vpsrldq</item>
+      <item>vpsllw</item>
+      <item>vpslld</item>
+      <item>vpsllq</item>
+      <item>vpsraw</item>
+      <item>vpsrad</item>
+      <item>vpsrlw</item>
+      <item>vpsrld</item>
+      <item>vpsrlq</item>
+      <item>vptest</item>
+      <item>vpsubb</item>
+      <item>vpsubw</item>
+      <item>vpsubd</item>
+      <item>vpsubq</item>
+      <item>vpsubsb</item>
+      <item>vpsubsw</item>
+      <item>vpsubusb</item>
+      <item>vpsubusw</item>
+      <item>vpunpckhbw</item>
+      <item>vpunpckhwd</item>
+      <item>vpunpckhdq</item>
+      <item>vpunpckhqdq</item>
+      <item>vpunpcklbw</item>
+      <item>vpunpcklwd</item>
+      <item>vpunpckldq</item>
+      <item>vpunpcklqdq</item>
+      <item>vpxor</item>
+      <item>vrcpps</item>
+      <item>vrcpss</item>
+      <item>vrsqrtps</item>
+      <item>vrsqrtss</item>
+      <item>vroundpd</item>
+      <item>vroundps</item>
+      <item>vroundsd</item>
+      <item>vroundss</item>
+      <item>vshufpd</item>
+      <item>vshufps</item>
+      <item>vsqrtpd</item>
+      <item>vsqrtps</item>
+      <item>vsqrtsd</item>
+      <item>vsqrtss</item>
+      <item>vstmxcsr</item>
+      <item>vsubpd</item>
+      <item>vsubps</item>
+      <item>vsubsd</item>
+      <item>vsubss</item>
+      <item>vtestps</item>
+      <item>vtestpd</item>
+      <item>vucomisd</item>
+      <item>vucomiss</item>
+      <item>vunpckhpd</item>
+      <item>vunpckhps</item>
+      <item>vunpcklpd</item>
+      <item>vunpcklps</item>
+      <item>vxorpd</item>
+      <item>vxorps</item>
+      <item>vzeroall</item>
+      <item>vzeroupper</item>
+      <item>pclmullqlqdq</item>
+      <item>pclmulhqlqdq</item>
+      <item>pclmullqhqdq</item>
+      <item>pclmulhqhqdq</item>
+      <item>pclmulqdq</item>
+      <item>vpclmullqlqdq</item>
+      <item>vpclmulhqlqdq</item>
+      <item>vpclmullqhqdq</item>
+      <item>vpclmulhqhqdq</item>
+      <item>vpclmulqdq</item>
+      <item>vfmadd132ps</item>
+      <item>vfmadd132pd</item>
+      <item>vfmadd312ps</item>
+      <item>vfmadd312pd</item>
+      <item>vfmadd213ps</item>
+      <item>vfmadd213pd</item>
+      <item>vfmadd123ps</item>
+      <item>vfmadd123pd</item>
+      <item>vfmadd231ps</item>
+      <item>vfmadd231pd</item>
+      <item>vfmadd321ps</item>
+      <item>vfmadd321pd</item>
+      <item>vfmaddsub132ps</item>
+      <item>vfmaddsub132pd</item>
+      <item>vfmaddsub312ps</item>
+      <item>vfmaddsub312pd</item>
+      <item>vfmaddsub213ps</item>
+      <item>vfmaddsub213pd</item>
+      <item>vfmaddsub123ps</item>
+      <item>vfmaddsub123pd</item>
+      <item>vfmaddsub231ps</item>
+      <item>vfmaddsub231pd</item>
+      <item>vfmaddsub321ps</item>
+      <item>vfmaddsub321pd</item>
+      <item>vfmsub132ps</item>
+      <item>vfmsub132pd</item>
+      <item>vfmsub312ps</item>
+      <item>vfmsub312pd</item>
+      <item>vfmsub213ps</item>
+      <item>vfmsub213pd</item>
+      <item>vfmsub123ps</item>
+      <item>vfmsub123pd</item>
+      <item>vfmsub231ps</item>
+      <item>vfmsub231pd</item>
+      <item>vfmsub321ps</item>
+      <item>vfmsub321pd</item>
+      <item>vfmsubadd132ps</item>
+      <item>vfmsubadd132pd</item>
+      <item>vfmsubadd312ps</item>
+      <item>vfmsubadd312pd</item>
+      <item>vfmsubadd213ps</item>
+      <item>vfmsubadd213pd</item>
+      <item>vfmsubadd123ps</item>
+      <item>vfmsubadd123pd</item>
+      <item>vfmsubadd231ps</item>
+      <item>vfmsubadd231pd</item>
+      <item>vfmsubadd321ps</item>
+      <item>vfmsubadd321pd</item>
+      <item>vfnmadd132ps</item>
+      <item>vfnmadd132pd</item>
+      <item>vfnmadd312ps</item>
+      <item>vfnmadd312pd</item>
+      <item>vfnmadd213ps</item>
+      <item>vfnmadd213pd</item>
+      <item>vfnmadd123ps</item>
+      <item>vfnmadd123pd</item>
+      <item>vfnmadd231ps</item>
+      <item>vfnmadd231pd</item>
+      <item>vfnmadd321ps</item>
+      <item>vfnmadd321pd</item>
+      <item>vfnmsub132ps</item>
+      <item>vfnmsub132pd</item>
+      <item>vfnmsub312ps</item>
+      <item>vfnmsub312pd</item>
+      <item>vfnmsub213ps</item>
+      <item>vfnmsub213pd</item>
+      <item>vfnmsub123ps</item>
+      <item>vfnmsub123pd</item>
+      <item>vfnmsub231ps</item>
+      <item>vfnmsub231pd</item>
+      <item>vfnmsub321ps</item>
+      <item>vfnmsub321pd</item>
+      <item>vfmadd132ss</item>
+      <item>vfmadd132sd</item>
+      <item>vfmadd312ss</item>
+      <item>vfmadd312sd</item>
+      <item>vfmadd213ss</item>
+      <item>vfmadd213sd</item>
+      <item>vfmadd123ss</item>
+      <item>vfmadd123sd</item>
+      <item>vfmadd231ss</item>
+      <item>vfmadd231sd</item>
+      <item>vfmadd321ss</item>
+      <item>vfmadd321sd</item>
+      <item>vfmsub132ss</item>
+      <item>vfmsub132sd</item>
+      <item>vfmsub312ss</item>
+      <item>vfmsub312sd</item>
+      <item>vfmsub213ss</item>
+      <item>vfmsub213sd</item>
+      <item>vfmsub123ss</item>
+      <item>vfmsub123sd</item>
+      <item>vfmsub231ss</item>
+      <item>vfmsub231sd</item>
+      <item>vfmsub321ss</item>
+      <item>vfmsub321sd</item>
+      <item>vfnmadd132ss</item>
+      <item>vfnmadd132sd</item>
+      <item>vfnmadd312ss</item>
+      <item>vfnmadd312sd</item>
+      <item>vfnmadd213ss</item>
+      <item>vfnmadd213sd</item>
+      <item>vfnmadd123ss</item>
+      <item>vfnmadd123sd</item>
+      <item>vfnmadd231ss</item>
+      <item>vfnmadd231sd</item>
+      <item>vfnmadd321ss</item>
+      <item>vfnmadd321sd</item>
+      <item>vfnmsub132ss</item>
+      <item>vfnmsub132sd</item>
+      <item>vfnmsub312ss</item>
+      <item>vfnmsub312sd</item>
+      <item>vfnmsub213ss</item>
+      <item>vfnmsub213sd</item>
+      <item>vfnmsub123ss</item>
+      <item>vfnmsub123sd</item>
+      <item>vfnmsub231ss</item>
+      <item>vfnmsub231sd</item>
+      <item>vfnmsub321ss</item>
+      <item>vfnmsub321sd</item>
+      <item>rdfsbase</item>
+      <item>rdgsbase</item>
+      <item>rdrand</item>
+      <item>wrfsbase</item>
+      <item>wrgsbase</item>
+      <item>vcvtph2ps</item>
+      <item>vcvtps2ph</item>
+      <item>adcx</item>
+      <item>adox</item>
+      <item>rdseed</item>
+      <item>clac</item>
+      <item>stac</item>
+      <item>xstore</item>
+      <item>xcryptecb</item>
+      <item>xcryptcbc</item>
+      <item>xcryptctr</item>
+      <item>xcryptcfb</item>
+      <item>xcryptofb</item>
+      <item>montmul</item>
+      <item>xsha1</item>
+      <item>xsha256</item>
+      <item>llwpcb</item>
+      <item>slwpcb</item>
+      <item>lwpval</item>
+      <item>lwpins</item>
+      <item>vfmaddpd</item>
+      <item>vfmaddps</item>
+      <item>vfmaddsd</item>
+      <item>vfmaddss</item>
+      <item>vfmaddsubpd</item>
+      <item>vfmaddsubps</item>
+      <item>vfmsubaddpd</item>
+      <item>vfmsubaddps</item>
+      <item>vfmsubpd</item>
+      <item>vfmsubps</item>
+      <item>vfmsubsd</item>
+      <item>vfmsubss</item>
+      <item>vfnmaddpd</item>
+      <item>vfnmaddps</item>
+      <item>vfnmaddsd</item>
+      <item>vfnmaddss</item>
+      <item>vfnmsubpd</item>
+      <item>vfnmsubps</item>
+      <item>vfnmsubsd</item>
+      <item>vfnmsubss</item>
+      <item>vfrczpd</item>
+      <item>vfrczps</item>
+      <item>vfrczsd</item>
+      <item>vfrczss</item>
+      <item>vpcmov</item>
+      <item>vpcomb</item>
+      <item>vpcomd</item>
+      <item>vpcomq</item>
+      <item>vpcomub</item>
+      <item>vpcomud</item>
+      <item>vpcomuq</item>
+      <item>vpcomuw</item>
+      <item>vpcomw</item>
+      <item>vphaddbd</item>
+      <item>vphaddbq</item>
+      <item>vphaddbw</item>
+      <item>vphadddq</item>
+      <item>vphaddubd</item>
+      <item>vphaddubq</item>
+      <item>vphaddubw</item>
+      <item>vphaddudq</item>
+      <item>vphadduwd</item>
+      <item>vphadduwq</item>
+      <item>vphaddwd</item>
+      <item>vphaddwq</item>
+      <item>vphsubbw</item>
+      <item>vphsubdq</item>
+      <item>vphsubwd</item>
+      <item>vpmacsdd</item>
+      <item>vpmacsdqh</item>
+      <item>vpmacsdql</item>
+      <item>vpmacssdd</item>
+      <item>vpmacssdqh</item>
+      <item>vpmacssdql</item>
+      <item>vpmacsswd</item>
+      <item>vpmacssww</item>
+      <item>vpmacswd</item>
+      <item>vpmacsww</item>
+      <item>vpmadcsswd</item>
+      <item>vpmadcswd</item>
+      <item>vpperm</item>
+      <item>vprotb</item>
+      <item>vprotd</item>
+      <item>vprotq</item>
+      <item>vprotw</item>
+      <item>vpshab</item>
+      <item>vpshad</item>
+      <item>vpshaq</item>
+      <item>vpshaw</item>
+      <item>vpshlb</item>
+      <item>vpshld</item>
+      <item>vpshlq</item>
+      <item>vpshlw</item>
+      <item>vbroadcasti128</item>
+      <item>vpblendd</item>
+      <item>vpbroadcastb</item>
+      <item>vpbroadcastw</item>
+      <item>vpbroadcastd</item>
+      <item>vpbroadcastq</item>
+      <item>vpermd</item>
+      <item>vpermpd</item>
+      <item>vpermps</item>
+      <item>vpermq</item>
+      <item>vperm2i128</item>
+      <item>vextracti128</item>
+      <item>vinserti128</item>
+      <item>vpmaskmovd</item>
+      <item>vpmaskmovq</item>
+      <item>vpsllvd</item>
+      <item>vpsllvq</item>
+      <item>vpsravd</item>
+      <item>vpsrlvd</item>
+      <item>vpsrlvq</item>
+      <item>vgatherdpd</item>
+      <item>vgatherqpd</item>
+      <item>vgatherdps</item>
+      <item>vgatherqps</item>
+      <item>vpgatherdd</item>
+      <item>vpgatherqd</item>
+      <item>vpgatherdq</item>
+      <item>vpgatherqq</item>
+      <item>xabort</item>
+      <item>xbegin</item>
+      <item>xend</item>
+      <item>xtest</item>
+      <item>bextr</item>
+      <item>blci</item>
+      <item>blcic</item>
+      <item>blsi</item>
+      <item>blsic</item>
+      <item>blcfill</item>
+      <item>blsfill</item>
+      <item>blcmsk</item>
+      <item>blsmsk</item>
+      <item>blsr</item>
+      <item>blcs</item>
+      <item>bzhi</item>
+      <item>mulx</item>
+      <item>pdep</item>
+      <item>pext</item>
+      <item>rorx</item>
+      <item>sarx</item>
+      <item>shlx</item>
+      <item>shrx</item>
+      <item>tzcnt</item>
+      <item>tzmsk</item>
+      <item>t1mskc</item>
+      <item>valignd</item>
+      <item>valignq</item>
+      <item>vblendmpd</item>
+      <item>vblendmps</item>
+      <item>vbroadcastf32x4</item>
+      <item>vbroadcastf64x4</item>
+      <item>vbroadcasti32x4</item>
+      <item>vbroadcasti64x4</item>
+      <item>vcompresspd</item>
+      <item>vcompressps</item>
+      <item>vcvtpd2udq</item>
+      <item>vcvtps2udq</item>
+      <item>vcvtsd2usi</item>
+      <item>vcvtss2usi</item>
+      <item>vcvttpd2udq</item>
+      <item>vcvttps2udq</item>
+      <item>vcvttsd2usi</item>
+      <item>vcvttss2usi</item>
+      <item>vcvtudq2pd</item>
+      <item>vcvtudq2ps</item>
+      <item>vcvtusi2sd</item>
+      <item>vcvtusi2ss</item>
+      <item>vexpandpd</item>
+      <item>vexpandps</item>
+      <item>vextractf32x4</item>
+      <item>vextractf64x4</item>
+      <item>vextracti32x4</item>
+      <item>vextracti64x4</item>
+      <item>vfixupimmpd</item>
+      <item>vfixupimmps</item>
+      <item>vfixupimmsd</item>
+      <item>vfixupimmss</item>
+      <item>vgetexppd</item>
+      <item>vgetexpps</item>
+      <item>vgetexpsd</item>
+      <item>vgetexpss</item>
+      <item>vgetmantpd</item>
+      <item>vgetmantps</item>
+      <item>vgetmantsd</item>
+      <item>vgetmantss</item>
+      <item>vinsertf32x4</item>
+      <item>vinsertf64x4</item>
+      <item>vinserti32x4</item>
+      <item>vinserti64x4</item>
+      <item>vmovdqa32</item>
+      <item>vmovdqa64</item>
+      <item>vmovdqu32</item>
+      <item>vmovdqu64</item>
+      <item>vpabsq</item>
+      <item>vpandd</item>
+      <item>vpandnd</item>
+      <item>vpandnq</item>
+      <item>vpandq</item>
+      <item>vpblendmd</item>
+      <item>vpblendmq</item>
+      <item>vpcmpltd</item>
+      <item>vpcmpled</item>
+      <item>vpcmpneqd</item>
+      <item>vpcmpnltd</item>
+      <item>vpcmpnled</item>
+      <item>vpcmpd</item>
+      <item>vpcmpltq</item>
+      <item>vpcmpleq</item>
+      <item>vpcmpneqq</item>
+      <item>vpcmpnltq</item>
+      <item>vpcmpnleq</item>
+      <item>vpcmpq</item>
+      <item>vpcmpequd</item>
+      <item>vpcmpltud</item>
+      <item>vpcmpleud</item>
+      <item>vpcmpnequd</item>
+      <item>vpcmpnltud</item>
+      <item>vpcmpnleud</item>
+      <item>vpcmpud</item>
+      <item>vpcmpequq</item>
+      <item>vpcmpltuq</item>
+      <item>vpcmpleuq</item>
+      <item>vpcmpnequq</item>
+      <item>vpcmpnltuq</item>
+      <item>vpcmpnleuq</item>
+      <item>vpcmpuq</item>
+      <item>vpcompressd</item>
+      <item>vpcompressq</item>
+      <item>vpermi2d</item>
+      <item>vpermi2pd</item>
+      <item>vpermi2ps</item>
+      <item>vpermi2q</item>
+      <item>vpermt2d</item>
+      <item>vpermt2pd</item>
+      <item>vpermt2ps</item>
+      <item>vpermt2q</item>
+      <item>vpexpandd</item>
+      <item>vpexpandq</item>
+      <item>vpmaxsq</item>
+      <item>vpmaxuq</item>
+      <item>vpminsq</item>
+      <item>vpminuq</item>
+      <item>vpmovdb</item>
+      <item>vpmovdw</item>
+      <item>vpmovqb</item>
+      <item>vpmovqd</item>
+      <item>vpmovqw</item>
+      <item>vpmovsdb</item>
+      <item>vpmovsdw</item>
+      <item>vpmovsqb</item>
+      <item>vpmovsqd</item>
+      <item>vpmovsqw</item>
+      <item>vpmovusdb</item>
+      <item>vpmovusdw</item>
+      <item>vpmovusqb</item>
+      <item>vpmovusqd</item>
+      <item>vpmovusqw</item>
+      <item>vpord</item>
+      <item>vporq</item>
+      <item>vprold</item>
+      <item>vprolq</item>
+      <item>vprolvd</item>
+      <item>vprolvq</item>
+      <item>vprord</item>
+      <item>vprorq</item>
+      <item>vprorvd</item>
+      <item>vprorvq</item>
+      <item>vpscatterdd</item>
+      <item>vpscatterdq</item>
+      <item>vpscatterqd</item>
+      <item>vpscatterqq</item>
+      <item>vpsraq</item>
+      <item>vpsravq</item>
+      <item>vpternlogd</item>
+      <item>vpternlogq</item>
+      <item>vptestmd</item>
+      <item>vptestmq</item>
+      <item>vptestnmd</item>
+      <item>vptestnmq</item>
+      <item>vpxord</item>
+      <item>vpxorq</item>
+      <item>vrcp14pd</item>
+      <item>vrcp14ps</item>
+      <item>vrcp14sd</item>
+      <item>vrcp14ss</item>
+      <item>vrndscalepd</item>
+      <item>vrndscaleps</item>
+      <item>vrndscalesd</item>
+      <item>vrndscaless</item>
+      <item>vrsqrt14pd</item>
+      <item>vrsqrt14ps</item>
+      <item>vrsqrt14sd</item>
+      <item>vrsqrt14ss</item>
+      <item>vscalefpd</item>
+      <item>vscalefps</item>
+      <item>vscalefsd</item>
+      <item>vscalefss</item>
+      <item>vscatterdpd</item>
+      <item>vscatterdps</item>
+      <item>vscatterqpd</item>
+      <item>vscatterqps</item>
+      <item>vshuff32x4</item>
+      <item>vshuff64x2</item>
+      <item>vshufi32x4</item>
+      <item>vshufi64x2</item>
+      <item>kandnw</item>
+      <item>kandw</item>
+      <item>kmovw</item>
+      <item>knotw</item>
+      <item>kortestw</item>
+      <item>korw</item>
+      <item>kshiftlw</item>
+      <item>kshiftrw</item>
+      <item>kunpckbw</item>
+      <item>kxnorw</item>
+      <item>kxorw</item>
+      <item>vpbroadcastmb2q</item>
+      <item>vpbroadcastmw2d</item>
+      <item>vpconflictd</item>
+      <item>vpconflictq</item>
+      <item>vplzcntd</item>
+      <item>vplzcntq</item>
+      <item>vexp2pd</item>
+      <item>vexp2ps</item>
+      <item>vrcp28pd</item>
+      <item>vrcp28ps</item>
+      <item>vrcp28sd</item>
+      <item>vrcp28ss</item>
+      <item>vrsqrt28pd</item>
+      <item>vrsqrt28ps</item>
+      <item>vrsqrt28sd</item>
+      <item>vrsqrt28ss</item>
+      <item>vgatherpf0dpd</item>
+      <item>vgatherpf0dps</item>
+      <item>vgatherpf0qpd</item>
+      <item>vgatherpf0qps</item>
+      <item>vgatherpf1dpd</item>
+      <item>vgatherpf1dps</item>
+      <item>vgatherpf1qpd</item>
+      <item>vgatherpf1qps</item>
+      <item>vscatterpf0dpd</item>
+      <item>vscatterpf0dps</item>
+      <item>vscatterpf0qpd</item>
+      <item>vscatterpf0qps</item>
+      <item>vscatterpf1dpd</item>
+      <item>vscatterpf1dps</item>
+      <item>vscatterpf1qpd</item>
+      <item>vscatterpf1qps</item>
+      <item>prefetchwt1</item>
+      <item>bndmk</item>
+      <item>bndcl</item>
+      <item>bndcu</item>
+      <item>bndcn</item>
+      <item>bndmov</item>
+      <item>bndldx</item>
+      <item>bndstx</item>
+      <item>sha1rnds4</item>
+      <item>sha1nexte</item>
+      <item>sha1msg1</item>
+      <item>sha1msg2</item>
+      <item>sha256rnds2</item>
+      <item>sha256msg1</item>
+      <item>sha256msg2</item>
+      <item>hint_nop</item>
+      <!-- RISC-V standard hints -->
+      <item>c.ntl.all</item>
+      <item>c.ntl.p1</item>
+      <item>c.ntl.pall</item>
+      <item>c.ntl.s1</item>
+      <item>ntl.all</item>
+      <item>ntl.p1</item>
+      <item>ntl.pall</item>
+      <item>ntl.s1</item>
+      <item>pause</item>
+      <item>prefetch.i</item>
+      <item>prefetch.r</item>
+      <item>prefetch.w</item>
+      <!-- RISC-V basic RVI instructions and aliases -->
+      <item>add</item>
+      <item>addi</item>
+      <item>addiw</item>
+      <item>addw</item>
+      <item>and</item>
+      <item>andi</item>
+      <item>auipc</item>
+      <item>fence</item>
+      <item>fence.i</item>
+      <item>fence.tso</item>
+      <item>la</item>
+      <item>la.tls.gd</item>
+      <item>la.tls.ie</item>
+      <item>lb</item>
+      <item>lbu</item>
+      <item>ld</item>
+      <item>lga</item>
+      <item>lh</item>
+      <item>lhu</item>
+      <item>li</item>
+      <item>lla</item>
+      <item>lui</item>
+      <item>lw</item>
+      <item>lwu</item>
+      <item>move</item>
+      <item>mv</item>
+      <item>negw</item>
+      <item>ori</item>
+      <item>rdcycle</item>
+      <item>rdcycleh</item>
+      <item>rdinstret</item>
+      <item>rdinstreth</item>
+      <item>rdtime</item>
+      <item>rdtimeh</item>
+      <item>sb</item>
+      <item>sd</item>
+      <item>seqz</item>
+      <item>sext.w</item>
+      <item>sgt</item>
+      <item>sgtu</item>
+      <item>sgtz</item>
+      <item>sh</item>
+      <item>sll</item>
+      <item>slli</item>
+      <item>slliw</item>
+      <item>sllw</item>
+      <item>slt</item>
+      <item>slti</item>
+      <item>sltiu</item>
+      <item>sltu</item>
+      <item>sltz</item>
+      <item>snez</item>
+      <item>sra</item>
+      <item>srai</item>
+      <item>sraiw</item>
+      <item>sraw</item>
+      <item>srl</item>
+      <item>srli</item>
+      <item>srliw</item>
+      <item>srlw</item>
+      <item>sw</item>
+      <item>tail</item>
+      <item>unimp</item>
+      <item>xori</item>
+      <item>zext.b</item>
+      <!-- RISC-V control and status register (CSR) Instructions (Zicsr) -->
+      <item>csrc</item>
+      <item>csrci</item>
+      <item>csrr</item>
+      <item>csrrc</item>
+      <item>csrrci</item>
+      <item>csrrs</item>
+      <item>csrrsi</item>
+      <item>csrrw</item>
+      <item>csrrwi</item>
+      <item>csrs</item>
+      <item>csrsi</item>
+      <item>csrw</item>
+      <item>csrwi</item>
+      <!-- RISC-V may-be instructions (Zimop) -->
+      <item>mop.r.0</item>
+      <item>mop.r.1</item>
+      <item>mop.r.2</item>
+      <item>mop.r.3</item>
+      <item>mop.r.4</item>
+      <item>mop.r.5</item>
+      <item>mop.r.6</item>
+      <item>mop.r.7</item>
+      <item>mop.r.8</item>
+      <item>mop.r.9</item>
+      <item>mop.r.10</item>
+      <item>mop.r.11</item>
+      <item>mop.r.12</item>
+      <item>mop.r.13</item>
+      <item>mop.r.14</item>
+      <item>mop.r.15</item>
+      <item>mop.r.16</item>
+      <item>mop.r.17</item>
+      <item>mop.r.18</item>
+      <item>mop.r.19</item>
+      <item>mop.r.20</item>
+      <item>mop.r.21</item>
+      <item>mop.r.22</item>
+      <item>mop.r.23</item>
+      <item>mop.r.24</item>
+      <item>mop.r.25</item>
+      <item>mop.r.26</item>
+      <item>mop.r.27</item>
+      <item>mop.r.28</item>
+      <item>mop.r.29</item>
+      <item>mop.r.30</item>
+      <item>mop.r.31</item>
+      <item>mop.rr.0</item>
+      <item>mop.rr.1</item>
+      <item>mop.rr.2</item>
+      <item>mop.rr.3</item>
+      <item>mop.rr.4</item>
+      <item>mop.rr.5</item>
+      <item>mop.rr.6</item>
+      <item>mop.rr.7</item>
+      <!-- RISC-V compressed may-be instructions (Zcmop) -->
+      <item>c.mop.1</item>
+      <item>c.mop.3</item>
+      <item>c.mop.5</item>
+      <item>c.mop.7</item>
+      <item>c.mop.9</item>
+      <item>c.mop.11</item>
+      <item>c.mop.13</item>
+      <item>c.mop.15</item>
+      <!-- RISC-V integer conditional instructions -->
+      <item>czero.eqz</item>
+      <item>czero.nez</item>
+      <!-- RISC-V multiplication and division (M) -->
+      <item>divu</item>
+      <item>divuw</item>
+      <item>mulh</item>
+      <item>mulhsu</item>
+      <item>mulhu</item>
+      <item>rem</item>
+      <item>remu</item>
+      <item>remuw</item>
+      <item>remw</item>
+      <!-- RISC-V atomic operations (A) -->
+      <item>amoadd.d</item>
+      <item>amoadd.d.aq</item>
+      <item>amoadd.d.aqrl</item>
+      <item>amoadd.d.rl</item>
+      <item>amoadd.w</item>
+      <item>amoadd.w.aq</item>
+      <item>amoadd.w.aqrl</item>
+      <item>amoadd.w.rl</item>
+      <item>amoand.d</item>
+      <item>amoand.d.aq</item>
+      <item>amoand.d.aqrl</item>
+      <item>amoand.d.rl</item>
+      <item>amoand.w</item>
+      <item>amoand.w.aq</item>
+      <item>amoand.w.aqrl</item>
+      <item>amoand.w.rl</item>
+      <item>amomax.d</item>
+      <item>amomax.d.aq</item>
+      <item>amomax.d.aqrl</item>
+      <item>amomax.d.rl</item>
+      <item>amomax.w</item>
+      <item>amomax.w.aq</item>
+      <item>amomax.w.aqrl</item>
+      <item>amomax.w.rl</item>
+      <item>amomaxu.d</item>
+      <item>amomaxu.d.aq</item>
+      <item>amomaxu.d.aqrl</item>
+      <item>amomaxu.d.rl</item>
+      <item>amomaxu.w</item>
+      <item>amomaxu.w.aq</item>
+      <item>amomaxu.w.aqrl</item>
+      <item>amomaxu.w.rl</item>
+      <item>amomin.d</item>
+      <item>amomin.d.aq</item>
+      <item>amomin.d.aqrl</item>
+      <item>amomin.d.rl</item>
+      <item>amomin.w</item>
+      <item>amomin.w.aq</item>
+      <item>amomin.w.aqrl</item>
+      <item>amomin.w.rl</item>
+      <item>amominu.d</item>
+      <item>amominu.d.aq</item>
+      <item>amominu.d.aqrl</item>
+      <item>amominu.d.rl</item>
+      <item>amominu.w</item>
+      <item>amominu.w.aq</item>
+      <item>amominu.w.aqrl</item>
+      <item>amominu.w.rl</item>
+      <item>amoor.d</item>
+      <item>amoor.d.aq</item>
+      <item>amoor.d.aqrl</item>
+      <item>amoor.d.rl</item>
+      <item>amoor.w</item>
+      <item>amoor.w.aq</item>
+      <item>amoor.w.aqrl</item>
+      <item>amoor.w.rl</item>
+      <item>amoswap.d</item>
+      <item>amoswap.d.aq</item>
+      <item>amoswap.d.aqrl</item>
+      <item>amoswap.d.rl</item>
+      <item>amoswap.w</item>
+      <item>amoswap.w.aq</item>
+      <item>amoswap.w.aqrl</item>
+      <item>amoswap.w.rl</item>
+      <item>amoxor.d</item>
+      <item>amoxor.d.aq</item>
+      <item>amoxor.d.aqrl</item>
+      <item>amoxor.d.rl</item>
+      <item>amoxor.w</item>
+      <item>amoxor.w.aq</item>
+      <item>amoxor.w.aqrl</item>
+      <item>amoxor.w.rl</item>
+      <item>lr.d</item>
+      <item>lr.d.aq</item>
+      <item>lr.d.aqrl</item>
+      <item>lr.d.rl</item>
+      <item>lr.w</item>
+      <item>lr.w.aq</item>
+      <item>lr.w.aqrl</item>
+      <item>lr.w.rl</item>
+      <item>sc.d</item>
+      <item>sc.d.aq</item>
+      <item>sc.d.aqrl</item>
+      <item>sc.d.rl</item>
+      <item>sc.w</item>
+      <item>sc.w.aq</item>
+      <item>sc.w.aqrl</item>
+      <item>sc.w.rl</item>
+      <!-- RISC-V byte and halfword atomic memory operations (Zabha) -->
+      <item>amoadd.b</item>
+      <item>amoadd.b.aq</item>
+      <item>amoadd.b.aqrl</item>
+      <item>amoadd.b.rl</item>
+      <item>amoadd.h</item>
+      <item>amoadd.h.aq</item>
+      <item>amoadd.h.aqrl</item>
+      <item>amoadd.h.rl</item>
+      <item>amoand.b</item>
+      <item>amoand.b.aq</item>
+      <item>amoand.b.aqrl</item>
+      <item>amoand.b.rl</item>
+      <item>amoand.h</item>
+      <item>amoand.h.aq</item>
+      <item>amoand.h.aqrl</item>
+      <item>amoand.h.rl</item>
+      <item>amocas.b</item>
+      <item>amocas.b.aq</item>
+      <item>amocas.b.aqrl</item>
+      <item>amocas.b.rl</item>
+      <item>amocas.h</item>
+      <item>amocas.h.aq</item>
+      <item>amocas.h.aqrl</item>
+      <item>amocas.h.rl</item>
+      <item>amomax.b</item>
+      <item>amomax.b.aq</item>
+      <item>amomax.b.aqrl</item>
+      <item>amomax.b.rl</item>
+      <item>amomax.h</item>
+      <item>amomax.h.aq</item>
+      <item>amomax.h.aqrl</item>
+      <item>amomax.h.rl</item>
+      <item>amomaxu.b</item>
+      <item>amomaxu.b.aq</item>
+      <item>amomaxu.b.aqrl</item>
+      <item>amomaxu.b.rl</item>
+      <item>amomaxu.h</item>
+      <item>amomaxu.h.aq</item>
+      <item>amomaxu.h.aqrl</item>
+      <item>amomaxu.h.rl</item>
+      <item>amomin.b</item>
+      <item>amomin.b.aq</item>
+      <item>amomin.b.aqrl</item>
+      <item>amomin.b.rl</item>
+      <item>amomin.h</item>
+      <item>amomin.h.aq</item>
+      <item>amomin.h.aqrl</item>
+      <item>amomin.h.rl</item>
+      <item>amominu.b</item>
+      <item>amominu.b.aq</item>
+      <item>amominu.b.aqrl</item>
+      <item>amominu.b.rl</item>
+      <item>amominu.h</item>
+      <item>amominu.h.aq</item>
+      <item>amominu.h.aqrl</item>
+      <item>amominu.h.rl</item>
+      <item>amoor.b</item>
+      <item>amoor.b.aq</item>
+      <item>amoor.b.aqrl</item>
+      <item>amoor.b.rl</item>
+      <item>amoor.h</item>
+      <item>amoor.h.aq</item>
+      <item>amoor.h.aqrl</item>
+      <item>amoor.h.rl</item>
+      <item>amoswap.b</item>
+      <item>amoswap.b.aq</item>
+      <item>amoswap.b.aqrl</item>
+      <item>amoswap.b.rl</item>
+      <item>amoswap.h</item>
+      <item>amoswap.h.aq</item>
+      <item>amoswap.h.aqrl</item>
+      <item>amoswap.h.rl</item>
+      <item>amoxor.b</item>
+      <item>amoxor.b.aq</item>
+      <item>amoxor.b.aqrl</item>
+      <item>amoxor.b.rl</item>
+      <item>amoxor.h</item>
+      <item>amoxor.h.aq</item>
+      <item>amoxor.h.aqrl</item>
+      <item>amoxor.h.rl</item>
+      <!-- RISC-V wait-on-reservation-set (Zawrs) -->
+      <item>wrs.nto</item>
+      <item>wrs.sto</item>
+      <!-- RISC-V atomic compare-and-swap (Zacas) -->
+      <item>amocas.d</item>
+      <item>amocas.d.aq</item>
+      <item>amocas.d.aqrl</item>
+      <item>amocas.d.rl</item>
+      <item>amocas.q</item>
+      <item>amocas.q.aq</item>
+      <item>amocas.q.aqrl</item>
+      <item>amocas.q.rl</item>
+      <item>amocas.w</item>
+      <item>amocas.w.aq</item>
+      <item>amocas.w.aqrl</item>
+      <item>amocas.w.rl</item>
+      <!-- RISC-V cache-management operation (CMO) instructions -->
+      <item>cbo.clean</item>
+      <item>cbo.flush</item>
+      <item>cbo.inval</item>
+      <item>cbo.zero</item>
+      <!-- RISC-V half-precision floating-point instructions -->
+      <item>fabs.h</item>
+      <item>fadd.h</item>
+      <item>fclass.h</item>
+      <item>fcvt.d.h</item>
+      <item>fcvt.h.d</item>
+      <item>fcvt.h.l</item>
+      <item>fcvt.h.lu</item>
+      <item>fcvt.h.q</item>
+      <item>fcvt.h.s</item>
+      <item>fcvt.h.w</item>
+      <item>fcvt.h.wu</item>
+      <item>fcvt.l.h</item>
+      <item>fcvt.lu.h</item>
+      <item>fcvt.q.h</item>
+      <item>fcvt.s.h</item>
+      <item>fcvt.w.h</item>
+      <item>fcvt.wu.h</item>
+      <item>fdiv.h</item>
+      <item>feq.h</item>
+      <item>fge.h</item>
+      <item>fgt.h</item>
+      <item>fle.h</item>
+      <item>flh</item>
+      <item>flt.h</item>
+      <item>fmadd.h</item>
+      <item>fmax.h</item>
+      <item>fmin.h</item>
+      <item>fmsub.h</item>
+      <item>fmul.h</item>
+      <item>fmv.h</item>
+      <item>fmv.h.x</item>
+      <item>fmv.x.h</item>
+      <item>fneg.h</item>
+      <item>fnmadd.h</item>
+      <item>fnmsub.h</item>
+      <item>fsgnj.h</item>
+      <item>fsgnjn.h</item>
+      <item>fsgnjx.h</item>
+      <item>fsh</item>
+      <item>fsqrt.h</item>
+      <item>fsub.h</item>
+      <!-- RISC-V single-precision floating-point instructions -->
+      <item>fabs.s</item>
+      <item>fadd.s</item>
+      <item>fclass.s</item>
+      <item>fcvt.l.s</item>
+      <item>fcvt.lu.s</item>
+      <item>fcvt.s.l</item>
+      <item>fcvt.s.lu</item>
+      <item>fcvt.s.w</item>
+      <item>fcvt.s.wu</item>
+      <item>fcvt.w.s</item>
+      <item>fcvt.wu.s</item>
+      <item>fdiv.s</item>
+      <item>feq.s</item>
+      <item>fge.s</item>
+      <item>fgt.s</item>
+      <item>fle.s</item>
+      <item>flt.s</item>
+      <item>flw</item>
+      <item>fmadd.s</item>
+      <item>fmax.s</item>
+      <item>fmin.s</item>
+      <item>fmsub.s</item>
+      <item>fmul.s</item>
+      <item>fmv.s</item>
+      <item>fmv.s.x</item>
+      <item>fmv.w.x</item>
+      <item>fmv.x.s</item>
+      <item>fmv.x.w</item>
+      <item>fneg.s</item>
+      <item>fnmadd.s</item>
+      <item>fnmsub.s</item>
+      <item>frcsr</item>
+      <item>frflags</item>
+      <item>frrm</item>
+      <item>frsr</item>
+      <item>fscsr</item>
+      <item>fsflags</item>
+      <item>fsflagsi</item>
+      <item>fsgnj.s</item>
+      <item>fsgnjn.s</item>
+      <item>fsgnjx.s</item>
+      <item>fsqrt.s</item>
+      <item>fsrm</item>
+      <item>fsrmi</item>
+      <item>fssr</item>
+      <item>fsub.s</item>
+      <item>fsw</item>
+      <!-- RISC-V double-precision floating-point instructions -->
+      <item>fabs.d</item>
+      <item>add.d</item>
+      <item>class.d</item>
+      <item>cvt.d.l</item>
+      <item>cvt.d.lu</item>
+      <item>cvt.d.s</item>
+      <item>cvt.d.w</item>
+      <item>cvt.d.wu</item>
+      <item>cvt.l.d</item>
+      <item>cvt.lu.d</item>
+      <item>cvt.s.d</item>
+      <item>cvt.w.d</item>
+      <item>cvt.wu.d</item>
+      <item>div.d</item>
+      <item>eq.d</item>
+      <item>fsd</item>
+      <item>ge.d</item>
+      <item>gt.d</item>
+      <item>le.d</item>
+      <item>lt.d</item>
+      <item>madd.d</item>
+      <item>max.d</item>
+      <item>min.d</item>
+      <item>msub.d</item>
+      <item>mul.d</item>
+      <item>mv.d</item>
+      <item>mv.d.x</item>
+      <item>mv.x.d</item>
+      <item>neg.d</item>
+      <item>nmadd.d</item>
+      <item>nmsub.d</item>
+      <item>sgnj.d</item>
+      <item>sgnjn.d</item>
+      <item>sgnjx.d</item>
+      <item>sqrt.d</item>
+      <item>sub.d</item>
+      <!-- RISC-V quad-precision floating-point instruction -->
+      <item>fabs.q</item>
+      <item>fadd.q</item>
+      <item>fclass.q</item>
+      <item>fcvt.d.q</item>
+      <item>fcvt.l.q</item>
+      <item>fcvt.lu.q</item>
+      <item>fcvt.q.d</item>
+      <item>fcvt.q.l</item>
+      <item>fcvt.q.lu</item>
+      <item>fcvt.q.s</item>
+      <item>fcvt.q.w</item>
+      <item>fcvt.q.wu</item>
+      <item>fcvt.s.q</item>
+      <item>fcvt.w.q</item>
+      <item>fcvt.wu.q</item>
+      <item>fdiv.q</item>
+      <item>feq.q</item>
+      <item>fge.q</item>
+      <item>fgt.q</item>
+      <item>fle.q</item>
+      <item>flq</item>
+      <item>flt.q</item>
+      <item>fmadd.q</item>
+      <item>fmax.q</item>
+      <item>fmin.q</item>
+      <item>fmsub.q</item>
+      <item>fmul.q</item>
+      <item>fmv.q</item>
+      <item>fneg.q</item>
+      <item>fnmadd.q</item>
+      <item>fnmsub.q</item>
+      <item>fsgnj.q</item>
+      <item>fsgnjn.q</item>
+      <item>fsgnjx.q</item>
+      <item>fsq</item>
+      <item>fsqrt.q</item>
+      <item>fsub.q</item>
+      <!-- RISC-V additional floating-point instructions -->
+      <item>fcvtmod.w.d</item>
+      <item>fleq.d</item>
+      <item>fleq.h</item>
+      <item>fleq.q</item>
+      <item>fleq.s</item>
+      <item>fli.d</item>
+      <item>fli.h</item>
+      <item>fli.q</item>
+      <item>fli.s</item>
+      <item>fltq.d</item>
+      <item>fltq.h</item>
+      <item>fltq.q</item>
+      <item>fltq.s</item>
+      <item>fmaxm.d</item>
+      <item>fmaxm.h</item>
+      <item>fmaxm.q</item>
+      <item>fmaxm.s</item>
+      <item>fminm.d</item>
+      <item>fminm.h</item>
+      <item>fminm.q</item>
+      <item>fminm.s</item>
+      <item>fmvh.x.d</item>
+      <item>fmvh.x.q</item>
+      <item>fmvp.d.x</item>
+      <item>fmvp.q.x</item>
+      <item>fround.d</item>
+      <item>fround.h</item>
+      <item>fround.q</item>
+      <item>fround.s</item>
+      <item>froundnx.d</item>
+      <item>froundnx.h</item>
+      <item>froundnx.q</item>
+      <item>froundnx.s</item>
+      <!-- RISC-V compressed instructions (C) -->
+      <item>c.add</item>
+      <item>c.addi</item>
+      <item>c.addi16sp</item>
+      <item>c.addi4spn</item>
+      <item>c.addiw</item>
+      <item>c.addw</item>
+      <item>c.and</item>
+      <item>c.andi</item>
+      <item>c.beqz</item>
+      <item>c.bnez</item>
+      <item>c.ebreak</item>
+      <item>c.fld</item>
+      <item>c.fldsp</item>
+      <item>c.flw</item>
+      <item>c.flwsp</item>
+      <item>c.fsd</item>
+      <item>c.fsdsp</item>
+      <item>c.fsw</item>
+      <item>c.fswsp</item>
+      <item>c.j</item>
+      <item>c.jal</item>
+      <item>c.jalr</item>
+      <item>c.jr</item>
+      <item>c.ld</item>
+      <item>c.ldsp</item>
+      <item>c.li</item>
+      <item>c.lui</item>
+      <item>c.lw</item>
+      <item>c.lwsp</item>
+      <item>c.mv</item>
+      <item>c.nop</item>
+      <item>c.or</item>
+      <item>c.sd</item>
+      <item>c.sdsp</item>
+      <item>c.slli</item>
+      <item>c.slli64</item>
+      <item>c.srai</item>
+      <item>c.srai64</item>
+      <item>c.srli</item>
+      <item>c.srli64</item>
+      <item>c.sub</item>
+      <item>c.subw</item>
+      <item>c.sw</item>
+      <item>c.swsp</item>
+      <item>c.unimp</item>
+      <item>c.xor</item>
+      <!-- RISC-V code size reduction (Zcmp) -->
+      <item>cm.mva01s</item>
+      <item>cm.mvsa01</item>
+      <item>cm.pop</item>
+      <item>cm.push</item>
+      <!-- RISC-V code size reduction (Zcb) -->
+      <item>c.lbu</item>
+      <item>c.lh</item>
+      <item>c.lhu</item>
+      <item>c.mul</item>
+      <item>c.not</item>
+      <item>c.sb</item>
+      <item>c.sext.b</item>
+      <item>c.sext.h</item>
+      <item>c.sext.w</item>
+      <item>c.sh</item>
+      <item>c.zext.b</item>
+      <item>c.zext.h</item>
+      <item>c.zext.w</item>
+      <!-- RISC-V bit manipulation instructions (B) -->
+      <item>add.uw</item>
+      <item>andn</item>
+      <item>bclr</item>
+      <item>bclri</item>
+      <item>bext</item>
+      <item>bexti</item>
+      <item>binv</item>
+      <item>binvi</item>
+      <item>brev8</item>
+      <item>bset</item>
+      <item>bseti</item>
+      <item>clmul</item>
+      <item>clmulh</item>
+      <item>clmulr</item>
+      <item>clz</item>
+      <item>clzw</item>
+      <item>cpop</item>
+      <item>cpopw</item>
+      <item>ctz</item>
+      <item>ctzw</item>
+      <item>max</item>
+      <item>maxu</item>
+      <item>min</item>
+      <item>minu</item>
+      <item>orc.b</item>
+      <item>orn</item>
+      <item>pack</item>
+      <item>packh</item>
+      <item>packw</item>
+      <item>rev8</item>
+      <item>rol</item>
+      <item>rolw</item>
+      <item>ror</item>
+      <item>rori</item>
+      <item>roriw</item>
+      <item>rorw</item>
+      <item>sext.b</item>
+      <item>sext.h</item>
+      <item>sh1add</item>
+      <item>sh1add.uw</item>
+      <item>sh2add</item>
+      <item>sh2add.uw</item>
+      <item>sh3add</item>
+      <item>sh3add.uw</item>
+      <item>slli.uw</item>
+      <item>unzip</item>
+      <item>xnor</item>
+      <item>xperm4</item>
+      <item>xperm8</item>
+      <item>zext.h</item>
+      <item>zext.w</item>
+      <item>zip</item>
+      <!-- RISC-V RVV vector instructions -->
+      <item>vaadd.vv</item>
+      <item>vaadd.vx</item>
+      <item>vaaddu.vv</item>
+      <item>vaaddu.vx</item>
+      <item>vadc.vim</item>
+      <item>vadc.vvm</item>
+      <item>vadc.vxm</item>
+      <item>vadd.vi</item>
+      <item>vadd.vv</item>
+      <item>vadd.vx</item>
+      <item>vand.vi</item>
+      <item>vand.vv</item>
+      <item>vand.vx</item>
+      <item>vasub.vv</item>
+      <item>vasub.vx</item>
+      <item>vasubu.vv</item>
+      <item>vasubu.vx</item>
+      <item>vcompress.vm</item>
+      <item>vcpop.m</item>
+      <item>vdiv.vv</item>
+      <item>vdiv.vx</item>
+      <item>vdivu.vv</item>
+      <item>vdivu.vx</item>
+      <item>vfabs.v</item>
+      <item>vfadd.vf</item>
+      <item>vfadd.vv</item>
+      <item>vfclass.v</item>
+      <item>vfcvt.f.x.v</item>
+      <item>vfcvt.f.xu.v</item>
+      <item>vfcvt.rtz.x.f.v</item>
+      <item>vfcvt.rtz.xu.f.v</item>
+      <item>vfcvt.x.f.v</item>
+      <item>vfcvt.xu.f.v</item>
+      <item>vfdiv.vf</item>
+      <item>vfdiv.vv</item>
+      <item>vfirst.m</item>
+      <item>vfmacc.vf</item>
+      <item>vfmacc.vv</item>
+      <item>vfmadd.vf</item>
+      <item>vfmadd.vv</item>
+      <item>vfmax.vf</item>
+      <item>vfmax.vv</item>
+      <item>vfmerge.vfm</item>
+      <item>vfmin.vf</item>
+      <item>vfmin.vv</item>
+      <item>vfmsac.vf</item>
+      <item>vfmsac.vv</item>
+      <item>vfmsub.vf</item>
+      <item>vfmsub.vv</item>
+      <item>vfmul.vf</item>
+      <item>vfmul.vv</item>
+      <item>vfmv.f.s</item>
+      <item>vfmv.s.f</item>
+      <item>vfmv.v.f</item>
+      <item>vfncvt.f.f.w</item>
+      <item>vfncvt.f.x.w</item>
+      <item>vfncvt.f.xu.w</item>
+      <item>vfncvt.rod.f.f.w</item>
+      <item>vfncvt.rtz.x.f.w</item>
+      <item>vfncvt.rtz.xu.f.w</item>
+      <item>vfncvt.x.f.w</item>
+      <item>vfncvt.xu.f.w</item>
+      <item>vfneg.v</item>
+      <item>vfnmacc.vf</item>
+      <item>vfnmacc.vv</item>
+      <item>vfnmadd.vf</item>
+      <item>vfnmadd.vv</item>
+      <item>vfnmsac.vf</item>
+      <item>vfnmsac.vv</item>
+      <item>vfnmsub.vf</item>
+      <item>vfnmsub.vv</item>
+      <item>vfrdiv.vf</item>
+      <item>vfrec7.v</item>
+      <item>vfrece7.v</item>
+      <item>vfredmax.vs</item>
+      <item>vfredmin.vs</item>
+      <item>vfredosum.vs</item>
+      <item>vfredsum.vs</item>
+      <item>vfredusum.vs</item>
+      <item>vfrsqrt7.v</item>
+      <item>vfrsqrte7.v</item>
+      <item>vfrsub.vf</item>
+      <item>vfsgnj.vf</item>
+      <item>vfsgnj.vv</item>
+      <item>vfsgnjn.vf</item>
+      <item>vfsgnjn.vv</item>
+      <item>vfsgnjx.vf</item>
+      <item>vfsgnjx.vv</item>
+      <item>vfslide1down.vf</item>
+      <item>vfslide1up.vf</item>
+      <item>vfsqrt.v</item>
+      <item>vfsub.vf</item>
+      <item>vfsub.vv</item>
+      <item>vfwadd.vf</item>
+      <item>vfwadd.vv</item>
+      <item>vfwadd.wf</item>
+      <item>vfwadd.wv</item>
+      <item>vfwcvt.f.f.v</item>
+      <item>vfwcvt.f.x.v</item>
+      <item>vfwcvt.f.xu.v</item>
+      <item>vfwcvt.rtz.x.f.v</item>
+      <item>vfwcvt.rtz.xu.f.v</item>
+      <item>vfwcvt.x.f.v</item>
+      <item>vfwcvt.xu.f.v</item>
+      <item>vfwmacc.vf</item>
+      <item>vfwmacc.vv</item>
+      <item>vfwmsac.vf</item>
+      <item>vfwmsac.vv</item>
+      <item>vfwmul.vf</item>
+      <item>vfwmul.vv</item>
+      <item>vfwnmacc.vf</item>
+      <item>vfwnmacc.vv</item>
+      <item>vfwnmsac.vf</item>
+      <item>vfwnmsac.vv</item>
+      <item>vfwredosum.vs</item>
+      <item>vfwredsum.vs</item>
+      <item>vfwredusum.vs</item>
+      <item>vfwsub.vf</item>
+      <item>vfwsub.vv</item>
+      <item>vfwsub.wf</item>
+      <item>vfwsub.wv</item>
+      <item>vid.v</item>
+      <item>viota.m</item>
+      <item>vl1r.v</item>
+      <item>vl1re16.v</item>
+      <item>vl1re32.v</item>
+      <item>vl1re64.v</item>
+      <item>vl1re8.v</item>
+      <item>vl2r.v</item>
+      <item>vl2re16.v</item>
+      <item>vl2re32.v</item>
+      <item>vl2re64.v</item>
+      <item>vl2re8.v</item>
+      <item>vl4r.v</item>
+      <item>vl4re16.v</item>
+      <item>vl4re32.v</item>
+      <item>vl4re64.v</item>
+      <item>vl4re8.v</item>
+      <item>vl8r.v</item>
+      <item>vl8re16.v</item>
+      <item>vl8re32.v</item>
+      <item>vl8re64.v</item>
+      <item>vl8re8.v</item>
+      <item>vle1.v</item>
+      <item>vle16.v</item>
+      <item>vle16ff.v</item>
+      <item>vle32.v</item>
+      <item>vle32ff.v</item>
+      <item>vle64.v</item>
+      <item>vle64ff.v</item>
+      <item>vle8.v</item>
+      <item>vle8ff.v</item>
+      <item>vlm.v</item>
+      <item>vloxei16.v</item>
+      <item>vloxei32.v</item>
+      <item>vloxei64.v</item>
+      <item>vloxei8.v</item>
+      <item>vloxseg2ei16.v</item>
+      <item>vloxseg2ei32.v</item>
+      <item>vloxseg2ei64.v</item>
+      <item>vloxseg2ei8.v</item>
+      <item>vloxseg3ei16.v</item>
+      <item>vloxseg3ei32.v</item>
+      <item>vloxseg3ei64.v</item>
+      <item>vloxseg3ei8.v</item>
+      <item>vloxseg4ei16.v</item>
+      <item>vloxseg4ei32.v</item>
+      <item>vloxseg4ei64.v</item>
+      <item>vloxseg4ei8.v</item>
+      <item>vloxseg5ei16.v</item>
+      <item>vloxseg5ei32.v</item>
+      <item>vloxseg5ei64.v</item>
+      <item>vloxseg5ei8.v</item>
+      <item>vloxseg6ei16.v</item>
+      <item>vloxseg6ei32.v</item>
+      <item>vloxseg6ei64.v</item>
+      <item>vloxseg6ei8.v</item>
+      <item>vloxseg7ei16.v</item>
+      <item>vloxseg7ei32.v</item>
+      <item>vloxseg7ei64.v</item>
+      <item>vloxseg7ei8.v</item>
+      <item>vloxseg8ei16.v</item>
+      <item>vloxseg8ei32.v</item>
+      <item>vloxseg8ei64.v</item>
+      <item>vloxseg8ei8.v</item>
+      <item>vlse16.v</item>
+      <item>vlse32.v</item>
+      <item>vlse64.v</item>
+      <item>vlse8.v</item>
+      <item>vlseg2e16.v</item>
+      <item>vlseg2e16ff.v</item>
+      <item>vlseg2e32.v</item>
+      <item>vlseg2e32ff.v</item>
+      <item>vlseg2e64.v</item>
+      <item>vlseg2e64ff.v</item>
+      <item>vlseg2e8.v</item>
+      <item>vlseg2e8ff.v</item>
+      <item>vlseg3e16.v</item>
+      <item>vlseg3e16ff.v</item>
+      <item>vlseg3e32.v</item>
+      <item>vlseg3e32ff.v</item>
+      <item>vlseg3e64.v</item>
+      <item>vlseg3e64ff.v</item>
+      <item>vlseg3e8.v</item>
+      <item>vlseg3e8ff.v</item>
+      <item>vlseg4e16.v</item>
+      <item>vlseg4e16ff.v</item>
+      <item>vlseg4e32.v</item>
+      <item>vlseg4e32ff.v</item>
+      <item>vlseg4e64.v</item>
+      <item>vlseg4e64ff.v</item>
+      <item>vlseg4e8.v</item>
+      <item>vlseg4e8ff.v</item>
+      <item>vlseg5e16.v</item>
+      <item>vlseg5e16ff.v</item>
+      <item>vlseg5e32.v</item>
+      <item>vlseg5e32ff.v</item>
+      <item>vlseg5e64.v</item>
+      <item>vlseg5e64ff.v</item>
+      <item>vlseg5e8.v</item>
+      <item>vlseg5e8ff.v</item>
+      <item>vlseg6e16.v</item>
+      <item>vlseg6e16ff.v</item>
+      <item>vlseg6e32.v</item>
+      <item>vlseg6e32ff.v</item>
+      <item>vlseg6e64.v</item>
+      <item>vlseg6e64ff.v</item>
+      <item>vlseg6e8.v</item>
+      <item>vlseg6e8ff.v</item>
+      <item>vlseg7e16.v</item>
+      <item>vlseg7e16ff.v</item>
+      <item>vlseg7e32.v</item>
+      <item>vlseg7e32ff.v</item>
+      <item>vlseg7e64.v</item>
+      <item>vlseg7e64ff.v</item>
+      <item>vlseg7e8.v</item>
+      <item>vlseg7e8ff.v</item>
+      <item>vlseg8e16.v</item>
+      <item>vlseg8e16ff.v</item>
+      <item>vlseg8e32.v</item>
+      <item>vlseg8e32ff.v</item>
+      <item>vlseg8e64.v</item>
+      <item>vlseg8e64ff.v</item>
+      <item>vlseg8e8.v</item>
+      <item>vlseg8e8ff.v</item>
+      <item>vlsseg2e16.v</item>
+      <item>vlsseg2e32.v</item>
+      <item>vlsseg2e64.v</item>
+      <item>vlsseg2e8.v</item>
+      <item>vlsseg3e16.v</item>
+      <item>vlsseg3e32.v</item>
+      <item>vlsseg3e64.v</item>
+      <item>vlsseg3e8.v</item>
+      <item>vlsseg4e16.v</item>
+      <item>vlsseg4e32.v</item>
+      <item>vlsseg4e64.v</item>
+      <item>vlsseg4e8.v</item>
+      <item>vlsseg5e16.v</item>
+      <item>vlsseg5e32.v</item>
+      <item>vlsseg5e64.v</item>
+      <item>vlsseg5e8.v</item>
+      <item>vlsseg6e16.v</item>
+      <item>vlsseg6e32.v</item>
+      <item>vlsseg6e64.v</item>
+      <item>vlsseg6e8.v</item>
+      <item>vlsseg7e16.v</item>
+      <item>vlsseg7e32.v</item>
+      <item>vlsseg7e64.v</item>
+      <item>vlsseg7e8.v</item>
+      <item>vlsseg8e16.v</item>
+      <item>vlsseg8e32.v</item>
+      <item>vlsseg8e64.v</item>
+      <item>vlsseg8e8.v</item>
+      <item>vluxei16.v</item>
+      <item>vluxei32.v</item>
+      <item>vluxei64.v</item>
+      <item>vluxei8.v</item>
+      <item>vluxseg2ei16.v</item>
+      <item>vluxseg2ei32.v</item>
+      <item>vluxseg2ei64.v</item>
+      <item>vluxseg2ei8.v</item>
+      <item>vluxseg3ei16.v</item>
+      <item>vluxseg3ei32.v</item>
+      <item>vluxseg3ei64.v</item>
+      <item>vluxseg3ei8.v</item>
+      <item>vluxseg4ei16.v</item>
+      <item>vluxseg4ei32.v</item>
+      <item>vluxseg4ei64.v</item>
+      <item>vluxseg4ei8.v</item>
+      <item>vluxseg5ei16.v</item>
+      <item>vluxseg5ei32.v</item>
+      <item>vluxseg5ei64.v</item>
+      <item>vluxseg5ei8.v</item>
+      <item>vluxseg6ei16.v</item>
+      <item>vluxseg6ei32.v</item>
+      <item>vluxseg6ei64.v</item>
+      <item>vluxseg6ei8.v</item>
+      <item>vluxseg7ei16.v</item>
+      <item>vluxseg7ei32.v</item>
+      <item>vluxseg7ei64.v</item>
+      <item>vluxseg7ei8.v</item>
+      <item>vluxseg8ei16.v</item>
+      <item>vluxseg8ei32.v</item>
+      <item>vluxseg8ei64.v</item>
+      <item>vluxseg8ei8.v</item>
+      <item>vmacc.vv</item>
+      <item>vmacc.vx</item>
+      <item>vmadc.vi</item>
+      <item>vmadc.vim</item>
+      <item>vmadc.vv</item>
+      <item>vmadc.vvm</item>
+      <item>vmadc.vx</item>
+      <item>vmadc.vxm</item>
+      <item>vmadd.vv</item>
+      <item>vmadd.vx</item>
+      <item>vmand.mm</item>
+      <item>vmandn.mm</item>
+      <item>vmandnot.mm</item>
+      <item>vmax.vv</item>
+      <item>vmax.vx</item>
+      <item>vmaxu.vv</item>
+      <item>vmaxu.vx</item>
+      <item>vmclr.m</item>
+      <item>vmcpy.m</item>
+      <item>vmerge.vim</item>
+      <item>vmerge.vvm</item>
+      <item>vmerge.vxm</item>
+      <item>vmfeq.vf</item>
+      <item>vmfeq.vv</item>
+      <item>vmfge.vf</item>
+      <item>vmfge.vv</item>
+      <item>vmfgt.vf</item>
+      <item>vmfgt.vv</item>
+      <item>vmfle.vf</item>
+      <item>vmfle.vv</item>
+      <item>vmflt.vf</item>
+      <item>vmflt.vv</item>
+      <item>vmfne.vf</item>
+      <item>vmfne.vv</item>
+      <item>vmin.vv</item>
+      <item>vmin.vx</item>
+      <item>vminu.vv</item>
+      <item>vminu.vx</item>
+      <item>vmnand.mm</item>
+      <item>vmnor.mm</item>
+      <item>vmnot.m</item>
+      <item>vmor.mm</item>
+      <item>vmorn.mm</item>
+      <item>vmornot.mm</item>
+      <item>vmsbc.vv</item>
+      <item>vmsbc.vvm</item>
+      <item>vmsbc.vx</item>
+      <item>vmsbc.vxm</item>
+      <item>vmsbf.m</item>
+      <item>vmseq.vi</item>
+      <item>vmseq.vv</item>
+      <item>vmseq.vx</item>
+      <item>vmset.m</item>
+      <item>vmsge.vi</item>
+      <item>vmsge.vv</item>
+      <item>vmsge.vx</item>
+      <item>vmsgeu.vi</item>
+      <item>vmsgeu.vv</item>
+      <item>vmsgeu.vx</item>
+      <item>vmsgt.vi</item>
+      <item>vmsgt.vv</item>
+      <item>vmsgt.vx</item>
+      <item>vmsgtu.vi</item>
+      <item>vmsgtu.vv</item>
+      <item>vmsgtu.vx</item>
+      <item>vmsif.m</item>
+      <item>vmsle.vi</item>
+      <item>vmsle.vv</item>
+      <item>vmsle.vx</item>
+      <item>vmsleu.vi</item>
+      <item>vmsleu.vv</item>
+      <item>vmsleu.vx</item>
+      <item>vmslt.vi</item>
+      <item>vmslt.vv</item>
+      <item>vmslt.vx</item>
+      <item>vmsltu.vi</item>
+      <item>vmsltu.vv</item>
+      <item>vmsltu.vx</item>
+      <item>vmsne.vi</item>
+      <item>vmsne.vv</item>
+      <item>vmsne.vx</item>
+      <item>vmsof.m</item>
+      <item>vmul.vv</item>
+      <item>vmul.vx</item>
+      <item>vmulh.vv</item>
+      <item>vmulh.vx</item>
+      <item>vmulhsu.vv</item>
+      <item>vmulhsu.vx</item>
+      <item>vmulhu.vv</item>
+      <item>vmulhu.vx</item>
+      <item>vmv.s.x</item>
+      <item>vmv.v.i</item>
+      <item>vmv.v.v</item>
+      <item>vmv.v.x</item>
+      <item>vmv.x.s</item>
+      <item>vmv1r.v</item>
+      <item>vmv2r.v</item>
+      <item>vmv4r.v</item>
+      <item>vmv8r.v</item>
+      <item>vmxnor.mm</item>
+      <item>vmxor.mm</item>
+      <item>vnclip.wi</item>
+      <item>vnclip.wv</item>
+      <item>vnclip.wx</item>
+      <item>vnclipu.wi</item>
+      <item>vnclipu.wv</item>
+      <item>vnclipu.wx</item>
+      <item>vncvt.x.x.w</item>
+      <item>vneg.v</item>
+      <item>vnmsac.vv</item>
+      <item>vnmsac.vx</item>
+      <item>vnmsub.vv</item>
+      <item>vnmsub.vx</item>
+      <item>vnot.v</item>
+      <item>vnsra.wi</item>
+      <item>vnsra.wv</item>
+      <item>vnsra.wx</item>
+      <item>vnsrl.wi</item>
+      <item>vnsrl.wv</item>
+      <item>vnsrl.wx</item>
+      <item>vor.vi</item>
+      <item>vor.vv</item>
+      <item>vor.vx</item>
+      <item>vpopc.m</item>
+      <item>vredand.vs</item>
+      <item>vredmax.vs</item>
+      <item>vredmaxu.vs</item>
+      <item>vredmin.vs</item> <item>vmmv.m</item>
+      <item>vredminu.vs</item>
+      <item>vredor.vs</item>
+      <item>vredsum.vs</item>
+      <item>vredxor.vs</item>
+      <item>vrem.vv</item>
+      <item>vrem.vx</item>
+      <item>vremu.vv</item>
+      <item>vremu.vx</item>
+      <item>vrgather.vi</item>
+      <item>vrgather.vv</item>
+      <item>vrgather.vx</item>
+      <item>vrgatherei16.vv</item>
+      <item>vrsub.vi</item>
+      <item>vrsub.vx</item>
+      <item>vs1r.v</item>
+      <item>vs2r.v</item>
+      <item>vs4r.v</item>
+      <item>vs8r.v</item>
+      <item>vsadd.vi</item>
+      <item>vsadd.vv</item>
+      <item>vsadd.vx</item>
+      <item>vsaddu.vi</item>
+      <item>vsaddu.vv</item>
+      <item>vsaddu.vx</item>
+      <item>vsbc.vvm</item>
+      <item>vsbc.vxm</item>
+      <item>vse1.v</item>
+      <item>vse16.v</item>
+      <item>vse32.v</item>
+      <item>vse64.v</item>
+      <item>vse8.v</item>
+      <item>vsetivli</item>
+      <item>vsetvl</item>
+      <item>vsetvli</item>
+      <item>vsext.vf2</item>
+      <item>vsext.vf4</item>
+      <item>vsext.vf8</item>
+      <item>vslide1down.vx</item>
+      <item>vslide1up.vx</item>
+      <item>vslidedown.vi</item>
+      <item>vslidedown.vx</item>
+      <item>vslideup.vi</item>
+      <item>vslideup.vx</item>
+      <item>vsll.vi</item>
+      <item>vsll.vv</item>
+      <item>vsll.vx</item>
+      <item>vsm.v</item>
+      <item>vsmul.vv</item>
+      <item>vsmul.vx</item>
+      <item>vsoxei16.v</item>
+      <item>vsoxei32.v</item>
+      <item>vsoxei64.v</item>
+      <item>vsoxei8.v</item>
+      <item>vsoxseg2ei16.v</item>
+      <item>vsoxseg2ei32.v</item>
+      <item>vsoxseg2ei64.v</item>
+      <item>vsoxseg2ei8.v</item>
+      <item>vsoxseg3ei16.v</item>
+      <item>vsoxseg3ei32.v</item>
+      <item>vsoxseg3ei64.v</item>
+      <item>vsoxseg3ei8.v</item>
+      <item>vsoxseg4ei16.v</item>
+      <item>vsoxseg4ei32.v</item>
+      <item>vsoxseg4ei64.v</item>
+      <item>vsoxseg4ei8.v</item>
+      <item>vsoxseg5ei16.v</item>
+      <item>vsoxseg5ei32.v</item>
+      <item>vsoxseg5ei64.v</item>
+      <item>vsoxseg5ei8.v</item>
+      <item>vsoxseg6ei16.v</item>
+      <item>vsoxseg6ei32.v</item>
+      <item>vsoxseg6ei64.v</item>
+      <item>vsoxseg6ei8.v</item>
+      <item>vsoxseg7ei16.v</item>
+      <item>vsoxseg7ei32.v</item>
+      <item>vsoxseg7ei64.v</item>
+      <item>vsoxseg7ei8.v</item>
+      <item>vsoxseg8ei16.v</item>
+      <item>vsoxseg8ei32.v</item>
+      <item>vsoxseg8ei64.v</item>
+      <item>vsoxseg8ei8.v</item>
+      <item>vsra.vi</item>
+      <item>vsra.vv</item>
+      <item>vsra.vx</item>
+      <item>vsrl.vi</item>
+      <item>vsrl.vv</item>
+      <item>vsrl.vx</item>
+      <item>vsse16.v</item>
+      <item>vsse32.v</item>
+      <item>vsse64.v</item>
+      <item>vsse8.v</item>
+      <item>vsseg2e16.v</item>
+      <item>vsseg2e32.v</item>
+      <item>vsseg2e64.v</item>
+      <item>vsseg2e8.v</item>
+      <item>vsseg3e16.v</item>
+      <item>vsseg3e32.v</item>
+      <item>vsseg3e64.v</item>
+      <item>vsseg3e8.v</item>
+      <item>vsseg4e16.v</item>
+      <item>vsseg4e32.v</item>
+      <item>vsseg4e64.v</item>
+      <item>vsseg4e8.v</item>
+      <item>vsseg5e16.v</item>
+      <item>vsseg5e32.v</item>
+      <item>vsseg5e64.v</item>
+      <item>vsseg5e8.v</item>
+      <item>vsseg6e16.v</item>
+      <item>vsseg6e32.v</item>
+      <item>vsseg6e64.v</item>
+      <item>vsseg6e8.v</item>
+      <item>vsseg7e16.v</item>
+      <item>vsseg7e32.v</item>
+      <item>vsseg7e64.v</item>
+      <item>vsseg7e8.v</item>
+      <item>vsseg8e16.v</item>
+      <item>vsseg8e32.v</item>
+      <item>vsseg8e64.v</item>
+      <item>vsseg8e8.v</item>
+      <item>vssra.vi</item>
+      <item>vssra.vv</item>
+      <item>vssra.vx</item>
+      <item>vssrl.vi</item>
+      <item>vssrl.vv</item>
+      <item>vssrl.vx</item>
+      <item>vssseg2e16.v</item>
+      <item>vssseg2e32.v</item>
+      <item>vssseg2e64.v</item>
+      <item>vssseg2e8.v</item>
+      <item>vssseg3e16.v</item>
+      <item>vssseg3e32.v</item>
+      <item>vssseg3e64.v</item>
+      <item>vssseg3e8.v</item>
+      <item>vssseg4e16.v</item>
+      <item>vssseg4e32.v</item>
+      <item>vssseg4e64.v</item>
+      <item>vssseg4e8.v</item>
+      <item>vssseg5e16.v</item>
+      <item>vssseg5e32.v</item>
+      <item>vssseg5e64.v</item>
+      <item>vssseg5e8.v</item>
+      <item>vssseg6e16.v</item>
+      <item>vssseg6e32.v</item>
+      <item>vssseg6e64.v</item>
+      <item>vssseg6e8.v</item>
+      <item>vssseg7e16.v</item>
+      <item>vssseg7e32.v</item>
+      <item>vssseg7e64.v</item>
+      <item>vssseg7e8.v</item>
+      <item>vssseg8e16.v</item>
+      <item>vssseg8e32.v</item>
+      <item>vssseg8e64.v</item>
+      <item>vssseg8e8.v</item>
+      <item>vssub.vv</item>
+      <item>vssub.vx</item>
+      <item>vssubu.vv</item>
+      <item>vssubu.vx</item>
+      <item>vsub.vv</item>
+      <item>vsub.vx</item>
+      <item>vsuxei16.v</item>
+      <item>vsuxei32.v</item>
+      <item>vsuxei64.v</item>
+      <item>vsuxei8.v</item>
+      <item>vsuxseg2ei16.v</item>
+      <item>vsuxseg2ei32.v</item>
+      <item>vsuxseg2ei64.v</item>
+      <item>vsuxseg2ei8.v</item>
+      <item>vsuxseg3ei16.v</item>
+      <item>vsuxseg3ei32.v</item>
+      <item>vsuxseg3ei64.v</item>
+      <item>vsuxseg3ei8.v</item>
+      <item>vsuxseg4ei16.v</item>
+      <item>vsuxseg4ei32.v</item>
+      <item>vsuxseg4ei64.v</item>
+      <item>vsuxseg4ei8.v</item>
+      <item>vsuxseg5ei16.v</item>
+      <item>vsuxseg5ei32.v</item>
+      <item>vsuxseg5ei64.v</item>
+      <item>vsuxseg5ei8.v</item>
+      <item>vsuxseg6ei16.v</item>
+      <item>vsuxseg6ei32.v</item>
+      <item>vsuxseg6ei64.v</item>
+      <item>vsuxseg6ei8.v</item>
+      <item>vsuxseg7ei16.v</item>
+      <item>vsuxseg7ei32.v</item>
+      <item>vsuxseg7ei64.v</item>
+      <item>vsuxseg7ei8.v</item>
+      <item>vsuxseg8ei16.v</item>
+      <item>vsuxseg8ei32.v</item>
+      <item>vsuxseg8ei64.v</item>
+      <item>vsuxseg8ei8.v</item>
+      <item>vwadd.vv</item>
+      <item>vwadd.vx</item>
+      <item>vwadd.wv</item>
+      <item>vwadd.wx</item>
+      <item>vwaddu.vv</item>
+      <item>vwaddu.vx</item>
+      <item>vwaddu.wv</item>
+      <item>vwaddu.wx</item>
+      <item>vwcvt.x.x.v</item>
+      <item>vwcvtu.x.x.v</item>
+      <item>vwmacc.vv</item>
+      <item>vwmacc.vx</item>
+      <item>vwmaccsu.vv</item>
+      <item>vwmaccsu.vx</item>
+      <item>vwmaccu.vv</item>
+      <item>vwmaccu.vx</item>
+      <item>vwmaccus.vx</item>
+      <item>vwmul.vv</item>
+      <item>vwmul.vx</item>
+      <item>vwmulsu.vv</item>
+      <item>vwmulsu.vx</item>
+      <item>vwmulu.vv</item>
+      <item>vwmulu.vx</item>
+      <item>vwredsum.vs</item>
+      <item>vwredsumu.vs</item>
+      <item>vwsub.vv</item>
+      <item>vwsub.vx</item>
+      <item>vwsub.wv</item>
+      <item>vwsub.wx</item>
+      <item>vwsubu.vv</item>
+      <item>vwsubu.vx</item>
+      <item>vwsubu.wv</item>
+      <item>vwsubu.wx</item>
+      <item>vxor.vi</item>
+      <item>vxor.vv</item>
+      <item>vxor.vx</item>
+      <item>vzext.vf2</item>
+      <item>vzext.vf4</item>
+      <item>vzext.vf8</item>
+      <!-- RISC-V NIST suite cryptography instructions -->
+      <item>aes32dsi</item>
+      <item>aes32dsmi</item>
+      <item>aes32esi</item>
+      <item>aes32esmi</item>
+      <item>aes64ds</item>
+      <item>aes64dsm</item>
+      <item>aes64es</item>
+      <item>aes64esm</item>
+      <item>aes64im</item>
+      <item>aes64ks1i</item>
+      <item>aes64ks2</item>
+      <item>sha256sig0</item>
+      <item>sha256sig1</item>
+      <item>sha256sum0</item>
+      <item>sha256sum1</item>
+      <item>sha512sig0</item>
+      <item>sha512sig0h</item>
+      <item>sha512sig0l</item>
+      <item>sha512sig1</item>
+      <item>sha512sig1h</item>
+      <item>sha512sig1l</item>
+      <item>sha512sum0</item>
+      <item>sha512sum0r</item>
+      <item>sha512sum1</item>
+      <item>sha512sum1r</item>
+      <!-- RISC-V ShangMi suite cryptography -->
+      <item>sm3p0</item>
+      <item>sm3p1</item>
+      <item>sm4ed</item>
+      <item>sm4ks</item>
+      <!-- RISC-V vector bit-manipulation (Zvbb/Zvkb) -->
+      <item>vandn.vv</item>
+      <item>vandn.vx</item>
+      <item>vbrev.v</item>
+      <item>vbrev8.v</item>
+      <item>vclz.v</item>
+      <item>vcpop.v</item>
+      <item>vctz.v</item>
+      <item>vrev8.v</item>
+      <item>vrol.vv</item>
+      <item>vrol.vx</item>
+      <item>vror.vi</item>
+      <item>vror.vv</item>
+      <item>vror.vx</item>
+      <item>vwsll.vi</item>
+      <item>vwsll.vv</item>
+      <item>vwsll.vx</item>
+      <!-- RISC-V vector carryless multiplication (Zvbc) -->
+      <item>vclmul.vv</item>
+      <item>vclmul.vx</item>
+      <item>vclmulh.vv</item>
+      <item>vclmulh.vx</item>
+      <!-- RISC-V vector GCM/GMAC (Zvkg) -->
+      <item>vghsh.vv</item>
+      <item>vgmul.vv</item>
+      <!-- RISC-V NIST suite vector AES block cipher (Zvkned) -->
+      <item>vaesdf.vs</item>
+      <item>vaesdf.vv</item>
+      <item>vaesdm.vs</item>
+      <item>vaesdm.vv</item>
+      <item>vaesef.vs</item>
+      <item>vaesef.vv</item>
+      <item>vaesem.vs</item>
+      <item>vaesem.vv</item>
+      <item>vaeskf1.vi</item>
+      <item>vaeskf2.vi</item>
+      <item>vaesz.vs</item>
+      <!-- RISC-V NIST suite vector SHA-2 secure hash (Zvknh[ab]) -->
+      <item>vsha2ch.vv</item>
+      <item>vsha2cl.vv</item>
+      <item>vsha2ms.vv</item>
+      <!-- RISC-V ShangMi suite SM4 block cipher (Zvksed) -->
+      <item>vsm4k.vi</item>
+      <item>vsm4r.vs</item>
+      <item>vsm4r.vv</item>
+      <!-- RISC-V ShangMi suite SM3 secure hash (Zvksh) -->
+      <item>vsm3c.vi</item>
+      <item>vsm3me.vv</item>
+      <!-- RISC-V BF16 instructions (Zvfbfmin, Zvfbfwma) -->
+      <item>fcvt.bf16.s</item>
+      <item>fcvt.s.bf16</item>
+      <item>vfncvtbf16.f.f.w</item>
+      <item>vfwcvtbf16.f.f.v</item>
+      <item>vfwmaccbf16.vf</item>
+      <item>vfwmaccbf16.vv</item>
+      <!-- RISC-V supervisor/hypervisor support (H) -->
+      <item>hfence.gvma</item>
+      <item>hfence.vvma</item>
+      <item>hlv.b</item>
+      <item>hlv.bu</item>
+      <item>hlv.d</item>
+      <item>hlv.h</item>
+      <item>hlv.hu</item>
+      <item>hlv.w</item>
+      <item>hlv.wu</item>
+      <item>hlvx.hu</item>
+      <item>hlvx.wu</item>
+      <item>hsv.b</item>
+      <item>hsv.d</item>
+      <item>hsv.h</item>
+      <item>hsv.w</item>
+      <item>sfence.vma</item>
+      <!-- RISC-V fine-grained address-translation cache invalidations (Svinval) -->
+      <item>hinval.gvma</item>
+      <item>hinval.vvma</item>
+      <item>sfence.inval.ir</item>
+      <item>sfence.w.inval</item>
+      <item>sinval.vma</item>
+      <!-- RISC-V shadow stack (Zicfiss) -->
+      <item>c.sspopchk</item>
+      <item>c.sspush</item>
+      <item>ssamoswap.d</item>
+      <item>ssamoswap.d.aq</item>
+      <item>ssamoswap.d.aqrl</item>
+      <item>ssamoswap.d.rl</item>
+      <item>ssamoswap.w</item>
+      <item>ssamoswap.w.aq</item>
+      <item>ssamoswap.w.aqrl</item>
+      <item>ssamoswap.w.rl</item>
+      <item>sspopchk</item>
+      <item>sspush</item>
+      <item>ssrdp</item>
+      <!-- RISC-V landing pad (Zicfilp) -->
+      <item>lpad</item>
+    </list>
+
+    <list name="vendor-specific instructions">
+      <!-- RISC-V CORE-V multiply-accumulate (Xcvmac) instructions -->
+      <item>cv.mac</item>
+      <item>cv.machhsn</item>
+      <item>cv.machhsrn</item>
+      <item>cv.machhun</item>
+      <item>cv.machhurn</item>
+      <item>cv.macsn</item>
+      <item>cv.macsrn</item>
+      <item>cv.macun</item>
+      <item>cv.macurn</item>
+      <item>cv.msu</item>
+      <item>cv.mulhhs</item>
+      <item>cv.mulhhsn</item>
+      <item>cv.mulhhsrn</item>
+      <item>cv.mulhhu</item>
+      <item>cv.mulhhun</item>
+      <item>cv.mulhhurn</item>
+      <item>cv.muls</item>
+      <item>cv.mulsn</item>
+      <item>cv.mulsrn</item>
+      <item>cv.mulu</item>
+      <item>cv.mulun</item>
+      <item>cv.mulurn</item>
+      <!-- RISC-V CORE-V advanced ALU (Xcvalu) instructions -->
+      <item>cv.abs</item>
+      <item>cv.addn</item>
+      <item>cv.addnr</item>
+      <item>cv.addrn</item>
+      <item>cv.addrnr</item>
+      <item>cv.addun</item>
+      <item>cv.addunr</item>
+      <item>cv.addurn</item>
+      <item>cv.addurnr</item>
+      <item>cv.clip</item>
+      <item>cv.clipr</item>
+      <item>cv.clipu</item>
+      <item>cv.clipur</item>
+      <item>cv.extbs</item>
+      <item>cv.extbz</item>
+      <item>cv.exths</item>
+      <item>cv.exthz</item>
+      <item>cv.max</item>
+      <item>cv.maxu</item>
+      <item>cv.min</item>
+      <item>cv.minu</item>
+      <item>cv.sle</item>
+      <item>cv.slet</item>
+      <item>cv.sletu</item>
+      <item>cv.sleu</item>
+      <item>cv.subn</item>
+      <item>cv.subnr</item>
+      <item>cv.subrn</item>
+      <item>cv.subrnr</item>
+      <item>cv.subun</item>
+      <item>cv.subunr</item>
+      <item>cv.suburn</item>
+      <item>cv.suburnr</item>
+      <!-- RISC-V CORE-V event load (Xcvelw) instructions -->
+      <item>cv.elw</item>
+      <!-- RISC-V CORE-V post-increment load/store and register-register load/store (Xcvmem) instructions -->
+      <item>cv.lb</item>
+      <item>cv.lbu</item>
+      <item>cv.lh</item>
+      <item>cv.lhu</item>
+      <item>cv.lw</item>
+      <item>cv.sb</item>
+      <item>cv.sh</item>
+      <item>cv.sw</item>
+      <!-- RISC-V CORE-V bit manipulation (Xcvbitmanip) instructions -->
+      <item>cv.bclr</item>
+      <item>cv.bclrr</item>
+      <item>cv.bitrev</item>
+      <item>cv.bset</item>
+      <item>cv.bsetr</item>
+      <item>cv.clb</item>
+      <item>cv.cnt</item>
+      <item>cv.extract</item>
+      <item>cv.extractr</item>
+      <item>cv.extractu</item>
+      <item>cv.extractur</item>
+      <item>cv.ff1</item>
+      <item>cv.fl1</item>
+      <item>cv.insert</item>
+      <item>cv.insertr</item>
+      <item>cv.ror</item>
+      <!-- RISC-V CORE-V single instruction multiple data (Xcvsimd) instructions -->
+      <item>cv.abs.b</item>
+      <item>cv.abs.h</item>
+      <item>cv.add.b</item>
+      <item>cv.add.div2</item>
+      <item>cv.add.div4</item>
+      <item>cv.add.div8</item>
+      <item>cv.add.h</item>
+      <item>cv.add.sc.b</item>
+      <item>cv.add.sc.h</item>
+      <item>cv.add.sci.b</item>
+      <item>cv.add.sci.h</item>
+      <item>cv.and.b</item>
+      <item>cv.and.h</item>
+      <item>cv.and.sc.b</item>
+      <item>cv.and.sc.h</item>
+      <item>cv.and.sci.b</item>
+      <item>cv.and.sci.h</item>
+      <item>cv.avg.b</item>
+      <item>cv.avg.h</item>
+      <item>cv.avg.sc.b</item>
+      <item>cv.avg.sc.h</item>
+      <item>cv.avg.sci.b</item>
+      <item>cv.avg.sci.h</item>
+      <item>cv.avgu.b</item>
+      <item>cv.avgu.h</item>
+      <item>cv.avgu.sc.b</item>
+      <item>cv.avgu.sc.h</item>
+      <item>cv.avgu.sci.b</item>
+      <item>cv.avgu.sci.h</item>
+      <item>cv.cmpeq.b</item>
+      <item>cv.cmpeq.h</item>
+      <item>cv.cmpeq.sc.b</item>
+      <item>cv.cmpeq.sc.h</item>
+      <item>cv.cmpeq.sci.b</item>
+      <item>cv.cmpeq.sci.h</item>
+      <item>cv.cmpge.b</item>
+      <item>cv.cmpge.h</item>
+      <item>cv.cmpge.sc.b</item>
+      <item>cv.cmpge.sc.h</item>
+      <item>cv.cmpge.sci.b</item>
+      <item>cv.cmpge.sci.h</item>
+      <item>cv.cmpgeu.b</item>
+      <item>cv.cmpgeu.h</item>
+      <item>cv.cmpgeu.sc.b</item>
+      <item>cv.cmpgeu.sc.h</item>
+      <item>cv.cmpgeu.sci.b</item>
+      <item>cv.cmpgeu.sci.h</item>
+      <item>cv.cmpgt.b</item>
+      <item>cv.cmpgt.h</item>
+      <item>cv.cmpgt.sc.b</item>
+      <item>cv.cmpgt.sc.h</item>
+      <item>cv.cmpgt.sci.b</item>
+      <item>cv.cmpgt.sci.h</item>
+      <item>cv.cmpgtu.b</item>
+      <item>cv.cmpgtu.h</item>
+      <item>cv.cmpgtu.sc.b</item>
+      <item>cv.cmpgtu.sc.h</item>
+      <item>cv.cmpgtu.sci.b</item>
+      <item>cv.cmpgtu.sci.h</item>
+      <item>cv.cmple.b</item>
+      <item>cv.cmple.h</item>
+      <item>cv.cmple.sc.b</item>
+      <item>cv.cmple.sc.h</item>
+      <item>cv.cmple.sci.b</item>
+      <item>cv.cmple.sci.h</item>
+      <item>cv.cmpleu.b</item>
+      <item>cv.cmpleu.h</item>
+      <item>cv.cmpleu.sc.b</item>
+      <item>cv.cmpleu.sc.h</item>
+      <item>cv.cmpleu.sci.b</item>
+      <item>cv.cmpleu.sci.h</item>
+      <item>cv.cmplt.b</item>
+      <item>cv.cmplt.h</item>
+      <item>cv.cmplt.sc.b</item>
+      <item>cv.cmplt.sc.h</item>
+      <item>cv.cmplt.sci.b</item>
+      <item>cv.cmplt.sci.h</item>
+      <item>cv.cmpltu.b</item>
+      <item>cv.cmpltu.h</item>
+      <item>cv.cmpltu.sc.b</item>
+      <item>cv.cmpltu.sc.h</item>
+      <item>cv.cmpltu.sci.b</item>
+      <item>cv.cmpltu.sci.h</item>
+      <item>cv.cmpne.b</item>
+      <item>cv.cmpne.h</item>
+      <item>cv.cmpne.sc.b</item>
+      <item>cv.cmpne.sc.h</item>
+      <item>cv.cmpne.sci.b</item>
+      <item>cv.cmpne.sci.h</item>
+      <item>cv.cplxconj</item>
+      <item>cv.cplxmul.i.div2</item>
+      <item>cv.cplxmul.i.div4</item>
+      <item>cv.cplxmul.i.div8</item>
+      <item>cv.cplxmul.i</item>
+      <item>cv.cplxmul.r.div2</item>
+      <item>cv.cplxmul.r.div4</item>
+      <item>cv.cplxmul.r.div8</item>
+      <item>cv.cplxmul.r</item>
+      <item>cv.dotsp.b</item>
+      <item>cv.dotsp.h</item>
+      <item>cv.dotsp.sc.b</item>
+      <item>cv.dotsp.sc.h</item>
+      <item>cv.dotsp.sci.b</item>
+      <item>cv.dotsp.sci.h</item>
+      <item>cv.dotup.b</item>
+      <item>cv.dotup.h</item>
+      <item>cv.dotup.sc.b</item>
+      <item>cv.dotup.sc.h</item>
+      <item>cv.dotup.sci.b</item>
+      <item>cv.dotup.sci.h</item>
+      <item>cv.dotusp.b</item>
+      <item>cv.dotusp.h</item>
+      <item>cv.dotusp.sc.b</item>
+      <item>cv.dotusp.sc.h</item>
+      <item>cv.dotusp.sci.b</item>
+      <item>cv.dotusp.sci.h</item>
+      <item>cv.extract.b</item>
+      <item>cv.extract.h</item>
+      <item>cv.extractu.b</item>
+      <item>cv.extractu.h</item>
+      <item>cv.insert.b</item>
+      <item>cv.insert.h</item>
+      <item>cv.max.b</item>
+      <item>cv.max.h</item>
+      <item>cv.max.sc.b</item>
+      <item>cv.max.sc.h</item>
+      <item>cv.max.sci.b</item>
+      <item>cv.max.sci.h</item>
+      <item>cv.maxu.b</item>
+      <item>cv.maxu.h</item>
+      <item>cv.maxu.sc.b</item>
+      <item>cv.maxu.sc.h</item>
+      <item>cv.maxu.sci.b</item>
+      <item>cv.maxu.sci.h</item>
+      <item>cv.min.b</item>
+      <item>cv.min.h</item>
+      <item>cv.min.sc.b</item>
+      <item>cv.min.sc.h</item>
+      <item>cv.min.sci.b</item>
+      <item>cv.min.sci.h</item>
+      <item>cv.minu.b</item>
+      <item>cv.minu.h</item>
+      <item>cv.minu.sc.b</item>
+      <item>cv.minu.sc.h</item>
+      <item>cv.minu.sci.b</item>
+      <item>cv.minu.sci.h</item>
+      <item>cv.or.b</item>
+      <item>cv.or.h</item>
+      <item>cv.or.sc.b</item>
+      <item>cv.or.sc.h</item>
+      <item>cv.or.sci.b</item>
+      <item>cv.or.sci.h</item>
+      <item>cv.pack.h</item>
+      <item>cv.pack</item>
+      <item>cv.packhi.b</item>
+      <item>cv.packlo.b</item>
+      <item>cv.sdotsp.b</item>
+      <item>cv.sdotsp.h</item>
+      <item>cv.sdotsp.sc.b</item>
+      <item>cv.sdotsp.sc.h</item>
+      <item>cv.sdotsp.sci.b</item>
+      <item>cv.sdotsp.sci.h</item>
+      <item>cv.sdotup.b</item>
+      <item>cv.sdotup.h</item>
+      <item>cv.sdotup.sc.b</item>
+      <item>cv.sdotup.sc.h</item>
+      <item>cv.sdotup.sci.b</item>
+      <item>cv.sdotup.sci.h</item>
+      <item>cv.sdotusp.b</item>
+      <item>cv.sdotusp.h</item>
+      <item>cv.sdotusp.sc.b</item>
+      <item>cv.sdotusp.sc.h</item>
+      <item>cv.sdotusp.sci.b</item>
+      <item>cv.sdotusp.sci.h</item>
+      <item>cv.shuffle.b</item>
+      <item>cv.shuffle.h</item>
+      <item>cv.shuffle.sci.h</item>
+      <item>cv.shuffle2.b</item>
+      <item>cv.shuffle2.h</item>
+      <item>cv.shufflei0.sci.b</item>
+      <item>cv.shufflei1.sci.b</item>
+      <item>cv.shufflei2.sci.b</item>
+      <item>cv.shufflei3.sci.b</item>
+      <item>cv.sll.b</item>
+      <item>cv.sll.h</item>
+      <item>cv.sll.sc.b</item>
+      <item>cv.sll.sc.h</item>
+      <item>cv.sll.sci.b</item>
+      <item>cv.sll.sci.h</item>
+      <item>cv.sra.b</item>
+      <item>cv.sra.h</item>
+      <item>cv.sra.sc.b</item>
+      <item>cv.sra.sc.h</item>
+      <item>cv.sra.sci.b</item>
+      <item>cv.sra.sci.h</item>
+      <item>cv.srl.b</item>
+      <item>cv.srl.h</item>
+      <item>cv.srl.sc.b</item>
+      <item>cv.srl.sc.h</item>
+      <item>cv.srl.sci.b</item>
+      <item>cv.srl.sci.h</item>
+      <item>cv.sub.b</item>
+      <item>cv.sub.div2</item>
+      <item>cv.sub.div4</item>
+      <item>cv.sub.div8</item>
+      <item>cv.sub.h</item>
+      <item>cv.sub.sc.b</item>
+      <item>cv.sub.sc.h</item>
+      <item>cv.sub.sci.b</item>
+      <item>cv.sub.sci.h</item>
+      <item>cv.subrotmj.div2</item>
+      <item>cv.subrotmj.div4</item>
+      <item>cv.subrotmj.div8</item>
+      <item>cv.subrotmj</item>
+      <item>cv.xor.b</item>
+      <item>cv.xor.h</item>
+      <item>cv.xor.sc.b</item>
+      <item>cv.xor.sc.h</item>
+      <item>cv.xor.sci.b</item>
+      <item>cv.xor.sci.h</item>
+      <!-- RISC-V T-Head address calculation (XTheadBa) instructions -->
+      <item>th.addsl</item>
+      <!-- RISC-V T-Head basic bit-manipulation (XTheadBb) instructions -->
+      <item>th.ext</item>
+      <item>th.extu</item>
+      <item>th.ff0</item>
+      <item>th.ff1</item>
+      <item>th.rev</item>
+      <item>th.revw</item>
+      <item>th.srri</item>
+      <item>th.srriw</item>
+      <item>th.tstnbz</item>
+      <!-- RISC-V T-Head single-bit (XTheadBs) instructions -->
+      <item>th.tst</item>
+      <!-- RISC-V T-Head cache management operations (XTheadCmo) instructions -->
+      <item>th.dcache.call</item>
+      <item>th.dcache.ciall</item>
+      <item>th.dcache.cipa</item>
+      <item>th.dcache.cisw</item>
+      <item>th.dcache.civa</item>
+      <item>th.dcache.cpa</item>
+      <item>th.dcache.cpal1</item>
+      <item>th.dcache.csw</item>
+      <item>th.dcache.cva</item>
+      <item>th.dcache.cval1</item>
+      <item>th.dcache.iall</item>
+      <item>th.dcache.ipa</item>
+      <item>th.dcache.isw</item>
+      <item>th.dcache.iva</item>
+      <item>th.icache.iall</item>
+      <item>th.icache.ialls</item>
+      <item>th.icache.ipa</item>
+      <item>th.icache.iva</item>
+      <item>th.l2cache.call</item>
+      <item>th.l2cache.ciall</item>
+      <item>th.l2cache.iall</item>
+      <!-- RISC-V T-Head conditional move (XTheadCondMov) instructions -->
+      <item>th.mveqz</item>
+      <item>th.mvnez</item>
+      <!-- RISC-V T-Head indexed memory operations for floating-point registers (XTheadFMemIdx) instructions -->
+      <item>th.flrd</item>
+      <item>th.flrw</item>
+      <item>th.flurd</item>
+      <item>th.flurw</item>
+      <item>th.fsrd</item>
+      <item>th.fsrw</item>
+      <item>th.fsurd</item>
+      <item>th.fsurw</item>
+      <!-- RISC-V T-Head double-precision floating-point high-bit data transmission (XTheadFmv) instructions -->
+      <item>th.fmv.hw.x</item>
+      <item>th.fmv.x.hw</item>
+      <!-- RISC-V T-Head acceleration interruption (XTheadInt) instructions -->
+      <item>th.ipop</item>
+      <item>th.ipush</item>
+      <!-- RISC-V T-Head indexed memory operations (XTheadMemIdx) instructions -->
+      <item>th.lbia</item>
+      <item>th.lbib</item>
+      <item>th.lbuia</item>
+      <item>th.lbuib</item>
+      <item>th.ldia</item>
+      <item>th.ldib</item>
+      <item>th.lhia</item>
+      <item>th.lhib</item>
+      <item>th.lhuia</item>
+      <item>th.lhuib</item>
+      <item>th.lrb</item>
+      <item>th.lrbu</item>
+      <item>th.lrd</item>
+      <item>th.lrh</item>
+      <item>th.lrhu</item>
+      <item>th.lrw</item>
+      <item>th.lrwu</item>
+      <item>th.lurb</item>
+      <item>th.lurbu</item>
+      <item>th.lurd</item>
+      <item>th.lurh</item>
+      <item>th.lurhu</item>
+      <item>th.lurw</item>
+      <item>th.lurwu</item>
+      <item>th.lwia</item>
+      <item>th.lwib</item>
+      <item>th.lwuia</item>
+      <item>th.lwuib</item>
+      <item>th.sbia</item>
+      <item>th.sbib</item>
+      <item>th.sdia</item>
+      <item>th.sdib</item>
+      <item>th.shia</item>
+      <item>th.shib</item>
+      <item>th.srb</item>
+      <item>th.srd</item>
+      <item>th.srh</item>
+      <item>th.srw</item>
+      <item>th.surb</item>
+      <item>th.surd</item>
+      <item>th.surh</item>
+      <item>th.surw</item>
+      <item>th.swia</item>
+      <item>th.swib</item>
+      <!-- RISC-V T-Head two-GPR memory operations (XTheadMemPair) instructions -->
+      <item>th.ldd</item>
+      <item>th.lwd</item>
+      <item>th.lwud</item>
+      <item>th.sdd</item>
+      <item>th.swd</item>
+      <!-- RISC-V T-Head multiply-accumulate (XTheadMac) instructions -->
+      <item>th.mula</item>
+      <item>th.mulah</item>
+      <item>th.mulaw</item>
+      <item>th.muls</item>
+      <item>th.mulsh</item>
+      <item>th.mulsw</item>
+      <!-- RISC-V T-Head multi-core synchronization (XTheadSync) instructions -->
+      <item>th.sfence.vmas</item>
+      <item>th.sync</item>
+      <item>th.sync.i</item>
+      <item>th.sync.is</item>
+      <item>th.sync.s</item>
+      <!-- RISC-V T-Head vector extension (XTheadVector) instructions -->
+      <item>th.vaadd.vi</item>
+      <item>th.vaadd.vv</item>
+      <item>th.vaadd.vx</item>
+      <item>th.vadc.vim</item>
+      <item>th.vadc.vvm</item>
+      <item>th.vadc.vxm</item>
+      <item>th.vadd.vi</item>
+      <item>th.vadd.vv</item>
+      <item>th.vadd.vx</item>
+      <item>th.vamoaddd.v</item>
+      <item>th.vamoaddw.v</item>
+      <item>th.vamoandd.v</item>
+      <item>th.vamoandw.v</item>
+      <item>th.vamomaxd.v</item>
+      <item>th.vamomaxud.v</item>
+      <item>th.vamomaxuw.v</item>
+      <item>th.vamomaxw.v</item>
+      <item>th.vamomind.v</item>
+      <item>th.vamominud.v</item>
+      <item>th.vamominuw.v</item>
+      <item>th.vamominw.v</item>
+      <item>th.vamoord.v</item>
+      <item>th.vamoorw.v</item>
+      <item>th.vamoswapd.v</item>
+      <item>th.vamoswapw.v</item>
+      <item>th.vamoxord.v</item>
+      <item>th.vamoxorw.v</item>
+      <item>th.vand.vi</item>
+      <item>th.vand.vv</item>
+      <item>th.vand.vx</item>
+      <item>th.vasub.vv</item>
+      <item>th.vasub.vx</item>
+      <item>th.vcompress.vm</item>
+      <item>th.vdiv.vv</item>
+      <item>th.vdiv.vx</item>
+      <item>th.vdivu.vv</item>
+      <item>th.vdivu.vx</item>
+      <item>th.vext.x.v</item>
+      <item>th.vfabs.v</item>
+      <item>th.vfadd.vf</item>
+      <item>th.vfadd.vv</item>
+      <item>th.vfclass.v</item>
+      <item>th.vfcvt.f.x.v</item>
+      <item>th.vfcvt.f.xu.v</item>
+      <item>th.vfcvt.x.f.v</item>
+      <item>th.vfcvt.xu.f.v</item>
+      <item>th.vfdiv.vf</item>
+      <item>th.vfdiv.vv</item>
+      <item>th.vfmacc.vf</item>
+      <item>th.vfmacc.vv</item>
+      <item>th.vfmadd.vf</item>
+      <item>th.vfmadd.vv</item>
+      <item>th.vfmax.vf</item>
+      <item>th.vfmax.vv</item>
+      <item>th.vfmerge.vfm</item>
+      <item>th.vfmin.vf</item>
+      <item>th.vfmin.vv</item>
+      <item>th.vfmsac.vf</item>
+      <item>th.vfmsac.vv</item>
+      <item>th.vfmsub.vf</item>
+      <item>th.vfmsub.vv</item>
+      <item>th.vfmul.vf</item>
+      <item>th.vfmul.vv</item>
+      <item>th.vfmv.f.s</item>
+      <item>th.vfmv.s.f</item>
+      <item>th.vfmv.v.f</item>
+      <item>th.vfncvt.f.f.v</item>
+      <item>th.vfncvt.f.x.v</item>
+      <item>th.vfncvt.f.xu.v</item>
+      <item>th.vfncvt.x.f.v</item>
+      <item>th.vfncvt.xu.f.v</item>
+      <item>th.vfneg.v</item>
+      <item>th.vfnmacc.vf</item>
+      <item>th.vfnmacc.vv</item>
+      <item>th.vfnmadd.vf</item>
+      <item>th.vfnmadd.vv</item>
+      <item>th.vfnmsac.vf</item>
+      <item>th.vfnmsac.vv</item>
+      <item>th.vfnmsub.vf</item>
+      <item>th.vfnmsub.vv</item>
+      <item>th.vfrdiv.vf</item>
+      <item>th.vfredmax.vs</item>
+      <item>th.vfredmin.vs</item>
+      <item>th.vfredosum.vs</item>
+      <item>th.vfredsum.vs</item>
+      <item>th.vfrsub.vf</item>
+      <item>th.vfsgnj.vf</item>
+      <item>th.vfsgnj.vv</item>
+      <item>th.vfsgnjn.vf</item>
+      <item>th.vfsgnjn.vv</item>
+      <item>th.vfsgnjx.vf</item>
+      <item>th.vfsgnjx.vv</item>
+      <item>th.vfsqrt.v</item>
+      <item>th.vfsub.vf</item>
+      <item>th.vfsub.vv</item>
+      <item>th.vfwadd.vf</item>
+      <item>th.vfwadd.vv</item>
+      <item>th.vfwadd.wf</item>
+      <item>th.vfwadd.wv</item>
+      <item>th.vfwcvt.f.f.v</item>
+      <item>th.vfwcvt.f.x.v</item>
+      <item>th.vfwcvt.f.xu.v</item>
+      <item>th.vfwcvt.x.f.v</item>
+      <item>th.vfwcvt.xu.f.v</item>
+      <item>th.vfwmacc.vf</item>
+      <item>th.vfwmacc.vv</item>
+      <item>th.vfwmsac.vf</item>
+      <item>th.vfwmsac.vv</item>
+      <item>th.vfwmul.vf</item>
+      <item>th.vfwmul.vv</item>
+      <item>th.vfwnmacc.vf</item>
+      <item>th.vfwnmacc.vv</item>
+      <item>th.vfwnmsac.vf</item>
+      <item>th.vfwnmsac.vv</item>
+      <item>th.vfwredosum.vs</item>
+      <item>th.vfwredsum.vs</item>
+      <item>th.vfwsub.vf</item>
+      <item>th.vfwsub.vv</item>
+      <item>th.vfwsub.wf</item>
+      <item>th.vfwsub.wv</item>
+      <item>th.vid.v</item>
+      <item>th.viota.m</item>
+      <item>th.vlb.v</item>
+      <item>th.vlbff.v</item>
+      <item>th.vlbu.v</item>
+      <item>th.vlbuff.v</item>
+      <item>th.vle.v</item>
+      <item>th.vleff.v</item>
+      <item>th.vlh.v</item>
+      <item>th.vlhff.v</item>
+      <item>th.vlhu.v</item>
+      <item>th.vlhuff.v</item>
+      <item>th.vlsb.v</item>
+      <item>th.vlsbu.v</item>
+      <item>th.vlse.v</item>
+      <item>th.vlseg2b.v</item>
+      <item>th.vlseg2bff.v</item>
+      <item>th.vlseg2bu.v</item>
+      <item>th.vlseg2buff.v</item>
+      <item>th.vlseg2e.v</item>
+      <item>th.vlseg2eff.v</item>
+      <item>th.vlseg2h.v</item>
+      <item>th.vlseg2hff.v</item>
+      <item>th.vlseg2hu.v</item>
+      <item>th.vlseg2huff.v</item>
+      <item>th.vlseg2w.v</item>
+      <item>th.vlseg2wff.v</item>
+      <item>th.vlseg2wu.v</item>
+      <item>th.vlseg2wuff.v</item>
+      <item>th.vlseg3b.v</item>
+      <item>th.vlseg3bff.v</item>
+      <item>th.vlseg3bu.v</item>
+      <item>th.vlseg3buff.v</item>
+      <item>th.vlseg3e.v</item>
+      <item>th.vlseg3eff.v</item>
+      <item>th.vlseg3h.v</item>
+      <item>th.vlseg3hff.v</item>
+      <item>th.vlseg3hu.v</item>
+      <item>th.vlseg3huff.v</item>
+      <item>th.vlseg3w.v</item>
+      <item>th.vlseg3wff.v</item>
+      <item>th.vlseg3wu.v</item>
+      <item>th.vlseg3wuff.v</item>
+      <item>th.vlseg4b.v</item>
+      <item>th.vlseg4bff.v</item>
+      <item>th.vlseg4bu.v</item>
+      <item>th.vlseg4buff.v</item>
+      <item>th.vlseg4e.v</item>
+      <item>th.vlseg4eff.v</item>
+      <item>th.vlseg4h.v</item>
+      <item>th.vlseg4hff.v</item>
+      <item>th.vlseg4hu.v</item>
+      <item>th.vlseg4huff.v</item>
+      <item>th.vlseg4w.v</item>
+      <item>th.vlseg4wff.v</item>
+      <item>th.vlseg4wu.v</item>
+      <item>th.vlseg4wuff.v</item>
+      <item>th.vlseg5b.v</item>
+      <item>th.vlseg5bff.v</item>
+      <item>th.vlseg5bu.v</item>
+      <item>th.vlseg5buff.v</item>
+      <item>th.vlseg5e.v</item>
+      <item>th.vlseg5eff.v</item>
+      <item>th.vlseg5h.v</item>
+      <item>th.vlseg5hff.v</item>
+      <item>th.vlseg5hu.v</item>
+      <item>th.vlseg5huff.v</item>
+      <item>th.vlseg5w.v</item>
+      <item>th.vlseg5wff.v</item>
+      <item>th.vlseg5wu.v</item>
+      <item>th.vlseg5wuff.v</item>
+      <item>th.vlseg6b.v</item>
+      <item>th.vlseg6bff.v</item>
+      <item>th.vlseg6bu.v</item>
+      <item>th.vlseg6buff.v</item>
+      <item>th.vlseg6e.v</item>
+      <item>th.vlseg6eff.v</item>
+      <item>th.vlseg6h.v</item>
+      <item>th.vlseg6hff.v</item>
+      <item>th.vlseg6hu.v</item>
+      <item>th.vlseg6huff.v</item>
+      <item>th.vlseg6w.v</item>
+      <item>th.vlseg6wff.v</item>
+      <item>th.vlseg6wu.v</item>
+      <item>th.vlseg6wuff.v</item>
+      <item>th.vlseg7b.v</item>
+      <item>th.vlseg7bff.v</item>
+      <item>th.vlseg7bu.v</item>
+      <item>th.vlseg7buff.v</item>
+      <item>th.vlseg7e.v</item>
+      <item>th.vlseg7eff.v</item>
+      <item>th.vlseg7h.v</item>
+      <item>th.vlseg7hff.v</item>
+      <item>th.vlseg7hu.v</item>
+      <item>th.vlseg7huff.v</item>
+      <item>th.vlseg7w.v</item>
+      <item>th.vlseg7wff.v</item>
+      <item>th.vlseg7wu.v</item>
+      <item>th.vlseg7wuff.v</item>
+      <item>th.vlseg8b.v</item>
+      <item>th.vlseg8bff.v</item>
+      <item>th.vlseg8bu.v</item>
+      <item>th.vlseg8buff.v</item>
+      <item>th.vlseg8e.v</item>
+      <item>th.vlseg8eff.v</item>
+      <item>th.vlseg8h.v</item>
+      <item>th.vlseg8hff.v</item>
+      <item>th.vlseg8hu.v</item>
+      <item>th.vlseg8huff.v</item>
+      <item>th.vlseg8w.v</item>
+      <item>th.vlseg8wff.v</item>
+      <item>th.vlseg8wu.v</item>
+      <item>th.vlseg8wuff.v</item>
+      <item>th.vlsh.v</item>
+      <item>th.vlshu.v</item>
+      <item>th.vlsseg2b.v</item>
+      <item>th.vlsseg2bu.v</item>
+      <item>th.vlsseg2e.v</item>
+      <item>th.vlsseg2h.v</item>
+      <item>th.vlsseg2hu.v</item>
+      <item>th.vlsseg2w.v</item>
+      <item>th.vlsseg2wu.v</item>
+      <item>th.vlsseg3b.v</item>
+      <item>th.vlsseg3bu.v</item>
+      <item>th.vlsseg3e.v</item>
+      <item>th.vlsseg3h.v</item>
+      <item>th.vlsseg3hu.v</item>
+      <item>th.vlsseg3w.v</item>
+      <item>th.vlsseg3wu.v</item>
+      <item>th.vlsseg4b.v</item>
+      <item>th.vlsseg4bu.v</item>
+      <item>th.vlsseg4e.v</item>
+      <item>th.vlsseg4h.v</item>
+      <item>th.vlsseg4hu.v</item>
+      <item>th.vlsseg4w.v</item>
+      <item>th.vlsseg4wu.v</item>
+      <item>th.vlsseg5b.v</item>
+      <item>th.vlsseg5bu.v</item>
+      <item>th.vlsseg5e.v</item>
+      <item>th.vlsseg5h.v</item>
+      <item>th.vlsseg5hu.v</item>
+      <item>th.vlsseg5w.v</item>
+      <item>th.vlsseg5wu.v</item>
+      <item>th.vlsseg6b.v</item>
+      <item>th.vlsseg6bu.v</item>
+      <item>th.vlsseg6e.v</item>
+      <item>th.vlsseg6h.v</item>
+      <item>th.vlsseg6hu.v</item>
+      <item>th.vlsseg6w.v</item>
+      <item>th.vlsseg6wu.v</item>
+      <item>th.vlsseg7b.v</item>
+      <item>th.vlsseg7bu.v</item>
+      <item>th.vlsseg7e.v</item>
+      <item>th.vlsseg7h.v</item>
+      <item>th.vlsseg7hu.v</item>
+      <item>th.vlsseg7w.v</item>
+      <item>th.vlsseg7wu.v</item>
+      <item>th.vlsseg8b.v</item>
+      <item>th.vlsseg8bu.v</item>
+      <item>th.vlsseg8e.v</item>
+      <item>th.vlsseg8h.v</item>
+      <item>th.vlsseg8hu.v</item>
+      <item>th.vlsseg8w.v</item>
+      <item>th.vlsseg8wu.v</item>
+      <item>th.vlsw.v</item>
+      <item>th.vlswu.v</item>
+      <item>th.vlw.v</item>
+      <item>th.vlwff.v</item>
+      <item>th.vlwu.v</item>
+      <item>th.vlwuff.v</item>
+      <item>th.vlxb.v</item>
+      <item>th.vlxbu.v</item>
+      <item>th.vlxe.v</item>
+      <item>th.vlxh.v</item>
+      <item>th.vlxhu.v</item>
+      <item>th.vlxseg2b.v</item>
+      <item>th.vlxseg2bu.v</item>
+      <item>th.vlxseg2e.v</item>
+      <item>th.vlxseg2h.v</item>
+      <item>th.vlxseg2hu.v</item>
+      <item>th.vlxseg2w.v</item>
+      <item>th.vlxseg2wu.v</item>
+      <item>th.vlxseg3b.v</item>
+      <item>th.vlxseg3bu.v</item>
+      <item>th.vlxseg3e.v</item>
+      <item>th.vlxseg3h.v</item>
+      <item>th.vlxseg3hu.v</item>
+      <item>th.vlxseg3w.v</item>
+      <item>th.vlxseg3wu.v</item>
+      <item>th.vlxseg4b.v</item>
+      <item>th.vlxseg4bu.v</item>
+      <item>th.vlxseg4e.v</item>
+      <item>th.vlxseg4h.v</item>
+      <item>th.vlxseg4hu.v</item>
+      <item>th.vlxseg4w.v</item>
+      <item>th.vlxseg4wu.v</item>
+      <item>th.vlxseg5b.v</item>
+      <item>th.vlxseg5bu.v</item>
+      <item>th.vlxseg5e.v</item>
+      <item>th.vlxseg5h.v</item>
+      <item>th.vlxseg5hu.v</item>
+      <item>th.vlxseg5w.v</item>
+      <item>th.vlxseg5wu.v</item>
+      <item>th.vlxseg6b.v</item>
+      <item>th.vlxseg6bu.v</item>
+      <item>th.vlxseg6e.v</item>
+      <item>th.vlxseg6h.v</item>
+      <item>th.vlxseg6hu.v</item>
+      <item>th.vlxseg6w.v</item>
+      <item>th.vlxseg6wu.v</item>
+      <item>th.vlxseg7b.v</item>
+      <item>th.vlxseg7bu.v</item>
+      <item>th.vlxseg7e.v</item>
+      <item>th.vlxseg7h.v</item>
+      <item>th.vlxseg7hu.v</item>
+      <item>th.vlxseg7w.v</item>
+      <item>th.vlxseg7wu.v</item>
+      <item>th.vlxseg8b.v</item>
+      <item>th.vlxseg8bu.v</item>
+      <item>th.vlxseg8e.v</item>
+      <item>th.vlxseg8h.v</item>
+      <item>th.vlxseg8hu.v</item>
+      <item>th.vlxseg8w.v</item>
+      <item>th.vlxseg8wu.v</item>
+      <item>th.vlxw.v</item>
+      <item>th.vlxwu.v</item>
+      <item>th.vmacc.vv</item>
+      <item>th.vmacc.vx</item>
+      <item>th.vmadc.vim</item>
+      <item>th.vmadc.vvm</item>
+      <item>th.vmadc.vxm</item>
+      <item>th.vmadd.vv</item>
+      <item>th.vmadd.vx</item>
+      <item>th.vmand.mm</item>
+      <item>th.vmandnot.mm</item>
+      <item>th.vmax.vv</item>
+      <item>th.vmax.vx</item>
+      <item>th.vmaxu.vv</item>
+      <item>th.vmaxu.vx</item>
+      <item>th.vmclr.m</item>
+      <item>th.vmcpy.m</item>
+      <item>th.vmerge.vim</item>
+      <item>th.vmerge.vvm</item>
+      <item>th.vmerge.vxm</item>
+      <item>th.vmfeq.vf</item>
+      <item>th.vmfeq.vv</item>
+      <item>th.vmfge.vf</item>
+      <item>th.vmfge.vv</item>
+      <item>th.vmfgt.vf</item>
+      <item>th.vmfgt.vv</item>
+      <item>th.vmfirst.m</item>
+      <item>th.vmfle.vf</item>
+      <item>th.vmfle.vv</item>
+      <item>th.vmflt.vf</item>
+      <item>th.vmflt.vv</item>
+      <item>th.vmfne.vf</item>
+      <item>th.vmfne.vv</item>
+      <item>th.vmford.vf</item>
+      <item>th.vmford.vv</item>
+      <item>th.vmin.vv</item>
+      <item>th.vmin.vx</item>
+      <item>th.vminu.vv</item>
+      <item>th.vminu.vx</item>
+      <item>th.vmmv.m</item>
+      <item>th.vmnand.mm</item>
+      <item>th.vmnor.mm</item>
+      <item>th.vmnot.m</item>
+      <item>th.vmor.mm</item>
+      <item>th.vmornot.mm</item>
+      <item>th.vmpopc.m</item>
+      <item>th.vmsbc.vvm</item>
+      <item>th.vmsbc.vxm</item>
+      <item>th.vmsbf.m</item>
+      <item>th.vmseq.vi</item>
+      <item>th.vmseq.vv</item>
+      <item>th.vmseq.vx</item>
+      <item>th.vmset.m</item>
+      <item>th.vmsge.vi</item>
+      <item>th.vmsge.vv</item>
+      <item>th.vmsge.vx</item>
+      <item>th.vmsgeu.vi</item>
+      <item>th.vmsgeu.vv</item>
+      <item>th.vmsgeu.vx</item>
+      <item>th.vmsgt.vi</item>
+      <item>th.vmsgt.vv</item>
+      <item>th.vmsgt.vx</item>
+      <item>th.vmsgtu.vi</item>
+      <item>th.vmsgtu.vv</item>
+      <item>th.vmsgtu.vx</item>
+      <item>th.vmsif.m</item>
+      <item>th.vmsle.vi</item>
+      <item>th.vmsle.vv</item>
+      <item>th.vmsle.vx</item>
+      <item>th.vmsleu.vi</item>
+      <item>th.vmsleu.vv</item>
+      <item>th.vmsleu.vx</item>
+      <item>th.vmslt.vi</item>
+      <item>th.vmslt.vv</item>
+      <item>th.vmslt.vx</item>
+      <item>th.vmsltu.vi</item>
+      <item>th.vmsltu.vv</item>
+      <item>th.vmsltu.vx</item>
+      <item>th.vmsne.vi</item>
+      <item>th.vmsne.vv</item>
+      <item>th.vmsne.vx</item>
+      <item>th.vmsof.m</item>
+      <item>th.vmul.vv</item>
+      <item>th.vmul.vx</item>
+      <item>th.vmulh.vv</item>
+      <item>th.vmulh.vx</item>
+      <item>th.vmulhsu.vv</item>
+      <item>th.vmulhsu.vx</item>
+      <item>th.vmulhu.vv</item>
+      <item>th.vmulhu.vx</item>
+      <item>th.vmv.s.x</item>
+      <item>th.vmv.v.i</item>
+      <item>th.vmv.v.v</item>
+      <item>th.vmv.v.x</item>
+      <item>th.vmv.x.s</item>
+      <item>th.vmxnor.mm</item>
+      <item>th.vmxor.mm</item>
+      <item>th.vnclip.vi</item>
+      <item>th.vnclip.vv</item>
+      <item>th.vnclip.vx</item>
+      <item>th.vnclipu.vi</item>
+      <item>th.vnclipu.vv</item>
+      <item>th.vnclipu.vx</item>
+      <item>th.vncvt.x.x.v</item>
+      <item>th.vneg.v</item>
+      <item>th.vnmsac.vv</item>
+      <item>th.vnmsac.vx</item>
+      <item>th.vnmsub.vv</item>
+      <item>th.vnmsub.vx</item>
+      <item>th.vnot.v</item>
+      <item>th.vnsra.vi</item>
+      <item>th.vnsra.vv</item>
+      <item>th.vnsra.vx</item>
+      <item>th.vnsrl.vi</item>
+      <item>th.vnsrl.vv</item>
+      <item>th.vnsrl.vx</item>
+      <item>th.vor.vi</item>
+      <item>th.vor.vv</item>
+      <item>th.vor.vx</item>
+      <item>th.vredand.vs</item>
+      <item>th.vredmax.vs</item>
+      <item>th.vredmaxu.vs</item>
+      <item>th.vredmin.vs</item>
+      <item>th.vredminu.vs</item>
+      <item>th.vredor.vs</item>
+      <item>th.vredsum.vs</item>
+      <item>th.vredxor.vs</item>
+      <item>th.vrem.vv</item>
+      <item>th.vrem.vx</item>
+      <item>th.vremu.vv</item>
+      <item>th.vremu.vx</item>
+      <item>th.vrgather.vi</item>
+      <item>th.vrgather.vv</item>
+      <item>th.vrgather.vx</item>
+      <item>th.vrsub.vi</item>
+      <item>th.vrsub.vx</item>
+      <item>th.vsadd.vi</item>
+      <item>th.vsadd.vv</item>
+      <item>th.vsadd.vx</item>
+      <item>th.vsaddu.vi</item>
+      <item>th.vsaddu.vv</item>
+      <item>th.vsaddu.vx</item>
+      <item>th.vsb.v</item>
+      <item>th.vsbc.vvm</item>
+      <item>th.vsbc.vxm</item>
+      <item>th.vse.v</item>
+      <item>th.vsetvl</item>
+      <item>th.vsetvli</item>
+      <item>th.vsh.v</item>
+      <item>th.vslide1down.vx</item>
+      <item>th.vslide1up.vx</item>
+      <item>th.vslidedown.vi</item>
+      <item>th.vslidedown.vx</item>
+      <item>th.vslideup.vi</item>
+      <item>th.vslideup.vx</item>
+      <item>th.vsll.vi</item>
+      <item>th.vsll.vv</item>
+      <item>th.vsll.vx</item>
+      <item>th.vsmul.vv</item>
+      <item>th.vsmul.vx</item>
+      <item>th.vsra.vi</item>
+      <item>th.vsra.vv</item>
+      <item>th.vsra.vx</item>
+      <item>th.vsrl.vi</item>
+      <item>th.vsrl.vv</item>
+      <item>th.vsrl.vx</item>
+      <item>th.vssb.v</item>
+      <item>th.vsse.v</item>
+      <item>th.vsseg2b.v</item>
+      <item>th.vsseg2e.v</item>
+      <item>th.vsseg2h.v</item>
+      <item>th.vsseg2w.v</item>
+      <item>th.vsseg3b.v</item>
+      <item>th.vsseg3e.v</item>
+      <item>th.vsseg3h.v</item>
+      <item>th.vsseg3w.v</item>
+      <item>th.vsseg4b.v</item>
+      <item>th.vsseg4e.v</item>
+      <item>th.vsseg4h.v</item>
+      <item>th.vsseg4w.v</item>
+      <item>th.vsseg5b.v</item>
+      <item>th.vsseg5e.v</item>
+      <item>th.vsseg5h.v</item>
+      <item>th.vsseg5w.v</item>
+      <item>th.vsseg6b.v</item>
+      <item>th.vsseg6e.v</item>
+      <item>th.vsseg6h.v</item>
+      <item>th.vsseg6w.v</item>
+      <item>th.vsseg7b.v</item>
+      <item>th.vsseg7e.v</item>
+      <item>th.vsseg7h.v</item>
+      <item>th.vsseg7w.v</item>
+      <item>th.vsseg8b.v</item>
+      <item>th.vsseg8e.v</item>
+      <item>th.vsseg8h.v</item>
+      <item>th.vsseg8w.v</item>
+      <item>th.vssh.v</item>
+      <item>th.vssra.vi</item>
+      <item>th.vssra.vv</item>
+      <item>th.vssra.vx</item>
+      <item>th.vssrl.vi</item>
+      <item>th.vssrl.vv</item>
+      <item>th.vssrl.vx</item>
+      <item>th.vssseg2b.v</item>
+      <item>th.vssseg2e.v</item>
+      <item>th.vssseg2h.v</item>
+      <item>th.vssseg2w.v</item>
+      <item>th.vssseg3b.v</item>
+      <item>th.vssseg3e.v</item>
+      <item>th.vssseg3h.v</item>
+      <item>th.vssseg3w.v</item>
+      <item>th.vssseg4b.v</item>
+      <item>th.vssseg4e.v</item>
+      <item>th.vssseg4h.v</item>
+      <item>th.vssseg4w.v</item>
+      <item>th.vssseg5b.v</item>
+      <item>th.vssseg5e.v</item>
+      <item>th.vssseg5h.v</item>
+      <item>th.vssseg5w.v</item>
+      <item>th.vssseg6b.v</item>
+      <item>th.vssseg6e.v</item>
+      <item>th.vssseg6h.v</item>
+      <item>th.vssseg6w.v</item>
+      <item>th.vssseg7b.v</item>
+      <item>th.vssseg7e.v</item>
+      <item>th.vssseg7h.v</item>
+      <item>th.vssseg7w.v</item>
+      <item>th.vssseg8b.v</item>
+      <item>th.vssseg8e.v</item>
+      <item>th.vssseg8h.v</item>
+      <item>th.vssseg8w.v</item>
+      <item>th.vssub.vv</item>
+      <item>th.vssub.vx</item>
+      <item>th.vssubu.vv</item>
+      <item>th.vssubu.vx</item>
+      <item>th.vssw.v</item>
+      <item>th.vsub.vv</item>
+      <item>th.vsub.vx</item>
+      <item>th.vsuxb.v</item>
+      <item>th.vsuxe.v</item>
+      <item>th.vsuxh.v</item>
+      <item>th.vsuxw.v</item>
+      <item>th.vsw.v</item>
+      <item>th.vsxb.v</item>
+      <item>th.vsxe.v</item>
+      <item>th.vsxh.v</item>
+      <item>th.vsxseg2b.v</item>
+      <item>th.vsxseg2e.v</item>
+      <item>th.vsxseg2h.v</item>
+      <item>th.vsxseg2w.v</item>
+      <item>th.vsxseg3b.v</item>
+      <item>th.vsxseg3e.v</item>
+      <item>th.vsxseg3h.v</item>
+      <item>th.vsxseg3w.v</item>
+      <item>th.vsxseg4b.v</item>
+      <item>th.vsxseg4e.v</item>
+      <item>th.vsxseg4h.v</item>
+      <item>th.vsxseg4w.v</item>
+      <item>th.vsxseg5b.v</item>
+      <item>th.vsxseg5e.v</item>
+      <item>th.vsxseg5h.v</item>
+      <item>th.vsxseg5w.v</item>
+      <item>th.vsxseg6b.v</item>
+      <item>th.vsxseg6e.v</item>
+      <item>th.vsxseg6h.v</item>
+      <item>th.vsxseg6w.v</item>
+      <item>th.vsxseg7b.v</item>
+      <item>th.vsxseg7e.v</item>
+      <item>th.vsxseg7h.v</item>
+      <item>th.vsxseg7w.v</item>
+      <item>th.vsxseg8b.v</item>
+      <item>th.vsxseg8e.v</item>
+      <item>th.vsxseg8h.v</item>
+      <item>th.vsxseg8w.v</item>
+      <item>th.vsxw.v</item>
+      <item>th.vwadd.vv</item>
+      <item>th.vwadd.vx</item>
+      <item>th.vwadd.wv</item>
+      <item>th.vwadd.wx</item>
+      <item>th.vwaddu.vv</item>
+      <item>th.vwaddu.vx</item>
+      <item>th.vwaddu.wv</item>
+      <item>th.vwaddu.wx</item>
+      <item>th.vwcvt.x.x.v</item>
+      <item>th.vwcvtu.x.x.v</item>
+      <item>th.vwmacc.vv</item>
+      <item>th.vwmacc.vx</item>
+      <item>th.vwmaccsu.vv</item>
+      <item>th.vwmaccsu.vx</item>
+      <item>th.vwmaccu.vv</item>
+      <item>th.vwmaccu.vx</item>
+      <item>th.vwmaccus.vx</item>
+      <item>th.vwmul.vv</item>
+      <item>th.vwmul.vx</item>
+      <item>th.vwmulsu.vv</item>
+      <item>th.vwmulsu.vx</item>
+      <item>th.vwmulu.vv</item>
+      <item>th.vwmulu.vx</item>
+      <item>th.vwredsum.vs</item>
+      <item>th.vwredsumu.vs</item>
+      <item>th.vwsmacc.vv</item>
+      <item>th.vwsmacc.vx</item>
+      <item>th.vwsmaccsu.vv</item>
+      <item>th.vwsmaccsu.vx</item>
+      <item>th.vwsmaccu.vv</item>
+      <item>th.vwsmaccu.vx</item>
+      <item>th.vwsmaccus.vx</item>
+      <item>th.vwsub.vv</item>
+      <item>th.vwsub.vx</item>
+      <item>th.vwsub.wv</item>
+      <item>th.vwsub.wx</item>
+      <item>th.vwsubu.vv</item>
+      <item>th.vwsubu.vx</item>
+      <item>th.vwsubu.wv</item>
+      <item>th.vwsubu.wx</item>
+      <item>th.vxor.vi</item>
+      <item>th.vxor.vv</item>
+      <item>th.vxor.vx</item>
+      <!-- RISC-V T-Head vector four 8-bit multiply and add with 32-bit (XTheadVdot) instructions -->
+      <item>th.vmaqa.vv</item>
+      <item>th.vmaqa.vx</item>
+      <item>th.vmaqasu.vv</item>
+      <item>th.vmaqasu.vx</item>
+      <item>th.vmaqau.vv</item>
+      <item>th.vmaqau.vx</item>
+      <item>th.vmaqaus.vx</item>
+      <!-- RISC-V Ventana Microsystems conditional opserations extension (XVentanaCondOps) instructions -->
+      <item>vt.maskc</item>
+      <item>vt.maskcn</item>
+      <!-- RISC-V SiFive vector coprocessor interface (Xsfvcp) instructions -->
+      <item>sf.vc.fv</item>
+      <item>sf.vc.fvv</item>
+      <item>sf.vc.fvw</item>
+      <item>sf.vc.i</item>
+      <item>sf.vc.iv</item>
+      <item>sf.vc.ivv</item>
+      <item>sf.vc.ivw</item>
+      <item>sf.vc.v.fv</item>
+      <item>sf.vc.v.fvv</item>
+      <item>sf.vc.v.fvw</item>
+      <item>sf.vc.v.i</item>
+      <item>sf.vc.v.iv</item>
+      <item>sf.vc.v.ivv</item>
+      <item>sf.vc.v.ivw</item>
+      <item>sf.vc.v.vv</item>
+      <item>sf.vc.v.vvv</item>
+      <item>sf.vc.v.vvw</item>
+      <item>sf.vc.v.x</item>
+      <item>sf.vc.v.xv</item>
+      <item>sf.vc.v.xvv</item>
+      <item>sf.vc.v.xvw</item>
+      <item>sf.vc.vv</item>
+      <item>sf.vc.vvv</item>
+      <item>sf.vc.vvw</item>
+      <item>sf.vc.x</item>
+      <item>sf.vc.xv</item>
+      <item>sf.vc.xvv</item>
+      <item>sf.vc.xvw</item>
+      <!-- RISC-V SiFive cease instruction -->
+      <item>sf.cease</item>
+      <!-- RISC-V SiFive int8 matrix-multiply (Xsfvqmaccdod, Xsfvqmaccqoq) instructions -->
+      <item>sf.vqmacc.2x8x2</item>
+      <item>sf.vqmacc.4x8x4</item>
+      <item>sf.vqmaccsu.2x8x2</item>
+      <item>sf.vqmaccsu.4x8x4</item>
+      <item>sf.vqmaccu.2x8x2</item>
+      <item>sf.vqmaccu.4x8x4</item>
+      <item>sf.vqmaccus.2x8x2</item>
+      <item>sf.vqmaccus.4x8x4</item>
+      <!-- RISC-V SiFive FP32-to-int8 ranged clip (Xsfvfnrclipxfqf) instructions -->
+      <item>sf.vfnrclip.x.f.qf</item>
+      <item>sf.vfnrclip.xu.f.qf</item>
+    </list>
+
+    <list name="branch instructions">
+      <item>call</item>
+      <item>callq</item>
+      <item>iret</item>
+      <item>iretd</item>
+      <item>iretq</item>
+      <item>iretw</item>
+      <item>ja</item>
+      <item>jae</item>
+      <item>jb</item>
+      <item>jbe</item>
+      <item>jc</item>
+      <item>jcxz</item>
+      <item>je</item>
+      <item>jecxz</item>
+      <item>jg</item>
+      <item>jge</item>
+      <item>jl</item>
+      <item>jle</item>
+      <item>jmp</item>
+      <item>jmpe</item>
+      <item>jna</item>
+      <item>jnae</item>
+      <item>jnb</item>
+      <item>jnbe</item>
+      <item>jnc</item>
+      <item>jne</item>
+      <item>jng</item>
+      <item>jnge</item>
+      <item>jnl</item>
+      <item>jnle</item>
+      <item>jno</item>
+      <item>jnp</item>
+      <item>jns</item>
+      <item>jnz</item>
+      <item>jo</item>
+      <item>jp</item>
+      <item>jpe</item>
+      <item>jpo</item>
+      <item>jrcxz</item>
+      <item>js</item>
+      <item>jz</item>
+      <item>ret</item>
+      <item>retd</item>
+      <item>retf</item>
+      <item>retfd</item>
+      <item>retfq</item>
+      <item>retfw</item>
+      <item>retn</item>
+      <item>retnd</item>
+      <item>retnq</item>
+      <item>retnw</item>
+      <item>retq</item>
+      <item>retw</item>
+      <!-- RISC-V basic RVI instructions and aliases -->
+      <item>beq</item>
+      <item>beqz</item>
+      <item>bge</item>
+      <item>bgeu</item>
+      <item>bgez</item>
+      <item>bgt</item>
+      <item>bgtu</item>
+      <item>bgtz</item>
+      <item>ble</item>
+      <item>bleu</item>
+      <item>blez</item>
+      <item>blt</item>
+      <item>bltu</item>
+      <item>bltz</item>
+      <item>bne</item>
+      <item>bnez</item>
+      <item>ecall</item>
+      <item>ebreak</item>
+      <item>j</item>
+      <item>jal</item>
+      <item>jalr</item>
+      <item>jr</item>
+      <item>jump</item>
+      <item>sbreak</item>
+      <item>scall</item>
+      <!-- RISC-V code size reduction (Zcmt) -->
+      <item>cm.jalt</item>
+      <item>cm.jt</item>
+      <!-- RISC-V code size reduction (Zcmp) -->
+      <item>cm.popret</item>
+      <item>cm.popretz</item>
+      <!-- RISC-V supervisor/hypervisor support (H) -->
+      <item>dret</item>
+      <item>mret</item>
+      <item>sret</item>
+      <item>wfi</item>
+      <!-- RISC-V control transfer records (Smctr/Ssctr) -->
+      <item>sctrclr</item>
+      <!-- RISC-V resumable non-maskable interrupts (Smrnmi) -->
+      <item>mnret</item>
+    </list>
+
+    <list name="vendor-specific branch instructions">
+      <!-- RISC-V CORE-V immediate branch (Xcvbi) instructions -->
+      <item>cv.beqimm</item>
+      <item>cv.bneimm</item>
+    </list>
+
+    <list name="deprecated/removed instructions">
+      <!-- RISC-V removed from hypervisor support (H) -->
+      <item>hret</item>
+      <!-- RISC-V removed from hypervisor support (H) in favor of the improved sfence.vma -->
+      <item>sfence.vm</item>
+      <!-- RISC-V part of removed user-level interrupts (N) -->
+      <item>uret</item>
+    </list>
+
+    <list name="keywords">
+      <item>.abort</item>
+      <item>.align</item>
+      <item>.app-file</item>
+      <item>.appline</item>
+      <item>.ascii</item>
+      <item>.asciz</item>
+      <item>.att_syntax</item>
+      <item>.balign</item>
+      <item>.balignl</item>
+      <item>.balignw</item>
+      <item>.byte</item>
+      <item>.code16</item>
+      <item>.code32</item>
+      <item>.comm</item>
+      <item>.common.s</item>
+      <item>.common</item>
+      <item>.data</item>
+      <item>.dc.b</item>
+      <item>.dc.d</item>
+      <item>.dc.l</item>
+      <item>.dc.s</item>
+      <item>.dc.w</item>
+      <item>.dc.x</item>
+      <item>.dc</item>
+      <item>.dcb.b</item>
+      <item>.dcb.d</item>
+      <item>.dcb.l</item>
+      <item>.dcb.s</item>
+      <item>.dcb.w</item>
+      <item>.dcb.x</item>
+      <item>.dcb</item>
+      <item>.debug</item>
+      <item>.def</item>
+      <item>.desc</item>
+      <item>.dim</item>
+      <item>.double</item>
+      <item>.ds.b</item>
+      <item>.ds.d</item>
+      <item>.ds.l</item>
+      <item>.ds.p</item>
+      <item>.ds.s</item>
+      <item>.ds.w</item>
+      <item>.ds.x</item>
+      <item>.ds</item>
+      <item>.dsect</item>
+      <item>.eject</item>
+      <item>.else</item>
+      <item>.elsec</item>
+      <item>.elseif</item>
+      <item>.end</item>
+      <item>.endc</item>
+      <item>.endef</item>
+      <item>.endfunc</item>
+      <item>.endif</item>
+      <item>.endm</item>
+      <item>.endr</item>
+      <item>.equ</item>
+      <item>.equiv</item>
+      <item>.err</item>
+      <item>.exitm</item>
+      <item>.extend</item>
+      <item>.extern</item>
+      <item>.fail</item>
+      <item>.file</item>
+      <item>.fill</item>
+      <item>.float</item>
+      <item>.format</item>
+      <item>.func</item>
+      <item>.global</item>
+      <item>.globl</item>
+      <item>.hidden</item>
+      <item>.hword</item>
+      <item>.ident</item>
+      <item>.if</item>
+      <item>.ifc</item>
+      <item>.ifdef</item>
+      <item>.ifeq</item>
+      <item>.ifeqs</item>
+      <item>.ifge</item>
+      <item>.ifgt</item>
+      <item>.ifle</item>
+      <item>.iflt</item>
+      <item>.ifnc</item>
+      <item>.ifndef</item>
+      <item>.ifne</item>
+      <item>.ifnes</item>
+      <item>.ifnotdef</item>
+      <item>.include</item>
+      <item>.int</item>
+      <item>.intel_syntax</item>
+      <item>.internal</item>
+      <item>.irep</item>
+      <item>.irepc</item>
+      <item>.irp</item>
+      <item>.irpc</item>
+      <item>.lcomm</item>
+      <item>.lflags</item>
+      <item>.line</item>
+      <item>.linkonce</item>
+      <item>.list</item>
+      <item>.llen</item>
+      <item>.ln</item>
+      <item>.long</item>
+      <item>.lsym</item>
+      <item>.macro</item>
+      <item>.mexit</item>
+      <item>.name</item>
+      <item>.noformat</item>
+      <item>.nolist</item>
+      <item>.nopage</item>
+      <item>noprefix</item>
+      <item>.octa</item>
+      <item>.offset</item>
+      <item>.org</item>
+      <item>.p2align</item>
+      <item>.p2alignl</item>
+      <item>.p2alignw</item>
+      <item>.page</item>
+      <item>.plen</item>
+      <item>.popsection</item>
+      <item>.previous</item>
+      <item>.print</item>
+      <item>.protected</item>
+      <item>.psize</item>
+      <item>.purgem</item>
+      <item>.pushsection</item>
+      <item>.quad</item>
+      <item>.rodata</item>
+      <item>.rep</item>
+      <item>.rept</item>
+      <item>.rva</item>
+      <item>.sbttl</item>
+      <item>.scl</item>
+      <item>.sect.s</item>
+      <item>.sect</item>
+      <item>.section.s</item>
+      <item>.section</item>
+      <item>.set</item>
+      <item>.short</item>
+      <item>.single</item>
+      <item>.size</item>
+      <item>.skip</item>
+      <item>.sleb128</item>
+      <item>.space</item>
+      <item>.spc</item>
+      <item>.stabd</item>
+      <item>.stabn</item>
+      <item>.stabs</item>
+      <item>.string</item>
+      <item>.struct</item>
+      <item>.subsection</item>
+      <item>.symver</item>
+      <item>.tag</item>
+      <item>.text</item>
+      <item>.title</item>
+      <item>.ttl</item>
+      <item>.type</item>
+      <item>.uleb128</item>
+      <item>.use</item>
+      <item>.val</item>
+      <item>.version</item>
+      <item>.vtable_entry</item>
+      <item>.vtable_inherit</item>
+      <item>.weak</item>
+      <item>.word</item>
+      <item>.xcom</item>
+      <item>.xdef</item>
+      <item>.xref</item>
+      <item>.xstabs</item>
+      <item>.zero</item>
+      <!-- Directives specific to ARM -->
+      <item>.arm</item>
+      <item>.bss</item>
+      <item>.code</item>
+      <item>.even</item>
+      <item>.force_thumb</item>
+      <item>.ldouble</item>
+      <item>.loc</item>
+      <item>.ltorg</item>
+      <item>.packed</item>
+      <item>.pool</item>
+      <item>.req</item>
+      <item>.thumb</item>
+      <item>.thumb_func</item>
+      <item>.thumb_set</item>
+      <!-- Directives specific to RISC-V -->
+      <item>.attribute</item>
+      <item>.dtpreldword</item>
+      <item>.dtprelword</item>
+      <item>.dword</item>
+      <item>.half</item>
+      <item>.insn</item>
+      <item>.option</item>
+    </list>
+
+    <list name="symbolic constants">
+      <!-- RISC-V rounding mode constants -->
+      <item>rne</item>
+      <item>rtz</item>
+      <item>rdn</item>
+      <item>rup</item>
+      <item>rmm</item>
+      <item>dyn</item>
+      <!-- RISC-V selected element width (SEW) constants  -->
+      <item>e8</item>
+      <item>e16</item>
+      <item>e32</item>
+      <item>e64</item>
+      <!-- RISC-V vector register group multiplier (LMUL) constants  -->
+      <item>m1</item>
+      <item>m2</item>
+      <item>m4</item>
+      <item>m8</item>
+      <item>mf8</item>
+      <item>mf4</item>
+      <item>mf2</item>
+      <!-- RISC-V vector tail agnostic (VTA) constants  -->
+      <item>tu</item>
+      <item>ta</item>
+      <!-- RISC-V vector mask agnostic (VMA) constants  -->
+      <item>mu</item>
+      <item>ma</item>
+      <!-- RISC-V FLI.[HSDQ] constants  -->
+      <item>min</item>
+      <item>inf</item>
+      <item>nan</item>
+    </list>
+
+    <list name="vendor-specific symbolic constants">
+      <!-- RISC-V vendor-specific XTheadVector VLMUL constants  -->
+      <item>m1</item>
+      <item>m2</item>
+      <item>m4</item>
+      <item>m8</item>
+      <!-- RISC-V vendor-specific XTheadVector VEDIV constants  -->
+      <item>d1</item>
+      <item>d2</item>
+      <item>d4</item>
+      <item>d8</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr      attribute="Label" context="#stay" String="[\.]?[_\w\d-]*\s*:" />
+        <keyword      attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword      attribute="Registers" context="#stay" String="registers"/>
+        <keyword      attribute="Instructions" context="#stay" String="instructions"/>
+        <keyword      attribute="Vendor-specific Instructions" context="#stay" String="vendor-specific instructions"/>
+        <keyword      attribute="Branch Instructions" context="#stay" String="branch instructions"/>
+        <keyword      attribute="Vendor-specific Branch Instructions" context="#stay" String="vendor-specific branch instructions"/>
+        <keyword      attribute="Deprecated/Removed Instructions" context="#stay" String="deprecated/removed instructions"/>
+        <keyword      attribute="Symbolic Constants" context="#stay" String="symbolic constants"/>
+        <keyword      attribute="Vendor-specific Symbolic Constants" context="#stay" String="vendor-specific symbolic constants"/>
+        <HlCOct       attribute="Octal" context="#stay" />
+        <HlCHex       attribute="Hex" context="#stay" />
+        <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />
+        <Int          attribute="Decimal" context="#stay" />
+        <RegExpr      attribute="Decimal" context="#stay" String="\$[0-9]+" />
+        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />
+        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
+        <HlCChar      attribute="Char" context="#stay" />
+        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />
+        <DetectChar   attribute="String" context="String" char="&quot;" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" firstNonSpace="true" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" beginRegion="BlockComment" />
+        <AnyChar      attribute="Comment" context="Commentar 2" String="@;#" />
+        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
+        <DetectSpaces />
+        <IncludeRules context="##Comments" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" >
+        <DetectSpaces />
+        <IncludeRules context="##Comments" />
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue  attribute="String" context="Some Context" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+      </context>
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"   />
+      <itemData name="Label"        defStyleNum="dsFunction"  />
+      <itemData name="Keyword"      defStyleNum="dsKeyword"  />
+      <itemData name="Registers"    defStyleNum="dsKeyword"  />
+      <itemData name="Instructions" defStyleNum="dsKeyword"  />
+      <itemData name="Vendor-specific Instructions" defStyleNum="dsKeyword"  />
+      <itemData name="Branch Instructions" defStyleNum="dsControlFlow"  />
+      <itemData name="Vendor-specific Branch Instructions" defStyleNum="dsControlFlow"  />
+      <itemData name="Deprecated/Removed Instructions" defStyleNum="dsKeyword"  />
+      <itemData name="Symbolic Constants"    defStyleNum="dsConstant" />
+      <itemData name="Vendor-specific Symbolic Constants"    defStyleNum="dsConstant" />
       <itemData name="Decimal"      defStyleNum="dsDecVal"   />
       <itemData name="Octal"        defStyleNum="dsBaseN"    />
       <itemData name="Hex"          defStyleNum="dsBaseN"    />
diff --git a/xml/html.xml b/xml/html.xml
--- a/xml/html.xml
+++ b/xml/html.xml
@@ -3,34 +3,77 @@
 [
 	<!ENTITY name          "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY attributeName "[A-Za-z_:*#\(\[][\)\]\w.:_-]*">
-	<!ENTITY entref        "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+  <!-- https://html.spec.whatwg.org/#named-character-references -->
+	<!ENTITY entname_without_semicolon "([AaEeIiOoUuYy]?acute|[AaEeIiOoUu]circ|[AaEeIiOoUu]grave|AElig|aelig|AMP|amp|[Aa]ring|brvbar|[Cc]?cedil|cent|COPY|copy|curren|deg|divide|ETH|eth|frac1[24]|frac34|GT|gt|iexcl|iquest|laquo|LT|lt|macr|micro|middot|nbsp|not|[AaNnOo]tilde|ord[fm]|[Oo]slash|[AaEeIiOoUuy]?uml|para|plusmn|pound|QUOT|quot|raquo|REG|reg|sect|shy|sup[123]|szlig|THORN|thorn|times|yen)">
+  <!-- https://html.spec.whatwg.org/#named-character-reference-state -->
+  <!-- Longest entity: CounterClockwiseContourIntegral (len=31) -->
+  <!ENTITY entref "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z][A-Za-z0-9]{1,30});|&amp;&entname_without_semicolon;(?=[^;]|$)">
 ]>
-<language name="HTML" version="18" kateversion="5.79" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm;*.aspx" mimetype="text/html"  author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+<language name="HTML" version="20" kateversion="5.79" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm;*.aspx" mimetype="text/html" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
 
 <highlighting>
 <contexts>
+
+  <!-- https://html.spec.whatwg.org/#syntax -->
+
   <context name="Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
     <IncludeRules context="FindHTML" />
   </context>
 
-  <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
+  <context name="FindText" attribute="Normal Text" lineEndContext="#stay">
     <DetectSpaces/>
     <DetectIdentifier/>
+  </context>
+
+  <context name="FindComment" attribute="Normal Text" lineEndContext="#stay">
     <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
-    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
-    <WordDetect attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE" insensitive="true" beginRegion="doctype" />
+  </context>
+
+  <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
     <IncludeRules context="FindElements" />
-    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+    <IncludeRules context="FindComment" />
 
-    <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
-    <IncludeRules context="FindEntityRefs" />
+    <!-- TODO -->
+    <!-- as long as kde gives DTDs the text/html mimetype--><!-- <IncludeRules context="FindDTDRules" /> -->
+    <WordDetect attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE" insensitive="true"/>
+
+    <IncludeRules context="FindEntity" />
+    <IncludeRules context="FindErrors" />
   </context>
 
+  <context name="FindForeign" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="FindElements" />
+    <IncludeRules context="FindComment" />
+    <IncludeRules context="FindCDATA" />
+    <IncludeRules context="FindEntity" />
+    <IncludeRules context="FindErrors" />
+  </context>
+
   <context name="FindElements" attribute="Other Text" lineEndContext="#pop">
     <RegExpr attribute="Element Symbols" context="ElementTagName" String="&lt;(?=(&name;))" />
     <RegExpr attribute="Element Symbols" context="ElementTagNameClose" String="&lt;/(?=(&name;))" />
   </context>
 
+  <context name="FindErrors" attribute="Other Text" lineEndContext="#pop">
+    <!--
+    (error) incorrectly-opened-comment
+      "<!" not immediately followed by two "-"
+      All content that follows up to a ">" is treated as a comment.
+    (error) cdata-in-html-content
+      CDATA section outside of foreign content (SVG or MathML).
+      The parser treats such CDATA sections as comments.
+    -->
+    <StringDetect attribute="Error" context="Bogus Comment" String="&lt;!"/>
+    <!-- (error) unexpected-question-mark-instead-of-tag-name: treated as a comment. -->
+    <StringDetect attribute="Error" context="Bogus Comment" String="&lt;?"/>
+    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+  </context>
+
+  <context name="FindCDATA" attribute="Other Text" lineEndContext="#pop">
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+  </context>
+
   <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop">
     <IncludeRules context="FindHTMLTags" />
     <IncludeRules context="FindSpecialHTMLTags" />
@@ -44,8 +87,15 @@
 
   <!-- This allows you to insert HTML tags in other syntax definitions -->
   <context name="FindSpecialHTMLTags" attribute="Normal Text" lineEndContext="#stay">
+    <!-- Raw text elements -->
     <WordDetect attribute="Element" context="#pop!CSS" String="style" insensitive="true" beginRegion="style" />
     <WordDetect attribute="Element" context="#pop!JS" String="script" insensitive="true" beginRegion="script" />
+    <!-- Foreign Elements (CDATA sections can only be used in foreign content) -->
+    <WordDetect attribute="Element" context="#pop!SVG" String="svg" insensitive="true" beginRegion="svg"/>
+    <WordDetect attribute="Element" context="#pop!MATH" String="math" insensitive="true" beginRegion="math"/>
+    <!-- Escapable raw text elements -->
+    <WordDetect attribute="Element" context="#pop!Textarea" String="textarea" insensitive="true" beginRegion="textarea"/>
+    <WordDetect attribute="Element" context="#pop!Title" String="title" insensitive="true"/>
   </context>
 
   <context name="FindHTMLTags" attribute="Normal Text" lineEndContext="#stay">
@@ -85,14 +135,11 @@
   </context>
 
   <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <IncludeRules context="FindEntity" />
     <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
   </context>
-
-  <context name="FindPEntityRefs" attribute="Other Text" lineEndContext="#stay">
+  <context name="FindEntity" attribute="Other Text" lineEndContext="#stay">
     <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
-    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
-    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
   </context>
 
   <context name="FindAttributes" attribute="Other Text" lineEndContext="#stay">
@@ -100,70 +147,160 @@
     <RegExpr attribute="Attribute" context="#stay" String="(^|\s+)&attributeName;(\s+&attributeName;)*\s*|\s+" />
   </context>
 
-  <context name="FindDTDRules" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(?:ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
-  </context>
+  <!--
+  Comments must have the following format:
 
+  - The string "<!-""-".
+  - Optionally, text, with the additional restriction that the text must not
+    start with the string ">", nor start with the string "->", nor contain
+    the strings "<!-"""-", "-""->", or "-""-!>", nor end with the string "<!-".
+  - The string "-""->".
 
-  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+  The text is allowed to end with the string "<!", as in "<!-""- bla <!-""->".
+
+  - https://html.spec.whatwg.org/#parse-error-nested-comment
+      ignore "<!-""-"
+  - https://html.spec.whatwg.org/#parse-error-abrupt-closing-of-empty-comment
+      with "<!-""->" or "<!-""-""->") the comment is closed
+
+  comment := start ( ">" | "->" | (* - end) end )
+  start := "<!-" "-"
+  end := "-" "->"
+  -->
+  <context name="Comment" attribute="Comment" lineEndContext="Comment content" fallthroughContext="Comment content">
+    <StringDetect attribute="Error" context="#pop" String="&gt;" endRegion="comment" />
+    <StringDetect attribute="Error" context="#pop" String="-&gt;" endRegion="comment" />
+  </context>
+  <context name="Comment content" attribute="Comment" lineEndContext="#stay">
     <DetectSpaces/>
-    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+    <StringDetect attribute="Comment" context="#pop#pop" String="--&gt;" endRegion="comment" />
     <IncludeRules context="##Comments" />
     <DetectIdentifier/>
-    <RegExpr attribute="Error" context="#stay" String="-(?:-(?!-&gt;))+" />
   </context>
 
+  <context name="Bogus Comment" attribute="Comment" lineEndContext="#stay">
+    <DetectChar attribute="Comment" context="#pop" char="&gt;" endRegion="comment" />
+  </context>
+
   <context name="CDATA" attribute="Other Text" lineEndContext="#stay">
-    <DetectSpaces/>
-    <DetectIdentifier/>
+    <IncludeRules context="FindText" />
     <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
-    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
   </context>
 
-  <context name="PI" attribute="Other Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
-  </context>
+  <!--
+    DOCTYPE
 
-  <context name="Doctype" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
-    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
-  </context>
+    https://html.spec.whatwg.org/#the-doctype
+    https://html.spec.whatwg.org/#after-doctype-name-state (for public identifier)
 
-  <context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
-    <IncludeRules context="FindDTDRules" />
-    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
-    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
-    <IncludeRules context="FindPEntityRefs" />
-  </context>
+    <!DOCTYPE html>
+    <!DOCTYPE html SYSTEM "about:legacy-compat">
+    <!DOCTYPE html SYSTEM 'about:legacy-compat'>
 
-  <context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">
+    HTML does not support Internal Subset (e.g. <!ENTITY ...>)
+
+    @{
+  -->
+
+  <context name="Doctype" attribute="Other Text" lineEndContext="#stay">
     <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
-    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
-    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+    <DetectChar attribute="Value" context="Doctype DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Doctype SQ" char="&apos;" />
   </context>
 
-  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+  <context name="Doctype DQ" attribute="Value" lineEndContext="#stay">
     <DetectChar attribute="Value" context="#pop" char="&quot;" />
-    <IncludeRules context="FindPEntityRefs" />
+    <IncludeRules context="Doctype Value" />
   </context>
 
-  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+  <context name="Doctype SQ" attribute="Value" lineEndContext="#stay">
     <DetectChar attribute="Value" context="#pop" char="&apos;" />
-    <IncludeRules context="FindPEntityRefs" />
+    <IncludeRules context="Doctype Value" />
   </context>
 
+  <context name="Doctype Value" attribute="Value" lineEndContext="#stay">
+    <!-- no entity, only predefined strings -->
+    <DetectChar attribute="Error" context="#pop" char="&amp;"/>
+    <!--
+      https://html.spec.whatwg.org/#parse-error-abrupt-doctype-public-identifier
+      https://html.spec.whatwg.org/#parse-error-abrupt-doctype-system-identifier
+    -->
+    <DetectChar attribute="Error" context="#pop#pop" char="&gt;"/>
+  </context>
+
+  <!--
+    @} DOCTYPE
+  -->
+
   <context name="El Open" attribute="Error" lineEndContext="#stay">
     <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" />
     <DetectChar attribute="Element Symbols" context="#pop" char="&gt;" />
     <IncludeRules context="FindAttributes" />
   </context>
 
-  <context name="El Close" attribute="Other Text" lineEndContext="#stay">
+  <context name="El Close" attribute="Error" lineEndContext="#stay">
     <DetectChar attribute="Element Symbols" context="#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Other Text"/>
   </context>
 
+  <context name="SVG" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="svg" />
+    <DetectChar attribute="Element Symbols" context="SVG content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+  </context>
+  <context name="SVG content" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
+    <RegExpr attribute="Element Symbols" context="SVG content Close" String="&lt;/(?=svg\b)" insensitive="true" />
+    <IncludeRules context="FindForeign" />
+  </context>
+  <context name="SVG content Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" endRegion="svg" />
+  </context>
+
+  <context name="MATH" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="math" />
+    <DetectChar attribute="Element Symbols" context="MATH content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+  </context>
+  <context name="MATH content" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
+    <RegExpr attribute="Element Symbols" context="MATH content Close" String="&lt;/(?=math\b)" insensitive="true" />
+    <IncludeRules context="FindForeign" />
+  </context>
+  <context name="MATH content Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" endRegion="math" />
+  </context>
+
+  <context name="Textarea" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="textarea" />
+    <DetectChar attribute="Element Symbols" context="Textarea content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+  </context>
+  <context name="Textarea content" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
+    <RegExpr attribute="Element Symbols" context="Textarea content Close" String="&lt;/(?=textarea\b)" insensitive="true" />
+    <IncludeRules context="FindEntity" />
+    <DetectChar attribute="Error" context="#stay" char="&amp;" />
+  </context>
+  <context name="Textarea content Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" endRegion="textarea" />
+  </context>
+
+  <context name="Title" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" />
+    <DetectChar attribute="Element Symbols" context="Title content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+  </context>
+  <context name="Title content" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
+    <RegExpr attribute="Element Symbols" context="Title content Close" String="&lt;/(?=title\b)" insensitive="true" />
+    <IncludeRules context="FindEntity" />
+    <DetectChar attribute="Error" context="#stay" char="&amp;" />
+  </context>
+  <context name="Title content Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" />
+  </context>
+
   <context name="CSS" attribute="Error" lineEndContext="#stay">
     <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="style" />
     <DetectChar attribute="Element Symbols" context="CSS content" char="&gt;" />
@@ -195,7 +332,7 @@
   </context>
   <context name="Default JS content" attribute="Other Text" lineEndContext="#stay">
     <IncludeRules context="FindScriptTagClose" />
-    <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
+    <RegExpr attribute="Comment" context="#pop!JS comment close" String="//(?=.*?&lt;/script\b)" insensitive="true" />
   </context>
 
   <context name="FindScriptTagClose" attribute="Other Text" lineEndContext="#stay">
@@ -206,9 +343,10 @@
   </context>
 
   <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
-    <RegExpr attribute="Element Symbols" context="#pop!ScriptTagClose" String="&lt;/(?=script\b)" insensitive="true" />
     <DetectSpaces />
+    <IncludeRules context="FindScriptTagClose" />
     <IncludeRules context="##Comments" />
+    <DetectIdentifier/>
   </context>
 
   <context name="Value" attribute="Other Text" lineEndContext="#stay" fallthroughContext="Value NQ">
@@ -220,8 +358,8 @@
   <context name="Value NQ" attribute="Other Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
     <!-- '{' and '}' are valid, but used with twig -->
     <RegExpr attribute="Value" String="[^&gt;&lt;&quot;&apos;&amp;\s=`{}]+" />
-    <IncludeRules context="FindEntityRefs" />
-    <AnyChar attribute="Error" String="&quot;&apos;`=" />
+    <IncludeRules context="FindEntity" />
+    <AnyChar attribute="Error" String="&amp;&lt;&quot;&apos;`=" />
     <AnyChar attribute="Value" String="{}" />
   </context>
 
@@ -302,10 +440,14 @@
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="Script HTML template content" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindText" />
     <IncludeRules context="FindScriptTagClose" />
     <StringDetect attribute="Error" context="#stay" String="&lt;script&gt;" insensitive="true" />
     <WordDetect attribute="Error" context="#stay" String="&lt;script" insensitive="true" />
-    <IncludeRules context="FindHTML" />
+    <IncludeRules context="FindElements" />
+    <IncludeRules context="FindComment" />
+    <IncludeRules context="FindEntity" />
+    <IncludeRules context="FindErrors" />
   </context>
 
 </contexts>
@@ -314,7 +456,6 @@
   <itemData name="Other Text" defStyleNum="dsNormal" spellChecking="false" />
   <itemData name="Comment" defStyleNum="dsComment" />
   <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false" />
-  <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
   <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false" />
   <itemData name="Element" defStyleNum="dsKeyword" spellChecking="false" />
   <itemData name="Element Symbols" defStyleNum="dsDataType" spellChecking="false" />
@@ -322,7 +463,6 @@
   <itemData name="Attribute Separator" defStyleNum="dsOperator" spellChecking="false" />
   <itemData name="Value" defStyleNum="dsString" spellChecking="false" />
   <itemData name="EntityRef" defStyleNum="dsDecVal" spellChecking="false" />
-  <itemData name="PEntityRef" defStyleNum="dsDecVal" spellChecking="false" />
   <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
 </itemDatas>
 
diff --git a/xml/ini.xml b/xml/ini.xml
--- a/xml/ini.xml
+++ b/xml/ini.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="INI Files" section="Configuration" extensions="*.ini;*.cfg;*.pls;*.kcfgc;.gitattributes*;.gitconfig*;.gitmodules*;.editorconfig*" mimetype="" version="13" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL" priority="1">
+<language name="INI Files" section="Configuration" extensions="*.ini;*.INI;*.cfg;*.pls;*.kcfgc;.gitattributes*;.gitconfig*;.gitmodules*;.editorconfig*" mimetype="" version="14" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL" priority="1">
 
 <highlighting>
 <list name="keywords">
diff --git a/xml/java.xml b/xml/java.xml
--- a/xml/java.xml
+++ b/xml/java.xml
@@ -154,7 +154,6 @@
 			<item>Any</item>
 			<item>AnyHolder</item>
 			<item>AnySeqHelper</item>
-			<item>AnySeqHelper</item>
 			<item>AnySeqHolder</item>
 			<item>AppConfigurationEntry</item>
 			<item>AppConfigurationEntry.LoginModuleControlFlag</item>
@@ -171,7 +170,6 @@
 			<item>AreaAveragingScaleFilter</item>
 			<item>ArithmeticException</item>
 			<item>Array</item>
-			<item>Array</item>
 			<item>ArrayBlockingQueue</item>
 			<item>ArrayIndexOutOfBoundsException</item>
 			<item>ArrayList</item>
@@ -195,20 +193,15 @@
 			<item>AtomicStampedReference</item>
 			<item>Attr</item>
 			<item>Attribute</item>
-			<item>Attribute</item>
-			<item>Attribute</item>
 			<item>AttributeChangeNotification</item>
 			<item>AttributeChangeNotificationFilter</item>
 			<item>AttributeException</item>
 			<item>AttributeInUseException</item>
 			<item>AttributeList</item>
-			<item>AttributeList</item>
-			<item>AttributeList</item>
 			<item>AttributeListImpl</item>
 			<item>AttributeModificationException</item>
 			<item>AttributeNotFoundException</item>
 			<item>AttributeSet</item>
-			<item>AttributeSet</item>
 			<item>AttributeSet.CharacterAttribute</item>
 			<item>AttributeSet.ColorAttribute</item>
 			<item>AttributeSet.FontAttribute</item>
@@ -219,8 +212,6 @@
 			<item>AttributedCharacterIterator.Attribute</item>
 			<item>AttributedString</item>
 			<item>Attributes</item>
-			<item>Attributes</item>
-			<item>Attributes</item>
 			<item>Attributes.Name</item>
 			<item>Attributes2</item>
 			<item>Attributes2Impl</item>
@@ -238,7 +229,6 @@
 			<item>AuthPermission</item>
 			<item>AuthProvider</item>
 			<item>AuthenticationException</item>
-			<item>AuthenticationException</item>
 			<item>AuthenticationNotSupportedException</item>
 			<item>Authenticator</item>
 			<item>Authenticator.RequestorType</item>
@@ -370,7 +360,6 @@
 			<item>BinaryRefAddr</item>
 			<item>BindException</item>
 			<item>Binding</item>
-			<item>Binding</item>
 			<item>BindingHelper</item>
 			<item>BindingHolder</item>
 			<item>BindingIterator</item>
@@ -407,7 +396,6 @@
 			<item>BorderUIResource.TitledBorderUIResource</item>
 			<item>BoundedRangeModel</item>
 			<item>Bounds</item>
-			<item>Bounds</item>
 			<item>Box</item>
 			<item>Box.Filler</item>
 			<item>BoxLayout</item>
@@ -494,21 +482,14 @@
 			<item>CertStoreParameters</item>
 			<item>CertStoreSpi</item>
 			<item>Certificate</item>
-			<item>Certificate</item>
-			<item>Certificate</item>
 			<item>Certificate.CertificateRep</item>
 			<item>CertificateEncodingException</item>
-			<item>CertificateEncodingException</item>
 			<item>CertificateException</item>
-			<item>CertificateException</item>
 			<item>CertificateExpiredException</item>
-			<item>CertificateExpiredException</item>
 			<item>CertificateFactory</item>
 			<item>CertificateFactorySpi</item>
 			<item>CertificateNotYetValidException</item>
-			<item>CertificateNotYetValidException</item>
 			<item>CertificateParsingException</item>
-			<item>CertificateParsingException</item>
 			<item>ChangeEvent</item>
 			<item>ChangeListener</item>
 			<item>ChangedCharSetException</item>
@@ -646,7 +627,6 @@
 			<item>ConfigurationException</item>
 			<item>ConfirmationCallback</item>
 			<item>ConnectException</item>
-			<item>ConnectException</item>
 			<item>ConnectIOException</item>
 			<item>Connection</item>
 			<item>ConnectionEvent</item>
@@ -661,16 +641,13 @@
 			<item>ContainerListener</item>
 			<item>ContainerOrderFocusTraversalPolicy</item>
 			<item>ContentHandler</item>
-			<item>ContentHandler</item>
 			<item>ContentHandlerFactory</item>
 			<item>ContentModel</item>
 			<item>Context</item>
-			<item>Context</item>
 			<item>ContextList</item>
 			<item>ContextNotEmptyException</item>
 			<item>ContextualRenderedImageFactory</item>
 			<item>Control</item>
-			<item>Control</item>
 			<item>Control.Type</item>
 			<item>ControlFactory</item>
 			<item>ControllerEventListener</item>
@@ -693,15 +670,9 @@
 			<item>CubicCurve2D.Float</item>
 			<item>Currency</item>
 			<item>Current</item>
-			<item>Current</item>
-			<item>Current</item>
 			<item>CurrentHelper</item>
-			<item>CurrentHelper</item>
-			<item>CurrentHelper</item>
 			<item>CurrentHolder</item>
 			<item>CurrentOperations</item>
-			<item>CurrentOperations</item>
-			<item>CurrentOperations</item>
 			<item>Cursor</item>
 			<item>CustomMarshal</item>
 			<item>CustomValue</item>
@@ -729,7 +700,6 @@
 			<item>DOMImplementationRegistry</item>
 			<item>DOMImplementationSource</item>
 			<item>DOMLocator</item>
-			<item>DOMLocator</item>
 			<item>DOMResult</item>
 			<item>DOMSource</item>
 			<item>DOMStringList</item>
@@ -755,12 +725,10 @@
 			<item>DataFormatException</item>
 			<item>DataInput</item>
 			<item>DataInputStream</item>
-			<item>DataInputStream</item>
 			<item>DataLine</item>
 			<item>DataLine.Info</item>
 			<item>DataOutput</item>
 			<item>DataOutputStream</item>
-			<item>DataOutputStream</item>
 			<item>DataSource</item>
 			<item>DataTruncation</item>
 			<item>DatabaseMetaData</item>
@@ -774,7 +742,6 @@
 			<item>DatatypeConstants.Field</item>
 			<item>DatatypeFactory</item>
 			<item>Date</item>
-			<item>Date</item>
 			<item>DateFormat</item>
 			<item>DateFormat.Field</item>
 			<item>DateFormatSymbols</item>
@@ -817,7 +784,6 @@
 			<item>DefaultListModel</item>
 			<item>DefaultListSelectionModel</item>
 			<item>DefaultLoaderRepository</item>
-			<item>DefaultLoaderRepository</item>
 			<item>DefaultMenuLayout</item>
 			<item>DefaultMetalTheme</item>
 			<item>DefaultMutableTreeNode</item>
@@ -842,8 +808,6 @@
 			<item>DelayQueue</item>
 			<item>Delayed</item>
 			<item>Delegate</item>
-			<item>Delegate</item>
-			<item>Delegate</item>
 			<item>DelegationPermission</item>
 			<item>Deprecated</item>
 			<item>Descriptor</item>
@@ -885,7 +849,6 @@
 			<item>DocFlavor.URL</item>
 			<item>DocPrintJob</item>
 			<item>Document</item>
-			<item>Document</item>
 			<item>DocumentBuilder</item>
 			<item>DocumentBuilderFactory</item>
 			<item>DocumentEvent</item>
@@ -935,7 +898,6 @@
 			<item>DuplicateNameHelper</item>
 			<item>Duration</item>
 			<item>DynAny</item>
-			<item>DynAny</item>
 			<item>DynAnyFactory</item>
 			<item>DynAnyFactoryHelper</item>
 			<item>DynAnyFactoryOperations</item>
@@ -943,31 +905,24 @@
 			<item>DynAnyOperations</item>
 			<item>DynAnySeqHelper</item>
 			<item>DynArray</item>
-			<item>DynArray</item>
 			<item>DynArrayHelper</item>
 			<item>DynArrayOperations</item>
 			<item>DynEnum</item>
-			<item>DynEnum</item>
 			<item>DynEnumHelper</item>
 			<item>DynEnumOperations</item>
 			<item>DynFixed</item>
-			<item>DynFixed</item>
 			<item>DynFixedHelper</item>
 			<item>DynFixedOperations</item>
 			<item>DynSequence</item>
-			<item>DynSequence</item>
 			<item>DynSequenceHelper</item>
 			<item>DynSequenceOperations</item>
 			<item>DynStruct</item>
-			<item>DynStruct</item>
 			<item>DynStructHelper</item>
 			<item>DynStructOperations</item>
 			<item>DynUnion</item>
-			<item>DynUnion</item>
 			<item>DynUnionHelper</item>
 			<item>DynUnionOperations</item>
 			<item>DynValue</item>
-			<item>DynValue</item>
 			<item>DynValueBox</item>
 			<item>DynValueBoxOperations</item>
 			<item>DynValueCommon</item>
@@ -975,7 +930,6 @@
 			<item>DynValueHelper</item>
 			<item>DynValueOperations</item>
 			<item>DynamicImplementation</item>
-			<item>DynamicImplementation</item>
 			<item>DynamicMBean</item>
 			<item>ECField</item>
 			<item>ECFieldF2m</item>
@@ -992,8 +946,6 @@
 			<item>EOFException</item>
 			<item>EditorKit</item>
 			<item>Element</item>
-			<item>Element</item>
-			<item>Element</item>
 			<item>ElementIterator</item>
 			<item>ElementType</item>
 			<item>Ellipse2D</item>
@@ -1007,7 +959,6 @@
 			<item>Encoding</item>
 			<item>EncryptedPrivateKeyInfo</item>
 			<item>Entity</item>
-			<item>Entity</item>
 			<item>EntityReference</item>
 			<item>EntityResolver</item>
 			<item>EntityResolver2</item>
@@ -1062,7 +1013,6 @@
 			<item>Fidelity</item>
 			<item>Field</item>
 			<item>FieldNameHelper</item>
-			<item>FieldNameHelper</item>
 			<item>FieldPosition</item>
 			<item>FieldView</item>
 			<item>File</item>
@@ -1074,7 +1024,6 @@
 			<item>FileDescriptor</item>
 			<item>FileDialog</item>
 			<item>FileFilter</item>
-			<item>FileFilter</item>
 			<item>FileHandler</item>
 			<item>FileImageInputStream</item>
 			<item>FileImageOutputStream</item>
@@ -1139,12 +1088,9 @@
 			<item>Formattable</item>
 			<item>FormattableFlags</item>
 			<item>Formatter</item>
-			<item>Formatter</item>
 			<item>FormatterClosedException</item>
 			<item>ForwardRequest</item>
-			<item>ForwardRequest</item>
 			<item>ForwardRequestHelper</item>
-			<item>ForwardRequestHelper</item>
 			<item>Frame</item>
 			<item>Future</item>
 			<item>FutureTask</item>
@@ -1349,7 +1295,6 @@
 			<item>IncompatibleClassChangeError</item>
 			<item>IncompleteAnnotationException</item>
 			<item>InconsistentTypeCode</item>
-			<item>InconsistentTypeCode</item>
 			<item>InconsistentTypeCodeHelper</item>
 			<item>IndexColorModel</item>
 			<item>IndexOutOfBoundsException</item>
@@ -1384,8 +1329,6 @@
 			<item>InputMismatchException</item>
 			<item>InputSource</item>
 			<item>InputStream</item>
-			<item>InputStream</item>
-			<item>InputStream</item>
 			<item>InputStreamReader</item>
 			<item>InputSubset</item>
 			<item>InputVerifier</item>
@@ -1416,7 +1359,6 @@
 			<item>InterruptedNamingException</item>
 			<item>InterruptibleChannel</item>
 			<item>IntrospectionException</item>
-			<item>IntrospectionException</item>
 			<item>Introspector</item>
 			<item>Invalid</item>
 			<item>InvalidActivityException</item>
@@ -1427,21 +1369,16 @@
 			<item>InvalidApplicationException</item>
 			<item>InvalidAttributeIdentifierException</item>
 			<item>InvalidAttributeValueException</item>
-			<item>InvalidAttributeValueException</item>
 			<item>InvalidAttributesException</item>
 			<item>InvalidClassException</item>
 			<item>InvalidDnDOperationException</item>
 			<item>InvalidKeyException</item>
-			<item>InvalidKeyException</item>
 			<item>InvalidKeySpecException</item>
 			<item>InvalidMarkException</item>
 			<item>InvalidMidiDataException</item>
 			<item>InvalidName</item>
-			<item>InvalidName</item>
-			<item>InvalidName</item>
 			<item>InvalidNameException</item>
 			<item>InvalidNameHelper</item>
-			<item>InvalidNameHelper</item>
 			<item>InvalidNameHolder</item>
 			<item>InvalidObjectException</item>
 			<item>InvalidOpenTypeException</item>
@@ -1466,7 +1403,6 @@
 			<item>InvalidTypeForEncoding</item>
 			<item>InvalidTypeForEncodingHelper</item>
 			<item>InvalidValue</item>
-			<item>InvalidValue</item>
 			<item>InvalidValueHelper</item>
 			<item>InvocationEvent</item>
 			<item>InvocationHandler</item>
@@ -1695,7 +1631,6 @@
 			<item>LinkedHashSet</item>
 			<item>LinkedList</item>
 			<item>List</item>
-			<item>List</item>
 			<item>ListCellRenderer</item>
 			<item>ListDataEvent</item>
 			<item>ListDataListener</item>
@@ -1999,9 +1934,7 @@
 			<item>NameNotFoundException</item>
 			<item>NameParser</item>
 			<item>NameValuePair</item>
-			<item>NameValuePair</item>
 			<item>NameValuePairHelper</item>
-			<item>NameValuePairHelper</item>
 			<item>NameValuePairSeqHelper</item>
 			<item>NamedNodeMap</item>
 			<item>NamedValue</item>
@@ -2100,7 +2033,6 @@
 			<item>OBJ_ADAPTER</item>
 			<item>OMGVMCID</item>
 			<item>ORB</item>
-			<item>ORB</item>
 			<item>ORBIdHelper</item>
 			<item>ORBInitInfo</item>
 			<item>ORBInitInfoOperations</item>
@@ -2108,7 +2040,6 @@
 			<item>ORBInitializerOperations</item>
 			<item>ObjID</item>
 			<item>Object</item>
-			<item>Object</item>
 			<item>ObjectAlreadyActive</item>
 			<item>ObjectAlreadyActiveHelper</item>
 			<item>ObjectChangeListener</item>
@@ -2117,9 +2048,7 @@
 			<item>ObjectHelper</item>
 			<item>ObjectHolder</item>
 			<item>ObjectIdHelper</item>
-			<item>ObjectIdHelper</item>
 			<item>ObjectImpl</item>
-			<item>ObjectImpl</item>
 			<item>ObjectInput</item>
 			<item>ObjectInputStream</item>
 			<item>ObjectInputStream.GetField</item>
@@ -2162,7 +2091,6 @@
 			<item>OpenMBeanParameterInfo</item>
 			<item>OpenMBeanParameterInfoSupport</item>
 			<item>OpenType</item>
-			<item>OpenType</item>
 			<item>OperatingSystemMXBean</item>
 			<item>Operation</item>
 			<item>OperationNotSupportedException</item>
@@ -2175,8 +2103,6 @@
 			<item>OutputDeviceAssigned</item>
 			<item>OutputKeys</item>
 			<item>OutputStream</item>
-			<item>OutputStream</item>
-			<item>OutputStream</item>
 			<item>OutputStreamWriter</item>
 			<item>OverlappingFileLockException</item>
 			<item>OverlayLayout</item>
@@ -2228,7 +2154,6 @@
 			<item>PanelUI</item>
 			<item>Paper</item>
 			<item>ParagraphView</item>
-			<item>ParagraphView</item>
 			<item>Parameter</item>
 			<item>ParameterBlock</item>
 			<item>ParameterDescriptor</item>
@@ -2240,7 +2165,6 @@
 			<item>ParseException</item>
 			<item>ParsePosition</item>
 			<item>Parser</item>
-			<item>Parser</item>
 			<item>ParserAdapter</item>
 			<item>ParserConfigurationException</item>
 			<item>ParserDelegator</item>
@@ -2254,7 +2178,6 @@
 			<item>Pattern</item>
 			<item>PatternSyntaxException</item>
 			<item>Permission</item>
-			<item>Permission</item>
 			<item>PermissionCollection</item>
 			<item>Permissions</item>
 			<item>PersistenceDelegate</item>
@@ -2277,8 +2200,6 @@
 			<item>Point2D.Float</item>
 			<item>PointerInfo</item>
 			<item>Policy</item>
-			<item>Policy</item>
-			<item>Policy</item>
 			<item>PolicyError</item>
 			<item>PolicyErrorCodeHelper</item>
 			<item>PolicyErrorHelper</item>
@@ -2316,7 +2237,6 @@
 			<item>PreparedStatement</item>
 			<item>PresentationDirection</item>
 			<item>Principal</item>
-			<item>Principal</item>
 			<item>PrincipalHolder</item>
 			<item>PrintEvent</item>
 			<item>PrintException</item>
@@ -2394,7 +2314,6 @@
 			<item>Provider.Service</item>
 			<item>ProviderException</item>
 			<item>Proxy</item>
-			<item>Proxy</item>
 			<item>Proxy.Type</item>
 			<item>ProxySelector</item>
 			<item>PublicKey</item>
@@ -2472,7 +2391,6 @@
 			<item>Ref</item>
 			<item>RefAddr</item>
 			<item>Reference</item>
-			<item>Reference</item>
 			<item>ReferenceQueue</item>
 			<item>ReferenceUriSchemesSupported</item>
 			<item>Referenceable</item>
@@ -2820,7 +2738,6 @@
 			<item>StateEditable</item>
 			<item>StateFactory</item>
 			<item>Statement</item>
-			<item>Statement</item>
 			<item>StreamCorruptedException</item>
 			<item>StreamHandler</item>
 			<item>StreamPrintService</item>
@@ -2999,14 +2916,11 @@
 			<item>TimeZone</item>
 			<item>TimeoutException</item>
 			<item>Timer</item>
-			<item>Timer</item>
-			<item>Timer</item>
 			<item>TimerAlarmClockNotification</item>
 			<item>TimerMBean</item>
 			<item>TimerNotification</item>
 			<item>TimerTask</item>
 			<item>Timestamp</item>
-			<item>Timestamp</item>
 			<item>TitledBorder</item>
 			<item>TooManyListenersException</item>
 			<item>ToolBarUI</item>
@@ -3055,10 +2969,7 @@
 			<item>TypeInfo</item>
 			<item>TypeInfoProvider</item>
 			<item>TypeMismatch</item>
-			<item>TypeMismatch</item>
-			<item>TypeMismatch</item>
 			<item>TypeMismatchHelper</item>
-			<item>TypeMismatchHelper</item>
 			<item>TypeNotPresentException</item>
 			<item>TypeVariable</item>
 			<item>Types</item>
@@ -3076,7 +2987,6 @@
 			<item>ULongSeqHelper</item>
 			<item>ULongSeqHolder</item>
 			<item>UNKNOWN</item>
-			<item>UNKNOWN</item>
 			<item>UNSUPPORTED_POLICY</item>
 			<item>UNSUPPORTED_POLICY_VALUE</item>
 			<item>URI</item>
@@ -3115,7 +3025,6 @@
 			<item>UnknownFormatFlagsException</item>
 			<item>UnknownGroupException</item>
 			<item>UnknownHostException</item>
-			<item>UnknownHostException</item>
 			<item>UnknownObjectException</item>
 			<item>UnknownServiceException</item>
 			<item>UnknownUserException</item>
@@ -3219,7 +3128,6 @@
 			<item>X509CRLSelector</item>
 			<item>X509CertSelector</item>
 			<item>X509Certificate</item>
-			<item>X509Certificate</item>
 			<item>X509EncodedKeySpec</item>
 			<item>X509ExtendedKeyManager</item>
 			<item>X509Extension</item>
@@ -3529,7 +3437,6 @@
 			<item>SimpleJavaFileObject</item>
 			<item>SimpleScriptContext</item>
 			<item>SimpleTypeVisitor6</item>
-			<item>SOAPBinding</item>
 			<item>SOAPBinding</item>
 			<item>SOAPBody</item>
 			<item>SOAPBodyElement</item>
diff --git a/xml/json.xml b/xml/json.xml
--- a/xml/json.xml
+++ b/xml/json.xml
@@ -6,14 +6,14 @@
  ** http://kate-editor.org/article/writing_a_kate_highlighting_xml_file
  **
  ** Introducing JSON
- ** http://www.json.org/
+ ** https://www.json.org/
  **
  ** The application/json Media Type for JavaScript Object Notation (JSON)
  ** http://tools.ietf.org/html/rfc4627
  ** https://www.json.org/json-en.html
  ***************************************************************************
 -->
-<language name="JSON" section="Markup" version="9" kateversion="2.4" extensions="*.json;*.jsonl;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
+<language name="JSON" section="Markup" version="10" kateversion="2.4" extensions="*.json;*.jsonl;*.ndjson;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json;application/x-ndjson;application/geo+json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
   <highlighting>
     <list name="Constants">
       <item>null</item>
@@ -21,21 +21,34 @@
       <item>false</item>
     </list>
 
+    <!--
+      Comments with JSONC are used by generate-jsonc.pl
+      which generates a jsonc.xml which supports .json and .jsonc
+      with priority="1"
+    -->
+
     <contexts>
       <context name="Normal" lineEndContext="#stay" attribute="Style_Error">
+        <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
         <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
         <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
 
         <DetectSpaces context="#stay" attribute="Style_Normal" />
+        <!-- JSONC -->
+
+        <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
+
+        <RegExpr String="-?\b((0\b|[1-9][0-9]*)\.[0-9]+(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Float" />
+        <RegExpr String="-?\b(0\b|[1-9][0-9]*(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Decimal" />
       </context>
 
       <context name="Pair" lineEndContext="#stay" attribute="Style_Error">
         <DetectChar char="&quot;"  context="String_Key" attribute="Style_String_Key" />
         <DetectChar char=":"       context="Value" attribute="Style_Seperator_Pair" />
         <DetectChar char="}"       context="#pop" endRegion="Region_Object" attribute="Style_Seperator_Pair" />
-        <DetectChar char=","       context="#stay" attribute="Style_Seperator_Pair" />
 
         <DetectSpaces context="#stay" attribute="Style_Normal" />
+        <!-- JSONC -->
       </context>
 
       <context name="String_Key" lineEndContext="#stay" attribute="Style_String_Key">
@@ -49,21 +62,9 @@
       </context>
 
       <context name="Value" lineEndContext="#stay" attribute="Style_Error" >
-        <AnyChar String="},"       context="#pop" lookAhead="true" />
-        <IncludeRules context="JsonValue"/>
-      </context>
-
-      <context name="JsonValue" lineEndContext="#stay" attribute="Style_Error" >
-        <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
-        <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
-        <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
-
-        <DetectSpaces context="#stay" attribute="Style_Normal" />
-
-        <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
-
-        <RegExpr String="-?\b((0\b|[1-9][0-9]*)\.[0-9]+(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Float" />
-        <RegExpr String="-?\b(0\b|[1-9][0-9]*(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Decimal" />
+        <DetectChar char="," context="#pop" attribute="Style_Seperator_Pair" />
+        <DetectChar char="}" context="#pop#pop" attribute="Style_Seperator_Pair" endRegion="Region_Object"/>
+        <IncludeRules context="Normal"/>
       </context>
 
       <context name="String_Value" lineEndContext="#stay" attribute="Style_String_Value">
@@ -80,8 +81,9 @@
         <DetectChar char=","       context="#stay" attribute="Style_Seperator_Array" />
         <DetectChar char="]"       context="#pop" endRegion="Region_Array" attribute="Style_Seperator_Array" />
 
-        <IncludeRules context="JsonValue"/>
+        <IncludeRules context="Normal"/>
       </context>
+
     </contexts>
 
     <itemDatas>
@@ -106,4 +108,3 @@
 <!--
 // kate: space-indent on; indent-width 2; replace-tabs on;
 -->
-
diff --git a/xml/julia.xml b/xml/julia.xml
--- a/xml/julia.xml
+++ b/xml/julia.xml
@@ -74,7 +74,6 @@
     <list name="keywords">
       <item>abstract</item>
       <item>bitstype</item>
-      <item>ccall</item>
       <item>const</item>
       <item>export</item>
       <item>global</item>
@@ -84,7 +83,6 @@
       <item>module</item>
       <item>where</item>
       <item>new</item>
-      <item>in</item>
       <item>struct</item>
       <item>ans</item>
       <!-- C Interface -->
@@ -114,8 +112,6 @@
       <item>Exception</item>
       <item>Expr</item>
       <item>Float</item>
-      <item>Float32</item>
-      <item>Float64</item>
       <item>Function</item>
       <item>ObjectIdDict</item>
       <item>Int</item>
@@ -132,7 +128,6 @@
       <item>None</item>
       <item>NTuple</item>
       <item>Number</item>
-      <item>Ptr</item>
       <item>Range</item>
       <item>Range1</item>
       <item>Ranges</item>
@@ -423,7 +418,6 @@
       <item>InsertionSort</item>
       <item>MergeSort</item>
       <item>QuickSort</item>
-      <item>InsertionSort</item>
       <!-- Libc -->
       <item>MS_ASYNC</item>
       <item>MS_INVALIDATE</item>
@@ -440,7 +434,6 @@
       <item>Meta</item>
       <item>StackTraces</item>
       <item>Sys</item>
-      <item>Libc</item>
       <item>Docs</item>
       <item>Threads</item>
       <item>Iterators</item>
diff --git a/xml/kotlin.xml b/xml/kotlin.xml
--- a/xml/kotlin.xml
+++ b/xml/kotlin.xml
@@ -29,8 +29,6 @@
             <item>open</item>
             <item>final</item>
 
-            <item>get</item>
-            <item>set</item>
             <item>fun</item>
             <item>var</item>
             <item>val</item>
diff --git a/xml/latex.xml b/xml/latex.xml
--- a/xml/latex.xml
+++ b/xml/latex.xml
@@ -4,7 +4,7 @@
     <!ENTITY bullet "&#xd7;">
     <!ENTITY envname "[a-zA-Z]+\*?">
 ]>
-<language name="LaTeX" version="24" section="Markup" kateversion="5.79" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >
+<language name="LaTeX" version="25" section="Markup" kateversion="5.79" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >
   <highlighting>
     <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\".
          Using a DetectChar rule with lookAhead to detect "\" at the beginning
@@ -5281,9 +5281,9 @@
         <DetectSpaces/>
         <RegExpr String=".+" attribute="Error" context="#stay"/>
       </context>
-      <context name="Highlightingsed" attribute="Normal Text" lineEndContext="#stay">
+      <context name="Highlightingsed" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Command##sed">
         <IncludeRules context="HighlightingCommon"/>
-        <IncludeRules context="##sed" includeAttrib="true"/>
+        <IncludeRules context="Start##sed" includeAttrib="true"/>
       </context>
 
       <context name="HighlightingSieveCodeEnvS" attribute="Error" lineEndContext="#stay">
diff --git a/xml/lua.xml b/xml/lua.xml
--- a/xml/lua.xml
+++ b/xml/lua.xml
@@ -48,7 +48,7 @@
     - NOTE, FIXME, TODO alerts added on comments
     - improved highlighting
 -->
-<language name="Lua" version="19" indenter="cstyle" kateversion="5.79" section="Scripts" extensions="*.lua;*.rockspec" mimetype="text/x-lua">
+<language name="Lua" version="21" indenter="cstyle" kateversion="5.79" section="Scripts" extensions="*.lua;*.rockspec" mimetype="text/x-lua">
   <highlighting>
     <list name="keywords">
       <item>and</item>
@@ -57,6 +57,8 @@
       <item>local</item>
       <item>not</item>
       <item>or</item>
+      <!-- 5.5 -->
+      <item>global</item>
     </list>
 
     <list name="specialvars">
@@ -190,6 +192,7 @@
 
       <!-- Table Manipulation -->
       <item>table.concat</item>
+      <item>table.create</item>
       <item>table.insert</item>
       <item>table.move</item>
       <item>table.pack</item>
@@ -273,9 +276,7 @@
       <item>cgilua</item>
       <item>cgilua.addclosefunction</item>
       <item>cgilua.addopenfunction</item>
-      <item>cgilua.addopenfunction</item>
       <item>cgilua.addscripthandler</item>
-      <item>cgilua.addscripthandler</item>
       <item>cgilua.buildprocesshandler</item>
       <item>cgilua.contentheader</item>
       <item>cgilua.cookies.delete</item>
@@ -368,13 +369,10 @@
       <item>concat</item>
       <item>insert</item>
       <item>move</item>
-      <item>pack</item>
       <item>remove</item>
       <item>sort</item>
-      <item>unpack</item>
 
       <!-- luasql -->
-      <item>close</item>
       <item>commit</item>
       <item>connect</item>
       <item>escape</item>
@@ -555,16 +553,24 @@
         <IncludeRules context="Normal" />
       </context>
 
-      <context name="String_single" attribute="Strings"     lineEndContext="Error">
+      <context name="String_single" attribute="Strings"     lineEndContext="UnclosedString">
         <DetectChar   attribute="Strings"  context="Special_char"  char="\" lookAhead="true"/>
         <DetectChar   attribute="Strings"  context="#pop"  char="'"/>
       </context>
 
-      <context name="String_double" attribute="Strings"     lineEndContext="Error">
+      <context name="String_double" attribute="Strings"     lineEndContext="UnclosedString">
         <DetectChar   attribute="Strings"  context="Special_char"  char="\" lookAhead="true"/>
         <DetectChar   attribute="Strings"  context="#pop"  char="&quot;"/>
       </context>
 
+      <context name="UnclosedString" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop">
+				<!-- A single string/comment reached the end of the line without a \ line escape -->
+				<!-- We set the following line (or part of it) to the "Error" attribute so that this error is easier to spot -->
+        <DetectSpaces attribute="Error" context="#pop#pop"/>
+        <DetectIdentifier attribute="Error" context="#pop#pop"/>
+				<RegExpr attribute="Error" String="^([^-[()&quot;'\s]|-(?!-)|\[(?!=))+" context="#pop#pop" column="0"/>
+      </context>
+
       <context name="Special_char"  attribute="Error"       lineEndContext="#pop">
         <LineContinue attribute="Special Char" context="#pop" />
         <Detect2Chars attribute="Special Char" context="Special_char_\z" char="\" char1="z" lookAhead="true"/>
@@ -581,8 +587,6 @@
         <StringDetect attribute="RawStrings"    context="#pop"  String="]%1]" dynamic="true" />
       </context>
 
-      <context name="Error"         attribute="Error"       lineEndContext="#stay">
-      </context>
     </contexts>
 
     <itemDatas>
diff --git a/xml/mathematica.xml b/xml/mathematica.xml
--- a/xml/mathematica.xml
+++ b/xml/mathematica.xml
@@ -262,7 +262,6 @@
       <item>BooleanFunction</item>
       <item>ByteOrdering</item>
       <item>C</item>
-      <item>C</item>
       <item>CityData</item>
       <item>ContinuousAction</item>
       <item>CallPacket</item>
@@ -530,7 +529,6 @@
       <item>ContinuedFractionK</item>
       <item>CylindricalDecomposition</item>
       <item>D</item>
-      <item>D</item>
       <item>DepthFirstScan</item>
       <item>DiskMatrix</item>
       <item>DagumDistribution</item>
@@ -738,7 +736,6 @@
       <item>Disk</item>
       <item>DynamicWrapper</item>
       <item>E</item>
-      <item>E</item>
       <item>End</item>
       <item>ExactNumberQ</item>
       <item>EdgeAdd</item>
@@ -1210,7 +1207,6 @@
       <item>HermiteH</item>
       <item>HoytDistribution</item>
       <item>I</item>
-      <item>I</item>
       <item>ImportString</item>
       <item>Interrupt</item>
       <item>Identity</item>
@@ -1782,7 +1778,6 @@
       <item>Min</item>
       <item>MultivariateTDistribution</item>
       <item>N</item>
-      <item>N</item>
       <item>NormalizedSquaredEuclideanDistance</item>
       <item>NotPrecedesSlantEqual</item>
       <item>NakagamiDistribution</item>
@@ -1949,7 +1944,6 @@
       <item>Normalize</item>
       <item>NotPrecedesEqual</item>
       <item>NyquistPlot</item>
-      <item>O</item>
       <item>O</item>
       <item>Operate</item>
       <item>OutputForm</item>
diff --git a/xml/mediawiki.xml b/xml/mediawiki.xml
--- a/xml/mediawiki.xml
+++ b/xml/mediawiki.xml
@@ -1,272 +1,515 @@
-<?xml version = '1.0' encoding = 'UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language [
   <!ENTITY tab "&#9;">
-  <!ENTITY url          "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\s])">
-  <!ENTITY htmlTagName  "(?![0-9])[\w_:][\w.:_-]*">
+  <!ENTITY externalLink "(https?://|ftp://|mailto:|//)((?=\{\{)|\{?[^\s\[\]{|}]+)">
+  <!--
+    end punctuation are not part of the link
+    http://example.com?p=1
+    ~~~~~~~~~~~~~~~~~~~~~~ link
+    http://example.com?
+    ~~~~~~~~~~~~~~~~~~  link
+                      ~ no link
+  -->
+  <!ENTITY url          "(https?://|ftp://|mailto:)((?=\{\{)|\{?&urlpart;)">
+  <!ENTITY urlpart      "([^\s\[\]{|}?!.,]++|([?!.,]++)(?=[^\s\[\]?!.,]))++">
+  <!ENTITY htmlTagName  "[[:alpha:]_][\w_-]*">
   <!ENTITY htmlEntity   "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&htmlTagName;);">
-  <!ENTITY wikiLinkWithDescription "\[\[[^]|]*\|[^]]*\]\]">
-  <!ENTITY wikiLinkWithoutDescription "\[\[[^]|]*\]\]">
+  <!ENTITY wikiLinkWithDescription "\[\[(?=[^]|]*\|[^]]*\]\])">
+  <!ENTITY wikiLinkWithoutDescription "\[\[(?=[^]|]*\]\])">
 ]>
-<language name="MediaWiki" section="Markup" version="13" kateversion="5.53" extensions="*.mediawiki" mimetype="" license="FDL" >
+<language name="MediaWiki" section="Markup" version="14" kateversion="5.62" extensions="*.mediawiki" mimetype="" license="FDL" >
+
+  <!--
+    https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Formatting
+    https://www.mediawiki.org/wiki/Help:Advanced_editing
+    https://en.wikipedia.org/wiki/Help:Wikitext
+  -->
+
   <highlighting>
     <contexts>
       <context attribute="Normal" lineEndContext="#stay" name="normal" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <RegExpr String="^[=]{5,5}(?!=)" context="Section5" attribute="Section" column="0" />
-        <RegExpr String="^[=]{4,4}(?!=)" context="Section4" attribute="Section" column="0" />
-        <RegExpr String="^[=]{3,3}(?!=)" context="Section3" attribute="Section" column="0" />
-        <RegExpr String="^[=]{2,2}(?!=)" context="Section2" attribute="Section" column="0" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <DetectChar char=";" attribute="WikiTag" context="DefinitionListHeader" column="0" />
-        <IncludeRules context="FindListItem" />
+        <AnyChar String="&tab; " context="Unformatted" column="0" />
+        <DetectSpaces/>
+
         <IncludeRules context="FindUrl" />
+        <DetectIdentifier/>
+
+        <IncludeRules context="FindListItem" />
+        <IncludeRules context="FindSection" />
         <IncludeRules context="FindTextDecorations" />
+        <IncludeRules context="FindComment" />
         <IncludeRules context="FindTable" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindTemplates" />
         <IncludeRules context="FindWikiLink" />
         <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="WikiTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <DetectSpaces context="Unformatted" column="0" />
+        <IncludeRules context="FindHtmlElements" />
+        <IncludeRules context="FindSignature" />
+        <IncludeRules context="FindLineSep" />
       </context>
+
+
+      <!--
+        Table @{
+
+        e.g.
+        {|
+      -->
+
+      <context name="FindTable" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="{|" column="0" context="TableHeader" attribute="WikiTag" beginRegion="table" />
+      </context>
+
       <context name="TableHeader" attribute="Normal" lineEndContext="TableContent" >
-        <Detect2Chars char="{" char1="|" attribute="WikiTag" beginRegion="table" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+        <DetectChar attribute="HtmlAttributeSeparator" char="=" />
+        <DetectIdentifier attribute="HtmlAttribute"/>
+        <DetectChar attribute="HtmlValue" context="ValueWithDoubleQuotes" char="&quot;" />
+        <DetectChar attribute="HtmlValue" context="ValueWithSingleQuotes" char="&apos;" />
       </context>
+
       <context name="TableContent" attribute="Normal" lineEndContext="#stay">
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <RegExpr String="^[=]{5,5}(?!=)" context="Section5" attribute="Section" column="0" />
-        <RegExpr String="^[=]{4,4}(?!=)" context="Section4" attribute="Section" column="0" />
-        <RegExpr String="^[=]{3,3}(?!=)" context="Section3" attribute="Section" column="0" />
-        <RegExpr String="^[=]{2,2}(?!=)" context="Section2" attribute="Section" column="0" />
-        <DetectChar char=";" attribute="WikiTag" context="DefinitionListHeader" column="0" />
-        <IncludeRules context="FindListItem" />
-        <IncludeRules context="FindUrl" />
-        <IncludeRules context="FindTextDecorations" />
-        <IncludeRules context="FindTable" />
-        <Detect2Chars char="|" char1="}" column="0" attribute="WikiTag" context="#pop#pop" endRegion="table" />
-        <Detect2Chars char="|" char1="-" column="0" attribute="WikiTag" />
-        <DetectChar char="|" attribute="WikiTag" context="#stay"/>
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindWikiLink" />
-        <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="WikiTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <AnyChar String="&tab; " context="Unformatted" column="0" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <RegExpr String="[-]{4,}" attribute="WikiTag" context="#stay" />
-        <DetectChar char="!" attribute="WikiTag" context="#stay" column="0" />
+        <StringDetect String="|}" column="0" attribute="WikiTag" context="#pop#pop" endRegion="table" />
+        <StringDetect String="|-" column="0" attribute="WikiTag"/>
+        <StringDetect String="|+" column="0" attribute="WikiTag" context="CellAttr"/>
+        <DetectChar char="|" column="0" attribute="WikiTag" context="CellAttr"/>
+        <StringDetect String="||" attribute="WikiTag" context="CellAttr"/>
+        <IncludeRules context="normal" />
+        <DetectChar char="!" attribute="WikiTag" column="0" context="CellAttr"/>
+        <StringDetect String="!!" attribute="WikiTag" context="CellAttr"/>
       </context>
+
+      <context name="CellAttr" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal"/>
+        <DetectChar char="|" attribute="WikiTag" context="#pop"/>
+        <RegExpr String="\w+(?=\s*=\s*(&quot;[^&quot;]*&quot;|'[^']*'))" context="HtmlAttrSep" attribute="HtmlAttribute"/>
+      </context>
+
+      <!-- @} Table -->
+
+
+      <!--
+        Section @{
+
+        e.g.
+        === title ===
+      -->
+
+      <context name="FindSection" attribute="Normal">
+        <!-- not a section -->
+        <StringDetect String="======" column="0"/>
+        <!-- sections -->
+        <StringDetect String="=====" column="0" context="Section5" attribute="SectionDeliminator"/>
+        <StringDetect String="====" column="0" context="Section4" attribute="SectionDeliminator"/>
+        <StringDetect String="===" column="0" context="Section3" attribute="SectionDeliminator"/>
+        <StringDetect String="==" column="0" context="Section2" attribute="SectionDeliminator"/>
+      </context>
+
       <context attribute="Section" lineEndContext="#pop" name="Section5" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <IncludeRules context="FindUrl" />
-        <IncludeRules context="FindTextDecorationsInHeader" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindWikiLink" />
-        <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <RegExpr String="={5,5} *$" context="#pop" attribute="Section" />
-        <RegExpr String="={6,} *$|={1,4} *$|=*[^=]+$" context="#pop" attribute="Normal" />
+        <IncludeRules context="FindInHeader" />
+        <RegExpr String="===== *$" context="#pop" attribute="SectionDeliminator" />
       </context>
       <context attribute="Section" lineEndContext="#pop" name="Section4" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <IncludeRules context="FindUrl" />
-        <IncludeRules context="FindTextDecorationsInHeader" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindWikiLink" />
-        <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <RegExpr String="={4,4} *$" context="#pop" attribute="Section" />
-        <RegExpr String="={5,} *$|={1,3} *$|=*[^=]+$" context="#pop" attribute="Normal" />
+        <IncludeRules context="FindInHeader" />
+        <RegExpr String="==== *$" context="#pop" attribute="SectionDeliminator" />
       </context>
       <context attribute="Section" lineEndContext="#pop" name="Section3" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <IncludeRules context="FindUrl" />
-        <IncludeRules context="FindTextDecorationsInHeader" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindWikiLink" />
-        <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <RegExpr String="={3,3} *$" context="#pop" attribute="Section" />
-        <RegExpr String="={4,} *$|={1,2} *$|=*[^=]+$" context="#pop" attribute="Normal" />
+        <IncludeRules context="FindInHeader" />
+        <RegExpr String="=== *$" context="#pop" attribute="SectionDeliminator" />
       </context>
       <context attribute="Section" lineEndContext="#pop" name="Section2" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <IncludeRules context="FindUrl" />
-        <IncludeRules context="FindTextDecorationsInHeader" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindInHeader" />
+        <RegExpr String="== *$" context="#pop" attribute="SectionDeliminator" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindInHeader" >
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
+        <StringDetect String="''" attribute="WikiTag" context="BoldItalic" />
+        <IncludeRules context="FindComment" />
+        <IncludeRules context="FindTemplates" />
         <IncludeRules context="FindWikiLink" />
         <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <RegExpr String="={2,2} *$" context="#pop" attribute="Section" />
-        <RegExpr String="={3,} *$|={1,1} *$|=*[^=]+$" context="#pop" attribute="Normal" />
+        <IncludeRules context="FindHtmlElements" />
+        <IncludeRules context="FindSignature" />
       </context>
-      <context attribute="Comment" lineEndContext="#stay" name="comment" >
-        <StringDetect String="--&gt;" context="#pop" attribute="Comment" endRegion="comment" />
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
+
+      <!-- @} Section -->
+
+
+      <!--
+        Link @{
+
+        e.g.
+        [link label]
+        http://example.com
+      -->
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindUrl" >
+        <RegExpr String="\[(?=&externalLink;)" attribute="WikiTag" context="DelimitedURL" />
+        <RegExpr String="&url;" attribute="Link" context="LooseURL" />
       </context>
-      <context attribute="Link" lineEndContext="#stay" name="DelimitedURL" >
+      <context attribute="Normal" lineEndContext="#stay" name="FindUrlWithinTemplate" >
+        <RegExpr String="\[(?=&externalLink;)" attribute="WikiTag" context="DelimitedURL" />
+        <RegExpr String="&url;" attribute="Link" context="LooseURLWithinTemplate" />
+      </context>
+
+      <!-- external link: [link label] -->
+
+      <context attribute="Link" lineEndContext="#pop" name="DelimitedURL" >
         <DetectChar char="]" context="#pop" attribute="WikiTag" />
-        <DetectChar char="[" context="#stay" attribute="WikiTag" />
-        <RegExpr String="&url;" context="DelimitedUrlLink" lookAhead="true" />
-        <DetectChar char=" " context="URLTag" attribute="WikiTag" />
+        <DetectSpaces context="URLTag" attribute="WikiTag" />
+        <IncludeRules context="FindTemplates" />
       </context>
-      <context attribute="Link" lineEndContext="#stay" name="DelimitedUrlLink" >
-        <IncludeRules context="FindTemplate" />
-        <AnyChar String=" ]" context="#pop" lookAhead="true" />
+      <context attribute="Normal" lineEndContext="#pop#pop" name="URLTag" >
+        <DetectChar char="]" context="#pop#pop" attribute="WikiTag" />
+        <IncludeRules context="FindTextDecorations" />
+        <IncludeRules context="FindTemplates" />
       </context>
 
-      <context attribute="Link" lineEndContext="#pop" name="LooseURL" >
-        <IncludeRules context="FindTemplate" />
-        <DetectChar char=" " context="#pop" attribute="WikiTag" />
+      <!-- link in text -->
+
+      <context attribute="Link" lineEndContext="#pop" name="LooseURL" fallthroughContext="#pop">
+        <DetectChar char="|" context="#pop" lookAhead="true" />
+        <DetectSpaces context="#pop" attribute="Normal" />
+        <IncludeRules context="FindTemplates" />
+        <RegExpr String="(&urlpart;|{(?!\{))++" attribute="Link" />
       </context>
       <context attribute="Link" lineEndContext="#pop" name="LooseURLWithinTemplate" >
-        <IncludeRules context="FindTemplate" />
-        <Detect2Chars char="}" char1="}" context="#pop" lookAhead="true" />
-        <DetectChar char=" " context="#pop" attribute="WikiTag" />
+        <StringDetect String="}}" context="#pop" lookAhead="true" />
+        <IncludeRules context="LooseURL" />
       </context>
 
-      <context attribute="Normal" lineEndContext="#stay" name="URLTag" >
-        <IncludeRules context="FindTextDecorations" />
-        <IncludeRules context="FindTemplate" />
-        <DetectChar char="]" context="#pop" lookAhead="true" />
+      <!-- @} Link -->
+
+
+      <!--
+        List, Indentation and Definition @{
+
+        e.g.
+        * item
+        ::; term
+        ; term: desc
+      -->
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindListItem" >
+        <AnyChar String="*#;:" context="ListItem" column="0" lookAhead="1"/>
       </context>
 
+      <!-- dispatching -->
+
+      <context attribute="Normal" lineEndContext="#pop" name="ListItem" fallthroughContext="#pop">
+        <AnyChar String="*#:" attribute="WikiTag"/>
+        <DetectChar char=";" attribute="WikiTag" context="DefinitionItem" />
+      </context>
+
+      <!-- definition -->
+
+      <context attribute="Normal" lineEndContext="#pop#pop" name="DefinitionItem" fallthroughContext="DefinitionListHeader">
+        <AnyChar String="*#:;" attribute="WikiTag"/>
+      </context>
+
+      <context attribute="DefinitionListHeader" lineEndContext="#pop#pop#pop" name="DefinitionListHeader" >
+        <DetectChar char=":" context="#pop#pop#pop" attribute="WikiTag" />
+      </context>
+
+      <!-- @} List, Indentation and Definition -->
+
+
+      <!--
+        Bold, Italic and Underlined @{
+
+        e.g.
+        ''abc''
+        '''abc'''
+        <u>abc</u>
+      -->
+
+      <context name="FindTextDecorations" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
+        <StringDetect String="''" attribute="WikiTag" context="Italic" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="Underlined" />
+      </context>
+
+      <context name="FindTextInDecorations" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="FindUrl" />
+        <DetectIdentifier/>
+        <IncludeRules context="FindComment" />
+        <IncludeRules context="FindTemplates" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <IncludeRules context="FindHtmlElements" />
+      </context>
+
+      <context attribute="Bold" lineEndContext="#pop" name="Bold" >
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="''" context="BoldItalic" attribute="WikiTag" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="BoldUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBold" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context attribute="Italic" lineEndContext="#pop" name="Italic" >
+        <StringDetect String="'''" attribute="WikiTag" context="ItalicBold" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingItalic" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context attribute="Underlined" name="Underlined" lineEndContext="#stay" >
+        <StringDetect String="'''" context="UnderlinedBold" attribute="WikiTag" />
+        <StringDetect String="''" context="UnderlinedItalic" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop" attribute="HtmlTag" />
+        <IncludeRules context="FindWikiLinkBeingUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="BoldItalic" attribute="BoldItalic" lineEndContext="#pop" >
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="ItalicBold" attribute="BoldItalic" lineEndContext="#pop" >
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="BoldUnderlined" attribute="BoldUnderlined" lineEndContext="#pop#pop!Underlined" >
+        <StringDetect String="&lt;/u&gt;" context="#pop" attribute="HtmlTag" />
+        <StringDetect String="''" context="BoldUnderlinedItalic" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="UnderlinedBold" attribute="BoldUnderlined" lineEndContext="#pop" >
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="''" context="UnderlinedBoldItalic" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop!Bold" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="ItalicUnderlined" attribute="ItalicUnderlined" lineEndContext="#pop#pop!Underlined" >
+        <StringDetect String="&lt;/u&gt;" context="#pop" attribute="HtmlTag" />
+        <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="UnderlinedItalic" attribute="ItalicUnderlined" lineEndContext="#pop" >
+        <StringDetect String="'''" context="UnderlinedItalicBold" attribute="WikiTag" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop!Italic" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <!-- and ItalicBoldUnderlined -->
+      <context name="BoldItalicUnderlined" attribute="BoldItalicUnderlined" lineEndContext="#pop#pop#pop!Underlined" >
+        <StringDetect String="&lt;/u&gt;" context="#pop" attribute="HtmlTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="BoldUnderlinedItalic" attribute="BoldItalicUnderlined" lineEndContext="#pop#pop#pop!Underlined" >
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop!BoldItalic" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="ItalicUnderlinedBold" attribute="BoldItalicUnderlined" lineEndContext="#pop#pop#pop!Underlined" >
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop!ItalicBold" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="UnderlinedItalicBold" attribute="BoldItalicUnderlined" lineEndContext="#pop#pop" >
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop#pop" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <context name="UnderlinedBoldItalic" attribute="BoldItalicUnderlined" lineEndContext="#pop#pop" >
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="&lt;/u&gt;" context="#pop#pop#pop" attribute="Error" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+        <IncludeRules context="FindTextInDecorations" />
+      </context>
+
+      <!-- @} Bold, Italic and Underlined -->
+
+
+      <!--
+        Find Wiki Link @{
+
+        e.g.
+        [[Page|label]]
+      -->
+      <context name="FindWikiLink" attribute="Normal" lineEndContext="#stay">
+        <Detect2Chars char="[" char1="[" attribute="WikiTag" context="WikiLink" />
+      </context>
+
+      <!-- in Bold, Italic and Underlined -->
+
+      <context name="FindWikiLinkBeingBold" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingItalic" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkUnderlinedWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkUnderlinedWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingBoldItalic" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingBoldUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldUnderlinedWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldUnderlinedWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingItalicUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicUnderlinedWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicUnderlinedWithoutDescription" attribute="WikiTag" />
+      </context>
+      <context name="FindWikiLinkBeingBoldItalicUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicUnderlinedWithDescription" attribute="WikiTag" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicUnderlinedWithoutDescription" attribute="WikiTag" />
+      </context>
+
+      <!-- @} Find Wiki Link -->
+
+      <!--
+        Within Wiki link @{
+
+        e.g.
+        [[Page|label]]
+          ~~~~~~~~~~~~
+      -->
       <context name="WikiLinkWithoutDescriptionRules" attribute="Normal" lineEndContext="#stay" >
-        <IncludeRules context="FindTemplate" />
+        <DetectIdentifier/>
+        <StringDetect String="]]" context="#pop" attribute="WikiTag" />
+        <IncludeRules context="FindTemplates" />
         <IncludeRules context="FindHtmlEntities" />
-        <Detect2Chars char="[" char1="[" attribute="WikiTag" />
-        <Detect2Chars char="]" char1="]" context="#pop" attribute="WikiTag" />
       </context>
       <context name="WikiLinkWithDescriptionRules" attribute="Normal" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTag" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
+
       <context name="WikiLink" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescription" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkBoldWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBold" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkBoldWithoutDescription" attribute="LinkBold" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagBold" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkItalicWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionItalic" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkItalicWithoutDescription" attribute="LinkItalic" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagItalic" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionUnderlined" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkUnderlinedWithoutDescription" attribute="LinkUnderlined" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagUnderlined" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkBoldItalicWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldItalic" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkBoldItalicWithoutDescription" attribute="LinkBoldItalic" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagBoldItalic" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkBoldUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldUnderlined" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkBoldUnderlinedWithoutDescription" attribute="LinkBoldUnderlined" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagBoldUnderlined" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkItalicUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionItalicUnderlined" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkItalicUnderlinedWithoutDescription" attribute="LinkItalicUnderlined" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
         <DetectChar char="#" attribute="WikiTagItalicUnderlined" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
       </context>
       <context name="WikiLinkBoldItalicUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
-        <IncludeRules context="WikiLinkWithDescriptionRules" />
         <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldItalicUnderlined" />
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
       </context>
       <context name="WikiLinkBoldItalicUnderlinedWithoutDescription" attribute="LinkBoldItalicUnderlined" lineEndContext="#stay" >
-        <DetectChar char="#" attribute="WikiTagBoldItalicUnderlined" />
         <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagBoldItalicUnderlined" />
       </context>
 
+      <!--
+        [[Page|label or parameters]]
+               ~~~~~~~~~~~~~~~~~~~~~
+      -->
+
       <context name="WikiLinkDescriptionRules" attribute="Normal" lineEndContext="#stay">
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindHtmlEntities" />
+        <DetectIdentifier/>
+        <DetectSpaces/>
+        <DetectChar char="|" attribute="WikiTag" />
         <Detect2Chars char="]" char1="]" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <IncludeRules context="FindTemplates" />
+        <IncludeRules context="FindComment" />
+        <IncludeRules context="FindHtmlEntities" />
+        <IncludeRules context="FindHtmlElements" />
       </context>
+
       <context name="WikiLinkDescription" attribute="Normal" lineEndContext="#stay">
         <IncludeRules context="WikiLinkDescriptionRules" />
         <IncludeRules context="FindTextDecorations" />
       </context>
       <context name="WikiLinkDescriptionBold" attribute="Bold" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
-        <Detect2Chars char="'" char1="'" context="BoldItalic" attribute="WikiTag" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldUnderlined" />
+        <StringDetect String="''" context="BoldItalic" attribute="WikiTag" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="BoldUnderlined" />
       </context>
       <context name="WikiLinkDescriptionItalic" attribute="Italic" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
         <StringDetect String="'''" attribute="WikiTag" context="ItalicBold" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
       </context>
       <context name="WikiLinkDescriptionUnderlined" attribute="Underlined" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
         <StringDetect String="'''" context="UnderlinedBold" attribute="WikiTag" />
-        <Detect2Chars char="'" char1="'" context="UnderlinedItalic" attribute="WikiTag" />
+        <StringDetect String="''" context="UnderlinedItalic" attribute="WikiTag" />
       </context>
       <context name="WikiLinkDescriptionBoldItalic" attribute="BoldItalic" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+        <StringDetect String="&lt;u&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
       </context>
       <context name="WikiLinkDescriptionBoldUnderlined" attribute="BoldUnderlined" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
-        <Detect2Chars char="'" char1="'" context="BoldUnderlinedItalic" attribute="WikiTag" />
+        <StringDetect String="''" context="BoldUnderlinedItalic" attribute="WikiTag" />
       </context>
       <context name="WikiLinkDescriptionItalicUnderlined" attribute="ItalicUnderlined" lineEndContext="#stay" >
         <IncludeRules context="WikiLinkDescriptionRules" />
@@ -276,105 +519,171 @@
         <IncludeRules context="WikiLinkDescriptionRules" />
       </context>
 
+      <!-- @} Within Wiki link -->
+
+
+      <!--
+        Template @{
+
+        e.g.
+        {{{value|default}}}
+        {{template|param=value}}
+      -->
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindTemplates" >
+        <RegExpr String="{{(?=$|{{{|[^{])" context="Template" attribute="WikiTag" beginRegion="template" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+      </context>
+
+      <!-- {{...}} -->
+
       <context attribute="TemplateName" lineEndContext="#stay" name="Template" >
-        <DetectChar char="|" context="TemplateParameterSlot" attribute="WikiTag" />
-        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" endRegion="template" />
+        <DetectIdentifier/>
+        <DetectChar char="|" context="TemplateParameterSlotStart" attribute="WikiTag" />
+        <DetectChar char=":" context="TemplatenameOrText" attribute="TemplateName" />
+        <StringDetect String="}}" context="#pop" attribute="WikiTag" endRegion="template" />
+        <IncludeRules context="FindTemplates" />
       </context>
-      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlot" >
-        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
-        <IncludeRules context="FindListItem" />
-        <IncludeRules context="FindUrlWithinTemplate" />
-        <IncludeRules context="FindTextDecorations" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
-        <IncludeRules context="FindWikiLink" />
-        <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <DetectChar char="|" context="#pop" attribute="WikiTag" lookAhead="true" />
-        <RegExpr String="[^{}|=]+(?=[=])" attribute="Parameter" context="TemplateParameterSlotEqual" />
+
+      <!-- {{...:...}}
+                ~ -->
+      <context attribute="TemplateName" lineEndContext="#stay" name="TemplatenameOrText" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <!-- {{...:*bla}}
+                   ~ list item -->
+        <AnyChar String="*#;&lt;[']" context="#pop!TemplateParameterSlotStart" lookAhead="1"/>
       </context>
-      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlotEqual" >
-        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
-        <DetectChar char="|" context="#pop" attribute="WikiTag" lookAhead="true" />
+
+      <!--
+        {{template|*...}}
+                   ~ start with list item
+        {{template|...}}
+                   ~~~ normal text or parameters
+      -->
+      <context attribute="Normal" lineEndContext="TemplateParameterSlot" fallthroughContext="TemplateParameterSlot" name="TemplateParameterSlotStart">
+        <DetectSpaces/>
+        <AnyChar String="*#;:" context="TemplateParameterSlotList" attribute="WikiTag"/>
+      </context>
+      <context attribute="Normal" lineEndContext="#pop!TemplateParameterSlot" fallthroughContext="#pop!TemplateParameterSlot" name="TemplateParameterSlotList">
+        <AnyChar String="*#;:" attribute="WikiTag"/>
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlot" >
+        <DetectChar char="|" context="#pop" attribute="WikiTag" />
         <DetectChar char="=" context="TemplateParameterSlotValue" attribute="WikiTag" />
+        <StringDetect String="}}" context="#pop#pop#pop" attribute="WikiTag" endRegion="template" />
+        <IncludeRules context="FindInTemplate" />
+        <RegExpr String="[_\w]+\s*(?=[=])" attribute="Parameter"/>
       </context>
+
+      <!--
+        {{template|param=value}}
+                         ~~~~~~~
+      -->
       <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlotValue" >
-        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
-        <StringDetect String="~~~~" attribute="WikiTag" context="#stay" />
-        <StringDetect String="~~~" attribute="WikiTag" context="#stay" />
+        <DetectChar char="|" context="#pop#pop" attribute="WikiTag" />
+        <StringDetect String="}}" context="#pop#pop#pop#pop" attribute="WikiTag" endRegion="template" />
+        <IncludeRules context="FindInTemplate" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindInTemplate" >
+        <IncludeRules context="FindComment" />
+        <IncludeRules context="FindSignature" />
         <IncludeRules context="FindListItem" />
         <IncludeRules context="FindUrlWithinTemplate" />
         <IncludeRules context="FindTextDecorations" />
-        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
-        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindTemplates" />
         <IncludeRules context="FindWikiLink" />
         <IncludeRules context="FindHtmlEntities" />
-        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
-        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
-        <DetectChar char="|" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <IncludeRules context="FindHtmlElements" />
       </context>
+
+      <!-- {{{...}}} -->
+
       <context attribute="Parameter" lineEndContext="#stay" name="TemplateParameter" >
+        <DetectIdentifier/>
         <StringDetect String="}}}" context="#pop" attribute="WikiTag" />
+        <DetectChar char="|" attribute="WikiTag" />
+        <IncludeRules context="FindTemplates" />
       </context>
-      <context attribute="NoWiki" lineEndContext="#stay" name="NoWiki" >
-        <RegExpr String="&lt;!--[^-]*--&gt;" attribute="NoWiki" />
-        <StringDetect String="&lt;/nowiki&gt;" context="#pop" attribute="HtmlTag" />
-        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
-        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+
+      <!-- @} Template -->
+
+
+      <!--
+        HTML element and special tags @{
+
+        e.g.
+        <tag>
+        <nowiki/>
+      -->
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindHtmlElements" >
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="WikiTag" />
+        <RegExpr String="&lt;nowiki\s*/&gt;" attribute="WikiTag" />
+        <WordDetect String="&lt;pre" context="PreAttr" attribute="HtmlTag" />
+        <WordDetect String="&lt;source" context="SourceStartTag" attribute="HtmlTag" />
+        <WordDetect String="&lt;syntaxhighlight" context="SyntaxHighlightStartTag" attribute="HtmlTag" />
+        <RegExpr String="&lt;/?&htmlTagName;" context="HtmlElement" attribute="HtmlTag" />
       </context>
-      <context attribute="Unformatted" lineEndContext="#pop" name="Unformatted" />
-      <context attribute="NoWiki" lineEndContext="#stay" name="Pre" >
-        <StringDetect String="&lt;/pre&gt;" context="#pop" attribute="HtmlTag" />
+
+      <!-- nowiki -->
+
+      <context attribute="NoWiki" lineEndContext="#stay" name="NoWiki" >
+        <StringDetect String="&lt;/nowiki&gt;" context="#pop" attribute="WikiTag" />
       </context>
 
+      <!-- <tag> -->
 
+      <context attribute="HtmlTag" lineEndContext="#stay" name="HtmlElement" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="#pop" attribute="HtmlTag"/>
+        <IncludeRules context="FindHtmlAttribute"/>
+      </context>
 
-      <!-- <source> and <syntaxhighlight> tags. -->
+      <!-- <pre> -->
 
-      <context name="SourceStartTag" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="(^|\s+)lang\=(&quot;javascript&quot;|&apos;javascript&apos;)" context="JavaScriptSourceStartTag" lookAhead="true" />
-        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSourceStartTag" char="&gt;" lookAhead="true" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+      <context attribute="HtmlTag" lineEndContext="#stay" name="PreAttr" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="Pre" attribute="HtmlTag"/>
+        <IncludeRules context="FindHtmlAttribute"/>
       </context>
-      <context name="SyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="(^|\s+)lang\=(&quot;javascript&quot;|&apos;javascript&apos;)" context="JavaScriptSyntaxHighlightStartTag" lookAhead="true" />
-        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSyntaxHighlightStartTag" char="&gt;" lookAhead="true" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+
+      <context attribute="NoWiki" lineEndContext="#stay" name="Pre" >
+        <StringDetect String="&lt;/pre&gt;" context="#pop#pop" attribute="HtmlTag" />
       </context>
 
+      <!-- <source> and <syntaxhighlight> -->
 
-      <context name="UnsupportedLanguageSourceStartTag" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSourceContent" char="&gt;" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+      <context name="SourceStartTag" attribute="Normal" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="UnsupportedLanguageSourceContent" attribute="HtmlTag"/>
+        <StringDetect String="lang=&quot;javascript&quot;" context="#pop!JavaScriptSourceStartTag" lookAhead="1"/>
+        <StringDetect String="lang=&apos;javascript&apos;" context="#pop!JavaScriptSourceStartTag" lookAhead="1"/>
+        <IncludeRules context="FindHtmlAttribute"/>
       </context>
-      <context name="UnsupportedLanguageSyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSyntaxHighlightContent" char="&gt;" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+      <context name="SyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="UnsupportedLanguageSyntaxHighlightContent" attribute="HtmlTag"/>
+        <StringDetect String="lang=&quot;javascript&quot;" context="#pop!JavaScriptSyntaxHighlightStartTag" lookAhead="1"/>
+        <StringDetect String="lang=&apos;javascript&apos;" context="#pop!JavaScriptSyntaxHighlightStartTag" lookAhead="1"/>
+        <IncludeRules context="FindHtmlAttribute"/>
       </context>
 
-      <context name="JavaScriptSourceStartTag" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlTag" context="JavaScriptSourceContent" char="&gt;" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+      <context name="JavaScriptSourceStartTag" attribute="Normal" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="JavaScriptSourceContent" attribute="HtmlTag"/>
+        <IncludeRules context="FindHtmlAttribute"/>
       </context>
-      <context name="JavaScriptSyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlTag" context="JavaScriptSyntaxHighlightContent" char="&gt;" />
-        <IncludeRules context="FindHtmlStartTagAttributes" />
+      <context name="JavaScriptSyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces attribute="HtmlTag"/>
+        <DetectChar char=">" context="JavaScriptSyntaxHighlightContent" attribute="HtmlTag"/>
+        <IncludeRules context="FindHtmlAttribute"/>
       </context>
 
-
-      <context name="UnsupportedLanguageSourceContent" attribute="NoWiki" lineEndContext="#stay">
+      <context name="UnsupportedLanguageSourceContent" attribute="NoWiki">
         <IncludeRules context="SourceEnd" />
       </context>
-      <context name="UnsupportedLanguageSyntaxHighlightContent" attribute="NoWiki" lineEndContext="#stay">
+      <context name="UnsupportedLanguageSyntaxHighlightContent" attribute="NoWiki">
         <IncludeRules context="SyntaxHighlightEnd" />
       </context>
 
@@ -383,194 +692,91 @@
         <IncludeRules context="Normal##JavaScript" />
       </context>
       <context name="JavaScriptSyntaxHighlightContent" attribute="NoWiki" lineEndContext="#stay">
-        <StringDetect String="&lt;/syntaxhighlight&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
         <IncludeRules context="SyntaxHighlightEnd" />
         <IncludeRules context="Normal##JavaScript" />
       </context>
 
-
-      <context name="SourceEnd" attribute="Normal" lineEndContext="#stay">
-        <StringDetect String="&lt;/source&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
+      <context name="SourceEnd" attribute="Normal">
+        <StringDetect String="&lt;/source&gt;" context="#pop#pop" attribute="HtmlTag" />
       </context>
-      <context name="SyntaxHighlightEnd" attribute="Normal" lineEndContext="#stay">
-        <StringDetect String="&lt;/syntaxhighlight&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
+      <context name="SyntaxHighlightEnd" attribute="Normal">
+        <StringDetect String="&lt;/syntaxhighlight&gt;" context="#pop#pop" attribute="HtmlTag" />
       </context>
 
+      <!--
+        <tag attr="value" ...>
+             ~~~~~~~~~~~~
+        Leaves the tag when the attribute syntax is not valid
+      -->
 
-      <context name="HtmlAttribute" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlAttribute" context="HtmlValue" char="=" />
-        <RegExpr attribute="Error" context="#stay" String="\S" />
+      <context attribute="Normal" lineEndContext="#stay" name="FindHtmlAttribute">
+        <DetectIdentifier attribute="HtmlAttribute" context="HtmlAttrSep"/>
       </context>
-      <context name="HtmlValue" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="HtmlValue" context="ValueWithDoubleQuotes" char="&quot;" />
-        <DetectChar attribute="HtmlValue" context="ValueWithSingleQuotes" char="&apos;" />
-        <RegExpr attribute="Error" context="#stay" String="\S" />
+
+      <context attribute="Normal" lineEndContext="#stay" name="HtmlAttrSep" fallthroughContext="#pop#pop">
+        <DetectChar attribute="HtmlAttributeSeparator" context="HtmlValue" char="=" />
+        <DetectSpaces attribute="Normal"/>
       </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="HtmlValue" fallthroughContext="#pop#pop#pop">
+        <DetectSpaces attribute="Normal"/>
+        <DetectChar attribute="HtmlValue" context="#pop#pop!ValueWithDoubleQuotes" char="&quot;" />
+        <DetectChar attribute="HtmlValue" context="#pop#pop!ValueWithSingleQuotes" char="&apos;" />
+        <DetectIdentifier attribute="HtmlValue" context="#pop#pop"/>
+      </context>
+
       <context name="ValueWithDoubleQuotes" attribute="HtmlValue" lineEndContext="#stay">
-        <DetectChar attribute="HtmlValue" context="#pop#pop#pop" char="&quot;" />
+        <DetectChar attribute="HtmlValue" context="#pop" char="&quot;" />
         <IncludeRules context="FindHtmlEntities" />
       </context>
       <context name="ValueWithSingleQuotes" attribute="HtmlValue" lineEndContext="#stay">
-        <DetectChar attribute="HtmlValue" context="#pop#pop#pop" char="&apos;" />
+        <DetectChar attribute="HtmlValue" context="#pop" char="&apos;" />
         <IncludeRules context="FindHtmlEntities" />
       </context>
 
+      <!-- @} HTML element and special tags -->
 
 
-      <context attribute="DefinitionListHeader" lineEndContext="#pop" name="DefinitionListHeader" >
-        <DetectChar char=":" context="#pop" attribute="WikiTag" />
-      </context>
-      <context attribute="Bold" lineEndContext="#pop" name="Bold" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
-        <Detect2Chars char="'" char1="'" context="BoldItalic" attribute="WikiTag" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldUnderlined" />
-        <IncludeRules context="FindWikiLinkBeingBold" />
-      </context>
-      <context attribute="Italic" lineEndContext="#pop" name="Italic" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" attribute="WikiTag" context="ItalicBold" />
-        <Detect2Chars char="'" char1="'" context="#pop" attribute="WikiTag" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
-        <IncludeRules context="FindWikiLinkBeingItalic" />
-      </context>
-      <context attribute="Underlined" name="Underlined" lineEndContext="#stay" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" context="UnderlinedBold" attribute="WikiTag" />
-        <Detect2Chars char="'" char1="'" context="UnderlinedItalic" attribute="WikiTag" />
-        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
-        <IncludeRules context="FindWikiLinkBeingUnderlined" />
-      </context>
-      <context name="BoldItalic" attribute="BoldItalic" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <Detect2Chars char="'" char1="'" context="#pop" attribute="WikiTag" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
-        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
-      </context>
-      <context name="ItalicBold" attribute="BoldItalic" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
-        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
-      </context>
-      <context name="BoldUnderlined" attribute="BoldUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
-        <Detect2Chars char="'" char1="'" context="BoldUnderlinedItalic" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
-      </context>
-      <context name="UnderlinedBold" attribute="BoldUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
-        <Detect2Chars char="'" char1="'" context="BoldUnderlinedItalic" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
-      </context>
-      <context name="ItalicUnderlined" attribute="ItalicUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
-        <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
-      </context>
-      <context name="UnderlinedItalic" attribute="ItalicUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <Detect2Chars char="'" char1="'" context="#pop" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
-      </context>
-      <context name="BoldItalicUnderlined" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
-        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
-      </context>
-      <context name="BoldUnderlinedItalic" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <Detect2Chars char="'" char1="'" context="#pop" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
-      </context>
-      <context name="ItalicUnderlinedBold" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
-        <IncludeRules context="FindTemplate" />
-        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
-        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
-      </context>
-
-      <!-- Contexts for inclusion. -->
+      <!--
+        Comment @{
+      -->
 
-      <context name="FindHtmlEntities" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&htmlEntity;" attribute="HtmlEntity" />
+      <context name="FindComment" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
       </context>
 
-      <context name="FindHtmlStartTagAttributes" attribute="Normal" lineEndContext="#stay">
-        <RegExpr attribute="HtmlAttribute" context="HtmlAttribute" String="^&htmlTagName;|\s+&htmlTagName;" />
-        <RegExpr attribute="Error" context="#stay" String="\S" />
+      <context attribute="Comment" lineEndContext="#stay" name="comment" >
+        <DetectSpaces />
+        <StringDetect String="--&gt;" context="#pop" attribute="Comment" endRegion="comment" />
+        <IncludeRules context="##Comments" />
+        <DetectIdentifier />
       </context>
 
-      <context attribute="Normal" lineEndContext="#stay" name="FindListItem" >
-        <RegExpr String="^[*#;:\s]*[*#:]+" attribute="WikiTag" context="#stay" column="0" />
-      </context>
+      <!-- @} Comment -->
 
-      <context attribute="Normal" lineEndContext="#stay" name="FindSyntaxHighlightingHtmlElement" >
-        <RegExpr String="&lt;source(?=\s)" context="SourceStartTag" attribute="HtmlTag" />
-        <RegExpr String="&lt;syntaxhighlight(?=\s)" context="SyntaxHighlightStartTag" attribute="HtmlTag" />
-      </context>
 
-      <context name="FindTable" attribute="Normal" lineEndContext="#stay">
-        <Detect2Chars char="{" char1="|" column="0" context="TableHeader"  lookAhead="true" />
-      </context>
+      <!--
+        Others @{
+      -->
 
-      <context attribute="Normal" lineEndContext="#stay" name="FindTemplate" >
-        <Detect2Chars char="{" char1="{" context="Template" attribute="WikiTag" beginRegion="template" />
-      </context>
+      <context attribute="Unformatted" lineEndContext="#pop" name="Unformatted" />
 
-      <context name="FindTextDecorations" attribute="Normal" lineEndContext="#stay">
-        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
-        <Detect2Chars char="'" char1="'" attribute="WikiTag" context="Italic" />
-        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="Underlined" />
-      </context>
-      <context attribute="Normal" lineEndContext="#stay" name="FindTextDecorationsInHeader" >
-        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
-        <Detect2Chars char="'" char1="'" attribute="WikiTag" context="BoldItalic" />
+      <context name="FindSignature" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="~~~~~" attribute="WikiTag"/>
+        <StringDetect String="~~~~" attribute="WikiTag"/>
+        <StringDetect String="~~~" attribute="WikiTag"/>
       </context>
 
-      <context attribute="Normal" lineEndContext="#stay" name="FindUrl" >
-        <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
-        <RegExpr String="&url;" context="LooseURL" lookAhead="true" />
-      </context>
-      <context attribute="Normal" lineEndContext="#stay" name="FindUrlWithinTemplate" >
-        <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
-        <RegExpr String="&url;" context="LooseURLWithinTemplate" lookAhead="true" />
+      <context name="FindLineSep" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="^[-]{4,}" attribute="WikiTag" column="0"/>
       </context>
 
-      <context name="FindWikiLink" attribute="Normal" lineEndContext="#stay">
-        <Detect2Chars char="[" char1="[" attribute="WikiTag" context="WikiLink" />
-      </context>
-      <context name="FindWikiLinkBeingBold" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingItalic" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingUnderlined" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkUnderlinedWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkUnderlinedWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingBoldItalic" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingBoldUnderlined" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldUnderlinedWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldUnderlinedWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingItalicUnderlined" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicUnderlinedWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicUnderlinedWithoutDescription" lookAhead="true" />
-      </context>
-      <context name="FindWikiLinkBeingBoldItalicUnderlined" attribute="Normal" lineEndContext="#stay">
-        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicUnderlinedWithDescription" lookAhead="true" />
-        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicUnderlinedWithoutDescription" lookAhead="true" />
+      <context name="FindHtmlEntities" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&htmlEntity;" attribute="HtmlEntity" />
       </context>
 
+      <!-- @} Others -->
+
     </contexts>
     <itemDatas>
       <itemData name="Normal" defStyleNum="dsNormal" />
@@ -584,6 +790,7 @@
       <itemData name="LinkBoldItalicUnderlined" defStyleNum="dsOthers" bold="true" italic="true" underline="true" />
       <itemData name="Comment" defStyleNum="dsComment" />
       <itemData name="Section" defStyleNum="dsKeyword" />
+      <itemData name="SectionDeliminator" defStyleNum="dsAttribute" />
       <itemData name="DefinitionListHeader" defStyleNum="dsKeyword" />
       <itemData name="HtmlEntity" defStyleNum="dsDecVal" />
       <itemData name="HtmlTag" defStyleNum="dsKeyword" />
@@ -608,6 +815,7 @@
       <itemData name="ItalicUnderlined" defStyleNum="dsNormal" italic="true" underline="true" />
       <itemData name="BoldItalicUnderlined" defStyleNum="dsNormal" bold="true" italic="true" underline="true" />
       <itemData name="HtmlAttribute" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="HtmlAttributeSeparator" defStyleNum="dsOthers" spellChecking="false" />
       <itemData name="HtmlValue" defStyleNum="dsString" spellChecking="false" />
     </itemDatas>
   </highlighting>
diff --git a/xml/metafont.xml b/xml/metafont.xml
--- a/xml/metafont.xml
+++ b/xml/metafont.xml
@@ -691,7 +691,6 @@
       <item>pen_bot</item>
       <item>savepen</item>
 
-      <item>clearpen</item>
       <item>clear_pen_memory</item>
       <item>lft</item>
       <item>rt</item>
@@ -716,7 +715,6 @@
       <item>clearxy</item>
       <item>clearit</item>
       <item>clearpen</item>
-      <item>pickup</item>
       <item>shipit</item>
 
       <item>bye</item>
diff --git a/xml/mips.xml b/xml/mips.xml
--- a/xml/mips.xml
+++ b/xml/mips.xml
@@ -117,10 +117,6 @@
       <item>rfe</item>
       <item>sb</item>
       <item>sh</item>
-      <item>sw</item>
-      <item>swcl</item>
-      <item>swl</item>
-      <item>swr</item>
       <item>sll</item>
       <item>sllv</item>
       <item>slt</item>
@@ -139,6 +135,7 @@
       <item>swc1</item>
       <item>swc2</item>
       <item>swc3</item>
+      <item>swcl</item>
       <item>swl</item>
       <item>swr</item>
       <item>syscall</item>
diff --git a/xml/mustache.xml b/xml/mustache.xml
--- a/xml/mustache.xml
+++ b/xml/mustache.xml
@@ -43,7 +43,7 @@
      * v1 [2019-02-10]: Initial version
 -->
 
-<language name="Mustache/Handlebars (HTML)" version="9" kateversion="5.79"
+<language name="Mustache/Handlebars (HTML)" version="10" kateversion="5.79"
           section="Markup" priority="1" mimetype=""
           extensions="*.mustache;*.handlebars;*.hbs;*.ractive;*.hogan;*.hulk;*.html.mst;*.html.mu;*.html.rac"
           author="Nibaldo González (nibgonz@gmail.com), based on the HTML highlighter by Wilbert Berendsen (wilbert@kde.nl)"
@@ -223,19 +223,19 @@
 			<RegExpr context="#stay" attribute="Element Tag" String="&lt;/\s*&gt;" />
 			<RegExpr context="ElementTagEnd" attribute="Element Tag" String="&lt;/\s*&name;" />
 		</context>
-		<context name="ElementTagEnd" attribute="Normal Text" lineEndContext="#stay">
+		<context name="ElementTagEnd" attribute="Error" lineEndContext="#stay">
 			<DetectChar context="#pop" attribute="Element Tag" char="&gt;" />
+			<DetectSpaces attribute="Normal Text"/>
 			<IncludeRules context="MustacheVariables" />
-			<RegExpr context="#stay" attribute="Error" String="\S" />
 		</context>
 
 		<!-- Inside the tag -->
-		<context name="ElementTag" attribute="Normal Text" lineEndContext="#stay">
+		<context name="ElementTag" attribute="Error" lineEndContext="#stay">
 			<Detect2Chars context="#pop" attribute="Element Tag" char="/" char1="&gt;" />
 			<DetectChar context="#pop" attribute="Element Tag" char="&gt;" />
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="FindAttributes" />
-			<RegExpr context="#stay" attribute="Error" String="\S" />
+			<DetectSpaces attribute="Normal Text"/>
 		</context>
 		<context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
 			<RegExpr context="#stay" attribute="Attribute" String="&attributeName;" />
@@ -274,7 +274,6 @@
 		<context name="Comment" attribute="Comment" lineEndContext="#stay">
 			<DetectSpaces/>
 			<StringDetect context="#pop" attribute="Comment" String="--&gt;" endRegion="Comment" />
-			<RegExpr context="#stay" attribute="Error" String="-(?:-(?!-&gt;))+" />
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="##Comments" />
 		</context>
@@ -295,7 +294,6 @@
 		<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
 			<IncludeRules context="MustacheVariables" />
 			<StringDetect context="#pop" attribute="CDATA" String="]]&gt;" endRegion="cdata" />
-			<StringDetect context="#stay" attribute="EntityRef" String="]]&amp;gt;" />
 		</context>
 
 		<context name="PI" attribute="Normal Text" lineEndContext="#stay">
@@ -335,12 +333,12 @@
 
 		<!-- CSS -->
 
-		<context name="CSS" attribute="Normal Text" lineEndContext="#stay">
+		<context name="CSS" attribute="Error" lineEndContext="#stay">
 			<Detect2Chars context="#pop" attribute="Element Tag" char="/" char1="&gt;" endRegion="style" />
 			<DetectChar context="#pop!CSSContent" attribute="Element Tag" char="&gt;" />
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="FindAttributes" />
-			<RegExpr context="#stay" attribute="Error" String="\S" />
+			<DetectSpaces attribute="Normal Text"/>
 		</context>
 		<context name="CSSContent" attribute="Normal Text" lineEndContext="#stay">
 			<WordDetect context="#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/style" insensitive="true" endRegion="style" />
@@ -377,12 +375,12 @@
 
 		<!-- JavaScript -->
 
-		<context name="JS" attribute="Normal Text" lineEndContext="#stay">
+		<context name="JS" attribute="Error" lineEndContext="#stay">
 			<DetectChar context="#pop!JSContent" attribute="Element Tag" char="&gt;" />
 			<Detect2Chars context="#pop" attribute="Element Tag" char="/" char1="&gt;" endRegion="script" />
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="FindAttributes" />
-			<RegExpr attribute="Error" context="#stay" String="\S" />
+			<DetectSpaces attribute="Normal Text"/>
 		</context>
 
 		<context name="JSContent" attribute="Normal Text" lineEndContext="#stay">
diff --git a/xml/nasm.xml b/xml/nasm.xml
--- a/xml/nasm.xml
+++ b/xml/nasm.xml
@@ -2548,7 +2548,6 @@
       <item>__?FLOAT_DAZ?__</item>
       <item>__?FLOAT_ROUND?__</item>
       <item>__?FLOAT?__</item>
-      <item>__?FLOAT?__</item>
     </list>
 
     <list name="special symbols">
diff --git a/xml/objectivecpp.xml b/xml/objectivecpp.xml
--- a/xml/objectivecpp.xml
+++ b/xml/objectivecpp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="Objective-C++" alternativeNames="ObjectiveC++;Objective-CPP;ObjectiveCPP;ObjC++;ObjCPP" version="12" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objc++src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">
+<language name="Objective-C++" alternativeNames="ObjectiveC++;Objective-CPP;ObjectiveCPP;ObjC++;ObjCPP" version="13" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objc++src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">
   <highlighting>
     <list name="keywords">
       <item>break</item>
@@ -94,7 +94,6 @@
       <item>Q_SIGNALS</item>
       <item>Q_SLOTS</item>
       <item>Q_FOREACH</item>
-      <item>Q_DECLARE_FLAGS</item>
       <item>Q_INIT_RESOURCE</item>
       <item>Q_CLEANUP_RESOURCE</item>
       <item>Q_GLOBAL_STATIC</item>
diff --git a/xml/octave.xml b/xml/octave.xml
--- a/xml/octave.xml
+++ b/xml/octave.xml
@@ -1847,7 +1847,6 @@
       <item>bisectionstep</item>
       <item>builtin</item>
       <item>bwfill</item>
-      <item>bwlabel</item>
       <item>cell2csv</item>
       <item>celleval</item>
       <item>Chi</item>
@@ -1877,7 +1876,6 @@
       <item>dispatch</item>
       <item>dispatch_help</item>
       <item>display_fixed_operations</item>
-      <item>dlmread</item>
       <item>ellint_Ecomp</item>
       <item>ellint_Kcomp</item>
       <item>ellipj</item>
@@ -2054,7 +2052,6 @@
       <item>transport_3</item>
       <item>transport_4</item>
       <item>transport_5</item>
-      <item>trisolve</item>
       <item>waitbar</item>
       <item>xmlread</item>
       <item>zeta</item>
@@ -2202,7 +2199,6 @@
       <item>dftmtx</item>
       <item>dhbar</item>
       <item>dilate</item>
-      <item>dispatch</item>
       <item>distance</item>
       <item>dlmread</item>
       <item>dlmwrite</item>
@@ -2215,7 +2211,6 @@
       <item>edit</item>
       <item>ellip</item>
       <item>ellipdemo</item>
-      <item>ellipj</item>
       <item>ellipke</item>
       <item>ellipord</item>
       <item>__ellip_ws</item>
diff --git a/xml/perl.xml b/xml/perl.xml
--- a/xml/perl.xml
+++ b/xml/perl.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language>
+<!DOCTYPE language [
+  <!-- https://perldoc.perl.org/perlre#Overview -->
+  <!ENTITY subst_flags "[msixpadluncgeor]*">
+]>
 <!--
    This file is part of the KDE project
    Copyright (C) 2001, 2002, 2003, 2004 Anders Lund <anders@alweb.dk>
@@ -39,9 +42,9 @@
 
    Enhance tr/// and y/// support.
 -->
-<language name="Perl" alternativeNames="PL" version="20" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
+<language name="Perl" alternativeNames="PL" version="22" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
   <highlighting>
-    <list name="keywords">
+    <list name="control_flow">
       <item>if</item>
       <item>unless</item>
       <item>else</item>
@@ -51,11 +54,18 @@
       <item>for</item>
       <item>each</item>
       <item>foreach</item>
-      <item>next</item>
-      <item>last</item>
       <item>break</item>
       <item>continue</item>
+      <item>next</item>
+      <item>last</item>
+      <item>redo</item>
       <item>return</item>
+      <item>when</item>
+      <item>given</item>
+      <item>default</item>
+      <item>defer</item>
+    </list>
+    <list name="keywords">
       <item>my</item>
       <item>our</item>
       <item>local</item>
@@ -65,9 +75,6 @@
       <item>package</item>
       <item>sub</item>
       <item>do</item>
-      <item>given</item>
-      <item>when</item>
-      <item>default</item>
       <item>__END__</item>
       <item>__DATA__</item>
       <item>__FILE__</item>
@@ -75,42 +82,6 @@
       <item>__PACKAGE__</item>
     </list>
     <list name="operators">
-      <item>=</item>
-      <item>!=</item>
-      <item>~=</item>
-      <item>+=</item>
-      <item>-=</item>
-      <item>*=</item>
-      <item>/=</item>
-      <item>**=</item>
-      <item>|=</item>
-      <item>||=</item>
-      <item>//=</item>
-      <item>&amp;=</item>
-      <item>&amp;&amp;=</item>
-      <item>?=</item>
-      <item>+</item>
-      <item>-</item>
-      <item>*</item>
-      <!-- <item>/</item>//-->
-      <item>%</item>
-      <item>||</item>
-      <item>//</item>
-      <item>&amp;&amp;</item>
-      <item>|</item>
-      <item>&amp;</item>
-      <item>&lt;</item>
-      <item>&lt;&lt;</item>
-      <item>&gt;</item>
-      <item>&gt;&gt;</item>
-      <item>^</item>
-      <item>-&gt;</item>
-      <item>=&gt;</item>
-      <item>.</item>
-      <item>,</item>
-      <item>;</item>
-      <item>::</item>
-      <item>\</item>
       <item>and</item>
       <item>or</item>
       <item>not</item>
@@ -242,7 +213,6 @@
       <item>readline</item>
       <item>readlink</item>
       <item>recv</item>
-      <item>redo</item>
       <item>ref</item>
       <item>rename</item>
       <item>require</item>
@@ -339,25 +309,27 @@
     </list>
     <contexts>
       <context name="normal" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr attribute="Keyword" context="#stay" String="^#!\/.*" column="0" />
+        <DetectSpaces />
+
         <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
         <StringDetect attribute="Keyword" context="#stay" String="__END__" firstNonSpace="true"/>
         <RegExpr attribute="Keyword" context="sub_name_def" String="\bsub\s+" />
         <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Control Flow" context="#stay" String="control_flow" />
         <keyword attribute="Operator" context="#stay" String="operators" />
         <keyword attribute="Function" context="#stay" String="functions" />
         <keyword attribute="Pragma" context="#stay" String="pragmas" />
         <RegExpr attribute="Pod" context="pod" String="^\=\w+(\s|$)" column="0" beginRegion="POD"/>
-        <DetectSpaces />
+
+        <RegExpr attribute="Keyword" context="#stay" String="^#!/.*" column="0" />
         <DetectChar attribute="Comment" context="comment" char="#" />
 
         <!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
-        <RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="slash_safe_escape"/>
-        <RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="slash_safe_escape"/>
-        <RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="slash_safe_escape"/>
-        <RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="slash_safe_escape"/>
-        <RegExpr attribute="Decimal" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="slash_safe_escape"/>
-        <Int attribute="Decimal" context="slash_safe_escape" />
+        <RegExpr attribute="Float" String="\b\-?((0+|[1-9][_0-9]*)(\.([_0-9]*([eE][-+]?_*[0-9][_0-9]*)?)?|[eE][-+]?_*[0-9][_0-9]*)|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*)" context="slash_safe_escape"/>
+        <RegExpr attribute="Hex" String="\b\-?0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*" context="slash_safe_escape"/>
+        <RegExpr attribute="Bin" String="\b\-?0[bB]_*[01][_01]*" context="slash_safe_escape"/>
+        <RegExpr attribute="Octal" String="\b\-?0_*[1-7][_0-7]*" context="slash_safe_escape"/>
+        <RegExpr attribute="Decimal" String="\b\-?([1-9][_0-9]*|0+)" context="slash_safe_escape"/>
 
         <!-- Allow strings as scalar references (ex: \'string') (see bug #348765). -->
         <!-- <RegExpr attribute="Normal Text" context="#stay" String="\\([&quot;'])[^\1]" /> -->
@@ -370,10 +342,10 @@
 
         <RegExpr attribute="Keyword" context="#stay" String="&lt;[A-Z0-9_]+&gt;" />
 
-        <RegExpr attribute="Operator" context="find_here_document" String="\s*&lt;&lt;(?=\w+|\s*[&quot;'])" beginRegion="HereDocument" />
+        <RegExpr attribute="Operator" context="find_here_document" String="&lt;&lt;(?=\w+|\s*[&quot;'])" beginRegion="HereDocument" />
 
-        <RegExpr attribute="Normal Text" context="#stay" String="\s*\}\s*/{1,2}" endRegion="Block"/>
-        <RegExpr attribute="Normal Text" context="#stay" String="\s*[)\]]\s*/{1,2}" />
+        <RegExpr attribute="Normal Text" context="#stay" String="\}\s*/{1,2}" endRegion="Block"/>
+        <RegExpr attribute="Normal Text" context="#stay" String="[)\]]\s*/{1,2}" />
 
         <RegExpr attribute="Function" context="sub_name_def" String="\w+::" />
         <RegExpr attribute="Normal Text" context="#stay" String="\w+[=]" />
@@ -385,6 +357,8 @@
         <RegExpr attribute="Operator" context="find_pattern" String="\b(?:m|qr)(?=\s*[^\w\s\]})])" />
 
         <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*//?\=?|[&lt;&gt;&quot;':]//?\=?" />
+        <DetectIdentifier/>
+
         <!-- Avoid conflicts between operators / and // -->
         <StringDetect attribute="Normal Text" context="#stay" String="//=" />
         <Detect2Chars attribute="Normal Text" context="#stay" char="/" char1="/" />
@@ -426,12 +400,15 @@
       </context>
 
       <!-- ====== Contexts for strings ===== -->
-      <context name="ipstring_internal" attribute="String (interpolated)" lineEndContext="#stay">
-        <DetectIdentifier />
+      <context name="ipstring_internal_without_identifier" attribute="String (interpolated)" lineEndContext="#stay">
         <RegExpr attribute="String Special Character" context="#stay" String="\\c[^\s\\]|\\g(\{(\w+|\-\d+)\}|\d+)|\\k(\{\w+\}|&lt;\w+&gt;|'\w+')|\\N\{[^\{\}]*\}|\\o\{[0-7]+\}|\\[pP](\{\w+\}|P)|\\x([0-9a-fA-F]{2}|\{[0-9a-fA-F]+\})|\\[0-7]{3}|\\[1aAbBdDeEfFGhHKlLnNQrRsStuUvVwWXzZ]" />
         <RegExpr attribute="String (interpolated)" context="#stay" String="\\." />
         <RegExpr attribute="Normal Text" context="find_variable_unsafe" String="(?:[\$@]\S|%([\w\{\-\+!]|\^H))" lookAhead="true" />
       </context>
+      <context name="ipstring_internal" attribute="String (interpolated)" lineEndContext="#stay">
+        <DetectIdentifier />
+        <IncludeRules context="ipstring_internal_without_identifier" />
+      </context>
       <context name="ip_string" attribute="String (interpolated)" lineEndContext="#stay">
         <DetectChar attribute="Operator" context="#pop" char="&quot;" endRegion="String"/>
         <IncludeRules context="ipstring_internal" />
@@ -506,7 +483,7 @@
 
       <!-- ====== contexts for  s/// ====== -->
       <context name="find_subst" attribute="Normal Text" lineEndContext="#stay" >
-        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- s # == comment, look for the delim on the next line -->
+        <RegExpr attribute="Comment" context="comment" String="\s+#" /><!-- s # == comment, look for the delim on the next line -->
         <DetectChar attribute="Operator" context="subst_curlybrace_pattern" char="{" beginRegion="Pattern" />
         <DetectChar attribute="Operator" context="subst_paren_pattern" char="(" beginRegion="Pattern" />
         <DetectChar attribute="Operator" context="subst_bracket_pattern" char="[" beginRegion="Pattern" />
@@ -521,24 +498,10 @@
       <context name="subst_curlybrace_pattern" attribute="Pattern" lineEndContext="#stay">
         <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
         <IncludeRules context="regex_pattern_internal_ip" />
-        <DetectChar attribute="Operator" context="subst_curlybrace_middle" char="}" endRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_middle" char="}" endRegion="Pattern" />
         <!-- Recursive brackets. Avoid closing brackets incorrectly (bug #364866). -->
         <DetectChar attribute="Pattern" context="subst_curlybrace_pattern_recursive" char="{" />
       </context>
-      <context name="subst_curlybrace_middle" attribute="Normal Text" lineEndContext="#stay" >
-        <DetectChar attribute="Comment" context="comment" char="#" />
-        <DetectChar attribute="Operator" context="subst_curlybrace_replace" char="{" beginRegion="Replacement" />
-      </context>
-      <context name="subst_curlybrace_replace" attribute="String (interpolated)" lineEndContext="#stay">
-        <IncludeRules context="ipstring_internal" />
-        <DetectChar attribute="Normal Text" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
-        <RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\}[cegimosx]*" endRegion="Replacement" />
-      </context>
-      <context name="subst_curlybrace_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
-        <DetectChar attribute="String (interpolated)" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
-        <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="Block" />
-        <IncludeRules context="ipstring_internal" />
-      </context>
       <context name="subst_curlybrace_pattern_recursive" attribute="Pattern" lineEndContext="#stay">
         <DetectChar attribute="Pattern" context="#pop" char="}" />
         <IncludeRules context="subst_curlybrace_pattern" />
@@ -548,52 +511,97 @@
         <DetectChar attribute="Comment" context="#pop!comment" char="#" />
       </context>
 
+      <!-- Fully parse s () (). -->
       <context name="subst_paren_pattern" attribute="Pattern" lineEndContext="#stay">
         <DetectSpaces attribute="Pattern" context="subst_maybe_comment" />
-        <DetectChar attribute="Operator" context="subst_paren_replace" char=")" endRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_middle" char=")" endRegion="Pattern" />
         <!-- Round brackets of RegExp pattern inside -->
         <DetectChar attribute="Pattern Internal Operator" context="subst_paren_pattern_internal_recursive" char="(" />
         <IncludeRules context="regex_pattern_internal_ip" />
       </context>
-      <context name="subst_paren_replace" attribute="String (interpolated)" lineEndContext="#stay">
-        <IncludeRules context="ipstring_internal" />
-        <DetectChar attribute="Operator" context="#stay" char="(" beginRegion="Replacement" />
-        <RegExpr attribute="Operator" context="#pop#pop#pop" String="\)[cegimosx]*" endRegion="Replacement" />
-      </context>
       <context name="subst_paren_pattern_internal_recursive" attribute="Pattern" lineEndContext="#stay">
         <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />
         <IncludeRules context="subst_paren_pattern" />
       </context>
 
+      <!-- Fully parse s [] []. -->
       <context name="subst_bracket_pattern" attribute="Pattern" lineEndContext="#stay">
         <DetectSpaces attribute="Pattern" context="subst_maybe_comment" />
         <IncludeRules context="regex_pattern_internal_ip" />
-        <DetectChar attribute="Operator" context="subst_bracket_replace" char="]" endRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_middle" char="]" endRegion="Pattern" />
       </context>
+
+      <context name="subst_middle" attribute="Normal Text" lineEndContext="#stay" >
+        <DetectChar attribute="Comment" context="comment" char="#" />
+        <DetectChar attribute="Operator" context="subst_curlybrace_replace" char="{" beginRegion="Replacement" />
+        <DetectChar attribute="Operator" context="subst_bracket_replace" char="[" beginRegion="Replacement" />
+        <DetectChar attribute="Operator" context="subst_paren_replace" char="(" beginRegion="Replacement" />
+        <DetectChar attribute="Operator" context="#pop!subst_sq_replace" char="'" beginRegion="Replacement" />
+        <DetectSpaces/>
+        <RegExpr attribute="Operator" context="#pop!subst_slash_replace" String="([^\w])" beginRegion="Replacement" />
+        <!-- partially buggy if the character is in a set, a variable, etc. -->
+        <RegExpr attribute="Operator" context="#pop!subst_any_replace" String="(.)" beginRegion="Replacement" />
+      </context>
+      <context name="subst_any_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />
+        <IncludeRules context="ipstring_internal_without_identifier" />
+      </context>
+
+      <!-- {} replacement -->
+      <context name="subst_curlybrace_replace" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal" />
+        <DetectChar attribute="Normal Text" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\}&subst_flags;" endRegion="Replacement" />
+      </context>
+      <context name="subst_curlybrace_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
+        <DetectChar attribute="String (interpolated)" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
+        <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="Block" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+
+      <!-- () replacement -->
+      <context name="subst_paren_replace" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal" />
+        <DetectChar attribute="Normal Text" context="subst_paren_replace_recursive" char="(" beginRegion="Block" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\)&subst_flags;" endRegion="Replacement" />
+      </context>
+      <context name="subst_paren_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
+        <DetectChar attribute="String (interpolated)" context="subst_paren_replace_recursive" char="(" beginRegion="Block" />
+        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="Block" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+
+      <!-- [] replacement -->
       <context name="subst_bracket_replace" attribute="String (interpolated)" lineEndContext="#stay">
         <IncludeRules context="ipstring_internal" />
-        <DetectChar attribute="Operator" context="#stay" char="[" beginRegion="Replacement" />
-        <RegExpr attribute="Operator" context="#pop#pop#pop" String="\][cegimosx]*" endRegion="Replacement" />
+        <DetectChar attribute="Normal Text" context="subst_bracket_replace_recursive" char="[" beginRegion="Block" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\]&subst_flags;" endRegion="Replacement" />
       </context>
+      <context name="subst_bracket_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
+        <DetectChar attribute="String (interpolated)" context="subst_bracket_replace_recursive" char="[" beginRegion="Block" />
+        <DetectChar attribute="Normal Text" context="#pop" char="]" endRegion="Block" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
 
+      <!-- Fully parse s / / /. -->
       <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
         <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />
         <RegExpr attribute="Operator" context="subst_slash_replace" String="(%1)" dynamic="true" endRegion="Pattern" beginRegion="Replacement" />
         <IncludeRules context="regex_pattern_internal_ip" />
       </context>
       <context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
-        <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1[cegimosx]*" dynamic="true" endRegion="Replacement" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />
         <IncludeRules context="ipstring_internal" />
-
       </context>
 
+      <!-- Fully parse s ' ' '. -->
       <context name="subst_sq_pattern" attribute="Pattern" lineEndContext="#stay">
         <DetectSpaces attribute="Pattern" context="subst_maybe_comment" />
         <IncludeRules context="regex_pattern_internal" />
         <DetectChar attribute="Operator" context="subst_sq_replace" char="'" endRegion="Pattern" beginRegion="Pattern" />
       </context>
       <context name="subst_sq_replace" attribute="String" lineEndContext="#stay">
-        <RegExpr attribute="Operator" context="#pop#pop#pop" String="'[cegimosx]*" endRegion="Replacement" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="'&subst_flags;" endRegion="Replacement" />
       </context>
 
       <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
@@ -715,14 +723,11 @@
         <AnyChar attribute="Operator" context="#pop" String="$@%*" />
       </context>
       <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
-        <IncludeRules context="var_detect_rules" />
+        <IncludeRules context="var_detect_unsafe" />
         <IncludeRules context="slash_safe_escape" />
       </context>
       <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
-        <IncludeRules context="var_detect_rules" />
-      </context>
-      <context name="var_detect_rules" attribute="Data Type" lineEndContext="#pop#pop" >
-        <RegExpr attribute="Data Type" context="#stay" String="[\w_]+" />
+        <RegExpr attribute="Data Type" context="#stay" String="(?&lt;![0-9])[\w_]+" />
         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
         <DetectChar attribute="Operator" context="#stay" char="'" />
         <Detect2Chars attribute="Normal Text" context="#stay" char="-" char1="&gt;" />
@@ -799,9 +804,10 @@
       </context>
 
       <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="sub_arg_definition" char="(" />
         <RegExpr attribute="Function" context="#stay" String="\w+" />
         <RegExpr attribute="Normal Text" context="find_variable" String="\$\S" lookAhead="true" />
-        <RegExpr attribute="Normal Text" context="sub_arg_definition" String="\s*\(" />
         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
       </context>
 
@@ -829,6 +835,7 @@
     </contexts>
     <itemDatas>
       <itemData name="Normal Text"               defStyleNum="dsNormal" />
+      <itemData name="Control Flow"              defStyleNum="dsControlFlow" spellChecking="false"/>
       <itemData name="Keyword"                   defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Pragma"                    defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Function"                  defStyleNum="dsFunction" spellChecking="false"/>
diff --git a/xml/php.xml b/xml/php.xml
--- a/xml/php.xml
+++ b/xml/php.xml
@@ -305,8 +305,6 @@
       <item>MYSQLI_RPL_SLAVE</item>
       <item>M_ABSTRACT</item>
       <item>M_FINAL</item>
-      <item>M_LN10</item>
-      <item>M_LOG10E</item>
       <item>M_PRIVATE</item>
       <item>M_PROTECTED</item>
       <item>M_PUBLIC</item>
@@ -3303,7 +3301,6 @@
       <item>PGSQL_CONNECTION_SSL_STARTUP</item>
       <item>PGSQL_CONNECTION_STARTED</item>
       <item>PGSQL_CONNECT_ASYNC</item>
-      <item>PGSQL_CONNECT_ASYNC</item>
       <item>PGSQL_CONNECT_FORCE_NEW</item>
       <item>PGSQL_CONV_FORCE_NULL</item>
       <item>PGSQL_CONV_IGNORE_DEFAULT</item>
@@ -3339,7 +3336,6 @@
       <item>PGSQL_ERRORS_VERBOSE</item>
       <item>PGSQL_FATAL_ERROR</item>
       <item>PGSQL_LIBPQ_VERSION</item>
-      <item>PGSQL_LIBPQ_VERSION_STR</item>
       <item>PGSQL_LIBPQ_VERSION_STR</item>
       <item>PGSQL_NONFATAL_ERROR</item>
       <item>PGSQL_NOTICE_ALL</item>
diff --git a/xml/povray.xml b/xml/povray.xml
--- a/xml/povray.xml
+++ b/xml/povray.xml
@@ -376,7 +376,6 @@
 			<item>tightness</item>
 			<item>tile2</item>
 			<item>tiles</item>
-			<item>normal</item>
 			<item>tolerance</item>
 			<item>toroidal</item>
 			<item>torus</item>
@@ -716,7 +715,6 @@
 			<item>texture</item>
 			<item>tile2</item>
 			<item>tiles</item>
-			<item>normal</item>
 			<item>toroidal</item>
 			<item>transmit</item>
 			<item>triangle_wave</item>
diff --git a/xml/powershell.xml b/xml/powershell.xml
--- a/xml/powershell.xml
+++ b/xml/powershell.xml
@@ -4,7 +4,7 @@
 ]>
 <language
   name="PowerShell"
-  version="14"
+  version="15"
   kateversion="5.79"
   extensions="*.ps1;*.psm1;*.psd1"
   section="Scripts"
@@ -104,7 +104,6 @@
       <item>Add-ClusterSharedVolume</item>
       <item>Add-ClusterVirtualMachineRole</item>
       <item>Add-Computer</item>
-      <item>Add-Content</item>
       <item>Add-History</item>
       <item>Add-JobTrigger</item>
       <item>Add-Member</item>
diff --git a/xml/protobuf.xml b/xml/protobuf.xml
--- a/xml/protobuf.xml
+++ b/xml/protobuf.xml
@@ -1,27 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="Protobuf" version="9" kateversion="5.0" section="Sources" extensions="*.proto" mimetype="text/x-protobuf" author="Slawomir Mikula (slawek.mikula@gmail.com)" license="LGPL">
+<language name="Protobuf" version="10" kateversion="5.0" section="Sources" extensions="*.proto" mimetype="text/x-protobuf" author="Slawomir Mikula (slawek.mikula@gmail.com)" license="LGPL">
+    <!--
+      https://protobuf.dev/programming-guides/editions/
+      https://protobuf.dev/reference/protobuf/
+      https://protobuf.dev/reference/protobuf/edition-2023-spec/
+    -->
+
   <highlighting>
     <list name="keywords">
-      <item>message</item>
-      <item>required</item>
-      <item>optional</item>
-      <item>repeated</item>
-      <item>packed</item>
-      <item>enum</item>
       <item>default</item>
-      <item>import</item>
-      <item>public</item>
+      <item>enum</item>
+      <item>extend</item>
       <item>extensions</item>
-      <item>package</item>
+      <item>import</item>
+      <item>message</item>
       <item>option</item>
-      <item>deprecated</item>
-      <item>extend</item>
-    </list>
-    <list name="operators">
-      <item>=</item>
-      <item>;</item>
+      <item>optional</item> <!-- proto2 -->
+      <item>oneof</item>
+      <item>package</item>
+      <item>packed</item> <!-- option -->
+      <item>repeated</item>
+      <item>required</item> <!-- deprecated -->
+      <item>reserved</item>
+      <item>returns</item>
+      <item>rpc</item>
+      <item>service</item>
     </list>
+
     <list name="datatypes">
       <item>double</item>
       <item>float</item>
@@ -42,74 +48,86 @@
 
 <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
-        <DetectSpaces />
-        <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword attribute="Operator" context="#stay" String="operators"/>
-        <keyword attribute="Data Type" context="#stay" String="datatypes"/>
-        <RegExpr attribute="Keyword" context="Imports" String="\b(?:package|import)\b" />
-        <DetectIdentifier />
-        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
-        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
-        <DetectChar attribute="String" context="String" char="&quot;"/>
-        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
-        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
-        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
-        <Float attribute="Float" context="#stay"/>
-        <HlCOct attribute="Octal" context="#stay"/>
-        <HlCHex attribute="Hex" context="#stay"/>
-        <Int attribute="Decimal" context="#stay"/>
-        <HlCChar attribute="Char" context="#stay"/>
-        <RegExpr attribute="Char" context="#stay" String="'\\u[0-9a-fA-F]{4}'"/>
+        <DetectSpaces/>
+        <AnyChar attribute="Operator" String="=:"/>
+        <AnyChar attribute="Separator Symbol" String=",;"/>
+        <AnyChar attribute="Block Symbol" String="[]&lt;&gt;"/>
+        <DetectChar attribute="Block Symbol" char="{" beginRegion="Brace1"/>
+        <DetectChar attribute="Block Symbol" char="}" endRegion="Brace1"/>
+        <DetectChar attribute="String" context="StringDQ" char='"'/>
+        <DetectChar attribute="String" context="StringSQ" char="'"/>
+        <StringDetect attribute="Comment" context="Commentar 1" String="//"/>
+        <StringDetect attribute="Comment" context="Commentar 2" String="/*" beginRegion="Comment"/>
+        <AnyChar attribute="Symbol" String="!%&amp;()+-/.*?|~^"/>
+        <Float attribute="Float"/>
+        <HlCHex attribute="Hex"/>
+        <HlCOct attribute="Octal"/>
+        <Int attribute="Decimal"/>
+        <keyword attribute="Keyword" String="keywords"/>
+        <keyword attribute="Data Type" String="datatypes"/>
+        <WordDetect attribute="Keyword" String="true"/>
+        <WordDetect attribute="Keyword" String="false"/>
+        <WordDetect attribute="Float" String="inf"/>
+        <WordDetect attribute="Float" String="nan"/>
+        <DetectIdentifier/>
       </context>
 
-      <context attribute="String" lineEndContext="#pop" name="String">
-        <LineContinue attribute="String" context="#stay"/>
-        <HlCStringChar attribute="String Char" context="#stay"/>
-        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      <context attribute="String" lineEndContext="#pop" name="StringSQ">
+        <DetectChar attribute="String" context="#pop" char="'"/>
+        <DetectChar context="EscapeString" char="\" lookAhead="1"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
-        <RegExpr attribute="Imports" context="#pop" String="\s*.*;" />
+      <context attribute="String" lineEndContext="#pop" name="StringDQ">
+        <DetectChar attribute="String" context="#pop" char='"'/>
+        <DetectChar context="EscapeString" char="\" lookAhead="1"/>
       </context>
 
+      <context attribute="String Char" lineEndContext="#pop" name="EscapeString">
+        <RegExpr attribute="String Char" context="#pop" String="\\([abfnrtv\\'&quot;]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u[0-9a-fA-F]{4}|U000[0-9a-fA-F]{5}|U0010[0-9a-fA-F]{4})"/>
+        <RegExpr attribute="Error" context="#pop" String="\\([xX][0-9a-fA-F]?|u[0-9a-fA-F]{,3}|U(0(0(0[0-9a-fA-F]{,5}|1(0[0-9a-fA-F]{,4})?)?)?)?)?"/>
+      </context>
+
       <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
-        <LineContinue attribute="Comment" context="#stay"/>
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
 
       <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
-        <DetectSpaces />
-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
-        <IncludeRules context="##Comments" />
+        <DetectSpaces/>
+        <StringDetect attribute="Comment" context="#pop" String="*/" endRegion="Comment"/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
 
     </contexts>
+
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
-      <itemData name="Imports" defStyleNum="dsOthers"/>
 
       <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
       <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
       <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
       <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
-      <itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>
       <itemData name="String" defStyleNum="dsString"/>
-      <itemData name="String Char" defStyleNum="dsChar"/>
+      <itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
 
       <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
       <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Separator Symbol" defStyleNum="dsNormal" spellChecking="false" bold="1"/>
+      <itemData name="Block Symbol" defStyleNum="dsNormal" spellChecking="false" bold="1"/>
     </itemDatas>
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
-      <comment name="multiLine" start="/*" end="*/" region="Comment" />
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>
     </comments>
-    <keywords casesensitive="1" />
+    <keywords casesensitive="1"/>
   </general>
 </language>
 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/xml/python.xml b/xml/python.xml
--- a/xml/python.xml
+++ b/xml/python.xml
@@ -16,23 +16,40 @@
 		[Special cases: %prog and %default - see http://docs.python.org/library/optparse.html]
 	-->
 	<!ENTITY strsubstitution_py2 "&#37;(?:(?:\([a-zA-Z0-9_]+\))?[#0\- +]?(?:[1-9][0-9]*|\*)?(?:\.(?:[1-9][0-9]*|\*))?[hlL]?[crsdiouxXeEfFgG&#37;]|prog|default)">
-	<!-- http://docs.python.org/3/library/string.html#format-string-syntax:
-	     replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"
-	     field_name        ::=  arg_name ("." attribute_name | "[" element_index "]")*
-	     arg_name          ::=  [identifier | integer]
-	     attribute_name    ::=  identifier
-	     element_index     ::=  integer | index_string
-	     index_string      ::=  <any source character except "]"> +
-	     conversion        ::=  "r" | "s" | "a"
-	     format_spec       ::=  [[fill]align][sign][z][#][0][width][_,][.precision][type]
-	     fill              ::=  <any character>
-	     align             ::=  "<" | ">" | "=" | "^"
-	     sign              ::=  "+" | "-" | " "
-	     width             ::=  integer
-	     precision         ::=  integer
-	     type              ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
+	<!--
+	(Based on 3.14)
+	http://docs.python.org/3/library/string.html#format-string-syntax:
+
+		replacement_field: "{" [field_name] ["!" conversion] [":" format_spec] "}"
+		field_name:        arg_name ("." attribute_name | "[" element_index "]")*
+		arg_name:          [identifier | digit+]
+		attribute_name:    identifier
+		element_index:     digit+ | index_string
+		index_string:      <any source character except "]"> +
+		conversion:        "r" | "s" | "a"
+		format_spec:       format-spec:format_spec
+
+	https://docs.python.org/3/library/string.html#format-specification-mini-language
+
+		format_spec:             [options][width_and_precision][type]
+		options:                 [[fill]align][sign]["z"]["#"]["0"]
+		fill:                    <any character>
+		align:                   "<" | ">" | "=" | "^"
+		sign:                    "+" | "-" | " "
+		width_and_precision:     [width_with_grouping][precision_with_grouping]
+		width_with_grouping:     [width][grouping]
+		precision_with_grouping: "." [precision][grouping]
+		width:                   digit+
+		precision:               digit+
+		grouping:                "," | "_"
+		type:                    "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g"
+		                       | "G" | "n" | "o" | "s" | "x" | "X" | "%"
+
+		Note: precision_with_grouping should be
+			"." precision [grouping] | "." grouping
+			https://github.com/python/cpython/issues/134449
 	-->
-	<!ENTITY format_spec "(?:![rsa])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?z?#?0?[0-9]*[_,]?(?:\.[0-9]+)?[bcdeEfFgGnosxX&#37;]?)?">
+	<!ENTITY format_spec "(?:![rsa])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?z?#?0?[0-9]*[,_]?(?:\.[0-9]+[,_]?|\.[,_])?[bcdeEfFgGnosxX&#37;]?)?">
 	<!ENTITY strsubstitution_py3 "\{(?:(?:[a-zA-Z0-9_]+|[0-9]+)(?:\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?&format_spec;?\}">
 
 	<!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|&quot;(?:[^&quot;]++|\\&quot;)*+&quot;)">
@@ -61,7 +78,7 @@
 <!-- v2.07 add support for %prog and co, see bug 142832 -->
 <!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords -->
 <!-- v2.29 recognize escape sequenzes correctly -->
-<language name="Python" alternativeNames="Py" version="30" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">
+<language name="Python" alternativeNames="Py" version="32" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro;*.sage" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">
 	<highlighting>
 		<list name="import">
 			<item>import</item>
@@ -505,87 +522,105 @@
 			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals -->
 			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">
 				<!-- fast path -->
-				<RegExpr String="(?:u|r|b|f|ur|fr|rf|br|rb)?['&quot;]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/>
+				<RegExpr String="(?:u|r|b|f|t|ur|fr|rf|br|rb|tr|rt)?['&quot;]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/>
 			</context>
 			<context name="AssumeStringVariants" attribute="Normal Text" lineEndContext="#stay">
-				<StringDetect attribute="String" String="'''"                context="#pop!Triple A-string" beginRegion="Triple A-region"/>
-				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="String" String="'"                  context="#pop!Single A-string"/>
-				<StringDetect attribute="String" String="&quot;"             context="#pop!Single Q-string"/>
+				<StringDetect attribute="String Deliminator" String="'''"                context="#pop!Triple A-string" beginRegion="Triple A-region"/>
+				<StringDetect attribute="String Deliminator" String="&quot;&quot;&quot;" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="String Deliminator" String="'"                  context="#pop!Single A-string"/>
+				<StringDetect attribute="String Deliminator" String="&quot;"             context="#pop!Single Q-string"/>
 
-				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>
-				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/>
+				<StringDetect attribute="F-String Deliminator" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="F-String Deliminator" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="F-String Deliminator" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>
+				<StringDetect attribute="F-String Deliminator" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/>
 
 				<!-- lower r for regex -->
-				<StringDetect attribute="Raw String" String="r'''"                context="#pop!Raw Triple A-Regex" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw String" String="r&quot;&quot;&quot;" context="#pop!Raw Triple Q-Regex" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw String" String="r'"                  context="#pop!Raw A-Regex"/>
-				<StringDetect attribute="Raw String" String="r&quot;"             context="#pop!Raw Q-Regex"/>
+				<StringDetect attribute="Raw String Deliminator" String="r'''"                context="#pop!Raw Triple A-Regex" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="r&quot;&quot;&quot;" context="#pop!Raw Triple Q-Regex" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="r'"                  context="#pop!Raw A-Regex"/>
+				<StringDetect attribute="Raw String Deliminator" String="r&quot;"             context="#pop!Raw Q-Regex"/>
 
 				<!-- upper r for string -->
-				<StringDetect attribute="Raw String" String="R'''"                context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw String" String="R&quot;&quot;&quot;" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw String" String="R'"                  context="#pop!Raw A-string"/>
-				<StringDetect attribute="Raw String" String="R&quot;"             context="#pop!Raw Q-string"/>
+				<StringDetect attribute="Raw String Deliminator" String="R'''"                context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="R&quot;&quot;&quot;" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="R'"                  context="#pop!Raw A-string"/>
+				<StringDetect attribute="Raw String Deliminator" String="R&quot;"             context="#pop!Raw Q-string"/>
 
-				<StringDetect attribute="B-String" String="b'''"                insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="B-String" String="b&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="B-String" String="b'"                  insensitive="true" context="#pop!Single A-B-String"/>
-				<StringDetect attribute="B-String" String="b&quot;"             insensitive="true" context="#pop!Single Q-B-String"/>
+				<StringDetect attribute="B-String Deliminator" String="b'''"                insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="B-String Deliminator" String="b&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="B-String Deliminator" String="b'"                  insensitive="true" context="#pop!Single A-B-String"/>
+				<StringDetect attribute="B-String Deliminator" String="b&quot;"             insensitive="true" context="#pop!Single Q-B-String"/>
 
 				<!-- lower r and f for regex -->
-				<StringDetect attribute="Raw F-String" String="fr'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw F-String" String="rf'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw F-String" String="fr&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw F-String" String="rf&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw F-String" String="fr'"                  context="#pop!Raw A-F-Regex"/>
-				<StringDetect attribute="Raw F-String" String="rf'"                  context="#pop!Raw A-F-Regex"/>
-				<StringDetect attribute="Raw F-String" String="fr&quot;"             context="#pop!Raw Q-F-Regex"/>
-				<StringDetect attribute="Raw F-String" String="rf&quot;"             context="#pop!Raw Q-F-Regex"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf'''"                context="#pop!Raw Triple A-F-Regex" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf&quot;&quot;&quot;" context="#pop!Raw Triple Q-F-Regex" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr'"                  context="#pop!Raw A-F-Regex"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf'"                  context="#pop!Raw A-F-Regex"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr&quot;"             context="#pop!Raw Q-F-Regex"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf&quot;"             context="#pop!Raw Q-F-Regex"/>
 
 				<!-- upper r or f for string -->
-				<StringDetect attribute="Raw F-String" String="fr'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw F-String" String="rf'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw F-String" String="fr&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw F-String" String="rf&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw F-String" String="fr'"                  insensitive="true" context="#pop!Raw A-F-String"/>
-				<StringDetect attribute="Raw F-String" String="rf'"                  insensitive="true" context="#pop!Raw A-F-String"/>
-				<StringDetect attribute="Raw F-String" String="fr&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>
-				<StringDetect attribute="Raw F-String" String="rf&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr'"                  insensitive="true" context="#pop!Raw A-F-String"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf'"                  insensitive="true" context="#pop!Raw A-F-String"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="fr&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="rf&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/>
 
 				<!-- lower r and b for regex -->
-				<StringDetect attribute="Raw B-String" String="br'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw B-String" String="rb'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw B-String" String="br&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw B-String" String="rb&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw B-String" String="br'"                  context="#pop!Raw A-B-Regex"/>
-				<StringDetect attribute="Raw B-String" String="rb'"                  context="#pop!Raw A-B-Regex"/>
-				<StringDetect attribute="Raw B-String" String="br&quot;"             context="#pop!Raw Q-B-Regex"/>
-				<StringDetect attribute="Raw B-String" String="rb&quot;"             context="#pop!Raw Q-B-Regex"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb'''"                context="#pop!Raw Triple A-B-Regex" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb&quot;&quot;&quot;" context="#pop!Raw Triple Q-B-Regex" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br'"                  context="#pop!Raw A-B-Regex"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb'"                  context="#pop!Raw A-B-Regex"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br&quot;"             context="#pop!Raw Q-B-Regex"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb&quot;"             context="#pop!Raw Q-B-Regex"/>
 
 				<!-- upper r or b for string -->
-				<StringDetect attribute="Raw B-String" String="br'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw B-String" String="rb'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw B-String" String="br&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw B-String" String="rb&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw B-String" String="br'"                  insensitive="true" context="#pop!Raw A-B-String"/>
-				<StringDetect attribute="Raw B-String" String="rb'"                  insensitive="true" context="#pop!Raw A-B-String"/>
-				<StringDetect attribute="Raw B-String" String="br&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>
-				<StringDetect attribute="Raw B-String" String="rb&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br'"                  insensitive="true" context="#pop!Raw A-B-String"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb'"                  insensitive="true" context="#pop!Raw A-B-String"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="br&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="rb&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/>
 
+				<!-- Python 3.14 string template -->
+
+				<!-- t -->
+				<StringDetect attribute="T-String Deliminator" String="t'''"                insensitive="1" context="#pop!Triple A-T-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="T-String Deliminator" String="t&quot;&quot;&quot;" insensitive="1" context="#pop!Triple Q-T-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="T-String Deliminator" String="t'"                  insensitive="1" context="#pop!Single A-T-String"/>
+				<StringDetect attribute="T-String Deliminator" String="t&quot;"             insensitive="1" context="#pop!Single Q-T-String"/>
+
+				<!-- rt / tr -->
+				<StringDetect attribute="Raw T-String Deliminator" String="tr'''" insensitive="1"                context="#pop!Raw Triple A-T-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="rt'''" insensitive="1"                context="#pop!Raw Triple A-T-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="tr&quot;&quot;&quot;" insensitive="1" context="#pop!Raw Triple Q-T-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="rt&quot;&quot;&quot;" insensitive="1" context="#pop!Raw Triple Q-T-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="tr'" insensitive="1"                  context="#pop!Raw A-T-String"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="rt'" insensitive="1"                  context="#pop!Raw A-T-String"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="tr&quot;" insensitive="1"             context="#pop!Raw Q-T-String"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="rt&quot;" insensitive="1"             context="#pop!Raw Q-T-String"/>
+
 				<!-- Python 2 compatibility (unicode prefix) -->
 
-				<StringDetect attribute="String" String="u'''"                     insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/>
-				<StringDetect attribute="String" String="u&quot;&quot;&quot;"      insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="String" String="u'"                       insensitive="true" context="#pop!Single A-string"/>
-				<StringDetect attribute="String" String="u&quot;"                  insensitive="true" context="#pop!Single Q-string"/>
+				<StringDetect attribute="String Deliminator" String="u'''"                     insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/>
+				<StringDetect attribute="String Deliminator" String="u&quot;&quot;&quot;"      insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="String Deliminator" String="u'"                       insensitive="true" context="#pop!Single A-string"/>
+				<StringDetect attribute="String Deliminator" String="u&quot;"                  insensitive="true" context="#pop!Single Q-string"/>
 
-				<StringDetect attribute="Raw String" String="ur'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
-				<StringDetect attribute="Raw String" String="ur&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
-				<StringDetect attribute="Raw String" String="ur'"                  insensitive="true" context="#pop!Raw A-string"/>
-				<StringDetect attribute="Raw String" String="ur&quot;"             insensitive="true" context="#pop!Raw Q-string"/>
+				<StringDetect attribute="Raw String Deliminator" String="ur'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="ur&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="ur'"                  insensitive="true" context="#pop!Raw A-string"/>
+				<StringDetect attribute="Raw String Deliminator" String="ur&quot;"             insensitive="true" context="#pop!Raw Q-string"/>
 			</context>
 
 			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->
@@ -745,7 +780,7 @@
 				<DetectIdentifier attribute="String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringformat"/>
-				<StringDetect attribute="String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 			</context>
 
 			<context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -754,7 +789,7 @@
 				<Detect2Chars attribute="Raw String" char="\" char1="'"/>
 				<Detect2Chars attribute="Raw String" char="\" char1="\"/>
 				<IncludeRules context="stringformat"/>
-				<StringDetect attribute="Raw String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 			</context>
 
 			<context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -762,7 +797,7 @@
 				<DetectIdentifier attribute="F-String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringinterpolation"/>
-				<StringDetect attribute="F-String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="F-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 			</context>
 
 			<context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -771,19 +806,36 @@
 				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>
 				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>
 				<IncludeRules context="stringinterpolation"/>
-				<StringDetect attribute="Raw F-String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 			</context>
 
+			<context name="Triple A-T-String" attribute="T-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces attribute="T-String"/>
+				<DetectIdentifier attribute="T-String"/>
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="T-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
+			</context>
+
+			<context name="Raw Triple A-T-String" attribute="Raw T-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces attribute="Raw T-String"/>
+				<DetectIdentifier attribute="Raw T-String"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="'"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="\"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
+			</context>
+
 			<context name="Triple A-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">
 				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|'(?!''))++"/>
 				<IncludeRules context="bytesescape"/>
-				<StringDetect attribute="B-String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="B-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
 			<context name="Raw Triple A-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">
 				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?|'(?!''))++"/>
-				<StringDetect attribute="Raw B-String" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="'''" context="#pop" endRegion="Triple A-region"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
@@ -793,7 +845,7 @@
 				<DetectIdentifier attribute="String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringformat"/>
-				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 			</context>
 
 			<context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -802,7 +854,7 @@
 				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>
 				<Detect2Chars attribute="Raw String" char="\" char1="\"/>
 				<IncludeRules context="stringformat"/>
-				<StringDetect attribute="Raw String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 			</context>
 
 			<context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -810,7 +862,7 @@
 				<DetectIdentifier attribute="F-String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringinterpolation"/>
-				<StringDetect attribute="F-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="F-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 			</context>
 
 			<context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
@@ -819,19 +871,36 @@
 				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>
 				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>
 				<IncludeRules context="stringinterpolation"/>
-				<StringDetect attribute="Raw F-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw F-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 			</context>
 
+			<context name="Triple Q-T-String" attribute="T-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces attribute="T-String"/>
+				<DetectIdentifier attribute="T-String"/>
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="T-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+			</context>
+
+			<context name="Raw Triple Q-T-String" attribute="Raw T-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces attribute="Raw T-String"/>
+				<DetectIdentifier attribute="Raw T-String"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="&quot;"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="\"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="Raw T-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+			</context>
+
 			<context name="Triple Q-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">
 				<RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|&quot;(?!&quot;&quot;))++"/>
 				<IncludeRules context="bytesescape"/>
-				<StringDetect attribute="B-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="B-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
 			<context name="Raw Triple Q-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">
 				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.?|&quot;(?!&quot;&quot;))++"/>
-				<StringDetect attribute="Raw B-String" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect attribute="Raw B-String Deliminator" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
@@ -842,7 +911,7 @@
 				<DetectIdentifier attribute="String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringformat"/>
-				<DetectChar attribute="String" char="'" context="#pop"/>
+				<DetectChar attribute="String Deliminator" char="'" context="#pop"/>
 			</context>
 
 			<context name="Raw A-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">
@@ -851,7 +920,7 @@
 				<Detect2Chars attribute="Raw String" char="\" char1="'"/>
 				<Detect2Chars attribute="Raw String" char="\" char1="\"/>
 				<IncludeRules context="stringformat"/>
-				<DetectChar attribute="Raw String" char="'" context="#pop"/>
+				<DetectChar attribute="Raw String Deliminator" char="'" context="#pop"/>
 				<LineContinue attribute="Raw String" context="#stay"/>
 			</context>
 
@@ -860,7 +929,7 @@
 				<DetectIdentifier attribute="F-String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringinterpolation"/>
-				<DetectChar attribute="F-String" char="'" context="#pop"/>
+				<DetectChar attribute="F-String Deliminator" char="'" context="#pop"/>
 			</context>
 
 			<context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">
@@ -869,20 +938,38 @@
 				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/>
 				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>
 				<IncludeRules context="stringinterpolation"/>
-				<DetectChar attribute="Raw F-String" char="'" context="#pop"/>
+				<DetectChar attribute="Raw F-String Deliminator" char="'" context="#pop"/>
 				<LineContinue attribute="Raw F-String" context="#stay"/>
 			</context>
 
+			<context name="Single A-T-String" attribute="T-String" lineEndContext="#pop!UnfinishedStringError">
+				<DetectSpaces attribute="T-String"/>
+				<DetectIdentifier attribute="T-String"/>
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="T-String Deliminator" char="'" context="#pop"/>
+			</context>
+
+			<context name="Raw A-T-String" attribute="Raw T-String" lineEndContext="#pop!UnfinishedStringError">
+				<DetectSpaces attribute="Raw T-String"/>
+				<DetectIdentifier attribute="Raw T-String"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="'"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="\"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="Raw T-String Deliminator" char="'" context="#pop"/>
+				<LineContinue attribute="Raw T-String" context="#stay"/>
+			</context>
+
 			<context name="Single A-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">
 				<RegExpr attribute="B-String" String="[\x20-\x26\x28-\x5B\x5D-\x7E]++"/>
 				<IncludeRules context="bytesescape"/>
-				<DetectChar attribute="B-String" char="'" context="#pop"/>
+				<DetectChar attribute="B-String Deliminator" char="'" context="#pop"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
 			<context name="Raw A-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">
 				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.)++"/>
-				<DetectChar attribute="Raw B-String" char="'" context="#pop"/>
+				<DetectChar attribute="Raw B-String Deliminator" char="'" context="#pop"/>
 				<LineContinue attribute="Raw B-String" context="#stay"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
@@ -893,7 +980,7 @@
 				<DetectIdentifier attribute="String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringformat"/>
-				<DetectChar attribute="String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="String Deliminator" char="&quot;" context="#pop"/>
 			</context>
 
 			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError">
@@ -902,7 +989,7 @@
 				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/>
 				<Detect2Chars attribute="Raw String" char="\" char1="\"/>
 				<IncludeRules context="stringformat"/>
-				<DetectChar attribute="Raw String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="Raw String Deliminator" char="&quot;" context="#pop"/>
 				<LineContinue attribute="Raw String" context="#stay"/>
 			</context>
 
@@ -911,7 +998,7 @@
 				<DetectIdentifier attribute="F-String"/>
 				<IncludeRules context="stringescape"/>
 				<IncludeRules context="stringinterpolation"/>
-				<DetectChar attribute="F-String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="F-String Deliminator" char="&quot;" context="#pop"/>
 			</context>
 
 			<context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError">
@@ -920,20 +1007,38 @@
 				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/>
 				<Detect2Chars attribute="Raw F-String" char="\" char1="\"/>
 				<IncludeRules context="stringinterpolation"/>
-				<DetectChar attribute="Raw F-String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="Raw F-String Deliminator" char="&quot;" context="#pop"/>
 				<LineContinue attribute="Raw F-String" context="#stay"/>
 			</context>
 
+			<context name="Single Q-T-String" attribute="T-String" lineEndContext="#pop!UnfinishedStringError">
+				<DetectSpaces attribute="T-String"/>
+				<DetectIdentifier attribute="T-String"/>
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="T-String Deliminator" char="&quot;" context="#pop"/>
+			</context>
+
+			<context name="Raw Q-T-String" attribute="Raw T-String" lineEndContext="#pop!UnfinishedStringError">
+				<DetectSpaces attribute="Raw T-String"/>
+				<DetectIdentifier attribute="Raw T-String"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="&quot;"/>
+				<Detect2Chars attribute="Raw T-String" char="\" char1="\"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="Raw T-String Deliminator" char="&quot;" context="#pop"/>
+				<LineContinue attribute="Raw T-String" context="#stay"/>
+			</context>
+
 			<context name="Single Q-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError">
 				<RegExpr attribute="B-String" String="[\x20\x21\x23-\x5B\x5D-\x7E]++"/>
 				<IncludeRules context="bytesescape"/>
-				<DetectChar attribute="B-String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="B-String Deliminator" char="&quot;" context="#pop"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
 
 			<context name="Raw Q-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError">
 				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.)++"/>
-				<DetectChar attribute="Raw B-String" char="&quot;" context="#pop"/>
+				<DetectChar attribute="Raw B-String Deliminator" char="&quot;" context="#pop"/>
 				<LineContinue attribute="Raw B-String" context="#stay"/>
 				<RegExpr attribute="Error" String="."/>
 			</context>
@@ -957,7 +1062,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw A-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw A-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-Regex Capture"/>
-				<StringDetect String="'" attribute="Raw String" context="#pop"/>
+				<StringDetect String="'" attribute="Raw String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexStringCommon"/>
 			</context>
 
@@ -1043,7 +1148,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw Q-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw Q-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-Regex Capture"/>
-				<StringDetect String="&quot;" attribute="Raw String" context="#pop"/>
+				<StringDetect String="&quot;" attribute="Raw String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexStringCommon"/>
 			</context>
 
@@ -1130,7 +1235,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple A-Regex Comment"/>
-				<StringDetect String="'''" attribute="Raw String" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect String="'''" attribute="Raw String Deliminator" context="#pop" endRegion="Triple A-region"/>
 				<IncludeRules context="RegexStringCommon"/>
 			</context>
 
@@ -1223,7 +1328,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-Regex Comment"/>
-				<StringDetect String="&quot;&quot;&quot;" attribute="Raw String" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw String Deliminator" context="#pop" endRegion="Triple Q-region"/>
 				<IncludeRules context="RegexStringCommon"/>
 			</context>
 
@@ -1314,7 +1419,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw A-B-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw A-B-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-B-Regex Capture"/>
-				<StringDetect String="'" attribute="Raw B-String" context="#pop"/>
+				<StringDetect String="'" attribute="Raw B-String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexBStringCommon"/>
 			</context>
 
@@ -1396,7 +1501,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw Q-B-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw Q-B-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-B-Regex Capture"/>
-				<StringDetect String="&quot;" attribute="Raw B-String" context="#pop"/>
+				<StringDetect String="&quot;" attribute="Raw B-String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexBStringCommon"/>
 			</context>
 
@@ -1479,7 +1584,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-B-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-B-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple A-B-Regex Comment"/>
-				<StringDetect String="'''" attribute="Raw B-String" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect String="'''" attribute="Raw B-String Deliminator" context="#pop" endRegion="Triple A-region"/>
 				<IncludeRules context="RegexBStringCommon"/>
 			</context>
 
@@ -1568,7 +1673,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-B-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-B-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-B-Regex Comment"/>
-				<StringDetect String="&quot;&quot;&quot;" attribute="Raw B-String" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw B-String Deliminator" context="#pop" endRegion="Triple Q-region"/>
 				<IncludeRules context="RegexBStringCommon"/>
 			</context>
 
@@ -1657,7 +1762,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw A-F-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw A-F-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw A-F-Regex Capture"/>
-				<StringDetect String="'" attribute="Raw F-String" context="#pop"/>
+				<StringDetect String="'" attribute="Raw F-String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexFStringCommon"/>
 			</context>
 
@@ -1747,7 +1852,7 @@
 				<StringDetect String="[" attribute="Regex Set" context="Raw Q-F-Regex Set"/>
 				<StringDetect String="(?" lookAhead="1" context="Raw Q-F-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Q-F-Regex Capture"/>
-				<StringDetect String="&quot;" attribute="Raw F-String" context="#pop"/>
+				<StringDetect String="&quot;" attribute="Raw F-String Deliminator" context="#pop"/>
 				<IncludeRules context="RegexFStringCommon"/>
 			</context>
 
@@ -1838,7 +1943,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple A-F-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple A-F-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple A-F-Regex Comment"/>
-				<StringDetect String="'''" attribute="Raw F-String" context="#pop" endRegion="Triple A-region"/>
+				<StringDetect String="'''" attribute="Raw F-String Deliminator" context="#pop" endRegion="Triple A-region"/>
 				<IncludeRules context="RegexFStringCommon"/>
 			</context>
 
@@ -1936,7 +2041,7 @@
 				<StringDetect String="(?" lookAhead="1" context="Raw Triple Q-F-Regex Parent"/>
 				<StringDetect String="(" attribute="Regex Capturing" context="Raw Triple Q-F-Regex Capture" beginRegion="RegParent"/>
 				<StringDetect String="#" attribute="Comment" context="Raw Triple Q-F-Regex Comment"/>
-				<StringDetect String="&quot;&quot;&quot;" attribute="Raw F-String" context="#pop" endRegion="Triple Q-region"/>
+				<StringDetect String="&quot;&quot;&quot;" attribute="Raw F-String Deliminator" context="#pop" endRegion="Triple Q-region"/>
 				<IncludeRules context="RegexFStringCommon"/>
 			</context>
 
@@ -2225,7 +2330,7 @@
 			</context>
 			<context name="RegexEscapeSpecialCommon" attribute="Raw String" lineEndContext="#pop">
 				<!-- regex package support: \K \m \M \G \X \L<name> -->
-				<RegExpr String="\\[ABdDsSwWZKmMGX]|\\L&lt;([_[:alpha:]]\w*)?>" attribute="Regex Special" context="#pop"/>
+				<RegExpr String="\\[ABdDsSwWzZKmMGX]|\\L&lt;([_[:alpha:]]\w*)?>" attribute="Regex Special" context="#pop"/>
 			</context>
 
 		</contexts>
@@ -2249,14 +2354,32 @@
 			<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>
 			<itemData name="Complex" defStyleNum="dsOthers" spellChecking="false"/>
 			<itemData name="Comment" defStyleNum="dsComment"/>
+
+			<!-- String -->
+			<itemData name="String Deliminator" defStyleNum="dsString" spellChecking="false"/>
 			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String Deliminator" defStyleNum="dsVerbatimString" spellChecking="false"/>
 			<itemData name="Raw String" defStyleNum="dsVerbatimString"/>
+			<!-- f-string -->
+			<itemData name="F-String Deliminator" defStyleNum="dsSpecialString" spellChecking="false"/>
 			<itemData name="F-String" defStyleNum="dsSpecialString"/>
+			<itemData name="Raw F-String Deliminator" defStyleNum="dsVerbatimString" spellChecking="false"/>
 			<itemData name="Raw F-String" defStyleNum="dsVerbatimString"/>
+			<!-- b-string -->
+			<itemData name="B-String Deliminator" defStyleNum="dsString" spellChecking="false"/>
 			<itemData name="B-String" defStyleNum="dsString" spellChecking="false"/>
+			<itemData name="Raw B-String Deliminator" defStyleNum="dsVerbatimString" spellChecking="false"/>
 			<itemData name="Raw B-String" defStyleNum="dsVerbatimString" spellChecking="false"/>
+			<!-- t-string -->
+			<itemData name="T-String Deliminator" defStyleNum="dsSpecialString" spellChecking="false"/>
+			<itemData name="T-String" defStyleNum="dsSpecialString"/>
+			<itemData name="Raw T-String Deliminator" defStyleNum="dsVerbatimString" spellChecking="false"/>
+			<itemData name="Raw T-String" defStyleNum="dsVerbatimString"/>
+
+			<!-- Char -->
 			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>
 			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>
+			<!-- Other -->
 			<itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/>
 			<itemData name="Error" defStyleNum="dsError"/>
 			<!-- Regex -->
diff --git a/xml/racket.xml b/xml/racket.xml
--- a/xml/racket.xml
+++ b/xml/racket.xml
@@ -26,15 +26,12 @@
       <item>&gt;=</item>
       <item>&gt;</item>
       <item>-</item>
-      <item>/</item>
       <item>+</item>
       <item>!</item>
       <item>$</item>
       <item>%</item>
       <item>*</item>
       <item>/</item>
-      <item>=</item>
-      <item>></item>
       <item>?</item>
       <item>^</item>
       <item>_</item>
@@ -86,13 +83,7 @@
       <item>rs</item>
       <item>us</item>
       <item>sp</item>
-      <item>nl</item>
-      <item>ht</item>
-      <item>bs</item>
-      <item>cr</item>
-      <item>np</item>
       <item>null</item>
-      <item>nul</item>
     </list>
     <list name="defines">
       <item>define</item>
@@ -369,7 +360,6 @@
       <item>error?</item>
       <item>eval</item>
       <item>even?</item>
-      <item>exact-&gt;inexact</item>
       <item>exact->inexact</item>
       <item>exact-integer-sqrt</item>
       <item>exact</item>
@@ -630,7 +620,6 @@
       <item>not</item>
       <item>null-environment</item>
       <item>null?</item>
-      <item>number-&gt;string</item>
       <item>number->string</item>
       <item>number?</item>
       <item>numerator</item>
diff --git a/xml/raku.xml b/xml/raku.xml
--- a/xml/raku.xml
+++ b/xml/raku.xml
@@ -324,7 +324,6 @@
       <item>IO</item>
       <item>Int</item>
       <item>Junction</item>
-      <item>Bag</item>
       <item>List</item>
       <item>Macro</item>
       <item>Match</item>
@@ -368,7 +367,6 @@
       <item>uint16</item>
       <item>uint32</item>
       <item>uint64</item>
-      <item>uint</item>
       <item>utf8</item>
       <item>utf16</item>
       <item>utf32</item>
diff --git a/xml/rhtml.xml b/xml/rhtml.xml
--- a/xml/rhtml.xml
+++ b/xml/rhtml.xml
@@ -44,7 +44,7 @@
 -->
 	
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
-<language name="Ruby/Rails/RHTML" version="16" kateversion="5.79" section="Markup" extensions="*.rhtml;*.RHTML;*.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+" priority="1">
+<language name="Ruby/Rails/RHTML" version="17" kateversion="5.79" section="Markup" extensions="*.rhtml;*.RHTML;*.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+" priority="1">
 	
 	<highlighting>
 	
@@ -171,7 +171,6 @@
 			<item>readlines</item>
 			<item>require</item>
 			<item>scan</item>
-			<item>select</item>
 			<item>set_trace_func</item>
 			<item>sleep</item>
 			<item>split</item>
@@ -373,14 +372,12 @@
 				<StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
 				<IncludeRules context="##Comments" />
 				<DetectIdentifier/>
-				<RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
 			</context>
 			
 			<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
 				<DetectSpaces/>
 				<DetectIdentifier/>
 				<StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
-				<StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
 			</context>
 			
 			<context name="PI" attribute="Normal Text" lineEndContext="#stay">
@@ -420,71 +417,57 @@
 				<IncludeRules context="FindPEntityRefs" />
 			</context>
 			
-			<context name="El Open" attribute="Normal Text" lineEndContext="#stay">
+			<context name="El Open" attribute="Error" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
 				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
 				<DetectChar attribute="Element" context="#pop" char="&gt;" />
 				<IncludeRules context="FindAttributes" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
+				<DetectSpaces attribute="Normal Text"/>
 			</context>
 			
-			<context name="El Close" attribute="Normal Text" lineEndContext="#stay">
+			<context name="El Close" attribute="Error" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
 				<DetectChar attribute="Element" context="#pop" char="&gt;" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
-			</context>
-			
-			<context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
-				<IncludeRules context="find-rubysource" />
-				
-				<DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
-			</context>
-			
-			<context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
-				<IncludeRules context="find-rubysource" />
-				
-				<DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
+				<DetectSpaces attribute="Normal Text"/>
 			</context>
 			
-			<context name="CSS" attribute="Normal Text" lineEndContext="#stay">
+			<context name="CSS" attribute="Error" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
 				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
 				<DetectChar attribute="Element" context="CSS content" char="&gt;" />
 				<IncludeRules context="FindAttributes" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
+				<DetectSpaces attribute="Normal Text"/>
 			</context>
 			
 			<context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
-				<WordDetect attribute="Element" context="El Close 2" String="&lt;/style" insensitive="true" endRegion="style" />
+				<WordDetect attribute="Element" context="#pop#pop!El Close" String="&lt;/style" insensitive="true" endRegion="style" />
 				<IncludeRules context="##CSS" includeAttrib="true"/>
 			</context>
 			
-			<context name="JS" attribute="Normal Text" lineEndContext="#stay">
+			<context name="JS" attribute="Error" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
 				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
 				<DetectChar attribute="Element" context="JS content" char="&gt;" />
 				<IncludeRules context="FindAttributes" />
-				<RegExpr attribute="Error" context="#stay" String="\S" />
+				<DetectSpaces attribute="Normal Text"/>
 			</context>
 			
 			<context name="JS content" attribute="Normal Text" lineEndContext="#stay">
 				<IncludeRules context="find-rubysource" />
 				
-				<WordDetect attribute="Element" context="El Close 2" String="&lt;/script" insensitive="true" endRegion="script" />
+				<WordDetect attribute="Element" context="#pop#pop!El Close" String="&lt;/script" insensitive="true" endRegion="script" />
 				<RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
 				<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
 			</context>
 			
 			<context name="JS comment close" attribute="Comment" lineEndContext="#pop">
-				<RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+				<RegExpr attribute="Element" context="#pop#pop#pop!El Close" String="&lt;/script\b" insensitive="true" endRegion="script" />
 				<IncludeRules context="##Comments" />
 			</context>
 			
diff --git a/xml/ruby.xml b/xml/ruby.xml
--- a/xml/ruby.xml
+++ b/xml/ruby.xml
@@ -21,6 +21,7 @@
 		<!-- https://docs.ruby-lang.org/en/master/globals_rdoc.html -->
 		<!-- $= $, $; are deprecated -->
 		<!ENTITY global_var "\$([!@~&amp;`'+/\\&lt;>._*$?:&quot;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)">
+		<!ENTITY named_global_var "\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)">
 
 		<!-- without ? : % / < = -->
 		<!ENTITY safe_op "(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)">
@@ -29,10 +30,11 @@
 		<!-- / spaces -->
 		<!-- % which is not gld -->
 		<!-- << which is not heredoc -->
+		<!-- / or % not preceded with [ -->
 		<!-- nospace / -->
 		<!-- nospace % -->
 		<!-- nospace << -->
-		<!ENTITY op2 "&safe_op;++|[?:](?=\s|$)|([/&#37;]|&lt;&lt;)(?=[\s=]|$)|&#37;(?!&percent_lit;)|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;!\s)([/&#37;]|&lt;&lt;)&safe_op;*+">
+		<!ENTITY op2 "&safe_op;++|[?:](?=\s|$)|([/&#37;]|&lt;&lt;)(?=[\s=]|$)|&#37;(?!&percent_lit;)|&lt;&lt;(?=\s|$|[^-~\w'&quot;`]|[-~][^\w'&quot;`])|(?&lt;![\[\s])([/&#37;]|&lt;&lt;)&safe_op;*+">
 
 		<!ENTITY sym_op "\[\]=?|[-+~]@?|![=~@]?|[/&#37;|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?">
 		<!ENTITY symbol "&ident;[=?!]?:(?!:)|\[\]=?:">
@@ -114,7 +116,7 @@
 -->
 
 <language name="Ruby" alternativeNames="RB;JRuby" section="Scripts"
-	  version="20" kateversion="5.79"
+	  version="21" kateversion="5.79"
 	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"
 	  mimetype="application/x-ruby"
 	  style="ruby" indenter="ruby"
@@ -333,6 +335,15 @@
 
 				<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='"' 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="&ident_not_kw;" context="MsgParamOrOp2"/>
 
 				<!-- Detects key symbol in a hash
@@ -519,8 +530,8 @@
 				<keyword attribute="Definition" String="definitions"/>
 
 				<!-- Generally a module or class name like "File", "MyModule_1", .. -->
-				<RegExpr attribute="Constant" String="&constant;" context="Op1"/>
-				<RegExpr attribute="Global Constant" String="&global_constant;" context="Op1"/>
+				<RegExpr attribute="Constant" String="&constant;" context="ExprSubClass"/>
+				<RegExpr attribute="Global Constant" String="&global_constant;" context="ExprSubClass"/>
 
 				<RegExpr attribute="Symbol" String=":((@@?|\$)&ident;|&ident;([?]|!(?!=)|=(?![=>~]))?|&sym_op;|(?=['&quot;])|&global_var;)" context="Op1"/>
 
@@ -619,18 +630,32 @@
 
 			<context name="Var" attribute="Normal Text" lineEndContext="#pop#pop">
 				<!-- (global) vars starting with $ -->
-				<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="Global Variable" String="&named_global_var;" context="#pop!Op1"/>
 				<!-- special-character globals and other predefined variables -->
 				<RegExpr attribute="Default globals" String="&global_var;" context="#pop!Op1"/>
 				<DetectChar attribute="Error" char="$" context="#pop!Op1"/>
 			</context>
 
+			<context name="VarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop">
+				<!-- (global) vars starting with $ -->
+				<RegExpr attribute="Global Variable" String="&named_global_var;" context="#pop!MsgParamOrOp2"/>
+				<!-- special-character globals and other predefined variables -->
+				<RegExpr attribute="Default globals" String="&global_var;" context="#pop!MsgParamOrOp2"/>
+				<DetectChar attribute="Error" char="$" context="#pop!MsgParamOrOp2"/>
+			</context>
+
 			<context name="AtVar" attribute="Normal Text" lineEndContext="#pop#pop">
 				<RegExpr attribute="Instance Variable" String="@&ident;" context="#pop!Op1"/>
 				<RegExpr attribute="Class Variable" String="@@&ident;" context="#pop!Op1"/>
-				<DetectChar attribute="Error" char="@"/>
+				<DetectChar attribute="Error" char="@" context="#pop!Op1"/>
 			</context>
 
+			<context name="AtVarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop">
+				<RegExpr attribute="Instance Variable" String="@&ident;" context="#pop!MsgParamOrOp2"/>
+				<RegExpr attribute="Class Variable" String="@@&ident;" context="#pop!MsgParamOrOp2"/>
+				<DetectChar attribute="Error" char="@" context="#pop!MsgParamOrOp2"/>
+			</context>
+
 			<!-- def foo() block-statement
 			         ~~~ any ident (including keyword)
 
@@ -796,19 +821,29 @@
 			<context name="MemberAccess" attribute="Member" fallthroughContext="#pop!Op1">
 				<DetectSpaces attribute="Normal Text"/>
 				<!-- marks a message (being sent, not defined) -->
-				<RegExpr attribute="Message" String="&msg;" context="#pop!Op1"/>
-				<RegExpr attribute="Constant" String="&constant;" context="#pop!Op1"/>
-				<RegExpr attribute="Constant Value" String="&global_constant;" context="#pop!Op1"/>
+				<RegExpr attribute="Message" String="&msg;" context="SubClass"/>
+				<RegExpr attribute="Constant" String="&constant;" context="SubClass"/>
+				<RegExpr attribute="Constant Value" String="&global_constant;" context="SubClass"/>
 				<RegExpr attribute="Operator" String="&sym_op;" context="#pop"/>
 			</context>
+			<context name="SubClass" attribute="Normal Text" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop">
+				<StringDetect attribute="Operator" String="::" context="#pop"/>
+			</context>
 
+			<context name="ExprSubClass" attribute="Normal Text" fallthroughContext="#pop!Op1" lineEndContext="#pop">
+				<StringDetect attribute="Operator" String="::" context="#pop!MemberAccess"/>
+			</context>
+
 			<context name="MemberAccessCall" attribute="Member" fallthroughContext="#pop">
 				<DetectSpaces attribute="Normal Text"/>
 				<!-- marks a message (being sent, not defined) -->
-				<RegExpr attribute="Message" String="&msg;" context="#pop"/>
-				<RegExpr attribute="Constant" String="&constant;" context="#pop"/>
-				<RegExpr attribute="Constant Value" String="&global_constant;" context="#pop"/>
+				<RegExpr attribute="Message" String="&msg;" context="SubClassCall"/>
+				<RegExpr attribute="Constant" String="&constant;" context="SubClassCall"/>
+				<RegExpr attribute="Constant Value" String="&global_constant;" context="SubClassCall"/>
 				<RegExpr attribute="Operator" String="&sym_op;" context="#pop"/>
+			</context>
+			<context name="SubClassCall" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<StringDetect attribute="Operator" String="::" context="#pop"/>
 			</context>
 
 			<context name="General Comment" attribute="Comment" lineEndContext="#pop">
diff --git a/xml/scheme.xml b/xml/scheme.xml
--- a/xml/scheme.xml
+++ b/xml/scheme.xml
@@ -11,13 +11,15 @@
   <!ENTITY initial "(?:[&initial_ascii_set;]|&initial_others;)">
   <!ENTITY subsequent "(?:[&initial_ascii_set;0-9-@.+\p{Nd}\p{Mc}\p{Me}]|&initial_others;)">
   <!ENTITY symbol "(?:&initial;&subsequent;*+)">
+
+  <!ENTITY funcname "\s*[A-Za-z0-9-!$&#37;&quot;*/:&lt;=>?~_^+.@]+\s*">
 ]>
 <!--
   https://www.scheme.com/tspl4/
   https://www.gnu.org/software/kawa/Syntax.html
   https://www.gnu.org/software/guile/manual/html_node/Scheme-Syntax.html
 -->
-<language version="12" kateversion="5.79" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile;*.chicken;*.meta" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
+<language version="14" kateversion="5.79" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile;*.chicken;*.meta" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
   <highlighting>
     <list name="operators">
       <item>&lt;=</item>
@@ -86,13 +88,7 @@
       <item>rs</item>
       <item>us</item>
       <item>sp</item>
-      <item>nl</item>
-      <item>ht</item>
-      <item>bs</item>
-      <item>cr</item>
-      <item>np</item>
       <item>null</item>
-      <item>nul</item>
     </list>
     <list name="defines">
       <item>define</item>
@@ -361,7 +357,6 @@
       <item>error?</item>
       <item>eval</item>
       <item>even?</item>
-      <item>exact-&gt;inexact</item>
       <item>exact->inexact</item>
       <item>exact-integer-sqrt</item>
       <item>exact</item>
@@ -621,7 +616,6 @@
       <item>not</item>
       <item>null-environment</item>
       <item>null?</item>
-      <item>number-&gt;string</item>
       <item>number->string</item>
       <item>number?</item>
       <item>numerator</item>
@@ -805,10 +799,10 @@
         <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
         <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
         <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel0"/>
       </context>
 
-      <context name="Default" attribute="Normal" lineEndContext="#stay">
+      <context name="DefaultPre" attribute="Normal" lineEndContext="#stay">
         <DetectSpaces/>
         <DetectChar attribute="Comment" context="hash" char="#" lookAhead="1"/>
         <DetectChar attribute="Comment" context="semicolon" char=";" lookAhead="1"/>
@@ -816,7 +810,9 @@
         <Detect2Chars attribute="String" context="Template" char="&amp;" char1="{"/>
         <AnyChar attribute="Other Brackets" context="#stay" String="{}[]"/>
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword attribute="Definition" context="function_decl" String="defines"/>
+      </context>
+
+      <context name="DefaultPost" attribute="Normal" lineEndContext="#stay">
         <keyword attribute="Operator" context="#stay" String="operators"/>
         <RegExpr attribute="Normal" context="#stay" String="&symbol;"/>
         <!-- s, f, d, l are extensions of Kawa -->
@@ -824,7 +820,38 @@
         <Int attribute="Decimal" context="#stay"/>
       </context>
 
+      <context name="DefaultLevel0" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level0" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
+      <context name="DefaultLevel1" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level1" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
+      <context name="DefaultLevel2" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level2" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
+      <context name="DefaultLevel3" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level3" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
+      <context name="DefaultLevel4" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level4" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
+      <context name="DefaultLevel5" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="DefaultPre"/>
+        <keyword attribute="Definition" context="function_decl_level5" String="defines"/>
+        <IncludeRules context="DefaultPost"/>
+      </context>
 
+
       <context name="Template" attribute="String" lineEndContext="#stay">
         <DetectSpaces/>
         <DetectIdentifier/>
@@ -908,12 +935,12 @@
       <context name="XMLTagExpr1" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets1" context="Level1" char="("/>
         <DetectChar attribute="XML Tag" context="#pop!XMLTag" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel0"/>
       </context>
       <context name="XMLTagExpr2" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets1" context="Level1" char="("/>
         <DetectChar attribute="XML Tag" context="#pop!XMLTag" char="}"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel0"/>
       </context>
 
       <context name="XMLTag" attribute="XML Attribute" lineEndContext="#stay">
@@ -978,12 +1005,12 @@
       <context name="XMLEnclosedExpr1" attribute="Normal" lineEndContext="#pop">
         <DetectChar attribute="Brackets2" context="Level2" char="("/>
         <DetectChar attribute="Brackets1" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel1"/>
       </context>
       <context name="XMLEnclosedExpr2" attribute="Normal" lineEndContext="#pop">
         <DetectChar attribute="Brackets2" context="Level2" char="("/>
         <DetectChar attribute="Brackets1" context="#pop" char="}"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel1"/>
       </context>
 
       <context name="XMLProc" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="XMLProcAttrs">
@@ -998,9 +1025,9 @@
         <DetectIdentifier/>
         <Detect2Chars attribute="XML Comment" context="XMLCommentCheck" char="-" char1="-" lookAhead="1"/>
       </context>
-      <context name="XMLCommentCheck" attribute="Comment" lineEndContext="#stay">
+      <context name="XMLCommentCheck" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop">
         <StringDetect attribute="XML Tag" context="#pop#pop" String="-->"/>
-        <Detect2Chars attribute="XML Error" context="#pop" char="-" char1="-"/>
+        <DetectChar attribute="XML Error" char="-"/>
       </context>
 
       <context name="XMLCDATA" attribute="XML CDATA" lineEndContext="#stay">
@@ -1297,11 +1324,100 @@
       </context>
 
 
+      <!--
+      (define (f x y)
+        (+ x y))
+      # procedures that return procedures
+      (define ((f x) y)
+        (+ x y))
+      -->
+      <context name="procedure_level1" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level1">
+        <DetectChar context="#pop!procedure_param1" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param1" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+      <context name="procedure_level2" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level2">
+        <DetectChar context="#pop!procedure_param2" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param2" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+      <context name="procedure_level3" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level3">
+        <DetectChar context="#pop!procedure_param3" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param3" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+      <context name="procedure_level4" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level4">
+        <DetectChar context="#pop!procedure_param4" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param4" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+      <context name="procedure_level5" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level5">
+        <DetectChar context="#pop!procedure_param5" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param5" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+      <context name="procedure_level6" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop!Level6">
+        <DetectChar context="#pop!procedure_param6" char="(" lookAhead="1"/>
+        <RegExpr attribute="Function" context="#pop!procedure_param6" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
+      </context>
+
+      <context name="procedure_param1" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets2" context="procedure_level2" char="("/>
+        <IncludeRules context="Level1"/>
+      </context>
+      <context name="procedure_param2" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets3" context="procedure_level3" char="("/>
+        <IncludeRules context="Level2"/>
+      </context>
+      <context name="procedure_param3" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets4" context="procedure_level4" char="("/>
+        <IncludeRules context="Level3"/>
+      </context>
+      <context name="procedure_param4" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets5" context="procedure_level5" char="("/>
+        <IncludeRules context="Level4"/>
+      </context>
+      <context name="procedure_param5" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets6" context="procedure_level6" char="("/>
+        <IncludeRules context="Level5"/>
+      </context>
+      <context name="procedure_param6" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets1" context="procedure_level1" char="("/>
+        <IncludeRules context="Level6"/>
+      </context>
+
       <context name="function_decl" attribute="Function" lineEndContext="#stay">
-        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-!$%&quot;*/:&lt;=>?~_^+.@]*\s*"/>
+        <RegExpr attribute="Function" context="#pop" String="&funcname;"/>
+        <DetectSpaces attribute="Function"/>
       </context>
 
+      <context name="function_decl_level0" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets1" context="#pop!procedure_level1" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
+      <context name="function_decl_level1" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets2" context="#pop!procedure_level2" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
+      <context name="function_decl_level2" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets3" context="#pop!procedure_level3" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
+      <context name="function_decl_level3" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets4" context="#pop!procedure_level4" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
+      <context name="function_decl_level4" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets5" context="#pop!procedure_level5" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
+      <context name="function_decl_level5" attribute="Function" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar attribute="Brackets6" context="#pop!procedure_level6" char="("/>
+        <IncludeRules context="function_decl"/>
+      </context>
 
+
       <context name="Level1" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets2" context="Level2" char="("/>
         <Detect2Chars attribute="Brackets2" context="Level2" char="'" char1="("/>
@@ -1309,7 +1425,7 @@
         <Detect2Chars attribute="Brackets2" context="Level2" char="#" char1="("/>
         <Detect2Chars attribute="Brackets2" context="Level2" char="@" char1="("/>
         <DetectChar attribute="Brackets1" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel1"/>
       </context>
       <context name="Level2" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets3" context="Level3" char="("/>
@@ -1318,7 +1434,7 @@
         <Detect2Chars attribute="Brackets3" context="Level3" char="#" char1="("/>
         <Detect2Chars attribute="Brackets3" context="Level3" char="@" char1="("/>
         <DetectChar attribute="Brackets2" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel2"/>
       </context>
       <context name="Level3" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets4" context="Level4" char="("/>
@@ -1327,7 +1443,7 @@
         <Detect2Chars attribute="Brackets4" context="Level4" char="#" char1="("/>
         <Detect2Chars attribute="Brackets4" context="Level4" char="@" char1="("/>
         <DetectChar attribute="Brackets3" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel3"/>
       </context>
       <context name="Level4" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets5" context="Level5" char="("/>
@@ -1336,7 +1452,7 @@
         <Detect2Chars attribute="Brackets5" context="Level5" char="#" char1="("/>
         <Detect2Chars attribute="Brackets5" context="Level5" char="@" char1="("/>
         <DetectChar attribute="Brackets4" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel4"/>
       </context>
       <context name="Level5" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Brackets6" context="Level6" char="("/>
@@ -1345,16 +1461,11 @@
         <Detect2Chars attribute="Brackets6" context="Level6" char="#" char1="("/>
         <Detect2Chars attribute="Brackets6" context="Level6" char="@" char1="("/>
         <DetectChar attribute="Brackets5" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="DefaultLevel5"/>
       </context>
       <context name="Level6" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets1" context="Level1" char="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
         <DetectChar attribute="Brackets6" context="#pop" char=")"/>
-        <IncludeRules context="Default"/>
+        <IncludeRules context="Level0"/>
       </context>
     </contexts>
     <itemDatas>
diff --git a/xml/sed.xml b/xml/sed.xml
--- a/xml/sed.xml
+++ b/xml/sed.xml
@@ -1,259 +1,441 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language>
-<language name="sed" section="Scripts" version="8" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">
-        <highlighting>
-                <contexts>
-                        <context name="BeginningOfLine" attribute="Normal" lineEndContext="#stay">
-                                <DetectSpaces/>
-                                <DetectChar char="#"     attribute="Comment"     context="Comment"/>
-                                <RegExpr String="(?|(/)|\\(\S))" attribute="Separator"   context="FirstAddressRegex"/>
-                                <Int                     attribute="Line Number" context="AfterFirstAddress"/>
-                                <DetectChar char="$"     attribute="Last Line"   context="AfterFirstAddress"/>
-                                <DetectChar char="}"     attribute="Brace"       context="AfterCommand"/>
-                                <DetectChar char=":"     attribute="Label"       context="Label"/>
-                                <DetectChar char="!"     attribute="Negation"    context="Command"/>
-                                <IncludeRules                                    context="Command"/>
-                        </context>
+<!DOCTYPE language[
+  <!ENTITY literal_escape "\\([afnrtv\\]|c[0-9a-zA-Z]|x[0-9a-fA-F]{1,2}|d[0-9]{1,3}|o[0-7]{1,3})">
+]>
+<language name="sed" section="Scripts" version="9" kateversion="5.79" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com);Jonathan Poelen (jonathan.poelen@gmail.com)" license="GPL">
+<highlighting>
+<contexts>
+  <!--
+  reference:
+    $ man sed
+    $ info sed
+  -->
+  <context name="BeginningOfLine" attribute="Normal" fallthroughContext="Error">
+    <IncludeRules context="Start"/>
+    <IncludeRules context="FindCommand"/>
+  </context>
 
-                        <context name="FirstAddressRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1" attribute="Regex Escape" context="#stay"             dynamic="true"/>
-                                <StringDetect String="%1"   attribute="Separator"    context="AfterFirstAddress" dynamic="true"/>
-                                <IncludeRules                                   context="Regex"/>
-                        </context>
+  <!--
+    Context to be used in other <IncludeRules> syntaxes,
+    because the FindCommand in BeginningOfLine makes an extra #pop,
+    but it avoids context switch
+  -->
+  <context name="Start" attribute="Normal" fallthroughContext="Command">
+    <DetectSpaces/>
+    <DetectChar char="#"  attribute="Comment"   context="Comment"/>
+    <!-- N -->
+    <!-- N~N -->
+    <!-- N,N -->
+    <!-- N,+N -->
+    <!-- N,~N -->
+    <Int                  attribute="Line Number" context="FirstNumberAddress"/>
+    <!--  /<regex>/ -->
+    <!-- \C<regex>C -->
+    <RegExpr String="(?|(/)|\\([\t -~]))" attribute="Separator" context="FirstAddressRegex"/>
+    <DetectChar char="$"  attribute="Last Line" context="AfterFirstAddress"/>
+    <DetectChar char="}"  attribute="Brace"     context="AfterCommand" endRegion="block"/>
+    <DetectChar char=":"  attribute="Label"     context="Label"/>
+    <DetectChar char="!"  attribute="Negation"  context="Command"/>
+    <DetectChar char=";"  attribute="Normal"/>
+  </context>
 
-                        <context name="AfterFirstAddress" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <DetectChar char="!" attribute="Negation" context="Command"/>
-                                <IncludeRules                             context="AfterFirstAddress2"/>
-                        </context>
 
-                        <context name="AfterFirstAddress2" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectChar char="," attribute="Normal" context="SecondAddress"/>
-                                <DetectChar char="~" attribute="Normal" context="Step"/>
-                                <IncludeRules                           context="Command"/>
-                        </context>
+  <!--
+    N
+     ^
+  -->
+  <context name="FirstNumberAddress" attribute="Regex" lineEndContext="#pop" fallthroughContext="#pop!Command">
+    <DetectChar char="~" attribute="Normal"   context="Step"/>
+    <DetectChar char="!" attribute="Negation" context="#pop!Command"/>
+    <DetectChar char="," attribute="Normal"   context="SecondNumberAddress"/>
+    <DetectSpaces/>
+  </context>
 
-                        <context name="SecondAddress" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <RegExpr String="(?|(/)|\\(\S))" attribute="Separator"   context="SecondAddressRegex"/>
-                                <Int                     attribute="Line Number" context="AfterSecondAddress"/>
-                                <DetectChar char="$"     attribute="Last Line"   context="AfterSecondAddress"/>
-                                <RegExpr String="\S"     attribute="Error"       context="Error"/>
-                        </context>
+  <!--
+     N~N
+    N,~N
+    N,+N
+       ^
+  -->
+  <context name="Step" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Error">
+    <DetectSpaces/>
+    <Int attribute="Step" context="#pop#pop!Command"/>
+  </context>
 
-                        <context name="SecondAddressRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1" attribute="Regex Escape" context="#stay"              dynamic="true"/>
-                                <StringDetect String="%1"   attribute="Separator"    context="AfterSecondAddress" dynamic="true"/>
-                                <IncludeRules                                   context="Regex"/>
-                        </context>
+  <!--
+    N,
+      ^
+  -->
+  <context name="SecondNumberAddress" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Error">
+    <AnyChar String="+~" attribute="Normal" context="#pop!Step"/>
+    <IncludeRules context="SecondAddress"/>
+  </context>
 
-                        <context name="AfterSecondAddress" attribute="Normal" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <DetectChar char="!" attribute="Negation" context="Command"/>
-                                <IncludeRules                             context="Command"/>
-                        </context>
 
-                        <context name="Step" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <Int                 attribute="Step"  context="Command"/>
-                                <RegExpr String="\S" attribute="Error" context="Error"/>
-                        </context>
+  <!--
+    \C<regex>C
+     /<regex>/
+      ^
+  -->
+  <context name="FirstAddressRegex" attribute="Regex" lineEndContext="#pop">
+    <StringDetect String="\%1" dynamic="1" attribute="Regex Escape"/>
+    <DetectChar     char="1"   dynamic="1" attribute="Separator"    context="#pop!AfterFirstAddress"/>
+    <IncludeRules context="Regex"/>
+  </context>
 
-                        <context name="Command" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <DetectChar char="s"              attribute="Command" context="SCommand"/>
-                                <DetectChar char="y"              attribute="Command" context="YCommand"/>
-                                <AnyChar String="dpnDNPhHgGxFvz=" attribute="Command" context="AfterCommand"/>
-                                <AnyChar String="aic"             attribute="Command" context="AICCommand"/>
-                                <AnyChar String="bTt"             attribute="Command" context="BTCommand"/>
-                                <AnyChar String="WwrR"            attribute="Command" context="WRCommand"/>
-                                <AnyChar String="lL"              attribute="Command" context="LCommand"/>
-                                <AnyChar String="qQ"              attribute="Command" context="QCommand"/>
-                                <DetectChar char="{"              attribute="Brace"   context="BeginningOfLine"/>
-                                <RegExpr String="\S"              attribute="Error"   context="Error"/>
-                        </context>
+  <!--
+    addr
+        ^
+  -->
+  <context name="AfterFirstAddress" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop!Command">
+    <DetectChar char="!" attribute="Negation" context="#pop!Command"/>
+    <DetectChar char="," attribute="Normal"   context="SecondAddress"/>
+    <DetectSpaces/>
+  </context>
 
-                        <context name="SCommand" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <RegExpr String="(\S)" attribute="Separator" context="SRegex"/>
-                        </context>
+  <!--
+    addr,
+         ^
+  -->
+  <context name="SecondAddress" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Error">
+    <DetectChar char="$" attribute="Last Line"   context="AfterSecondAddress"/>
+    <Int                 attribute="Line Number" context="AfterSecondAddress"/>
+    <DetectSpaces/>
+    <RegExpr String="(?|(/)|\\([\t -~]))" attribute="Separator" context="SecondAddressRegex"/>
+  </context>
 
-                        <context name="SRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1" attribute="Regex Escape" context="#stay"        dynamic="true"/>
-                                <RegExpr String="(%1)" attribute="Separator"    context="SReplacement" dynamic="true"/>
-                                <IncludeRules                                   context="Regex"/>
-                        </context>
+  <!--
+    addr,\C<regex>C
+     addr,/<regex>/
+           ^
+  -->
+  <context name="SecondAddressRegex" attribute="Regex" lineEndContext="Error">
+    <StringDetect String="\%1" dynamic="1" attribute="Regex Escape"/>
+    <StringDetect String="%1"  dynamic="1" attribute="Separator"    context="#pop!AfterSecondAddress"/>
+    <IncludeRules context="Regex"/>
+  </context>
 
-                        <context name="SReplacement" attribute="Replacement" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1"                attribute="Repl Escape" context="#stay"  dynamic="true"/>
-                                <StringDetect String="%1"                  attribute="Separator"   context="SFlags" dynamic="true"/>
-                                <RegExpr String="\\[0-9LlUuE\\&amp;]" attribute="Repl Escape" context="#stay"/>
-                                <DetectChar char="&amp;"              attribute="Repl Escape" context="#stay"/>
-                        </context>
+  <!--
+    addr,addr
+             ^
+  -->
+  <context name="AfterSecondAddress" attribute="Normal" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop!Command">
+    <DetectChar char="!" attribute="Negation" context="#pop#pop#pop!Command"/>
+    <DetectSpaces/>
+  </context>
 
-                        <context name="SFlags" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <AnyChar String="gpeIiMm" attribute="Flag"        context="#stay"/>
-                                <DetectChar char="w"      attribute="Flag"        context="WFlag"/>
-                                <Int                      attribute="Repl Number" context="#stay"/>
-                                <IncludeRules                                     context="AfterCommand"/>
-                        </context>
 
-                        <context name="WFlag" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <RegExpr String="\S+" attribute="Filename" context="SFlags"/>
-                        </context>
+  <context name="Command" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop!Error">
+    <DetectSpaces/>
+    <IncludeRules context="FindCommand"/>
+  </context>
+  <context name="FindCommand" attribute="Normal">
+    <DetectChar char="s"        attribute="Command" context="SCommand"/>
+    <DetectChar char="y"        attribute="Command" context="YCommand"/>
+    <AnyChar String="dpnDNPhHgGxFvz=" attribute="Command" context="#pop!AfterCommand"/>
+    <AnyChar String="aic"       attribute="Command" context="AICCommand"/>
+    <AnyChar String="bTt"       attribute="Command" context="#pop!Label"/>
+    <AnyChar String="WwrR"      attribute="Command" context="WRCommand"/>
+    <AnyChar String="lL"        attribute="Command" context="LCommand"/>
+    <AnyChar String="qQ"        attribute="Command" context="QCommand"/>
+    <DetectChar char="{"        attribute="Brace"   context="#pop" beginRegion="block"/>
+    <DetectChar char="e"        attribute="Command" context="ECommand"/>
+  </context>
 
-                        <context name="YCommand" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <RegExpr String="(\S)" attribute="Separator" context="YSourceList"/>
-                        </context>
 
-                        <context name="YSourceList" attribute="Char List" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1"           attribute="Char List Escape" context="#stay"     dynamic="true"/>
-                                <RegExpr String="(%1)"           attribute="Separator"        context="YDestList" dynamic="true"/>
-                                <Detect2Chars char="\" char1="n" attribute="Char List Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="\" attribute="Char List Escape" context="#stay"/>
-                        </context>
+  <!--
+    s/regex/rep/
+     ^
+  -->
+  <context name="SCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Error">
+    <RegExpr String="([\t -~])" attribute="Separator" context="SRegex"/>
+  </context>
 
-                        <context name="YDestList" attribute="Char List" lineEndContext="Error" dynamic="true">
-                                <DetectSpaces/>
-                                <StringDetect String="\%1"           attribute="Char List Escape" context="#stay"        dynamic="true"/>
-                                <StringDetect String="%1"             attribute="Separator"        context="AfterCommand" dynamic="true"/>
-                                <Detect2Chars char="\" char1="n" attribute="Char List Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="\" attribute="Char List Escape" context="#stay"/>
-                        </context>
+  <!--
+    s/regex/rep/
+      ^
+  -->
+  <context name="SRegex" attribute="Regex" lineEndContext="#pop#pop#pop">
+    <StringDetect String="\%1" dynamic="1" attribute="Regex Escape"/>
+    <!-- Avoid a dynamic regex for performance reasons -->
+    <DetectChar     char="1"   dynamic="1" lookAhead="1" context="SRegexSep"/>
+    <IncludeRules context="Regex"/>
+  </context>
 
-                        <context name="AICCommand" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <LineContinue             attribute="Line Continue" context="LiteralText"/>
-                                <RegExpr      String="\S" attribute="Error"         context="Error"/>
-                        </context>
+  <!--
+    s/regex/rep/
+           ^
+  -->
+  <context name="SRegexSep" attribute="Regex">
+    <RegExpr String="(.)" attribute="Separator" context="SReplacement"/>
+  </context>
 
-                        <context name="LiteralText" attribute="Literal Text" lineEndContext="BeginningOfLine">
-                                <Detect2Chars char="\" char1="\" attribute="Literal Escape" context="LiteralText"/>
-                                <LineContinue                    attribute="Line Continue"  context="LiteralText"/>
-                                <DetectChar   char="\"           attribute="Error"          context="Error"/>
-                        </context>
+  <!--
+    s/regex/rep/
+            ^
+  -->
+  <context name="SReplacement" attribute="Replacement" lineEndContext="#pop#pop#pop#pop#pop">
+    <StringDetect String="\%1" dynamic="1" attribute="Repl Escape"/>
+    <DetectChar     char="1"   dynamic="1" attribute="Separator"   context="SFlags"/>
+    <DetectSpaces/>
+    <DetectChar     char="&amp;"           attribute="Repl Substitution"/>
+    <DetectChar     char="\"   lookAhead="1"  context="SReplacementEscape"/>
+  </context>
+  <!--
+    on \ in rep
+               ^
+  -->
+  <context name="SReplacementEscape" attribute="Repl Escape" lineEndContext="#pop#pop#pop#pop#pop">
+    <LineContinue         attribute="Repl Escape" context="#pop"/>
+    <RegExpr String="&literal_escape;" attribute="Repl Escape" context="#pop"/>
+    <RegExpr String="\\[0-9LlUuE]" attribute="Repl Substitution" context="#pop"/>
+    <RegExpr String="\\." attribute="Unknown Escape" context="#pop"/>
+  </context>
 
-                        <context name="BTCommand" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <RegExpr String="\w+" attribute="Label" context="AfterCommand"/>
-                                <IncludeRules                           context="AfterCommand"/>
-                        </context>
+  <!--
+    s/regex/rep/
+                ^
+  -->
+  <context name="SFlags" attribute="Normal" lineEndContext="#pop#pop#pop#pop#pop#pop" fallthroughContext="#pop#pop#pop#pop#pop#pop!AfterCommand">
+    <DetectSpaces/>
+    <AnyChar String="gpeIiMm"     attribute="Flag" />
+    <!-- Do not use <Int>, because the number can be surrounded by any character -->
+    <AnyChar String="0123456789"  attribute="Repl Number"/>
+    <DetectChar char="w"          attribute="Flag" context="#pop#pop#pop#pop#pop!WRCommand"/>
+  </context>
 
-                        <context name="WRCommand" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <RegExpr String="\S+" attribute="Filename" context="AfterCommand"/>
-                        </context>
 
-                        <context name="LCommand" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <Int attribute="Wrap Length" context="AfterCommand"/>
-                                <IncludeRules                context="AfterCommand"/>
-                        </context>
+  <!--
+    y/source/dest/
+     ^
+  -->
+  <context name="YCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!Error">
+    <RegExpr String="([\t -~])" attribute="Separator" context="YSourceList"/>
+  </context>
 
-                        <context name="QCommand" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <Int attribute="Exit Code" context="AfterCommand"/>
-                                <IncludeRules              context="AfterCommand"/>
-                        </context>
+  <!--
+    y/source/dest/
+      ^
+  -->
+  <context name="YSourceList" attribute="Char List" lineEndContext="#pop#pop#pop">
+    <StringDetect String="\%1" dynamic="1" attribute="Char List Escape"/>
+    <!-- Avoid a dynamic regex for performance reasons -->
+    <DetectChar     char="1"   dynamic="1" lookAhead="1" context="YDestSep"/>
+    <DetectChar     char="\"   lookAhead="1" context="YLiteralEscape"/>
+  </context>
 
-                        <context name="Label" attribute="Normal" lineEndContext="Error">
-                                <DetectSpaces/>
-                                <RegExpr String="\w+" attribute="Label" context="AfterCommand"/>
-                                <RegExpr String="\S"  attribute="Error" context="Error"/>
-                        </context>
+  <!--
+    y/source/dest/
+            ^
+  -->
+  <context name="YDestSep" attribute="Regex">
+    <RegExpr String="(.)" attribute="Separator" context="YDestList"/>
+  </context>
 
-                        <context name="AfterCommand" attribute="Normal" lineEndContext="BeginningOfLine">
-                                <DetectSpaces/>
-                                <DetectChar char=";" attribute="Normal"  context="BeginningOfLine"/>
-                                <DetectChar char="}" attribute="Brace"   context="AfterCommand"/>
-                                <DetectChar char="#" attribute="Comment" context="Comment"/>
-                                <RegExpr String="\S" attribute="Error"   context="Error"/>
-                        </context>
+  <!--
+    y/source/dest/
+             ^
+  -->
+  <context name="YDestList" attribute="Char List" lineEndContext="#pop#pop#pop#pop#pop">
+    <StringDetect String="\%1" dynamic="1" attribute="Char List Escape"/>
+    <DetectChar     char="1"   dynamic="1" attribute="Separator"   context="#pop#pop#pop#pop#pop!AfterCommand"/>
+    <DetectChar     char="\"   lookAhead="1" context="YLiteralEscape"/>
+  </context>
+  <!--
+    on \ in dest
+  -->
+  <context name="YLiteralEscape" attribute="Char List Escape">
+    <LineContinue attribute="Char List Escape" context="#pop"/>
+    <RegExpr String="&literal_escape;" attribute="Char List Escape" context="#pop"/>
+    <RegExpr String="\\." attribute="Unknown Escape" context="#pop"/>
+  </context>
 
-                        <context name="Regex" attribute="Regex" lineEndContext="Error">
-                                <Detect2Chars char="\" char1="(" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1=")" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="+" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="?" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="|" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="{" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="}" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="[" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="]" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="." attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="*" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="\" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="^" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="$" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="n" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="t" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="0" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="1" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="2" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="3" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="4" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="5" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="6" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="7" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="8" attribute="Regex Escape" context="#stay"/>
-                                <Detect2Chars char="\" char1="9" attribute="Regex Escape" context="#stay"/>
-                                <AnyChar String="*.^$[]"         attribute="Regex Escape" context="#stay"/>
-                        </context>
 
-                        <context name="Comment" attribute="Comment" lineEndContext="#pop">
-                                <DetectSpaces />
-                                <IncludeRules context="##Comments"/>
-                        </context>
-                        <context name="Error"   attribute="Error"   lineEndContext="BeginningOfLine"/>
-                </contexts>
+  <!--
+    atext
+    itext
+    ctext
+     ^
+  -->
+  <context name="AICCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="LiteralText">
+    <DetectSpaces/>
+    <LineContinue          attribute="Line Continue" context="LiteralText"/>
+    <DetectChar   char="\" attribute="Line Continue" context="LiteralText"/>
+  </context>
 
-                <itemDatas>
-                        <itemData name="Normal"           defStyleNum="dsNormal"/>
+  <!--
+    a\text
+    i\text
+    c\text
+     atext
+     itext
+     ctext
+      ^
+  -->
+  <context name="LiteralText" attribute="Literal Text" lineEndContext="#pop#pop#pop">
+    <DetectSpaces/>
+    <DetectIdentifier/>
+    <DetectChar char="\" lookAhead="1" context="LiteralTextEscape"/>
+  </context>
+  <!--
+    on \ in text
+  -->
+  <context name="LiteralTextEscape" attribute="Literal Escape">
+    <LineContinue attribute="Line Continue" context="#pop"/>
+    <RegExpr String="&literal_escape;" attribute="Literal Escape" context="#pop"/>
+    <RegExpr String="\\." attribute="Unknown Escape" context="#pop"/>
+  </context>
 
-                        <itemData name="Regex"            defStyleNum="dsString"/>
-                        <itemData name="Regex Escape"     defStyleNum="dsChar"/>
-                        <itemData name="Replacement"      defStyleNum="dsString"/>
-                        <itemData name="Repl Escape"      defStyleNum="dsChar"/>
-                        <itemData name="Char List"        defStyleNum="dsString"/>
-                        <itemData name="Char List Escape" defStyleNum="dsChar"/>
-                        <itemData name="Separator"        defStyleNum="dsString" color="#00F"/>
 
-                        <itemData name="Line Number"      defStyleNum="dsDecVal"/>
-                        <itemData name="Step"             defStyleNum="dsDecVal"/>
-                        <itemData name="Last Line"        defStyleNum="dsOthers" color="#808" bold="1"/>
-                        <itemData name="Negation"         defStyleNum="dsOthers" color="#808" bold="1"/>
+  <!--
+    s/regex/rep/w<filename>
+                w<filename>
+                r<filename>
+                W<filename>
+                R<filename>
+                 ^
+  -->
+  <context name="WRCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="Filename">
+    <DetectSpaces attribute="Normal" context="Filename"/>
+  </context>
+  <context name="Filename" attribute="Filename" lineEndContext="#pop#pop#pop"/>
 
-                        <itemData name="Command"          defStyleNum="dsKeyword"/>
-                        <itemData name="Label"            defStyleNum="dsFunction"/>
-                        <itemData name="Brace"            defStyleNum="dsNormal"/>
 
-                        <itemData name="Flag"             defStyleNum="dsDataType"/>
-                        <itemData name="Repl Number"      defStyleNum="dsDecVal"/>
-                        <itemData name="Exit Code"        defStyleNum="dsDecVal"/>
-                        <itemData name="Filename"         defStyleNum="dsBaseN"/>
-                        <itemData name="Wrap Length"      defStyleNum="dsDecVal"/>
+  <!--
+    l[width]
+    L          # What does this command do?
+     ^
+  -->
+  <context name="LCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!AfterCommand">
+    <DetectSpaces/>
+    <Int attribute="Wrap Length" context="#pop#pop!AfterCommand" additionalDeliminator="lL"/>
+  </context>
 
-                        <itemData name="Line Continue"    defStyleNum="dsOthers" color="#000" bold="1"/>
-                        <itemData name="Literal Text"     defStyleNum="dsOthers" color="#080" italic="1"/>
-                        <itemData name="Literal Escape"   defStyleNum="dsOthers" color="#0A0" italic="1"/>
 
-                        <itemData name="Comment"          defStyleNum="dsComment"/>
-                        <itemData name="Error"            defStyleNum="dsError"/>
-                </itemDatas>
-        </highlighting>
+  <!--
+    q[exit-code]
+    Q[exit-code]
+     ^
+  -->
+  <context name="QCommand" attribute="Normal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!AfterCommand">
+    <DetectSpaces/>
+    <Int attribute="Exit Code" context="#pop#pop!AfterCommand" additionalDeliminator="qQ"/>
+  </context>
 
-        <general>
-                <comments>
-                        <comment name="singleLine" start="#"/>
-                </comments>
-        </general>
+
+  <!--
+    e[command]
+     ^
+  -->
+  <context name="ECommand" attribute="Shell Command" lineEndContext="#pop#pop">
+    <LineContinue          attribute="Line Continue"/>
+  </context>
+
+
+  <!--
+    blabel
+    tlabel
+    Tlabel
+    :label
+     ^
+  -->
+  <context name="Label" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop!AfterCommand">
+    <DetectSpaces/>
+    <RegExpr String="[^\s;}#]+" attribute="Label" context="#pop"/>
+  </context>
+
+
+  <context name="AfterCommand" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop!Error">
+    <DetectSpaces/>
+    <DetectChar char=";" attribute="Normal" context="#pop"/>
+    <DetectChar char="}" attribute="Brace"   context="#pop" endRegion="block"/>
+    <DetectChar char="#" attribute="Comment" context="#pop!Comment"/>
+  </context>
+
+
+  <!--
+    regex special char
+  -->
+  <context name="Regex" attribute="Regex">
+    <DetectSpaces/>
+    <AnyChar    String="*.^$[]"   attribute="Regex Special"/>
+    <AnyChar    String="+?|{}()"  attribute="Regex Special Extended"/>
+    <DetectChar char="\" lookAhead="1" context="RegexEscape"/>
+  </context>
+
+  <!--
+    on \
+  -->
+  <context name="RegexEscape" attribute="Regex" fallthroughContext="#pop">
+    <LineContinue         attribute="Regex Escape" context="#pop"/>
+    <RegExpr String="\\([afnrtv\\()+?|{}\[\].*^$]|c.|x[0-9a-fA-F]{1,2}|d[0-9]{1,3}|o[0-7]{1,3})"
+                          attribute="Regex Escape" context="#pop"/>
+    <RegExpr String="\\([0-9wWbBsS&lt;>`'])"
+                          attribute="Regex Escape Special" context="#pop"/>
+    <RegExpr String="\\." attribute="Unknown Escape" context="#pop"/>
+  </context>
+
+
+  <!--
+    #comment
+     ^
+  -->
+  <context name="Comment" attribute="Comment" lineEndContext="#pop">
+    <DetectSpaces/>
+    <IncludeRules context="##Comments"/>
+    <DetectIdentifier/>
+  </context>
+
+
+  <context name="Error" attribute="Error" lineEndContext="#pop"/>
+
+</contexts>
+
+<itemDatas>
+  <itemData name="Normal"     defStyleNum="dsNormal"/>
+
+  <itemData name="Regex"                  defStyleNum="dsString"/>
+  <itemData name="Regex Escape"           defStyleNum="dsChar"/>
+  <itemData name="Regex Escape Special"   defStyleNum="dsSpecialChar"/>
+  <itemData name="Regex Special"          defStyleNum="dsSpecialChar"/>
+  <itemData name="Regex Special Extended" defStyleNum="dsSpecialString"/>
+  <itemData name="Replacement"            defStyleNum="dsString"/>
+  <itemData name="Repl Escape"            defStyleNum="dsChar"/>
+  <itemData name="Repl Substitution"      defStyleNum="dsSpecialChar"/>
+  <itemData name="Char List"              defStyleNum="dsString"/>
+  <itemData name="Char List Escape"       defStyleNum="dsChar"/>
+  <itemData name="Separator"              defStyleNum="dsConstant"/>
+
+  <itemData name="Line Number"  defStyleNum="dsDecVal"/>
+  <itemData name="Step"         defStyleNum="dsDecVal"/>
+  <itemData name="Last Line"    defStyleNum="dsFunction" bold="1"/>
+  <itemData name="Negation"     defStyleNum="dsFunction" bold="1"/>
+
+  <itemData name="Command"        defStyleNum="dsKeyword"/>
+  <itemData name="Shell Command"  defStyleNum="dsPreprocessor"/>
+  <itemData name="Label"          defStyleNum="dsControlFlow"/>
+  <itemData name="Brace"          defStyleNum="dsNormal"/>
+
+  <itemData name="Flag"         defStyleNum="dsDataType"/>
+  <itemData name="Repl Number"  defStyleNum="dsDecVal"/>
+  <itemData name="Exit Code"    defStyleNum="dsDecVal"/>
+  <itemData name="Filename"     defStyleNum="dsBaseN"/>
+  <itemData name="Wrap Length"  defStyleNum="dsDecVal"/>
+
+  <itemData name="Line Continue"  defStyleNum="dsAttribute" bold="1"/>
+  <itemData name="Literal Text"   defStyleNum="dsImport" italic="1"/>
+  <itemData name="Literal Escape" defStyleNum="dsOperator" italic="1"/>
+
+  <itemData name="Unknown Escape" defStyleNum="dsChar"/>
+  <itemData name="Comment"        defStyleNum="dsComment"/>
+  <itemData name="Error"          defStyleNum="dsError"/>
+</itemDatas>
+</highlighting>
+
+<general>
+  <comments>
+    <comment name="singleLine" start="#"/>
+  </comments>
+</general>
 </language>
-<!-- kate: replace-tabs on; tab-width 8; indent-width 8; -->
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/xml/sgml.xml b/xml/sgml.xml
--- a/xml/sgml.xml
+++ b/xml/sgml.xml
@@ -1,6 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
 <language name="SGML" version="5" kateversion="5.0" section="Markup" extensions="*.sgml" mimetype="text/sgml">
+
+<!--
+missing features:
+- DOCTYPE with ELEMENT, ENTITY, SHORTREF, USEMAP
+- special processing: INCLUDE, IGNORE, CDATA, RCDATA, TEMP
+    <![ IGNORE [ bla bla ]]>
+    <![ %Maryland; [ bla bla ]]> (entity replacement)
+- `<ITALIC>text</>` (SHORTTAG) for `<ITALIC>text</ITALIC>`
+- `<ITALIC/text/` (NET) for `<ITALIC>text</ITALIC>`
+    `<ITALIC/text<BOLD/text//` for `<ITALIC>text<BOLD>text</BOLD></ITALIC>`
+- `<cell>a<>b<>c` for `<cell>a</cell><cell>b</cell><cell>c`
+- entity: `&je;`, `&#space;`, `&#2345;`, etc
+- comment everywhere: <tag - - comment - - no comment>
+                            ~           ~ These spaces do not exist,
+                                          but it is not possible to delete them
+                                          without having an XML syntax error
+-->
+
   <highlighting>
     <contexts>
        <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
diff --git a/xml/sql-postgresql.xml b/xml/sql-postgresql.xml
--- a/xml/sql-postgresql.xml
+++ b/xml/sql-postgresql.xml
@@ -21,7 +21,7 @@
   -->
 
 <language name="SQL (PostgreSQL)"
-          version="16"
+          version="17"
           kateversion="5.44"
           section="Database"
           extensions="*.sql;*.SQL;*.ddl;*.DDL"
@@ -498,7 +498,6 @@
       <item>PROCEDURE</item>
       <item>PROGRAM</item>
       <item>PUBLIC</item>
-      <item>RANGE</item>
       <item>PUBLICATION</item>
       <item>QUOTE</item>
       <item>RANGE</item>
diff --git a/xml/stan.xml b/xml/stan.xml
--- a/xml/stan.xml
+++ b/xml/stan.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE language>
 <language name="Stan"
           section="Scientific"
-          version="7"
+          version="8"
           kateversion="5.0"
           indenter="cstyle"
           extensions="*.stan;*.stanfunctions"
@@ -21,6 +21,7 @@
     </list>
     <list name="keywords">
       <item>reject</item>
+      <item>fatal_error</item>
       <item>print</item>
       <item>integrate_ode</item>
       <item>integrate_ode_bdf</item>
@@ -40,6 +41,9 @@
       <item>positive_ordered</item>
       <item>simplex</item>
       <item>unit_vector</item>
+      <item>sum_to_zero_vector</item>
+      <item>column_stochastic_matrix</item>
+      <item>row_stochastic_matrix</item>
       <item>row_vector</item>
       <item>matrix</item>
       <item>array</item>
@@ -59,7 +63,7 @@
         <DetectChar attribute="Comment" context="Hash comment" char="#"/>
         <Detect2Chars attribute="Comment" context="C-style comment" char="/" char1="/"/>
         <Detect2Chars attribute="Comment" context="Block comment" char="/" char1="*" beginRegion="Comment"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\btarget\s*\+=" />
+        <RegExpr attribute="Keyword" context="#stay" String="\b(target|jacobian)\s*\+=" />
         <DetectChar attribute="Operator" context="After less-than" char="&lt;" />
         <DetectChar attribute="Punctuation" context="After comma" char="," />
         <DetectChar attribute="Operator" context="After Right Paren" char=")" />
diff --git a/xml/systemverilog.xml b/xml/systemverilog.xml
--- a/xml/systemverilog.xml
+++ b/xml/systemverilog.xml
@@ -144,7 +144,6 @@
        <item>ms</item>
        <item>ns</item>
        <item>us</item>
-       <item>ns</item>
        <item>ps</item>
        <item>fs</item>
        <item>step</item>
@@ -362,10 +361,6 @@
         <item>$acosh</item>
         <item>$tan</item>
         <item>$atanh</item>
-        <item>$fatal</item>
-        <item>$error</item>
-        <item>$warning</item>
-        <item>$info</item>
         <item>$fatal</item>
         <item>$error</item>
         <item>$warning</item>
diff --git a/xml/tcl.xml b/xml/tcl.xml
--- a/xml/tcl.xml
+++ b/xml/tcl.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language>
+<!DOCTYPE language [
+  <!ENTITY var "\$([a-zA-Z0-9_]|::)+">
+  <!ENTITY delims "!&#37;&amp;*+,-./:&lt;=>^|~">
+]>
 
 <!-- Authors: Alexander Dederer & JM. Philippe -->
 <!-- Copyright: BSD copyright & Irsid - Arcelor Innovation R&D -->
@@ -28,11 +31,34 @@
 	    - Fixed detection of varaibles with names containing serval namespace delimiters (::)
 -->
 
-<language name="Tcl/Tk" version="8" kateversion="5.62" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl" license="BSD">
+<language name="Tcl/Tk" version="9" kateversion="5.79" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl" license="BSD">
   <highlighting>
+    <list name="control-flow">
+      <item>break</item>
+      <item>catch</item>
+      <item>continue</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>exit</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>if</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>switch</item>
+      <item>throw</item>
+      <item>trap</item>
+      <item>try</item>
+      <item>while</item>
+      <item>yield</item>
+      <item>yieldto</item>
+    </list>
+
     <list name="keywords">
       <item>after</item>
       <item>append</item>
+      <item>apply</item>
       <item>AppleScript</item>
       <item>argv</item>
       <item>argc</item>
@@ -56,7 +82,6 @@
       <item>button</item>
       <item>canvas</item>
       <item>case</item>
-      <item>catch</item>
       <item>cd</item>
       <item>chan</item>
       <item>checkbutton</item>
@@ -66,12 +91,13 @@
       <item>combobox</item>
       <item>concat</item>
       <item>console</item>
-      <item>continue</item>
+      <item>const</item>
+      <item>coroinject</item>
+      <item>coroprobe</item>
+      <item>coroutine</item>
       <item>dde</item>
       <item>destroy</item>
       <item>dict</item>
-      <item>else</item>
-      <item>elseif</item>
       <item>encoding</item>
       <item>entry</item>
       <item>env</item>
@@ -82,7 +108,6 @@
       <item>eval</item>
       <item>event</item>
       <item>exec</item>
-      <item>exit</item>
       <item>expr</item>
       <item>fblocked</item>
       <item>fconfigure</item>
@@ -92,8 +117,6 @@
       <item>flush</item>
       <item>focus</item>
       <item>font</item>
-      <item>for</item>
-      <item>foreach</item>
       <item>format</item>
       <item>frame</item>
       <item>gets</item>
@@ -102,7 +125,6 @@
       <item>grab</item>
       <item>grid</item>
       <item>history</item>
-      <item>if</item>
       <item>image</item>
       <item>incr</item>
       <item>info</item>
@@ -112,19 +134,23 @@
       <item>labelframe</item>
       <item>lappend</item>
       <item>lassign</item>
+      <item>ledit</item>
       <item>lindex</item>
       <item>linsert</item>
       <item>list</item>
       <item>listbox</item>
       <item>llength</item>
+      <item>lmap</item>
       <item>load</item>
       <item>lower</item>
+      <item>lpop</item>
       <item>lrange</item>
       <item>lremove</item>
       <item>lrepeat</item>
       <item>lreplace</item>
       <item>lreverse</item>
       <item>lsearch</item>
+      <item>lseq</item>
       <item>lset</item>
       <item>lsort</item>
       <item>menu</item>
@@ -154,7 +180,6 @@
       <item>regsub</item>
       <item>rename</item>
       <item>resource</item>
-      <item>return</item>
       <item>scale</item>
       <item>scan</item>
       <item>scrollbar</item>
@@ -171,7 +196,7 @@
       <item>string</item>
       <item>style</item>
       <item>subst</item>
-      <item>switch</item>
+      <item>tailcall</item>
       <item>tclLog</item>
       <item>tcl_endOfWord</item>
       <item>tcl_findLibrary</item>
@@ -224,7 +249,6 @@
       <item>upvar</item>
       <item>variable</item>
       <item>vwait</item>
-      <item>while</item>
       <item>winfo</item>
       <item>wm</item>
     </list>
@@ -249,6 +273,7 @@
       <item>default</item>
       <item>delete</item>
       <item>dirname</item>
+      <item>epoll</item>
       <item>equal</item>
       <item>executable</item>
       <item>exists</item>
@@ -267,6 +292,7 @@
       <item>isdirectory</item>
       <item>isfile</item>
       <item>join</item>
+      <item>kqueue</item>
       <item>last</item>
       <item>length</item>
       <item>level</item>
@@ -329,7 +355,6 @@
       <item>wordend</item>
       <item>wordstart</item>
       <item>writable</item>
-
       <item>activate</item>
       <item>actual</item>
       <item>addtag</item>
@@ -412,6 +437,7 @@
       <item>mark</item>
       <item>maxsize</item>
       <item>measure</item>
+      <item>method</item>
       <item>metrics</item>
       <item>minsize</item>
       <item>move</item>
@@ -487,52 +513,82 @@
       <item>x</item>
       <item>xview</item>
       <item>y</item>
+      <item>zlib</item>
     </list>
 
     <contexts>
       <context name = "Base" attribute = "Normal Text" lineEndContext="#stay">
-      
-        <!-- Virtual blocks -->
-        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
-        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="region" firstNonSpace="true"/>
-        
-        <!-- Standard -->
-        <keyword String = "keywords" attribute = "Keyword" context="#stay"/>
-        <keyword String = "keywords-opt" attribute = "Parameter" context="#stay"/>
-        <Float attribute = "Float" context="#stay"/>
-        <Int attribute ="Decimal" context="#stay"/>
-        <RegExpr String="\\." attribute = "Char" context = "#stay"/>
-        
-        <!-- Options -->
-        <RegExpr String = "\s-\w+" attribute = "Parameter" context="#stay"/>
-        
-        <!-- Variables -->
-        <RegExpr String = "\$\{([^\}]|\\\})+\}|\$(::|\w)+" attribute = "Variable" context="#stay"/>
-        
+        <DetectSpaces/>
+
+        <!-- Braces, brackets, etc -->
+        <DetectChar char = "{" attribute = "Block Symbol" context="#stay" beginRegion="block"/>
+        <DetectChar char = "}" attribute = "Block Symbol" context="#stay" endRegion="block"/>
+        <AnyChar String = "[]" attribute = "Substitution Symbol" context="#stay"/>
+        <StringDetect String="${" attribute="Variable" context="VarBrace"/>
+
+        <!-- Symbols -->
+        <AnyChar String="=!&lt;>&amp;|+*/%!:" attribute="Operator"/>
+        <AnyChar String="()" attribute="Symbol"/>
+
         <!-- Strings -->
-        <Detect2Chars char = "&quot;" char1 = "&quot;" attribute = "String" context="#stay"/>
         <DetectChar char = "&quot;" attribute = "String" context="String"/>
-        
+
         <!-- Comments -->
-        <DetectChar char = ";" attribute = "Normal Text" context="New command line" />
-        <DetectChar char = "#" attribute = "Comment" context="Comment" firstNonSpace="true"/>
-        
-        <!-- Braces, brackets, etc -->
-        <DetectChar char = "{" attribute = "Keyword" context="#stay" beginRegion="block"/>
-        <DetectChar char = "}" attribute = "Keyword" context="#stay" endRegion="block"/>
-        <AnyChar String= "[]" attribute = "Keyword" context="#stay"/>
+        <DetectChar char = ";" attribute = "Separator Symbol" context="New command line" />
+        <DetectChar char = "#" attribute = "Comment" context="CommentWithOptionalRegion" firstNonSpace="true" lookAhead="1"/>
+
+        <!-- Standard -->
+        <keyword String="keywords" attribute="Keyword" weakDeliminator="&delims;"/>
+        <keyword String="keywords-opt" attribute="Parameter" weakDeliminator="&delims;"/>
+        <keyword String="control-flow" attribute="Control Flow" weakDeliminator="&delims;"/>
+        <Float attribute="Float"/>
+        <Int attribute="Decimal"/>
+        <IncludeRules context="FindSpecialChar"/>
+
+        <!-- Options -->
+        <RegExpr String = "(?&lt;=\s)-\w+" attribute = "Parameter"/>
+        <DetectChar char = "-" attribute = "Symbol"/>
+
+        <!-- Variables -->
+        <RegExpr String="&var;" attribute="Variable"/>
         
+        <RegExpr String="[^\s;{}()\[\]&quot;$\\=!&lt;>&amp;|+*/%!:]+"/>
       </context>
 
-      <context name = "String" attribute = "String" lineEndContext="#stay">
-        <RegExpr String="\\." attribute = "Char" context = "#stay"/>
-        <DetectChar char="&quot;" attribute = "String" context = "#pop"/>
-        <DetectChar char  = "$" attribute = "Variable" context="#stay"/>
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <DetectChar char="&quot;" attribute="String" context="#pop"/>
+        <IncludeRules context="FindSpecialChar"/>
+        <StringDetect String="${" attribute="Variable" context="VarBrace"/>
+        <RegExpr String="&var;" attribute="Variable" context="StringAfterVar"/>
       </context>
 
+      <context name="StringAfterVar" attribute="Variable" fallthroughContext="#pop">
+        <DetectChar char="(" attribute="Variable Index Symbol" context="StringVarIndex"/>
+      </context>
+      <context name="StringVarIndex" attribute="String Variable Index">
+        <DetectChar char=")" attribute="Variable Index Symbol" context="#pop#pop"/>
+        <DetectChar char="&quot;" context="#pop#pop" lookAhead="1"/>
+        <IncludeRules context="String"/>
+      </context>
+
+      <context name="FindSpecialChar" attribute="Char" lineEndContext="#pop">
+        <RegExpr String="\\(x[0-9a-fA-F]{1,2}|[0-7]{1,3}|.)?" attribute="Char"/>
+      </context>
+
+      <context name="VarBrace" attribute="Variable" lineEndContext="#pop">
+        <DetectChar char="}" attribute="Variable" context="#pop"/>
+      </context>
+
+      <context name = "CommentWithOptionalRegion" attribute = "Comment" lineEndContext="#pop" fallthroughContext="#pop!Comment">
+        <!-- Virtual blocks -->
+        <RegExpr attribute="Region Marker" context="#pop" String="#\s*BEGIN\b.*" beginRegion="region" firstNonSpace="true"/>
+        <RegExpr attribute="Region Marker" context="#pop" String="#\s*END\b.*" endRegion="region" firstNonSpace="true"/>
+      </context>
+
       <context name = "Comment" attribute = "Comment" lineEndContext="#pop">
         <DetectSpaces />
         <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
 
       <context name = "New command line" attribute = "Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
@@ -543,22 +599,30 @@
 
     <itemDatas>
       <itemData name = "Normal Text" defStyleNum = "dsNormal"/>
-      <itemData name = "Keyword" defStyleNum = "dsKeyword"/>
-      <itemData name = "Decimal" defStyleNum = "dsDecVal"/>
-      <itemData name = "Float" defStyleNum = "dsFloat"/>
+      <itemData name = "Keyword" defStyleNum = "dsKeyword" spellChecking="0"/>
+      <itemData name = "Control Flow" defStyleNum = "dsControlFlow" spellChecking="0"/>
+      <itemData name = "Substitution Symbol" defStyleNum = "dsKeyword" spellChecking="0"/>
+      <itemData name = "Block Symbol" defStyleNum = "dsKeyword" spellChecking="0"/>
+      <itemData name = "Separator Symbol" defStyleNum = "dsNormal" bold="1" spellChecking="0"/>
+      <itemData name = "Decimal" defStyleNum = "dsDecVal" spellChecking="0"/>
+      <itemData name = "Float" defStyleNum = "dsFloat" spellChecking="0"/>
+      <itemData name = "Operator" defStyleNum = "dsOperator" spellChecking="0"/>
+      <itemData name = "Symbol" defStyleNum = "dsNormal"/>
       <itemData name = "String" defStyleNum = "dsString"/>
+      <itemData name = "String Variable Index" defStyleNum = "dsVerbatimString"/>
       <itemData name = "Comment" defStyleNum = "dsComment"/>
-      <itemData name = "Parameter" defStyleNum = "dsOthers"/>
+      <itemData name = "Parameter" defStyleNum = "dsOthers" spellChecking="0"/>
       <itemData name = "Variable" defStyleNum = "dsDataType"/>
-      <itemData name = "Char" defStyleNum="dsChar"/>
-      <itemData name = "Region Marker" defStyleNum="dsRegionMarker"/>
+      <itemData name = "Variable Index Symbol" defStyleNum = "dsVariable" spellChecking="0"/>
+      <itemData name = "Char" defStyleNum="dsChar" spellChecking="0"/>
+      <itemData name = "Region Marker" defStyleNum="dsRegionMarker" spellChecking="0"/>
     </itemDatas>
 
   </highlighting>
 
   <general>
     <comments>
-	<comment name="singleLine" start="#" />
+      <comment name="singleLine" start="#" />
     </comments>
     <keywords casesensitive="1"/>
   </general>
diff --git a/xml/xml.xml b/xml/xml.xml
--- a/xml/xml.xml
+++ b/xml/xml.xml
@@ -1,32 +1,69 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language
 [
-	<!-- names must start with a letter, ideogram or underscore. \w matches any
-		 word character *or* a number, hence the lookahead -->
-	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">
-	<!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+  <!ENTITY name    "[[:alpha:]_:][\w.:_-]*">
+  <!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
 ]>
-<language name="XML" version="22" kateversion="5.0" section="Markup" extensions="*.page;*.docbook;*.xml;*ui.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd;*.fb2" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml;application/vnd.oasis.opendocument.text-flat-xml;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.presentation-flat-xml;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/gpx+xml;application/x-fictionbook+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<language name="XML" version="27" kateversion="5.62" section="Markup" extensions="*.page;*.docbook;*.xml;*ui.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd;*.fb2" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml;application/vnd.oasis.opendocument.text-flat-xml;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.presentation-flat-xml;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/gpx+xml;application/x-fictionbook+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
 
+<!-- https://www.w3.org/TR/xml/ -->
+
+<!--
+  This file also serves as the basis for generating XSLT syntax.
+  Comments beginning with "XSLT:" are used by data/generators/generate-xslt.pl
+  to add specific rules based on the rule in the following line.
+
+  - 'XSLT: keytags': insert xslt functions.
+  - 'XSLT: copy': duplicate a context and modify the duplicated context.
+      The rules of the duplicated context also refer to an XSLT Context
+      (e.g <RegExpr context="#pop!Attribute" String="..."/> becomes
+      <RegExpr context="#pop!XSLT_Attribute" String="..."/>).
+  - 'XSLT: xattr': insert xslt attribute rule.
+  - 'XSLT: xvalue': insert xslt value rule.
+  - 'XSLT: nochange': Do not modify the following rule (only in a XSLT: copy).
+  - 'XSLT: attrvalue': change attribute="Value" to attribute="Attribute Value".
+  - 'XSLT: xpathDQ': insert xpathDQ rule.
+  - 'XSLT: xpathSQ': insert xpathSQ rule.
+-->
+
 <highlighting>
 <contexts>
   <context name="Start" attribute="Normal Text" lineEndContext="#stay">
-    <IncludeRules context="FindXML" />
+    <IncludeRules context="FindText" />
+    <IncludeRules context="FindElement" />
   </context>
 
-  <context name="FindXML" attribute="Normal Text" lineEndContext="#stay">
+  <context name="FindText" attribute="Normal Text" lineEndContext="#stay">
     <DetectSpaces />
     <DetectIdentifier />
+    <Int />
+  </context>
+
+  <context name="FindElement" attribute="Normal Text" lineEndContext="#stay">
     <RegExpr attribute="Element Symbols" context="ElementTagName" String="&lt;(?=(&name;))" beginRegion="element" />
-    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <RegExpr attribute="Element Symbols" context="El End TagName" String="&lt;/(?=(&name;))" endRegion="element" />
+    <IncludeRules context="FindComment" />
     <StringDetect attribute="CDATA" context="CDATAStart" String="&lt;![CDATA[" lookAhead="true" />
     <RegExpr attribute="Doctype Symbols" context="DoctypeTagName" String="&lt;!(?=DOCTYPE(\s|$))" beginRegion="doctype" />
-    <IncludeRules context="FindProcessingInstruction" />
     <IncludeRules context="FindEntityRefs" />
+    <IncludeRules context="FindProcessingInstruction" />
+    <IncludeRules context="FindError" />
   </context>
 
+  <context name="FindError" attribute="Other Text" lineEndContext="#stay">
+    <IncludeRules context="FindReservedChar" />
+    <StringDetect attribute="Error" String="]]>" />
+  </context>
+
+  <context name="FindComment" attribute="Other Text" lineEndContext="#stay">
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+  </context>
+
   <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">
     <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+  </context>
+
+  <context name="FindReservedChar" attribute="Other Text" lineEndContext="#stay">
     <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
   </context>
 
@@ -39,11 +76,14 @@
 
   <context name="Comment" attribute="Comment" lineEndContext="#stay">
     <DetectSpaces />
-    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
-    <RegExpr attribute="Error" context="#stay" String="-(?:\-(?!-&gt;))+" />
+    <StringDetect context="EndComment" String="--" lookAhead="1"/>
     <IncludeRules context="##Comments" />
     <DetectIdentifier />
   </context>
+  <context name="EndComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+    <StringDetect attribute="Comment" context="#pop#pop" String="-->" endRegion="comment" />
+    <DetectChar attribute="Error" char="-" />
+  </context>
 
   <context name="CDATAStart" attribute="Other Text" lineEndContext="#pop">
     <StringDetect attribute="CDATA Symbols" context="#stay" String="&lt;![" beginRegion="cdata" />
@@ -54,13 +94,12 @@
     <DetectSpaces />
     <DetectIdentifier />
     <StringDetect attribute="CDATA Symbols" context="#pop" String="]]&gt;" endRegion="cdata" />
-    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
   </context>
 
   <context name="FindProcessingInstruction" attribute="Other Text" lineEndContext="#stay">
     <RegExpr attribute="PI Symbols" context="PI TagName" String="&lt;\?(?=([\w:_-]*))" beginRegion="pi" />
   </context>
-  <context name="PI TagName" attribute="Other Text" lineEndContext="#pop!PI" fallthrough="true" fallthroughContext="#pop!PI">
+  <context name="PI TagName" attribute="Other Text" lineEndContext="#pop!PI" fallthroughContext="#pop!PI">
     <RegExpr attribute="Processing Instruction" context="#pop!PI-XML" String="xml(?=\s|$)" insensitive="true" />
     <StringDetect attribute="Processing Instruction" context="#pop!PI" String="%1" dynamic="true" />
   </context>
@@ -69,14 +108,15 @@
   </context>
   <context name="PI-XML" attribute="Other Text" lineEndContext="#stay">
     <IncludeRules context="PI" />
-    <RegExpr attribute="Attribute" context="#stay" String="(?:^|\s+)&name;" />
+    <DetectSpaces attribute="Other Text"/>
     <DetectChar attribute="Attribute Separator" context="Value" char="=" />
+    <RegExpr attribute="Attribute" context="#stay" String="(?:^|(?&lt;=\s))&name;" />
   </context>
 
   <context name="DoctypeTagName" attribute="Other Text" lineEndContext="#pop">
     <StringDetect attribute="Doctype" context="#pop!DoctypeVariableName" String="DOCTYPE" />
   </context>
-  <context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Doctype">
+  <context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#stay" fallthroughContext="#pop!Doctype">
     <DetectSpaces />
     <RegExpr attribute="Doctype Name" context="#pop!Doctype" String="&name;" />
   </context>
@@ -89,7 +129,7 @@
     <DetectSpaces />
     <DetectChar attribute="Doctype Symbols" context="#pop" char="]" endRegion="int_subset" />
     <RegExpr attribute="Doctype Symbols" context="Doctype Markupdecl TagName" String="&lt;!(?=(ELEMENT|ENTITY|ATTLIST|NOTATION)\b)" />
-    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <IncludeRules context="FindComment" />
     <IncludeRules context="FindProcessingInstruction" />
     <IncludeRules context="FindPEntityRefs" />
   </context>
@@ -97,7 +137,7 @@
   <context name="Doctype Markupdecl TagName" attribute="Other Text" lineEndContext="#pop">
     <DetectIdentifier attribute="Doctype" context="#pop!Doctype Markupdecl VariableName" />
   </context>
-  <context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthrough="true" fallthroughContext="#pop!Doctype Markupdecl">
+  <context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthroughContext="#pop!Doctype Markupdecl">
     <DetectSpaces />
     <DetectChar attribute="Doctype Symbols" char="%"/>
     <RegExpr attribute="Doctype Name" context="#pop!Doctype Markupdecl" String="&name;" />
@@ -119,47 +159,108 @@
   </context>
 
   <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop!Element">
+    <!-- XSLT: keytags -->
     <StringDetect attribute="Element" context="#pop!Element" String="%1" dynamic="true" />
   </context>
-  <context name="Element" attribute="Other Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="element" />
-    <DetectChar attribute="Element Symbols" context="El Content" char="&gt;" />
-    <RegExpr attribute="Attribute" context="Attribute" String="(?:^|\s+)&name;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
+  <!-- XSLT: copy -->
+  <context name="Element" attribute="Other Text" lineEndContext="#stay" fallthroughContext="ElementCommonError">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1=">" endRegion="element" />
+    <DetectChar attribute="Element Symbols" context="#pop" char=">" />
+    <DetectSpaces attribute="Other Text"/>
+    <!-- XSLT: xattr -->
+    <RegExpr attribute="Attribute" context="Attribute" String="(?:^|(?&lt;=\s))&name;" />
 
-  <context name="El Content" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Element Symbols" context="El End TagName" String="&lt;/(?=(&name;))" />
-    <IncludeRules context="FindXML" />
+    <!-- the following rules limit the number of characters or lines marked as an error,
+      which can become very large -->
+    <!-- assume that '>' will be typed afterwards -->
+    <DetectChar attribute="Error" context="#pop" char="/" endRegion="element" />
+    <!-- assume no attribute name, but value -->
+    <DetectChar attribute="Error" context="Value" char="=" />
+    <!-- assume attribute preceded by an invalid character, e.g. <tag foo="x"invalid="y"> -->
+    <!-- XSLT: xattr -->
+    <RegExpr attribute="Error" context="Attribute" String="&name;" />
   </context>
 
   <context name="El End TagName" attribute="Other Text" lineEndContext="#pop!El End">
-    <StringDetect attribute="Element" context="#pop!El End" String="%1" dynamic="true" />
+    <!-- XSLT: keytags -->
+    <StringDetect attribute="Element" context="El End" String="%1" dynamic="true" />
   </context>
   <context name="El End" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element Symbols" context="#pop#pop#pop" char="&gt;" endRegion="element" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectChar attribute="Element Symbols" context="#pop#pop" char=">" />
+    <DetectSpaces attribute="Other Text"/>
+    <IncludeRules context="ElementCommonError"/>
   </context>
 
+  <!-- XSLT: copy -->
   <context name="Attribute" attribute="Other Text" lineEndContext="#stay">
     <DetectChar attribute="Attribute Separator" context="#pop!Value" char="=" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Other Text"/>
+
+    <!-- the following rules limit the number of characters or lines marked as an error,
+      which can become very large -->
+    <!-- XSLT: xvalue -->
+    <DetectChar attribute="Error" context="Value DQ" char="&quot;" />
+    <!-- XSLT: xvalue -->
+    <DetectChar attribute="Error" context="Value SQ" char="&apos;" />
+    <IncludeRules context="FindAttributeCommonError"/>
   </context>
 
+  <!-- XSLT: copy -->
   <context name="Value" attribute="Other Text" lineEndContext="#stay">
+    <!-- XSLT: xvalue -->
     <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <!-- XSLT: xvalue -->
     <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <DetectSpaces attribute="Other Text"/>
+    <IncludeRules context="FindAttributeCommonError"/>
   </context>
 
+  <!-- XSLT: copy -->
+  <context name="FindAttributeCommonError" attribute="Error">
+    <!-- attribute without value -->
+    <DetectChar attribute="Error" context="#pop#pop" char=">" />
+    <StringDetect attribute="Error" context="#pop#pop" String="/>" endRegion="element" />
+    <!-- attribute without value, assume that '>' will be typed afterwards -->
+    <DetectChar attribute="Error" context="#pop#pop" char="/" endRegion="element" />
+    <!-- next word is an attribute -->
+    <!-- XSLT: xattr -->
+    <RegExpr attribute="Error" context="#pop!Attribute" String="&name;(?=\s*=)" />
+    <!-- XSLT: nochange -->
+    <IncludeRules context="ElementCommonError"/>
+  </context>
+
+  <context name="ElementCommonError" attribute="Error">
+    <!-- mark a "word" in error -->
+    <RegExpr attribute="Error" context="#pop#pop" String="[-\w.:_=]+|[^-\w.:_=/&lt;>\s]+[-\w.:_]*|/>|[^&lt;]" />
+    <!-- assume that '>' will be typed afterwards and find a new element -->
+    <!-- XSLT: keytags -->
+    <RegExpr attribute="Error" context="#pop#pop!Element" String="&lt;&name;" />
+    <StringDetect attribute="Error" context="#pop#pop!Comment" String="&lt;!--" beginRegion="comment" />
+    <StringDetect attribute="Error" context="#pop#pop!CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <DetectChar attribute="Error" context="#pop#pop" char="&lt;" />
+  </context>
+
+  <!-- XSLT: attrvalue -->
   <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <!-- XSLT: xpathDQ -->
     <DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
-    <IncludeRules context="FindEntityRefs" />
+    <IncludeRules context="ValueQ" />
   </context>
 
+  <!-- XSLT: attrvalue -->
   <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <!-- XSLT: xpathSQ -->
     <DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
+    <IncludeRules context="ValueQ" />
+  </context>
+
+  <!-- XSLT: attrvalue -->
+  <context name="ValueQ" attribute="Value" lineEndContext="#stay">
+    <DetectIdentifier attribute="Value" />
+    <DetectSpaces attribute="Value" />
+    <Int attribute="Value" />
     <IncludeRules context="FindEntityRefs" />
+    <IncludeRules context="FindReservedChar" />
   </context>
 
 </contexts>
diff --git a/xml/xul.xml b/xml/xul.xml
--- a/xml/xul.xml
+++ b/xml/xul.xml
@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language
-[
-	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
-	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
-]>
-<language name="XUL" version="10" kateversion="5.0" section="Markup" extensions="*.xul;*.xbl" mimetype="text/xul" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)" license="LGPL">
+<!DOCTYPE language>
+<language name="XUL" version="11" kateversion="5.62" section="Markup" extensions="*.xul;*.xbl" mimetype="text/xul" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)" license="LGPL">
 
 <highlighting>
    <list name="keywords">
@@ -148,7 +144,6 @@
       <item>background</item>
       <item>below</item>
       <item>bgColor</item>
-      <item>border</item>
       <item>big</item>
       <item>blink</item>
       <item>blur</item>
@@ -383,7 +378,6 @@
       <item>visibility</item>
       <item>vlinkColor</item>
       <item>vspace</item>
-      <item>width</item>
       <item>watch</item>
       <item>which</item>
       <item>width</item>
@@ -395,114 +389,14 @@
     </list>
 <contexts>
   <context name="Start" attribute="Normal Text" lineEndContext="#stay">
-    <IncludeRules context="FindXML" />
-  </context>
-
-  <context name="FindXML" attribute="Normal Text" lineEndContext="#stay">
     <DetectSpaces />
-    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
-    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
-    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
-    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
-    <RegExpr attribute="Element" context="Element" String="&lt;&name;" beginRegion="element" />
-    <IncludeRules context="FindEntityRefs" />
     <DetectIdentifier />
-  </context>
-
-  <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
-    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
-  </context>
-
-  <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
-    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
-    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
-  </context>
-
-
-  <context name="Comment" attribute="Comment" lineEndContext="#stay">
-    <DetectSpaces />
-    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
-    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
-    <IncludeRules context="##Comments" />
-    <DetectIdentifier />
-  </context>
-
-  <context name="PI" attribute="Normal Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
-  </context>
-
-  <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
-    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
-  </context>
-
-  <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
-    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
-    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
-    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
-    <IncludeRules context="FindPEntityRefs" />
-  </context>
-
-  <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
-    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
-    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
-  </context>
-
-  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
-    <DetectChar attribute="Value" context="#pop" char="&quot;" />
-    <IncludeRules context="FindPEntityRefs" />
-  </context>
-
-  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
-    <DetectChar attribute="Value" context="#pop" char="&apos;" />
-    <IncludeRules context="FindPEntityRefs" />
-  </context>
-
-  <context name="Element" attribute="Normal Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="element" />
-    <DetectChar attribute="Element" context="El Content" char="&gt;" />
-    <RegExpr attribute="Attribute" context="Attribute" String="^&name;|\s+&name;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="El Content" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El End" String="&lt;/&name;" />
-    <IncludeRules context="FindXML" />
-  </context>
-
-  <context name="El End" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" endRegion="element" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="Attribute" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Attribute" context="Value" char="=" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="Value" attribute="Normal Text" lineEndContext="#stay">
-    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
-    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
-    <DetectChar attribute="Value" context="#pop#pop#pop" char="&quot;" />
-    <IncludeRules context="FindEntityRefs" />
-  </context>
-
-  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
-    <DetectChar attribute="Value" context="#pop#pop#pop" char="&apos;" />
-    <IncludeRules context="FindEntityRefs" />
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <IncludeRules context="##XML" />
   </context>
 
   <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
      <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
-     <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
      <DetectSpaces/>
      <StringDetect attribute="Region Marker" context="region_marker" String="//BEGIN" beginRegion="Region1"/>
      <StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1"/>
@@ -545,6 +439,7 @@
      <DetectSpaces />
      <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="JSBlockComment"/>
      <IncludeRules context="##Comments" />
+     <DetectIdentifier />
   </context>
   
   <context attribute="Regular Expression" lineEndContext="#stay" name="Regular Expression">
@@ -555,7 +450,7 @@
      <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\.|\$(?=/)" />
      <AnyChar attribute="Pattern Internal Operator" context="#stay" String="?+*()|" />
   </context>
-  <context attribute="Normal Text" lineEndContext="#stay" name="(Internal regex catch)" fallthrough="true" fallthroughContext="#pop">
+  <context attribute="Normal Text" lineEndContext="#stay" name="(Internal regex catch)" fallthroughContext="#pop">
      <DetectSpaces attribute="Normal Text" context="#stay" />
      <RegExpr attribute="Regular Expression" context="#pop" String="//(?=;)" />
      <Detect2Chars attribute="Comment" context="JSComment" char="/" char1="/" />
@@ -566,16 +461,14 @@
      <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[\[\]]" />
      <DetectChar attribute="Pattern Character Class" context="#pop#pop" char="]" />
   </context>
-  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthrough="true" fallthroughContext="Regular Expression">
+  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthroughContext="Regular Expression">
      <DetectChar attribute="Pattern Internal Operator" context="Regular Expression" char="^" />
   </context>
-  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthrough="true" fallthroughContext="Regular Expression Character Class">
+  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthroughContext="Regular Expression Character Class">
      <DetectChar attribute="Pattern Internal Operator" context="Regular Expression Character Class" char="^" />
   </context>
   
-  <context name="region_marker" attribute="Region Marker" lineEndContext="#pop" >
-     <DetectIdentifier />
-     <DetectSpaces />
+  <context name="region_marker" attribute="Region Marker" lineEndContext="#pop">
   </context>
 
 </contexts>
@@ -583,14 +476,6 @@
   <itemData name="Normal Text" defStyleNum="dsNormal" />
   <itemData name="Comment" defStyleNum="dsComment" />
   <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
-  <itemData name="Processing Instruction" defStyleNum="dsKeyword" />
-  <itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
-  <itemData name="Element" defStyleNum="dsKeyword" />
-  <itemData name="Attribute" defStyleNum="dsOthers" />
-  <itemData name="Value" defStyleNum="dsString" />
-  <itemData name="EntityRef" defStyleNum="dsDecVal" />
-  <itemData name="PEntityRef" defStyleNum="dsDecVal" />
-  <itemData name="Error" defStyleNum="dsError" />
 
   <itemData name="Keyword"      defStyleNum="dsKeyword"/>
   <itemData name="Function" defStyleNum="dsFunction"/>
