diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt
index 0b4f5fa708d2394b9d382d6f3a8a4951d6ee3a7d..42a222617af851dc6b4bc6ecdb3907fb1087a3ee 100644
--- a/data/pages/wiki/syntax.txt
+++ b/data/pages/wiki/syntax.txt
@@ -337,7 +337,7 @@ class HelloWorldApp {
 }
 </code>
 
-The following language strings are currently recognized: //abap actionscript-french, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, caddcl, cadlisp, cfdg, cfm, c_mac, c, cpp, cpp-qt, csharp, css, delphi, diff, div, dos, dot, d, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html, idl, ini, inno, io, java5, java, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, perl, per, php-brief, php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vbnet, vb, vhdl, visualfoxpro, winbatch, xml, xpp, z80//
+The following language strings are currently recognized: //abap actionscript-french, actionscript, ada, apache, applescript, asm, asp, autoit, bash, basic4gl, blitzbasic, bnf, caddcl, cadlisp, cfdg, cfm, c_mac, c, cpp, cpp-qt, csharp, css, delphi, diff, div, dos, dot, d, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html, idl, ini, inno, io, java5, java, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, perl, per, php-brief, php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vbnet, vb, vhdl, visualfoxpro, winbatch, xml, xpp, z80//
 
 
 ===== RSS/ATOM Feed Aggregation =====
diff --git a/inc/geshi.php b/inc/geshi.php
index 832b62efeca184ec773e4f15a421660d817b1206..362acd9c63ceaf113296977ae2cf7be697ff7f2d 100644
--- a/inc/geshi.php
+++ b/inc/geshi.php
@@ -27,8 +27,8 @@
  *
  * @package    geshi
  * @subpackage core
- * @author     Nigel McNie <nigel@geshi.org>
- * @copyright  (C) 2004 - 2007 Nigel McNie
+ * @author     Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
+ * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
  * @license    http://gnu.org/copyleft/gpl.html GNU GPL
  *
  */
@@ -41,7 +41,7 @@
 //
 
 /** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.7.20');
+define('GESHI_VERSION', '1.0.7.21');
 
 // Define the root directory for the GeSHi code tree
 if (!defined('GESHI_ROOT')) {
@@ -152,8 +152,8 @@ define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
  * about how to use this class.
  *
  * @package   geshi
- * @author    Nigel McNie <nigel@geshi.org>
- * @copyright (C) 2004 - 2007 Nigel McNie
+ * @author    Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
+ * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
  */
 class GeSHi {
     /**#@+
@@ -235,7 +235,7 @@ class GeSHi {
         'REGEXPS' =>     array(),
         'ESCAPE_CHAR' => true,
         'BRACKETS' =>    true,
-        'SYMBOLS' =>     true,
+        'SYMBOLS' =>     false,
         'STRINGS' =>     true,
         'NUMBERS' =>     true,
         'METHODS' =>     true,
@@ -314,6 +314,12 @@ class GeSHi {
      */
     var $highlight_extra_lines = array();
 
+    /**
+     * Styles of lines that should be highlighted extra
+     * @var array
+     */
+    var $highlight_extra_lines_styles = array();
+
     /**
      * Styles of extra-highlighted lines
      * @var string
@@ -614,6 +620,7 @@ class GeSHi {
      *
      * @param string  The style to use for actual code
      * @param boolean Whether to merge the current styles with the new styles
+     * @since 1.0.2
      */
     function set_code_style($style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
@@ -813,17 +820,20 @@ class GeSHi {
      * @param string  The style to make the symbols
      * @param boolean Whether to merge the new styles with the old or just
      *                to overwrite them
+     * @param int     Tells the group of symbols for which style should be set.
      * @since 1.0.1
      */
-    function set_symbols_style($style, $preserve_defaults = false) {
+    function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
         if (!$preserve_defaults) {
-            $this->language_data['STYLES']['SYMBOLS'][0] = $style;
+            $this->language_data['STYLES']['SYMBOLS'][$group] = $style;
         }
         else {
-            $this->language_data['STYLES']['SYMBOLS'][0] .= $style;
+            $this->language_data['STYLES']['SYMBOLS'][$group] .= $style;
         }
         // For backward compatibility
-        $this->set_brackets_style ($style, $preserve_defaults);
+        if(0 == $group) {
+            $this->set_brackets_style ($style, $preserve_defaults);
+        }
     }
 
     /**
@@ -978,10 +988,12 @@ class GeSHi {
      *
      * @param int A constant specifying what to do with matched keywords
      * @since 1.0.1
-     * @todo  Error check the passed value
      */
     function set_case_keywords($case) {
-        $this->language_data['CASE_KEYWORDS'] = $case;
+        if(in_array($case, array(
+            GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) {
+            $this->language_data['CASE_KEYWORDS'] = $case;
+        }
     }
 
     /**
@@ -1005,6 +1017,7 @@ class GeSHi {
 	 * Sets whether or not to use tab-stop width specifed by language
 	 *
 	 * @param boolean Whether to use language-specific tab-stop widths
+     * @since 1.0.7.20
 	 */
 	function set_use_language_tab_width($use) {
 		$this->use_language_tab_width = (bool) $use;
@@ -1015,6 +1028,7 @@ class GeSHi {
 	 * preference
 	 *
 	 * @return int Tab width
+     * @since 1.0.7.20
 	 */
 	function get_real_tab_width() {
 		if (!$this->use_language_tab_width || !isset($this->language_data['TAB_WIDTH'])) {
@@ -1042,42 +1056,37 @@ class GeSHi {
      * Disables all highlighting
      *
      * @since 1.0.0
-     * @todo Rewrite with an array traversal
+     * @todo  Rewrite with array traversal
+     * @deprecated In favour of enable_highlighting
      */
     function disable_highlighting() {
-        foreach ($this->lexic_permissions as $key => $value) {
-            if (is_array($value)) {
-                foreach ($value as $k => $v) {
-                    $this->lexic_permissions[$key][$k] = false;
-                }
-            }
-            else {
-                $this->lexic_permissions[$key] = false;
-            }
-        }
-        // Context blocks
-        $this->enable_important_blocks = false;
+        $this->enable_highlighting(false);
     }
 
     /**
      * Enables all highlighting
      *
+     * The optional flag parameter was added in version 1.0.7.21 and can be used
+     * to enable (true) or disable (false) all highlighting.
+     *
      * @since 1.0.0
+     * @param boolean A flag specifying whether to enable or disable all highlighting
      * @todo  Rewrite with array traversal
      */
-    function enable_highlighting() {
+    function enable_highlighting($flag = true) {
+        $flag = $flag ? true : false;
         foreach ($this->lexic_permissions as $key => $value) {
             if (is_array($value)) {
                 foreach ($value as $k => $v) {
-                    $this->lexic_permissions[$key][$k] = true;
+                    $this->lexic_permissions[$key][$k] = $flag;
                 }
             }
             else {
-                $this->lexic_permissions[$key] = true;
+                $this->lexic_permissions[$key] = $flag;
             }
         }
         // Context blocks
-        $this->enable_important_blocks = true;
+        $this->enable_important_blocks = $flag;
     }
 
     /**
@@ -1085,14 +1094,14 @@ class GeSHi {
      * name, or the empty string if it couldn't be found
      *
      * @param string The extension to get a language name for
-     * @param array  A lookup array to use instead of the default
+     * @param array  A lookup array to use instead of the default one
      * @since 1.0.5
      * @todo Re-think about how this method works (maybe make it private and/or make it
      *       a extension->lang lookup?)
      * @todo static?
      */
     function get_language_name_from_extension( $extension, $lookup = array() ) {
-        if ( !$lookup ) {
+        if ( !is_array($lookup) || !count($lookup)) {
             $lookup = array(
                 'actionscript' => array('as'),
                 'ada' => array('a', 'ada', 'adb', 'ads'),
@@ -1108,7 +1117,8 @@ class GeSHi {
                 'cpp' => array('cpp', 'h', 'hpp'),
                 'csharp' => array(),
                 'css' => array('css'),
-                'delphi' => array('dpk', 'dpr'),
+                'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
+                'dos' => array('bat', 'cmd'),
                 'html4strict' => array('html', 'htm'),
                 'java' => array('java'),
                 'javascript' => array('js'),
@@ -1119,7 +1129,7 @@ class GeSHi {
                 'objc' => array(),
                 'oobas' => array(),
                 'oracle8' => array(),
-                'pascal' => array('pas'),
+                'pascal' => array(),
                 'perl' => array('pl', 'pm'),
                 'php' => array('php', 'php5', 'phtml', 'phps'),
                 'python' => array('py'),
@@ -1155,6 +1165,8 @@ class GeSHi {
      *   'lang_name' ...
      * );</pre>
      *
+     * @param string The filename to load the source from
+     * @param array  A lookup array to use instead of the default one
      * @todo Complete rethink of this and above method
      * @since 1.0.5
      */
@@ -1325,8 +1337,10 @@ class GeSHi {
     /**
      * Sets whether context-important blocks are highlighted
      *
+     * @param boolean Tells whether to enable or disable highlighting of important blocks
      * @todo REMOVE THIS SHIZ FROM GESHI!
      * @deprecated
+     * @since 1.0.2
      */
     function enable_important_blocks($flag) {
         $this->enable_important_blocks = ( $flag ) ? true : false;
@@ -1345,19 +1359,27 @@ class GeSHi {
     /**
      * Specifies which lines to highlight extra
      *
+     * The extra style parameter was added in 1.0.7.21.
+     *
      * @param mixed An array of line numbers to highlight, or just a line
      *              number on its own.
+     * @param string A string specifying the style to use for this line
      * @since 1.0.2
      * @todo  Some data replication here that could be cut down on
      */
-    function highlight_lines_extra($lines) {
+    function highlight_lines_extra($lines, $style = null) {
         if (is_array($lines)) {
             foreach ($lines as $line) {
-                $this->highlight_extra_lines[intval($line)] = intval($line);
+                $this->highlight_lines_extra(line, $style);
             }
         }
         else {
             $this->highlight_extra_lines[intval($lines)] = intval($lines);
+            if ($style != null) {
+            	$this->highlight_extra_lines_styles[intval($lines)] = $style;
+            } else {
+            	unset($this->highlight_extra_lines_styles[intval($lines)]);
+            }
         }
     }
 
@@ -1375,6 +1397,7 @@ class GeSHi {
 	 * Sets the line-ending
 	 *
 	 * @param string The new line-ending
+	 * @since 1.0.2
 	 */
 	function set_line_ending($line_ending) {
 		$this->line_ending = (string)$line_ending;
@@ -1421,6 +1444,7 @@ class GeSHi {
      * Turns linking of keywords on or off.
      *
      * @param boolean If true, links will be added to keywords
+     * @since 1.0.2
      */
     function enable_keyword_links($enable = true) {
         $this->keyword_links = ($enable) ? true : false;
@@ -1707,7 +1731,7 @@ class GeSHi {
                                 $com_len = strlen($open);
                                 $test_str = substr( $part, $i, $com_len );
                                 $test_str_match = $test_str;
-                                if ($open == $test_str) {
+                                if (strtolower($open) == strtolower($test_str)) {
                                     $COMMENT_MATCHED = true;
                                     //@todo If remove important do remove here
                                     if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
@@ -1756,7 +1780,7 @@ class GeSHi {
                                         count($this->highlight_extra_lines) > 0)) {
                                         // strreplace to put close span and open span around multiline newlines
                                         $test_str .= str_replace(
-                                            "\n", "</span>\n<span$attributes>", 
+                                            "\n", "</span>\n<span$attributes>",
                                             str_replace("\n ", "\n&nbsp;", $rest_of_comment)
                                         );
                                     }
@@ -1789,6 +1813,25 @@ class GeSHi {
                                     else {
                                         $match = (strtolower($comment_mark) == strtolower($test_str));
                                     }
+                                    //This check will find special variables like $# in bash or compiler directives of Delphi beginning {$
+                                    if($match) {
+                                        $disallowed_before = "";
+                                        $disallowed_after = "";
+
+                                        if(isset($this->language_data['PARSER_CONTROL'])) {
+                                            if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) {
+                                                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) {
+                                                    $disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'];
+                                                }
+                                                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) {
+                                                    $disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'];
+                                                }
+                                            }
+                                        }
+
+                                        $match = $match && (!strlen($disallowed_before) || ((false === strpos($disallowed_before, substr($part, $i-1, 1))) && (0!=$i)));
+                                        $match = $match && (!strlen($disallowed_after) || ((false === strpos($disallowed_after, substr($part, $i+1, 1))) && (strlen($part)-1>$i)));
+                                    }
                                     if ($match) {
                                         $COMMENT_MATCHED = true;
                                         if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
@@ -1980,7 +2023,7 @@ class GeSHi {
         }
         // Other whitespace
         // BenBE: Fix to reduce the number of replacements to be done
-        $result = str_replace("\n ", "\n&nbsp;", $result);
+        $result = preg_replace('/^ /m', '&nbsp;', $result);
         $result = str_replace('  ', ' &nbsp;', $result);
 
         if ($this->line_numbers == GESHI_NO_LINE_NUMBERS) {
@@ -2049,8 +2092,9 @@ class GeSHi {
 
                     return '<|UR1|"' .
                         str_replace(
-                            array('{FNAME}', '.'),
-                            array(GeSHi::hsc($word), '<DOT>'),
+                            array('{FNAME}', '{FNAMEL}', '{FNAMEU}', '.'),
+                            array(GeSHi::hsc($word), GeSHi::hsc(strtolower($word)),
+                                GeSHi::hsc(strtoupper($word)), '<DOT>'),
                             $this->language_data['URLS'][$group]
                         ) . '">';
                 }
@@ -2130,23 +2174,26 @@ class GeSHi {
                             // Basically, we don't put the styles in yet because then the styles themselves will
                             // get highlighted if the language has a CSS keyword in it (like CSS, for example ;))
                             $styles = "/$k/";
-                            if ($this->language_data['CASE_SENSITIVE'][$k]) {
-                                $stuff_to_parse = preg_replace(
-                                    "/([^a-zA-Z0-9\$_\|\#;>|^])($keyword)(?=[^a-zA-Z0-9_<\|%\-&])/e",
-                                    "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
-                                    $stuff_to_parse
-                                );
-                            }
-                            else {
-                                // Change the case of the word.
-                                // hackage again... must... release... 1.2...
-                                if ('smarty' == $this->language) { $hackage = '\/'; } else { $hackage = ''; }
-                                $stuff_to_parse = preg_replace(
-                                    "/([^a-zA-Z0-9\$_\|\#;>$hackage|^])($keyword)(?=[^a-zA-Z0-9_<\|%\-&])/ie",
-                                    "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
-                                    $stuff_to_parse
-                                );
+                            $modifiers = ($this->language_data['CASE_SENSITIVE'][$k]) ? "e" : "ie";
+
+                            $disallowed_before = "a-zA-Z0-9\$_\|\#;>|^";
+                            $disallowed_after = "a-zA-Z0-9_<\|%\\-&";
+                            if(isset($this->language_data['PARSER_CONTROL'])) {
+                                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
+                                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
+                                        $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
+                                    }
+                                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
+                                        $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
+                                    }
+                                }
                             }
+                            $stuff_to_parse = preg_replace(
+                                "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers",
+                                "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
+                                $stuff_to_parse
+                            );
+
                             $stuff_to_parse = substr($stuff_to_parse, 0, strlen($stuff_to_parse) - 1);
                         }
                     }
@@ -2224,25 +2271,113 @@ class GeSHi {
             $stuff_to_parse = str_replace( $code_entities_match,  $code_entities_replace, $stuff_to_parse );
         }
 
+        //FIX for symbol highlighting ...
+        if($this->lexic_permissions['SYMBOLS']) {
+            //As this is a costy operation, we avoid doing it for multiple groups ...
+            //Instead we perform it for all symbols at once.
+            //
+            //For this to work, we need to reorganize the data arrays.
+            $symbol_data = $symbol_preg = array();
+            foreach($this->language_data['SYMBOLS'] as $key => $symbols) {
+                if(is_array($symbols)) {
+                    foreach($symbols as $sym) {
+                        if(!isset($symbol_data[$sym])) {
+                            $symbol_data[GeSHi::hsc($sym)] = $key;
+                            $symbol_preg[] = preg_quote(GeSHi::hsc($sym), '/');
+                        }
+                    }
+                } else {
+                    if(!isset($symbol_data[$symbols])) {
+                        $symbol_data[GeSHi::hsc($symbols)] = 0;
+                        $symbol_preg[] = preg_quote(GESHI::hsc($symbols), '/');
+                    }
+                }
+            }
+            //Now we have an array with each possible symbol as the key and the style as the actual data.
+            //This way we can set the correct style just the moment we highlight ...
+            //
+            //Now we need to rewrite our array to get a search string that
+            $sym_search = implode("|", $symbol_preg);
+            //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp)
+            preg_match_all("/(?:" . $sym_search . ")+/", $stuff_to_parse, $matches_in_stuff, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
+            //Match anything that is a highlighted block ...
+            preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>/", $stuff_to_parse, $highlighted_in_stuff, PREG_OFFSET_CAPTURE);
+            foreach($matches_in_stuff as $stuff_match_id => $stuff_match_data) {
+                foreach($highlighted_in_stuff[0] as $highlight_id => $highlight_data) {
+                    //Do a range check of the found highlight identifier and the OOP match ...
+                    if(($highlight_data[1] <= $stuff_match_data[0][1]) &&
+                        ($highlight_data[1] + strlen($highlight_data[0]) >= $stuff_match_data[0][1] + strlen($stuff_match_data[0][0])))
+                    {
+                        //We found a match that was already highlighted ...
+                        unset($matches_in_stuff[$stuff_match_id]);
+                        break;
+                    }
+                }
+            }
+            //Rebuild the matches array to be ordered by offset ...
+            $symbol_offsets = array();
+            foreach($matches_in_stuff as $stuff_match_data) {
+                $symbol_offsets[$stuff_match_data[0][1]] = $stuff_match_data[0][0];
+            }
+            krsort($symbol_offsets);
+            //Perform the actual replacements ...
+            foreach($symbol_offsets as $symbol_offset => $symbol_match) {
+                $symbol_hl = "";
+                $old_sym = -1;
+                //Split the current stuff to replace into its atomic symbols ...
+                preg_match_all("/$sym_search/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER);
+                foreach($sym_match_syms[0] as $sym_ms) {
+                    //Check if consequtive symbols belong to the same group to save output ...
+                    if (isset($symbol_data[$sym_ms]) && ($symbol_data[$sym_ms] != $old_sym)) {
+                        if(-1 != $old_sym) {
+                            $symbol_hl .= "|>";
+                        }
+                        $old_sym = $symbol_data[$sym_ms];
+                        if (!$this->use_classes) {
+                            $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">';
+                        }
+                        else {
+                            $symbol_hl .= '<| class="sy' . $old_sym . '">';
+                        }
+                    }
+                    $symbol_hl .= $sym_ms;
+                }
+                //Close remaining tags and insert the replacement at the right position ...
+                //Take caution if symbol_hl is empty to avoid doubled closing spans.
+                if (-1 != $old_sym) {
+                    $symbol_hl .= "|>";
+                }
+                $stuff_to_parse = substr($stuff_to_parse, 0, $symbol_offset) . $symbol_hl . substr($stuff_to_parse, $symbol_offset + strlen($symbol_match));
+            }
+        }
+        //FIX for symbol highlighting ...
+
         //
         // Add class/style for regexps
         //
         foreach ($this->language_data['REGEXPS'] as $key => $regexp) {
             if ($this->lexic_permissions['REGEXPS'][$key]) {
-                if (!$this->use_classes) {
-                    $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
+                if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) {
+                    $func = $this->language_data['STYLES']['REGEXPS'][$key];
+                    $stuff_to_parse = preg_replace("/!REG3XP$key!(.*)\|>/eU",
+                        "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'", $stuff_to_parse);
                 }
                 else {
-                   if(is_array($this->language_data['REGEXPS'][$key]) &&
-                            array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
-                        $attributes = ' class="'
-                            . $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
+                    if (!$this->use_classes) {
+                        $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
                     }
-                   else {
-                       $attributes = ' class="re' . $key . '"';
+                    else {
+                        if (is_array($this->language_data['REGEXPS'][$key]) &&
+                            array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
+                            $attributes = ' class="' .
+                                $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
+                        }
+                        else {
+                           $attributes = ' class="re' . $key . '"';
+                        }
                     }
+                    $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
                 }
-                $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
             }
         }
 
@@ -2298,6 +2433,8 @@ class GeSHi {
     /**
      * Gets language information and stores it for later use
      *
+     * @param string The filename of the language file you want to load
+     * @since 1.0.0
      * @access private
      * @todo Needs to load keys for lexic permissions for keywords, regexps etc
      */
@@ -2371,10 +2508,12 @@ class GeSHi {
             // Set vars to defaults for following loop
             $parsed_code = '';
             $i = 0;
-            $attrs = array();
 
             // Foreach line...
             foreach ($code as $line) {
+                //Reset the attributes for a new line ...
+                $attrs = array();
+
                 // Make lines have at least one space in them if they're empty
                 // BenBE: Checking emptiness using trim instead of relying on blanks
                 if ('' == trim($line)) {
@@ -2421,21 +2560,24 @@ class GeSHi {
                 if ($this->add_ids) {
                     $attrs['id'][] = "$this->overall_id-$i";
                 }
-                if ($this->use_classes && in_array($i, $this->highlight_extra_lines)) {
-                    $attrs['class'][] = 'ln-xtra';
-                }
-                if (!$this->use_classes && in_array($i, $this->highlight_extra_lines)) {
-                    $attrs['style'][] = $this->highlight_extra_lines_style;
+                if (in_array($i, $this->highlight_extra_lines)) {
+                    if ($this->use_classes) {
+                        if(array_key_exists($i, $this->highlight_extra_lines_styles)) {
+                            $attrs['class'][] = "lx$i";
+                        } else {
+                            $attrs['class'][] = "ln-xtra";
+                        }
+                    } else {
+                        array_push($attrs['style'], $this->get_line_style($i));
+                    }
                 }
 
                 // Add in the line surrounded by appropriate list HTML
-                $attr_string = ' ';
+                $attr_string = '';
                 foreach ($attrs as $key => $attr) {
-                    $attr_string .= $key . '="' . implode(' ', $attr) . '" ';
+                    $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"';
                 }
-                $attr_string = substr($attr_string, 0, -1);
                 $parsed_code .= "<li$attr_string>$start$line$end</li>$ls";
-                $attrs = array();
             }
         }
         else {
@@ -2452,15 +2594,17 @@ class GeSHi {
                 }
                 if (in_array(++$i, $this->highlight_extra_lines)) {
                     if ($this->use_classes) {
-                        $parsed_code .= '<div class="ln-xtra">';
-                    }
-                    else {
-                        $parsed_code .= "<div style=\"{$this->highlight_extra_lines_style}\">";
+                        if (array_key_exists($i, $this->highlight_extra_lines_styles)) {
+                            $parsed_code .= "<div class=\"lx$i\">";
+                        } else {
+                            $parsed_code .= "<div class=\"ln-xtra\">";
+                        }
+                    } else {
+                        $parsed_code .= "<div style=\"" . $this->get_line_style($i) . "\">";
                     }
                     // Remove \n because it stuffs up <pre> header
                     $parsed_code .= $line . "</div>";
-                }
-                else {
+                } else {
                     $parsed_code .= $line . "\n";
                 }
             }
@@ -2699,13 +2843,14 @@ class GeSHi {
      * @copyright   Copyright 2007, {@link http://wikkawiki.org/CreditsPage
      *              Wikka Development Team}
      *
-     * @access      public
+     * @access      private
      * @param       string  $string string to be converted
      * @param       integer $quote_style
      *                      - ENT_COMPAT:   escapes &, <, > and double quote (default)
      *                      - ENT_NOQUOTES: escapes only &, < and >
      *                      - ENT_QUOTES:   escapes &, <, >, double and single quotes
      * @return      string  converted string
+     * @since       1.0.7.18
      */
     function hsc($string, $quote_style=ENT_COMPAT) {
         // init
@@ -2753,9 +2898,20 @@ class GeSHi {
 
         // Header of the stylesheet
         if (!$economy_mode) {
-            $stylesheet = "/**\n * GeSHi Dynamically Generated Stylesheet\n * --------------------------------------\n * Dynamically generated stylesheet for {$this->language}\n * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter)\n */\n";
+            $stylesheet = "/**\n".
+                " * GeSHi Dynamically Generated Stylesheet\n".
+                " * --------------------------------------\n".
+                " * Dynamically generated stylesheet for {$this->language}\n".
+                " * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n".
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
+                " * --------------------------------------\n".
+                " */\n";
          } else {
-            $stylesheet = '/* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) */' . "\n";
+            $stylesheet = "/**\n".
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
+                " */\n";
         }
 
         // Set the <ol> to have no effect at all if there are line numbers
@@ -2801,29 +2957,26 @@ class GeSHi {
             $stylesheet .= "$selector.imp {{$this->important_styles}}\n";
         }
 
-        // Styles for lines being highlighted extra
-        if (!$economy_mode || count($this->highlight_extra_lines)) {
-            $stylesheet .= "$selector.ln-xtra {{$this->highlight_extra_lines_style}}\n";
-        }
-
         // Simple line number styles
         if (!$economy_mode || ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->line_style1 != '')) {
-            $stylesheet .= "{$selector}li {{$this->line_style1}}\n";
+            $stylesheet .= "{$selector}li, {$selector}li.li1 {{$this->line_style1}}\n";
         }
-
         // If there is a style set for fancy line numbers, echo it out
         if (!$economy_mode || ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $this->line_style2 != '')) {
             $stylesheet .= "{$selector}li.li2 {{$this->line_style2}}\n";
         }
 
         foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) {
-            if (!$economy_mode || !($economy_mode && (!$this->lexic_permissions['KEYWORDS'][$group] || $styles == ''))) {
+            if (!$economy_mode || ($economy_mode && $styles != '') &&
+                (isset($this->lexic_permissions['KEYWORDS'][$group]) &&
+                $this->lexic_permissions['KEYWORDS'][$group])) {
                 $stylesheet .= "$selector.kw$group {{$styles}}\n";
             }
         }
         foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) {
-            if (!$economy_mode || !($economy_mode && $styles == '') &&
-                !($economy_mode && !$this->lexic_permissions['COMMENTS'][$group])) {
+            if (!$economy_mode || ($economy_mode && $styles != '') &&
+                (isset($this->lexic_permissions['COMMENTS'][$group]) &&
+                $this->lexic_permissions['COMMENTS'][$group])) {
                 $stylesheet .= "$selector.co$group {{$styles}}\n";
             }
         }
@@ -2833,12 +2986,18 @@ class GeSHi {
                 $stylesheet .= "$selector.es$group {{$styles}}\n";
             }
         }
-        foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
+        foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) {
             if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode &&
                 !$this->lexic_permissions['BRACKETS'])) {
                 $stylesheet .= "$selector.br$group {{$styles}}\n";
             }
         }
+        foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
+            if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode &&
+                !$this->lexic_permissions['SYMBOLS'])) {
+                $stylesheet .= "$selector.sy$group {{$styles}}\n";
+            }
+        }
         foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) {
             if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode &&
                 !$this->lexic_permissions['STRINGS'])) {
@@ -2863,8 +3022,9 @@ class GeSHi {
             }
         }
         foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) {
-            if (!$economy_mode || !($economy_mode && $styles == '') && !($economy_mode &&
-                !$this->lexic_permissions['REGEXPS'][$group])) {
+            if (!$economy_mode || ($economy_mode && $styles != '') &&
+                (isset($this->lexic_permissions['REGEXPS'][$group]) &&
+                $this->lexic_permissions['REGEXPS'][$group])) {
                 if (is_array($this->language_data['REGEXPS'][$group]) &&
                          array_key_exists(GESHI_CLASS,
                                     $this->language_data['REGEXPS'][$group])) {
@@ -2877,10 +3037,35 @@ class GeSHi {
                 }
             }
         }
+        // Styles for lines being highlighted extra
+        if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) {
+            $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n";
+        }
+        foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) {
+            $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n";
+        }
 
         return $stylesheet;
     }
 
+    /**
+     * Get's the style that is used for the specified line
+     *
+     * @param int The line number information is requested for
+     * @access private
+     * @since 1.0.7.21
+     */
+    function get_line_style($line) {
+    	//$style = null;
+    	$style = null;
+    	if (array_key_exists($line, $this->highlight_extra_lines_styles)) {
+    		$style = $this->highlight_extra_lines_styles[$line];
+    	} else { // if no "extra" style assigned
+	    	$style = $this->highlight_extra_lines_style;
+    	}
+
+    	return $style;
+    }
 } // End Class GeSHi
 
 
diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php
index 27ea485d9ccb5b8da2a6094ebf0df2e041d16e54..b25408079957258887873e660ef0cedf5320fc87 100644
--- a/inc/geshi/abap.php
+++ b/inc/geshi/abap.php
@@ -4,10 +4,8 @@
  * --------
  * Author: Andres Picazo (andres@andrespicazo.com)
  * Copyright: (c) 2007 Andres Picazo
- * Release Version: 1.0.7.20
- * CVS Revision Version: $Revision: 1.6 $
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
- * Last Modified: $Date: 2005/11/20 07:47:40 $
  *
  * ABAP language file for GeSHi.
  *
diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php
index 23c93d43a01f3590ca544f947c07520ce3d0c218..a873c268f0f6b6b9de3a7e62d5e6490dc36592ee 100644
--- a/inc/geshi/actionscript.php
+++ b/inc/geshi/actionscript.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Steffen Krause (Steffen.krause@muse.de)
  * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/20
  *
  * Actionscript language file for GeSHi.
diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php
index 69fdbf7237cdda55091f1db204b50a10eee2e931..cd61a9e2291c111f66d60718575cc829f28ea029 100644
--- a/inc/geshi/ada.php
+++ b/inc/geshi/ada.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/29
  *
  * Ada language file for GeSHi.
diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php
index cde0274dc207acd6d4e30c2a46468a8eec3e8c3c..aed20b8f4071d0413ef22a386330f2c86e678395 100644
--- a/inc/geshi/apache.php
+++ b/inc/geshi/apache.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/29/07
  *
  * Apache language file for GeSHi.
diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php
index df4cad1e3dda34f3ff3c21f4a8cb695621402823..831bf2d0f63c8b847acd1158bf10a5a9d694be86 100644
--- a/inc/geshi/applescript.php
+++ b/inc/geshi/applescript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Stephan Klimek (http://www.initware.org)
  * Copyright: Stephan Klimek (http://www.initware.org)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/07/20
  *
  * AppleScript language file for GeSHi.
@@ -12,7 +12,7 @@
  * CHANGES
  * -------
  *
- * TODO 
+ * TODO
  * -------------------------
  * URL settings to references
  *
diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php
index 37a3fe3bc10e9b2d9bd90371f43452b350fc55aa..38bc5a4f1a2b983f21120aa3dbe85c161202f48f 100644
--- a/inc/geshi/asm.php
+++ b/inc/geshi/asm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/27
  *
  * x86 Assembler language file for GeSHi.
diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php
index 49d584a0dc0be1f1936026b6e2e14514db6ef5c9..0895ae30a144dac4f9728df6b1856c52140da591 100644
--- a/inc/geshi/asp.php
+++ b/inc/geshi/asp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Amit Gupta (http://blog.igeek.info/)
  * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/13
  *
  * ASP language file for GeSHi.
@@ -50,7 +50,7 @@ $language_data = array (
 	'COMMENT_MULTI' => array('/*' => '*/'),
 	'CASE_KEYWORDS' => 0,
 	'QUOTEMARKS' => array('"'),
-	'ESCAPE_CHAR' => '\\',
+	'ESCAPE_CHAR' => '',
 	'KEYWORDS' => array(
 		1 => array(
 			'include', 'file', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve',
diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php
index f6c662f922fb0be8dd40473fdd262175b2cab1d1..54bcfd7e1ba29193d3b2435aa1c34b66c56a42ba 100644
--- a/inc/geshi/autoit.php
+++ b/inc/geshi/autoit.php
@@ -4,8 +4,8 @@
  * --------
  * Author: big_daddy (robert.i.anthony@gmail.com)
  * Copyright: (c) 2006 and to GESHi ;)
- * Release Version: 1.0.7.20
- * Date Started: 26.01.2006
+ * Release Version: 1.0.7.21
+ * Date Started: 2006/01/26
  *
  * Current bugs & todo:
  * ----------
diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php
index 782568b8c5a15f3fe1fe70bafb4d43fdd438eacc..55d295f4c65f5e9559ba9bdeb42e46d07d6aacce 100644
--- a/inc/geshi/bash.php
+++ b/inc/geshi/bash.php
@@ -4,13 +4,15 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org)
  * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/20
  *
  * BASH language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2007/09/05 (1.0.7.21)
+ *  -  PARSER_CONTROL patch using SF #1788408 (BenBE)
  * 2007/06/11 (1.0.7.20)
  *  -  Added a lot of keywords (BenBE / Jan G)
  * 2004/11/27 (1.0.2)
@@ -50,7 +52,7 @@ $language_data = array (
     // Bash DOES have single line comments with # markers. But bash also has
     // the  $# variable, so comments need special handling (see sf.net
     // 1564839)
-	'COMMENT_SINGLE' => array(),
+	'COMMENT_SINGLE' => array('#'),
 	'COMMENT_MULTI' => array(),
 	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
 	'QUOTEMARKS' => array("'", '"'),
@@ -88,7 +90,7 @@ $language_data = array (
 			'last', 'lastb', 'ld', 'ld86', 'ldd', 'less', 'lex', 'link', 'ln', 'loadkeys',
 			'loadunimap', 'locate', 'lockfile', 'login', 'logname',
 			'lp', 'lpr', 'ls', 'lsattr', 'lsmod', 'lsmod.old', 'lynx',
-			'm4', 'make', 'man', 'mapscrn', 'mesg', 'mkdir', 'mkfifo', 
+			'm4', 'make', 'man', 'mapscrn', 'mesg', 'mkdir', 'mkfifo',
 			'mknod', 'mktemp', 'more', 'mount', 'msgfmt', 'mv',
 			'namei', 'nano', 'nasm', 'nawk', 'netstat', 'nice',
 			'nisdomainname', 'nl', 'nm', 'nm86', 'nmap', 'nohup', 'nop',
@@ -144,7 +146,7 @@ $language_data = array (
 			3 => 'color: #7a0874; font-weight: bold;'
 			),
 		'COMMENTS' => array(
-			1 => 'color: #808080; font-style: italic;'
+			0 => 'color: #808080; font-style: italic;'
 			),
 		'ESCAPE_CHAR' => array(
 			0 => 'color: #000099; font-weight: bold;'
@@ -167,7 +169,7 @@ $language_data = array (
 			0 => 'color: #007800;',
 			1 => 'color: #007800;',
 			2 => 'color: #007800;',
-			3 => 'color: #808080; font-style: italic;',
+//			3 => 'color: #808080; font-style: italic;',
 			4 => 'color: #007800;'
 			),
 		'SCRIPT' => array(
@@ -185,14 +187,19 @@ $language_data = array (
 		0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}",
 		1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*",
 		2 => "([a-zA-Z_][a-zA-Z0-9_]*)=",
-		3 => "(?<!\\$)#[^\n]*",
-		4 => "\\$#"
+//		3 => "(?<!\\$)#[^\n]*",
+		4 => "\\$[*#\$\\-\\?!]"
 		),
 	'STRICT_MODE_APPLIES' => GESHI_NEVER,
 	'SCRIPT_DELIMITERS' => array(
 		),
 	'HIGHLIGHT_STRICT_BLOCK' => array(
-		)
+		),
+	'PARSER_CONTROL' => array(
+	    'COMMENTS' => array(
+	       'DISALLOWED_BEFORE' => '$'
+        )
+    )
 );
 
 ?>
diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php
new file mode 100644
index 0000000000000000000000000000000000000000..d36c1fd3fbc66386aadbbe1223149ef12fca2cd8
--- /dev/null
+++ b/inc/geshi/basic4gl.php
@@ -0,0 +1,336 @@
+<?php
+/*************************************************************************************
+ * basic4gl.php
+ * ---------------------------------
+ * Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
+ * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
+ * Release Version: 1.0.7.21
+ * Date Started: 2007/09/15
+ *
+ * Basic4GL language file for GeSHi.
+ *
+ * You can find the Basic4GL Website at (http://www.basic4gl.net/)
+ *
+ * CHANGES
+ * -------
+ * 2007/09/17 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2007/09/17)
+ * -------------------------
+ * Make sure all the OpenGL and Basic4GL commands have been added and are complete.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute 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.
+ *
+ *   GeSHi 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 GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+	'LANG_NAME' => 'Basic4GL',
+    'COMMENT_SINGLE' => array(1 => "'"),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+		1 => array(
+
+			// Navy Blue Bold Keywords
+
+			'true','rnd_max','m_pi','m_e','false','VK_ZOOM','VK_UP','VK_TAB','VK_SUBTRACT','VK_SPACE','VK_SNAPSHOT',
+			'VK_SHIFT','VK_SEPARATOR','VK_SELECT','VK_SCROLL','VK_RWIN','VK_RSHIFT','VK_RMENU','VK_RIGHT','VK_RETURN',
+			'VK_RCONTROL','VK_RBUTTON','VK_PROCESSKEY','VK_PRIOR','VK_PRINT','VK_PLAY','VK_PAUSE','VK_NUMPAD9','VK_NUMPAD8',
+			'VK_NUMPAD7','VK_NUMPAD6','VK_NUMPAD5','VK_NUMPAD4','VK_NUMPAD3','VK_NUMPAD2','VK_NUMPAD1','VK_NUMPAD0',
+			'VK_NUMLOCK','VK_NONCONVERT','VK_NEXT','VK_MULTIPLY','VK_MODECHANGE','VK_MENU','VK_MBUTTON','VK_LWIN',
+			'VK_LSHIFT','VK_LMENU','VK_LEFT','VK_LCONTROL','VK_LBUTTON','VK_KANJI','VK_KANA','VK_JUNJA','VK_INSERT',
+			'VK_HOME','VK_HELP','VK_HANJA','VK_HANGUL','VK_HANGEUL','VK_FINAL','VK_F9','VK_F8','VK_F7','VK_F6','VK_F5',
+			'VK_F4','VK_F3','VK_F24','VK_F23','VK_F22','VK_F21','VK_F20','VK_F2','VK_F19','VK_F18','VK_F17','VK_F16',
+			'VK_F15','VK_F14','VK_F13','VK_F12','VK_F11','VK_F10','VK_F1','VK_EXSEL','VK_EXECUTE','VK_ESCAPE','VK_EREOF',
+			'VK_END','VK_DOWN','VK_DIVIDE','VK_DELETE','VK_DECIMAL','VK_CRSEL','VK_CONVERT','VK_CONTROL','VK_CLEAR',
+			'VK_CAPITAL','VK_CANCEL','VK_BACK','VK_ATTN','VK_APPS','VK_ADD','VK_ACCEPT','TEXT_SIMPLE','TEXT_OVERLAID',
+			'TEXT_BUFFERED','SPR_TILEMAP','SPR_SPRITE','SPR_INVALID','MOUSE_RBUTTON','MOUSE_MBUTTON','MOUSE_LBUTTON',
+			'GL_ZOOM_Y','GL_ZOOM_X','GL_ZERO','GL_XOR','GL_WIN_swap_hint','GL_WIN_draw_range_elements','GL_VIEWPORT_BIT',
+			'GL_VIEWPORT','GL_VERTEX_ARRAY_TYPE_EXT','GL_VERTEX_ARRAY_TYPE','GL_VERTEX_ARRAY_STRIDE_EXT','GL_VERTEX_ARRAY_STRIDE',
+			'GL_VERTEX_ARRAY_SIZE_EXT','GL_VERTEX_ARRAY_SIZE','GL_VERTEX_ARRAY_POINTER_EXT','GL_VERTEX_ARRAY_POINTER',
+			'GL_VERTEX_ARRAY_EXT','GL_VERTEX_ARRAY_COUNT_EXT','GL_VERTEX_ARRAY','GL_VERSION_1_1','GL_VERSION','GL_VENDOR',
+			'GL_V3F','GL_V2F','GL_UNSIGNED_SHORT','GL_UNSIGNED_INT','GL_UNSIGNED_BYTE','GL_UNPACK_SWAP_BYTES','GL_UNPACK_SKIP_ROWS',
+			'GL_UNPACK_SKIP_PIXELS','GL_UNPACK_ROW_LENGTH','GL_UNPACK_LSB_FIRST','GL_UNPACK_ALIGNMENT','GL_TRUE','GL_TRIANGLE_STRIP',
+			'GL_TRIANGLE_FAN','GL_TRIANGLES','GL_TRANSFORM_BIT','GL_TEXTURE_WRAP_T','GL_TEXTURE_WRAP_S','GL_TEXTURE_WIDTH',
+			'GL_TEXTURE_STACK_DEPTH','GL_TEXTURE_RESIDENT','GL_TEXTURE_RED_SIZE','GL_TEXTURE_PRIORITY','GL_TEXTURE_MIN_FILTER',
+			'GL_TEXTURE_MATRIX','GL_TEXTURE_MAG_FILTER','GL_TEXTURE_LUMINANCE_SIZE','GL_TEXTURE_INTERNAL_FORMAT','GL_TEXTURE_INTENSITY_SIZE',
+			'GL_TEXTURE_HEIGHT','GL_TEXTURE_GREEN_SIZE','GL_TEXTURE_GEN_T','GL_TEXTURE_GEN_S','GL_TEXTURE_GEN_R','GL_TEXTURE_GEN_Q',
+			'GL_TEXTURE_GEN_MODE','GL_TEXTURE_ENV_MODE','GL_TEXTURE_ENV_COLOR','GL_TEXTURE_ENV','GL_TEXTURE_COORD_ARRAY_TYPE_EXT',
+			'GL_TEXTURE_COORD_ARRAY_TYPE','GL_TEXTURE_COORD_ARRAY_STRIDE_EXT','GL_TEXTURE_COORD_ARRAY_STRIDE','GL_TEXTURE_COORD_ARRAY_SIZE_EXT',
+			'GL_TEXTURE_COORD_ARRAY_SIZE','GL_TEXTURE_COORD_ARRAY_POINTER_EXT','GL_TEXTURE_COORD_ARRAY_POINTER','GL_TEXTURE_COORD_ARRAY_EXT',
+			'GL_TEXTURE_COORD_ARRAY_COUNT_EXT','GL_TEXTURE_COORD_ARRAY','GL_TEXTURE_COMPONENTS','GL_TEXTURE_BORDER_COLOR','GL_TEXTURE_BORDER',
+			'GL_TEXTURE_BLUE_SIZE','GL_TEXTURE_BIT','GL_TEXTURE_BINDING_2D','GL_TEXTURE_BINDING_1D','GL_TEXTURE_ALPHA_SIZE',
+			'GL_TEXTURE_2D','GL_TEXTURE_1D','GL_TEXTURE9_ARB','GL_TEXTURE9','GL_TEXTURE8_ARB','GL_TEXTURE8','GL_TEXTURE7_ARB',
+			'GL_TEXTURE7','GL_TEXTURE6_ARB','GL_TEXTURE6','GL_TEXTURE5_ARB','GL_TEXTURE5','GL_TEXTURE4_ARB','GL_TEXTURE4',
+			'GL_TEXTURE3_ARB','GL_TEXTURE31_ARB','GL_TEXTURE31','GL_TEXTURE30_ARB','GL_TEXTURE30','GL_TEXTURE3','GL_TEXTURE2_ARB',
+			'GL_TEXTURE29_ARB','GL_TEXTURE29','GL_TEXTURE28_ARB','GL_TEXTURE28','GL_TEXTURE27_ARB','GL_TEXTURE27','GL_TEXTURE26_ARB',
+			'GL_TEXTURE26','GL_TEXTURE25_ARB','GL_TEXTURE25','GL_TEXTURE24_ARB','GL_TEXTURE24','GL_TEXTURE23_ARB','GL_TEXTURE23',
+			'GL_TEXTURE22_ARB','GL_TEXTURE22','GL_TEXTURE21_ARB','GL_TEXTURE21','GL_TEXTURE20_ARB','GL_TEXTURE20','GL_TEXTURE2',
+			'GL_TEXTURE1_ARB','GL_TEXTURE19_ARB','GL_TEXTURE19','GL_TEXTURE18_ARB','GL_TEXTURE18','GL_TEXTURE17_ARB',
+			'GL_TEXTURE17','GL_TEXTURE16_ARB','GL_TEXTURE16','GL_TEXTURE15_ARB','GL_TEXTURE15','GL_TEXTURE14_ARB','GL_TEXTURE14',
+			'GL_TEXTURE13_ARB','GL_TEXTURE13','GL_TEXTURE12_ARB','GL_TEXTURE12','GL_TEXTURE11_ARB','GL_TEXTURE11','GL_TEXTURE10_ARB',
+			'GL_TEXTURE10','GL_TEXTURE1','GL_TEXTURE0_ARB','GL_TEXTURE0','GL_TEXTURE','GL_T4F_V4F','GL_T4F_C4F_N3F_V4F','GL_T2F_V3F',
+			'GL_T2F_N3F_V3F','GL_T2F_C4UB_V3F','GL_T2F_C4F_N3F_V3F','GL_T2F_C3F_V3F','GL_T','GL_SUBPIXEL_BITS','GL_STEREO',
+			'GL_STENCIL_WRITEMASK','GL_STENCIL_VALUE_MASK','GL_STENCIL_TEST','GL_STENCIL_REF','GL_STENCIL_PASS_DEPTH_PASS',
+			'GL_STENCIL_PASS_DEPTH_FAIL','GL_STENCIL_INDEX','GL_STENCIL_FUNC','GL_STENCIL_FAIL','GL_STENCIL_CLEAR_VALUE',
+			'GL_STENCIL_BUFFER_BIT','GL_STENCIL_BITS','GL_STENCIL','GL_STACK_UNDERFLOW','GL_STACK_OVERFLOW','GL_SRC_COLOR',
+			'GL_SRC_ALPHA_SATURATE','GL_SRC_ALPHA','GL_SPOT_EXPONENT','GL_SPOT_DIRECTION','GL_SPOT_CUTOFF','GL_SPHERE_MAP',
+			'GL_SPECULAR','GL_SOURCE2_RGB_EXT','GL_SOURCE2_RGB','GL_SOURCE2_ALPHA_EXT','GL_SOURCE2_ALPHA','GL_SOURCE1_RGB_EXT',
+			'GL_SOURCE1_RGB','GL_SOURCE1_ALPHA_EXT','GL_SOURCE1_ALPHA','GL_SOURCE0_RGB_EXT','GL_SOURCE0_RGB','GL_SOURCE0_ALPHA_EXT',
+			'GL_SOURCE0_ALPHA','GL_SMOOTH','GL_SHORT','GL_SHININESS','GL_SHADE_MODEL','GL_SET','GL_SELECTION_BUFFER_SIZE',
+			'GL_SELECTION_BUFFER_POINTER','GL_SELECT','GL_SCISSOR_TEST','GL_SCISSOR_BOX','GL_SCISSOR_BIT','GL_S','GL_RIGHT',
+			'GL_RGB_SCALE_EXT','GL_RGB_SCALE','GL_RGBA_MODE','GL_RGBA8','GL_RGBA4','GL_RGBA2','GL_RGBA16','GL_RGBA12','GL_RGBA',
+			'GL_RGB8','GL_RGB5_A1','GL_RGB5','GL_RGB4','GL_RGB16','GL_RGB12','GL_RGB10_A2','GL_RGB10','GL_RGB','GL_RETURN',
+			'GL_REPLACE','GL_REPEAT','GL_RENDER_MODE','GL_RENDERER','GL_RENDER','GL_RED_SCALE','GL_RED_BITS','GL_RED_BIAS',
+			'GL_RED','GL_READ_BUFFER','GL_R3_G3_B2','GL_R','GL_QUAD_STRIP','GL_QUADS','GL_QUADRATIC_ATTENUATION','GL_Q',
+			'GL_PROXY_TEXTURE_2D','GL_PROXY_TEXTURE_1D','GL_PROJECTION_STACK_DEPTH','GL_PROJECTION_MATRIX','GL_PROJECTION',
+			'GL_PRIMARY_COLOR_EXT','GL_PRIMARY_COLOR','GL_PREVIOUS_EXT','GL_PREVIOUS','GL_POSITION','GL_POLYGON_TOKEN',
+			'GL_POLYGON_STIPPLE_BIT','GL_POLYGON_STIPPLE','GL_POLYGON_SMOOTH_HINT','GL_POLYGON_SMOOTH','GL_POLYGON_OFFSET_UNITS',
+			'GL_POLYGON_OFFSET_POINT','GL_POLYGON_OFFSET_LINE','GL_POLYGON_OFFSET_FILL','GL_POLYGON_OFFSET_FACTOR','GL_POLYGON_MODE',
+			'GL_POLYGON_BIT','GL_POLYGON','GL_POINT_TOKEN','GL_POINT_SMOOTH_HINT','GL_POINT_SMOOTH','GL_POINT_SIZE_RANGE',
+			'GL_POINT_SIZE_GRANULARITY','GL_POINT_SIZE','GL_POINT_BIT','GL_POINTS','GL_POINT','GL_PIXEL_MODE_BIT',
+			'GL_PIXEL_MAP_S_TO_S_SIZE','GL_PIXEL_MAP_S_TO_S','GL_PIXEL_MAP_R_TO_R_SIZE','GL_PIXEL_MAP_R_TO_R','GL_PIXEL_MAP_I_TO_R_SIZE',
+			'GL_PIXEL_MAP_I_TO_R','GL_PIXEL_MAP_I_TO_I_SIZE','GL_PIXEL_MAP_I_TO_I','GL_PIXEL_MAP_I_TO_G_SIZE','GL_PIXEL_MAP_I_TO_G',
+			'GL_PIXEL_MAP_I_TO_B_SIZE','GL_PIXEL_MAP_I_TO_B','GL_PIXEL_MAP_I_TO_A_SIZE','GL_PIXEL_MAP_I_TO_A','GL_PIXEL_MAP_G_TO_G_SIZE',
+			'GL_PIXEL_MAP_G_TO_G','GL_PIXEL_MAP_B_TO_B_SIZE','GL_PIXEL_MAP_B_TO_B','GL_PIXEL_MAP_A_TO_A_SIZE','GL_PIXEL_MAP_A_TO_A',
+			'GL_PHONG_WIN','GL_PHONG_HINT_WIN','GL_PERSPECTIVE_CORRECTION_HINT','GL_PASS_THROUGH_TOKEN','GL_PACK_SWAP_BYTES',
+			'GL_PACK_SKIP_ROWS','GL_PACK_SKIP_PIXELS','GL_PACK_ROW_LENGTH','GL_PACK_LSB_FIRST','GL_PACK_ALIGNMENT','GL_OUT_OF_MEMORY',
+			'GL_OR_REVERSE','GL_OR_INVERTED','GL_ORDER','GL_OR','GL_OPERAND2_RGB_EXT','GL_OPERAND2_RGB','GL_OPERAND2_ALPHA_EXT',
+			'GL_OPERAND2_ALPHA','GL_OPERAND1_RGB_EXT','GL_OPERAND1_RGB','GL_OPERAND1_ALPHA_EXT','GL_OPERAND1_ALPHA','GL_OPERAND0_RGB_EXT',
+			'GL_OPERAND0_RGB','GL_OPERAND0_ALPHA_EXT','GL_OPERAND0_ALPHA','GL_ONE_MINUS_SRC_COLOR','GL_ONE_MINUS_SRC_ALPHA',
+			'GL_ONE_MINUS_DST_COLOR','GL_ONE_MINUS_DST_ALPHA','GL_ONE','GL_OBJECT_PLANE','GL_OBJECT_LINEAR','GL_NO_ERROR',
+			'GL_NOTEQUAL','GL_NORMAL_ARRAY_TYPE_EXT','GL_NORMAL_ARRAY_TYPE','GL_NORMAL_ARRAY_STRIDE_EXT','GL_NORMAL_ARRAY_STRIDE',
+			'GL_NORMAL_ARRAY_POINTER_EXT','GL_NORMAL_ARRAY_POINTER','GL_NORMAL_ARRAY_EXT','GL_NORMAL_ARRAY_COUNT_EXT',
+			'GL_NORMAL_ARRAY','GL_NORMALIZE','GL_NOR','GL_NOOP','GL_NONE','GL_NICEST','GL_NEVER','GL_NEAREST_MIPMAP_NEAREST','GL_NEAREST_MIPMAP_LINEAR',
+			'GL_NEAREST','GL_NAND','GL_NAME_STACK_DEPTH','GL_N3F_V3F','GL_MULT','GL_MODULATE','GL_MODELVIEW_STACK_DEPTH','GL_MODELVIEW_MATRIX',
+			'GL_MODELVIEW','GL_MAX_VIEWPORT_DIMS','GL_MAX_TEXTURE_UNITS_ARB','GL_MAX_TEXTURE_UNITS','GL_MAX_TEXTURE_STACK_DEPTH',
+			'GL_MAX_TEXTURE_SIZE','GL_MAX_PROJECTION_STACK_DEPTH','GL_MAX_PIXEL_MAP_TABLE','GL_MAX_NAME_STACK_DEPTH','GL_MAX_MODELVIEW_STACK_DEPTH',
+			'GL_MAX_LIST_NESTING','GL_MAX_LIGHTS','GL_MAX_EVAL_ORDER','GL_MAX_ELEMENTS_VERTICES_WIN','GL_MAX_ELEMENTS_INDICES_WIN',
+			'GL_MAX_CLIP_PLANES','GL_MAX_CLIENT_ATTRIB_STACK_DEPTH','GL_MAX_ATTRIB_STACK_DEPTH','GL_MATRIX_MODE','GL_MAP_STENCIL',
+			'GL_MAP_COLOR','GL_MAP2_VERTEX_4','GL_MAP2_VERTEX_3','GL_MAP2_TEXTURE_COORD_4','GL_MAP2_TEXTURE_COORD_3','GL_MAP2_TEXTURE_COORD_2',
+			'GL_MAP2_TEXTURE_COORD_1','GL_MAP2_NORMAL','GL_MAP2_INDEX','GL_MAP2_GRID_SEGMENTS','GL_MAP2_GRID_DOMAIN','GL_MAP2_COLOR_4',
+			'GL_MAP1_VERTEX_4','GL_MAP1_VERTEX_3','GL_MAP1_TEXTURE_COORD_4','GL_MAP1_TEXTURE_COORD_3','GL_MAP1_TEXTURE_COORD_2',
+			'GL_MAP1_TEXTURE_COORD_1','GL_MAP1_NORMAL','GL_MAP1_INDEX','GL_MAP1_GRID_SEGMENTS','GL_MAP1_GRID_DOMAIN',
+			'GL_MAP1_COLOR_4','GL_LUMINANCE_ALPHA','GL_LUMINANCE8_ALPHA8','GL_LUMINANCE8','GL_LUMINANCE6_ALPHA2','GL_LUMINANCE4_ALPHA4',
+			'GL_LUMINANCE4','GL_LUMINANCE16_ALPHA16','GL_LUMINANCE16','GL_LUMINANCE12_ALPHA4','GL_LUMINANCE12_ALPHA12','GL_LUMINANCE12',
+			'GL_LUMINANCE','GL_LOGIC_OP_MODE','GL_LOGIC_OP','GL_LOAD','GL_LIST_MODE','GL_LIST_INDEX','GL_LIST_BIT',
+			'GL_LIST_BASE','GL_LINE_WIDTH_RANGE','GL_LINE_WIDTH_GRANULARITY','GL_LINE_WIDTH','GL_LINE_TOKEN','GL_LINE_STRIP','GL_LINE_STIPPLE_REPEAT',
+			'GL_LINE_STIPPLE_PATTERN','GL_LINE_STIPPLE','GL_LINE_SMOOTH_HINT','GL_LINE_SMOOTH','GL_LINE_RESET_TOKEN','GL_LINE_LOOP',
+			'GL_LINE_BIT','GL_LINES','GL_LINEAR_MIPMAP_NEAREST','GL_LINEAR_MIPMAP_LINEAR','GL_LINEAR_ATTENUATION','GL_LINEAR',
+			'GL_LINE','GL_LIGHT_MODEL_TWO_SIDE','GL_LIGHT_MODEL_LOCAL_VIEWER','GL_LIGHT_MODEL_AMBIENT','GL_LIGHTING_BIT',
+			'GL_LIGHTING','GL_LIGHT7','GL_LIGHT6','GL_LIGHT5','GL_LIGHT4','GL_LIGHT3','GL_LIGHT2','GL_LIGHT1','GL_LIGHT0',
+			'GL_LESS','GL_LEQUAL','GL_LEFT','GL_KEEP','GL_INVERT','GL_INVALID_VALUE','GL_INVALID_OPERATION','GL_INVALID_ENUM','GL_INTERPOLATE_EXT',
+			'GL_INTERPOLATE','GL_INTENSITY8','GL_INTENSITY4','GL_INTENSITY16','GL_INTENSITY12','GL_INTENSITY','GL_INT',
+			'GL_INDEX_WRITEMASK','GL_INDEX_SHIFT','GL_INDEX_OFFSET','GL_INDEX_MODE','GL_INDEX_LOGIC_OP','GL_INDEX_CLEAR_VALUE','GL_INDEX_BITS',
+			'GL_INDEX_ARRAY_TYPE_EXT','GL_INDEX_ARRAY_TYPE','GL_INDEX_ARRAY_STRIDE_EXT','GL_INDEX_ARRAY_STRIDE','GL_INDEX_ARRAY_POINTER_EXT',
+			'GL_INDEX_ARRAY_POINTER','GL_INDEX_ARRAY_EXT','GL_INDEX_ARRAY_COUNT_EXT','GL_INDEX_ARRAY','GL_INCR','GL_HINT_BIT',
+			'GL_GREEN_SCALE','GL_GREEN_BITS','GL_GREEN_BIAS','GL_GREEN','GL_GREATER','GL_GEQUAL','GL_FRONT_RIGHT','GL_FRONT_LEFT',
+			'GL_FRONT_FACE','GL_FRONT_AND_BACK','GL_FRONT','GL_FOG_START','GL_FOG_SPECULAR_TEXTURE_WIN','GL_FOG_MODE','GL_FOG_INDEX',
+			'GL_FOG_HINT','GL_FOG_END','GL_FOG_DENSITY','GL_FOG_COLOR','GL_FOG_BIT','GL_FOG','GL_FLOAT','GL_FLAT','GL_FILL',
+			'GL_FEEDBACK_BUFFER_TYPE','GL_FEEDBACK_BUFFER_SIZE','GL_FEEDBACK_BUFFER_POINTER','GL_FEEDBACK','GL_FASTEST','GL_FALSE',
+			'GL_EYE_PLANE','GL_EYE_LINEAR','GL_EXT_vertex_array','GL_EXT_paletted_texture','GL_EXT_bgra','GL_EXTENSIONS','GL_EXP2',
+			'GL_EXP','GL_EVAL_BIT','GL_EQUIV','GL_EQUAL','GL_ENABLE_BIT','GL_EMISSION','GL_EDGE_FLAG_ARRAY_STRIDE_EXT','GL_EDGE_FLAG_ARRAY_STRIDE',
+			'GL_EDGE_FLAG_ARRAY_POINTER_EXT','GL_EDGE_FLAG_ARRAY_POINTER','GL_EDGE_FLAG_ARRAY_EXT','GL_EDGE_FLAG_ARRAY_COUNT_EXT','GL_EDGE_FLAG_ARRAY',
+			'GL_EDGE_FLAG','GL_DST_COLOR','GL_DST_ALPHA','GL_DRAW_PIXEL_TOKEN','GL_DRAW_BUFFER','GL_DOUBLE_EXT','GL_DOUBLEBUFFER',
+			'GL_DOUBLE','GL_DONT_CARE','GL_DOMAIN','GL_DITHER','GL_DIFFUSE','GL_DEPTH_WRITEMASK','GL_DEPTH_TEST','GL_DEPTH_SCALE',
+			'GL_DEPTH_RANGE','GL_DEPTH_FUNC','GL_DEPTH_COMPONENT','GL_DEPTH_CLEAR_VALUE','GL_DEPTH_BUFFER_BIT','GL_DEPTH_BITS',
+			'GL_DEPTH_BIAS','GL_DEPTH','GL_DECR','GL_DECAL','GL_CW','GL_CURRENT_TEXTURE_COORDS','GL_CURRENT_RASTER_TEXTURE_COORDS','GL_CURRENT_RASTER_POSITION_VALID',
+			'GL_CURRENT_RASTER_POSITION','GL_CURRENT_RASTER_INDEX','GL_CURRENT_RASTER_DISTANCE','GL_CURRENT_RASTER_COLOR','GL_CURRENT_NORMAL',
+			'GL_CURRENT_INDEX','GL_CURRENT_COLOR','GL_CURRENT_BIT','GL_CULL_FACE_MODE','GL_CULL_FACE','GL_COPY_PIXEL_TOKEN',
+			'GL_COPY_INVERTED','GL_COPY','GL_CONSTANT_EXT','GL_CONSTANT_ATTENUATION','GL_CONSTANT','GL_COMPILE_AND_EXECUTE','GL_COMPILE','GL_COMBINE_RGB_EXT',
+			'GL_COMBINE_RGB','GL_COMBINE_EXT','GL_COMBINE_ALPHA_EXT','GL_COMBINE_ALPHA','GL_COMBINE','GL_COLOR_WRITEMASK',
+			'GL_COLOR_TABLE_WIDTH_EXT','GL_COLOR_TABLE_RED_SIZE_EXT','GL_COLOR_TABLE_LUMINANCE_SIZE_EXT','GL_COLOR_TABLE_INTENSITY_SIZE_EXT',
+			'GL_COLOR_TABLE_GREEN_SIZE_EXT','GL_COLOR_TABLE_FORMAT_EXT','GL_COLOR_TABLE_BLUE_SIZE_EXT','GL_COLOR_TABLE_ALPHA_SIZE_EXT',
+			'GL_COLOR_MATERIAL_PARAMETER','GL_COLOR_MATERIAL_FACE','GL_COLOR_MATERIAL','GL_COLOR_LOGIC_OP','GL_COLOR_INDEXES',
+			'GL_COLOR_INDEX8_EXT','GL_COLOR_INDEX4_EXT','GL_COLOR_INDEX2_EXT','GL_COLOR_INDEX1_EXT','GL_COLOR_INDEX16_EXT',
+			'GL_COLOR_INDEX12_EXT','GL_COLOR_INDEX','GL_COLOR_CLEAR_VALUE','GL_COLOR_BUFFER_BIT','GL_COLOR_ARRAY_TYPE_EXT',
+			'GL_COLOR_ARRAY_TYPE','GL_COLOR_ARRAY_STRIDE_EXT','GL_COLOR_ARRAY_STRIDE','GL_COLOR_ARRAY_SIZE_EXT','GL_COLOR_ARRAY_SIZE',
+			'GL_COLOR_ARRAY_POINTER_EXT','GL_COLOR_ARRAY_POINTER','GL_COLOR_ARRAY_EXT','GL_COLOR_ARRAY_COUNT_EXT','GL_COLOR_ARRAY',
+			'GL_COLOR','GL_COEFF','GL_CLIP_PLANE5','GL_CLIP_PLANE4','GL_CLIP_PLANE3','GL_CLIP_PLANE2','GL_CLIP_PLANE1','GL_CLIP_PLANE0',
+			'GL_CLIENT_VERTEX_ARRAY_BIT','GL_CLIENT_PIXEL_STORE_BIT','GL_CLIENT_ATTRIB_STACK_DEPTH','GL_CLIENT_ALL_ATTRIB_BITS',
+			'GL_CLIENT_ACTIVE_TEXTURE_ARB','GL_CLIENT_ACTIVE_TEXTURE','GL_CLEAR','GL_CLAMP','GL_CCW','GL_C4UB_V3F','GL_C4UB_V2F',
+			'GL_C4F_N3F_V3F','GL_C3F_V3F','GL_BYTE','GL_BLUE_SCALE','GL_BLUE_BITS','GL_BLUE_BIAS','GL_BLUE','GL_BLEND_SRC','GL_BLEND_DST',
+			'GL_BLEND','GL_BITMAP_TOKEN','GL_BITMAP','GL_BGR_EXT','GL_BGRA_EXT','GL_BACK_RIGHT','GL_BACK_LEFT','GL_BACK',
+			'GL_AUX_BUFFERS','GL_AUX3','GL_AUX2','GL_AUX1','GL_AUX0','GL_AUTO_NORMAL','GL_ATTRIB_STACK_DEPTH','GL_AND_REVERSE',
+			'GL_AND_INVERTED','GL_AND','GL_AMBIENT_AND_DIFFUSE','GL_AMBIENT','GL_ALWAYS','GL_ALPHA_TEST_REF','GL_ALPHA_TEST_FUNC',
+			'GL_ALPHA_TEST','GL_ALPHA_SCALE','GL_ALPHA_BITS','GL_ALPHA_BIAS','GL_ALPHA8','GL_ALPHA4','GL_ALPHA16','GL_ALPHA12',
+			'GL_ALPHA','GL_ALL_ATTRIB_BITS','GL_ADD_SIGNED_EXT','GL_ADD_SIGNED','GL_ADD','GL_ACTIVE_TEXTURE_ARB','GL_ACTIVE_TEXTURE',
+			'GL_ACCUM_RED_BITS','GL_ACCUM_GREEN_BITS','GL_ACCUM_CLEAR_VALUE','GL_ACCUM_BUFFER_BIT','GL_ACCUM_BLUE_BITS','GL_ACCUM_ALPHA_BITS',
+			'GL_ACCUM','GL_4_BYTES','GL_4D_COLOR_TEXTURE','GL_3_BYTES','GL_3D_COLOR_TEXTURE','GL_3D_COLOR','GL_3D','GL_2_BYTES',
+			'GL_2D','GLU_V_STEP','GLU_VERTEX','GLU_VERSION_1_2','GLU_VERSION_1_1','GLU_VERSION','GLU_U_STEP','GLU_UNKNOWN','GLU_TRUE',
+			'GLU_TESS_WINDING_RULE','GLU_TESS_WINDING_POSITIVE','GLU_TESS_WINDING_ODD','GLU_TESS_WINDING_NONZERO','GLU_TESS_WINDING_NEGATIVE',
+			'GLU_TESS_WINDING_ABS_GEQ_TWO','GLU_TESS_VERTEX_DATA','GLU_TESS_VERTEX','GLU_TESS_TOLERANCE','GLU_TESS_NEED_COMBINE_CALLBACK','GLU_TESS_MISSING_END_POLYGON',
+			'GLU_TESS_MISSING_END_CONTOUR','GLU_TESS_MISSING_BEGIN_POLYGON','GLU_TESS_MISSING_BEGIN_CONTOUR','GLU_TESS_ERROR_DATA',
+			'GLU_TESS_ERROR8','GLU_TESS_ERROR7','GLU_TESS_ERROR6','GLU_TESS_ERROR5','GLU_TESS_ERROR4','GLU_TESS_ERROR3','GLU_TESS_ERROR2',
+			'GLU_TESS_ERROR1','GLU_TESS_ERROR','GLU_TESS_END_DATA','GLU_TESS_END','GLU_TESS_EDGE_FLAG_DATA','GLU_TESS_EDGE_FLAG',
+			'GLU_TESS_COORD_TOO_LARGE','GLU_TESS_COMBINE_DATA','GLU_TESS_COMBINE','GLU_TESS_BOUNDARY_ONLY','GLU_TESS_BEGIN_DATA',
+			'GLU_TESS_BEGIN','GLU_SMOOTH','GLU_SILHOUETTE','GLU_SAMPLING_TOLERANCE','GLU_SAMPLING_METHOD','GLU_POINT','GLU_PATH_LENGTH',
+			'GLU_PARAMETRIC_TOLERANCE','GLU_PARAMETRIC_ERROR','GLU_OUT_OF_MEMORY','GLU_OUTSIDE','GLU_OUTLINE_POLYGON','GLU_OUTLINE_PATCH',
+			'GLU_NURBS_ERROR9','GLU_NURBS_ERROR8','GLU_NURBS_ERROR7','GLU_NURBS_ERROR6','GLU_NURBS_ERROR5','GLU_NURBS_ERROR4',
+			'GLU_NURBS_ERROR37','GLU_NURBS_ERROR36','GLU_NURBS_ERROR35','GLU_NURBS_ERROR34','GLU_NURBS_ERROR33','GLU_NURBS_ERROR32',
+			'GLU_NURBS_ERROR31','GLU_NURBS_ERROR30','GLU_NURBS_ERROR3','GLU_NURBS_ERROR29','GLU_NURBS_ERROR28','GLU_NURBS_ERROR27','GLU_NURBS_ERROR26',
+			'GLU_NURBS_ERROR25','GLU_NURBS_ERROR24','GLU_NURBS_ERROR23','GLU_NURBS_ERROR22','GLU_NURBS_ERROR21','GLU_NURBS_ERROR20',
+			'GLU_NURBS_ERROR2','GLU_NURBS_ERROR19','GLU_NURBS_ERROR18','GLU_NURBS_ERROR17','GLU_NURBS_ERROR16','GLU_NURBS_ERROR15','GLU_NURBS_ERROR14',
+			'GLU_NURBS_ERROR13','GLU_NURBS_ERROR12','GLU_NURBS_ERROR11','GLU_NURBS_ERROR10','GLU_NURBS_ERROR1','GLU_NONE',
+			'GLU_MAP1_TRIM_3','GLU_MAP1_TRIM_2','GLU_LINE','GLU_INVALID_VALUE','GLU_INVALID_ENUM','GLU_INTERIOR','GLU_INSIDE','GLU_INCOMPATIBLE_GL_VERSION',
+			'GLU_FLAT','GLU_FILL','GLU_FALSE','GLU_EXTERIOR','GLU_EXTENSIONS','GLU_ERROR','GLU_END','GLU_EDGE_FLAG','GLU_DOMAIN_DISTANCE',
+			'GLU_DISPLAY_MODE','GLU_CW','GLU_CULLING','GLU_CCW','GLU_BEGIN','GLU_AUTO_LOAD_MATRIX','CHANNEL_UNORDERED','CHANNEL_ORDERED',
+			'CHANNEL_MAX'
+			),
+		2 => array(
+
+			// Red Lowercase Keywords
+
+			'WriteWord','WriteString','WriteReal','WriteLine','WriteInt','WriteFloat','WriteDouble','WriteChar','WriteByte',
+			'windowwidth','windowheight','waittimer','Vec4','Vec3','Vec2','val','UpdateJoystick','ucase$','Transpose','tickcount',
+			'textscroll','textrows','textmode','textcols','tanh','tand','tan','synctimercatchup','synctimer','swapbuffers',
+			'str$','stopsoundvoice','stopsounds','stopmusic','sqrt','sqr','sprzorder','spryvel','sprytiles','sprysize','spryrepeat',
+			'spryflip','sprycentre','spry','sprxvel','sprxtiles','sprxsize','sprxrepeat','sprxflip','sprxcentre','sprx',
+			'sprvisible','sprvel','sprtype','sprtop','sprspin','sprsolid','sprsetzorder','sprsetyvel','sprsetysize','sprsetyrepeat',
+			'sprsetyflip','sprsetycentre','sprsety','sprsetxvel','sprsetxsize','sprsetxrepeat','sprsetxflip','sprsetxcentre',
+			'sprsetx','sprsetvisible','sprsetvel','sprsettiles','sprsettextures','sprsettexture','sprsetspin','sprsetsolid',
+			'sprsetsize','sprsetscale','sprsetpos','sprsetparallax','sprsetframe','sprsetcolor','sprsetanimspeed','sprsetanimloop',
+			'sprsetangle','sprsetalpha','sprscale','sprright','sprpos','sprparallax','sprleft','spriteareawidth','spriteareaheight',
+			'sprframe','sprcolor','sprcameraz','sprcameray','sprcamerax','sprcamerasetz','sprcamerasety','sprcamerasetx',
+			'sprcamerasetpos','sprcamerasetfov','sprcamerasetangle','sprcamerapos','sprcamerafov','sprcameraangle',
+			'sprbottom','spranimspeed','spranimloop','spranimdone','sprangle','spralpha','spraddtextures','spraddtexture',
+			'sounderror','sleep','sind','sin','showcursor','sgn','settextscroll','setmusicvolume','SendMessage','Seek',
+			'scankeydown','RTInvert','rnd','right$','resizetext','resizespritearea','RejectConnection','ReceiveMessage','ReadWord',
+			'ReadText','ReadReal','ReadLine','ReadInt','ReadFloat','ReadDouble','ReadChar','ReadByte','randomize','printr',
+			'print','pow','playsound','playmusic','performancecounter','Orthonormalize','OpenFileWrite','OpenFileRead','Normalize',
+			'newtilemap','newsprite','NewServer','NewConnection','musicplaying','mouse_yd','mouse_y','mouse_xd','mouse_x',
+			'mouse_wheel','mouse_button','mid$','MessageSmoothed','MessageReliable','MessagePending','MessageChannel','maxtextureunits',
+			'MatrixZero','MatrixTranslate','MatrixScale','MatrixRotateZ','MatrixRotateY','MatrixRotateX','MatrixRotate','MatrixIdentity',
+			'MatrixCrossProduct','MatrixBasis','log','locate','loadtexture','loadsound','loadmipmaptexture','loadmipmapimagestrip',
+			'loadimagestrip','loadimage','Length','len','left$','lcase$','keydown','Joy_Y','Joy_X','Joy_Up','Joy_Right','Joy_Left',
+			'Joy_Keys','Joy_Down','Joy_Button','Joy_3','Joy_2','Joy_1','Joy_0','int','inscankey','input$','inkey$','inittimer',
+			'imagewidth','imagestripframes','imageheight','imageformat','imagedatatype','hidecursor','glViewport','glVertex4sv',
+			'glVertex4s','glVertex4iv','glVertex4i','glVertex4fv','glVertex4f','glVertex4dv','glVertex4d','glVertex3sv','glVertex3s',
+			'glVertex3iv','glVertex3i','glVertex3fv','glVertex3f','glVertex3dv','glVertex3d','glVertex2sv','glVertex2s','glVertex2iv',
+			'glVertex2i','glVertex2fv','glVertex2f','glVertex2dv','glVertex2d','gluPerspective','gluOrtho2D','gluLookAt',
+			'glubuild2dmipmaps','glTranslatef','glTranslated','gltexsubimage2d','glTexParameteriv','glTexParameteri',
+			'glTexParameterfv','glTexParameterf','glteximage2d','glTexGeniv','glTexGeni','glTexGenfv','glTexGenf','glTexGendv',
+			'glTexGend','glTexEnviv','glTexEnvi','glTexEnvfv','glTexEnvf','glTexCoord4sv','glTexCoord4s','glTexCoord4iv','glTexCoord4i',
+			'glTexCoord4fv','glTexCoord4f','glTexCoord4dv','glTexCoord4d','glTexCoord3sv','glTexCoord3s','glTexCoord3iv','glTexCoord3i',
+			'glTexCoord3fv','glTexCoord3f','glTexCoord3dv','glTexCoord3d','glTexCoord2sv','glTexCoord2s','glTexCoord2iv','glTexCoord2i',
+			'glTexCoord2fv','glTexCoord2f','glTexCoord2dv','glTexCoord2d','glTexCoord1sv','glTexCoord1s','glTexCoord1iv','glTexCoord1i','glTexCoord1fv',
+			'glTexCoord1f','glTexCoord1dv','glTexCoord1d','glStencilOp','glStencilMask','glStencilFunc','glShadeModel','glSelectBuffer',
+			'glScissor','glScalef','glScaled','glRotatef','glRotated','glRenderMode','glRectsv','glRects','glRectiv','glRecti',
+			'glRectfv','glRectf','glRectdv','glRectd','glReadBuffer','glRasterPos4sv','glRasterPos4s','glRasterPos4iv',
+			'glRasterPos4i','glRasterPos4fv','glRasterPos4f','glRasterPos4dv','glRasterPos4d','glRasterPos3sv','glRasterPos3s',
+			'glRasterPos3iv','glRasterPos3i','glRasterPos3fv','glRasterPos3f','glRasterPos3dv','glRasterPos3d','glRasterPos2sv',
+			'glRasterPos2s','glRasterPos2iv','glRasterPos2i','glRasterPos2fv','glRasterPos2f','glRasterPos2dv','glRasterPos2d',
+			'glPushName','glPushMatrix','glPushClientAttrib','glPushAttrib','glPrioritizeTextures','glPopName','glPopMatrix',
+			'glPopClientAttrib','glPopAttrib','glpolygonstipple','glPolygonOffset','glPolygonMode','glPointSize','glPixelZoom',
+			'glPixelTransferi','glPixelTransferf','glPixelStorei','glPixelStoref','glPassThrough','glOrtho','glNormal3sv','glNormal3s',
+			'glNormal3iv','glNormal3i','glNormal3fv','glNormal3f','glNormal3dv','glNormal3d','glNormal3bv','glNormal3b','glNewList',
+			'glMultMatrixf','glMultMatrixd','glmultitexcoord2f','glmultitexcoord2d','glMatrixMode','glMaterialiv','glMateriali',
+			'glMaterialfv','glMaterialf','glMapGrid2f','glMapGrid2d','glMapGrid1f','glMapGrid1d','glLogicOp','glLoadName','glLoadMatrixf',
+			'glLoadMatrixd','glLoadIdentity','glListBase','glLineWidth','glLineStipple','glLightModeliv','glLightModeli','glLightModelfv',
+			'glLightModelf','glLightiv','glLighti','glLightfv','glLightf','glIsTexture','glIsList','glIsEnabled','glInitNames',
+			'glIndexubv','glIndexub','glIndexsv','glIndexs','glIndexMask','glIndexiv','glIndexi','glIndexfv','glIndexf','glIndexdv',
+			'glIndexd','glHint','glGetTexParameteriv','glGetTexParameterfv','glGetTexLevelParameteriv','glGetTexLevelParameterfv',
+			'glGetTexGeniv','glGetTexGenfv','glGetTexGendv','glGetTexEnviv','glGetTexEnvfv','glgetstring','glgetpolygonstipple','glGetPixelMapuiv',
+			'glGetMaterialiv','glGetMaterialfv','glGetLightiv','glGetLightfv','glGetIntegerv','glGetIntegerv','glGetFloatv','glGetFloatv',
+			'glGetError','glGetDoublev','glGetDoublev','glGetClipPlane','glGetBooleanv','glGetBooleanv','glgentextures','glgentexture',
+			'glgenlists','glFrustum','glFrontFace','glFogiv','glFogi','glFogfv','glFogf','glFlush','glFinish','glFeedbackBuffer',
+			'glEvalPoint2','glEvalPoint1','glEvalMesh2','glEvalMesh1','glEvalCoord2fv','glEvalCoord2f','glEvalCoord2dv','glEvalCoord2d',
+			'glEvalCoord1fv','glEvalCoord1f','glEvalCoord1dv','glEvalCoord1d','glEndList','glEnd','glEnableClientState','glEnable',
+			'glEdgeFlagv','glEdgeFlag','glDrawBuffer','glDrawArrays','glDisableClientState','glDisable','glDepthRange','glDepthMask',
+			'glDepthFunc','gldeletetextures','gldeletetexture','gldeletelists','glCullFace','glCopyTexSubImage2D','glCopyTexSubImage1D',
+			'glCopyTexImage2D','glCopyTexImage1D','glColorMaterial','glColorMask','glColor4usv','glColor4us','glColor4uiv','glColor4ui',
+			'glColor4ubv','glColor4ub','glColor4sv','glColor4s','glColor4iv','glColor4i','glColor4fv','glColor4f','glColor4dv',
+			'glColor4d','glColor4bv','glColor4b','glColor3usv','glColor3us','glColor3uiv','glColor3ui','glColor3ubv','glColor3ub',
+			'glColor3sv','glColor3s','glColor3iv','glColor3i','glColor3fv','glColor3f','glColor3dv','glColor3d','glColor3bv',
+			'glColor3b','glClipPlane','glClearStencil','glClearIndex','glClearDepth','glClearColor','glClearAccum','glClear',
+			'glcalllists','glCallList','glBlendFunc','glBindTexture','glBegin','glArrayElement','glAreTexturesResident',
+			'glAlphaFunc','glactivetexture','glAccum','font','FindNextFile','FindFirstFile','FindClose','FileError',
+			'extensionsupported','exp','execute','EndOfFile','drawtext','divbyzero','Determinant','deletesprite','deletesound',
+			'DeleteServer','deleteimage','DeleteConnection','defaultfont','CrossProduct','cosd','cos','copysprite','ConnectionPending',
+			'ConnectionHandShaking','ConnectionConnected','ConnectionAddress','compilererrorline','compilererrorcol','compilererror',
+			'compilefile','compile','color','cls','CloseFile','clearregion','clearline','clearkeys','chr$','charat$','bindsprite',
+			'beep','atnd','atn2d','atn2','atn','atand','asc','argcount','arg','animatesprites','AcceptConnection','abs'
+			),
+		3 => array(
+
+			// Blue Lowercase Keywords
+
+			'xor','while','wend','until','type','traditional_print','traditional','to','then','struc','string','step','single',
+			'run','return','reset','read','or','null','not','next','lor','loop','language','land','integer','input','if',
+			'goto','gosub','for','endstruc','endif','end','elseif','else','double','do','dim','data','const','basic4gl','as',
+			'and','alloc'
+			)
+
+		),
+	'SYMBOLS' => array(
+          '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']', '&', ';', ':', '$'
+          ),
+
+	'CASE_SENSITIVE' => array(
+                GESHI_COMMENTS => false,
+                1 => false,
+				2 => false,
+				3 => false,
+                ),
+        'STYLES' => array(
+                'KEYWORDS' => array(
+                        1 => 'color: #000080; font-weight: bold;',
+                        2 => 'color: #FF0000;',
+                        3 => 'color: #0000FF;'
+                        ),
+                'COMMENTS' => array(
+                        1 => 'color: #657CC4; font-style: italic;'
+                        ),
+                'BRACKETS' => array(
+                        0 => 'color: #000080;'
+                        ),
+                'STRINGS' => array(
+                        0 => 'color: #008000;'
+                        ),
+                'NUMBERS' => array(
+                        0 => 'color: #000080; font-weight: bold;'
+                        ),
+                'METHODS' => array(
+                        ),
+                'SYMBOLS' => array(
+                        0 => 'color: #0000FF;'
+                        ),
+                'ESCAPE_CHAR' => array(
+                        ),
+                'SCRIPT' => array(
+                        ),
+                'REGEXPS' => array(
+                        )
+                ),
+        'OOLANG' => false,
+        'OBJECT_SPLITTERS' => array(
+                ),
+        'REGEXPS' => array(
+                ),
+        'STRICT_MODE_APPLIES' => GESHI_NEVER,
+        'SCRIPT_DELIMITERS' => array(
+                ),
+        'HIGHLIGHT_STRICT_BLOCK' => array(
+                ),
+		'TAB_WIDTH' => 4
+);
+?>
diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php
index e3a33358250a889e888075f9d5d75cd7e2822a60..dd8389be56c596cd010a7642e1ceaa3cb19ff35e 100644
--- a/inc/geshi/blitzbasic.php
+++ b/inc/geshi/blitzbasic.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: P�draig O`Connel (info@moonsword.info)
  * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 16.10.2005
  *
  * BlitzBasic language file for GeSHi.
diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php
index fa1e89e70948323ee9d34e27ea32f7917798e4db..14642ab173524b6bbc471638ed2ba6a9afc756b2 100644
--- a/inc/geshi/bnf.php
+++ b/inc/geshi/bnf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
  * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/09/28
  *
  * BNF (Backus-Naur form) language file for GeSHi.
diff --git a/inc/geshi/c.php b/inc/geshi/c.php
index 3ecc7bfe4b79a2f71ee03fec2af0e630445e6c24..b6687f78b052f2456f0ebc83c86d97120d1b76bd 100644
--- a/inc/geshi/c.php
+++ b/inc/geshi/c.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Jack Lloyd (lloyd@randombit.net)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * C language file for GeSHi.
diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php
index e66083da429d171933b7332077e369be325a2cef..86b16979e182381a387223a354dd059789768b5b 100644
--- a/inc/geshi/c_mac.php
+++ b/inc/geshi/c_mac.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * C for Macs language file for GeSHi.
diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php
index 93df5c805468e0356973e349b34ebef38c6bda52..47689a33e3efe9bab41b6b89485781dc07b3a493 100644
--- a/inc/geshi/caddcl.php
+++ b/inc/geshi/caddcl.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * CAD DCL (Dialog Control Language) file for GeSHi.
diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php
index 639101b7ea1af97437f98c8f62bea35705a0d205..c95e168fb9d2cd24922d3e1007fa05b71dabd3b1 100644
--- a/inc/geshi/cadlisp.php
+++ b/inc/geshi/cadlisp.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * AutoCAD/IntelliCAD Lisp language file for GeSHi.
diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php
index 49d23ff39c6f32de6778e1b5aae49fe8a3d5abaa..96837683a4635a2535bd4872b11ae854822a88d9 100644
--- a/inc/geshi/cfdg.php
+++ b/inc/geshi/cfdg.php
@@ -4,7 +4,7 @@
  * --------
  * Author: John Horigan <john@glyphic.com>
  * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/03/11
  *
  * CFDG language file for GeSHi.
diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php
index 4a74a5f6cbc6023c1ce488bd769e4b990add5bbd..c0e6cbd87c02b3e2eea176eb948d38fe738af9a4 100644
--- a/inc/geshi/cfm.php
+++ b/inc/geshi/cfm.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * cfm.php
  * -------
- * Author: Diego ()
+ * Author: Diego
  * Copyright: (c) 2006 Diego
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/02/25
  *
  * ColdFusion language file for GeSHi.
@@ -47,28 +47,28 @@ $language_data = array (
 	'KEYWORDS' => array(
 		/* CFM Tags */
 		1 => array(
-			'&lt;cfabort', '&lt;cfapplet', '&lt;cfapplication', '&lt;cfargument', '&lt;cfassociate', '&lt;&lt;cfbreak&gt;', 
-			'&lt;cfcache', '&lt;cfcase', '&lt;cfcatch', '&lt;/cfcatch&gt;', '&lt;cfchart', '&lt;/cfchart&gt;', '&lt;cfchartdata', 
-			'&lt;cfchartseries', '&lt;/cfchartseries&gt;', '&lt;cfcol', '&lt;cfcollection', '&lt;cfcomponent', '&lt;/cfcomponent&gt;', 
-			'&lt;cfcontent', '&lt;cfcookie', '&lt;/cfdefaultcase&gt;', '&lt;cfdirectory', '&lt;cfdocument', '&lt;/cfdocument&gt;', 
-			'&lt;cfdocumentitem', '&lt;/cfdocumentitem&gt;', '&lt;cfdocumentsection', '&lt;/cfdocumentsection&gt;', '&lt;cfdump', 
-			'&lt;cfelse', '&lt;cfelseif', '&lt;cferror', '&lt;cfexecute', '&lt;/cfexecute&gt;', '&lt;cfexit', '&lt;cffile', 
-			'&lt;cfflush', '&lt;cfform', '&lt;/cfform&gt;', '&lt;cfformgroup', '&lt;/cfformgroup', '&lt;cfformitem', 
-			'&lt;/cfformitem&gt;', '&lt;cfftp', '&lt;cffunction', '&lt;/cffunction&gt;', '&lt;cfgrid', '&lt;/cfgrid&gt;', 
-			'&lt;cfgridcolumn', '&lt;cfgridrow', '&lt;cfgridupdate', '&lt;cfheader', '&lt;cfhtmlhead', '&lt;cfhttp', 
-			'&lt;/cfhttp&gt;', '&lt;cfhttpparam', '&lt;cfif', '&lt;/cfif&gt;', '&lt;cfimport', '&lt;cfinclude', '&lt;cfindex', 
-			'&lt;cfinput', '&lt;cfinsert', '&lt;cfinvoke', '&lt;cfinvokeargument', '&lt;cfldap', '&lt;cflocation', '&lt;cflock', 
-			'&lt;/cflock&gt;', '&lt;cflog', '&lt;cflogin', '&lt;/cflogin&gt;', '&lt;cfloginuser', '&lt;cflogout', '&lt;cfloop', 
-			'&lt;/cfloop&gt;', '&lt;cfmail', '&lt;/cfmail&gt;', '&lt;cfmailparam', '&lt;cfmailpart', '&lt;/cfmailpart&gt;', 
-			'&lt;cfmodule', '&lt;cfNTauthenticate', '&lt;cfobject', '&lt;cfobjectcache', '&lt;cfoutput&gt;', '&lt;cfoutput', '&lt;/cfoutput&gt;', 
-			'&lt;cfparam', '&lt;cfpop', '&lt;cfprocessingdirective', '&lt;/cfprocessingdirective&gt;', '&lt;cfprocparam', 
-			'&lt;cfprocresult', '&lt;cfproperty', '&lt;cfquery', '&lt;/cfquery&gt;', '&lt;cfqueryparam', '&lt;cfregistry', 
-			'&lt;/cfregistry&gt;', '&lt;cfreport', '&lt;/cfreport&gt;', '&lt;cfreportparam', '&lt;/cfreportparam&gt;', 
+			'&lt;cfabort', '&lt;cfapplet', '&lt;cfapplication', '&lt;cfargument', '&lt;cfassociate', '&lt;&lt;cfbreak&gt;',
+			'&lt;cfcache', '&lt;cfcase', '&lt;cfcatch', '&lt;/cfcatch&gt;', '&lt;cfchart', '&lt;/cfchart&gt;', '&lt;cfchartdata',
+			'&lt;cfchartseries', '&lt;/cfchartseries&gt;', '&lt;cfcol', '&lt;cfcollection', '&lt;cfcomponent', '&lt;/cfcomponent&gt;',
+			'&lt;cfcontent', '&lt;cfcookie', '&lt;/cfdefaultcase&gt;', '&lt;cfdirectory', '&lt;cfdocument', '&lt;/cfdocument&gt;',
+			'&lt;cfdocumentitem', '&lt;/cfdocumentitem&gt;', '&lt;cfdocumentsection', '&lt;/cfdocumentsection&gt;', '&lt;cfdump',
+			'&lt;cfelse', '&lt;cfelseif', '&lt;cferror', '&lt;cfexecute', '&lt;/cfexecute&gt;', '&lt;cfexit', '&lt;cffile',
+			'&lt;cfflush', '&lt;cfform', '&lt;/cfform&gt;', '&lt;cfformgroup', '&lt;/cfformgroup', '&lt;cfformitem',
+			'&lt;/cfformitem&gt;', '&lt;cfftp', '&lt;cffunction', '&lt;/cffunction&gt;', '&lt;cfgrid', '&lt;/cfgrid&gt;',
+			'&lt;cfgridcolumn', '&lt;cfgridrow', '&lt;cfgridupdate', '&lt;cfheader', '&lt;cfhtmlhead', '&lt;cfhttp',
+			'&lt;/cfhttp&gt;', '&lt;cfhttpparam', '&lt;cfif', '&lt;/cfif&gt;', '&lt;cfimport', '&lt;cfinclude', '&lt;cfindex',
+			'&lt;cfinput', '&lt;cfinsert', '&lt;cfinvoke', '&lt;cfinvokeargument', '&lt;cfldap', '&lt;cflocation', '&lt;cflock',
+			'&lt;/cflock&gt;', '&lt;cflog', '&lt;cflogin', '&lt;/cflogin&gt;', '&lt;cfloginuser', '&lt;cflogout', '&lt;cfloop',
+			'&lt;/cfloop&gt;', '&lt;cfmail', '&lt;/cfmail&gt;', '&lt;cfmailparam', '&lt;cfmailpart', '&lt;/cfmailpart&gt;',
+			'&lt;cfmodule', '&lt;cfNTauthenticate', '&lt;cfobject', '&lt;cfobjectcache', '&lt;cfoutput&gt;', '&lt;cfoutput', '&lt;/cfoutput&gt;',
+			'&lt;cfparam', '&lt;cfpop', '&lt;cfprocessingdirective', '&lt;/cfprocessingdirective&gt;', '&lt;cfprocparam',
+			'&lt;cfprocresult', '&lt;cfproperty', '&lt;cfquery', '&lt;/cfquery&gt;', '&lt;cfqueryparam', '&lt;cfregistry',
+			'&lt;/cfregistry&gt;', '&lt;cfreport', '&lt;/cfreport&gt;', '&lt;cfreportparam', '&lt;/cfreportparam&gt;',
 			'&lt;cfrethrow', '&lt;cfreturn', '&lt;cfsavecontent', '&lt;/cfsavecontent&gt;', '&lt;cfschedule', '&lt;cfscript', '&lt;cfscript&gt;',
-			'&lt;/cfscript&gt;', '&lt;cfsearch', '&lt;cfselect', '&lt;/cfselect&gt;', '&lt;cfset', '&lt;cfsetting', '&lt;cfsilent', 
-			'&lt;/cfsilent&gt;', '&lt;cfstoredproc', '&lt;/cfstoredproc&gt;', '&lt;cfswitch', '&lt;/cfswitch&gt;', '&lt;cftable', 
-			'&lt;/cftable&gt;', '&lt;cftextarea', '&lt;/cftextarea&gt;', '&lt;cfthrow', '&lt;cftimer', '&lt;/cftimer&gt;', 
-			'&lt;cftrace', '&lt;/cftrace&gt;', '&lt;cftransaction', '&lt;/cftransaction&gt;', '&lt;cftree', '&lt;/cftree&gt;', 
+			'&lt;/cfscript&gt;', '&lt;cfsearch', '&lt;cfselect', '&lt;/cfselect&gt;', '&lt;cfset', '&lt;cfsetting', '&lt;cfsilent',
+			'&lt;/cfsilent&gt;', '&lt;cfstoredproc', '&lt;/cfstoredproc&gt;', '&lt;cfswitch', '&lt;/cfswitch&gt;', '&lt;cftable',
+			'&lt;/cftable&gt;', '&lt;cftextarea', '&lt;/cftextarea&gt;', '&lt;cfthrow', '&lt;cftimer', '&lt;/cftimer&gt;',
+			'&lt;cftrace', '&lt;/cftrace&gt;', '&lt;cftransaction', '&lt;/cftransaction&gt;', '&lt;cftree', '&lt;/cftree&gt;',
 			'&lt;cftreeitem', '&lt;cftry', '&lt;/cftry&gt;', '&lt;cfupdate', '&lt;cfwddx','&lt;','&gt;'
 			),
 		/* HTML Tags */
diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php
index 7095770a1077cc36bd09d11f88e58cdc9972b1a2..0c1fba95c3a147de3c24ee06d19859219a86ac3e 100644
--- a/inc/geshi/cpp-qt.php
+++ b/inc/geshi/cpp-qt.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Iulian M
  * Copyright: (c) 2006 Iulian M
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi, with QT extensions.
diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php
index 0c6391e2e0d77ddec057f2c59b1586596064f838..7db2681fa192de73d90245cfccfa11ce5346b9c2 100644
--- a/inc/geshi/cpp.php
+++ b/inc/geshi/cpp.php
@@ -7,7 +7,7 @@
  *  - M. Uli Kusterer (witness.of.teachtext@gmx.net)
  *  - Jack Lloyd (lloyd@randombit.net)
  * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi.
@@ -55,11 +55,11 @@ $language_data = array (
 	'ESCAPE_CHAR' => '\\',
 	'KEYWORDS' => array(
 		1 => array(
-			'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
-			'switch', 'while'
+			'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
+			'switch', 'throw', 'while'
 			),
 		2 => array(
-			'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
+			'NULL', 'false', 'true', 'enum', 'errno', 'EDOM',
 			'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
 			'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
 			'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
@@ -106,7 +106,11 @@ $language_data = array (
 			),
 		),
 	'SYMBOLS' => array(
-		'(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+		0 => array('(', ')', '{', '}', '[', ']'),
+        1 => array('<', '>','='),
+        2 => array('+', '-', '*', '/', '%'),
+        3 => array('!', '^', '&', '|'),
+        4 => array(':')
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
@@ -123,7 +127,7 @@ $language_data = array (
 			4 => 'color: #0000ff;'
 			),
 		'COMMENTS' => array(
-			1 => 'color: #ff0000;',
+			1 => 'color: #666666;',
 			2 => 'color: #339900;',
 			'MULTI' => 'color: #ff0000; font-style: italic;'
 			),
@@ -131,10 +135,10 @@ $language_data = array (
 			0 => 'color: #666666; font-weight: bold;'
 			),
 		'BRACKETS' => array(
-			0 => 'color: #000000;'
+			0 => 'color: #008000;'
 			),
 		'STRINGS' => array(
-			0 => 'color: #666666;'
+			0 => 'color: #FF0000;'
 			),
 		'NUMBERS' => array(
 			0 => 'color: #0000dd;'
@@ -144,7 +148,11 @@ $language_data = array (
 			2 => 'color: #00eeff;'
 			),
 		'SYMBOLS' => array(
-			0 => 'color: #000000;'
+			0 => 'color: #008000;',
+			1 => 'color: #000080;',
+			2 => 'color: #000040;',
+			3 => 'color: #000040;',
+			4 => 'color: #008080;'
 			),
 		'REGEXPS' => array(
 			),
@@ -165,7 +173,13 @@ $language_data = array (
 		),
 	'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
-    'TAB_WIDTH' => 4
+    'TAB_WIDTH' => 4,
+	'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#>|^",
+            'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%\\-"
+        )
+	)
 );
 
 ?>
diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php
index 78bd5a660ee0233ad4c7ad7f2a1efe7674bfcdc5..dfd3e8e8c9f364bb132c62ab7f0ad32d67296bba 100644
--- a/inc/geshi/csharp.php
+++ b/inc/geshi/csharp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * C# language file for GeSHi.
@@ -226,7 +226,13 @@
 		),
 	'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
-    'TAB_WIDTH' => 4
+    'TAB_WIDTH' => 4,
+	'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#>|^",
+            'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%\\-"
+        )
+	)
 );
 
 ?>
diff --git a/inc/geshi/css.php b/inc/geshi/css.php
index 2530231e31c0cd64857499a202a140cc2cac7e46..43f834f37ee0551c72b0f8f3252e6da65a126ce4 100644
--- a/inc/geshi/css.php
+++ b/inc/geshi/css.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/18
  *
  * CSS language file for GeSHi.
diff --git a/inc/geshi/d.php b/inc/geshi/d.php
index c122164a294535714f1a274a7f628af55fcb1a3b..4850ab7bce74b922dbb0bb810604d43eea739879 100644
--- a/inc/geshi/d.php
+++ b/inc/geshi/d.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Thomas Kuehne (thomas@kuehne.cn)
  * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/04/22
  *
  * D language file for GeSHi.
diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php
index f8bf378e4f32d042c34038af07b80d31529f290a..7f958598838bdfd433ee10537c096ed2f188682f 100644
--- a/inc/geshi/delphi.php
+++ b/inc/geshi/delphi.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * delphi.php
  * ----------
- * Author: Járja Norbert (jnorbi@vipmail.hu)
- * Copyright: (c) 2004 Járja Norbert, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Author: Járja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
+ * Copyright: (c) 2004 Járja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/26
  *
  * Delphi (Object Pascal) language file for GeSHi.
@@ -211,6 +211,12 @@ $language_data = array (
         3 => false,
         4 => false,
         ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '[', ']'),
+        1 => array('.', ',', ':', ';'),
+        2 => array('@', '^'),
+        3 => array('=', '+', '-', '*', '/')
+        ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #000000; font-weight: bold;',
@@ -241,7 +247,10 @@ $language_data = array (
             1 => 'color: #ff0000;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #66cc66;',
+            1 => 'color: #66cc66;',
+            2 => 'color: #66cc66;',
+            3 => 'color: #66cc66;'
             ),
         'SCRIPT' => array(
             )
diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php
index fab7a0e205da9b9a9e5a12491e5c675de0aa3044..6acd30813c11e54e763efcc2b45107618977e87a 100644
--- a/inc/geshi/diff.php
+++ b/inc/geshi/diff.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu)
  * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/12/29
  *
  * Diff-output language file for GeSHi.
@@ -13,13 +13,13 @@
  * -------
  * 2006/02/27
  *  -  changing language file to use matching of start (^) and end ($) (wt)
- * 
+ *
  * 2004/12/29 (1.0.0)
  *  -  First Release
  *
  * TODO (updated 2006/02/27)
  * -------------------------
- *    
+ *
  *
  *************************************************************************************
  *
@@ -95,12 +95,12 @@ $language_data = array (
 			0 => 'color: #440088;',
 			1 => 'color: #991111;',
 			2 => 'color: #00b000;',
-            3 => 'color: #888822;', 
-            4 => 'color: #888822;', 
-            5 => 'color: #0011dd;', 
-            6 => 'color: #440088;', 
+            3 => 'color: #888822;',
+            4 => 'color: #888822;',
+            5 => 'color: #0011dd;',
+            6 => 'color: #440088;',
 			7 => 'color: #991111;',
-            8 => 'color: #00b000;', 
+            8 => 'color: #00b000;',
 			9 => 'color: #888822;',
                         ),
 		),
diff --git a/inc/geshi/div.php b/inc/geshi/div.php
index acf6a4b6ac82c5b5d4d0f5bad8e30bb9aec845ae..21577874cd80a38aca0a782d7d0b8fe769e86288 100644
--- a/inc/geshi/div.php
+++ b/inc/geshi/div.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Gabriel Lorenzo (ermakina@gmail.com)
  * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/06/19
  *
  * DIV language file for GeSHi.
diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php
index 52a467e44ba88fd98c8da691e0daffd78edaba85..b57e7bc426705d69a6235612d92023d2ffec5d30 100644
--- a/inc/geshi/dos.php
+++ b/inc/geshi/dos.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Alessandro Staltari (staltari@geocities.com)
  * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/07/05
  *
  * DOS language file for GeSHi.
@@ -97,7 +97,9 @@ $language_data = array (
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => false,
-		1 => false
+			1 => false,
+			2 => false,
+			3 => false,
 		),
 	'STYLES' => array(
 		'KEYWORDS' => array(
@@ -119,7 +121,7 @@ $language_data = array (
 			0 => 'color: #ff0000;'
 			),
 		'NUMBERS' => array(
-/*			0 => 'color: #cc66cc;' */
+			0 => 'color: #cc66cc;'
 			),
 		'METHODS' => array(
 			),
diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php
index a9338d5b927b137d02b950bd83a0bb402faa9c37..15709b7434c17ec2f4113ca296a47fdece15aacc 100644
--- a/inc/geshi/dot.php
+++ b/inc/geshi/dot.php
@@ -4,10 +4,8 @@
  * ---------------------------------
  * Author: Adrien Friggeri (adrien@friggeri.net)
  * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
- * Release Version: 1.0.7.20
- * CVS Revision Version: $Revision: 958 $
+ * Release Version: 1.0.7.21
  * Date Started: 2007/05/30
- * Last Modified: $Date: 2007-04-01 23:51:03 +1200 (Sun, 01 Apr 2007) $
  *
  * dot language file for GeSHi.
  *
@@ -58,7 +56,7 @@ $language_data = array (
           'pagedir', 'peripheries', 'port_label_distance', 'quantum', 'rank', 'rankdir',
           'ranksep', 'ratio', 'regular', 'rotate', 'samehead', 'sametail', 'searchsize',
           'shape', 'shapefile', 'showboxes', 'sides', 'size', 'skew', 'style',
-          'tailclip', 'taillabel', 'tailport', 'toplabel', 'weight', 'width' 
+          'tailclip', 'taillabel', 'tailport', 'toplabel', 'weight', 'width'
         ),
         2 => array('node', 'graph', 'digraph', 'strict', 'edge', 'subgraph'),
         3 => array('FALSE', 'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'TRUE', 'auto', 'back',
@@ -68,7 +66,7 @@ $language_data = array (
           'invhouse', 'invis', 'invodot', 'invtrapezium', 'invtriangle', 'local', 'max',
           'min', 'none', 'normal', 'octagon', 'odot', 'out', 'parallelogram', 'plaintext',
           'polygon', 'record', 'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon',
-          'true' 
+          'true'
         ),
         4 => array('aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'black',
           'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood', 'cadetblue',
@@ -92,7 +90,7 @@ $language_data = array (
           'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'salmon2', 'sandybrown',
           'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'snow',
           'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet',
-          'violetred', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen' 
+          'violetred', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen'
         )
       ),
     'SYMBOLS' => array(
@@ -145,7 +143,7 @@ $language_data = array (
         3 => ''
     ),
     'OOLANG' => false,
-    'OBJECT_SPLITTER' => '',    
+    'OBJECT_SPLITTER' => '',
     'REGEXPS' => array(),
     'STRICT_MODE_APPLIES' => GESHI_MAYBE,
     'SCRIPT_DELIMITERS' => array(),
diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php
index 32553cfc6c595ab58c8b8494e7561a916d405b13..a81d873afc0ee09f2fe089259849140c0d2bd509 100644
--- a/inc/geshi/eiffel.php
+++ b/inc/geshi/eiffel.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Zoran Simic (zsimic@axarosenberg.com)
  * Copyright: (c) 2005 Zoran Simic
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/06/30
  *
  * Eiffel language file for GeSHi.
diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php
index 9c010a38773a798dff133b0d4ee88854575cb094..6b4e3c3b4e715183f34c36a314d3420f722593f6 100644
--- a/inc/geshi/fortran.php
+++ b/inc/geshi/fortran.php
@@ -4,9 +4,9 @@
  * -----------
  * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr)
  * Copyright: (C) 2006 Cetric Arrabie
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/04/22
- * 
+ *
  * Fortran language file for GeSHi.
  *
  * CHANGES
@@ -14,7 +14,7 @@
  * 2006/04/20 (1.0.0)
  *   -  First Release
  *
- * TODO 
+ * TODO
  * -------------------------
  *  -  Get a list of inbuilt functions to add (and explore fortran more
  *     to complete this rather bare language file)
@@ -50,8 +50,8 @@ $language_data = array (
 		1 => array(
 			'allocate','block','call','case','contains','continue','cycle','deallocate',
 			'default','do','else','elseif','elsewhere','end','enddo','endif','endwhere',
-			'entry','exit','function','go','goto','if','interface','module','nullify','only', 
-			'operator','procedure','program','recursive','return','select','stop', 
+			'entry','exit','function','go','goto','if','interface','module','nullify','only',
+			'operator','procedure','program','recursive','return','select','stop',
 			'subroutine','then','to','where','while',
             'access','action','advance','blank','blocksize','carriagecontrol',
 			'delim','direct','eor','err','exist','file','flen','fmt','form','formatted',
diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php
index e35c78859fa749f70e72ab843ebca3424f5f1d07..4276938a850dedbbb73a86bddca32524878d2f97 100644
--- a/inc/geshi/freebasic.php
+++ b/inc/geshi/freebasic.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * freebasic.php
  * -------------
- * Author: Roberto Rossi 
+ * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/08/19
  *
  * FreeBasic (http://www.freebasic.net/) language file for GeSHi.
diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php
index a24f1700f1b72744d2c37ac6023e3edc584648ee..f20521b5f5552a1d117bec5c35fa45612e9a69cd 100644
--- a/inc/geshi/genero.php
+++ b/inc/geshi/genero.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * CVS Revision Version: $Revision: 1.4 $
  *
  * Genero (FOURJ's Genero 4GL) language file for GeSHi.
@@ -53,7 +53,7 @@
             "AND",
             "ANY",
             "APPEND",
-            "APPLICATION",          
+            "APPLICATION",
             "AS",
             "AT",
             "ATTRIBUTE",
@@ -98,7 +98,7 @@
             "COUNT",
             "CREATE",
             "CROSS",
-            "CURRENT",          
+            "CURRENT",
             "DATABASE",
             "DBA",
             "DEC",
@@ -118,7 +118,7 @@
             "DISCONNECT",
             "DISPLAY",
             "DISTINCT",
-            "DORMANT",          
+            "DORMANT",
             "DOWN",
             "DROP",
             "DYNAMIC",
@@ -134,7 +134,7 @@
             "EXPLAIN",
             "EXTEND",
             "EXTENT",
-            "EXTERNAL",         
+            "EXTERNAL",
             "FETCH",
             "FGL_DRAWBOX",
             "FIELD",
@@ -159,7 +159,7 @@
             "GLOBALS",
             "GO",
             "GOTO",
-            "GRANT",            
+            "GRANT",
             "GROUP",
             "HAVING",
             "HEADER",
@@ -200,7 +200,7 @@
             "LOCATE",
             "LOCK",
             "LOG",
-            "LSTR",         
+            "LSTR",
             "MAIN",
             "MARGIN",
             "MATCHES",
@@ -215,7 +215,7 @@
             "MOD",
             "MODE",
             "MODIFY",
-            "MONEY",            
+            "MONEY",
             "NAME",
             "NEED",
             "NEXT",
@@ -302,7 +302,7 @@
             "START",
             "STATISTICS",
             "STEP",
-            "STOP",         
+            "STOP",
             "STYLE",
             "SUM",
             "SYNONYM",
@@ -338,11 +338,11 @@
             "VIEW",
             "WAIT",
             "WAITING",
-            "WARNING",          
+            "WARNING",
             "WHEN",
             "WHENEVER",
             "WHERE",
-            "WHILE",            
+            "WHILE",
             "WINDOW",
             "WITH",
             "WITHOUT",
@@ -360,7 +360,7 @@
             "CHARACTER",
             "CURSOR",
             "DATE",
-            "DATETIME",           
+            "DATETIME",
             "DECIMAL",
             "DOUBLE",
             "FALSE",
@@ -389,7 +389,7 @@
             "OFF",
             "WHITE",
             "YELLOW",
-            "YEAR",   
+            "YEAR",
             "DAY",
             "MONTH",
             "WEEKDAY"
diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php
index 84e45fa463401d11f6c8bcdd413a6eca2ed25836..199a0fd978446d1a2a7aa053ce90824d8a334abe 100644
--- a/inc/geshi/gml.php
+++ b/inc/geshi/gml.php
@@ -4,7 +4,7 @@
  * --------
  * Author: José Jorge Enríquez (jenriquez@users.sourceforge.net)
  * Copyright: (c) 2005 José Jorge Enríquez Rodríguez (http://www.zonamakers.com)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/06/21
  *
  * GML language file for GeSHi.
@@ -73,7 +73,7 @@ $language_data = array (
 		1 => array(
 			'break', 'continue', 'do', 'until', 'if', 'else',
 			'exit', 'for', 'for', 'repeat', 'return', 'switch',
-			'case', 'default', 'var', 'while', 'with', 'div', 'mod', 
+			'case', 'default', 'var', 'while', 'with', 'div', 'mod',
 			// GML Language overview
 			'self', 'other', 'all', 'noone', 'global',
 			),
diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php
index 6431d776175b777a848b36d53531367fb2a3b2dd..3ae006db394d2fd9c3c40e1e9c9f453c43821d27 100644
--- a/inc/geshi/groovy.php
+++ b/inc/geshi/groovy.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com)
  * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/04/29
  *
  * Groovy language file for GeSHi.
diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php
index e57407a9f422348b4df8769d8aea8f8272a3086f..2971d08138c1046de9d9ef84be5efc4a2e55cf27 100644
--- a/inc/geshi/haskell.php
+++ b/inc/geshi/haskell.php
@@ -2,12 +2,10 @@
 /*************************************************************************************
  * haskell.php
  * ----------
- * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com) 
+ * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
- * CVS Revision Version: $Revision: 1.6 $
+ * Release Version: 1.0.7.21
  * Date Started: 2005/08/27
- * Last Modified: $Date: 2006/02/25 00:46:33 $
  *
  * Haskell language file for GeSHi.
  *
@@ -50,9 +48,9 @@ $language_data = array (
        /* main haskell keywords */
         1 => array(
            'as',
-           'case', 'of', 'class', 'data', 'default', 
+           'case', 'of', 'class', 'data', 'default',
            'deriving', 'do', 'forall', 'hiding', 'if', 'then',
-           'else', 'import', 'infix', 'infixl', 'infixr', 
+           'else', 'import', 'infix', 'infixl', 'infixr',
            'instance', 'let', 'in', 'module', 'newtype',
            'qualified', 'type', 'where'
             ),
@@ -62,11 +60,11 @@ $language_data = array (
            ),
         /* just link to Prelude functions, cause it's the default opened library when starting Haskell */
         3 => array(
-           'not', 'otherwise', 'maybe', 
+           'not', 'otherwise', 'maybe',
            'either', 'fst', 'snd', 'curry', 'uncurry',
-           'compare', 
+           'compare',
            'max', 'min', 'succ', 'pred', 'toEnum', 'fromEnum',
-           'enumFrom', 'enumFromThen', 'enumFromTo', 
+           'enumFrom', 'enumFromThen', 'enumFromTo',
            'enumFromThenTo', 'minBound', 'maxBound',
            'negate', 'abs', 'signum',
            'fromInteger', 'toRational', 'quot', 'rem',
@@ -107,12 +105,12 @@ $language_data = array (
            ),
         /* here Prelude Types */
         4 => array (
-            'Bool', 'Maybe', 'Either', 'Ord', 'Ordering', 
-            'Char', 'String', 'Eq', 'Enum', 'Bounded', 
+            'Bool', 'Maybe', 'Either', 'Ord', 'Ordering',
+            'Char', 'String', 'Eq', 'Enum', 'Bounded',
             'Int', 'Integer', 'Float', 'Double', 'Rational',
-            'Num', 'Real', 'Integral', 'Fractional', 
+            'Num', 'Real', 'Integral', 'Fractional',
             'Floating', 'RealFrac', 'RealFloat', 'Monad',
-            'Functor', 'Show', 'ShowS', 'Read', 'ReadS', 
+            'Functor', 'Show', 'ShowS', 'Read', 'ReadS',
             'IO'
            ),
         /* finally Prelude Exceptions */
@@ -123,11 +121,11 @@ $language_data = array (
     /* highlighting symbols is really important in Haskell */
     'SYMBOLS' => array(
            '|', '->', '<-', '@', '!', '::', '_', '~', '=',
-           '&&', '||', '==', '/=', '<', '<=', '>', 
-           '>=','+', '-', '*','/',  '**', '^', '^^', 
-           '>>=', '>>', '=<<',  '$', '.',  '$!',  
+           '&&', '||', '==', '/=', '<', '<=', '>',
+           '>=','+', '-', '*','/',  '**', '^', '^^',
+           '>>=', '>>', '=<<',  '$', '.',  '$!',
            '++', '!!'
-            ), 
+            ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => true,
         1 => true,
@@ -164,7 +162,7 @@ $language_data = array (
             ),
         'REGEXPS' => array(
             ),
-        'SYMBOLS' => array( 
+        'SYMBOLS' => array(
             0 => 'color: #66cc66; font-weight: bold;'
             ),
         'SCRIPT' => array(
@@ -176,11 +174,11 @@ $language_data = array (
         /* link to the wanted library */
         2 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/{FNAME}.html',
         /* link to Prelude functions */
-        3 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:{FNAME}', 
+        3 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:{FNAME}',
         /* link to Prelude types */
-        4 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}', 
+        4 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
         /* link to Prelude exceptions */
-        5 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}', 
+        5 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php
index 3d2620e327976f4e7b4fefe10ae738f16968741f..99156473bf4580dd1d23c94006bdb026c3ce495d 100644
--- a/inc/geshi/html4strict.php
+++ b/inc/geshi/html4strict.php
@@ -4,7 +4,7 @@
  * ---------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/10
  *
  * HTML 4.01 strict language file for GeSHi.
diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php
index 0ae8d2ce9a7a5182caac6df3e1f44117c3b3c668..fd6829bf36cbc9a7b173ceb93dcb6c952fdc961e 100644
--- a/inc/geshi/idl.php
+++ b/inc/geshi/idl.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
  * Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/08/20
  *
  * Unoidl language file for GeSHi.
@@ -53,7 +53,7 @@ $language_data = array (
 			'True', 'False', 'TRUE', 'FALSE'
             ),
 		4 => array(
-		    'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double', 'long', 
+		    'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double', 'long',
             'void', 'sequence', 'unsigned', '...'
             ),
 		),
diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php
index e055d9079adea95a43423d96410b57cc97dc94cc..b7de9afa4edadfebb795480e11cce3d14a920567 100644
--- a/inc/geshi/ini.php
+++ b/inc/geshi/ini.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br)
  * Copyright: (c) 2005 deguix
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/03/27
  *
  * INI language file for GeSHi.
diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php
index e4b784c9c6d62253a79c76ca8ed4b03d481b8582..3b8fc92dff47310d7949575d5c5f61cba593933d 100644
--- a/inc/geshi/inno.php
+++ b/inc/geshi/inno.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from Járja Norbert (jnorbi@vipmail.hu)
  * Copyright: (c) 2004 Járja Norbert, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/07/29
  *
  * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
@@ -57,7 +57,7 @@ $language_data = array (
 			'End', 'Except', 'File', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Interface',
 			'Is', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Procedure', 'Property', 'Raise', 'Record',
 			'Repeat', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Unit', 'Until', 'Uses', 'While', 'With', 'Xor',
-			
+
 			'HKCC','HKCR','HKCU','HKLM','HKU','alwaysoverwrite','alwaysskipifsameorolder','append',
 			'binary','classic','closeonexit','comparetimestamp','confirmoverwrite',
 			'createkeyifdoesntexist','createonlyiffileexists','createvalueifdoesntexist',
@@ -74,7 +74,7 @@ $language_data = array (
 			'uninsdeletesection','uninsdeletesectionifempty','uninsdeletevalue',
 			'uninsneveruninstall','useapppaths','verysilent','waituntilidle'
 
-			
+
 			),
 		3 => array(
 			'Abs', 'Addr', 'AnsiCompareStr', 'AnsiCompareText', 'AnsiContainsStr', 'AnsiEndsStr', 'AnsiIndexStr', 'AnsiLeftStr',
@@ -103,7 +103,7 @@ $language_data = array (
 			'ProcessPath', 'Randomize', 'Read', 'ReadLn', 'ReallocMem', 'Rename', 'ReplaceDate', 'ReplaceTime',
 			'Reset', 'ReWrite', 'RmDir', 'RunError', 'Seek', 'SetLength', 'SetString', 'ShowMessage', 'ShowMessageFmt',
 			'ShowMessagePos', 'Str', 'Truncate', 'Val', 'Write', 'WriteLn',
-			
+
 			'AdminPrivilegesRequired','AfterInstall','AllowCancelDuringInstall','AllowNoIcons','AllowRootDirectory','AllowUNCPath','AlwaysRestart','AlwaysShowComponentsList','AlwaysShowDirOnReadyPage','AlwaysShowGroupOnReadyPage ','AlwaysUsePersonalGroup','AppComments','AppContact','AppCopyright','AppendDefaultDirName',
 			'AppendDefaultGroupName','AppId','AppModifyPath','AppMutex','AppName','AppPublisher',
 			'AppPublisherURL','AppReadmeFile','AppSupportURL','AppUpdatesURL','AppVerName','AppVersion',
@@ -135,7 +135,7 @@ $language_data = array (
 			'WindowResizable','WindowShowCaption','WindowStartMaximized',
 			'WindowVisible','WizardImageBackColor','WizardImageFile','WizardImageStretch','WizardSmallImageBackColor','WizardSmallImageFile','WizardStyle','WorkingDir'
 
-			
+
 			),
 		4 => array(
 			'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'Cardinal', 'Char', 'Comp', 'Currency', 'Double', 'Extended',
@@ -149,8 +149,8 @@ $language_data = array (
 		),
 	'SYMBOLS' => array(
 		'(', ')', '[', ']', '{', '}', '@', '%', '&', '*', '|', '/', '<', '>'
-		),	
-		
+		),
+
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
 		1 => false,
diff --git a/inc/geshi/io.php b/inc/geshi/io.php
index 030caa8c3e5ea7c9e2f51654ba7bba71c3e5a3b5..97c1c063dea5f91e7ee582c0a4d06fdbf47ba67e 100644
--- a/inc/geshi/io.php
+++ b/inc/geshi/io.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/09/23
  *
  * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help
diff --git a/inc/geshi/java.php b/inc/geshi/java.php
index 79eaf3897164bb5ecda67677a36f3a93194d1bd7..4c5689df2b8350fcdfd93a849b52716e6ee9194d 100644
--- a/inc/geshi/java.php
+++ b/inc/geshi/java.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php
index 07c90a1c5073694bf6c681abb179fa9f7cd2bff3..d1699dee4e3b267596b4ed3bb08dcb2c20aef38b 100644
--- a/inc/geshi/java5.php
+++ b/inc/geshi/java5.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php
index 6f25b22c132ebcbccb3786ac63905fae46e170c3..9135ef4ca3f0cc5b43e5e938b8ab2e60a10d361f 100644
--- a/inc/geshi/javascript.php
+++ b/inc/geshi/javascript.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/20
  *
  * JavaScript language file for GeSHi.
diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php
index d7bc48d2796e371b45ceed4e73c7edcaa9543840..3638efd49dcdb2618ec1c9b9d87e95d4ccdc2144 100644
--- a/inc/geshi/latex.php
+++ b/inc/geshi/latex.php
@@ -2,8 +2,22 @@
 /*************************************************************************************
  * latex.php
  * -----
- * Original Author: efi
- * modified by Matthias Pospiech (mail@matthiaspospiech.de)
+ * Author: efi, Matthias Pospiech (mail@matthiaspospiech.de)
+ * Copyright: (c) 2006 efi, Matthias Pospiech (mail@matthiaspospiech.de), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.7.21
+ * Date Started: 2006/09/23
+ *
+ * LaTeX language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2006/09/23 (1.0.0)
+ *  -  First Release
+ *
+ * TODO
+ * -------------------------
+ * *
+ *
  *************************************************************************************
  *
  *   This file is not yet part of GeSHi. (and is not compatible to the 1.1+ branch)
@@ -108,7 +122,7 @@ $language_data = array (
         3 => array(
             GESHI_SEARCH => "(\\{)(.*)(\\})",
             GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
+            GESHI_MODIFIERS => 'U',
             GESHI_BEFORE => '\1',
             GESHI_AFTER => '\3'
             ),
@@ -116,7 +130,7 @@ $language_data = array (
         4 => array(
             GESHI_SEARCH => "(\[)(.+)(\])",
             GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
+            GESHI_MODIFIERS => 'U',
             GESHI_BEFORE => '\1',
             GESHI_AFTER => '\3'
             ),
diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php
index 6f215b30b24d3d5c119a564954cce4ce57d1acb0..7d96b9d19f3287a6de795591f4a24a7fd57ede67 100644
--- a/inc/geshi/lisp.php
+++ b/inc/geshi/lisp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * Generic Lisp language file for GeSHi.
diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php
index 8fcfa81bfb241d3fda8406ab2bbe9b5a859604a0..6ae651de4b51b2e77cd0c923aa337b8253737e5f 100644
--- a/inc/geshi/lua.php
+++ b/inc/geshi/lua.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/10
  *
  * LUA language file for GeSHi.
@@ -47,7 +47,7 @@ $language_data = array (
 	'COMMENT_SINGLE' => array(1 => "--"),
 	'COMMENT_MULTI' => array('--[[' => ']]'),
 	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-	'QUOTEMARKS' => array('"'),
+	'QUOTEMARKS' => array("'", '"'),
 	'ESCAPE_CHAR' => '\\',
 	'KEYWORDS' => array(
 		1 => array(
diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php
index 8208de517b604bca70075cda2dc3895d78765bd6..27cf48bf1bd003fd32454a83cfb1f8f8d19e856f 100644
--- a/inc/geshi/m68k.php
+++ b/inc/geshi/m68k.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2007/02/06
  *
  * Motorola 68000 Assembler language file for GeSHi.
diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php
index 7d51a35fba284f5ea7708f08cc528e7dd457508c..32ccabd37c63392173f4110a5ea45874904fa574 100644
--- a/inc/geshi/matlab.php
+++ b/inc/geshi/matlab.php
@@ -4,10 +4,10 @@
  * -----------
  * Author: Florian Knorn (floz@gmx.de)
  * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/02/09
  *
- * Matlab M-file language file for GeSHi. 
+ * Matlab M-file language file for GeSHi.
  *
  * CHANGES
  * -------
@@ -49,8 +49,8 @@ $language_data = array (
 	'ESCAPE_CHAR' => '',
 	'KEYWORDS' => array(
 		1 => array(
-			'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for', 
-			'function', 'global', 'if', 'otherwise', 'persistent', 'return', 
+			'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for',
+			'function', 'global', 'if', 'otherwise', 'persistent', 'return',
 			'switch', 'try', 'while','...'
 			),
         2 => array(
@@ -62,7 +62,7 @@ $language_data = array (
 							'isa',
 							'logical',
 							'mislocked',
-							
+
 							'builtin',
 							'eval',
 							'evalc',
@@ -118,7 +118,7 @@ $language_data = array (
 							'dbstop',
 							'dbtype',
 							'dbup',
-								
+
 							'blkdiag',
 							'eye',
 							'linspace',
@@ -790,11 +790,11 @@ $language_data = array (
 							'tempdir',
 							'tempname',
 							'matlabrc',
-							'quit',                            
+							'quit',
 )
 		),
-	'SYMBOLS' => array( 
-		'...' 
+	'SYMBOLS' => array(
+		'...'
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php
index c032f10808ffefa3ee0120de044773aed4e3629c..29faac2a78c0c09cde7faa2a95f5cc4c47d58426 100644
--- a/inc/geshi/mirc.php
+++ b/inc/geshi/mirc.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com)
  * Copyright: (c) 2006 Alberto de Areba
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/05/29
  *
  * mIRC Scripting language file for GeSHi.
@@ -49,39 +49,38 @@ $language_data = array (
 			'if', 'elseif', 'else', 'while', 'return', 'goto',
 			),
 		3 => array(
-			'/action','/ajinvite','/alias','/amsg','/ame','/anick','/aop',
-			'/auser','/avoice','/auto','/autojoin','/away','/background','/ban',
-			'/beep','/channel','/clear','/clearall','/clipboard','/close',
-			'/closemsg','/color','/copy','/creq','/ctcp','/ctcpreply','/ctcps',
-			'/dcc','/dde','/ddeserver','/debug','/describe','/disable',
-			'/disconnect','/dlevel','/dll','/dns','/dqwindow','/ebeeps','/echo',
-			'/editbox','/emailaddr','/enable','/events','/exit','/filter',
-			'/findtext','/finger','/flash','/flood','/flush','/flushini',
-			'/font','/fsend','/fserve','/fullname','/ghide','/gload','/gmove',
-			'/gopts','/gplay','/gpoint','/gqreq','/groups','/gshow','/gsize',
-			'/gstop','/gtalk','/gunload','/guser','/help','/hop','/ignore',
-			'/invite','/join','/kick','/linesep','/links','/list','/load',
-			'/loadbuf','/localinfo','/log','/me','/mdi','/mkdir','/mnick',
-			'/mode','/msg','/names','/nick','/noop','/notice','/notify',
-			'/omsg','/onotice','/part','/partall','/pdcc','/perform','/ping',
-			'/play','/pop','/protect','/pvoice','/qmsg','/qme','/query',
-			'/queryrn','/quit','/raw','/remini','/remote','/remove','/rename',
-			'renwin','/resetidle','/rlevel','/rmdir','/run','/ruser','/save',
-			'/savebuf','/save','/saveini','/say','/server','/showmirc','/sline',
-			'/sound','/speak','/splay','/sreq','/strip','/time',
-			//'/timer[N/name]', //Handled as a regular expression below ...
-			'/timers','/timestamp','/titlebar','/tnick','/tokenize','/topic',
-			'/ulist','/unload','/updatenl','/url','/uwho','window','/winhelp',
-			'/write','/writeini','/who','/whois','/whowas'
+			'action','ajinvite','alias','amsg','ame','anick','aop','auser',
+			'avoice','auto','autojoin','away','background','ban','beep',
+			'channel','clear','clearall','clipboard','close','closemsg','color',
+			'copy','creq','ctcp','ctcpreply','ctcps','dcc','dde','ddeserver',
+			'debug','describe','disable','disconnect','dlevel','dll','dns',
+			'dqwindow','ebeeps','echo','editbox','emailaddr','enable','events',
+			'exit','filter','findtext','finger','flash','flood','flush',
+			'flushini',	'font','fsend','fserve','fullname','ghide','gload',
+			'gmove','gopts','gplay','gpoint','gqreq','groups','gshow','gsize',
+			'gstop','gtalk','gunload','guser','help','hop','ignore','invite',
+			'join','kick','linesep','links','list','load','loadbuf','localinfo',
+			'log','me','mdi','mkdir','mnick','mode','msg','names','nick','noop',
+			'notice','notify','omsg','onotice','part','partall','pdcc',
+			'perform','ping','play','pop','protect','pvoice','qmsg','qme',
+			'query','queryrn','quit','raw','remini','remote','remove','rename',
+			'enwin','resetidle','rlevel','rmdir','run','ruser','save','savebuf',
+			'saveini','say','server','showmirc','sline','sound','speak','splay',
+			'sreq','strip','time',
+			//'timer[N/name]', //Handled as a regular expression below ...
+			'timers','timestamp','titlebar','tnick','tokenize','topic','ulist',
+			'unload','updatenl','url','uwho','window','winhelp','write',
+			'writeini','who','whois','whowas'
 			)
 		),
 	'SYMBOLS' => array(
-		'(', ')', '{', '}', '[', ']', '|',
+		'(', ')', '{', '}', '[', ']',
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
 		1 => false,
 		2 => false,
+		3 => false,
 		),
 	'STYLES' => array(
 		'KEYWORDS' => array(
@@ -129,11 +128,11 @@ $language_data = array (
 	'OBJECT_SPLITTERS' => array(
 		),
 	'REGEXPS' => array(
-		0 => '\$[^$][^ ,\(\)]*',
-		1 => '(%|&).+?[^ ,\)]*',
-		2 => '(#|@).+?[^ ,\)]*',
+		0 => '\$[a-zA-Z0-9]+',
+		1 => '(%|&amp;)[a-zA-Z0-9]+',
+		2 => '(#|@)[a-zA-Z0-9]+',
 		3 => '-[a-z\d]+',
-		4 => '(on|ctcp) (!|@|&)?(\d|\*):[a-zA-Z]+:',
+		4 => '(on|ctcp) (!|@|&amp;)?(\d|\*):[a-zA-Z]+:',
 		/*4 => array(
 			GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)',
 			GESHI_REPLACE => '\\1',
@@ -142,7 +141,7 @@ $language_data = array (
 			GESHI_AFTER => ''
 			),*/
         5 => 'raw (\d|\*):',
-		6 => '\/timer(?!s\b)[0-9a-zA-Z_]+',
+		6 => '/timer(?!s\b)[0-9a-zA-Z_]+',
 		),
 	'STRICT_MODE_APPLIES' => GESHI_NEVER,
 	'SCRIPT_DELIMITERS' => array(
@@ -151,4 +150,7 @@ $language_data = array (
 		)
 );
 
+if (isset($this) && is_a($this, 'GeSHi')) {
+    $this->set_numbers_highlighting(false);
+}
 ?>
diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php
index 5514d99df13805150ae6a2bd25418a46ea0bfa41..6c5f425be30c7e3d57b15f2455451c53a72b822d 100644
--- a/inc/geshi/mpasm.php
+++ b/inc/geshi/mpasm.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Bakalex (bakalex@gmail.com)
  * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/12/6
  *
  * Microchip Assembler language file for GeSHi.
diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php
index a2cb183d25a59cf0bf539c465ec411a3d6a18d7b..143c5325168fa983923d9784c5fad5ad5855a6dd 100644
--- a/inc/geshi/mysql.php
+++ b/inc/geshi/mysql.php
@@ -1,181 +1,181 @@
-<?php 
- /************************************************************************************* 
- * mysql.php 
- * --------- 
- * Author: Carl F�rstenberg (azatoth@gmail.com) 
- * Copyright: (c) 2005 Carl F�rstenberg, Nigel McNie (http://qbnz.com/highlighter) 
- * Release Version: 1.0.7.20
- * Date Started: 2004/06/04 
- * 
- * MySQL language file for GeSHi. 
- * 
- * 
- ************************************************************************************* 
- * 
- * This file is part of GeSHi. 
- * 
- * GeSHi is free software; you can redistribute 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. 
- * 
- * GeSHi 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 GeSHi; if not, write to the Free Software 
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
- * 
- ************************************************************************************/ 
-  
-$language_data = array ( 
-  'LANG_NAME' => 'MySQL', 
-  'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), 
-  'COMMENT_MULTI' => array('/*' => '*/'), 
-  'CASE_KEYWORDS' => 1, 
-  'QUOTEMARKS' => array("'", '"', ''), 
-  'ESCAPE_CHAR' => '\\', 
-  'KEYWORDS' => array( 
-  1 => array( 
-  /* Mix */ 
-  'ALTER DATABASE', 'ALTER TABLE', 'CREATE DATABASE', 'CREATE INDEX', 'CREATE TABLE', 'DROP DATABASE', 
-  'DROP INDEX', 'DROP TABLE', 'RENAME TABLE', 'DELETE', 'DO', 'HANDLER', 'INSERT', 'LOAD DATA INFILE',  
-  'REPLACE', 'SELECT', 'TRUNCATE', 'UPDATE', 'DESCRIBE', 'USE', 'START TRANSACTION', 'COMMIT', 'ROLLBACK', 
-  'SAVEPOINT', 'ROLLBACK TO SAVEPOINT', 'LOCK TABLES', 'UNLOCK_TABLES', 'SET TRANACTIONS', 'SET', 'SHOW', 
-  'CREATE PROCEDURE', 'CREATE FUNCTION', 'ALTER PROCEDURE', 'ALTER FUNCTION', 'DROP PROCEDURE', 'DROP FUNCTION',  
-  'SHOW CREATE PROCEDURE', 'SHOW CREATE FUNCTION', 'SHOW PROCEDURE STATUS', 'SHOW FUNCTION STATUS',  
-  'CALL', 'BEGIN', 'END', 'DECLARE', 'CREATE ROUTINE', 'ALTER ROUTINE', 'CREATE', 'ALTER', 'DROP', 
-  'PRIMARY KEY', 'VALUES', 'INTO', 'FROM',  
-  'ANALYZE', 'BDB', 'BERKELEYDB', 'BTREE', 'BY', 'CASCADE', 'CHECK', 'COLUMN', 'COLUMNS', 'CONSTRAINT', 
-  'CROSS', 'DATABASES', 'DELAYED', 'DISTINCT', 'DISTINCTROW', 'ENCLOSED', 'ERRORS', 'ESCAPED', 'EXISTS', 
-  'EXPLAIN', 'FALSE', 'FIELDS', 'FORCE', 'FOREIGN', 'FULLTEXT', 'GEOMETRY', 'GRANT', 'GROUP', 'HASH', 
-  'HAVING', 'HELP', 'HIGH_PRIORITY', 'IGNORE', 'INNER', 'INNODB', 'INTERVAL', 'JOIN', 'KEYS', 'KILL', 
-  'LINES', 'LOW_PRIORITY', 'MASTER_SERVER_ID', 'MATCH', 'MIDDLEINT', 'MRG_MYISAM', 'NATURAL', 'OPTIMIZE', 
-  'OPTION', 'OPTIONALLY', 'ORDER', 'OUTER', 'OUTFILE', 'PRIVILEGES', 'PURGE', 'READ', 'REFERENCES', 
-  'REQUIRE', 'RESTRICT', 'RETURNS', 'REVOKE', 'RLIKE', 'RTREE', 'SOME', 'SONAME', 'SPATIAL', 'SQL_BIG_RESULT',  
-  'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SSL', 'STARTING', 'STRAIGHT_JOIN', 'STRIPED', 'TERMINATED',  
-  'TRUE', 'TYPES', 'UNION', 'USAGE', 'USER_RESOURCES', 'USING', 'VARCHARACTER', 'WARNINGS', 'WHERE', 'WRITE', 
-  /* Control Flow Functions */ 
-  'CASE', 'WHEN', 'THEN', 'ELSE', 'END', 
-  /* String Functions */ 
-  'UNHEX', 'BIN', 'BIT_LENGTH', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'COMPRESS', 'CONCAT', 
-  'CONCAT_WS', 'CONV', 'ELT', 'EXPORT_SET', 'FIELD', 'FIND_IN_SET', 'FORMAT', 'HEX',  
-  'INSERT', 'INSTR', 'LCASE', 'LEFT', 'LENGTH', 'LOAD_FILE', 'LOCATE', 'LOWER', 'LPAD', 
-  'LTRIM', 'MAKE_SET', 'MID', 'OCT', 'OCTET_LENGTH', 'ORD', 'POSITION', 'QUOTE', 'REPEAT', 
-  'REPLACE', 'REVERSE', 'RIGHT', 'RPAD', 'RTRIM', 'SOUNDEX', 'SPACE', 'SUBSTRING',  
+<?php
+ /*************************************************************************************
+ * mysql.php
+ * ---------
+ * Author: Carl F�rstenberg (azatoth@gmail.com)
+ * Copyright: (c) 2005 Carl F�rstenberg, Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.7.21
+ * Date Started: 2004/06/04
+ *
+ * MySQL language file for GeSHi.
+ *
+ *
+ *************************************************************************************
+ *
+ * This file is part of GeSHi.
+ *
+ * GeSHi is free software; you can redistribute 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.
+ *
+ * GeSHi 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 GeSHi; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+  'LANG_NAME' => 'MySQL',
+  'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'),
+  'COMMENT_MULTI' => array('/*' => '*/'),
+  'CASE_KEYWORDS' => 1,
+  'QUOTEMARKS' => array("'", '"', ''),
+  'ESCAPE_CHAR' => '\\',
+  'KEYWORDS' => array(
+  1 => array(
+  /* Mix */
+  'ALTER DATABASE', 'ALTER TABLE', 'CREATE DATABASE', 'CREATE INDEX', 'CREATE TABLE', 'DROP DATABASE',
+  'DROP INDEX', 'DROP TABLE', 'RENAME TABLE', 'DELETE', 'DO', 'HANDLER', 'INSERT', 'LOAD DATA INFILE',
+  'REPLACE', 'SELECT', 'TRUNCATE', 'UPDATE', 'DESCRIBE', 'USE', 'START TRANSACTION', 'COMMIT', 'ROLLBACK',
+  'SAVEPOINT', 'ROLLBACK TO SAVEPOINT', 'LOCK TABLES', 'UNLOCK_TABLES', 'SET TRANACTIONS', 'SET', 'SHOW',
+  'CREATE PROCEDURE', 'CREATE FUNCTION', 'ALTER PROCEDURE', 'ALTER FUNCTION', 'DROP PROCEDURE', 'DROP FUNCTION',
+  'SHOW CREATE PROCEDURE', 'SHOW CREATE FUNCTION', 'SHOW PROCEDURE STATUS', 'SHOW FUNCTION STATUS',
+  'CALL', 'BEGIN', 'END', 'DECLARE', 'CREATE ROUTINE', 'ALTER ROUTINE', 'CREATE', 'ALTER', 'DROP',
+  'PRIMARY KEY', 'VALUES', 'INTO', 'FROM',
+  'ANALYZE', 'BDB', 'BERKELEYDB', 'BTREE', 'BY', 'CASCADE', 'CHECK', 'COLUMN', 'COLUMNS', 'CONSTRAINT',
+  'CROSS', 'DATABASES', 'DELAYED', 'DISTINCT', 'DISTINCTROW', 'ENCLOSED', 'ERRORS', 'ESCAPED', 'EXISTS',
+  'EXPLAIN', 'FALSE', 'FIELDS', 'FORCE', 'FOREIGN', 'FULLTEXT', 'GEOMETRY', 'GRANT', 'GROUP', 'HASH',
+  'HAVING', 'HELP', 'HIGH_PRIORITY', 'IGNORE', 'INNER', 'INNODB', 'INTERVAL', 'JOIN', 'KEYS', 'KILL',
+  'LINES', 'LOW_PRIORITY', 'MASTER_SERVER_ID', 'MATCH', 'MIDDLEINT', 'MRG_MYISAM', 'NATURAL', 'OPTIMIZE',
+  'OPTION', 'OPTIONALLY', 'ORDER', 'OUTER', 'OUTFILE', 'PRIVILEGES', 'PURGE', 'READ', 'REFERENCES',
+  'REQUIRE', 'RESTRICT', 'RETURNS', 'REVOKE', 'RLIKE', 'RTREE', 'SOME', 'SONAME', 'SPATIAL', 'SQL_BIG_RESULT',
+  'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SSL', 'STARTING', 'STRAIGHT_JOIN', 'STRIPED', 'TERMINATED',
+  'TRUE', 'TYPES', 'UNION', 'USAGE', 'USER_RESOURCES', 'USING', 'VARCHARACTER', 'WARNINGS', 'WHERE', 'WRITE',
+  /* Control Flow Functions */
+  'CASE', 'WHEN', 'THEN', 'ELSE', 'END',
+  /* String Functions */
+  'UNHEX', 'BIN', 'BIT_LENGTH', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'COMPRESS', 'CONCAT',
+  'CONCAT_WS', 'CONV', 'ELT', 'EXPORT_SET', 'FIELD', 'FIND_IN_SET', 'FORMAT', 'HEX',
+  'INSERT', 'INSTR', 'LCASE', 'LEFT', 'LENGTH', 'LOAD_FILE', 'LOCATE', 'LOWER', 'LPAD',
+  'LTRIM', 'MAKE_SET', 'MID', 'OCT', 'OCTET_LENGTH', 'ORD', 'POSITION', 'QUOTE', 'REPEAT',
+  'REPLACE', 'REVERSE', 'RIGHT', 'RPAD', 'RTRIM', 'SOUNDEX', 'SPACE', 'SUBSTRING',
   'SUBSTRING_INDEX', 'TRIM', 'UCASE', 'UPPER', 'UNCOMPRESS', 'UNCOMPRESSD_LENGTH',
-  'MD5', 'SHA1',  
-  /* Numeric Functions */ 
-  'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'CEILING', 'CEIL', 'COS', 'COT', 'CRC32', 'DEGREES', 
-  'EXP', 'FLOOR', 'LN', 'LOG', 'LOG2', 'LOG10', 'MOD', 'PI', 'POW', 'POWER', 'RADIANS', 'RAND', 
-  'ROUND', 'SIGN', 'SIN', 'SQRT', 'TAN', 'TRUNCATE', 
-  /* Date and Time Functions */ 
-  'ADDDATE', 'ADDTIME', 'CONVERT_TZ', 'CURDATE', 'CURRENT_DATE', 'CURTIME', 'CURRENT_TIME', 
-  'CURRENT_TIMESTAMP', 'DATEDIFF', 'DATE_ADD', 'DATE_SUB', 'DATE_FORMAT', 'DAY',  
-  'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'EXTRACT', 'FROM_DAYS', 'FROM_UNIXTIME', 
-  'GET_FORMAT', 'LAST_DAY', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKEDATE', 'MAKETIME',  
-  'MICROSECOND', 'MONTHNAME', 'NOW', 'PERIOD_ADD', 'PERIOD_DIFF', 'QUARTER', 
-  'SECOND', 'SEC_TO_TIME', 'STR_TO_DATE', 'SUBDATE', 'SUBTIME', 'SYSDATE', 'TIME', 'TIMEDIFF', 
-  'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS',  
-  'UNIX_TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'WEEKDAY', 'WEEKOFYEAR', 
-  'YEARWEEK', 
-   
-   ), 
-   2 => array( 
-   'INTEGER', 'SMALLINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL', 'DOUBLE PRECISION', 
-   'DOUBLE', 'INT', 'DEC', 'BIT' ,'TINYINT', 'SMALLINT', 'MEDIUMINT', 'BIGINT',  
-   'DATETIME', 'DATE', 'TIMESTAMP', 'TIME', 'YEAR',  
-   'CHAR', 'VARCHAR', 'BINARY', 'CHARACTER VARYING', 'VARBINARY', 'TINYBLOB', 'TINYTEXT', 
-   'BLOB', 'TEXT','MEDIUMBLOB', 'MEDIUMTEXT', 'LONGBLOB', 'LONGTEXT', 'ENUM', 'SET', 
-   'SERIAL DEFAULT VALUE', 'SERIAL', 'FIXED' 
-   ), 
-   3 => array( 
-   'ZEROFILL', 'NOT NULL', 'UNSIGNED', 'AUTO_INCREMENT', 'UNIQUE', 'NOT', 'NULL', 'CHARACTER SET', 'CHARSET', 
-   'ASCII', 'UNICODE', 'NATIONAL', 'BOTH', 'LEADING', 'TRAILING','DEFAULT' 
-   ), 
-   4 => array( 
-   'MICROSECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR', 'SECOND_MICROSECOND',  
-   'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'HOUR_MICROSECOND', 'HOUR_SECOND', 'HOUR_MINUTE', 'DAY_MICROSECOND', 
-   'DAY_SECOND', 'DAY_MINUTE', 'DAY_HOUR', 'YEAR_MONTH' 
+  'MD5', 'SHA1',
+  /* Numeric Functions */
+  'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'CEILING', 'CEIL', 'COS', 'COT', 'CRC32', 'DEGREES',
+  'EXP', 'FLOOR', 'LN', 'LOG', 'LOG2', 'LOG10', 'MOD', 'PI', 'POW', 'POWER', 'RADIANS', 'RAND',
+  'ROUND', 'SIGN', 'SIN', 'SQRT', 'TAN', 'TRUNCATE',
+  /* Date and Time Functions */
+  'ADDDATE', 'ADDTIME', 'CONVERT_TZ', 'CURDATE', 'CURRENT_DATE', 'CURTIME', 'CURRENT_TIME',
+  'CURRENT_TIMESTAMP', 'DATEDIFF', 'DATE_ADD', 'DATE_SUB', 'DATE_FORMAT', 'DAY',
+  'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'EXTRACT', 'FROM_DAYS', 'FROM_UNIXTIME',
+  'GET_FORMAT', 'LAST_DAY', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKEDATE', 'MAKETIME',
+  'MICROSECOND', 'MONTHNAME', 'NOW', 'PERIOD_ADD', 'PERIOD_DIFF', 'QUARTER',
+  'SECOND', 'SEC_TO_TIME', 'STR_TO_DATE', 'SUBDATE', 'SUBTIME', 'SYSDATE', 'TIME', 'TIMEDIFF',
+  'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS',
+  'UNIX_TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'WEEKDAY', 'WEEKOFYEAR',
+  'YEARWEEK',
+
+   ),
+   2 => array(
+   'INTEGER', 'SMALLINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL', 'DOUBLE PRECISION',
+   'DOUBLE', 'INT', 'DEC', 'BIT' ,'TINYINT', 'SMALLINT', 'MEDIUMINT', 'BIGINT',
+   'DATETIME', 'DATE', 'TIMESTAMP', 'TIME', 'YEAR',
+   'CHAR', 'VARCHAR', 'BINARY', 'CHARACTER VARYING', 'VARBINARY', 'TINYBLOB', 'TINYTEXT',
+   'BLOB', 'TEXT','MEDIUMBLOB', 'MEDIUMTEXT', 'LONGBLOB', 'LONGTEXT', 'ENUM', 'SET',
+   'SERIAL DEFAULT VALUE', 'SERIAL', 'FIXED'
+   ),
+   3 => array(
+   'ZEROFILL', 'NOT NULL', 'UNSIGNED', 'AUTO_INCREMENT', 'UNIQUE', 'NOT', 'NULL', 'CHARACTER SET', 'CHARSET',
+   'ASCII', 'UNICODE', 'NATIONAL', 'BOTH', 'LEADING', 'TRAILING','DEFAULT'
+   ),
+   4 => array(
+   'MICROSECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR', 'SECOND_MICROSECOND',
+   'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'HOUR_MICROSECOND', 'HOUR_SECOND', 'HOUR_MINUTE', 'DAY_MICROSECOND',
+   'DAY_SECOND', 'DAY_MINUTE', 'DAY_HOUR', 'YEAR_MONTH'
    ),
    5 => array(
    'OR', 'XOR', 'AND', 'NOT', 'BETWEEN', 'IS', 'LIKE', 'REGEXP', 'IN', 'DIV',
     'MOD', 'BINARY', 'COLLATE', 'LIMIT', 'OFFSET'
-   ), 
-   ),
-   'SYMBOLS' => array( 
-   ':=', 
-   '||', 'OR', 'XOR', 
-   '&&', 'AND', 
-   'NOT', 
-   'BETWEEN', 'CASE', 'WHEN', 'THEN', 'ELSE', 
-   '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', 'IS', 'LIKE', 'REGEXP', 'IN', 
-   '|', 
-   '&', 
-   '<<', '>>', 
-   '-', '+', 
-   '*', '/', 'DIV', '%', 'MOD', 
-   '^', 
-   '-', '~', 
-   '!', 
-   'BINARY', 'COLLATE', 
-   '(', ')', 
-   ), 
-   'CASE_SENSITIVE' => array( 
-   GESHI_COMMENTS => false, 
-   1 => false, 
-   2 => false, 
-   3 => false, 
-   4 => false, 
+   ),
+   ),
+   'SYMBOLS' => array(
+   ':=',
+   '||', 'OR', 'XOR',
+   '&&', 'AND',
+   'NOT',
+   'BETWEEN', 'CASE', 'WHEN', 'THEN', 'ELSE',
+   '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', 'IS', 'LIKE', 'REGEXP', 'IN',
+   '|',
+   '&',
+   '<<', '>>',
+   '-', '+',
+   '*', '/', 'DIV', '%', 'MOD',
+   '^',
+   '-', '~',
+   '!',
+   'BINARY', 'COLLATE',
+   '(', ')',
+   ),
+   'CASE_SENSITIVE' => array(
+   GESHI_COMMENTS => false,
+   1 => false,
+   2 => false,
+   3 => false,
+   4 => false,
    5 => false
-   ), 
-   'STYLES' => array( 
-   'KEYWORDS' => array( 
-   1 => 'color: #993333; font-weight: bold;', 
-   2 => 'color: #aa9933; font-weight: bold;', 
-   3 => 'color: #aa3399; font-weight: bold;', 
+   ),
+   'STYLES' => array(
+   'KEYWORDS' => array(
+   1 => 'color: #993333; font-weight: bold;',
+   2 => 'color: #aa9933; font-weight: bold;',
+   3 => 'color: #aa3399; font-weight: bold;',
    4 => 'color: #33aa99; font-weight: bold;',
    5 => 'color: #993333; font-weight: bold;'
-   ), 
-   'COMMENTS' => array( 
-   'MULTI' => 'color: #808080; font-style: italic;', 
-   1 => 'color: #808080; font-style: italic;', 
-   2 => 'color: #808080; font-style: italic;' 
-   ), 
-   'ESCAPE_CHAR' => array( 
-   0 => 'color: #000099; font-weight: bold;' 
-   ), 
-   'BRACKETS' => array( 
-   0 => 'color: #66cc66;' 
-   ), 
-   'STRINGS' => array( 
-   0 => 'color: #ff0000;' 
-   ), 
-   'NUMBERS' => array( 
-   0 => 'color: #cc66cc;' 
-   ), 
-   'METHODS' => array( 
-   ), 
-   'SYMBOLS' => array( 
-   0 => 'color: #66cc66;' 
-   ), 
-   'SCRIPT' => array( 
-   ), 
-   'REGEXPS' => array( 
-   ) 
-   ), 
-   'OOLANG' => false, 
-   'OBJECT_SPLITTERS' => array( 
-   ), 
-   'REGEXPS' => array( 
-   ), 
-   'STRICT_MODE_APPLIES' => GESHI_NEVER, 
-   'SCRIPT_DELIMITERS' => array( 
-   ), 
-   'HIGHLIGHT_STRICT_BLOCK' => array( 
-   ) 
+   ),
+   'COMMENTS' => array(
+   'MULTI' => 'color: #808080; font-style: italic;',
+   1 => 'color: #808080; font-style: italic;',
+   2 => 'color: #808080; font-style: italic;'
+   ),
+   'ESCAPE_CHAR' => array(
+   0 => 'color: #000099; font-weight: bold;'
+   ),
+   'BRACKETS' => array(
+   0 => 'color: #66cc66;'
+   ),
+   'STRINGS' => array(
+   0 => 'color: #ff0000;'
+   ),
+   'NUMBERS' => array(
+   0 => 'color: #cc66cc;'
+   ),
+   'METHODS' => array(
+   ),
+   'SYMBOLS' => array(
+   0 => 'color: #66cc66;'
+   ),
+   'SCRIPT' => array(
+   ),
+   'REGEXPS' => array(
+   )
+   ),
+   'OOLANG' => false,
+   'OBJECT_SPLITTERS' => array(
+   ),
+   'REGEXPS' => array(
+   ),
+   'STRICT_MODE_APPLIES' => GESHI_NEVER,
+   'SCRIPT_DELIMITERS' => array(
+   ),
+   'HIGHLIGHT_STRICT_BLOCK' => array(
+   )
 );
 
 ?>
diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php
index cbfe49cde2e3f352c0e7a4a6d2de908b25102223..bf8345a9fd794eca3d921aae667e3d01ff9eb579 100644
--- a/inc/geshi/nsis.php
+++ b/inc/geshi/nsis.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/)
  * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/12/03
  *
  * Nullsoft Scriptable Install System language file for GeSHi.
diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php
index 5b5d180e1da876e93058c93c9327ea3f605e2b75..9adf7322856a9a30f5f74eac225d49a0203fe181 100644
--- a/inc/geshi/objc.php
+++ b/inc/geshi/objc.php
@@ -4,7 +4,7 @@
  * --------
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * Objective C language file for GeSHi.
diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php
index 2695a580b1d11bb8ae7ab0545505a455402081e2..13d90c9abab0bdc3a8eecbf54153e75f5eaff1a4 100644
--- a/inc/geshi/ocaml-brief.php
+++ b/inc/geshi/ocaml-brief.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
@@ -57,9 +57,9 @@ $language_data = array (
 		),
 	/* highlighting symbols is really important in OCaml */
 	'SYMBOLS' => array(
-			';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', 
+			';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
 			'>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
-			), 
+			),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
 		1 => false,
@@ -87,7 +87,7 @@ $language_data = array (
 			),
 		'REGEXPS' => array(
 			),
-		'SYMBOLS' => array( 
+		'SYMBOLS' => array(
 			0 => 'color: #a52a2a;' /* maroon */
 			),
 		'SCRIPT' => array(
diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php
index aab574a4494704871c398263c1dbf03803fbac80..70a9928f3bf34ccfc84c141437b7ac3e33c86abd 100644
--- a/inc/geshi/ocaml.php
+++ b/inc/geshi/ocaml.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
@@ -66,12 +66,12 @@ $language_data = array (
 		   ),
 		/* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */
 		3 => array(
-			'raise', 'invalid_arg', 'failwith', 'compare', 'min', 'max', 'succ', 'pred', 'mod', 'abs', 
-			'max_int', 'min_int', 'sqrt', 'exp', 'log', 'log10', 'cos', 'sin', 'tan', 'acos', 'asin', 
+			'raise', 'invalid_arg', 'failwith', 'compare', 'min', 'max', 'succ', 'pred', 'mod', 'abs',
+			'max_int', 'min_int', 'sqrt', 'exp', 'log', 'log10', 'cos', 'sin', 'tan', 'acos', 'asin',
 			'atan', 'atan2', 'cosh', 'sinh', 'tanh', 'ceil', 'floor', 'abs_float', 'mod_float', 'frexp',
 			'ldexp', 'modf', 'float', 'float_of_int', 'truncate', 'int_of_float', 'infinity', 'nan',
-			'max_float', 'min_float', 'epsilon_float', 'classify_float', 'int_of_char', 'char_of_int', 
-			'ignore', 'string_of_bool', 'bool_of_string', 'string_of_int', 'int_of_string', 
+			'max_float', 'min_float', 'epsilon_float', 'classify_float', 'int_of_char', 'char_of_int',
+			'ignore', 'string_of_bool', 'bool_of_string', 'string_of_int', 'int_of_string',
 			'string_of_float', 'float_of_string', 'fst', 'snd', 'stdin', 'stdout', 'stderr', 'print_char',
 			'print_string', 'print_int', 'print_float', 'print_endline', 'print_newline', 'prerr_char',
 			'prerr_string', 'prerr_int', 'prerr_float', 'prerr_endline', 'prerr_newline', 'read_line',
@@ -81,7 +81,7 @@ $language_data = array (
 			'open_in', 'open_in_bin', 'open_in_gen', 'input_char', 'input_line', 'input', 'really_input',
 			'input_byte', 'input_binary_int', 'input_value', 'seek_in', 'pos_in', 'in_channel_length',
 			'close_in', 'close_in_noerr', 'set_binary_mode_in', 'incr', 'decr', 'string_of_format',
-			'format_of_string', 'exit', 'at_exit' 
+			'format_of_string', 'exit', 'at_exit'
 		   ),
 		/* here Pervasives Types */
 		4 => array (
@@ -94,9 +94,9 @@ $language_data = array (
 		),
 	/* highlighting symbols is really important in OCaml */
 	'SYMBOLS' => array(
-			';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', 
+			';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
 			'>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
-			), 
+			),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => true,
 		1 => false,
@@ -127,7 +127,7 @@ $language_data = array (
 			),
 		'REGEXPS' => array(
 			),
-		'SYMBOLS' => array( 
+		'SYMBOLS' => array(
 			0 => 'color: #a52a2a;' /* maroon */
 			),
 		'SCRIPT' => array(
@@ -137,9 +137,9 @@ $language_data = array (
 	   /* some of keywords are Pervasives functions (land, lxor, asr, ...) */
 		1 => '',
 		/* link to the wanted library */
-		2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html', 
+		2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html',
 		/* link to Pervasives functions */
-		3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}', 
+		3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}',
 		/* link to Pervasives type */
 		4 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#TYPE{FNAME}',
 		/* link to Pervasives exceptions */
diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php
index 058cb34c7f05feb0d6c90464464fc695c9114709..f3e5973d8ad4bc93236d8ed4897eb920d53e5412 100644
--- a/inc/geshi/oobas.php
+++ b/inc/geshi/oobas.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * OpenOffice.org Basic language file for GeSHi.
diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php
index c55e26a9a03152633d6e0a5dad92535541ad1dd7..e2a6dd3a5e02e761560c765373a9e602b1755f88 100644
--- a/inc/geshi/oracle8.php
+++ b/inc/geshi/oracle8.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * Oracle 8 language file for GeSHi
diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php
index 0b1b1b05f04afb5fa0017ec8cddb9b7d59457f9a..9256c221fe5fadc55c5066032779513a0c31dab5 100644
--- a/inc/geshi/pascal.php
+++ b/inc/geshi/pascal.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inamil.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/26
  *
  * Pascal language file for GeSHi.
diff --git a/inc/geshi/per.php b/inc/geshi/per.php
index 21e5265b0f1c113495f829a1ba7f6b860176d878..9e7627e1f4faf264eec8fb972ceb6b81fa1f0915 100644
--- a/inc/geshi/per.php
+++ b/inc/geshi/per.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2007/06/03
  *
  * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi.
@@ -46,7 +46,7 @@
             "AUTO",
             "AUTONEXT",
             "AUTOSCALE",
-            "BETWEEN",          
+            "BETWEEN",
             "BOTH",
             "BUTTON",
             "BUTTONEDIT",
@@ -67,10 +67,10 @@
             "COMPRESS",
             "CONFIG",
             "CONTROL",
-            "CURRENT",          
-            "DATABASE",         
+            "CURRENT",
+            "DATABASE",
             "DATEEDIT",
-            "DEC",          
+            "DEC",
             "DEFAULT",
             "DEFAULTS",
             "DELIMITERS",
@@ -79,23 +79,23 @@
             "DOWNSHIFT",
             "DYNAMIC",
             "EDIT",
-            "FIXED",        
+            "FIXED",
             "FOLDER",
             "FONTPITCH",
             "FORMAT",
-            "FORMONLY",                 
+            "FORMONLY",
             "GRID",
             "GRIDCHILDRENINPARENT",
             "GROUP",
             "HBOX",
             "HEIGHT",
             "HIDDEN",
-            "HORIZONTAL",       
+            "HORIZONTAL",
             "INCLUDE",
             "INITIAL",
             "INITIALIZER",
             "INPUT",
-            "INSTRUCTIONS",         
+            "INSTRUCTIONS",
             "INTERVAL",
             "INVISIBLE",
             "IS",
@@ -107,14 +107,14 @@
             "LABEL",
             "LEFT",
             "LIKE",
-            "LINES",        
-            "MATCHES",          
+            "LINES",
+            "MATCHES",
             "NAME",
             "NOENTRY",
-            "NONCOMPRESS",          
+            "NONCOMPRESS",
             "NORMAL",
             "NOT",
-            "NOUPDATE",         
+            "NOUPDATE",
             "OPTIONS",
             "OR",
             "ORIENTATION",
@@ -130,11 +130,11 @@
             "QUERYCLEAR",
             "QUERYEDITABLE",
             "RADIOGROUP",
-            "RECORD",        
+            "RECORD",
             "REQUIRED",
             "REVERSE",
             "RIGHT",
-            "SAMPLE",       
+            "SAMPLE",
             "SCREEN",
             "SCROLL",
             "SCROLLBARS",
@@ -146,7 +146,7 @@
             "SIZEPOLICY",
             "SMALLFLOAT",
             "SMALLINT",
-            "SPACING", 
+            "SPACING",
             "STRETCH",
             "STYLE",
             "TABINDEX",
@@ -155,12 +155,12 @@
             "TEXT",
             "TEXTEDIT",
             "THROUGH",
-            "THRU",         
+            "THRU",
             "TITLE",
-            "TO",       
+            "TO",
             "TOOLBAR",
             "TOPMENU",
-            "TYPE",         
+            "TYPE",
             "UNHIDABLE",
             "UNHIDABLECOLUMNS",
             "UNMOVABLE",
@@ -194,7 +194,7 @@
             "WITHOUT",
             "WORDWRAP",
             "X",
-            "Y",        
+            "Y",
             "ZEROFILL",
             "SCHEMA",
             "ATTRIBUTES",
@@ -213,12 +213,12 @@
             "CENTURY",
             "FRACTION",
             "CHAR",
-            "CHARACTER",        
+            "CHARACTER",
             "CHARACTERS",
             "CYAN",
             "DATE",
             "DATETIME",
-            "DAY",      
+            "DAY",
             "DECIMAL",
             "FALSE",
             "FLOAT",
@@ -232,7 +232,7 @@
             "NONE",
             "NULL",
             "REAL",
-            "RED", 
+            "RED",
             "TRUE",
             "TODAY",
             "MONTH",
diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php
index 8f063cd99f5fefbba267cea12f8a6a04ad1c4e86..0ac9e08f2c2e20b3748cfe7a77567ffe8f9f89e8 100644
--- a/inc/geshi/perl.php
+++ b/inc/geshi/perl.php
@@ -4,13 +4,15 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/20
  *
  * Perl language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/02/15 (1.003)
+ *   -  Fixed SF#1891630 with placebo patch
  * 2006/01/05 (1.0.2)
  *   -  Used hardescape feature for ' strings (Cliff Stanford)
  * 2004/11/27 (1.0.1)
@@ -46,7 +48,17 @@
 $language_data = array (
 	'LANG_NAME' => 'Perl',
 	'COMMENT_SINGLE' => array(1 => '#'),
-	'COMMENT_MULTI' => array( '=pod' => '=cut'),
+	'COMMENT_MULTI' => array(
+        '=back' => '=cut',
+        '=head' => '=cut',
+        '=item' => '=cut',
+        '=over' => '=cut',
+        '=begin' => '=cut',
+        '=end' => '=cut',
+        '=for' => '=cut',
+        '=encoding' => '=cut',
+        '=pod' => '=cut'
+    ),
 	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
 	'QUOTEMARKS' => array('"'),
 	'HARDQUOTE' => array("'", "'"),		    // An optional 2-element array defining the beginning and end of a hard-quoted string
diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php
index d11c2272641ae14d1dfa9dacdcce1ebe8f6dbc7e..66c5b46e86982ba56763fea691c001350d8a8d57 100644
--- a/inc/geshi/php-brief.php
+++ b/inc/geshi/php-brief.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/02
  *
  * PHP language file for GeSHi (brief version).
@@ -81,6 +81,11 @@ $language_data = array (
 			)
 		),
 	'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}',
+        '!', '@', '%', '&', '|', '/',
+        '<', '>',
+        '=', '-', '+', '*',
+        '.', ':', ',', ';'
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => false,
diff --git a/inc/geshi/php.php b/inc/geshi/php.php
index 1f8779220bc4ef9096136877d886532d9c561dca..1e9bb49a3a5e2f16aec5a785c1ddd47f1fd0068c 100644
--- a/inc/geshi/php.php
+++ b/inc/geshi/php.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/20
  *
  * PHP language file for GeSHi.
@@ -258,7 +258,11 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
+        '(', ')', '[', ']', '{', '}',
+        '!', '@', '%', '&', '|', '/',
+        '<', '>',
+        '=', '-', '+', '*',
+        '.', ':', ',', ';'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -319,14 +323,14 @@ $language_data = array (
         2 => '::'
         ),
     'REGEXPS' => array(
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*",
-        1 => array(
-            GESHI_SEARCH  => "([a-zA-Z]+)(\n)(.*)(\n)(\\1;?)",
+        0 => array(
+            GESHI_SEARCH  => "([a-zA-Z]+)(\\n)(.*?)(\\n)(\\1[^a-zA-Z0-9])",
             GESHI_REPLACE => '\3',
             GESHI_BEFORE => '\1\2',
             GESHI_AFTER => '\4\5',
             GESHI_MODIFIERS => 'siU'
-            )
+            ),
+        1 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
         ),
     'STRICT_MODE_APPLIES' => GESHI_MAYBE,
     'SCRIPT_DELIMITERS' => array(
diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php
index d1af81091bf4447883cf990c9823eecc99cb7d54..3611930177c6ec5f2187dda39a30266be8406641 100644
--- a/inc/geshi/plsql.php
+++ b/inc/geshi/plsql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Victor Engmark <victor.engmark@gmail.com>
  * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/10/26
  *
  * Oracle 9.2 PL/SQL language file for GeSHi.
@@ -49,145 +49,145 @@ $language_data = array (
 	'ESCAPE_CHAR' => '\\',
 	'KEYWORDS' => array(
 		//PL/SQL reserved keywords (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/f_words.htm#LNPLS019)
-        1 => array('ZONE', 'YEAR', 'WRITE', 'WORK', 'WITH', 'WHILE', 'WHERE', 
-        'WHENEVER', 'WHEN', 'VIEW', 'VARCHAR2', 'VARCHAR', 'VALUES', 
-        'VALIDATE', 'USE', 'UPDATE', 'UNIQUE', 'UNION', 'TYPE', 'TRUE', 
-        'TRIGGER', 'TO', 'TIMEZONE_REGION', 'TIMEZONE_MINUTE', 'TIMEZONE_HOUR', 
-        'TIMEZONE_ABBR', 'TIMESTAMP', 'TIME', 'THEN', 'TABLE', 'SYNONYM', 
-        'SUCCESSFUL', 'SUBTYPE', 'START', 'SQLERRM', 'SQLCODE', 'SQL', 'SPACE', 
-        'SMALLINT', 'SHARE', 'SET', 'SEPARATE', 'SELECT', 'SECOND', 
-        'SAVEPOINT', 'ROWTYPE', 'ROWNUM', 'ROWID', 'ROW', 'ROLLBACK', 
-        'REVERSE', 'RETURN', 'RELEASE', 'RECORD', 'REAL', 'RAW', 'RANGE', 
-        'RAISE', 'PUBLIC', 'PROCEDURE', 'PRIVATE', 'PRIOR', 'PRAGMA', 
-        'POSITIVEN', 'POSITIVE', 'PLS_INTEGER', 'PCTFREE', 'PARTITION', 
-        'PACKAGE', 'OUT', 'OTHERS', 'ORGANIZATION', 'ORDER', 'OR', 'OPTION', 
-        'OPERATOR', 'OPEN', 'OPAQUE', 'ON', 'OF', 'OCIROWID', 'NUMBER_BASE', 
-        'NUMBER', 'NULL', 'NOWAIT', 'NOT', 'NOCOPY', 'NEXTVAL', 'NEW', 
-        'NATURALN', 'NATURAL', 'MONTH', 'MODE', 'MLSLABEL', 'MINUTE', 'MINUS', 
-        'LOOP', 'LONG', 'LOCK', 'LIMITED', 'LIKE', 'LEVEL', 'JAVA', 
-        'ISOLATION', 'IS', 'INTO', 'INTERVAL', 'INTERSECT', 'INTERFACE', 
-        'INTEGER', 'INSERT', 'INDICATOR', 'INDEX', 'IN', 'IMMEDIATE', 'IF', 
-        'HOUR', 'HEAP', 'HAVING', 'GROUP', 'GOTO', 'FUNCTION', 'FROM', 
-        'FORALL', 'FOR', 'FLOAT', 'FETCH', 'FALSE', 'EXTENDS', 'EXIT', 
-        'EXISTS', 'EXECUTE', 'EXCLUSIVE', 'EXCEPTION', 'END', 'ELSIF', 'ELSE', 
-        'DROP', 'DO', 'DISTINCT', 'DESC', 'DELETE', 'DEFAULT', 'DECLARE', 
-        'DECIMAL', 'DAY', 'DATE', 'CURSOR', 'CURRVAL', 'CURRENT', 'CREATE', 
-        'CONSTANT', 'CONNECT', 'COMPRESS', 'COMMIT', 'COMMENT', 'COLLECT', 
-        'CLUSTER', 'CLOSE', 'CHECK', 'CHAR_BASE', 'CHAR', 'CASE', 'BY', 'BULK', 
-        'BOOLEAN', 'BODY', 'BINARY_INTEGER', 'BETWEEN', 'BEGIN', 'AUTHID', 
+        1 => array('ZONE', 'YEAR', 'WRITE', 'WORK', 'WITH', 'WHILE', 'WHERE',
+        'WHENEVER', 'WHEN', 'VIEW', 'VARCHAR2', 'VARCHAR', 'VALUES',
+        'VALIDATE', 'USE', 'UPDATE', 'UNIQUE', 'UNION', 'TYPE', 'TRUE',
+        'TRIGGER', 'TO', 'TIMEZONE_REGION', 'TIMEZONE_MINUTE', 'TIMEZONE_HOUR',
+        'TIMEZONE_ABBR', 'TIMESTAMP', 'TIME', 'THEN', 'TABLE', 'SYNONYM',
+        'SUCCESSFUL', 'SUBTYPE', 'START', 'SQLERRM', 'SQLCODE', 'SQL', 'SPACE',
+        'SMALLINT', 'SHARE', 'SET', 'SEPARATE', 'SELECT', 'SECOND',
+        'SAVEPOINT', 'ROWTYPE', 'ROWNUM', 'ROWID', 'ROW', 'ROLLBACK',
+        'REVERSE', 'RETURN', 'RELEASE', 'RECORD', 'REAL', 'RAW', 'RANGE',
+        'RAISE', 'PUBLIC', 'PROCEDURE', 'PRIVATE', 'PRIOR', 'PRAGMA',
+        'POSITIVEN', 'POSITIVE', 'PLS_INTEGER', 'PCTFREE', 'PARTITION',
+        'PACKAGE', 'OUT', 'OTHERS', 'ORGANIZATION', 'ORDER', 'OR', 'OPTION',
+        'OPERATOR', 'OPEN', 'OPAQUE', 'ON', 'OF', 'OCIROWID', 'NUMBER_BASE',
+        'NUMBER', 'NULL', 'NOWAIT', 'NOT', 'NOCOPY', 'NEXTVAL', 'NEW',
+        'NATURALN', 'NATURAL', 'MONTH', 'MODE', 'MLSLABEL', 'MINUTE', 'MINUS',
+        'LOOP', 'LONG', 'LOCK', 'LIMITED', 'LIKE', 'LEVEL', 'JAVA',
+        'ISOLATION', 'IS', 'INTO', 'INTERVAL', 'INTERSECT', 'INTERFACE',
+        'INTEGER', 'INSERT', 'INDICATOR', 'INDEX', 'IN', 'IMMEDIATE', 'IF',
+        'HOUR', 'HEAP', 'HAVING', 'GROUP', 'GOTO', 'FUNCTION', 'FROM',
+        'FORALL', 'FOR', 'FLOAT', 'FETCH', 'FALSE', 'EXTENDS', 'EXIT',
+        'EXISTS', 'EXECUTE', 'EXCLUSIVE', 'EXCEPTION', 'END', 'ELSIF', 'ELSE',
+        'DROP', 'DO', 'DISTINCT', 'DESC', 'DELETE', 'DEFAULT', 'DECLARE',
+        'DECIMAL', 'DAY', 'DATE', 'CURSOR', 'CURRVAL', 'CURRENT', 'CREATE',
+        'CONSTANT', 'CONNECT', 'COMPRESS', 'COMMIT', 'COMMENT', 'COLLECT',
+        'CLUSTER', 'CLOSE', 'CHECK', 'CHAR_BASE', 'CHAR', 'CASE', 'BY', 'BULK',
+        'BOOLEAN', 'BODY', 'BINARY_INTEGER', 'BETWEEN', 'BEGIN', 'AUTHID',
         'AT', 'ASC', 'AS', 'ARRAY', 'ANY', 'AND', 'ALTER', 'ALL'),
 		//SQL functions (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm & http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/functions101a.htm#85925)
-        2 => array('XMLTRANSFORM', 'XMLSEQUENCE', 'XMLFOREST', 'XMLELEMENT', 
-        'XMLCONCAT', 'XMLCOLATTVAL', 'XMLAGG', 'WIDTH_BUCKET', 'VSIZE', 
-        'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'VALUE', 'USERENV', 'USER', 'UPPER', 
-        'UPDATEXML', 'UNISTR', 'UID', 'TZ_OFFSET', 'TRUNC', 'TRIM', 'TREAT', 
-        'TRANSLATE', 'TO_YMINTERVAL', 'TO_TIMESTAMP_TZ', 'TO_TIMESTAMP', 
-        'TO_SINGLE_BYTE', 'TO_NUMBER', 'TO_NCLOB', 'TO_NCHAR', 'TO_MULTI_BYTE', 
-        'TO_LOB', 'TO_DSINTERVAL', 'TO_DATE', 'TO_CLOB', 'TO_CHAR', 'TANH', 
-        'TAN', 'SYSTIMESTAMP', 'SYSDATE', 'SYS_XMLGEN', 'SYS_XMLAGG', 
-        'SYS_TYPEID', 'SYS_GUID', 'SYS_EXTRACT_UTC', 'SYS_DBURIGEN', 
-        'SYS_CONTEXT', 'SYS_CONNECT_BY_PATH', 'SUM', 'SUBSTR', 'STDDEV_SAMP', 
-        'STDDEV_POP', 'STDDEV', 'SQRT', 'SOUNDEX', 'SINH', 'SIN', 'SIGN', 
-        'SESSIONTIMEZONE', 'RTRIM', 'RPAD', 'ROWIDTONCHAR', 'ROWIDTOCHAR', 
-        'ROW_NUMBER', 'ROUND', 'REPLACE', 'REGR_SYY', 'REGR_SXY', 'REGR_SXX', 
-        'REGR_SLOPE', 'REGR_R2', 'REGR_INTERCEPT', 'REGR_COUNT', 'REGR_AVGY', 
-        'REGR_AVGX', 'REFTOHEX', 'REF', 'RAWTONHEX', 'RAWTOHEX', 
-        'RATIO_TO_REPORT', 'RANK', 'POWER', 'PERCENTILE_DISC', 
-        'PERCENTILE_CONT', 'PERCENT_RANK', 'PATH', 'NVL2', 'NVL', 
-        'NUMTOYMINTERVAL', 'NUMTODSINTERVAL', 'NULLIF', 'NTILE', 'NLSSORT', 
-        'NLS_UPPER', 'NLS_LOWER', 'NLS_INITCAP', 'NLS_CHARSET_NAME', 
-        'NLS_CHARSET_ID', 'NLS_CHARSET_DECL_LEN', 'NEXT_DAY', 'NEW_TIME', 
-        'NCHR', 'MONTHS_BETWEEN', 'MOD', 'MIN', 'MAX', 'MAKE_REF', 'LTRIM', 
-        'LPAD', 'LOWER', 'LOG', 'LOCALTIMESTAMP', 'LN', 'LENGTH', 'LEAST', 
-        'LEAD', 'LAST_VALUE', 'LAST_DAY', 'LAST', 'LAG', 'INSTR', 'INITCAP', 
-        'HEXTORAW', 'GROUPING_ID', 'GROUPING', 'GROUP_ID', 'GREATEST', 
-        'FROM_TZ', 'FLOOR', 'FIRST_VALUE', 'FIRST', 'EXTRACTVALUE', 'EXTRACT', 
-        'EXP', 'EXISTSNODE', 'EMPTY_CLOB', 'EMPTY_BLOB', 'DUMP', 'DEREF', 
-        'DEPTH', 'DENSE_RANK', 'DECOMPOSE', 'DECODE', 'DBTIMEZONE', 
-        'CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CUME_DIST', 'COVAR_SAMP', 
-        'COVAR_POP', 'COUNT', 'COSH', 'COS', 'CORR', 'CONVERT', 'CONCAT', 
-        'COMPOSE', 'COALESCE', 'CHR', 'CHARTOROWID', 'CEIL', 'CAST', 'BITAND', 
-        'BIN_TO_NUM', 'BFILENAME', 'AVG', 'ATAN2', 'ATAN', 'ASIN', 'ASCIISTR', 
+        2 => array('XMLTRANSFORM', 'XMLSEQUENCE', 'XMLFOREST', 'XMLELEMENT',
+        'XMLCONCAT', 'XMLCOLATTVAL', 'XMLAGG', 'WIDTH_BUCKET', 'VSIZE',
+        'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'VALUE', 'USERENV', 'USER', 'UPPER',
+        'UPDATEXML', 'UNISTR', 'UID', 'TZ_OFFSET', 'TRUNC', 'TRIM', 'TREAT',
+        'TRANSLATE', 'TO_YMINTERVAL', 'TO_TIMESTAMP_TZ', 'TO_TIMESTAMP',
+        'TO_SINGLE_BYTE', 'TO_NUMBER', 'TO_NCLOB', 'TO_NCHAR', 'TO_MULTI_BYTE',
+        'TO_LOB', 'TO_DSINTERVAL', 'TO_DATE', 'TO_CLOB', 'TO_CHAR', 'TANH',
+        'TAN', 'SYSTIMESTAMP', 'SYSDATE', 'SYS_XMLGEN', 'SYS_XMLAGG',
+        'SYS_TYPEID', 'SYS_GUID', 'SYS_EXTRACT_UTC', 'SYS_DBURIGEN',
+        'SYS_CONTEXT', 'SYS_CONNECT_BY_PATH', 'SUM', 'SUBSTR', 'STDDEV_SAMP',
+        'STDDEV_POP', 'STDDEV', 'SQRT', 'SOUNDEX', 'SINH', 'SIN', 'SIGN',
+        'SESSIONTIMEZONE', 'RTRIM', 'RPAD', 'ROWIDTONCHAR', 'ROWIDTOCHAR',
+        'ROW_NUMBER', 'ROUND', 'REPLACE', 'REGR_SYY', 'REGR_SXY', 'REGR_SXX',
+        'REGR_SLOPE', 'REGR_R2', 'REGR_INTERCEPT', 'REGR_COUNT', 'REGR_AVGY',
+        'REGR_AVGX', 'REFTOHEX', 'REF', 'RAWTONHEX', 'RAWTOHEX',
+        'RATIO_TO_REPORT', 'RANK', 'POWER', 'PERCENTILE_DISC',
+        'PERCENTILE_CONT', 'PERCENT_RANK', 'PATH', 'NVL2', 'NVL',
+        'NUMTOYMINTERVAL', 'NUMTODSINTERVAL', 'NULLIF', 'NTILE', 'NLSSORT',
+        'NLS_UPPER', 'NLS_LOWER', 'NLS_INITCAP', 'NLS_CHARSET_NAME',
+        'NLS_CHARSET_ID', 'NLS_CHARSET_DECL_LEN', 'NEXT_DAY', 'NEW_TIME',
+        'NCHR', 'MONTHS_BETWEEN', 'MOD', 'MIN', 'MAX', 'MAKE_REF', 'LTRIM',
+        'LPAD', 'LOWER', 'LOG', 'LOCALTIMESTAMP', 'LN', 'LENGTH', 'LEAST',
+        'LEAD', 'LAST_VALUE', 'LAST_DAY', 'LAST', 'LAG', 'INSTR', 'INITCAP',
+        'HEXTORAW', 'GROUPING_ID', 'GROUPING', 'GROUP_ID', 'GREATEST',
+        'FROM_TZ', 'FLOOR', 'FIRST_VALUE', 'FIRST', 'EXTRACTVALUE', 'EXTRACT',
+        'EXP', 'EXISTSNODE', 'EMPTY_CLOB', 'EMPTY_BLOB', 'DUMP', 'DEREF',
+        'DEPTH', 'DENSE_RANK', 'DECOMPOSE', 'DECODE', 'DBTIMEZONE',
+        'CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CUME_DIST', 'COVAR_SAMP',
+        'COVAR_POP', 'COUNT', 'COSH', 'COS', 'CORR', 'CONVERT', 'CONCAT',
+        'COMPOSE', 'COALESCE', 'CHR', 'CHARTOROWID', 'CEIL', 'CAST', 'BITAND',
+        'BIN_TO_NUM', 'BFILENAME', 'AVG', 'ATAN2', 'ATAN', 'ASIN', 'ASCIISTR',
         'ASCII', 'ADD_MONTHS', 'ACOS', 'ABS'),
 		//PL/SQL packages (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96612/intro2.htm#1025672)
-        3 => array('UTL_URL', 'UTL_TCP', 'UTL_SMTP', 'UTL_REF', 'UTL_RAW', 
-        'UTL_PG', 'UTL_INADDR', 'UTL_HTTP', 'UTL_FILE', 'UTL_ENCODE', 
-        'UTL_COLL', 'SDO_UTIL', 'SDO_TUNE', 'SDO_MIGRATE', 'SDO_LRS', 
-        'SDO_GEOM', 'SDO_CS', 'DMBS_XMLQUERY', 'DMBS_FLASHBACK', 
-        'DMBS_DEFER_SYS', 'DEBUG_EXTPROC', 'DBMS_XSLPROCESSOR', 'DBMS_XPLAN', 
-        'DBMS_XMLSCHEMA', 'DBMS_XMLSAVE', 'DBMS_XMLPARSER', 'DBMS_XMLGEN', 
-        'DBMS_XMLDOM', 'DBMS_XDBT', 'DBMS_XDB_VERSION', 'DBMS_XDB', 'DBMS_WM', 
-        'DBMS_UTILITY', 'DBMS_TYPES', 'DBMS_TTS', 'DBMS_TRANSFORM', 
-        'DBMS_TRANSACTION', 'DBMS_TRACE', 'DBMS_STRM_A', 'DBMS_STRM', 
-        'DBMS_STORAGE_MAP', 'DBMS_STATS', 'DBMS_SQL', 'DBMS_SPACE_ADMIN', 
-        'DBMS_SPACE', 'DBMS_SHARED_POOL', 'DBMS_SESSION', 'DBMS_RULE_ADM', 
-        'DBMS_RULE', 'DBMS_ROWID', 'DBMS_RLS', 'DBMS_RESUMABLE', 
-        'DBMS_RESOURCE_MANAGER_PRIVS', 'DBMS_RESOURCE_MANAGER', 'DBMS_REPUTIL', 
-        'DBMS_REPCAT_RGT', 'DBMS_REPCAT_INSTATIATE', 'DBMS_REPCAT_ADMIN', 
-        'DBMS_REPCAT', 'DBMS_REPAIR', 'DBMS_REFRESH', 'DBMS_REDEFINITION', 
-        'DBMS_RECTIFIER_DIFF', 'DBMS_RANDOM', 'DBMS_PROPAGATION_ADM', 
-        'DBMS_PROFILER', 'DBMS_PIPE', 'DBMS_PCLXUTIL', 'DBMS_OUTPUT', 
-        'DBMS_OUTLN_EDIT', 'DBMS_OUTLN', 'DBMS_ORACLE_TRACE_USER', 
-        'DBMS_ORACLE_TRACE_AGENT', 'DBMS_OLAP', 'DBMS_OFFLINE_SNAPSHOT', 
-        'DBMS_OFFLINE_OG', 'DBMS_ODCI', 'DBMS_OBFUSCATION_TOOLKIT', 
-        'DBMS_MVIEW', 'DBMS_MGWMSG', 'DBMS_MGWADM', 'DBMS_METADATA', 
-        'DBMS_LOGSTDBY', 'DBMS_LOGMNR_D', 'DBMS_LOGMNR_CDC_SUBSCRIBE', 
-        'DBMS_LOGMNR_CDC_PUBLISH', 'DBMS_LOGMNR', 'DBMS_LOCK', 'DBMS_LOB', 
-        'DBMS_LIBCACHE', 'DBMS_LDAP', 'DBMS_JOB', 'DBMS_IOT', 
-        'DBMS_HS_PASSTHROUGH', 'DBMS_FGA', 'DBMS_DISTRIBUTED_TRUST_ADMIN', 
-        'DBMS_DESCRIBE', 'DBMS_DEFER_QUERY', 'DBMS_DEFER', 'DBMS_DEBUG', 
-        'DBMS_DDL', 'DBMS_CAPTURE_ADM', 'DBMS_AW', 'DBMS_AQELM', 'DBMS_AQADM', 
-        'DBMS_AQ', 'DBMS_APPLY_ADM', 'DBMS_APPLICATION_INFO', 'DBMS_ALERT', 
+        3 => array('UTL_URL', 'UTL_TCP', 'UTL_SMTP', 'UTL_REF', 'UTL_RAW',
+        'UTL_PG', 'UTL_INADDR', 'UTL_HTTP', 'UTL_FILE', 'UTL_ENCODE',
+        'UTL_COLL', 'SDO_UTIL', 'SDO_TUNE', 'SDO_MIGRATE', 'SDO_LRS',
+        'SDO_GEOM', 'SDO_CS', 'DMBS_XMLQUERY', 'DMBS_FLASHBACK',
+        'DMBS_DEFER_SYS', 'DEBUG_EXTPROC', 'DBMS_XSLPROCESSOR', 'DBMS_XPLAN',
+        'DBMS_XMLSCHEMA', 'DBMS_XMLSAVE', 'DBMS_XMLPARSER', 'DBMS_XMLGEN',
+        'DBMS_XMLDOM', 'DBMS_XDBT', 'DBMS_XDB_VERSION', 'DBMS_XDB', 'DBMS_WM',
+        'DBMS_UTILITY', 'DBMS_TYPES', 'DBMS_TTS', 'DBMS_TRANSFORM',
+        'DBMS_TRANSACTION', 'DBMS_TRACE', 'DBMS_STRM_A', 'DBMS_STRM',
+        'DBMS_STORAGE_MAP', 'DBMS_STATS', 'DBMS_SQL', 'DBMS_SPACE_ADMIN',
+        'DBMS_SPACE', 'DBMS_SHARED_POOL', 'DBMS_SESSION', 'DBMS_RULE_ADM',
+        'DBMS_RULE', 'DBMS_ROWID', 'DBMS_RLS', 'DBMS_RESUMABLE',
+        'DBMS_RESOURCE_MANAGER_PRIVS', 'DBMS_RESOURCE_MANAGER', 'DBMS_REPUTIL',
+        'DBMS_REPCAT_RGT', 'DBMS_REPCAT_INSTATIATE', 'DBMS_REPCAT_ADMIN',
+        'DBMS_REPCAT', 'DBMS_REPAIR', 'DBMS_REFRESH', 'DBMS_REDEFINITION',
+        'DBMS_RECTIFIER_DIFF', 'DBMS_RANDOM', 'DBMS_PROPAGATION_ADM',
+        'DBMS_PROFILER', 'DBMS_PIPE', 'DBMS_PCLXUTIL', 'DBMS_OUTPUT',
+        'DBMS_OUTLN_EDIT', 'DBMS_OUTLN', 'DBMS_ORACLE_TRACE_USER',
+        'DBMS_ORACLE_TRACE_AGENT', 'DBMS_OLAP', 'DBMS_OFFLINE_SNAPSHOT',
+        'DBMS_OFFLINE_OG', 'DBMS_ODCI', 'DBMS_OBFUSCATION_TOOLKIT',
+        'DBMS_MVIEW', 'DBMS_MGWMSG', 'DBMS_MGWADM', 'DBMS_METADATA',
+        'DBMS_LOGSTDBY', 'DBMS_LOGMNR_D', 'DBMS_LOGMNR_CDC_SUBSCRIBE',
+        'DBMS_LOGMNR_CDC_PUBLISH', 'DBMS_LOGMNR', 'DBMS_LOCK', 'DBMS_LOB',
+        'DBMS_LIBCACHE', 'DBMS_LDAP', 'DBMS_JOB', 'DBMS_IOT',
+        'DBMS_HS_PASSTHROUGH', 'DBMS_FGA', 'DBMS_DISTRIBUTED_TRUST_ADMIN',
+        'DBMS_DESCRIBE', 'DBMS_DEFER_QUERY', 'DBMS_DEFER', 'DBMS_DEBUG',
+        'DBMS_DDL', 'DBMS_CAPTURE_ADM', 'DBMS_AW', 'DBMS_AQELM', 'DBMS_AQADM',
+        'DBMS_AQ', 'DBMS_APPLY_ADM', 'DBMS_APPLICATION_INFO', 'DBMS_ALERT',
         'CWM2_OLAP_AW_ACCESS'),
 		//PL/SQL predefined exceptions (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784)
-        4 => array('ZERO_DIVIDE', 'VALUE_ERROR', 'TOO_MANY_ROWS', 
-        'TIMEOUT_ON_RESOURCE', 'SYS_INVALID_ROWID', 'SUBSCRIPT_OUTSIDE_LIMIT', 
-        'SUBSCRIPT_BEYOND_COUNT', 'STORAGE_ERROR', 'SELF_IS_NULL', 
-        'ROWTYPE_MISMATCH', 'PROGRAM_ERROR', 'NOT_LOGGED_ON', 'NO_DATA_FOUND', 
-        'LOGIN_DENIED', 'INVALID_NUMBER', 'INVALID_CURSOR', 'DUP_VAL_ON_INDEX', 
-        'CURSOR_ALREADY_OPEN', 'COLLECTION_IS_NULL', 'CASE_NOT_FOUND', 
+        4 => array('ZERO_DIVIDE', 'VALUE_ERROR', 'TOO_MANY_ROWS',
+        'TIMEOUT_ON_RESOURCE', 'SYS_INVALID_ROWID', 'SUBSCRIPT_OUTSIDE_LIMIT',
+        'SUBSCRIPT_BEYOND_COUNT', 'STORAGE_ERROR', 'SELF_IS_NULL',
+        'ROWTYPE_MISMATCH', 'PROGRAM_ERROR', 'NOT_LOGGED_ON', 'NO_DATA_FOUND',
+        'LOGIN_DENIED', 'INVALID_NUMBER', 'INVALID_CURSOR', 'DUP_VAL_ON_INDEX',
+        'CURSOR_ALREADY_OPEN', 'COLLECTION_IS_NULL', 'CASE_NOT_FOUND',
         'ACCESS_INTO_NULL'),
 		//Static data dictionary views (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2.htm)
-        5 => array('USER_REPSITES', 'USER_REPSCHEMA', 
-        'USER_REPRESOLUTION_STATISTICS', 'USER_REPRESOLUTION_METHOD', 
-        'USER_REPRESOLUTION', 'USER_REPRESOL_STATS_CONTROL', 'USER_REPPROP', 
-        'USER_REPPRIORITY_GROUP', 'USER_REPPRIORITY', 
-        'USER_REPPARAMETER_COLUMN', 'USER_REPOBJECT', 'USER_REPKEY_COLUMNS', 
-        'USER_REPGROUPED_COLUMN', 'USER_REPGROUP_PRIVILEGES', 'USER_REPGROUP', 
-        'USER_REPGENOBJECTS', 'USER_REPGENERATED', 'USER_REPFLAVORS', 
-        'USER_REPFLAVOR_OBJECTS', 'USER_REPFLAVOR_COLUMNS', 'USER_REPDDL', 
-        'USER_REPCONFLICT', 'USER_REPCOLUMN_GROUP', 'USER_REPCOLUMN', 
-        'USER_REPCATLOG', 'USER_REPCAT_USER_PARM_VALUES', 
-        'USER_REPCAT_USER_AUTHORIZATIONS', 'USER_REPCAT_TEMPLATE_SITES', 
-        'USER_REPCAT_TEMPLATE_PARMS', 'USER_REPCAT_TEMPLATE_OBJECTS', 
-        'USER_REPCAT_REFRESH_TEMPLATES', 'USER_REPCAT', 'USER_REPAUDIT_COLUMN', 
-        'USER_REPAUDIT_ATTRIBUTE', 'DBA_REPSITES_NEW', 'DBA_REPSITES', 
-        'DBA_REPSCHEMA', 'DBA_REPRESOLUTION_STATISTICS', 
-        'DBA_REPRESOLUTION_METHOD', 'DBA_REPRESOLUTION', 
-        'DBA_REPRESOL_STATS_CONTROL', 'DBA_REPPROP', 'DBA_REPPRIORITY_GROUP', 
-        'DBA_REPPRIORITY', 'DBA_REPPARAMETER_COLUMN', 'DBA_REPOBJECT', 
-        'DBA_REPKEY_COLUMNS', 'DBA_REPGROUPED_COLUMN', 
-        'DBA_REPGROUP_PRIVILEGES', 'DBA_REPGROUP', 'DBA_REPGENOBJECTS', 
-        'DBA_REPGENERATED', 'DBA_REPFLAVORS', 'DBA_REPFLAVOR_OBJECTS', 
-        'DBA_REPFLAVOR_COLUMNS', 'DBA_REPEXTENSIONS', 'DBA_REPDDL', 
-        'DBA_REPCONFLICT', 'DBA_REPCOLUMN_GROUP', 'DBA_REPCOLUMN', 
-        'DBA_REPCATLOG', 'DBA_REPCAT_USER_PARM_VALUES', 
-        'DBA_REPCAT_USER_AUTHORIZATIONS', 'DBA_REPCAT_TEMPLATE_SITES', 
-        'DBA_REPCAT_TEMPLATE_PARMS', 'DBA_REPCAT_TEMPLATE_OBJECTS', 
-        'DBA_REPCAT_REFRESH_TEMPLATES', 'DBA_REPCAT_EXCEPTIONS', 'DBA_REPCAT', 
-        'DBA_REPAUDIT_COLUMN', 'DBA_REPAUDIT_ATTRIBUTE', 'ALL_REPSITES', 
-        'ALL_REPSCHEMA', 'ALL_REPRESOLUTION_STATISTICS', 
-        'ALL_REPRESOLUTION_METHOD', 'ALL_REPRESOLUTION', 
-        'ALL_REPRESOL_STATS_CONTROL', 'ALL_REPPROP', 'ALL_REPPRIORITY_GROUP', 
-        'ALL_REPPRIORITY', 'ALL_REPPARAMETER_COLUMN', 'ALL_REPOBJECT', 
-        'ALL_REPKEY_COLUMNS', 'ALL_REPGROUPED_COLUMN', 
-        'ALL_REPGROUP_PRIVILEGES', 'ALL_REPGROUP', 'ALL_REPGENOBJECTS', 
-        'ALL_REPGENERATED', 'ALL_REPFLAVORS', 'ALL_REPFLAVOR_OBJECTS', 
-        'ALL_REPFLAVOR_COLUMNS', 'ALL_REPDDL', 'ALL_REPCONFLICT', 
-        'ALL_REPCOLUMN_GROUP', 'ALL_REPCOLUMN', 'ALL_REPCATLOG', 
-        'ALL_REPCAT_USER_PARM_VALUES', 'ALL_REPCAT_USER_AUTHORIZATIONS', 
-        'ALL_REPCAT_TEMPLATE_SITES', 'ALL_REPCAT_TEMPLATE_PARMS', 
-        'ALL_REPCAT_TEMPLATE_OBJECTS', 'ALL_REPCAT_REFRESH_TEMPLATES', 
+        5 => array('USER_REPSITES', 'USER_REPSCHEMA',
+        'USER_REPRESOLUTION_STATISTICS', 'USER_REPRESOLUTION_METHOD',
+        'USER_REPRESOLUTION', 'USER_REPRESOL_STATS_CONTROL', 'USER_REPPROP',
+        'USER_REPPRIORITY_GROUP', 'USER_REPPRIORITY',
+        'USER_REPPARAMETER_COLUMN', 'USER_REPOBJECT', 'USER_REPKEY_COLUMNS',
+        'USER_REPGROUPED_COLUMN', 'USER_REPGROUP_PRIVILEGES', 'USER_REPGROUP',
+        'USER_REPGENOBJECTS', 'USER_REPGENERATED', 'USER_REPFLAVORS',
+        'USER_REPFLAVOR_OBJECTS', 'USER_REPFLAVOR_COLUMNS', 'USER_REPDDL',
+        'USER_REPCONFLICT', 'USER_REPCOLUMN_GROUP', 'USER_REPCOLUMN',
+        'USER_REPCATLOG', 'USER_REPCAT_USER_PARM_VALUES',
+        'USER_REPCAT_USER_AUTHORIZATIONS', 'USER_REPCAT_TEMPLATE_SITES',
+        'USER_REPCAT_TEMPLATE_PARMS', 'USER_REPCAT_TEMPLATE_OBJECTS',
+        'USER_REPCAT_REFRESH_TEMPLATES', 'USER_REPCAT', 'USER_REPAUDIT_COLUMN',
+        'USER_REPAUDIT_ATTRIBUTE', 'DBA_REPSITES_NEW', 'DBA_REPSITES',
+        'DBA_REPSCHEMA', 'DBA_REPRESOLUTION_STATISTICS',
+        'DBA_REPRESOLUTION_METHOD', 'DBA_REPRESOLUTION',
+        'DBA_REPRESOL_STATS_CONTROL', 'DBA_REPPROP', 'DBA_REPPRIORITY_GROUP',
+        'DBA_REPPRIORITY', 'DBA_REPPARAMETER_COLUMN', 'DBA_REPOBJECT',
+        'DBA_REPKEY_COLUMNS', 'DBA_REPGROUPED_COLUMN',
+        'DBA_REPGROUP_PRIVILEGES', 'DBA_REPGROUP', 'DBA_REPGENOBJECTS',
+        'DBA_REPGENERATED', 'DBA_REPFLAVORS', 'DBA_REPFLAVOR_OBJECTS',
+        'DBA_REPFLAVOR_COLUMNS', 'DBA_REPEXTENSIONS', 'DBA_REPDDL',
+        'DBA_REPCONFLICT', 'DBA_REPCOLUMN_GROUP', 'DBA_REPCOLUMN',
+        'DBA_REPCATLOG', 'DBA_REPCAT_USER_PARM_VALUES',
+        'DBA_REPCAT_USER_AUTHORIZATIONS', 'DBA_REPCAT_TEMPLATE_SITES',
+        'DBA_REPCAT_TEMPLATE_PARMS', 'DBA_REPCAT_TEMPLATE_OBJECTS',
+        'DBA_REPCAT_REFRESH_TEMPLATES', 'DBA_REPCAT_EXCEPTIONS', 'DBA_REPCAT',
+        'DBA_REPAUDIT_COLUMN', 'DBA_REPAUDIT_ATTRIBUTE', 'ALL_REPSITES',
+        'ALL_REPSCHEMA', 'ALL_REPRESOLUTION_STATISTICS',
+        'ALL_REPRESOLUTION_METHOD', 'ALL_REPRESOLUTION',
+        'ALL_REPRESOL_STATS_CONTROL', 'ALL_REPPROP', 'ALL_REPPRIORITY_GROUP',
+        'ALL_REPPRIORITY', 'ALL_REPPARAMETER_COLUMN', 'ALL_REPOBJECT',
+        'ALL_REPKEY_COLUMNS', 'ALL_REPGROUPED_COLUMN',
+        'ALL_REPGROUP_PRIVILEGES', 'ALL_REPGROUP', 'ALL_REPGENOBJECTS',
+        'ALL_REPGENERATED', 'ALL_REPFLAVORS', 'ALL_REPFLAVOR_OBJECTS',
+        'ALL_REPFLAVOR_COLUMNS', 'ALL_REPDDL', 'ALL_REPCONFLICT',
+        'ALL_REPCOLUMN_GROUP', 'ALL_REPCOLUMN', 'ALL_REPCATLOG',
+        'ALL_REPCAT_USER_PARM_VALUES', 'ALL_REPCAT_USER_AUTHORIZATIONS',
+        'ALL_REPCAT_TEMPLATE_SITES', 'ALL_REPCAT_TEMPLATE_PARMS',
+        'ALL_REPCAT_TEMPLATE_OBJECTS', 'ALL_REPCAT_REFRESH_TEMPLATES',
         'ALL_REPCAT', 'ALL_REPAUDIT_COLUMN', 'ALL_REPAUDIT_ATTRIBUTE')
 		),
 	'SYMBOLS' => array(
diff --git a/inc/geshi/python.php b/inc/geshi/python.php
index 72523fd8b4dbf084c94b4eb45803f2ba547dde4b..96b99d8d5a80efac797ac90ede261db9afc537b4 100644
--- a/inc/geshi/python.php
+++ b/inc/geshi/python.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * Python language file for GeSHi.
@@ -65,13 +65,13 @@ $language_data = array (
 		** http://python.org/doc/current/lib/built-in-funcs.html
 		*/
 		2 => array(
-			'__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp', 
-			'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 
+			'__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
+			'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
 			'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
 			'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
 			'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
 			'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
-			'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 
+			'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
 			'vars', 'xrange', 'zip',
 			// Built-in constants: http://python.org/doc/current/lib/node35.html
 			'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
@@ -142,14 +142,14 @@ $language_data = array (
 			'translate', 'upper', 'zfill',
 			*/
 			// Basic customization: http://python.org/doc/current/ref/customization.html
-			'__new__', '__init__', '__del__', '__repr__', '__str__', 
+			'__new__', '__init__', '__del__', '__repr__', '__str__',
 			'__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
 			'__hash__', '__nonzero__', '__unicode__', '__dict__',
 			// Attribute access: http://python.org/doc/current/ref/attribute-access.html
 			'__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
 			'__delete__', '__slots__',
 			// Class creation, callable objects
-			'__metaclass__', '__call__', 
+			'__metaclass__', '__call__',
 			// Container types: http://python.org/doc/current/ref/sequence-types.html
 			'__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
 			'__getslice__', '__setslice__', '__delslice__',
diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php
index 18cd8d003772bd439ba52d606a53622eab4f196f..61dacfccfabcb940b8a1f87191f90e5181a4ecfb 100644
--- a/inc/geshi/qbasic.php
+++ b/inc/geshi/qbasic.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/20
  *
  * QBasic/QuickBASIC language file for GeSHi.
@@ -102,7 +102,7 @@ $language_data = array (
 		'COMMENTS' => array(
 			1 => 'color: #808080;',
 			2 => 'color: #808080;',
-            3 => 'color: #808080;'
+			3 => 'color: #808080;'
 			),
 		'BRACKETS' => array(
 			0 => 'color: #66cc66;'
@@ -128,7 +128,7 @@ $language_data = array (
 		),
 	'URLS' => array(
 		1 => '',
-		3 => 'http://www.qbasicnews.com/qboho/qck{FNAME}.shtml'
+		3 => 'http://www.qbasicnews.com/qboho/qck{FNAMEL}.shtml'
 		),
 	'OOLANG' => false,
 	'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php
index 51f0bc8a095666ab39ea6c0ac834f18b7f0cbab3..c7e3960732d75fbd0ad0c69119723e2a3b2bad3c 100644
--- a/inc/geshi/rails.php
+++ b/inc/geshi/rails.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Moises Deniz
  * Copyright: (c) 2005 Moises Deniz
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2007/03/21
  *
  * Ruby language and Ruby on Rails Framework file for GeSHi
@@ -46,7 +46,7 @@ $language_data = array (
                 'until', 'when', 'BEGIN', 'END', 'include'
             ),
         2 => array(
-                '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true', 
+                '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
                 'return'
             ),
         3 => array(
@@ -54,252 +54,252 @@ $language_data = array (
                 'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
                 'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
                 'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
-                'iterator?', 'lambda', 'load', 'local_variables', 'loop', 
-                'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts', 
-                'raise', 'rand', 'readline', 'readlines', 'require', 'select', 
+                'iterator?', 'lambda', 'load', 'local_variables', 'loop',
+                'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
+                'raise', 'rand', 'readline', 'readlines', 'require', 'select',
                 'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
                 'system', 'trace_var', 'trap', 'untrace_var'
             ),
         4 => array(
-                'Abbrev', 'ArgumentError', 'Base64', 'Benchmark', 
-                'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie', 
+                'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
+                'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
                 'CGI::HtmlExtension', 'CGI::QueryExtension',
-                'CGI::Session', 'CGI::Session::FileStore', 
-                'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex', 
+                'CGI::Session', 'CGI::Session::FileStore',
+                'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
                 'ConditionVariable', 'Continuation', 'Data',
-                'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB', 
-                'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno', 
+                'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
+                'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
                 'Exception', 'FalseClass', 'File',
-                'File::Constants', 'File::Stat', 'FileTest', 'FileUtils', 
-                'FileUtils::DryRun', 'FileUtils::NoWrite', 
+                'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
+                'FileUtils::DryRun', 'FileUtils::NoWrite',
                 'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
-                'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator', 
-                'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary', 
+                'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
+                'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
                 'Iconv::Failure', 'Iconv::IllegalSequence',
-                'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding', 
-                'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel', 
+                'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
+                'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
                 'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
-                'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice', 
-                'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity', 
+                'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
+                'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
                 'Logger::ShiftingError', 'Marshal', 'MatchData',
-                'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError', 
-                'NameError::message', 'NilClass', 'NoMemoryError', 
+                'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
+                'NameError::message', 'NilClass', 'NoMemoryError',
                 'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
-                'ObjectSpace', 'Observable', 'PStore', 'PStore::Error', 
-                'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID', 
+                'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
+                'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
                 'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
-                'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError', 
-                'RuntimeError', 'ScriptError', 'SecurityError', 'Set', 
+                'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
+                'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
                 'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
-                'SingleForwardable', 'Singleton', 'SingletonClassMethods', 
-                'SizedQueue', 'SortedSet', 'StandardError', 'StringIO', 
+                'SingleForwardable', 'Singleton', 'SingletonClassMethods',
+                'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
                 'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
-                'SyncEnumerator', 'SyntaxError', 'SystemCallError', 
-                'SystemExit', 'SystemStackError', 'Tempfile', 
-                'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread', 
+                'SyncEnumerator', 'SyntaxError', 'SystemCallError',
+                'SystemExit', 'SystemStackError', 'Tempfile',
+                'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
                 'ThreadError', 'ThreadGroup',
-                'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI', 
-                'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP', 
+                'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
+                'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
                 'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
-                'URI::InvalidComponentError', 'URI::InvalidURIError', 
-                'URI::LDAP', 'URI::MailTo', 'URI::REGEXP', 
-                'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML', 
+                'URI::InvalidComponentError', 'URI::InvalidURIError',
+                'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
+                'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
                 'ZeroDivisionError', 'Zlib',
-                'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate', 
-                'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError', 
+                'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
+                'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
                 'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
-                'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader', 
-                'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError', 
-                'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError', 
+                'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
+                'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
+                'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
                 'Zlib::VersionError',
                 'Zlib::ZStream',
-                'ActionController::AbstractRequest', 
-                'ActionController::Assertions::DomAssertions', 
+                'ActionController::AbstractRequest',
+                'ActionController::Assertions::DomAssertions',
                 'ActionController::Assertions::ModelAssertions',
-                'ActionController::Assertions::ResponseAssertions', 
-                'ActionController::Assertions::RoutingAssertions', 
+                'ActionController::Assertions::ResponseAssertions',
+                'ActionController::Assertions::RoutingAssertions',
                 'ActionController::Assertions::SelectorAssertions',
-                'ActionController::Assertions::TagAssertions', 
-                'ActionController::Base', 
-                'ActionController::Benchmarking::ClassMethods', 
+                'ActionController::Assertions::TagAssertions',
+                'ActionController::Base',
+                'ActionController::Benchmarking::ClassMethods',
                 'ActionController::Caching',
-                'ActionController::Caching::Actions', 
-                'ActionController::Caching::Actions::ActionCachePath', 
-                'ActionController::Caching::Fragments', 
+                'ActionController::Caching::Actions',
+                'ActionController::Caching::Actions::ActionCachePath',
+                'ActionController::Caching::Fragments',
                 'ActionController::Caching::Pages',
-                'ActionController::Caching::Pages::ClassMethods', 
-                'ActionController::Caching::Sweeping', 
-                'ActionController::Components', 
+                'ActionController::Caching::Pages::ClassMethods',
+                'ActionController::Caching::Sweeping',
+                'ActionController::Components',
                 'ActionController::Components::ClassMethods',
-                'ActionController::Components::InstanceMethods', 
-                'ActionController::Cookies', 
-                'ActionController::Filters::ClassMethods', 
+                'ActionController::Components::InstanceMethods',
+                'ActionController::Cookies',
+                'ActionController::Filters::ClassMethods',
                 'ActionController::Flash',
-                'ActionController::Flash::FlashHash', 
-                'ActionController::Helpers::ClassMethods', 
-                'ActionController::Integration::Session', 
+                'ActionController::Flash::FlashHash',
+                'ActionController::Helpers::ClassMethods',
+                'ActionController::Integration::Session',
                 'ActionController::IntegrationTest',
-                'ActionController::Layout::ClassMethods', 
-                'ActionController::Macros', 
+                'ActionController::Layout::ClassMethods',
+                'ActionController::Macros',
                 'ActionController::Macros::AutoComplete::ClassMethods',
-                'ActionController::Macros::InPlaceEditing::ClassMethods', 
-                'ActionController::MimeResponds::InstanceMethods', 
+                'ActionController::Macros::InPlaceEditing::ClassMethods',
+                'ActionController::MimeResponds::InstanceMethods',
                 'ActionController::Pagination',
-                'ActionController::Pagination::ClassMethods', 
-                'ActionController::Pagination::Paginator', 
+                'ActionController::Pagination::ClassMethods',
+                'ActionController::Pagination::Paginator',
                 'ActionController::Pagination::Paginator::Page',
-                'ActionController::Pagination::Paginator::Window', 
-                'ActionController::Rescue', 'ActionController::Resources', 
+                'ActionController::Pagination::Paginator::Window',
+                'ActionController::Rescue', 'ActionController::Resources',
                 'ActionController::Routing',
-                'ActionController::Scaffolding::ClassMethods', 
-                'ActionController::SessionManagement::ClassMethods', 
+                'ActionController::Scaffolding::ClassMethods',
+                'ActionController::SessionManagement::ClassMethods',
                 'ActionController::Streaming', 'ActionController::TestProcess',
-                'ActionController::TestUploadedFile', 
-                'ActionController::UrlWriter', 
-                'ActionController::Verification::ClassMethods', 
+                'ActionController::TestUploadedFile',
+                'ActionController::UrlWriter',
+                'ActionController::Verification::ClassMethods',
                 'ActionMailer::Base', 'ActionView::Base',
-                'ActionView::Helpers::ActiveRecordHelper', 
-                'ActionView::Helpers::AssetTagHelper', 
-                'ActionView::Helpers::BenchmarkHelper', 
+                'ActionView::Helpers::ActiveRecordHelper',
+                'ActionView::Helpers::AssetTagHelper',
+                'ActionView::Helpers::BenchmarkHelper',
                 'ActionView::Helpers::CacheHelper',
-                'ActionView::Helpers::CaptureHelper', 
-                'ActionView::Helpers::DateHelper', 
-                'ActionView::Helpers::DebugHelper', 
+                'ActionView::Helpers::CaptureHelper',
+                'ActionView::Helpers::DateHelper',
+                'ActionView::Helpers::DebugHelper',
                 'ActionView::Helpers::FormHelper',
-                'ActionView::Helpers::FormOptionsHelper', 
-                'ActionView::Helpers::FormTagHelper', 
-                'ActionView::Helpers::JavaScriptHelper', 
+                'ActionView::Helpers::FormOptionsHelper',
+                'ActionView::Helpers::FormTagHelper',
+                'ActionView::Helpers::JavaScriptHelper',
                 'ActionView::Helpers::JavaScriptMacrosHelper',
-                'ActionView::Helpers::NumberHelper', 
-                'ActionView::Helpers::PaginationHelper', 
+                'ActionView::Helpers::NumberHelper',
+                'ActionView::Helpers::PaginationHelper',
                 'ActionView::Helpers::PrototypeHelper',
-                'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods', 
-                'ActionView::Helpers::ScriptaculousHelper', 
+                'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods',
+                'ActionView::Helpers::ScriptaculousHelper',
                 'ActionView::Helpers::TagHelper',
-                'ActionView::Helpers::TextHelper', 
-                'ActionView::Helpers::UrlHelper', 'ActionView::Partials', 
+                'ActionView::Helpers::TextHelper',
+                'ActionView::Helpers::UrlHelper', 'ActionView::Partials',
                 'ActionWebService::API::Method', 'ActionWebService::Base',
-                'ActionWebService::Client::Soap', 
-                'ActionWebService::Client::XmlRpc', 
+                'ActionWebService::Client::Soap',
+                'ActionWebService::Client::XmlRpc',
                 'ActionWebService::Container::ActionController::ClassMethods',
-                'ActionWebService::Container::Delegated::ClassMethods', 
-                'ActionWebService::Container::Direct::ClassMethods', 
+                'ActionWebService::Container::Delegated::ClassMethods',
+                'ActionWebService::Container::Direct::ClassMethods',
                 'ActionWebService::Invocation::ClassMethods',
-                'ActionWebService::Scaffolding::ClassMethods', 
-                'ActionWebService::SignatureTypes', 'ActionWebService::Struct', 
+                'ActionWebService::Scaffolding::ClassMethods',
+                'ActionWebService::SignatureTypes', 'ActionWebService::Struct',
                 'ActiveRecord::Acts::List::ClassMethods',
-                'ActiveRecord::Acts::List::InstanceMethods', 
-                'ActiveRecord::Acts::NestedSet::ClassMethods', 
+                'ActiveRecord::Acts::List::InstanceMethods',
+                'ActiveRecord::Acts::NestedSet::ClassMethods',
                 'ActiveRecord::Acts::NestedSet::InstanceMethods',
-                'ActiveRecord::Acts::Tree::ClassMethods', 
-                'ActiveRecord::Acts::Tree::InstanceMethods', 
-                'ActiveRecord::Aggregations::ClassMethods', 
+                'ActiveRecord::Acts::Tree::ClassMethods',
+                'ActiveRecord::Acts::Tree::InstanceMethods',
+                'ActiveRecord::Aggregations::ClassMethods',
                 'ActiveRecord::Associations::ClassMethods',
-                'ActiveRecord::AttributeMethods::ClassMethods', 
-                'ActiveRecord::Base', 
-                'ActiveRecord::Calculations::ClassMethods', 
+                'ActiveRecord::AttributeMethods::ClassMethods',
+                'ActiveRecord::Base',
+                'ActiveRecord::Calculations::ClassMethods',
                 'ActiveRecord::Callbacks',
-                'ActiveRecord::ConnectionAdapters::AbstractAdapter', 
-                'ActiveRecord::ConnectionAdapters::Column', 
+                'ActiveRecord::ConnectionAdapters::AbstractAdapter',
+                'ActiveRecord::ConnectionAdapters::Column',
                 'ActiveRecord::ConnectionAdapters::DB2Adapter',
-                'ActiveRecord::ConnectionAdapters::DatabaseStatements', 
-                'ActiveRecord::ConnectionAdapters::FirebirdAdapter', 
+                'ActiveRecord::ConnectionAdapters::DatabaseStatements',
+                'ActiveRecord::ConnectionAdapters::FirebirdAdapter',
                 'ActiveRecord::ConnectionAdapters::FrontBaseAdapter',
-                'ActiveRecord::ConnectionAdapters::MysqlAdapter', 
-                'ActiveRecord::ConnectionAdapters::OpenBaseAdapter', 
+                'ActiveRecord::ConnectionAdapters::MysqlAdapter',
+                'ActiveRecord::ConnectionAdapters::OpenBaseAdapter',
                 'ActiveRecord::ConnectionAdapters::OracleAdapter',
-                'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter', 
-                'ActiveRecord::ConnectionAdapters::Quoting', 
+                'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter',
+                'ActiveRecord::ConnectionAdapters::Quoting',
                 'ActiveRecord::ConnectionAdapters::SQLServerAdapter',
-                'ActiveRecord::ConnectionAdapters::SQLiteAdapter', 
-                'ActiveRecord::ConnectionAdapters::SchemaStatements', 
+                'ActiveRecord::ConnectionAdapters::SQLiteAdapter',
+                'ActiveRecord::ConnectionAdapters::SchemaStatements',
                 'ActiveRecord::ConnectionAdapters::SybaseAdapter::ColumnWithIdentity',
-                'ActiveRecord::ConnectionAdapters::SybaseAdapterContext', 
-                'ActiveRecord::ConnectionAdapters::TableDefinition', 
+                'ActiveRecord::ConnectionAdapters::SybaseAdapterContext',
+                'ActiveRecord::ConnectionAdapters::TableDefinition',
                 'ActiveRecord::Errors', 'ActiveRecord::Locking',
-                'ActiveRecord::Locking::Optimistic', 
-                'ActiveRecord::Locking::Optimistic::ClassMethods', 
-                'ActiveRecord::Locking::Pessimistic', 
+                'ActiveRecord::Locking::Optimistic',
+                'ActiveRecord::Locking::Optimistic::ClassMethods',
+                'ActiveRecord::Locking::Pessimistic',
                 'ActiveRecord::Migration', 'ActiveRecord::Observer',
-                'ActiveRecord::Observing::ClassMethods', 
-                'ActiveRecord::Reflection::ClassMethods', 
-                'ActiveRecord::Reflection::MacroReflection', 
+                'ActiveRecord::Observing::ClassMethods',
+                'ActiveRecord::Reflection::ClassMethods',
+                'ActiveRecord::Reflection::MacroReflection',
                 'ActiveRecord::Schema', 'ActiveRecord::Timestamp',
-                'ActiveRecord::Transactions::ClassMethods', 
-                'ActiveRecord::Validations', 
-                'ActiveRecord::Validations::ClassMethods', 
+                'ActiveRecord::Transactions::ClassMethods',
+                'ActiveRecord::Validations',
+                'ActiveRecord::Validations::ClassMethods',
                 'ActiveRecord::XmlSerialization',
-                'ActiveSupport::CachingTools::HashCaching', 
-                'ActiveSupport::CoreExtensions::Array::Conversions', 
+                'ActiveSupport::CachingTools::HashCaching',
+                'ActiveSupport::CoreExtensions::Array::Conversions',
                 'ActiveSupport::CoreExtensions::Array::Grouping',
-                'ActiveSupport::CoreExtensions::Date::Conversions', 
-                'ActiveSupport::CoreExtensions::Hash::Conversions', 
+                'ActiveSupport::CoreExtensions::Date::Conversions',
+                'ActiveSupport::CoreExtensions::Hash::Conversions',
                 'ActiveSupport::CoreExtensions::Hash::Conversions::ClassMethods',
-                'ActiveSupport::CoreExtensions::Hash::Diff', 
-                'ActiveSupport::CoreExtensions::Hash::Keys', 
+                'ActiveSupport::CoreExtensions::Hash::Diff',
+                'ActiveSupport::CoreExtensions::Hash::Keys',
                 'ActiveSupport::CoreExtensions::Hash::ReverseMerge',
-                'ActiveSupport::CoreExtensions::Integer::EvenOdd', 
-                'ActiveSupport::CoreExtensions::Integer::Inflections', 
+                'ActiveSupport::CoreExtensions::Integer::EvenOdd',
+                'ActiveSupport::CoreExtensions::Integer::Inflections',
                 'ActiveSupport::CoreExtensions::Numeric::Bytes',
-                'ActiveSupport::CoreExtensions::Numeric::Time', 
-                'ActiveSupport::CoreExtensions::Pathname::CleanWithin', 
+                'ActiveSupport::CoreExtensions::Numeric::Time',
+                'ActiveSupport::CoreExtensions::Pathname::CleanWithin',
                 'ActiveSupport::CoreExtensions::Range::Conversions',
-                'ActiveSupport::CoreExtensions::String::Access', 
-                'ActiveSupport::CoreExtensions::String::Conversions', 
+                'ActiveSupport::CoreExtensions::String::Access',
+                'ActiveSupport::CoreExtensions::String::Conversions',
                 'ActiveSupport::CoreExtensions::String::Inflections',
-                'ActiveSupport::CoreExtensions::String::Iterators', 
-                'ActiveSupport::CoreExtensions::String::StartsEndsWith', 
+                'ActiveSupport::CoreExtensions::String::Iterators',
+                'ActiveSupport::CoreExtensions::String::StartsEndsWith',
                 'ActiveSupport::CoreExtensions::String::Unicode',
-                'ActiveSupport::CoreExtensions::Time::Calculations', 
-                'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods', 
+                'ActiveSupport::CoreExtensions::Time::Calculations',
+                'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods',
                 'ActiveSupport::CoreExtensions::Time::Conversions',
-                'ActiveSupport::Multibyte::Chars', 
-                'ActiveSupport::Multibyte::Handlers::UTF8Handler', 'Binding', 
-                'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup', 
+                'ActiveSupport::Multibyte::Chars',
+                'ActiveSupport::Multibyte::Handlers::UTF8Handler', 'Binding',
+                'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup',
                 'Enumerable', 'Fixtures',
-                'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector', 
-                'Inflector::Inflections', 'Mime', 'Mime::Type', 
+                'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
+                'Inflector::Inflections', 'Mime', 'Mime::Type',
                 'OCI8AutoRecover', 'Symbol', 'TimeZone', 'XmlSimple'
             ),
         5 => array(
-            'image_tag', 'link_to', 'link_to_remote', 'javascript_include_tag', 
-            'assert_equal', 'assert_not_equal', 'before_filter', 
-            'after_filter', 'render', 'redirect_to', 'hide_action', 
-            'render_to_string', 'url_for', 'controller_name', 
-            'controller_class_name', 'controller_path', 'session', 
-            'render_component', 'render_component_as_string', 'cookie', 
-            'layout', 'flash', 'auto_complete_for', 'in_place_editor_for', 
-            'respond_to', 'paginate', 'current_page', 'each', 'first', 
-            'first_page', 'last_page', 'last', 'length', 'new', 'page_count', 
-            'previous', 'next', 'scaffold', 'session', 'send_data', 
-            'send_file', 'deliver', 'receive', 'error_messages_for', 
-            'error_message_on', 'form', 'input', 'stylesheet_link_tag', 
-            'stylesheet_path', 'content_for', 'select_date', 'select', 'ago', 
-            'month', 'day', 'check_box', 'fields_for', 'file_field', 
-            'form_for', 'hidden_field', 'text_area', 'password_field', 
-            'collection_select', 'options_for_select', 
-            'options_from_collection_for_select', 'file_field_tag', 
-            'form_for_tag', 'hidden_field_tag', 'text_area_tag', 
-            'password_field_tag', 'link_to_function', 'javascript_tag', 
-            'human_size', 'number_to_currency', 'pagination_links', 
-            'form_remote_tag', 'form_remote_for', 'link_to_remote', 
-            'submit_to_remote', 'remote_function', 'observe_form', 
-            'observe_field', 'remote_form_for', 'options_for_ajax', 'alert', 
-            'call', 'assign', 'show', 'hide', 'insert_html', 'sortable', 
-            'toggle', 'visual_effect', 'replace', 'replace_html', 'remove', 
-            'save', 'save!', 'draggable', 'drop_receiving', 'literal', 
-            'draggable_element', 'drop_receiving_element', 'sortable_element', 
-            'content_tag', 'tag', 'link_to_image', 'link_to_if', 
-            'link_to_unless', 'mail_to', 'link_image_to', 'button_to', 
-            'current_page?', 'act_as_list', 'act_as_nested', 'act_as_tree', 
-            'has_many', 'has_one', 'belongs_to', 'has_many_and_belogns_to', 
-            'delete', 'destroy', 'destroy_all', 'clone', 'deep_clone', 'copy', 
-            'update', 'table_name', 'primary_key', 'sum', 'maximun', 'minimum', 
-            'count', 'size', 'after_save', 'after_create', 'before_save', 
-            'before_create', 'add_to_base', 'errors', 'add', 'validate', 
-            'validate', 'validates_presence_of', 'validates_format_of', 
-            'validates_numericality_of', 'validates_uniqueness_of', 
-            'validates_length_of', 'validates_format_of', 'validates_size_of', 
+            'image_tag', 'link_to', 'link_to_remote', 'javascript_include_tag',
+            'assert_equal', 'assert_not_equal', 'before_filter',
+            'after_filter', 'render', 'redirect_to', 'hide_action',
+            'render_to_string', 'url_for', 'controller_name',
+            'controller_class_name', 'controller_path', 'session',
+            'render_component', 'render_component_as_string', 'cookie',
+            'layout', 'flash', 'auto_complete_for', 'in_place_editor_for',
+            'respond_to', 'paginate', 'current_page', 'each', 'first',
+            'first_page', 'last_page', 'last', 'length', 'new', 'page_count',
+            'previous', 'next', 'scaffold', 'session', 'send_data',
+            'send_file', 'deliver', 'receive', 'error_messages_for',
+            'error_message_on', 'form', 'input', 'stylesheet_link_tag',
+            'stylesheet_path', 'content_for', 'select_date', 'select', 'ago',
+            'month', 'day', 'check_box', 'fields_for', 'file_field',
+            'form_for', 'hidden_field', 'text_area', 'password_field',
+            'collection_select', 'options_for_select',
+            'options_from_collection_for_select', 'file_field_tag',
+            'form_for_tag', 'hidden_field_tag', 'text_area_tag',
+            'password_field_tag', 'link_to_function', 'javascript_tag',
+            'human_size', 'number_to_currency', 'pagination_links',
+            'form_remote_tag', 'form_remote_for', 'link_to_remote',
+            'submit_to_remote', 'remote_function', 'observe_form',
+            'observe_field', 'remote_form_for', 'options_for_ajax', 'alert',
+            'call', 'assign', 'show', 'hide', 'insert_html', 'sortable',
+            'toggle', 'visual_effect', 'replace', 'replace_html', 'remove',
+            'save', 'save!', 'draggable', 'drop_receiving', 'literal',
+            'draggable_element', 'drop_receiving_element', 'sortable_element',
+            'content_tag', 'tag', 'link_to_image', 'link_to_if',
+            'link_to_unless', 'mail_to', 'link_image_to', 'button_to',
+            'current_page?', 'act_as_list', 'act_as_nested', 'act_as_tree',
+            'has_many', 'has_one', 'belongs_to', 'has_many_and_belogns_to',
+            'delete', 'destroy', 'destroy_all', 'clone', 'deep_clone', 'copy',
+            'update', 'table_name', 'primary_key', 'sum', 'maximun', 'minimum',
+            'count', 'size', 'after_save', 'after_create', 'before_save',
+            'before_create', 'add_to_base', 'errors', 'add', 'validate',
+            'validate', 'validates_presence_of', 'validates_format_of',
+            'validates_numericality_of', 'validates_uniqueness_of',
+            'validates_length_of', 'validates_format_of', 'validates_size_of',
             'to_a', 'to_s', 'to_xml', 'to_i'
             )
         ),
diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php
index e96fcf372512db415e7cb436d764f31025c6f90b..3957f3b641763dc9873b5d240973fab140e1643e 100644
--- a/inc/geshi/reg.php
+++ b/inc/geshi/reg.php
@@ -3,8 +3,8 @@
  * reg.php
  * -------
  * Author: Sean Hanna (smokingrope@gmail.com)
- * Copyright: (c) 2006 Sean Hanna 
- * Release Version: 1.0.7.20
+ * Copyright: (c) 2006 Sean Hanna
+ * Release Version: 1.0.7.21
  * Date Started: 03/15/2006
  *
  * Microsoft Registry Editor Language File.
@@ -30,7 +30,7 @@
  *
  * - There are two regexes for the multiline hex value regex. The regex for
  *		all lines after the first does not verify that the previous line contains
- *		a line continuation character '\'. This regex also does not check for 
+ *		a line continuation character '\'. This regex also does not check for
  *		end of line as it should.
  *
  * - If number_highlighting is enabled during processing of this syntax file
@@ -68,11 +68,11 @@ $language_data = array (
 		2 => array()
 	    /* Registry Key Constants Not Used
 		3 => array(
-			'HKEY_LOCAL_MACHINE', 
-			'HKEY_CLASSES_ROOT', 
+			'HKEY_LOCAL_MACHINE',
+			'HKEY_CLASSES_ROOT',
 			'HKEY_CURRENT_USER',
-			'HKEY_USERS', 
-			'HKEY_CURRENT_CONFIG', 
+			'HKEY_USERS',
+			'HKEY_CURRENT_CONFIG',
 			'HKEY_DYN_DATA',
 			'HKLM', 'HKCR', 'HKCU', 'HKU', 'HKCC', 'HKDD'
 			)/***/
@@ -94,7 +94,7 @@ $language_data = array (
 		'METHODS' => array(),
 		'SYMBOLS' => array(0 => 'color: #000000;'),
 		'SCRIPT' => array(),
-		'REGEXPS' => array( 
+		'REGEXPS' => array(
 			0 => '',
 			1 => 'color: #0000FF;',
 			2 => '',
@@ -146,7 +146,7 @@ $language_data = array (
 			GESHI_BEFORE => '\\1',
 			GESHI_AFTER => '\\3',
 			GESHI_CLASS => 'kw2'
-			),			
+			),
 		// Highlight variable names
 		4 => array(
 			GESHI_SEARCH => '((\\n|^)\\s*\\&quot\\;)(.*)(\\&quot\\;\\s*=)',
diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php
index b8bc69b0e43f632b05753f3e7301152ce0b26180..5746a56cbf13fac1ab95620a3153ad3855bb15fe 100644
--- a/inc/geshi/robots.php
+++ b/inc/geshi/robots.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Christian Lescuyer (cl@goelette.net)
  * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/02/17
  *
  * robots.txt language file for GeSHi.
diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php
index d4acf44d751a98bbe40982b8ce715dd2300b77c1..1c00787ba2a91ece6b80d0d2cd0f515ce26f0b35 100644
--- a/inc/geshi/ruby.php
+++ b/inc/geshi/ruby.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Moises Deniz
  * Copyright: (c) 2007 Moises Deniz
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2007/03/21
  *
  * Ruby language file for GeSHi
diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php
index 47defeb4eff8a3767fc24312999b08f9e08cad4a..12c96428b93edf288b8907e1c4fd42ee21a39b1d 100644
--- a/inc/geshi/sas.php
+++ b/inc/geshi/sas.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Galen Johnson (solitaryr@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/12/27
  *
  * SAS language file for GeSHi. Based on the sas vim file.
diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php
index 7a2648e5f47851ac6592e25155105f1fce985394..70be0cec1aa412342983e310e6b6b40b51d7da0e 100644
--- a/inc/geshi/scheme.php
+++ b/inc/geshi/scheme.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jon Raphaelson (jonraphaelson@gmail.com)
  * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * Scheme language file for GeSHi.
@@ -48,71 +48,71 @@ $language_data = array (
 		1 => array(
 		  'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate',
 		  'asin', 'assoc', 'assq', 'assv', 'atan',
-		  
-		  'begin', 'boolean?', 'bound-identifier=?', 
-		  
-		  'caar', 'caddr', 'cadr', 'call-with-current-continuation', 
+
+		  'begin', 'boolean?', 'bound-identifier=?',
+
+		  'caar', 'caddr', 'cadr', 'call-with-current-continuation',
 		  'call-with-input-file', 'call-with-output-file', 'call/cc', 'car',
 		  'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer',
 		  'char-alphabetic?', 'char-ci<=?', 'char-ci<?', 'char-ci?', 'char-ci>=?',
-		  'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?', 
-		  'char-numeric', 'char-ready', 'char-ready?', 'char-upcase', 
+		  'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?',
+		  'char-numeric', 'char-ready', 'char-ready?', 'char-upcase',
 		  'char-upper-case?', 'char-whitespace?', 'char<=?', 'char<?', 'char=?',
 		  'char>=?', 'char>?', 'char?', 'close-input-port', 'close-output-port',
-		  'complex?', 'cond', 'cons', 'construct-identifier', 'cos', 
+		  'complex?', 'cond', 'cons', 'construct-identifier', 'cos',
 		  'current-input-port', 'current-output-port',
-		  
+
 		  'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do',
-		  
+
 		  'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact',
 		  'exact?', 'exp', 'expt', 'else',
-		  
-		  'f', 'floor', 'for-each', 'force', 'free-identifer=?', 
-		  
+
+		  'f', 'floor', 'for-each', 'force', 'free-identifer=?',
+
 		  'gcd', 'gen-counter', 'gen-loser', 'generate-identifier',
-		  
+
 		  'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact',
 		  'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system',
-		  
-		  'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec', 
+
+		  'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec',
 		  'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?',
 		  'load', 'log',
-		  
-		  'magnitude', 'make-polar', 'make-promise', 'make-rectangular',     
-		  'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member', 
+
+		  'magnitude', 'make-polar', 'make-promise', 'make-rectangular',
+		  'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member',
 		  'memq', 'memv', 'min', 'modulo',
-		  
+
 		  'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?',
 		  'numerator',
-		  
-		  'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port', 
-		  
+
+		  'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port',
+
 		  'pair?', 'peek-char', 'positive?', 'procedure?',
-		  
-		  'quasiquote', 'quote', 'quotient', 
-		  
+
+		  'quasiquote', 'quote', 'quotient',
+
 		  'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?',
 		  'remainder', 'return', 'reverse',
-		  
+
 		  's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string',
-		  'string->list', 'string->number', 'string->symbol', 'string-append', 
-		  'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-ci>=?', 
-		  'string-ci>?', 'string-copy', 'string-fill!', 'string-length', 
-		  'string-ref', 'string-set!', 'string<=?', 'string<?', 'string=?', 
-		  'string>=?', 'string>?', 'string?', 'substring', 'symbol->string', 
+		  'string->list', 'string->number', 'string->symbol', 'string-append',
+		  'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-ci>=?',
+		  'string-ci>?', 'string-copy', 'string-fill!', 'string-length',
+		  'string-ref', 'string-set!', 'string<=?', 'string<?', 'string=?',
+		  'string>=?', 'string>?', 'string?', 'substring', 'symbol->string',
 		  'symbol?', 'syntax', 'syntax-rules',
-		  
+
 		  't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate',
-		  
-		  'unquote', 'unquote-splicing', 'unwrap-syntax', 
-		  
-		  'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref', 
-		  'vector-set!', 'vector?', 
-		  
+
+		  'unquote', 'unquote-splicing', 'unwrap-syntax',
+
+		  'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref',
+		  'vector-set!', 'vector?',
+
 		  'with-input-from-file', 'with-output-to-file', 'write', 'write-char',
-		  
+
 		  'zero?'
-		  
+
 			)
 		),
 	'SYMBOLS' => array(
diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php
index bbd526874ea073016aded90d43bc97694461c813..f71721e5d91e4bd79ef1ae4cfb1dd8a658d8f447 100644
--- a/inc/geshi/sdlbasic.php
+++ b/inc/geshi/sdlbasic.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * sdlbasic.php
  * ------------
- * Author: Roberto Rossi 
+ * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/08/19
  *
  * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
@@ -102,7 +102,7 @@
     'acceptsock', 'isserverready', 'connectsock', 'connectionreadysock',
     'isclientready', 'losesock', 'peeksock', 'readsock', 'readbytesock',
     'readlinesock', 'writesock', 'writebytesock', 'writelinesock',
-    'getremoteip', 'getremoteport', 'getlocalip' 
+    'getremoteip', 'getremoteport', 'getlocalip'
       )
 		),
 	'SYMBOLS' => array(
diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php
index 485bed048a75678242a497f21c241a544ddb1dcb..4e7e337ed812bcb20596afbc919ef72f8b5951bb 100644
--- a/inc/geshi/smalltalk.php
+++ b/inc/geshi/smalltalk.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Bananeweizen (Bananeweizen@gmx.de)
  * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/03/27
  *
  * Smalltalk language file for GeSHi.
@@ -17,7 +17,7 @@
  * TODO
  * -------------------------
  * * recognize nested array symbols correctly
- * 
+ *
  *************************************************************************************
  *
  *     This file is part of GeSHi.
diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php
index 5767aa8596adde74d550a68cba9095fb0c914f14..02613a0c4cf66f517d1a5ff40104a47f0219d11b 100644
--- a/inc/geshi/smarty.php
+++ b/inc/geshi/smarty.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/07/10
  *
  * Smarty template language file for GeSHi.
@@ -160,7 +160,13 @@ $language_data = array (
 	),
 	'HIGHLIGHT_STRICT_BLOCK' => array(
 		0 => true
-		)
+	),
+	'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#;>|^",
+            'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%\\-&"
+        )
+    )
 );
 
 ?>
diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php
index 25aa56783631141a574992f9a297f9e6d1e4df5d..b21298e026757dfed8b652e5937966967127f11c 100644
--- a/inc/geshi/sql.php
+++ b/inc/geshi/sql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * SQL language file for GeSHi.
diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php
index f19f1dcf84c04208fcc8b86ce1585e5dfddc43bd..697ce8d50a7bcebd5e74e63dade8be9fca3771c6 100644
--- a/inc/geshi/tcl.php
+++ b/inc/geshi/tcl.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Reid van Melle (rvanmelle@gmail.com)
  * Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/05/05
  *
  * TCL/iTCL language file for GeSHi.
@@ -62,7 +62,7 @@ $language_data = array (
 		1 => array(
 			'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach',
 			'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch',
-			'default', 'exit', 'error', 'proc', 'return', 'uplevel', 'loop', 
+			'default', 'exit', 'error', 'proc', 'return', 'uplevel', 'loop',
 			'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect',
 			'expr', 'catch', 'namespace', 'rename', 'variable',
 			// itcl
@@ -75,7 +75,7 @@ $language_data = array (
 		2 => array(
 			// string handling
 			'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub',
-			'scan', 'string', 'subst', 
+			'scan', 'string', 'subst',
 			// list handling
 			'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange',
 			'lreplace', 'lsearch', 'lset', 'lsort', 'split',
@@ -83,7 +83,7 @@ $language_data = array (
 			'expr',
 			// procedures and output
 			'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file',
-			'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek', 
+			'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek',
 			'socket', 'tell',
 			// packages and source files
 			'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source',
@@ -96,9 +96,9 @@ $language_data = array (
 			// platform specified
 			'dde', 'registry', 'resource',
 			// special variables
-			'$argc', '$argv', '$errorCode', '$errorInfo', '$argv0', 
-			'$auto_index', '$auto_oldpath', '$auto_path', '$env', 
-			'$tcl_interactive', '$tcl_libpath', '$tcl_library', 
+			'$argc', '$argv', '$errorCode', '$errorInfo', '$argv0',
+			'$auto_index', '$auto_oldpath', '$auto_path', '$env',
+			'$tcl_interactive', '$tcl_libpath', '$tcl_library',
 			'$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec',
 			),
 
diff --git a/inc/geshi/text.php b/inc/geshi/text.php
index ded1f82221553a10221597ada463b60fa361f3d2..83886964741b72b5cc4cb9949ac42db0fcdda59c 100644
--- a/inc/geshi/text.php
+++ b/inc/geshi/text.php
@@ -3,8 +3,8 @@
  * text.php
  * --------
  * Author: Sean Hanna (smokingrope@gmail.com)
- * Copyright: (c) 2006 Sean Hanna 
- * Release Version: 1.0.7.20
+ * Copyright: (c) 2006 Sean Hanna
+ * Release Version: 1.0.7.21
  * Date Started: 04/23/2006
  *
  * Standard Text File (No Syntax Highlighting).
@@ -20,8 +20,8 @@
  *
  * TODO (updated 04/27/2006)
  * -------------------------
- * 
- * 
+ *
+ *
  *************************************************************************************
  *
  *     This file is part of GeSHi.
diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php
index f3ca4a43df21914994863ae1d5837cb7231f0282..aa79ec6314a0dc7700beed5a26d54ccdfbc674f9 100644
--- a/inc/geshi/thinbasic.php
+++ b/inc/geshi/thinbasic.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Eros Olmi (eros.olmi@thinbasic.com)
  * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/05/12
  *
  * thinBasic language file for GeSHi.
diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php
index 4066d34667ca5adcc43846682e00ba00f04579c0..af57a1365ba9d1ca0a0db9561d72e48e526d3863 100644
--- a/inc/geshi/tsql.php
+++ b/inc/geshi/tsql.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Duncan Lock (dunc@dflock.co.uk)
  * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/11/22
  *
  * T-SQL language file for GeSHi.
@@ -46,14 +46,14 @@ $language_data = array (
 	'ESCAPE_CHAR' => '\\',
 	'KEYWORDS' => array(
 		1 => array(
-			/* 
+			/*
 				This will be highlighted in blue
 			*/
 
 			// Datatypes
-			'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money', 
-			'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar', 
-			'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor', 
+			'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money',
+			'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar',
+			'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor',
 			'sql_variant', 'table', 'timestamp', 'uniqueidentifier',
 
 			// Keywords
@@ -95,8 +95,8 @@ $language_data = array (
 			*/
 
 			//Configuration Functions
-			'@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME', 
-			'@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS','@@TEXTSIZE', 
+			'@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME',
+			'@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS','@@TEXTSIZE',
 			'@@MAX_PRECISION','@@VERSION','@@NESTLEVEL',
 
 			//Cursor Functions
@@ -106,35 +106,35 @@ $language_data = array (
 			'DATEADD','DATEDIFF','DATENAME','DATEPART','DAY','GETDATE','GETUTCDATE','MONTH','YEAR',
 
 			//Mathematical Functions
-			'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN', 
-			'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS', 
+			'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN',
+			'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS',
 			'POWER','TAN','COT','RADIANS',
 
 			//Meta Data Functions
-			'COL_LENGTH','fn_listextendedproperty','COL_NAME','FULLTEXTCATALOGPROPERTY', 
-			'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL', 
-			'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME', 
-			'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID', 
-			'@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY', 
+			'COL_LENGTH','fn_listextendedproperty','COL_NAME','FULLTEXTCATALOGPROPERTY',
+			'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL',
+			'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME',
+			'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID',
+			'@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY',
 			'TYPEPROPERTY','FILEPROPERTY',
 
 			//Security Functions
-			'fn_trace_geteventinfo','IS_SRVROLEMEMBER','fn_trace_getfilterinfo','SUSER_SID', 
-			'fn_trace_getinfo','SUSER_SNAME','fn_trace_gettable','USER_ID','HAS_DBACCESS', 
+			'fn_trace_geteventinfo','IS_SRVROLEMEMBER','fn_trace_getfilterinfo','SUSER_SID',
+			'fn_trace_getinfo','SUSER_SNAME','fn_trace_gettable','USER_ID','HAS_DBACCESS',
 			'IS_MEMBER',
 
 			//String Functions
-			'ASCII','NCHAR','SOUNDEX','CHAR','PATINDEX','SPACE','CHARINDEX', 
-			'REPLACE','STR','DIFFERENCE','QUOTENAME','STUFF','LEFT','REPLICATE', 
-			'SUBSTRING','LEN','REVERSE','UNICODE','LOWER','RIGHT','UPPER','LTRIM', 
+			'ASCII','NCHAR','SOUNDEX','CHAR','PATINDEX','SPACE','CHARINDEX',
+			'REPLACE','STR','DIFFERENCE','QUOTENAME','STUFF','LEFT','REPLICATE',
+			'SUBSTRING','LEN','REVERSE','UNICODE','LOWER','RIGHT','UPPER','LTRIM',
 			'RTRIM',
 
 			//System Functions
-			'APP_NAME','COLLATIONPROPERTY','@@ERROR','fn_helpcollations', 
-			'fn_servershareddrives','fn_virtualfilestats','FORMATMESSAGE', 
-			'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR', 
-			'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS', 
-			'@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY', 
+			'APP_NAME','COLLATIONPROPERTY','@@ERROR','fn_helpcollations',
+			'fn_servershareddrives','fn_virtualfilestats','FORMATMESSAGE',
+			'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR',
+			'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS',
+			'@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY',
 			'STATS_DATE','@@TRANCOUNT','USER_NAME',
 
 			//System Statistical Functions
@@ -144,13 +144,13 @@ $language_data = array (
 
 			//Text and Image Functions
 			'TEXTPTR','TEXTVALID',
-			
+
 			//Aggregate functions
-			'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG', 
+			'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG',
 			'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'GROUPING', 'VARP'
 			),
 		3 => array(
-			/*	
+			/*
 				System stored procedures
 				Higlighted dark brown
 			*/
@@ -159,95 +159,95 @@ $language_data = array (
 			'sp_ActiveDirectory_Obj', 'sp_ActiveDirectory_SCP',
 
 			//Catalog Procedures
-			'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns', 
-			'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys', 
+			'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns',
+			'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys',
 			'sp_table_privileges', 'sp_server_info', 'sp_tables',
 
 			//Cursor Procedures
 			'sp_cursor_list', 'sp_describe_cursor_columns', 'sp_describe_cursor', 'sp_describe_cursor_tables',
 
 			//Database Maintenance Plan Procedures
-			'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db', 
-			'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan', 
+			'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db',
+			'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan',
 			'sp_delete_maintenance_plan',
 
 			//Distributed Queries Procedures
-			'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs', 
-			'sp_primarykeys', 'sp_column_privileges_ex', 'sp_serveroption', 'sp_columns_ex', 
+			'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs',
+			'sp_primarykeys', 'sp_column_privileges_ex', 'sp_serveroption', 'sp_columns_ex',
 			'sp_table_privileges_ex', 'sp_droplinkedsrvlogin', 'sp_tables_ex', 'sp_foreignkeys',
 
 			//Full-Text Search Procedures
-			'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column', 
-			'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor', 
-			'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table', 
+			'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column',
+			'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor',
+			'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table',
 			'sp_help_fulltext_tables_cursor', 'sp_help_fulltext_catalogs',
 
 			//Log Shipping Procedures
 			'sp_add_log_shipping_database', 'sp_delete_log_shipping_database', 'sp_add_log_shipping_plan',
-			'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database', 
-			'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary', 
-			'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary', 
-			'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info', 
-			'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role', 
-			'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info', 
-			'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan', 
+			'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database',
+			'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary',
+			'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary',
+			'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info',
+			'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role',
+			'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info',
+			'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan',
 			'sp_define_log_shipping_monitor', 'sp_update_log_shipping_plan_database',
 
 			//OLE Automation Extended Stored Procedures
-			'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo', 
+			'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo',
 			'sp_OAStop', 'sp_OAGetProperty',
 
 			//Replication Procedures
-			'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile', 
-			'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher', 
-			'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup', 
-			'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher', 
-			'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter', 
-			'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription', 
-			'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access', 
-			'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter', 
-			'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle', 
-			'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts', 
-			'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb', 
-			'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher', 
-			'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn', 
-			'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation', 
-			'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter', 
-			'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview', 
-			'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder', 
-			'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds', 
-			'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile', 
-			'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher', 
-			'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password', 
-			'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle', 
-			'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication', 
-			'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription', 
-			'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber', 
-			'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo', 
-			'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties', 
-			'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot', 
-			'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds', 
-			'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter', 
-			'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption', 
-			'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor', 
-			'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds', 
-			'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter', 
-			'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands', 
-			'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription', 
-			'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription', 
-			'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription', 
+			'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile',
+			'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher',
+			'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup',
+			'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher',
+			'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter',
+			'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription',
+			'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access',
+			'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter',
+			'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle',
+			'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts',
+			'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb',
+			'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher',
+			'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn',
+			'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation',
+			'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter',
+			'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview',
+			'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder',
+			'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds',
+			'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile',
+			'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher',
+			'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password',
+			'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle',
+			'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication',
+			'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription',
+			'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber',
+			'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo',
+			'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties',
+			'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot',
+			'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds',
+			'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter',
+			'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption',
+			'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor',
+			'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds',
+			'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter',
+			'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands',
+			'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription',
+			'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription',
+			'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription',
 			'sp_validatemergesubscription', 'sp_dsninfo', 'sp_vupgrade_replication', 'sp_dumpparamcmd',
 
 			//Security Procedures
-			'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember', 
-			'sp_addlinkedsrvlogin', 'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin', 
-			'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup', 
-			'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser', 
-			'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole', 
-			'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login', 
-			'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser', 
-			'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption', 
-			'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin', 
+			'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember',
+			'sp_addlinkedsrvlogin', 'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin',
+			'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup',
+			'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser',
+			'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole',
+			'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login',
+			'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser',
+			'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption',
+			'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin',
 			'sp_setapprole', 'sp_droplogin', 'sp_srvrolepermission', 'sp_dropremotelogin', 'sp_validatelogins', 'sp_droprole',
 
 			//SQL Mail Procedures
@@ -257,36 +257,36 @@ $language_data = array (
 			'sp_trace_create', 'sp_trace_setfilter', 'sp_trace_generateevent', 'sp_trace_setstatus', 'sp_trace_setevent',
 
 			//SQL Server Agent Procedures
-			'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job', 
-			'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification', 
-			'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver', 
-			'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask', 
-			'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect', 
-			'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation', 
-			'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule', 
-			'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep', 
-			'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator', 
-			'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup', 
-			'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask', 
-			'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category', 
-			'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory', 
+			'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job',
+			'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification',
+			'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver',
+			'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask',
+			'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect',
+			'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation',
+			'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule',
+			'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep',
+			'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator',
+			'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup',
+			'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask',
+			'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category',
+			'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory',
 			'sp_update_targetservergroup', 'sp_help_job', 'sp_updatetask', 'xp_sqlagent_proxy_account',
 
 			//System Procedures
-			'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc', 
-			'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db', 
-			'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup', 
-			'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats', 
-			'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats', 
-			'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession', 
-			'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure', 
-			'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption', 
-			'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel', 
-			'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb', 
-			'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db', 
-			'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused', 
-			'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype', 
-			'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats', 
+			'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc',
+			'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db',
+			'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup',
+			'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats',
+			'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats',
+			'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession',
+			'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure',
+			'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption',
+			'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel',
+			'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb',
+			'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db',
+			'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused',
+			'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype',
+			'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats',
 			'sp_getbindtoken', 'sp_validname', 'sp_help', 'sp_who',
 
 			//Web Assistant Procedures
@@ -296,11 +296,11 @@ $language_data = array (
 			'sp_xml_preparedocument', 'sp_xml_removedocument',
 
 			//General Extended Procedures
-			'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin', 
+			'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin',
 			'xp_grantlogin', 'xp_sprintf', 'xp_logevent', 'xp_sqlmaint', 'xp_loginconfig', 'xp_sscanf',
 
 			//API System Stored Procedures
-			'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen', 
+			'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen',
 			'sp_cursoroption', 'sp_cursorprepare', 'sp_cursorunprepare', 'sp_execute', 'sp_prepare', 'sp_unprepare',
 
 			//Misc
@@ -308,14 +308,14 @@ $language_data = array (
 			),
 		4 => array(
 			//Function/sp's higlighted brown.
-			'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives', 
-			'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo', 
+			'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives',
+			'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo',
 			'fn_trace_gettable', 'fn_virtualfilestats',
 			),
 		),
 	'SYMBOLS' => array(
-		'!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=', 
-		'<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS', 
+		'!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=',
+		'<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS',
 		'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME', '|', '||', '~'
 		),
 	'CASE_SENSITIVE' => array(
diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php
index ccfe4b60cdf94c268b170d9a5cc0076205193ff0..bbea1019eb50cebc7ebbc285c8e5590fde2ed936 100644
--- a/inc/geshi/vb.php
+++ b/inc/geshi/vb.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/08/30
  *
  * Visual Basic language file for GeSHi.
diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php
index b0869f025f2c217613d767269829a9df2fd018a7..c417fee66a78e05ba5b4eacbc4c6b9e4192942bc 100644
--- a/inc/geshi/vbnet.php
+++ b/inc/geshi/vbnet.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/06/04
  *
  * VB.NET language file for GeSHi.
@@ -65,13 +65,13 @@
 			'WINDOWSFOLDER', 'WINDOWTEXT', 'YELLOW', 'YES', 'YESNO', 'YESNOCANCEL'
 			),
 		2 => array(
-			'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE',
-			'Else', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For',
-			'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT',
+			'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE',
+			'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For',
+			'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT',
 			'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE',
-			'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'OVERRIDABLE', 'ParamArray',
-			'Print', 'Private', 'Property', 'Public', 'Resume', 'Seek', 'Static', 'Step',
-			'String', 'SHELL', 'SENDKEYS', 'SET', 'Then', 'Time', 'To', 'THROW', 'WithEvents'
+			'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'ParamArray',
+			'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step',
+			'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents'
 			),
 		3 => array(
 			'COLLECTION', 'DEBUG', 'DICTIONARY', 'DRIVE', 'DRIVES', 'ERR', 'FILE', 'FILES',
@@ -86,7 +86,7 @@
 			'GETTYPE', 'LIKE', 'MOD', 'NOT', 'ORXOR'
 			),
 		6 => array(
-			'APPACTIVATE', 'BEEP', 'CALL', 'CHDIR', 'CHDRIVE', 'CLASS', 'CASE', 'CATCH',
+			'APPACTIVATE', 'BEEP', 'CALL', 'CHDIR', 'CHDRIVE', 'CLASS', 'CASE', 'CATCH', 'CONST',
 			'DECLARE', 'DELEGATE', 'DELETESETTING', 'DIM', 'DO', 'DOEVENTS', 'END', 'ENUM',
 			'EVENT', 'EXIT', 'EACH', 'FUNCTION', 'FINALLY', 'IF', 'IMPORTS', 'INHERITS',
 			'INTERFACE', 'IMPLEMENTS', 'KILL', 'LOOP', 'MIDB', 'NAMESPACE', 'OPEN', 'PUT',
@@ -110,7 +110,7 @@
 			'LTRIM$', 'MID$', 'MIDB', 'MIDB$', 'MINUTE', 'MIRR', 'MKDIR', 'MONTH', 'MONTHNAME',
 			'MSGBOX', 'NOW', 'NPER', 'NPV', 'OCT', 'OCT$', 'PARTITION', 'PMT', 'PPMT', 'PV',
 			'RATE', 'REPLACE', 'RIGHT', 'RIGHT$', 'RIGHTB', 'RIGHTB$', 'RMDIR', 'RND', 'RTRIM',
-			'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'STR', 'STR$',
+			'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'SQRT', 'STR', 'STR$',
 			'STRCOMP', 'STRCONV', 'STRING$', 'STRREVERSE', 'SYD', 'TAB', 'TAN', 'TIMEOFDAY',
 			'TIMER', 'TIMESERIAL', 'TIMEVALUE', 'TODAY', 'TRIM', 'TRIM$', 'TYPENAME', 'UBOUND',
 			'UCASE', 'UCASE$', 'VAL', 'WEEKDAY', 'WEEKDAYNAME', 'YEAR'
diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php
index 4448ff0e7f737c0ce760d5e9b3c13da96700675b..47d1eb735a4ece340d7e04c54a509f85158e8255 100644
--- a/inc/geshi/vhdl.php
+++ b/inc/geshi/vhdl.php
@@ -4,9 +4,9 @@
  * --------
  * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
  * Copyright: (c) 2005 Alexander Krause
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2005/06/15
- * 
+ *
  * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
  *
  * CHANGES
@@ -36,7 +36,7 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  ************************************************************************************/
- 
+
 $language_data = array (
     'LANG_NAME' => 'VHDL',
     'COMMENT_SINGLE' => array(1 => '--'),
@@ -134,5 +134,5 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
- 
+
 ?>
diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php
index 3958d5b58d05c4fdd5921bc2dd5e91bc7c380979..7265342e0bb81ce131cd7428af0d9ed31376bfdf 100644
--- a/inc/geshi/visualfoxpro.php
+++ b/inc/geshi/visualfoxpro.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Roberto Armellin (r.armellin@tin.it)
  * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/09/17
  *
  * Visual FoxPro language file for GeSHi.
diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php
index ee35aea2272b86b0bf5480a9934ea9b1a0ff3d42..6228a79c939877f403125ec6c19ce969fd26aa9e 100644
--- a/inc/geshi/winbatch.php
+++ b/inc/geshi/winbatch.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Craig Storey (storey.craig@gmail.com)
  * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2006/05/19
  *
  * WinBatch language file for GeSHi.
@@ -17,11 +17,11 @@
  * -------
  * 2006/05/05 (1.0.0)
  *  -  First Release
- * 
+ *
  * TODO (updated 2004/07/14)
  * -------------------------
- * - Right now any ':Subroutine' is treated as a comment. This highlights the 
- *   Subroutine's name, but it's not a perfect fix. I should use a RegEx in 
+ * - Right now any ':Subroutine' is treated as a comment. This highlights the
+ *   Subroutine's name, but it's not a perfect fix. I should use a RegEx in
  *   GeSHI_Search&Replace features..
  * - Update the list of extender functions.
  * - Use a regular expression to comment UDFs that start with 'udf_'.
@@ -45,7 +45,7 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  ************************************************************************************/
- 
+
 $language_data = array (
 	'LANG_NAME' => 'Winbatch',
 	'COMMENT_SINGLE' => array(1 => ';', 2 => ':'),
@@ -55,250 +55,250 @@ $language_data = array (
 	'ESCAPE_CHAR' => '',
 	'KEYWORDS' => array(
 		1 => array(
-			'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If', 
-			'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine', 
-			'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine', 
+			'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If',
+			'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine',
+			'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine',
 			'#DefineFunction', 'Debug', 'Continue', 'Case', 'CallExt', 'Call', 'By', 'BreakPoint', 'Break'
 			),
 		2 => array(
-			'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE', 
-			'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK', 
-			'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN', 
-			'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL', 
-			'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK', 
-			'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA', 
-			'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY', 
-			'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE', 
-			'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK', 
-			'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD', 
-			'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP', 
-			'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO', 
-			'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY', 
-			'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL', 
-			'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X', 
-			'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC', 
-			'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT', 
-			'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL', 
-			'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS'			
+			'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE',
+			'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK',
+			'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN',
+			'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL',
+			'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK',
+			'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA',
+			'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY',
+			'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE',
+			'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK',
+			'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD',
+			'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP',
+			'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO',
+			'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY',
+			'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL',
+			'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X',
+			'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC',
+			'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT',
+			'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL',
+			'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS'
 			),
 		3 => array(
-			'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo', 
-			'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild', 
-			'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx', 
-			'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild', 
-			'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild', 
-			'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData', 
-			'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData', 
-			'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType', 
-			'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay', 
-			'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd', 
-			'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild', 
-			'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill', 
-			'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin', 
-			'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo', 
-			'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait', 
-			'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue', 
-			'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr', 
-			'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz', 
-			'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue', 
-			'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random', 
-			'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead', 
-			'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause', 
-			'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd', 
-			'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', 
-			'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo', 
-			'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError', 
-			'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert', 
-			'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined', 
-			'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete', 
-			'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor', 
-			'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx', 
-			'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath', 
-			'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName', 
-			'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist', 
-			'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx', 
-			'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive', 
-			'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst', 
-			'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist', 
-			'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet', 
-			'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject', 
-			'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace', 
-			'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath', 
-			'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend', 
-			'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage', 
-			'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen', 
-			'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy', 
-			'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw', 
-			'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit', 
-			'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx', 
-			'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke', 
-			'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr', 
-			'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4', 
-			'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert', 
-			'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray', 
-			'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont', 
-			'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension', 
-			'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender', 
+			'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo',
+			'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild',
+			'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx',
+			'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild',
+			'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild',
+			'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData',
+			'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData',
+			'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType',
+			'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay',
+			'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd',
+			'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild',
+			'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill',
+			'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin',
+			'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo',
+			'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait',
+			'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue',
+			'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr',
+			'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz',
+			'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue',
+			'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random',
+			'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead',
+			'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause',
+			'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd',
+			'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext',
+			'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo',
+			'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError',
+			'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert',
+			'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined',
+			'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete',
+			'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor',
+			'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx',
+			'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath',
+			'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName',
+			'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist',
+			'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx',
+			'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive',
+			'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst',
+			'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist',
+			'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet',
+			'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject',
+			'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace',
+			'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath',
+			'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend',
+			'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage',
+			'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen',
+			'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy',
+			'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw',
+			'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit',
+			'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx',
+			'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke',
+			'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr',
+			'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4',
+			'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert',
+			'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray',
+			'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont',
+			'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension',
+			'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender',
 			'Acos', 'Abs', 'About'
 			),
 		4 => array(
-			'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit', 
-			'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed', 
-			'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert', 
-			'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo', 
-			'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage', 
-			'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled', 
-			'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet', 
-			'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo', 
-			'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart', 
-			'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers', 
-			'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType', 
-			'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet', 
-			'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd', 
-			'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel', 
-			'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel', 
-			'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite', 
-			'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon', 
-			'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive', 
-			'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel', 
-			'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames', 
-			'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon', 
-			'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename', 
-			'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet', 
-			'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet', 
-			'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd', 
-			'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers', 
-			'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType', 
-			'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog', 
-			'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser', 
-			'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode', 
-			'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo', 
-			'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc', 
-			'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion', 
-			'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS', 
-			'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32', 
-			'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg', 
-			'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr', 
-			'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial', 
-			'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode', 
-			'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect', 
-			'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect', 
-			'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile', 
-			'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar', 
-			'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl', 
-			'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList', 
-			'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar', 
-			'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose', 
-			'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText', 
-			'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion', 
-			'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ', 
-			'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList', 
-			'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert', 
-			'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups', 
-			'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam', 
-			'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo', 
-			'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo', 
-			'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo', 
-			'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon', 
-			'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ', 
-			'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions', 
-			'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll', 
-			'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree', 
-			'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext', 
-			'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet', 
-			'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach', 
-			'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet', 
-			'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr', 
-			'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath', 
-			'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet', 
-			'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn', 
-			'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4', 
-			'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode', 
-			'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress', 
-			'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl', 
-			'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize', 
-			'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify', 
-			'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode', 
-			'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize', 
-			'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal', 
-			'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept', 
-			'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename', 
-			'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange', 
-			'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet', 
-			'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg', 
-			'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd', 
-			'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit', 
-			'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig', 
-			'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract', 
-			'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add', 
-			'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer', 
-			'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth', 
-			'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir', 
-			'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo', 
-			'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify', 
-			'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept', 
-			'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey', 
-			'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve', 
-			'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify', 
-			'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus', 
-			'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey', 
-			'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC', 
-			'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA', 
-			'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp', 
-			'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj', 
-			'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty', 
-			'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj', 
-			'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce', 
-			'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting', 
-			'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion', 
-			'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord', 
-			'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg', 
-			'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState', 
-			'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq', 
-			'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos', 
-			'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus', 
-			'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton', 
-			'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin', 
-			'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText', 
-			'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate', 
-			'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem', 
-			'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton', 
-			'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll', 
-			'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy'			
+			'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit',
+			'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed',
+			'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert',
+			'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo',
+			'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage',
+			'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled',
+			'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet',
+			'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo',
+			'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart',
+			'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers',
+			'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType',
+			'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet',
+			'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd',
+			'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel',
+			'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel',
+			'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite',
+			'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon',
+			'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive',
+			'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel',
+			'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames',
+			'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon',
+			'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename',
+			'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet',
+			'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet',
+			'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd',
+			'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers',
+			'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType',
+			'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog',
+			'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser',
+			'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode',
+			'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo',
+			'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc',
+			'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion',
+			'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS',
+			'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32',
+			'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg',
+			'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr',
+			'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial',
+			'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode',
+			'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect',
+			'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect',
+			'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile',
+			'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar',
+			'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl',
+			'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList',
+			'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar',
+			'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose',
+			'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText',
+			'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion',
+			'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ',
+			'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList',
+			'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert',
+			'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups',
+			'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam',
+			'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo',
+			'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo',
+			'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo',
+			'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon',
+			'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ',
+			'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions',
+			'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll',
+			'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree',
+			'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext',
+			'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet',
+			'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach',
+			'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet',
+			'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr',
+			'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath',
+			'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet',
+			'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn',
+			'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4',
+			'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode',
+			'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress',
+			'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl',
+			'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize',
+			'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify',
+			'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode',
+			'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize',
+			'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal',
+			'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept',
+			'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename',
+			'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange',
+			'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet',
+			'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg',
+			'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd',
+			'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit',
+			'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig',
+			'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract',
+			'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add',
+			'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer',
+			'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth',
+			'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir',
+			'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo',
+			'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify',
+			'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept',
+			'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey',
+			'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve',
+			'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify',
+			'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus',
+			'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey',
+			'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC',
+			'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA',
+			'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp',
+			'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj',
+			'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty',
+			'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj',
+			'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce',
+			'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting',
+			'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion',
+			'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord',
+			'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg',
+			'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState',
+			'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq',
+			'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos',
+			'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus',
+			'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton',
+			'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin',
+			'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText',
+			'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate',
+			'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem',
+			'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton',
+			'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll',
+			'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy'
 			),
 		5 => array(
-			'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose', 
-			'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns', 
-			'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight', 
-			'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll', 
-			'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight', 
-			'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError', 
-			'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd', 
-			'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate', 
-			'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext', 
-			'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge', 
-			'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile', 
-			'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown', 
-			'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd', 
-			'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine', 
-			'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile', 
-			'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore', 
-			'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons', 
-			'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange', 
-			'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures', 
-			'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName', 
-			'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber', 
-			'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen', 
-			'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo', 
-			'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight', 
-			'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn', 
-			'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete', 
-			'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile', 
+			'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose',
+			'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns',
+			'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight',
+			'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll',
+			'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight',
+			'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError',
+			'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd',
+			'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate',
+			'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext',
+			'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge',
+			'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile',
+			'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown',
+			'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd',
+			'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine',
+			'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile',
+			'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore',
+			'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons',
+			'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange',
+			'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures',
+			'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName',
+			'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber',
+			'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen',
+			'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo',
+			'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight',
+			'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn',
+			'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete',
+			'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile',
 			'edEditBackTab', 'edEditBackspace', 'edDeleteButton', 'edAddButton'
-			)									
+			)
 		),
 	'SYMBOLS' => array(
-		'(', ')', '[', ']', '{', '}', '!', '+', '-', '~', '$', '^', '?', '@', '%', '#', '&', '*', '|', '/', '<', '>'	
+		'(', ')', '[', ']', '{', '}', '!', '+', '-', '~', '$', '^', '?', '@', '%', '#', '&', '*', '|', '/', '<', '>'
 		),
 	'CASE_SENSITIVE' => array(
 		GESHI_COMMENTS => false,
@@ -314,8 +314,8 @@ $language_data = array (
 			2 => 'color: #0080FF; font-weight: bold;',
 			3 => 'color: #0000FF;',
 			4 => 'color: #FF00FF;',
-			5 => 'color: #008000;'					
-			),	
+			5 => 'color: #008000;'
+			),
 		'COMMENTS' => array(
 			1 => 'color: #008000; font-style: italic;',
 			2 => 'color: #FF1010; font-weight: bold;',
@@ -363,5 +363,5 @@ $language_data = array (
 	'HIGHLIGHT_STRICT_BLOCK' => array(
 		)
 );
- 
+
 ?>
diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php
index 869bceff0da748cef868ae6fe83020343090b439..3c38f9c02c980fb6dea7a654ca3a85be38d8954d 100644
--- a/inc/geshi/xml.php
+++ b/inc/geshi/xml.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.7.21
  * Date Started: 2004/09/01
  *
  * XML language file for GeSHi. Based on the idea/file by Christian Weiske
diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php
index 98f4ac4b6cbd4054f24f3096350b5e4a2dd0a699..3bb06b997b76ef20eb4d2f4b1c44a7b20354eb43 100644
--- a/inc/geshi/xpp.php
+++ b/inc/geshi/xpp.php
@@ -4,10 +4,8 @@
  * -------
  * Author: Simon Butcher (simon@butcher.name)
  * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
- * Release Version: 1.0.7.20
- * CVS Revision Version: $Revision: 1.0 $
+ * Release Version: 1.0.7.21
  * Date Started: 2007/02/27
- * Last Modified: $Date: 2007/02/28 00:00:00 $
  *
  * Axapta/Dynamics Ax X++ language file for GeSHi.
  * For details, see <http://msdn.microsoft.com/en-us/library/aa867122.aspx>
diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php
index bfe17e2710889e51e90a114f534bebee8540805d..7feb5cb81f73df471857a38fc3e36ec5c846c8b3 100644
--- a/inc/geshi/z80.php
+++ b/inc/geshi/z80.php
@@ -3,8 +3,8 @@
  * z80.php
  * -------
  * Author: Benny Baumann (BenBE@omorphia.de)
- * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.7.20
+ * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.7.21
  * Date Started: 2007/02/06
  *
  * ZiLOG Z80 Assembler language file for GeSHi.