[Pkg-mozext-commits] [SCM] system tray extension for thunderbird/firefox alike apps branch, dfsg-clean, updated. upstream/dfsg-clean-0.3.1-12-g057315d

Sascha Girrulat sascha at girrulat.de
Wed Feb 8 19:00:27 UTC 2012


The following commit has been merged in the dfsg-clean branch:
commit 4b163cb9abefbfe92fa1a4af62ff4a14feb79360
Author: Sascha Girrulat <sascha at girrulat.de>
Date:   Sat Jan 28 12:49:37 2012 +0100

    Revert "Merge branch 'upstream' into dfsg-clean"
    
    This reverts commit 38e3491cab3d1847e0289f8e925d6190635aad8b, reversing
    changes made to 12c938aef594be657cd425557934e10bc12b7388.

diff --git a/SConstruct b/SConstruct
new file mode 100644
index 0000000..50845fd
--- /dev/null
+++ b/SConstruct
@@ -0,0 +1,40 @@
+import os, zipfile
+
+def zip(target, source, env):
+    f = zipfile.ZipFile(str(target[0]), 'w', zipfile.ZIP_DEFLATED)
+    chdir = None
+    try:
+        chdir = env['ZIPCHDIR'] + os.sep
+    except:
+        pass
+    for s in source:
+        s = str(s)
+        if chdir and s.find(chdir) == 0:
+            arcname = s[len(chdir):]
+        else:
+            arcname = s
+        f.write(s, arcname)
+    f.close()
+zipbld = Builder(action = zip)
+Export('zipbld')
+
+objs = []
+for subdir in ['components', 'chrome']:
+    r = SConscript(['%s/SConscript' % subdir])
+    objs.extend(r)
+
+env = Environment()
+r = env.Install('dist', 'chrome.manifest')
+objs.append(r)
+r = env.Install('dist', 'install.rdf')
+objs.append(r)
+r = env.Install('dist', 'License.txt')
+objs.append(r)
+
+r = env.Install('dist/defaults/preferences', 'defaults/preferences/prefs.js')
+objs.append(r)
+
+zipenv = Environment(BUILDERS = {'Zip' : zipbld}, ZIPCHDIR = 'dist')
+zipenv.Zip('firetray.xpi', objs)
+
+Alias('xpi', 'firetray.xpi')
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..91bc292
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,267 @@
+#!/bin/bash
+
+FIRETRAY_ID="{9533f794-00b4-4354-aa15-c2bbda6989f8}"
+
+
+prepare_options_header_file()
+{
+  echo "******************************"
+  echo " TRAY COMPONENT BUILD OPTIONS"
+  echo "******************************"
+
+  DEST="components/options.h"
+  echo "// OPTIONS.H - dinamically generated by build script " > $DEST
+  echo "#ifndef _OPTIONS_H_" >> $DEST
+  echo "#define _OPTIONS_H_" >> $DEST
+  echo ""  >> $DEST
+
+  if [ -z "$NO_ERROR_MESSAGES" ] 
+  then
+   echo "ERROR MESSAGES: on"
+   echo "#define ENABLE_ERROR_MSG 1       //enable error messages"  >> $DEST
+  else
+   echo "ERROR MESSAGES: off"
+  fi
+
+  if [ -n "$ENABLE_DEBUG" ] 
+  then
+   echo "DEBUG MESSAGES: on"
+   echo "#define DO_DEBUG 1             //enable generic debug messages"  >> $DEST
+  else
+   echo "DEBUG MESSAGES: off"
+
+  fi
+
+  if [ -n "$ENABLE_DEBUG_FILTERS" ] 
+  then
+    echo "DEBUG EVENT FILTERS: on"
+    echo "#define DO_DEBUG_FILTER 1      //enable window events filter debug messages"  >> $DEST
+  else
+    echo "DEBUG EVENT FILTERS: off"
+  fi 
+ 
+  if [ -n "$ENABLE_DEBUG_CALLS" ] 
+  then
+    echo "DEBUG FUNCTION CALLS: on"
+    echo "#define DO_DEBUG_CALLS 1       //enable function calls debug messages"  >> $DEST
+  else
+    echo "DEBUG FUNCTION CALLS: off"
+  fi
+ 
+  echo ""  >> $DEST
+
+  if [ -z "$DISABLE_RESTORE_POSITION" ] 
+  then
+    echo "REMEMBER WINDOWS POSITION: on"
+    echo "#define _REMEMBER_POSITION_"  >> $DEST
+  else
+    echo "REMEMBER WINDOWS POSITION: off"
+  fi
+
+  if [ -n "$DISABLE_UPDATE_MENU_LABELS" ] 
+  then
+    echo "MENU LABELS UPDATE DISABLED"
+  else
+    echo "#define __GTK_SET_LABEL__"  >> $DEST
+  fi
+
+  echo "#define _KEYSYMS_"  >> $DEST
+  echo ""  >> $DEST
+  echo "#endif"  >> $DEST
+}
+
+prepare_source()
+{
+  rm source.zip
+  for f in `find | grep -v "\.svn" | grep -v "~" | grep -v "\.xpi"`
+  do
+    zip source.zip $f
+  done
+}
+
+show_options()
+{
+  echo " "   
+  echo "options:"
+  echo " "   
+  echo "    --official-amo-release    set version number for official AMO release"
+  echo "    --release-name=suffix     set version number for other non testing release"
+  echo ""
+  echo "    --gecko-sdk=folder        Manually specify gecko-sdk path "
+  echo "    --output-dir=folder       Install extension files to the selected folder "
+  echo "    --dynamic-linking         Do not use static linking of libraries "
+  echo " "   
+  echo "    --no-restore-positions    Disable saving window postion"  
+  echo "    --with-old-gtklib         Disable the use of functions introduced in gtk 2.16"
+  echo " "   
+  echo "    --gecko19-compat          Enable Gecko 1.9.x compatability when building"
+  echo "                              with Gecko 2.0"
+  echo " "    
+  echo "    --no-error-messages       Disable error messages"
+  echo "    --enable-debug            Enable general debug messages"
+  echo "    --debug-filters           Enable event filters debugging"
+  echo "    --debug-calls             Enable function calls debugging"
+  echo "    --debug-all               Enable all debugging messages"
+  echo " "   
+  echo "    --source-package          Create a zip file containing the source code"
+  exit
+}
+#SEP="--------------------------------------------------"
+
+
+
+for param in "$@"
+do
+    paramval=`echo $param | sed 's/[-a-zA-Z0-9]*=//'`
+    
+    case $param in
+
+        --source-package)
+          prepare_source
+          exit
+          ;;
+
+        --official-amo-release)
+          export OFFICIAL_AMO_RELEASE="yes"
+          ;;
+
+        --release-name=*)
+          export OTHER_DISTRIBUTION_NAME="$paramval"
+          ;;
+
+        --output-dir=*)
+          OUTPUT_FOLDER="$paramval"
+          ;;
+
+        --gecko-sdk=*)
+          export GECKO_SDK="$paramval"
+          ;;
+
+        --gecko-sdk-bin=*)
+          export GECKO_SDK_BIN="$paramval"
+          ;;
+
+        --gecko-sdk-include=*)
+          export GECKO_SDK_INCLUDE="$paramval"
+          ;;
+
+        --gecko-sdk-idl=*)
+          export GECKO_SDK_IDL="$paramval"
+          ;;
+
+        --gecko-sdk-lib=*)
+          export GECKO_SDK_LIB="$paramval"
+          ;;
+
+        --gecko19-compat)
+          export GECKO_19_COMPAT="on"
+          ;;
+
+        --dynamic-linking)
+          export DYNAMIC_LINKING="dyn"
+          ;;
+
+        --no-error-messages)
+          NO_ERROR_MESSAGES="on"
+          ;;
+
+        --enable-debug)
+          ENABLE_DEBUG="on"
+          ;;
+
+        --debug-filters)
+          ENABLE_DEBUG_FILTERS="on"
+          ;;
+
+        --debug-calls)
+          ENABLE_DEBUG_CALLS="on"
+          ;;
+
+        --debug-all)
+          ENABLE_DEBUG="on"
+          ENABLE_DEBUG_FILTERS="on"
+          ENABLE_DEBUG_CALLS="on"
+          ;;
+
+        --no-restore-positions)
+          DISABLE_RESTORE_POSITION="on"
+          ;;
+
+        --with-old-gtklib)
+          DISABLE_UPDATE_MENU_LABELS="on"
+          ;;
+
+        -h|--help)
+          show_options  
+          ;;
+
+        *)
+          echo
+          echo Unknown option: $param
+          show_options 
+          ;;
+
+    esac
+done
+
+rm -f -r dist
+
+if [ -z "$GECKO_SDK" ] 
+then
+   #echo sdk_not_set
+   export GECKO_SDK=$(pkg-config libxul --variable=sdkdir)
+fi
+
+export LIB_ARCH=_`uname -m`
+
+
+
+
+rm install.rdf
+source ./generate_install_rdf.sh > install.rdf
+
+FILE=firetray.xpi
+DESTFILE=firetray-$EXTENSION_VERSION.xpi
+
+prepare_options_header_file
+
+echo
+echo $SEP
+echo
+
+rm $FILE 2> /dev/null
+scons $FILE
+if [ -e $FILE ] 
+then
+  zip $FILE components/libnptray*.so
+  
+  if [ ! -z "$OUTPUT_FOLDER" ] 
+  then
+     DEST_DIR="$OUTPUT_FOLDER/$FIRETRAY_ID/"
+     mkdir -p $DEST_DIR
+     if [ -d "$DEST_DIR" ]
+     then
+        rm $FILE
+
+        unzip $FILE -d $DEST_DIR
+        
+        if [ $? -eq 0 ] 
+        then 
+          echo ok
+        else
+          exit 1
+        fi
+     else
+        exit 1
+     fi
+  fi
+
+  echo Extension packaged as: $DESTFILE
+  mv $FILE $DESTFILE
+  
+  
+else 
+  echo error compiling $FILE
+  exit 1
+fi
+
diff --git a/changes b/changes
new file mode 100644
index 0000000..2723c6a
--- /dev/null
+++ b/changes
@@ -0,0 +1,78 @@
+0.3.0  Moved Tray handling functions to a new javascript XPCOM component to avoid problems when the first window is closed (see Issue 79)
+       Applied patch for Gecko2 support (Issue 127)
+       Added option to select between "unread" and "new" messages notification (Issue 120)
+       Added option to hide tray icon when not minimized (Issue 92)
+       Added option to disable showing mail count into messages notification icon
+       Dynamic creation of install.rdf 
+       Exclude mails from special folders (Archive, Sent, Templates, Drafts) from message count
+       Added option to disable the use of functions introduced with gtk >= 2.16
+
+0.2.10 Merged "support for chatzilla" from Issue 135 
+       "Select which servers to exclude" feature from Issue 105 
+       Removed references to linux platform from SConscript file (Issue 138) 
+       Applied fix for tb start minimized problem (Issue 122)
+
+0.2.9  Fixed problems with icons transparency (Issue 56)
+       Fixed code to save window position and re-enabled it by default (Issues 33,49)
+       Removed harcoded nspr path from build script (Issue 128)        
+       Added new build options and applied corrections to disable warnings (Issue 114)
+
+0.2.8  Modified sunbird chrome path (Issue 116)
+       Disabled multimedia keys by default (Issue 117)
+       Update Thunderbird, Firefox and Seamonkey versions
+       Fixed uncaught exception when no local folders are found in seamonkey and thunderbird (Issue 115)
+       
+
+0.2.7  Added ability to hide to tray on window minimize (Issue 77)
+       Added command line options to the build script and ability to detect Gecko-sdk folders using pkg-config (Issue 109)
+       Updated some icons
+       Corrected javascript code to follow AMO indications.
+
+0.2.6  Modified linking options to reduce library dependencies (Issue 58)
+
+0.2.5  Fixed bug on 64bit systems (Issues 52,55,61)
+       Temporarily disabled saving windows position (causes Issue 49)
+       Fixed restore problem in thunderbird when "restore to next unread message" is enabled (Issue 53, patch from corossig)
+
+0.2.4  Fixed Seamonkey2 mail count icon
+       Split option windows into separate tabs
+       Added option to exclude spam messages from new mail count
+
+0.2.3  Fixed "new window hides all" (Issue 27)
+       Cleaning interface code
+       Applied fix to the repeated mail count (Issue 43)
+       Begin support for seamonkey 2 alpha (not complete, mail issues)
+       Added scroll support (with songbird volume control)
+       Multimedia keys grabbing support	
+       Fixed songbird "duplicate menu items" issue
+       
+0.2.2  Added menu images from gtk stock
+
+0.2.1  Save windows position (Issue 33) 
+
+0.2.0  Support for custom icons (Issue 17)
+
+
+
+TODO:
+ 
+  - windows position bug when using XRDC 
+  - missing close confirmation request in some situations (issue 44)
+
+  - fix FF3.5+ and TB3+ icon problems with some images
+
+  - close single window menu element (Issue 32)
+   
+  - save windows z-order 
+
+
+WISHES (from wiki)
+
+- Enable the user to close all firefox windows while still keeping firefox in the tray and add a menu item to the tray icon "open new window
+
+- Clicking the tray icon with the middle mouse button fetches new messages (would be best with the icon changing to something else to indicate that the process is in progress).
+
+- Enable the user to close any of firefox windows individually
+
+- Close button only closes to tray when there is only one window up 
+
diff --git a/chrome.manifest b/chrome.manifest
index b422615..dd330a2 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -13,18 +13,20 @@ contract @mozilla.org/FireTrayHandler;1 {f2f05844-d398-11df-9885-7d29dfd72085}
 interfaces components/nsIFireTrayHandler.xpt
 interfaces components/nsITray.xpt
 
+binary-component components/libnptray_i686.so  ABI=Linux_x86-gcc3 
+binary-component components/libnptray_x86_64.so ABI=Linux_x86_64-gcc3 
 
-binary-component components/libnptray_gecko7_i686.so  ABI=Linux_x86-gcc3 
-binary-component components/libnptray_gecko7_x86_64.so ABI=Linux_x86_64-gcc3 
-
-binary-component components/libnptray_gecko8_i686.so  ABI=Linux_x86-gcc3 
-binary-component components/libnptray_gecko8_x86_64.so ABI=Linux_x86_64-gcc3 
+binary-component components/libnptray_gecko2_i686.so  ABI=Linux_x86-gcc3 
+binary-component components/libnptray_gecko2_x86_64.so ABI=Linux_x86_64-gcc3 
 
+binary-component components/libnptray_gecko5_i686.so  ABI=Linux_x86-gcc3 
+binary-component components/libnptray_gecko5_x86_64.so ABI=Linux_x86_64-gcc3 
 
 locale  firetray    en-US   jar:chrome/firetray.jar!/locale/en-US/
 locale  firetray    it-IT   jar:chrome/firetray.jar!/locale/it-IT/
 locale  firetray    bg-BG   jar:chrome/firetray.jar!/locale/bg-BG/
 locale  firetray    ca-AD   jar:chrome/firetray.jar!/locale/ca-AD/
+locale  firetray    cs-CZ   jar:chrome/firetray.jar!/locale/cs-CZ/
 locale  firetray    de-DE   jar:chrome/firetray.jar!/locale/de-DE/
 locale  firetray    es-AR   jar:chrome/firetray.jar!/locale/es-AR/
 locale  firetray    es-ES   jar:chrome/firetray.jar!/locale/es-ES/
diff --git a/chrome/SConscript b/chrome/SConscript
new file mode 100644
index 0000000..68ced8e
--- /dev/null
+++ b/chrome/SConscript
@@ -0,0 +1,21 @@
+import os
+
+Import('zipbld')
+
+contents = []
+content = 'core.js browserOverlay.xul mailOverlay.xul songOverlay.xul navigatorOverlay.xul options.xul options.js icon.png'
+for c in content.split(' '):
+    contents.append('content' + os.sep + c)
+
+locales = 'bg-BG ca-AD de-DE en-US es-AR es-ES fa-IR fr-FR it-IT ja-JP mk-MK nl-NL pl-PL pt-BR ru-RU sk-SK sl-SI sv-SE tr-TR uk-UA zh-CN zh-TW'        
+
+locale_files = 'browserOverlay.dtd core.properties mailOverlay.dtd options.dtd'
+ 
+for l in locales.split(' '):
+   for f in locale_files.split(' '): 
+      contents.append('locale' + os.sep + l + os.sep + f)
+
+env = Environment(ZIPCHDIR= 'chrome', BUILDERS = {'Zip' : zipbld})
+r = env.Zip('#dist/chrome/firetray.jar', contents)
+
+Return('r')
diff --git a/chrome/firetray.jar!/content/browserOverlay.xul b/chrome/content/browserOverlay.xul
similarity index 100%
rename from chrome/firetray.jar!/content/browserOverlay.xul
rename to chrome/content/browserOverlay.xul
diff --git a/chrome/firetray.jar!/content/core.js b/chrome/content/core.js
similarity index 100%
rename from chrome/firetray.jar!/content/core.js
rename to chrome/content/core.js
diff --git a/chrome/firetray.jar!/content/icon.png b/chrome/content/icon.png
similarity index 100%
rename from chrome/firetray.jar!/content/icon.png
rename to chrome/content/icon.png
diff --git a/chrome/content/ircOverlay.xul b/chrome/content/ircOverlay.xul
new file mode 100644
index 0000000..be6b279
--- /dev/null
+++ b/chrome/content/ircOverlay.xul
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE overlay SYSTEM "chrome://firetray/locale/browserOverlay.dtd" >
+<overlay id="firetrayBrowserOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+    <script type="application/x-javascript" src="core.js" />
+    <menupopup id="menu_ChatZillaPopup">
+        <menuitem label="&firetray.close_to_tray;" id="menu_hideTray" oncommand="FireTray.hideToTray()" />
+        <menuseparator />
+    </menupopup>
+    <menupopup id="menu_ViewPopup">
+        <menuitem label="&firetray.hide;" id="menu_hide" accesskey="&firetray.hide.accesskey;" oncommand="FireTray.hideWindow()" />
+        <menuseparator />
+    </menupopup>
+</overlay>
\ No newline at end of file
diff --git a/chrome/firetray.jar!/content/mailOverlay.xul b/chrome/content/mailOverlay.xul
similarity index 100%
rename from chrome/firetray.jar!/content/mailOverlay.xul
rename to chrome/content/mailOverlay.xul
diff --git a/chrome/firetray.jar!/content/navigatorOverlay.xul b/chrome/content/navigatorOverlay.xul
similarity index 100%
rename from chrome/firetray.jar!/content/navigatorOverlay.xul
rename to chrome/content/navigatorOverlay.xul
diff --git a/chrome/firetray.jar!/content/options.js b/chrome/content/options.js
similarity index 100%
rename from chrome/firetray.jar!/content/options.js
rename to chrome/content/options.js
diff --git a/chrome/firetray.jar!/content/options.xul b/chrome/content/options.xul
similarity index 100%
rename from chrome/firetray.jar!/content/options.xul
rename to chrome/content/options.xul
diff --git a/chrome/firetray.jar!/content/songOverlay.xul b/chrome/content/songOverlay.xul
similarity index 100%
rename from chrome/firetray.jar!/content/songOverlay.xul
rename to chrome/content/songOverlay.xul
diff --git a/chrome/firetray.jar!/locale/bg-BG/browserOverlay.dtd b/chrome/locale/bg-BG/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/bg-BG/browserOverlay.dtd
rename to chrome/locale/bg-BG/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/bg-BG/core.properties b/chrome/locale/bg-BG/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/bg-BG/core.properties
rename to chrome/locale/bg-BG/core.properties
diff --git a/chrome/firetray.jar!/locale/bg-BG/mailOverlay.dtd b/chrome/locale/bg-BG/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/bg-BG/mailOverlay.dtd
rename to chrome/locale/bg-BG/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/bg-BG/options.dtd b/chrome/locale/bg-BG/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/bg-BG/options.dtd
rename to chrome/locale/bg-BG/options.dtd
diff --git a/chrome/firetray.jar!/locale/ca-AD/browserOverlay.dtd b/chrome/locale/ca-AD/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ca-AD/browserOverlay.dtd
rename to chrome/locale/ca-AD/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ca-AD/core.properties b/chrome/locale/ca-AD/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/ca-AD/core.properties
rename to chrome/locale/ca-AD/core.properties
diff --git a/chrome/firetray.jar!/locale/ca-AD/mailOverlay.dtd b/chrome/locale/ca-AD/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ca-AD/mailOverlay.dtd
rename to chrome/locale/ca-AD/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ca-AD/options.dtd b/chrome/locale/ca-AD/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ca-AD/options.dtd
rename to chrome/locale/ca-AD/options.dtd
diff --git a/chrome/firetray.jar!/locale/de-DE/browserOverlay.dtd b/chrome/locale/de-DE/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/de-DE/browserOverlay.dtd
rename to chrome/locale/de-DE/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/de-DE/core.properties b/chrome/locale/de-DE/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/de-DE/core.properties
rename to chrome/locale/de-DE/core.properties
diff --git a/chrome/firetray.jar!/locale/de-DE/mailOverlay.dtd b/chrome/locale/de-DE/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/de-DE/mailOverlay.dtd
rename to chrome/locale/de-DE/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/de-DE/options.dtd b/chrome/locale/de-DE/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/de-DE/options.dtd
rename to chrome/locale/de-DE/options.dtd
diff --git a/chrome/firetray.jar!/locale/en-US/browserOverlay.dtd b/chrome/locale/en-US/browserOverlay.dtd
similarity index 100%
copy from chrome/firetray.jar!/locale/en-US/browserOverlay.dtd
copy to chrome/locale/en-US/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/en-US/core.properties b/chrome/locale/en-US/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/en-US/core.properties
rename to chrome/locale/en-US/core.properties
diff --git a/chrome/firetray.jar!/locale/en-US/mailOverlay.dtd b/chrome/locale/en-US/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/en-US/mailOverlay.dtd
rename to chrome/locale/en-US/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/en-US/options.dtd b/chrome/locale/en-US/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/en-US/options.dtd
rename to chrome/locale/en-US/options.dtd
diff --git a/chrome/firetray.jar!/locale/en-US/browserOverlay.dtd b/chrome/locale/en-US/songOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/en-US/browserOverlay.dtd
rename to chrome/locale/en-US/songOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/es-AR/browserOverlay.dtd b/chrome/locale/es-AR/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-AR/browserOverlay.dtd
rename to chrome/locale/es-AR/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/es-AR/core.properties b/chrome/locale/es-AR/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/es-AR/core.properties
rename to chrome/locale/es-AR/core.properties
diff --git a/chrome/firetray.jar!/locale/es-AR/mailOverlay.dtd b/chrome/locale/es-AR/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-AR/mailOverlay.dtd
rename to chrome/locale/es-AR/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/es-AR/options.dtd b/chrome/locale/es-AR/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-AR/options.dtd
rename to chrome/locale/es-AR/options.dtd
diff --git a/chrome/firetray.jar!/locale/es-ES/browserOverlay.dtd b/chrome/locale/es-ES/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-ES/browserOverlay.dtd
rename to chrome/locale/es-ES/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/es-ES/core.properties b/chrome/locale/es-ES/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/es-ES/core.properties
rename to chrome/locale/es-ES/core.properties
diff --git a/chrome/firetray.jar!/locale/es-ES/mailOverlay.dtd b/chrome/locale/es-ES/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-ES/mailOverlay.dtd
rename to chrome/locale/es-ES/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/es-ES/options.dtd b/chrome/locale/es-ES/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/es-ES/options.dtd
rename to chrome/locale/es-ES/options.dtd
diff --git a/chrome/firetray.jar!/locale/fa-IR/browserOverlay.dtd b/chrome/locale/fa-IR/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fa-IR/browserOverlay.dtd
rename to chrome/locale/fa-IR/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/fa-IR/core.properties b/chrome/locale/fa-IR/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/fa-IR/core.properties
rename to chrome/locale/fa-IR/core.properties
diff --git a/chrome/firetray.jar!/locale/fa-IR/mailOverlay.dtd b/chrome/locale/fa-IR/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fa-IR/mailOverlay.dtd
rename to chrome/locale/fa-IR/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/fa-IR/options.dtd b/chrome/locale/fa-IR/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fa-IR/options.dtd
rename to chrome/locale/fa-IR/options.dtd
diff --git a/chrome/firetray.jar!/locale/fr-FR/browserOverlay.dtd b/chrome/locale/fr-FR/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fr-FR/browserOverlay.dtd
rename to chrome/locale/fr-FR/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/fr-FR/core.properties b/chrome/locale/fr-FR/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/fr-FR/core.properties
rename to chrome/locale/fr-FR/core.properties
diff --git a/chrome/firetray.jar!/locale/fr-FR/mailOverlay.dtd b/chrome/locale/fr-FR/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fr-FR/mailOverlay.dtd
rename to chrome/locale/fr-FR/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/fr-FR/options.dtd b/chrome/locale/fr-FR/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/fr-FR/options.dtd
rename to chrome/locale/fr-FR/options.dtd
diff --git a/chrome/firetray.jar!/locale/it-IT/browserOverlay.dtd b/chrome/locale/it-IT/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/it-IT/browserOverlay.dtd
rename to chrome/locale/it-IT/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/it-IT/core.properties b/chrome/locale/it-IT/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/it-IT/core.properties
rename to chrome/locale/it-IT/core.properties
diff --git a/chrome/firetray.jar!/locale/it-IT/mailOverlay.dtd b/chrome/locale/it-IT/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/it-IT/mailOverlay.dtd
rename to chrome/locale/it-IT/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/it-IT/options.dtd b/chrome/locale/it-IT/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/it-IT/options.dtd
rename to chrome/locale/it-IT/options.dtd
diff --git a/chrome/firetray.jar!/locale/ja-JP/browserOverlay.dtd b/chrome/locale/ja-JP/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ja-JP/browserOverlay.dtd
rename to chrome/locale/ja-JP/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ja-JP/core.properties b/chrome/locale/ja-JP/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/ja-JP/core.properties
rename to chrome/locale/ja-JP/core.properties
diff --git a/chrome/firetray.jar!/locale/ja-JP/mailOverlay.dtd b/chrome/locale/ja-JP/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ja-JP/mailOverlay.dtd
rename to chrome/locale/ja-JP/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ja-JP/options.dtd b/chrome/locale/ja-JP/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ja-JP/options.dtd
rename to chrome/locale/ja-JP/options.dtd
diff --git a/chrome/firetray.jar!/locale/mk-MK/browserOverlay.dtd b/chrome/locale/mk-MK/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/mk-MK/browserOverlay.dtd
rename to chrome/locale/mk-MK/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/mk-MK/core.properties b/chrome/locale/mk-MK/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/mk-MK/core.properties
rename to chrome/locale/mk-MK/core.properties
diff --git a/chrome/firetray.jar!/locale/mk-MK/mailOverlay.dtd b/chrome/locale/mk-MK/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/mk-MK/mailOverlay.dtd
rename to chrome/locale/mk-MK/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/mk-MK/options.dtd b/chrome/locale/mk-MK/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/mk-MK/options.dtd
rename to chrome/locale/mk-MK/options.dtd
diff --git a/chrome/firetray.jar!/locale/nl-NL/browserOverlay.dtd b/chrome/locale/nl-NL/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/nl-NL/browserOverlay.dtd
rename to chrome/locale/nl-NL/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/nl-NL/core.properties b/chrome/locale/nl-NL/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/nl-NL/core.properties
rename to chrome/locale/nl-NL/core.properties
diff --git a/chrome/firetray.jar!/locale/nl-NL/mailOverlay.dtd b/chrome/locale/nl-NL/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/nl-NL/mailOverlay.dtd
rename to chrome/locale/nl-NL/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/nl-NL/options.dtd b/chrome/locale/nl-NL/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/nl-NL/options.dtd
rename to chrome/locale/nl-NL/options.dtd
diff --git a/chrome/firetray.jar!/locale/pl-PL/browserOverlay.dtd b/chrome/locale/pl-PL/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pl-PL/browserOverlay.dtd
rename to chrome/locale/pl-PL/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/pl-PL/core.properties b/chrome/locale/pl-PL/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/pl-PL/core.properties
rename to chrome/locale/pl-PL/core.properties
diff --git a/chrome/firetray.jar!/locale/pl-PL/mailOverlay.dtd b/chrome/locale/pl-PL/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pl-PL/mailOverlay.dtd
rename to chrome/locale/pl-PL/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/pl-PL/options.dtd b/chrome/locale/pl-PL/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pl-PL/options.dtd
rename to chrome/locale/pl-PL/options.dtd
diff --git a/chrome/firetray.jar!/locale/pt-BR/browserOverlay.dtd b/chrome/locale/pt-BR/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pt-BR/browserOverlay.dtd
rename to chrome/locale/pt-BR/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/pt-BR/core.properties b/chrome/locale/pt-BR/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/pt-BR/core.properties
rename to chrome/locale/pt-BR/core.properties
diff --git a/chrome/firetray.jar!/locale/pt-BR/mailOverlay.dtd b/chrome/locale/pt-BR/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pt-BR/mailOverlay.dtd
rename to chrome/locale/pt-BR/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/pt-BR/options.dtd b/chrome/locale/pt-BR/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/pt-BR/options.dtd
rename to chrome/locale/pt-BR/options.dtd
diff --git a/chrome/firetray.jar!/locale/ru-RU/browserOverlay.dtd b/chrome/locale/ru-RU/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ru-RU/browserOverlay.dtd
rename to chrome/locale/ru-RU/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ru-RU/core.properties b/chrome/locale/ru-RU/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/ru-RU/core.properties
rename to chrome/locale/ru-RU/core.properties
diff --git a/chrome/firetray.jar!/locale/ru-RU/mailOverlay.dtd b/chrome/locale/ru-RU/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ru-RU/mailOverlay.dtd
rename to chrome/locale/ru-RU/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/ru-RU/options.dtd b/chrome/locale/ru-RU/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/ru-RU/options.dtd
rename to chrome/locale/ru-RU/options.dtd
diff --git a/chrome/firetray.jar!/locale/sk-SK/browserOverlay.dtd b/chrome/locale/sk-SK/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sk-SK/browserOverlay.dtd
rename to chrome/locale/sk-SK/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sk-SK/core.properties b/chrome/locale/sk-SK/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/sk-SK/core.properties
rename to chrome/locale/sk-SK/core.properties
diff --git a/chrome/firetray.jar!/locale/sk-SK/mailOverlay.dtd b/chrome/locale/sk-SK/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sk-SK/mailOverlay.dtd
rename to chrome/locale/sk-SK/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sk-SK/options.dtd b/chrome/locale/sk-SK/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sk-SK/options.dtd
rename to chrome/locale/sk-SK/options.dtd
diff --git a/chrome/firetray.jar!/locale/sl-SI/browserOverlay.dtd b/chrome/locale/sl-SI/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sl-SI/browserOverlay.dtd
rename to chrome/locale/sl-SI/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sl-SI/core.properties b/chrome/locale/sl-SI/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/sl-SI/core.properties
rename to chrome/locale/sl-SI/core.properties
diff --git a/chrome/firetray.jar!/locale/sl-SI/mailOverlay.dtd b/chrome/locale/sl-SI/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sl-SI/mailOverlay.dtd
rename to chrome/locale/sl-SI/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sl-SI/options.dtd b/chrome/locale/sl-SI/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sl-SI/options.dtd
rename to chrome/locale/sl-SI/options.dtd
diff --git a/chrome/firetray.jar!/locale/sv-SE/browserOverlay.dtd b/chrome/locale/sv-SE/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sv-SE/browserOverlay.dtd
rename to chrome/locale/sv-SE/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sv-SE/core.properties b/chrome/locale/sv-SE/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/sv-SE/core.properties
rename to chrome/locale/sv-SE/core.properties
diff --git a/chrome/firetray.jar!/locale/sv-SE/mailOverlay.dtd b/chrome/locale/sv-SE/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sv-SE/mailOverlay.dtd
rename to chrome/locale/sv-SE/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/sv-SE/options.dtd b/chrome/locale/sv-SE/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/sv-SE/options.dtd
rename to chrome/locale/sv-SE/options.dtd
diff --git a/chrome/firetray.jar!/locale/tr-TR/browserOverlay.dtd b/chrome/locale/tr-TR/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/tr-TR/browserOverlay.dtd
rename to chrome/locale/tr-TR/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/tr-TR/core.properties b/chrome/locale/tr-TR/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/tr-TR/core.properties
rename to chrome/locale/tr-TR/core.properties
diff --git a/chrome/firetray.jar!/locale/tr-TR/mailOverlay.dtd b/chrome/locale/tr-TR/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/tr-TR/mailOverlay.dtd
rename to chrome/locale/tr-TR/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/tr-TR/options.dtd b/chrome/locale/tr-TR/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/tr-TR/options.dtd
rename to chrome/locale/tr-TR/options.dtd
diff --git a/chrome/firetray.jar!/locale/uk-UA/browserOverlay.dtd b/chrome/locale/uk-UA/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/uk-UA/browserOverlay.dtd
rename to chrome/locale/uk-UA/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/uk-UA/core.properties b/chrome/locale/uk-UA/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/uk-UA/core.properties
rename to chrome/locale/uk-UA/core.properties
diff --git a/chrome/firetray.jar!/locale/uk-UA/mailOverlay.dtd b/chrome/locale/uk-UA/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/uk-UA/mailOverlay.dtd
rename to chrome/locale/uk-UA/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/uk-UA/options.dtd b/chrome/locale/uk-UA/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/uk-UA/options.dtd
rename to chrome/locale/uk-UA/options.dtd
diff --git a/chrome/firetray.jar!/locale/zh-CN/browserOverlay.dtd b/chrome/locale/zh-CN/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-CN/browserOverlay.dtd
rename to chrome/locale/zh-CN/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/zh-CN/core.properties b/chrome/locale/zh-CN/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-CN/core.properties
rename to chrome/locale/zh-CN/core.properties
diff --git a/chrome/firetray.jar!/locale/zh-CN/mailOverlay.dtd b/chrome/locale/zh-CN/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-CN/mailOverlay.dtd
rename to chrome/locale/zh-CN/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/zh-CN/options.dtd b/chrome/locale/zh-CN/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-CN/options.dtd
rename to chrome/locale/zh-CN/options.dtd
diff --git a/chrome/firetray.jar!/locale/zh-TW/browserOverlay.dtd b/chrome/locale/zh-TW/browserOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-TW/browserOverlay.dtd
rename to chrome/locale/zh-TW/browserOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/zh-TW/core.properties b/chrome/locale/zh-TW/core.properties
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-TW/core.properties
rename to chrome/locale/zh-TW/core.properties
diff --git a/chrome/firetray.jar!/locale/zh-TW/mailOverlay.dtd b/chrome/locale/zh-TW/mailOverlay.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-TW/mailOverlay.dtd
rename to chrome/locale/zh-TW/mailOverlay.dtd
diff --git a/chrome/firetray.jar!/locale/zh-TW/options.dtd b/chrome/locale/zh-TW/options.dtd
similarity index 100%
rename from chrome/firetray.jar!/locale/zh-TW/options.dtd
rename to chrome/locale/zh-TW/options.dtd
diff --git a/components/SConscript b/components/SConscript
new file mode 100644
index 0000000..f10b0f9
--- /dev/null
+++ b/components/SConscript
@@ -0,0 +1,107 @@
+import sys, os, string, re
+
+platform = sys.platform
+
+
+try:
+    FLAGS = os.environ['CXXFLAGS'];
+except:
+    FLAGS = '-O2';
+
+linking_options=' --libs ';
+try:
+    DYNAMIC_LINKING = os.environ['DYNAMIC_LINKING'];
+except:
+    linking_options=' --static '  
+
+print "linking: " + linking_options
+
+FLAGS += ' -include xpcom-config.h -include mozilla-config.h'
+FLAGS += ' -fno-rtti -fno-exceptions -fshort-wchar'
+FLAGS += ' -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long'
+FLAGS += ' -pedantic -pthread -pipe'
+
+try:
+    lib_arch = os.environ['LIB_ARCH'];
+except:
+    lib_arch = '';
+
+
+try: 
+    gecko_bin = os.environ['GECKO_SDK_BIN'];
+    if gecko_bin[-1] != os.sep: gecko_bin += os.sep
+
+    gecko_include = os.environ['GECKO_SDK_INCLUDE'];
+    if gecko_include[-1] != os.sep: gecko_include += os.sep
+
+    gecko_idl = os.environ['GECKO_SDK_IDL'];
+    if gecko_idl[-1] != os.sep: gecko_idl += os.sep
+
+    gecko_lib = os.environ['GECKO_SDK_LIB'];
+    if gecko_lib[-1] != os.sep: gecko_lib += os.sep
+
+except:
+    try:
+        geckosdk = os.environ['GECKO_SDK']
+        print "Using GECKO_SDK=" + geckosdk
+        if geckosdk[-1] != os.sep: geckosdk += os.sep
+        gecko_bin = geckosdk + 'bin'
+        gecko_include = geckosdk + 'include'
+        gecko_idl = geckosdk + 'idl'
+        gecko_lib = geckosdk + 'lib'
+
+    except:
+        print "Please set environment variable GECKO_SDK first (or in alternative the variables GECKO_SDK_BIN, GECKO_SDK_INCLUDE, GECKO_SDK_IDL, GECKO_SDK_LIB)."
+        sys.exit(1)
+
+# Hack to detect Mozilla version
+version_re = re.compile('#define MOZILLA_VERSION "(.*?)"')
+xpcom_libs = ['xpcomglue_s']
+with open(gecko_include + os.sep + 'mozilla-config.h', 'r') as f:
+    for line in f:
+        version_match = version_re.match(line)
+        if version_match:
+            version = string.split(version_match.group(1), '.')
+            if int(version[0]) >= 2:
+                # OK, we're building with Mozilla 2.0
+                FLAGS += ' -DGECKO_2'
+                if 'GECKO_19_COMPAT' in os.environ:
+                    FLAGS += ' -DMOZ_NO_MOZALLOC'
+                    xpcom_libs = ['xpcomglue_s_nomozalloc']
+                else:
+                    xpcom_libs.append('mozalloc')
+            break
+
+# Create two builders to create xpt and header files from idl.
+bxpt = Builder(action = 'xpidl -w -m typelib -Icomponents -I' + gecko_idl + ' -e $TARGET $SOURCE', suffix = '.xpt', src_suffix = '.idl')
+bhdr = Builder(action = 'xpidl -w -m header -Icomponents -I' + gecko_idl + ' -e $TARGET $SOURCE', suffix = '.h', src_suffix = '.idl')
+
+# Create environment object for build
+env = Environment(
+    CPPPATH = [gecko_include],
+    LIBPATH = [gecko_lib],
+    LIBS = xpcom_libs,
+    ENV = os.environ)
+env.AppendENVPath('PATH', gecko_bin)
+env.Append(BUILDERS = {'MozXPT' : bxpt, 'MozHeader' : bhdr })
+
+env.ParseConfig('pkg-config ' + linking_options + ' --cflags gtk+-2.0') # libnotify
+env.ParseConfig('pkg-config --cflags nspr')
+env.Append( CXXFLAGS = FLAGS )
+
+# Create headers and xpt files from idl
+xpts = [env.MozXPT('nsITray'), env.MozXPT('nsIFireTrayHandler')]
+headers = [env.MozHeader('nsITray')]
+
+parts = []
+parts.extend(['nsTray.cpp', 'nsTrayModule.cpp'])
+
+nptray_name = 'nptray' + lib_arch
+print "NPTRAY: " + nptray_name
+
+nptray = env.SharedLibrary(nptray_name, parts)
+
+r = env.Install('#dist/components', [nptray, xpts, 'nsFireTrayHandler.js']) 
+
+Default([xpts, headers, nptray])
+Return('r')
diff --git a/components/debug.h b/components/debug.h
new file mode 100644
index 0000000..6d4cdf6
--- /dev/null
+++ b/components/debug.h
@@ -0,0 +1,39 @@
+#ifndef _DEBUG_H_
+#define _DEBUG_H_
+
+    #include <iostream>
+    using namespace std;
+    
+    #define _SEPARATOR_ " ********************************************************************* "
+
+    #ifdef ENABLE_ERROR_MSG
+    #define ERRORMSG(str) {cerr << str << endl; cerr.flush();}
+    #else
+    #define ERRORMSG(str) {}
+    #endif
+
+    #ifdef DO_DEBUG
+    #define DEBUGSTR(str) {cerr << str << endl; cerr.flush();}
+    #else
+    #define DEBUGSTR(str) {}
+    #endif
+
+
+    #ifdef DO_DEBUG_FILTER
+    #define FDEBUGSTR(str) {cerr << str << endl; cerr.flush();}
+    #else
+    #define FDEBUGSTR(str) {}
+    #endif
+
+
+    #ifdef DO_DEBUG_CALLS
+    #define DEBUG_CALL(str) {cerr << str << endl; cerr.flush();}
+    #else
+    #define DEBUG_CALL(str) {}
+    #endif
+
+    #define CAPTURE_ERRORS()  gdk_error_trap_push ();
+    #define RELEASE_CAPTURE(msg)       { gdk_flush (); if (gdk_error_trap_pop ()) ERRORMSG(msg); }
+    #define RELEASE_CAPTURE_RETURN(msg,val)       { gdk_flush (); if (gdk_error_trap_pop ()) { ERRORMSG(msg); return val; } }      
+
+#endif
diff --git a/components/keysyms.h b/components/keysyms.h
new file mode 100644
index 0000000..856543d
--- /dev/null
+++ b/components/keysyms.h
@@ -0,0 +1,171 @@
+#ifndef KEYSYM_TOOLS
+#define KEYSYM_TOOLS
+
+#include <X11/XF86keysym.h>
+
+#include "debug.h"
+
+#define GET_KEYSIM_FROM_STRING(key,retkey) { if(!strcmp(string,key)) return retkey; }
+
+KeySym getKeySymFromString(const char *string)
+{
+        DEBUGSTR("gKSFS ["<<string<<"]");
+        
+	GET_KEYSIM_FROM_STRING("XF86MonBrightnessUp",XF86XK_MonBrightnessUp)     
+	GET_KEYSIM_FROM_STRING("XF86MonBrightnessDown",XF86XK_MonBrightnessDown)   
+	GET_KEYSIM_FROM_STRING("XF86KbdLightOnOff",XF86XK_KbdLightOnOff)       
+	GET_KEYSIM_FROM_STRING("XF86KbdBrightnessUp",XF86XK_KbdBrightnessUp)     
+	GET_KEYSIM_FROM_STRING("XF86KbdBrightnessDown",XF86XK_KbdBrightnessDown)   
+	GET_KEYSIM_FROM_STRING("XF86Standby",XF86XK_Standby)		   
+	GET_KEYSIM_FROM_STRING("XF86AudioLowerVolume",XF86XK_AudioLowerVolume)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioMute",XF86XK_AudioMute)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioRaiseVolume",XF86XK_AudioRaiseVolume)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioPlay",XF86XK_AudioPlay)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioStop",XF86XK_AudioStop)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioPrev",XF86XK_AudioPrev)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioNext",XF86XK_AudioNext)	   
+	GET_KEYSIM_FROM_STRING("XF86HomePage",XF86XK_HomePage)		   
+	GET_KEYSIM_FROM_STRING("XF86Mail",XF86XK_Mail)		   
+	GET_KEYSIM_FROM_STRING("XF86Start",XF86XK_Start)		   
+	GET_KEYSIM_FROM_STRING("XF86Search",XF86XK_Search)		   
+	GET_KEYSIM_FROM_STRING("XF86AudioRecord",XF86XK_AudioRecord)	   
+	GET_KEYSIM_FROM_STRING("XF86Calculator",XF86XK_Calculator)	   
+	GET_KEYSIM_FROM_STRING("XF86Memo",XF86XK_Memo)		   
+	GET_KEYSIM_FROM_STRING("XF86ToDoList",XF86XK_ToDoList)		   
+	GET_KEYSIM_FROM_STRING("XF86Calendar",XF86XK_Calendar)		   
+	GET_KEYSIM_FROM_STRING("XF86PowerDown",XF86XK_PowerDown)	   
+	GET_KEYSIM_FROM_STRING("XF86ContrastAdjust",XF86XK_ContrastAdjust)	   
+	GET_KEYSIM_FROM_STRING("XF86RockerUp",XF86XK_RockerUp)		   
+	GET_KEYSIM_FROM_STRING("XF86RockerDown",XF86XK_RockerDown)	   
+	GET_KEYSIM_FROM_STRING("XF86RockerEnter",XF86XK_RockerEnter)	   
+	GET_KEYSIM_FROM_STRING("XF86Back",XF86XK_Back)		   
+	GET_KEYSIM_FROM_STRING("XF86Forward",XF86XK_Forward)		   
+	GET_KEYSIM_FROM_STRING("XF86Stop",XF86XK_Stop)		   
+	GET_KEYSIM_FROM_STRING("XF86Refresh",XF86XK_Refresh)		   
+	GET_KEYSIM_FROM_STRING("XF86PowerOff",XF86XK_PowerOff)		   
+	GET_KEYSIM_FROM_STRING("XF86WakeUp",XF86XK_WakeUp)		   
+	GET_KEYSIM_FROM_STRING("XF86Eject",XF86XK_Eject)               
+	GET_KEYSIM_FROM_STRING("XF86ScreenSaver",XF86XK_ScreenSaver)         
+	GET_KEYSIM_FROM_STRING("XF86WWW",XF86XK_WWW)                 
+	GET_KEYSIM_FROM_STRING("XF86Sleep",XF86XK_Sleep)               
+	GET_KEYSIM_FROM_STRING("XF86Favorites",XF86XK_Favorites)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioPause",XF86XK_AudioPause)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioMedia",XF86XK_AudioMedia)	   
+	GET_KEYSIM_FROM_STRING("XF86MyComputer",XF86XK_MyComputer)	   
+	GET_KEYSIM_FROM_STRING("XF86VendorHome",XF86XK_VendorHome)	   
+	GET_KEYSIM_FROM_STRING("XF86LightBulb",XF86XK_LightBulb)	   
+	GET_KEYSIM_FROM_STRING("XF86Shop",XF86XK_Shop)		   
+	GET_KEYSIM_FROM_STRING("XF86History",XF86XK_History)		   
+	GET_KEYSIM_FROM_STRING("XF86OpenURL",XF86XK_OpenURL)		   
+	GET_KEYSIM_FROM_STRING("XF86AddFavorite",XF86XK_AddFavorite)	   
+	GET_KEYSIM_FROM_STRING("XF86HotLinks",XF86XK_HotLinks)		   
+	GET_KEYSIM_FROM_STRING("XF86BrightnessAdjust",XF86XK_BrightnessAdjust)	   
+	GET_KEYSIM_FROM_STRING("XF86Finance",XF86XK_Finance)		   
+	GET_KEYSIM_FROM_STRING("XF86Community",XF86XK_Community)	   
+	GET_KEYSIM_FROM_STRING("XF86AudioRewind",XF86XK_AudioRewind)	   
+#ifdef XF86XK_XF86BackForward
+	GET_KEYSIM_FROM_STRING("XF86XF86BackForward",XF86XK_XF86BackForward)	   
+#endif
+	GET_KEYSIM_FROM_STRING("XF86Launch0",XF86XK_Launch0)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch1",XF86XK_Launch1)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch2",XF86XK_Launch2)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch3",XF86XK_Launch3)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch4",XF86XK_Launch4)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch5",XF86XK_Launch5)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch6",XF86XK_Launch6)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch7",XF86XK_Launch7)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch8",XF86XK_Launch8)		   
+	GET_KEYSIM_FROM_STRING("XF86Launch9",XF86XK_Launch9)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchA",XF86XK_LaunchA)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchB",XF86XK_LaunchB)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchC",XF86XK_LaunchC)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchD",XF86XK_LaunchD)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchE",XF86XK_LaunchE)		   
+	GET_KEYSIM_FROM_STRING("XF86LaunchF",XF86XK_LaunchF)		   
+	GET_KEYSIM_FROM_STRING("XF86ApplicationLeft",XF86XK_ApplicationLeft)	   
+	GET_KEYSIM_FROM_STRING("XF86ApplicationRight",XF86XK_ApplicationRight)	   
+	GET_KEYSIM_FROM_STRING("XF86Book",XF86XK_Book)		   
+	GET_KEYSIM_FROM_STRING("XF86CD",XF86XK_CD)		   
+	GET_KEYSIM_FROM_STRING("XF86Calculater",XF86XK_Calculater)	   
+	GET_KEYSIM_FROM_STRING("XF86Clear",XF86XK_Clear)		   
+	GET_KEYSIM_FROM_STRING("XF86Close",XF86XK_Close)		   
+	GET_KEYSIM_FROM_STRING("XF86Copy",XF86XK_Copy)		   
+	GET_KEYSIM_FROM_STRING("XF86Cut",XF86XK_Cut)		   
+	GET_KEYSIM_FROM_STRING("XF86Display",XF86XK_Display)		   
+	GET_KEYSIM_FROM_STRING("XF86DOS",XF86XK_DOS)		   
+	GET_KEYSIM_FROM_STRING("XF86Documents",XF86XK_Documents)	   
+	GET_KEYSIM_FROM_STRING("XF86Excel",XF86XK_Excel)		   
+	GET_KEYSIM_FROM_STRING("XF86Explorer",XF86XK_Explorer)		   
+	GET_KEYSIM_FROM_STRING("XF86Game",XF86XK_Game)		   
+	GET_KEYSIM_FROM_STRING("XF86Go",XF86XK_Go)		   
+	GET_KEYSIM_FROM_STRING("XF86iTouch",XF86XK_iTouch)		   
+	GET_KEYSIM_FROM_STRING("XF86LogOff",XF86XK_LogOff)		   
+	GET_KEYSIM_FROM_STRING("XF86Market",XF86XK_Market)		   
+	GET_KEYSIM_FROM_STRING("XF86Meeting",XF86XK_Meeting)		   
+	GET_KEYSIM_FROM_STRING("XF86MenuKB",XF86XK_MenuKB)		   
+	GET_KEYSIM_FROM_STRING("XF86MenuPB",XF86XK_MenuPB)		   
+	GET_KEYSIM_FROM_STRING("XF86MySites",XF86XK_MySites)		   
+	GET_KEYSIM_FROM_STRING("XF86New",XF86XK_New)		   
+	GET_KEYSIM_FROM_STRING("XF86News",XF86XK_News)		   
+	GET_KEYSIM_FROM_STRING("XF86OfficeHome",XF86XK_OfficeHome)	   
+	GET_KEYSIM_FROM_STRING("XF86Open",XF86XK_Open)		   
+	GET_KEYSIM_FROM_STRING("XF86Option",XF86XK_Option)		   
+	GET_KEYSIM_FROM_STRING("XF86Paste",XF86XK_Paste)		   
+	GET_KEYSIM_FROM_STRING("XF86Phone",XF86XK_Phone)		   
+	GET_KEYSIM_FROM_STRING("XF86Q",XF86XK_Q)		  
+	GET_KEYSIM_FROM_STRING("XF86Reply",XF86XK_Reply)		   
+	GET_KEYSIM_FROM_STRING("XF86Reload",XF86XK_Reload)		   
+	GET_KEYSIM_FROM_STRING("XF86RotateWindows",XF86XK_RotateWindows)	   
+	GET_KEYSIM_FROM_STRING("XF86RotationPB",XF86XK_RotationPB)	   
+	GET_KEYSIM_FROM_STRING("XF86RotationKB",XF86XK_RotationKB)	   
+	GET_KEYSIM_FROM_STRING("XF86Save",XF86XK_Save)		   
+	GET_KEYSIM_FROM_STRING("XF86ScrollUp",XF86XK_ScrollUp)		   
+	GET_KEYSIM_FROM_STRING("XF86ScrollDown",XF86XK_ScrollDown)	   
+	GET_KEYSIM_FROM_STRING("XF86ScrollClick",XF86XK_ScrollClick)	   
+	GET_KEYSIM_FROM_STRING("XF86Send",XF86XK_Send)		   
+	GET_KEYSIM_FROM_STRING("XF86Spell",XF86XK_Spell)		   
+	GET_KEYSIM_FROM_STRING("XF86SplitScreen",XF86XK_SplitScreen)	   
+	GET_KEYSIM_FROM_STRING("XF86Support",XF86XK_Support)		   
+	GET_KEYSIM_FROM_STRING("XF86TaskPane",XF86XK_TaskPane)		   
+	GET_KEYSIM_FROM_STRING("XF86Terminal",XF86XK_Terminal)		   
+	GET_KEYSIM_FROM_STRING("XF86Tools",XF86XK_Tools)		   
+	GET_KEYSIM_FROM_STRING("XF86Travel",XF86XK_Travel)		   
+	GET_KEYSIM_FROM_STRING("XF86UserPB",XF86XK_UserPB)		   
+	GET_KEYSIM_FROM_STRING("XF86User1KB",XF86XK_User1KB)		   
+	GET_KEYSIM_FROM_STRING("XF86User2KB",XF86XK_User2KB)		   
+	GET_KEYSIM_FROM_STRING("XF86Video",XF86XK_Video)		   
+	GET_KEYSIM_FROM_STRING("XF86WheelButton",XF86XK_WheelButton)	   
+	GET_KEYSIM_FROM_STRING("XF86Word",XF86XK_Word)		   
+	GET_KEYSIM_FROM_STRING("XF86Xfer",XF86XK_Xfer)		
+	GET_KEYSIM_FROM_STRING("XF86ZoomIn",XF86XK_ZoomIn)		   
+	GET_KEYSIM_FROM_STRING("XF86ZoomOut",XF86XK_ZoomOut)		   
+	GET_KEYSIM_FROM_STRING("XF86Away",XF86XK_Away)		   
+	GET_KEYSIM_FROM_STRING("XF86Messenger",XF86XK_Messenger)	   
+	GET_KEYSIM_FROM_STRING("XF86WebCam",XF86XK_WebCam)		   
+	GET_KEYSIM_FROM_STRING("XF86MailForward",XF86XK_MailForward)	   
+	GET_KEYSIM_FROM_STRING("XF86Pictures",XF86XK_Pictures)		   
+	GET_KEYSIM_FROM_STRING("XF86Music",XF86XK_Music)		   
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_1)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_2)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_3)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_4)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_5)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_6)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_7)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_8)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_9)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_10)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_11)	
+	GET_KEYSIM_FROM_STRING("XF86Switch",XF86XK_Switch_VT_12)	
+	GET_KEYSIM_FROM_STRING("XF86Ungrab",XF86XK_Ungrab)		   
+	GET_KEYSIM_FROM_STRING("XF86ClearGrab",XF86XK_ClearGrab)	   
+	GET_KEYSIM_FROM_STRING("XF86Next",XF86XK_Next_VMode)	   
+	GET_KEYSIM_FROM_STRING("XF86Prev",XF86XK_Prev_VMode)	 
+
+
+	DEBUGSTR("NO MATCH!")
+	return NoSymbol;
+}  
+
+
+#endif
diff --git a/components/libnptray_gecko7_i686.so b/components/libnptray_gecko7_i686.so
deleted file mode 100755
index 72ff634..0000000
Binary files a/components/libnptray_gecko7_i686.so and /dev/null differ
diff --git a/components/libnptray_gecko7_x86_64.so b/components/libnptray_gecko7_x86_64.so
deleted file mode 100755
index d57c56f..0000000
Binary files a/components/libnptray_gecko7_x86_64.so and /dev/null differ
diff --git a/components/libnptray_gecko8_i686.so b/components/libnptray_gecko8_i686.so
deleted file mode 100755
index 4f00bea..0000000
Binary files a/components/libnptray_gecko8_i686.so and /dev/null differ
diff --git a/components/libnptray_gecko8_x86_64.so b/components/libnptray_gecko8_x86_64.so
deleted file mode 100755
index 0a995ff..0000000
Binary files a/components/libnptray_gecko8_x86_64.so and /dev/null differ
diff --git a/components/nsIBaseWindow.h b/components/nsIBaseWindow.h
new file mode 100644
index 0000000..d2597f9
--- /dev/null
+++ b/components/nsIBaseWindow.h
@@ -0,0 +1,368 @@
+/*
+ * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/tinderbox/XR-Trunk/Linux_2.6.18-8.el5_Depend/mozilla/widget/public/nsIBaseWindow.idl
+ */
+
+#ifndef __gen_nsIBaseWindow_h__
+#define __gen_nsIBaseWindow_h__
+
+
+#ifndef __gen_nsISupports_h__
+#include "nsISupports.h"
+#endif
+
+#ifndef __gen_nsrootidl_h__
+#include "nsrootidl.h"
+#endif
+
+/* For IDL files that don't want to include root IDL files. */
+#ifndef NS_NO_VTABLE
+#define NS_NO_VTABLE
+#endif
+class nsIWidget;
+typedef void * nativeWindow;
+
+
+/* starting interface:    nsIBaseWindow */
+#define NS_IBASEWINDOW_IID_STR "046bc8a0-8015-11d3-af70-00a024ffc08c"
+
+#define NS_IBASEWINDOW_IID \
+  {0x046bc8a0, 0x8015, 0x11d3, \
+    { 0xaf, 0x70, 0x00, 0xa0, 0x24, 0xff, 0xc0, 0x8c }}
+
+/**
+ * The nsIBaseWindow describes a generic window and basic operations that 
+ * can be performed on it.  This is not to be a complete windowing interface
+ * but rather a common set that nearly all windowed objects support.    
+ */
+class NS_NO_VTABLE nsIBaseWindow : public nsISupports {
+ public: 
+
+  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IBASEWINDOW_IID)
+
+  /* [noscript] void initWindow (in nativeWindow parentNativeWindow, in nsIWidget parentWidget, in long x, in long y, in long cx, in long cy); */
+  NS_IMETHOD InitWindow(nativeWindow parentNativeWindow, nsIWidget * parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy) = 0;
+
+  /* void create (); */
+  NS_IMETHOD Create(void) = 0;
+
+  /* void destroy (); */
+  NS_IMETHOD Destroy(void) = 0;
+
+  /* void setPosition (in long x, in long y); */
+  NS_IMETHOD SetPosition(PRInt32 x, PRInt32 y) = 0;
+
+  /* void getPosition (out long x, out long y); */
+  NS_IMETHOD GetPosition(PRInt32 *x, PRInt32 *y) = 0;
+
+  /* void setSize (in long cx, in long cy, in boolean fRepaint); */
+  NS_IMETHOD SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint) = 0;
+
+  /* void getSize (out long cx, out long cy); */
+  NS_IMETHOD GetSize(PRInt32 *cx, PRInt32 *cy) = 0;
+
+  /* void setPositionAndSize (in long x, in long y, in long cx, in long cy, in boolean fRepaint); */
+  NS_IMETHOD SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint) = 0;
+
+  /* void getPositionAndSize (out long x, out long y, out long cx, out long cy); */
+  NS_IMETHOD GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy) = 0;
+
+  /** 
+	 * Tell the window to repaint itself
+	 * @param aForce - if true, repaint immediately
+	 *                 if false, the window may defer repainting as it sees fit.
+	 */
+  /* void repaint (in boolean force); */
+  NS_IMETHOD Repaint(PRBool force) = 0;
+
+  /* [noscript] attribute nsIWidget parentWidget; */
+  NS_IMETHOD GetParentWidget(nsIWidget * *aParentWidget) = 0;
+  NS_IMETHOD SetParentWidget(nsIWidget * aParentWidget) = 0;
+
+  /* attribute nativeWindow parentNativeWindow; */
+  NS_IMETHOD GetParentNativeWindow(nativeWindow *aParentNativeWindow) = 0;
+  NS_IMETHOD SetParentNativeWindow(nativeWindow aParentNativeWindow) = 0;
+
+  /* attribute boolean visibility; */
+  NS_IMETHOD GetVisibility(PRBool *aVisibility) = 0;
+  NS_IMETHOD SetVisibility(PRBool aVisibility) = 0;
+
+  /* attribute boolean enabled; */
+  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
+  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;
+
+  /** set blurSuppression to true to suppress handling of blur events.
+     *  set it false to re-enable them. query it to determine whether
+     *  blur events are suppressed. The implementation should allow
+     *  for blur events to be suppressed multiple times.
+     */
+  /* attribute boolean blurSuppression; */
+  NS_IMETHOD GetBlurSuppression(PRBool *aBlurSuppression) = 0;
+  NS_IMETHOD SetBlurSuppression(PRBool aBlurSuppression) = 0;
+
+  /* [noscript] readonly attribute nsIWidget mainWidget; */
+  NS_IMETHOD GetMainWidget(nsIWidget * *aMainWidget) = 0;
+
+  /**
+	* Give the window focus.
+	*/
+  /* void setFocus (); */
+  NS_IMETHOD SetFocus(void) = 0;
+
+  /* attribute wstring title; */
+  NS_IMETHOD GetTitle(PRUnichar * *aTitle) = 0;
+  NS_IMETHOD SetTitle(const PRUnichar * aTitle) = 0;
+
+};
+
+  NS_DEFINE_STATIC_IID_ACCESSOR(nsIBaseWindow, NS_IBASEWINDOW_IID)
+
+/* Use this macro when declaring classes that implement this interface. */
+#define NS_DECL_NSIBASEWINDOW \
+  NS_IMETHOD InitWindow(nativeWindow parentNativeWindow, nsIWidget * parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy); \
+  NS_IMETHOD Create(void); \
+  NS_IMETHOD Destroy(void); \
+  NS_IMETHOD SetPosition(PRInt32 x, PRInt32 y); \
+  NS_IMETHOD GetPosition(PRInt32 *x, PRInt32 *y); \
+  NS_IMETHOD SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint); \
+  NS_IMETHOD GetSize(PRInt32 *cx, PRInt32 *cy); \
+  NS_IMETHOD SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint); \
+  NS_IMETHOD GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy); \
+  NS_IMETHOD Repaint(PRBool force); \
+  NS_IMETHOD GetParentWidget(nsIWidget * *aParentWidget); \
+  NS_IMETHOD SetParentWidget(nsIWidget * aParentWidget); \
+  NS_IMETHOD GetParentNativeWindow(nativeWindow *aParentNativeWindow); \
+  NS_IMETHOD SetParentNativeWindow(nativeWindow aParentNativeWindow); \
+  NS_IMETHOD GetVisibility(PRBool *aVisibility); \
+  NS_IMETHOD SetVisibility(PRBool aVisibility); \
+  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
+  NS_IMETHOD SetEnabled(PRBool aEnabled); \
+  NS_IMETHOD GetBlurSuppression(PRBool *aBlurSuppression); \
+  NS_IMETHOD SetBlurSuppression(PRBool aBlurSuppression); \
+  NS_IMETHOD GetMainWidget(nsIWidget * *aMainWidget); \
+  NS_IMETHOD SetFocus(void); \
+  NS_IMETHOD GetTitle(PRUnichar * *aTitle); \
+  NS_IMETHOD SetTitle(const PRUnichar * aTitle); 
+
+/* Use this macro to declare functions that forward the behavior of this interface to another object. */
+#define NS_FORWARD_NSIBASEWINDOW(_to) \
+  NS_IMETHOD InitWindow(nativeWindow parentNativeWindow, nsIWidget * parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy) { return _to InitWindow(parentNativeWindow, parentWidget, x, y, cx, cy); } \
+  NS_IMETHOD Create(void) { return _to Create(); } \
+  NS_IMETHOD Destroy(void) { return _to Destroy(); } \
+  NS_IMETHOD SetPosition(PRInt32 x, PRInt32 y) { return _to SetPosition(x, y); } \
+  NS_IMETHOD GetPosition(PRInt32 *x, PRInt32 *y) { return _to GetPosition(x, y); } \
+  NS_IMETHOD SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint) { return _to SetSize(cx, cy, fRepaint); } \
+  NS_IMETHOD GetSize(PRInt32 *cx, PRInt32 *cy) { return _to GetSize(cx, cy); } \
+  NS_IMETHOD SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint) { return _to SetPositionAndSize(x, y, cx, cy, fRepaint); } \
+  NS_IMETHOD GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy) { return _to GetPositionAndSize(x, y, cx, cy); } \
+  NS_IMETHOD Repaint(PRBool force) { return _to Repaint(force); } \
+  NS_IMETHOD GetParentWidget(nsIWidget * *aParentWidget) { return _to GetParentWidget(aParentWidget); } \
+  NS_IMETHOD SetParentWidget(nsIWidget * aParentWidget) { return _to SetParentWidget(aParentWidget); } \
+  NS_IMETHOD GetParentNativeWindow(nativeWindow *aParentNativeWindow) { return _to GetParentNativeWindow(aParentNativeWindow); } \
+  NS_IMETHOD SetParentNativeWindow(nativeWindow aParentNativeWindow) { return _to SetParentNativeWindow(aParentNativeWindow); } \
+  NS_IMETHOD GetVisibility(PRBool *aVisibility) { return _to GetVisibility(aVisibility); } \
+  NS_IMETHOD SetVisibility(PRBool aVisibility) { return _to SetVisibility(aVisibility); } \
+  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
+  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
+  NS_IMETHOD GetBlurSuppression(PRBool *aBlurSuppression) { return _to GetBlurSuppression(aBlurSuppression); } \
+  NS_IMETHOD SetBlurSuppression(PRBool aBlurSuppression) { return _to SetBlurSuppression(aBlurSuppression); } \
+  NS_IMETHOD GetMainWidget(nsIWidget * *aMainWidget) { return _to GetMainWidget(aMainWidget); } \
+  NS_IMETHOD SetFocus(void) { return _to SetFocus(); } \
+  NS_IMETHOD GetTitle(PRUnichar * *aTitle) { return _to GetTitle(aTitle); } \
+  NS_IMETHOD SetTitle(const PRUnichar * aTitle) { return _to SetTitle(aTitle); } 
+
+/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
+#define NS_FORWARD_SAFE_NSIBASEWINDOW(_to) \
+  NS_IMETHOD InitWindow(nativeWindow parentNativeWindow, nsIWidget * parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitWindow(parentNativeWindow, parentWidget, x, y, cx, cy); } \
+  NS_IMETHOD Create(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Create(); } \
+  NS_IMETHOD Destroy(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Destroy(); } \
+  NS_IMETHOD SetPosition(PRInt32 x, PRInt32 y) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPosition(x, y); } \
+  NS_IMETHOD GetPosition(PRInt32 *x, PRInt32 *y) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPosition(x, y); } \
+  NS_IMETHOD SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSize(cx, cy, fRepaint); } \
+  NS_IMETHOD GetSize(PRInt32 *cx, PRInt32 *cy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSize(cx, cy); } \
+  NS_IMETHOD SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPositionAndSize(x, y, cx, cy, fRepaint); } \
+  NS_IMETHOD GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPositionAndSize(x, y, cx, cy); } \
+  NS_IMETHOD Repaint(PRBool force) { return !_to ? NS_ERROR_NULL_POINTER : _to->Repaint(force); } \
+  NS_IMETHOD GetParentWidget(nsIWidget * *aParentWidget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParentWidget(aParentWidget); } \
+  NS_IMETHOD SetParentWidget(nsIWidget * aParentWidget) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParentWidget(aParentWidget); } \
+  NS_IMETHOD GetParentNativeWindow(nativeWindow *aParentNativeWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParentNativeWindow(aParentNativeWindow); } \
+  NS_IMETHOD SetParentNativeWindow(nativeWindow aParentNativeWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParentNativeWindow(aParentNativeWindow); } \
+  NS_IMETHOD GetVisibility(PRBool *aVisibility) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisibility(aVisibility); } \
+  NS_IMETHOD SetVisibility(PRBool aVisibility) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVisibility(aVisibility); } \
+  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
+  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
+  NS_IMETHOD GetBlurSuppression(PRBool *aBlurSuppression) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlurSuppression(aBlurSuppression); } \
+  NS_IMETHOD SetBlurSuppression(PRBool aBlurSuppression) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBlurSuppression(aBlurSuppression); } \
+  NS_IMETHOD GetMainWidget(nsIWidget * *aMainWidget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMainWidget(aMainWidget); } \
+  NS_IMETHOD SetFocus(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFocus(); } \
+  NS_IMETHOD GetTitle(PRUnichar * *aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
+  NS_IMETHOD SetTitle(const PRUnichar * aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } 
+
+#if 0
+/* Use the code below as a template for the implementation class for this interface. */
+
+/* Header file */
+class nsBaseWindow : public nsIBaseWindow
+{
+public:
+  NS_DECL_ISUPPORTS
+  NS_DECL_NSIBASEWINDOW
+
+  nsBaseWindow();
+
+private:
+  ~nsBaseWindow();
+
+protected:
+  /* additional members */
+};
+
+/* Implementation file */
+NS_IMPL_ISUPPORTS1(nsBaseWindow, nsIBaseWindow)
+
+nsBaseWindow::nsBaseWindow()
+{
+  /* member initializers and constructor code */
+}
+
+nsBaseWindow::~nsBaseWindow()
+{
+  /* destructor code */
+}
+
+/* [noscript] void initWindow (in nativeWindow parentNativeWindow, in nsIWidget parentWidget, in long x, in long y, in long cx, in long cy); */
+NS_IMETHODIMP nsBaseWindow::InitWindow(nativeWindow parentNativeWindow, nsIWidget * parentWidget, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void create (); */
+NS_IMETHODIMP nsBaseWindow::Create()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void destroy (); */
+NS_IMETHODIMP nsBaseWindow::Destroy()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void setPosition (in long x, in long y); */
+NS_IMETHODIMP nsBaseWindow::SetPosition(PRInt32 x, PRInt32 y)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void getPosition (out long x, out long y); */
+NS_IMETHODIMP nsBaseWindow::GetPosition(PRInt32 *x, PRInt32 *y)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void setSize (in long cx, in long cy, in boolean fRepaint); */
+NS_IMETHODIMP nsBaseWindow::SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void getSize (out long cx, out long cy); */
+NS_IMETHODIMP nsBaseWindow::GetSize(PRInt32 *cx, PRInt32 *cy)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void setPositionAndSize (in long x, in long y, in long cx, in long cy, in boolean fRepaint); */
+NS_IMETHODIMP nsBaseWindow::SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void getPositionAndSize (out long x, out long y, out long cx, out long cy); */
+NS_IMETHODIMP nsBaseWindow::GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void repaint (in boolean force); */
+NS_IMETHODIMP nsBaseWindow::Repaint(PRBool force)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript] attribute nsIWidget parentWidget; */
+NS_IMETHODIMP nsBaseWindow::GetParentWidget(nsIWidget * *aParentWidget)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetParentWidget(nsIWidget * aParentWidget)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* attribute nativeWindow parentNativeWindow; */
+NS_IMETHODIMP nsBaseWindow::GetParentNativeWindow(nativeWindow *aParentNativeWindow)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetParentNativeWindow(nativeWindow aParentNativeWindow)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* attribute boolean visibility; */
+NS_IMETHODIMP nsBaseWindow::GetVisibility(PRBool *aVisibility)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetVisibility(PRBool aVisibility)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* attribute boolean enabled; */
+NS_IMETHODIMP nsBaseWindow::GetEnabled(PRBool *aEnabled)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetEnabled(PRBool aEnabled)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* attribute boolean blurSuppression; */
+NS_IMETHODIMP nsBaseWindow::GetBlurSuppression(PRBool *aBlurSuppression)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetBlurSuppression(PRBool aBlurSuppression)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* [noscript] readonly attribute nsIWidget mainWidget; */
+NS_IMETHODIMP nsBaseWindow::GetMainWidget(nsIWidget * *aMainWidget)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* void setFocus (); */
+NS_IMETHODIMP nsBaseWindow::SetFocus()
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* attribute wstring title; */
+NS_IMETHODIMP nsBaseWindow::GetTitle(PRUnichar * *aTitle)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+NS_IMETHODIMP nsBaseWindow::SetTitle(const PRUnichar * aTitle)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* End of implementation class template. */
+#endif
+
+
+#endif /* __gen_nsIBaseWindow_h__ */
diff --git a/components/nsIFireTrayHandler.idl b/components/nsIFireTrayHandler.idl
new file mode 100644
index 0000000..8de8dd8
--- /dev/null
+++ b/components/nsIFireTrayHandler.idl
@@ -0,0 +1,12 @@
+#include "nsISupports.idl"
+
+interface nsIDOMWindow;
+                  
+[scriptable, uuid(f2f05844-d398-11df-9885-7d29dfd72085)]
+interface nsIFireTrayHandler : nsISupports
+{
+    void hideAll();
+    void hideWindow(in nsIDOMWindow window);
+    void setupWindow(in nsIDOMWindow window);
+};  
+
diff --git a/components/nsIFireTrayHandler.xpt b/components/nsIFireTrayHandler.xpt
deleted file mode 100644
index 1f2ce11..0000000
Binary files a/components/nsIFireTrayHandler.xpt and /dev/null differ
diff --git a/components/nsITray.idl b/components/nsITray.idl
new file mode 100644
index 0000000..1bd0b7a
--- /dev/null
+++ b/components/nsITray.idl
@@ -0,0 +1,87 @@
+#include "nsISupports.idl"
+
+interface nsIBaseWindow;
+ 
+[scriptable, function, uuid(71ae41e0-517b-40d0-b05c-626d236fe52b)]
+interface nsITrayCallback : nsISupports
+{
+    // Javascript function call
+    boolean call();
+};
+
+[scriptable, function, uuid(cb451092-6269-11de-84bb-3bce55d89593)]
+interface nsIScrollCallback : nsISupports
+{
+    // Javascript function call
+    boolean call(in PRUint32 direction);
+};
+
+
+[scriptable, function, uuid(d22950aa-62a8-11de-b360-94c756d89593)]
+interface nsIKeySymCallback : nsISupports
+{
+    // Javascript function call
+    boolean call(in string keysym, in PRUint64 keycode);
+};
+
+
+[scriptable, uuid(bf249f85-20f2-49be-96f3-9681f3bb0334)]
+interface nsITray : nsISupports
+{
+    void showTray();
+    void hideTray();
+
+    //event callbacks
+    void trayActivateEvent(in nsITrayCallback aCallback);
+    void trayScrollEvent(in nsIScrollCallback aCallback);
+    void trayKeyEvent(in nsIKeySymCallback aCallback);
+
+    void hideWindow(in nsIBaseWindow aBaseWindow);
+    void restore(in PRUint32 aCount, [array, size_is(aCount)] in nsIBaseWindow aBaseWindows); 
+    void restoreWindow(in nsIBaseWindow aBaseWindow);
+
+    PRUint64 getTrayMenu();
+
+    PRUint64 menuNew();
+    PRUint64 menuItemNew(in wstring label, in wstring img);    
+    PRUint64 separatorMenuItemNew();
+
+    void menuItemUpdate(in PRUint64 item, in wstring label);    
+    void menuAppend(in PRUint64 menu, in PRUint64 item, in nsITrayCallback aCallback);
+    void menuPrepend(in PRUint64 menu, in PRUint64 item, in nsITrayCallback aCallback);
+    void menuInsert(in PRUint64 menu, in PRUint64 item, in PRUint64 pos, in nsITrayCallback aCallback);
+    void menuSub(in PRUint64 item, in PRUint64 sub_menu);
+    void menuRemove(in PRUint64 menu, in PRUint64 item);
+    void menuRemoveAll(in PRUint64 menu);
+    PRUint64 menuLength(in PRUint64 menu);
+
+    void setDefaultXpmIcon(in PRUint32 app); //selects default (embedded) icons for the specified application
+
+    boolean setDefaultIcon(in string filename); //icon for normal usage
+    boolean setSpecialIcon(in string filename); //icon shown when text is displayed
+
+    void setIconText(in string text, in string color); //sets the icon text (used for mail count)
+
+    void setTrayTooltip(in wstring text); //sets the tray tooltip message
+    void setTrayIcon(in PRUint32 FLAG);  //switch systrayicon checking the FLAG
+    /*void init_tooltip_image();          //prepare tooltip handlers to show image*/
+
+    void setCloseBlocking(in boolean val); //determine if we have to block window closing
+    void getCloseBlocking(out boolean val); 
+
+    void setMinimizeBlocking(in boolean val); //determine if we have to hide to tray on window minimize 
+    void getMinimizeBlocking(out boolean val); 
+
+    void initNotification(in string appname); //init the notification system 
+    void showANotification(in wstring title, in wstring info,in string image); //show a notification 
+
+    boolean getFocusState(in nsIBaseWindow aBaseWindow); 
+    void setWindowHandler(in nsIBaseWindow aBaseWindow);
+
+
+    // MULTIMEDIA KEYS HANDLING
+    boolean addHandledKey(in string key_string);
+    boolean addHandledKeyCode(in PRUint64 key_code);
+
+    string getKeycodeString(in PRUint64 key_code);
+};
diff --git a/components/nsITray.xpt b/components/nsITray.xpt
deleted file mode 100644
index c326643..0000000
Binary files a/components/nsITray.xpt and /dev/null differ
diff --git a/components/nsTray.cpp b/components/nsTray.cpp
new file mode 100644
index 0000000..5d515da
--- /dev/null
+++ b/components/nsTray.cpp
@@ -0,0 +1,1469 @@
+#include "nsTray.h"
+#include "options.h"
+#include "debug.h"
+
+//BUILT IN PIXMAPS 
+#include "pixmaps/firefox.xpm"
+#include "pixmaps/thunderbird.xpm"
+#include "pixmaps/dove.xpm"
+#include "pixmaps/weasel.xpm"
+#include "pixmaps/icecat.xpm"
+#include "pixmaps/newmail.xpm"
+#include "pixmaps/seamonkey.xpm"
+#include "pixmaps/songbird.xpm"
+#include "pixmaps/songbirdegg.xpm"
+#include "pixmaps/sunbird.xpm"
+#include "pixmaps/chatzilla.xpm"
+
+#include "nsMemory.h"
+#include "nsIBaseWindow.h"
+
+#include <pango/pangoft2.h>
+#include <pango/pango-layout.h>
+#include <gdk/gdk.h>
+#include <gtk/gtksignal.h>
+#include <gdk/gdkx.h>
+
+
+#ifdef _KEYSYMS_
+  #include <gdk/gdkkeysyms.h>
+  #include "keysyms.h"
+  #include <X11/XF86keysym.h>
+#endif
+//// REMOVE NOTIFY #include <libnotify/notify.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+
+
+
+Atom delete_window = XInternAtom (GDK_DISPLAY(), "WM_DELETE_WINDOW", False);
+
+// Returns the lenght of a NULL-terminated UTF16 PRUnichar * string 
+PRUint32 PRUstrlen(const PRUnichar *text) {
+  if(!text) return 0;
+  PRUint32 cnt=0;
+  while(*text != 0) {
+    cnt++;
+    text++;
+  }
+  return cnt;
+}
+
+void nsTray::activate(GtkStatusIcon* status_icon, gpointer user_data) {
+    PRBool ret = TRUE;
+    nsTray *data = static_cast<nsTray*>(user_data);
+
+    data->tray_callback->Call(&ret);
+}
+
+/*
+
+SCROLL DIRECTIONS:
+
+0 - UP
+1 - DOWN
+2 - LEFT
+3 - RIGHT
+
+*/
+
+gboolean nsTray::scroll(GtkStatusIcon  *status_icon, GdkEventScroll *event, gpointer user_data)  
+{
+    DEBUG_CALL("scroll")
+
+    if(!event || !user_data) return false;
+
+    PRBool ret = TRUE;
+    nsTray *data = static_cast<nsTray*>(user_data);
+
+    PRUint32 dir=0;
+
+    switch(event->direction)
+    {    
+        case GDK_SCROLL_UP:
+	      DEBUGSTR("SCROLL UP")	
+	      dir=0;
+	      break;
+
+        case GDK_SCROLL_DOWN:
+	      DEBUGSTR("SCROLL DOWN")	  
+	      dir=1;
+	      break;
+
+        case GDK_SCROLL_LEFT:
+	      DEBUGSTR("SCROLL LEFT")	  
+	      dir=2;
+	      break;
+
+        case GDK_SCROLL_RIGHT:
+	      DEBUGSTR("SCROLL RIGHT")	  
+	      dir=3;
+	      break;
+
+        default:
+	      DEBUGSTR("SCROLL UNKNOWN")	  
+	      return false;
+	      break;      
+    }
+
+    if(!data->scroll_callback) return true;
+
+    data->scroll_callback->Call(dir, &ret);
+
+    return true; 
+
+}
+
+void nsTray::popup(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) {
+    DEBUG_CALL("popup")
+    nsTray *data = static_cast<nsTray*>(user_data);
+
+    if (data->pop_menu) {
+        gtk_widget_show_all(data->pop_menu);
+        gtk_menu_popup(GTK_MENU(data->pop_menu), NULL, NULL,
+                gtk_status_icon_position_menu, data->systray_icon, button, activate_time);
+    }
+}
+
+void nsTray::item_event(GtkWidget *widget, gpointer user_data) {
+    DEBUG_CALL("item_event")
+    PRBool ret = TRUE;
+    nsTray *data = static_cast<nsTray*>(user_data);
+
+    if(data->item_callback_list[(PRUint64)widget]) {
+        data->item_callback_list[(PRUint64)widget]->Call(&ret);
+    }
+}
+
+void nsTray::menu_remove_all_callback(GtkWidget *widget, gpointer user_data) {
+    DEBUG_CALL("menu_remove_all_callback")
+    nsTray *data = static_cast<nsTray*>(user_data);
+
+    if (GTK_IS_CONTAINER(widget)) {
+        gtk_container_foreach(GTK_CONTAINER(widget), (GtkCallback)(nsTray::menu_remove_all_callback), user_data);
+    }
+    
+    gtk_widget_destroy(widget);
+    data->item_callback_list.erase((PRUint64)widget);
+}
+
+/* Implementation file */
+NS_IMPL_ISUPPORTS1(nsTray, nsITray)
+
+nsTray::nsTray() {
+    DEBUG_CALL("nsTray")
+    
+    DEBUGSTR("CONSTRUCTOR!")
+
+    /* member initializers and constructor code */
+    block_close=false;
+    block_minimize=false;
+
+    systray_icon = NULL;
+    icon = NULL;
+    default_icon = NULL;
+    special_icon = NULL;
+    pop_menu = NULL;
+
+    tray_callback = NULL;
+    scroll_callback = NULL;
+    key_callback = NULL;
+
+    systray_icon = gtk_status_icon_new();
+
+    icon = gdk_pixbuf_new_from_xpm_data((const char**)firefox_xpm);
+
+    /* Connect signals */
+    g_signal_connect(G_OBJECT(this->systray_icon), "activate", G_CALLBACK(nsTray::activate), this);
+    g_signal_connect(G_OBJECT(this->systray_icon), "popup-menu", G_CALLBACK(nsTray::popup), this);
+    g_signal_connect(G_OBJECT(this->systray_icon), "scroll-event", G_CALLBACK(nsTray::scroll), this);
+
+    this->pop_menu = gtk_menu_new();
+
+}
+
+nsTray::~nsTray() {
+    DEBUG_CALL("~nsTray")
+    /* destructor code */ //TO_DO CHECK FOR MEMORY LEAKS...
+    this->systray_icon = NULL;
+    this->icon = NULL;
+    this->pop_menu = NULL;
+    this->tray_callback = NULL;
+}
+
+/* void showTray (); */
+NS_IMETHODIMP nsTray::ShowTray() {
+    DEBUG_CALL("showTray")
+
+
+    if (this->systray_icon) {
+
+      //
+        //gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(default_icon));
+//	this->systray_icon=gtk_status_icon_new_from_pixbuf(GDK_PIXBUF(default_icon));
+        gtk_status_icon_set_visible(this->systray_icon, TRUE);
+    }
+
+    return NS_OK;
+}
+
+/* void hideTray (); */
+NS_IMETHODIMP nsTray::HideTray() {
+    DEBUG_CALL("hideTray")
+
+    gtk_status_icon_set_visible(this->systray_icon, FALSE);
+
+    return NS_OK;
+}
+
+/* void trayActivateEvent (in nsITrayCallback aCallback); */
+NS_IMETHODIMP nsTray::TrayActivateEvent(nsITrayCallback *aCallback) {
+    DEBUG_CALL("trayActivateEvent")
+    this->tray_callback = aCallback;
+    return NS_OK;
+}
+
+/* void trayScrollEvent (in nsIScrollCallback aCallback); */
+NS_IMETHODIMP nsTray::TrayScrollEvent(nsIScrollCallback *aCallback) {
+    DEBUG_CALL("trayScrollEvent")
+    this->scroll_callback = aCallback;
+    return NS_OK;
+}
+
+/* void trayKeyEvent (in nsIKeySymCallback aCallback); */
+NS_IMETHODIMP nsTray::TrayKeyEvent(nsIKeySymCallback *aCallback) {
+    DEBUG_CALL("trayKeyEvent")
+    this->key_callback = aCallback;
+    return NS_OK;
+}
+
+
+#ifdef DO_DEBUG
+  #define DEBUG_WINDOW(a,b) show_window_info(a,b);
+#else 
+  #define DEBUG_WINDOW(a,b) ;
+#endif
+
+void show_window_info(char *desc,Window win)
+{
+  
+   DEBUGSTR(_SEPARATOR_)
+   DEBUGSTR( "WIN: "<<desc<<" ("<< win<<")") 
+ 
+   CAPTURE_ERRORS()
+
+   XWindowAttributes a;
+   if( XGetWindowAttributes(GDK_DISPLAY(), win, &a) )
+    {
+       
+       DEBUGSTR( "  X: "<<a.x<<" Y: "<<a.y) 
+       DEBUGSTR( "  Width: "<<a.width<<" Height: "<<a.height)
+       DEBUGSTR( "  border_width: "<<a.border_width)
+       DEBUGSTR( "  depth: "<< a.depth)
+//     DEBUGSTR( "  "Visual *visual;            /* the associated visual structure */
+       DEBUGSTR( "  root: "<<a.root)
+
+       DEBUGSTR( "  bit_gravity: "<<a.bit_gravity)
+       DEBUGSTR( "  win_gravity: "<<a.win_gravity)
+       DEBUGSTR( "  backing_store: "<<a.backing_store)
+//       DEBUGSTR( "  "unsigned long backing_planes;    /* planes to be preserved if possible */
+ //      DEBUGSTR( "  "unsigned long backing_pixel; /* value to be used when restoring planes */
+       DEBUGSTR( "  save_under: "<<a.save_under)
+//       DEBUGSTR( "  "Colormap colormap;       /* color map to be associated with window */
+       DEBUGSTR( "  map_installed: "<<a.map_installed)
+       DEBUGSTR( "  map_state: "<<a.map_state)
+       DEBUGSTR( "  all_event_masks: "<<a.all_event_masks)
+       DEBUGSTR( "  your_event_mask: "<<a.your_event_mask)
+       DEBUGSTR( "  do_not_propagate_mask: "<<a.do_not_propagate_mask)
+       DEBUGSTR( "  override_redirect: "<<a.override_redirect)
+       DEBUGSTR( "  screen: "<<a.screen)
+
+       
+   }
+
+   RELEASE_CAPTURE("Error getting window information")
+   DEBUGSTR(_SEPARATOR_)
+}
+
+int GetParent(Window win, Window *parent)
+{
+   DEBUG_CALL("getParent")
+
+   if(parent==NULL)return 0;
+
+   CAPTURE_ERRORS()
+
+   Window root;
+   Window *children;
+   unsigned int nchildren;
+   if(!XQueryTree(GDK_DISPLAY(), win, &root, parent, &children, &nchildren)) return 0;
+            
+   if(children) XFree(children);
+
+   RELEASE_CAPTURE_RETURN("Error getting window parent",0)
+
+   return 1;
+}
+
+int GetRoot(Window win, Window *root)
+{
+   if(root==NULL)return 0;
+   
+   int res=0;
+   
+   CAPTURE_ERRORS()
+
+   XWindowAttributes a;
+   if( XGetWindowAttributes(GDK_DISPLAY(), win, &a) )
+   {
+       *root=a.root;
+       res=1;
+   }
+
+   RELEASE_CAPTURE_RETURN("Error getting window information", 0)
+   return res;
+}
+
+
+int GetToplevel(Window win, Window *res)
+{
+   DEBUG_CALL("getToplevel")
+
+   if(res==NULL)return 0;
+   
+   Window root;
+   if(!GetRoot(win, &root)) { DEBUGSTR("Error getting window's root"); return 0; }
+   
+   Window current=win;
+   Window parent=win;
+   int i=0;
+   while(parent!=root)
+   {
+     i++;
+     current=parent;
+     DEBUG_WINDOW("CURRENT",current);
+	 if(!GetParent(current, &parent))
+	 {
+	   DEBUGSTR("Error getting parent for window "<<current)
+	   return 0;
+	 }
+	 DEBUGSTR("CURRENT: "<<current<< " - PARENT: "<< parent << " - ROOT: "<<root)
+   }
+
+   *res=current;
+   return 1;
+}
+
+
+
+void EchoWinAttribs(Window win)
+{
+   CAPTURE_ERRORS()
+
+   XWindowAttributes attrib;
+   if( XGetWindowAttributes(GDK_DISPLAY(), win, &attrib) )
+    {
+       DEBUGSTR( "WIN: "<< win <<" POS: ("<< attrib.x << ","<< attrib.y << ") - SIZE: " << attrib.width << "x" << attrib.height) 
+   }
+
+   RELEASE_CAPTURE("Error getting window information")
+}
+
+void ExploreTree(Window xwin)
+{
+  int ok=1;
+  while(ok)
+   {
+     EchoWinAttribs(xwin);
+     Window parent;
+     ok=GetParent(xwin, &parent);
+     xwin=parent;
+   }
+}
+
+/* void hideWindow (in nsIBaseWindow aBaseWindow); */
+NS_IMETHODIMP nsTray::HideWindow(nsIBaseWindow *aBaseWindow) {
+    DEBUG_CALL("hideWindow")
+
+    nsresult rv;
+ 
+    NS_ENSURE_ARG_POINTER(aBaseWindow);
+
+    nativeWindow aNativeWindow;
+    rv = aBaseWindow->GetParentNativeWindow(&aNativeWindow);
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    CAPTURE_ERRORS()
+
+    GdkWindow *gdk_win=gdk_window_get_toplevel((GdkWindow*) aNativeWindow);
+
+    DEBUGSTR("HIDING") 
+
+ #ifdef _REMEMBER_POSITION_
+ 
+    Window xwin=GDK_WINDOW_XID(gdk_win);
+
+    DEBUGSTR("HANDLER LIST COUNT " << handled_windows.size()) 
+
+    if(handled_windows.count(xwin)>0) 
+      {
+         window_state* ws=handled_windows[xwin];          
+  
+         if(ws) {
+        
+              gdk_window_get_root_origin(gdk_win, &ws->pos_x, &ws->pos_y);
+              ws->valid=true;
+              DEBUGSTR( "SAVING POSITION X: "<< ws->pos_x << " Y: "<< ws->pos_y )
+         }
+      }
+ #endif
+ 
+    gdk_window_hide(gdk_win);
+
+    RELEASE_CAPTURE("Error hiding window")
+
+    return NS_OK;
+}
+
+
+
+
+/* void restore (in PRUint32 aCount, [array, size_is (aCount)] in nsIBaseWindow aBaseWindows); */
+NS_IMETHODIMP nsTray::Restore(PRUint32 aCount, nsIBaseWindow **aBaseWindows) {
+    DEBUG_CALL("restore")
+
+    PRUint32 i;
+
+    NS_ENSURE_ARG(aCount);
+    NS_ENSURE_ARG_POINTER(aBaseWindows);
+
+    for (i = 0; i < aCount; ++i)       
+       RestoreWindow(aBaseWindows[i]);        
+
+    return NS_OK;
+}
+
+/* void restoreWindow (in nsIBaseWindow aBaseWindow); */
+NS_IMETHODIMP nsTray::RestoreWindow(nsIBaseWindow *aBaseWindow) {
+    DEBUG_CALL("restoreWindow")
+    
+    nsresult rv;
+
+    NS_ENSURE_ARG_POINTER(aBaseWindow);
+
+    nativeWindow aNativeWindow;
+    rv = aBaseWindow->GetParentNativeWindow(&aNativeWindow);
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    CAPTURE_ERRORS()
+ 
+    GdkWindow * tl_gdk=gdk_window_get_toplevel((GdkWindow*)aNativeWindow);
+
+    gdk_window_show(tl_gdk);
+
+  #ifdef _REMEMBER_POSITION_
+   //if possible restore window position
+    Window xwin=GDK_WINDOW_XID(tl_gdk);
+    if(handled_windows.count(xwin)>0) 
+      {
+         window_state* ws=handled_windows[xwin]; 
+ 
+        if(ws && ws->valid) {        
+            XMoveWindow(GDK_DISPLAY(), xwin, ws->pos_x, ws->pos_y);
+            DEBUGSTR( "RESTORING WINDOW STATE:")
+            DEBUGSTR( "  X: "<< ws->pos_x << " Y: "<< ws->pos_y )
+            DEBUGSTR( "  VALID: "<< ws->valid )
+        } 
+   
+      }
+  #endif
+  
+    gdk_window_focus (tl_gdk, gtk_get_current_event_time ());
+
+    GdkWindowState s=gdk_window_get_state(tl_gdk);
+
+    if(s & GDK_WINDOW_STATE_ICONIFIED) 
+       gdk_window_deiconify(tl_gdk);
+
+
+    RELEASE_CAPTURE("Error restoring window")
+
+    return NS_OK;
+}
+
+/* PRUint64 getTrayMenu (); */
+NS_IMETHODIMP nsTray::GetTrayMenu(PRUint64 *_retval) {
+    DEBUG_CALL("getTrayMenu")
+    *_retval = (PRUint64)this->pop_menu;
+
+    return NS_OK;
+}
+
+/* PRUint64 menuNew (in string label); */
+NS_IMETHODIMP nsTray::MenuNew(PRUint64 *_retval) {
+    DEBUG_CALL("menuNew")
+    GtkWidget *menu = gtk_menu_new();
+    *_retval = (PRUint64)menu;
+
+    return NS_OK;
+}
+
+gchar *convertUtf16ToUtf8(const PRUnichar *str)
+{
+    PRUint32 len=PRUstrlen(str);  
+    gchar * utf8=g_utf16_to_utf8 ((const gunichar2 *)str, len, NULL, NULL, NULL);
+    return utf8;
+}
+
+
+/* PRUint64 menuItemNew (in wstring label, in wstring img); */
+NS_IMETHODIMP nsTray::MenuItemNew(const PRUnichar *label, const PRUnichar *img, PRUint64 *_retval) {
+    DEBUG_CALL("menuItemNew")
+
+    if(!img) DEBUGSTR("IMMG NULL")
+    else {
+       DEBUGSTR("IMMG NOT NULL:")	
+       DEBUGSTR(img)
+    }
+ 
+    GtkWidget *item=NULL;
+
+    gchar * label_utf8=convertUtf16ToUtf8(label);
+
+    if(img && PRUstrlen(img)>0) //try to create menu item with stock image
+    {
+       gchar * img_utf8=convertUtf16ToUtf8(img);
+       item = gtk_image_menu_item_new_with_label (label_utf8);
+       gtk_image_menu_item_set_image((GtkImageMenuItem*)item, gtk_image_new_from_stock ( img_utf8 ,GTK_ICON_SIZE_MENU));
+       g_free(img_utf8);  
+    }
+
+    if(!item) //if img not specified or img error just set menu item with label
+    {
+       item = gtk_menu_item_new_with_label(label_utf8);
+    }
+
+    g_free(label_utf8);  
+
+    *_retval = (PRUint64)item;
+    return NS_OK; 
+}
+
+/* PRUint64 separatorMenuItemNew (); */
+NS_IMETHODIMP nsTray::SeparatorMenuItemNew(PRUint64 *_retval) {
+    DEBUG_CALL("separatorMenuItemNew")
+    GtkWidget *item = gtk_separator_menu_item_new();
+    *_retval = (PRUint64)item;
+
+    return NS_OK;
+}
+
+/* void menuItemUpdate (in PRUint64 item, in wstring label); */
+NS_IMETHODIMP nsTray::MenuItemUpdate(PRUint64 item, const PRUnichar *label) {
+    DEBUG_CALL("MenuItemUpdate")
+    gchar * label_utf8=convertUtf16ToUtf8(label);        
+#ifdef __GTK_SET_LABEL__
+    gtk_menu_item_set_label(GTK_MENU_ITEM(item),label_utf8);
+#endif
+    return NS_OK;
+}
+
+/*///ADDED FOR IMG MENU
+/ PRUint64 menu_item_new (in wstring label); /
+NS_IMETHODIMP nsTray::Menu_item_img_new(const PRUnichar *label, const PRUnichar *immg, PRUint64 *_retval) {
+   PRUint32 len=PRUstrlen(label);  
+   gchar * utf8=g_utf16_to_utf8 ((const gunichar2 *)label, len, NULL, NULL, NULL);
+   len=PRUstrlen(immg);  
+   
+gchar * iconn=g_utf16_to_utf8 ((const gunichar2 *)immg, len, NULL, NULL, NULL);
+
+   gtk_image_menu_item_set_image((GtkImageMenuItem*)item, gtk_image_new_from_stock (iconn,GTK_ICON_SIZE_MENU));
+   *_retval = (PRUint64)item;
+   g_free(utf8);  
+   g_free(iconn); 
+    return NS_OK;
+}
+
+//////*/
+
+void nsTray::AddMenuItemCallback(PRUint64 item,nsITrayCallback *aCallback) {
+    DEBUG_CALL("AddMenuItemCallback")
+  
+    nsCOMPtr<nsITrayCallback> item_callback = aCallback;
+    this->item_callback_list[item] = item_callback;
+    g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(nsTray::item_event), this);  
+}
+
+void nsTray::RemoveMenuItemCallback(PRUint64 item) {
+    DEBUG_CALL("RemoveMenuItemCallback")
+    this->item_callback_list.erase(item);
+}
+
+/* void menuAppend (in PRUint64 menu_item); */
+NS_IMETHODIMP nsTray::MenuAppend(PRUint64 menu, PRUint64 item, nsITrayCallback *aCallback) {
+    DEBUG_CALL("menuAppend")
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(item));
+    AddMenuItemCallback(item,aCallback);
+
+    return NS_OK;
+}
+
+/* void menuPrepend (in PRUint64 item, in nsITrayCallback aCallback); */
+NS_IMETHODIMP nsTray::MenuPrepend(PRUint64 menu, PRUint64 item, nsITrayCallback *aCallback) {
+    DEBUG_CALL("menuPrepend")
+
+    gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), GTK_WIDGET(item));
+    AddMenuItemCallback(item,aCallback);
+
+    return NS_OK;
+}
+/* void menuInsert (in PRUint64 menu, in PRUint64 item, in PRUint64 pos, in nsITrayCallback aCallback); */
+NS_IMETHODIMP nsTray::MenuInsert(PRUint64 menu, PRUint64 item, PRUint64 pos, nsITrayCallback *aCallback) {
+    DEBUG_CALL("menuInsert")
+    
+    gtk_menu_shell_insert(GTK_MENU_SHELL(menu), GTK_WIDGET(item), (gint)pos);
+    AddMenuItemCallback(item,aCallback);
+
+    return NS_OK;
+}
+
+/* void menuSub (in PRUint64 item, in PRUint64 sub_menu); */
+NS_IMETHODIMP nsTray::MenuSub(PRUint64 item, PRUint64 sub_menu) {
+    DEBUG_CALL("menuSub")
+    
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), GTK_WIDGET(sub_menu));
+
+    return NS_OK;
+}
+
+/* void menuRemove (in PRUint64 menu, in PRUint64 item); */
+NS_IMETHODIMP nsTray::MenuRemove(PRUint64 menu, PRUint64 item) {
+    DEBUG_CALL("menuRemove")
+    
+    gtk_container_remove(GTK_CONTAINER(menu), GTK_WIDGET(item));
+    RemoveMenuItemCallback(item);
+
+    return NS_OK;
+}
+
+/* void menuRemoveAll (in PRUint64 menu); */
+NS_IMETHODIMP nsTray::MenuRemoveAll(PRUint64 menu) {
+    DEBUG_CALL("menuRemoveAll")
+    
+    gtk_container_foreach(GTK_CONTAINER(menu), (GtkCallback)(nsTray::menu_remove_all_callback), this);
+
+    return NS_OK;
+}
+
+/* void menuLength (in PRUint64 menu); */
+NS_IMETHODIMP nsTray::MenuLength(PRUint64 menu, PRUint64 *_retval) {
+    DEBUG_CALL("menuLength")
+
+    GList *list = gtk_container_get_children(GTK_CONTAINER(menu));
+    *_retval = g_list_length(list);
+
+    return NS_OK;
+}
+
+/* void setDefaultXpmIcon (in PRUint64 app); */
+NS_IMETHODIMP nsTray::SetDefaultXpmIcon(PRUint32 app) 
+{
+    DEBUG_CALL("setDefaultXpmIcon")
+
+ if(this->icon) { g_object_unref(this->icon); this->icon=NULL;}
+ if(this->default_icon) { g_object_unref(this->default_icon); this->default_icon=NULL;}
+ if(this->special_icon) { g_object_unref(this->special_icon); this->special_icon=NULL;}
+
+ char **df_icon;
+ char **sp_icon;
+
+  /* APPS
+
+   0 - Unknown (defaults to firefox)
+   1 - Firefox
+   2 - Thunderbird
+   3 - Swiftdove
+   4 - Swiftweasel
+   5 - Icedove
+   6 - iceweasel 
+   7 - icecat
+   8 - songbird
+   9 - sunbird
+   10 - seamonkey
+
+  */
+
+ switch(app)
+ {
+   case 11: //chatzilla
+           df_icon=(char**)chatzilla_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+
+   case 10: //seamonkey  
+           df_icon=(char**)seamonkey_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 9: //sunbird
+           df_icon=(char**)sunbird_xpm;
+           sp_icon=(char**)sunbird_xpm;
+           break;
+   case 8: //songbird
+           df_icon=(char**)songbirdegg_xpm;
+           sp_icon=(char**)songbird_xpm;
+           break;
+   case 7: //icecat
+           df_icon=(char**)icecat_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 6: //iceweasel
+           df_icon=(char**)weasel_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 5: //swiftdove
+           df_icon=(char**)dove_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 4: //swiftweasel
+           df_icon=(char**)weasel_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 3: //swiftdove
+           df_icon=(char**)dove_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 2: //thunderbird
+           df_icon=(char**)thunderbird_xpm;
+           sp_icon=(char**)newmail_xpm;
+           break;
+   case 1: //firefox
+   default:
+           df_icon=(char**)firefox_xpm;
+           sp_icon=(char**)firefox_xpm;
+           break;
+ }
+  
+ this->default_icon = gdk_pixbuf_new_from_xpm_data((const char**)df_icon);
+ this->special_icon = gdk_pixbuf_new_from_xpm_data((const char**)sp_icon);
+
+ gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(this->default_icon));
+/*
+ gtk_status_icon_set_tooltip(this->systray_icon, text);
+ gtk_status_icon_set_visible(this->systray_icon, TRUE);*/
+
+ return NS_OK;   
+}
+
+
+bool nsTray::SetIcon(const char *filename, GdkPixbuf *& icon)
+{
+   DEBUG_CALL("setIcon")
+   DEBUGSTR(filename);
+   
+
+   GError * error = NULL;   
+   GdkPixbuf *new_icon=gdk_pixbuf_new_from_file(filename, &error);
+   if(new_icon) 
+    {
+      DEBUGSTR("OK!")
+
+      if(icon) { 
+           g_object_unref(icon); 
+      }
+      icon=new_icon;   
+    }
+   else 
+    {
+       DEBUGSTR("ERROR!")
+       return false;
+    }
+    return true;
+}
+
+
+  /* boolean setDefaultIcon (in string filename); */
+NS_IMETHODIMP nsTray::SetDefaultIcon(const char *filename, PRBool *_retval)
+{
+    DEBUG_CALL("setDefaultIcon")
+
+    *_retval=SetIcon(filename,this->default_icon);
+    gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(default_icon));
+    
+    return NS_OK;   
+}
+
+  /* boolean setSpecialIcon (in string filename); */
+NS_IMETHODIMP nsTray::SetSpecialIcon(const char *filename, PRBool *_retval) 
+{
+    DEBUG_CALL("setSpecialIcon")
+
+    *_retval=SetIcon(filename,this->special_icon);
+    gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(special_icon));
+    
+    return NS_OK;   
+}
+
+
+#define MIN_FONT_SIZE 4
+
+GdkPixbuf *renderTextWithAlpha(int w, int h, gchar *text, const gchar *colorstr)
+{
+   GdkColormap* cmap=gdk_rgb_get_colormap();
+  int screen_depth=24;
+  if(cmap) screen_depth=cmap->visual->depth;
+   
+  GdkColor fore = { 0, 0, 0, 0 }; 
+  GdkColor alpha  = { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF};
+
+  if(  gdk_color_parse  (colorstr, &fore) ) DEBUGSTR("COLOR OK")
+  else DEBUGSTR("COLOR ERROR")
+	
+  if(fore.red==alpha.red && fore.green==alpha.green && fore.blue==alpha.blue)
+	alpha.red=0; //make sure alpha is different from fore
+    
+  gdk_colormap_alloc_color (cmap, &fore,true,true);
+  gdk_colormap_alloc_color (cmap, &alpha,true,true);
+
+  
+  GdkPixmap *pm = gdk_pixmap_new (NULL, w, h, screen_depth);
+ 
+  GdkGC *gc = gdk_gc_new (pm);
+
+  gdk_gc_set_foreground(gc,&alpha);  
+  gdk_draw_rectangle(pm,gc,true, 0, 0, w ,h );
+
+  GtkWidget *scratch = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_widget_realize (scratch);
+
+  PangoLayout *layout = gtk_widget_create_pango_layout (scratch, NULL);
+  gtk_widget_destroy (scratch);
+
+  PangoFontDescription *fnt = pango_font_description_from_string("Sans 18");
+
+  pango_font_description_set_weight (fnt,PANGO_WEIGHT_SEMIBOLD);
+  pango_layout_set_spacing            (layout,0);
+
+  pango_layout_set_font_description   (layout, fnt);
+
+  pango_layout_set_text (layout, text,-1);
+  
+  int tw=0;
+  int th=0;
+  int sz;
+  int border=4;
+  
+  pango_layout_get_pixel_size(layout, &tw, &th);
+
+  while( (tw>w - border || th > h - border)) //fit text to the icon by decreasing font size
+  {
+    sz=pango_font_description_get_size (fnt);
+
+    if(sz<MIN_FONT_SIZE) {  
+        sz=MIN_FONT_SIZE;
+        break; 
+    }
+    sz-=PANGO_SCALE; 
+   
+    pango_font_description_set_size (fnt,sz);
+    pango_layout_set_font_description   (layout, fnt);
+    pango_layout_get_pixel_size(layout, &tw, &th);
+  }
+
+  //centers the text
+  int px, py;
+  px=(w-tw)/2;
+  py=(h-th)/2;
+
+
+  //paints the text
+  gdk_draw_layout_with_colors (pm, gc, px, py, layout, &fore,NULL);
+  
+  GdkPixbuf *buf = gdk_pixbuf_get_from_drawable (NULL, pm, NULL, 0, 0, 0, 0, w, h);   
+  g_object_unref (pm);   
+  
+  GdkPixbuf *alpha_buf = gdk_pixbuf_add_alpha  (buf, TRUE, (guchar)alpha.red, (guchar)alpha.green, (guchar)alpha.blue);
+  g_object_unref (buf);   
+  
+  g_object_unref (layout);   
+  pango_font_description_free (fnt);
+  g_object_unref (gc);   
+
+  return alpha_buf;
+}
+
+bool hasPrintedChars(gchar *text) {
+  if(!text) return false;
+  while(*text) 
+  {
+    if( !g_unichar_isspace(*text) ) return true;
+    text++;
+  }
+  return false;
+}
+
+GdkPixbuf *DrawText (GdkPixbuf *base, gchar *text, const gchar *colorstr)
+{
+  if(!base || !text) return NULL;
+
+
+  GdkPixbuf *dest=gdk_pixbuf_copy(base); //copy the icon content as background
+
+  int w=gdk_pixbuf_get_width(base);  
+  int h=gdk_pixbuf_get_height(base); 
+  
+  if(hasPrintedChars(text)) {
+    //get the text rendered on a new pixbuf with alpha channel
+    GdkPixbuf *textbuf=renderTextWithAlpha(w, h, text, colorstr); 
+   
+    //merge the rendered text on top
+    gdk_pixbuf_composite (textbuf,dest,0,0,w,h,0,0,1,1,GDK_INTERP_NEAREST,255);
+  
+    g_object_unref(textbuf);
+  }
+
+  return dest;
+}
+
+
+/* void setIconText (in string text, in string color); */
+NS_IMETHODIMP nsTray::SetIconText(const char *text, const char *color) 
+{
+    DEBUG_CALL("setIconText")
+
+    if(strlen(text)>0 && special_icon) 
+     {
+       GdkPixbuf *edit=DrawText (special_icon, (gchar *)text, color);       
+
+       gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(edit));
+//       gtk_status_icon_set_visible(this->systray_icon, TRUE);
+       //if(old) delete old;
+     }
+    else {
+      if(default_icon)
+      {
+       gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(default_icon));
+//       gtk_status_icon_set_visible(this->systray_icon, TRUE);
+      }
+    }
+
+    return NS_OK;   
+}
+
+  /* void setTrayTooltip (in wstring text); */
+NS_IMETHODIMP nsTray::SetTrayTooltip(const PRUnichar *text){
+  DEBUG_CALL("setTrayTooltip")
+
+  if(!text) return NS_OK;
+
+  PRUint64 len=PRUstrlen(text);
+  gchar * utf8=g_utf16_to_utf8 ((const gunichar2 *)text,len,NULL,NULL,NULL);
+
+  gtk_status_icon_set_tooltip(this->systray_icon, utf8);
+
+  g_free(utf8);  
+ 
+  return NS_OK;
+}
+
+/* void setTrayIcon(in PRUint32 FLAG); */
+NS_IMETHODIMP nsTray::SetTrayIcon(PRUint32 FLAG) {
+    DEBUG_CALL("setTrayIcon")
+
+
+    if (!FLAG)
+       	gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(default_icon));
+    else
+		gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(this->systray_icon), GDK_PIXBUF(special_icon));
+	
+	//gtk_status_icon_set_visible(this->systray_icon, TRUE);
+  	return NS_OK;
+}
+
+
+/*
+NS_IMETHODIMP nsTray::Init_tooltip_image() {
+	GtkWidget * sysIW = GTK_WIDGET(this->systray_icon);
+	gtk_widget_set_has_tooltip(sysIW,TRUE);
+	GtkWidget *winTooltip = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	g_signal_connect(GTK_OBJECT(this->systray_icon), "query-tooltip",
+					   G_CALLBACK(gtk_widget_set_tooltip_window), 
+					   (sysIW,
+					   GTK_WINDOW(winTooltip)) );
+  	return NS_OK;
+}
+*/
+
+/* void setCloseBlocking (in boolean block); */
+NS_IMETHODIMP nsTray::SetCloseBlocking(PRBool val)  
+{
+    DEBUG_CALL("setCloseBlocking")
+    block_close=val;
+    return NS_OK;
+}
+
+/* void getCloseBlocking (out boolean block); */
+NS_IMETHODIMP nsTray::GetCloseBlocking(PRBool *val) 
+{
+    DEBUG_CALL("getCloseBlocking")
+
+    if(val)*val=this->block_close;
+    return NS_OK;
+}
+
+/* void setMinimizeBlocking (in boolean val); */
+NS_IMETHODIMP nsTray::SetMinimizeBlocking(PRBool val)
+{
+    DEBUG_CALL("SetMinimizeBlocking")
+    block_minimize=val;
+    return NS_OK;
+}
+
+/* void getMinimizeBlocking (out boolean val); */
+NS_IMETHODIMP nsTray::GetMinimizeBlocking(PRBool *val)
+{
+    DEBUG_CALL("GetMinimizeBlocking")
+    if(val)*val=this->block_minimize;
+    return NS_OK;
+}
+
+
+
+/* void initNotification(in string appname); */
+NS_IMETHODIMP nsTray::InitNotification(const gchar * appName) {
+    DEBUG_CALL("initNotification")
+
+	  
+// REMOVE NOTIFY 
+/*	notify_init(appName);
+	sys_notification=notify_notification_new_with_status_icon(
+											"FireTray Notification", 
+											NULL,
+											NULL,
+											this->systray_icon);
+											
+	notify_notification_attach_to_status_icon(sys_notification,
+                                              this->systray_icon);
+	notify_notification_set_timeout(sys_notification,NS_NOTIFY_TIME);
+*/	
+	return NS_OK;
+}
+
+/* void showANotification(in wstring title, in wstring info,in string image); */
+NS_IMETHODIMP nsTray::ShowANotification(const PRUnichar *title,const PRUnichar * info,const gchar *image) {
+    DEBUG_CALL("showANotification")
+
+ // REMOVE NOTIFY  	
+ /* 	PRUint64 len=PRUstrlen(title);
+  	gchar * utf8_title =g_utf16_to_utf8 ((const gunichar2 *)title,len,NULL,NULL,NULL);
+  	
+  	len=PRUstrlen(info);
+  	gchar * utf8_info =g_utf16_to_utf8 ((const gunichar2 *)info,len,NULL,NULL,NULL);
+
+	notify_notification_update(this->sys_notification,
+									utf8_title,utf8_info,image);
+							
+	if(!image)								
+		notify_notification_set_icon_from_pixbuf(sys_notification,GDK_PIXBUF(this->special_icon));
+	
+	notify_notification_show(sys_notification,NULL);
+
+	g_free(utf8_title);  	
+  	g_free(utf8_info);*/
+  	return NS_OK;
+}
+
+
+
+GtkWindow * get_gtkwindow_from_gdkwindow(GdkWindow *win)
+{
+      /* don't know if there's a better way ...  */
+
+      GList*  list=gtk_window_list_toplevels();
+
+      if(list) {
+         GList* pos=g_list_first(list);
+         while(pos!=NULL)
+         {
+           
+           GtkWindow *w=(GtkWindow *)pos->data;
+          
+           if(w) {
+              
+               GdkWindow *gdw=((GtkWidget *)w)->window;
+               
+                if(gdw==win)
+                { return w; }
+
+              }
+          
+           pos=g_list_next(pos);
+
+         }  
+      }
+
+      return NULL; // not found
+}
+
+
+
+void DebugATOM(char *msg, Atom atom)
+{
+  #ifdef DO_DEBUG
+  
+   CAPTURE_ERRORS()
+          
+   char *str=XGetAtomName(GDK_DISPLAY(), atom);
+   if(str)
+     DEBUGSTR(msg << " "<<str)
+      
+   RELEASE_CAPTURE("BAD ATOM!") 
+  
+  #endif
+}
+
+
+#define WM_STATE_ELEMENTS 1
+
+unsigned long getWMState (Window w)
+{
+  DEBUG_CALL("getWMState")
+  
+  unsigned long state=0; 
+  
+  Display *display=GDK_DISPLAY();
+  Atom property=XInternAtom(display, "WM_STATE", False);
+  Atom actual_type;
+  int actual_format;
+  unsigned long nitems;
+  unsigned long bytes_after;
+  unsigned char *prop_value;
+  
+  int res=XGetWindowProperty(display, w, property, 0L, WM_STATE_ELEMENTS, false, property, 
+                        &actual_type, &actual_format, &nitems, &bytes_after, 
+                        &prop_value);
+  
+  if( (res==Success) && (actual_type==property) && (nitems==WM_STATE_ELEMENTS) )
+  {
+     if(prop_value) state=*prop_value;    
+  }
+  
+  if (prop_value)
+  {
+    XFree ((char *)prop_value);
+    prop_value = NULL;
+  }
+
+  return state;
+} 
+
+bool isIconified(Window w)
+{
+  DEBUG_CALL("isIconified")
+  return (getWMState(w) == IconicState);
+}
+
+
+GdkFilterReturn key_filter_func(GdkXEvent *xevent, GdkEvent *event, gpointer data)
+{
+   if(!data || !xevent) return GDK_FILTER_CONTINUE;
+
+   XEvent *e=(XEvent *)xevent;
+   
+   if(e->xany.type!=KeyPress) return GDK_FILTER_CONTINUE;
+
+   XKeyEvent *kev=(XKeyEvent *)e;
+   nsTray *tray = (nsTray *)data;   
+   PRBool ret = TRUE;
+
+   DEBUGSTR("KEYPRESS EVENT: KEY="<<kev->keycode) 
+
+   KeySym ks=XKeycodeToKeysym (GDK_DISPLAY (), (KeyCode)kev->keycode,0);
+   if(ks==NoSymbol) return GDK_FILTER_CONTINUE;
+   char *str=XKeysymToString(ks);
+   if(!str) str=(char *)"-"; 
+   if(tray->key_callback)tray->key_callback->Call(str, kev->keycode, &ret);
+              
+   return GDK_FILTER_CONTINUE;
+}
+
+
+GdkFilterReturn filter_func(GdkXEvent *xevent, GdkEvent *event, gpointer data)
+{
+   if(!data || !xevent) return GDK_FILTER_CONTINUE;
+
+   XEvent *e=(XEvent *)xevent;
+   nsTray *tray = (nsTray *)data;
+   
+   Window xwin=e->xany.window;
+   window_state *ws;
+   
+   switch(e->xany.type)  
+    {
+      case UnmapNotify: 
+           if(isIconified(xwin)) 
+            {
+              FDEBUGSTR("Minimize-Event")
+              if(tray) tray->minimizeEvent();                               
+            }
+           else
+              FDEBUGSTR("Unmap-Notify")
+           break;   
+
+      case ClientMessage: 
+
+            if(e->xclient.data.l && tray) 
+            {
+             if((Atom)e->xclient.data.l[0]==delete_window)
+             {
+                if(tray->closeEvent())
+                  return GDK_FILTER_REMOVE; 
+             }
+            }
+
+            break;
+            
+     case VisibilityNotify: 
+             FDEBUGSTR("VisibilityNotify-NOTIFY")
+             
+             //update window visibility state 
+             if(tray->handled_windows.count(xwin)>0) 
+             {
+                ws=tray->handled_windows[xwin]; 
+                ws->visibility=e->xvisibility.state; 
+                DEBUGSTR("WINDOW: "<<xwin<<" VISIBILITY CHANGED TO: " << ws->visibility);
+                //GdkWindow *win=gdk_window_lookup (xwin);
+                //if(win) gdk_window_get_position(win, &(ws->pos_x), &(ws->pos_y));
+                  
+            //FDEBUGSTR(" UPDATING WS_STATE:"<<e->xvisibility.state)
+             }
+
+             break; 
+             
+      default:       
+             break;
+
+    }
+
+   return GDK_FILTER_CONTINUE;
+}
+
+
+
+
+void nsTray::minimizeEvent()
+{
+   DEBUG_CALL("minimizeEvent") 
+
+   PRBool ret = TRUE;    
+   if(block_minimize) 
+    { 
+       FDEBUGSTR("MINIMIZING TO TRAY")
+
+       if(tray_callback) tray_callback->Call(&ret);
+       else  FDEBUGSTR("CALLBACK NOT DEFINED")
+    }    
+}
+  
+
+bool nsTray::closeEvent()
+{    
+   DEBUG_CALL("closeEvent")       
+   
+   PRBool ret = TRUE;
+   if(block_close) 
+    { 
+       FDEBUGSTR("CLOSE BLOCKING")
+
+       if(tray_callback) tray_callback->Call(&ret);
+       else  FDEBUGSTR("CALLBACK NOT DEFINED")
+       
+       return true;      
+    }
+    
+    return false; //do not block closing
+}
+
+/* void setWindowHandler(in nsIBaseWindow aBaseWindow); */
+NS_IMETHODIMP nsTray::SetWindowHandler(nsIBaseWindow *aBaseWindow) 
+{
+    DEBUG_CALL("setWindowHandler")
+
+      nsresult rv;
+
+      NS_ENSURE_ARG_POINTER(aBaseWindow);
+
+      nativeWindow aNativeWindow;
+      rv = aBaseWindow->GetParentNativeWindow(&aNativeWindow);
+      NS_ENSURE_SUCCESS(rv, rv);
+
+      CAPTURE_ERRORS()
+
+      GdkWindow *gdk_win=gdk_window_get_toplevel((GdkWindow*) aNativeWindow);
+
+      Window xwin=GDK_WINDOW_XID(gdk_win);
+
+      if(handled_windows.count(xwin)>0) FDEBUGSTR(">>ALREADY HANDLED")
+      else {
+        GdkEventMask m=(GdkEventMask)(GDK_VISIBILITY_NOTIFY_MASK | (long) gdk_window_get_events (gdk_win));
+        
+        gdk_window_set_events   (gdk_win, m);
+
+        window_state *ws=new window_state;
+        ws->visibility=VisibilityUnobscured;
+
+        handled_windows[xwin]=ws;
+        gdk_window_add_filter (gdk_win, filter_func, this);
+      }
+
+      RELEASE_CAPTURE("Error setting window handler")
+
+      return NS_OK;
+}
+
+
+
+/* boolean addHandledKeyCode (in PRUint64 key_code); */
+NS_IMETHODIMP nsTray::AddHandledKeyCode(PRUint64 key_code, PRBool *_retval) {
+  #ifdef _KEYSYMS_
+
+      CAPTURE_ERRORS()
+
+      KeyCode key=(KeyCode) key_code;
+
+      GdkDisplay *gdkdisplay=gdk_display_get_default();
+      
+      gint nscr=gdk_display_get_n_screens(gdkdisplay);
+
+      for (int i=0; i<nscr; i++)
+      {
+         GdkScreen *screen=gdk_display_get_screen(gdkdisplay,i);
+         GdkWindow *rootwin=gdk_screen_get_root_window(screen);
+         XGrabKey( GDK_DISPLAY() , key, AnyModifier, GDK_WINDOW_XID(rootwin), true, GrabModeAsync, GrabModeAsync);
+         gdk_window_add_filter (rootwin, key_filter_func, this);
+         DEBUGSTR("ADDED KEY FILTER FOR KEY " << key_code)
+      }      
+
+      RELEASE_CAPTURE("Unable to grab key "<< key_code)
+
+  #endif
+
+ return NS_OK;
+}
+
+/* boolean addHandledKey (in string key_string); */
+NS_IMETHODIMP nsTray::AddHandledKey(const char *key_string, PRBool *_retval) {
+    DEBUG_CALL("addHandledKey")
+      
+#ifdef _KEYSYMS_
+      if(!key_string) return NS_OK;
+
+      CAPTURE_ERRORS();
+
+      DEBUGSTR("KEY STRING: "<< key_string)  
+
+      KeySym ksym=getKeySymFromString(key_string); //XStringToKeysym
+      DEBUGSTR(ksym);
+
+      if(ksym==NoSymbol) RELEASE_CAPTURE_RETURN("NO_SYMBOL", NS_OK) 
+
+      KeyCode key=XKeysymToKeycode(GDK_DISPLAY(), ksym);
+     
+      if(!key) RELEASE_CAPTURE_RETURN("NOKEY_CODE",NS_OK)
+      
+      PRBool ret=true; 
+
+      RELEASE_CAPTURE("Couldn't get grab on key "<< key_string)
+
+      AddHandledKeyCode( (PRUint64)key ,&ret);
+#endif
+
+      return NS_OK;
+}
+
+/* string getKeycodeString (in PRUint64 key_code); */
+NS_IMETHODIMP nsTray::GetKeycodeString(PRUint64 key_code, char **_retval) 
+{
+    DEBUG_CALL("getKeyCodeString")
+
+    DEBUGSTR("KEY: " << key_code)
+    
+    char *key_string=NULL;
+    KeySym ks=XKeycodeToKeysym (GDK_DISPLAY (), (KeyCode)key_code,0);
+    if(ks==NoSymbol) key_string=(char*)"unknown";
+    key_string=XKeysymToString(ks);
+
+    DEBUGSTR("KEY: " << key_string)
+
+    if(!_retval) return NS_ERROR_NULL_POINTER;
+
+//    *_retval = (char*) nsMemory::Clone(key_string, sizeof(char)*(strlen(key_string)+1));
+
+    char *tmp = (char*) nsMemory::Alloc(4);//nsMemory::Clone("pippo", 5);
+    if(!tmp) DEBUGSTR("CLONE FAILED!!!")
+
+    return *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
+}
+
+
+
+
+
+/*     boolean getFocusState(in nsIBaseWindow aBaseWindow); */
+NS_IMETHODIMP nsTray::GetFocusState(nsIBaseWindow *aBaseWindow, PRBool *_retval) 
+{
+    DEBUG_CALL("getFocusState")
+
+      *_retval=false;
+      nsresult rv;
+  
+      NS_ENSURE_ARG_POINTER(aBaseWindow);
+
+      nativeWindow aNativeWindow;
+      rv = aBaseWindow->GetParentNativeWindow(&aNativeWindow);
+      NS_ENSURE_SUCCESS(rv, rv);
+
+      CAPTURE_ERRORS()
+
+      GdkWindow *gdk_win=gdk_window_get_toplevel((GdkWindow*) aNativeWindow);
+
+      //XWindowAttributes res;
+   
+      Window xwin=GDK_WINDOW_XID(gdk_win);
+
+      int vst=-1;
+      
+      window_state *ws=handled_windows[xwin];
+      if(ws) 
+       { vst=ws->visibility; *_retval = ws->visibility == 0; DEBUGSTR(" GOT VIS.STATE")}
+      else 
+        *_retval = TRUE;
+
+      DEBUGSTR("GET_FOCUS_STATE: xwin="<< xwin << " vstate: "<<vst)
+
+      if(*_retval)DEBUGSTR(" RETVAL: TRUE")
+       //else DEBUGSTR(" RETVAL: FALSE")
+
+       
+      
+//      XGetWindowAttributes(GDK_DISPLAY(), xwin, &res);
+      
+
+      //DEBUGSTR("MAP-STATE "<<res.map_state)
+  
+
+      RELEASE_CAPTURE("Error getting window focus state")    
+/*
+
+      GtkWidget *w=(GtkWidget *)get_gtkwindow_from_gdkwindow(gdk_win);
+
+      if(GTK_WIDGET_HAS_FOCUS(w)) *_retval=true;*/
+
+      return NS_OK;
+}
+
+
+
+
diff --git a/components/nsTray.h b/components/nsTray.h
new file mode 100644
index 0000000..b5e7611
--- /dev/null
+++ b/components/nsTray.h
@@ -0,0 +1,96 @@
+#ifndef _TRAY_H_
+#define _TRAY_H_
+
+#include <map>
+
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <pango/pango.h>
+#include <glib-object.h>
+#include <gtk/gtksignal.h>
+// REMOVE NOTIFY #include <libnotify/notify.h>
+#include <X11/Xlib.h>
+
+#include "nsITray.h"
+#include "nsCOMPtr.h"
+
+#define NS_ITRAY_CONTRACTID "@mozilla.org/FireTray;1"
+#define NS_ITRAY_CLASSNAME "System Tray for Firefox"
+#define NS_ITRAY_CID  { 0xbf249f85, 0x20f2, 0x49be, { 0x96, 0xf3, 0x96, 0x81, 0xf3, 0xbb, 0x03, 0x34 } }
+#define NS_NOTIFY_TIME 2500
+
+//#define Point std::pair<gint,gint>
+
+struct window_state //keeps needed window information ... 
+{
+  
+  bool valid; 
+  
+  int visibility; // VisibilityUnobscured, VisibilityPartiallyObscured, or VisibilityFullyObscured.
+  
+  int pos_x;	//save the position of the window 
+  int pos_y;
+  
+  int width;
+  int height;
+
+  window_state()
+  {
+    valid=false;
+  }
+  
+};
+
+/* Header file */
+class nsTray : public nsITray {
+public:
+    NS_DECL_ISUPPORTS
+    NS_DECL_NSITRAY
+
+    nsTray();
+
+    nsCOMPtr<nsITrayCallback> tray_callback;
+    nsCOMPtr<nsIScrollCallback> scroll_callback;
+    nsCOMPtr<nsIKeySymCallback> key_callback;
+
+
+    std::map <PRUint64, nsCOMPtr<nsITrayCallback> > item_callback_list;
+    std::map<Window,window_state *> handled_windows;
+   
+    static void activate(GtkStatusIcon*, gpointer);
+    static gboolean scroll(GtkStatusIcon  *status_icon, GdkEventScroll *event, gpointer user_data);
+    static void popup(GtkStatusIcon*, guint, guint, gpointer);
+    static void item_event(GtkWidget *, gpointer);
+    static void menu_remove_all_callback(GtkWidget *, gpointer);
+
+    void minimizeEvent(); 
+    bool closeEvent();    
+    
+private:
+  
+    void AddMenuItemCallback(PRUint64 item,nsITrayCallback *aCallback);
+    void RemoveMenuItemCallback(PRUint64 item);
+    bool SetIcon(const char *filename, GdkPixbuf *& icon);
+    ~nsTray();
+
+    bool block_close;
+    bool block_minimize;
+
+    GtkStatusIcon *systray_icon;
+    
+    GdkPixbuf *default_icon;
+    GdkPixbuf *special_icon;
+
+    GdkPixbuf *icon;
+
+    GtkWidget *pop_menu;
+    PangoLayout *layout;
+
+// REMOVE NOTIFY   NotifyNotification *sys_notification;
+
+
+protected:
+    /* additional members */
+};
+
+#endif //_TRAY_H_
diff --git a/components/nsTrayModule.cpp b/components/nsTrayModule.cpp
new file mode 100644
index 0000000..359c0b6
--- /dev/null
+++ b/components/nsTrayModule.cpp
@@ -0,0 +1,53 @@
+#ifdef GECKO_2
+  #include "mozilla/ModuleUtils.h"
+#else  // GECKO_2
+  #include "nsIGenericFactory.h"
+#endif // GECKO_2
+
+#include "nsTray.h"
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsTray)
+
+#ifdef GECKO_2
+
+NS_DEFINE_NAMED_CID(NS_ITRAY_CID);
+
+static const mozilla::Module::CIDEntry kTrayCIDs[] = {
+    { &kNS_ITRAY_CID, false, NULL, nsTrayConstructor },
+    { NULL }
+};
+
+static const mozilla::Module::ContractIDEntry kTrayContracts[] = {
+    { NS_ITRAY_CONTRACTID, &kNS_ITRAY_CID },
+    { NULL }
+};
+
+static const mozilla::Module::CategoryEntry kTrayCategories[] = {
+    { NULL }
+};
+
+static const mozilla::Module kTrayModule = {
+    mozilla::Module::kVersion,
+    kTrayCIDs,
+    kTrayContracts,
+    kTrayCategories
+};
+
+NSMODULE_DEFN(nsTrayModule) = &kTrayModule;
+NS_IMPL_MOZILLA192_NSGETMODULE(&kTrayModule)
+
+#else  // GECKO_2
+
+static nsModuleComponentInfo components[] =
+{
+    {
+       NS_ITRAY_CLASSNAME, 
+       NS_ITRAY_CID,
+       NS_ITRAY_CONTRACTID,
+       nsTrayConstructor,
+    }
+};
+
+NS_IMPL_NSGETMODULE("nsTrayModule", components)
+
+#endif // GECKO_2
\ No newline at end of file
diff --git a/components/pixmaps/chatzilla.xpm b/components/pixmaps/chatzilla.xpm
new file mode 100644
index 0000000..86b3f38
--- /dev/null
+++ b/components/pixmaps/chatzilla.xpm
@@ -0,0 +1,207 @@
+/* XPM */
+static const char * chatzilla_xpm[] = {
+"64 64 140 2",
+"  	c None",
+". 	c #4C5864",
+"+ 	c #4A5763",
+"@ 	c #374552",
+"# 	c #3D4B57",
+"$ 	c #515D68",
+"% 	c #5B6771",
+"& 	c #5A6570",
+"* 	c #46535F",
+"= 	c #384653",
+"- 	c #6F7982",
+"; 	c #CBCFD2",
+"> 	c #EBECED",
+", 	c #F5F6F6",
+"' 	c #F4F5F6",
+") 	c #DDE0E2",
+"! 	c #949BA2",
+"~ 	c #69747E",
+"{ 	c #424F5B",
+"] 	c #CDD0D4",
+"^ 	c #FFFFFF",
+"/ 	c #E3E5E7",
+"( 	c #4E5A66",
+"_ 	c #43505C",
+": 	c #7B848D",
+"< 	c #FAFBFB",
+"[ 	c #FDFDFD",
+"} 	c #737D86",
+"| 	c #67717B",
+"1 	c #FCFCFC",
+"2 	c #FEFEFE",
+"3 	c #868F96",
+"4 	c #414E5B",
+"5 	c #56626D",
+"6 	c #44515E",
+"7 	c #8E969D",
+"8 	c #8C959C",
+"9 	c #B3B8BD",
+"0 	c #5B6670",
+"a 	c #4C5964",
+"b 	c #7E8790",
+"c 	c #B1B7BC",
+"d 	c #D9DBDE",
+"e 	c #DCDFE1",
+"f 	c #F0F1F2",
+"g 	c #D8DBDD",
+"h 	c #ADB2B8",
+"i 	c #59646F",
+"j 	c #3C4956",
+"k 	c #899299",
+"l 	c #394754",
+"m 	c #485460",
+"n 	c #4F5C67",
+"o 	c #D4D7DA",
+"p 	c #CED1D4",
+"q 	c #90979F",
+"r 	c #BBC0C4",
+"s 	c #646F79",
+"t 	c #E7E8EA",
+"u 	c #626D77",
+"v 	c #3B4956",
+"w 	c #838C94",
+"x 	c #ECEDEF",
+"y 	c #A0A7AD",
+"z 	c #E4E5E7",
+"A 	c #7A848C",
+"B 	c #959DA3",
+"C 	c #A9AFB4",
+"D 	c #F7F8F8",
+"E 	c #3F4C59",
+"F 	c #CACDD1",
+"G 	c #6B757F",
+"H 	c #A1A7AE",
+"I 	c #8F979E",
+"J 	c #68737D",
+"K 	c #525E69",
+"L 	c #EBEDEE",
+"M 	c #5A6671",
+"N 	c #E1E3E5",
+"O 	c #BCC0C5",
+"P 	c #505C68",
+"Q 	c #404D59",
+"R 	c #4A5762",
+"S 	c #525F6A",
+"T 	c #B9BEC3",
+"U 	c #DBDDE0",
+"V 	c #ADB3B8",
+"W 	c #F9F9FA",
+"X 	c #3A4855",
+"Y 	c #8C949B",
+"Z 	c #7F8890",
+"` 	c #3D4A57",
+" .	c #6C7780",
+"..	c #6E7881",
+"+.	c #D2D5D8",
+"@.	c #475460",
+"#.	c #55616C",
+"$.	c #DCDEE0",
+"%.	c #C5C9CD",
+"&.	c #BEC2C7",
+"*.	c #828B93",
+"=.	c #C3C7CB",
+"-.	c #B0B5BA",
+";.	c #58646E",
+">.	c #818A92",
+",.	c #899199",
+"'.	c #6F7A83",
+").	c #EAEBED",
+"!.	c #B5BABF",
+"~.	c #66717B",
+"{.	c #F2F3F3",
+"].	c #717B84",
+"^.	c #DFE1E3",
+"/.	c #8D959D",
+"(.	c #69747D",
+"_.	c #6D7781",
+":.	c #535F6A",
+"<.	c #AEB4B9",
+"[.	c #878F97",
+"}.	c #5D6973",
+"|.	c #4B5763",
+"1.	c #737C86",
+"2.	c #EFF0F1",
+"3.	c #57636E",
+"4.	c #E5E7E9",
+"5.	c #D9DCDE",
+"6.	c #747E87",
+"7.	c #B4BABF",
+"8.	c #AFB5BA",
+"9.	c #B8BDC1",
+"0.	c #C9CDD0",
+"a.	c #B8BDC2",
+"b.	c #77818A",
+"c.	c #9DA4AA",
+"d.	c #CACED2",
+"e.	c #44525D",
+"f.	c #78828A",
+"g.	c #848C94",
+"h.	c #9FA5AC",
+"i.	c #D3D6D9",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                          . + + + + + + + + + + + + + + + + + + + + + +         ",
+"                                                                      @ # $ % % % % % % % % % % % % % % % % % % % % % & *       ",
+"                                                                    = - ; > , , , , , , , , , , , , , , , , , , , , , ' ) ! = ~ ",
+"                                                                  . { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ ",
+"                                                                  @ : < ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ [ } @ ",
+"                                                                . { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ ",
+"                                      + |                       @ : < ^ ^ ^ ^ ^ ^ ^ 1 , , , , , , , 2 ^ ^ ^ ^ ^ ^ ^ ^ ^ [ ! = 3 ",
+"                          4 { 5 % % % & 6 @ @ _               . { ] ^ ^ ^ ^ ^ ^ ^ , 7 % % % % % % 8 , ^ ^ ^ ^ ^ ^ ^ ^ ^ 9 4 0   ",
+"                . @ a b c d e f , , , ' g h b i j             @ : < ^ ^ ^ ^ ^ ^ , k l     m @ @ n o ^ ^ ^ ^ ^ ^ ^ ^ ^ p n *     ",
+"            ~ @ a q ) 2 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2 f r s = +     . { ] ^ ^ ^ ^ ^ ^ , k l         4 4 9 ^ ^ ^ ^ ^ ^ ^ ^ ^ t u v       ",
+"          + j w ) 2 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ x y 4     @ : < ^ ^ ^ ^ ^ z A l           l B [ ^ ^ ^ ^ ^ ^ ^ ^ , w @         ",
+"          4 C D ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ [ C j @ E F ^ ^ ^ ^ ^ z G @           @ A , ^ ^ ^ ^ ^ ^ ^ ^ [ H l           ",
+"        @ I [ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ' J @ K L ^ ^ ^ ^ z G @ ~         = M N ^ ^ ^ ^ ^ ^ ^ ^ ^ O 4 P           ",
+"      @ u t ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ r j j r ^ ^ ^ z G @ ~         Q R F ^ ^ ^ ^ ^ ^ ^ ^ ^ o K Q             ",
+"      R ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ > S @ & T U T u @             E V 2 ^ ^ ^ ^ ^ ^ ^ ^ t J =               ",
+"      q 2 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ W , 1 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 2 : @ @ X 4 X @             = Y < ^ ^ ^ ^ ^ ^ ^ ^ , w @                 ",
+"    R ) ^ ^ ^ ^ ^ ^ ^ ^ ^ o Y G % Z z ^ ^ ^ ^ ^ ^ ^ ^ ^ 1 } `                     @  .x ^ ^ ^ ^ ^ ^ ^ ^ [ H l ..                ",
+"    } 1 ^ ^ ^ ^ ^ ^ ^ [ 9 n @ ` m @  .x ^ ^ ^ ^ ^ ^ ^ ^ +. at .                    v #.$.^ ^ ^ ^ ^ ^ ^ ^ ^ %.6 P                   ",
+"  @ H ^ ^ ^ ^ ^ ^ ^ ^ &.4 *         = *.t ^ ^ ^ ^ ^ ^ N J .                   * 6 %.^ ^ ^ ^ ^ ^ ^ ^ ^ $.#.v                     ",
+"  @ 9 ^ ^ ^ ^ ^ ^ ^ x s =             @ u c d U =.-.k ;.@                   0 l H [ ^ ^ ^ ^ ^ ^ ^ ^ x  .@                       ",
+"  X =.^ ^ ^ ^ ^ ^ ^ r = >.                = 4 4 X @ @                       @ w , ^ ^ ^ ^ ^ ^ ^ ^ D ,.=                         ",
+"  4 U ^ ^ ^ ^ ^ ^ ^ H @                                                   @ J t ^ ^ ^ ^ ^ ^ ^ ^ [ C j ~           = 6 '.i       ",
+"  4 d ^ ^ ^ ^ ^ ^ ^ B @                                                 v n o ^ ^ ^ ^ ^ ^ ^ ^ ^ %.6 +           l w g < ).! =   ",
+"  = r ^ ^ ^ ^ ^ ^ ^ !.@                     6     w ~.                * 4 9 ^ ^ ^ ^ ^ ^ ^ ^ ^ N M v           l k , ^ ^ ^ ).i   ",
+"  @ 9 ^ ^ ^ ^ ^ ^ ^ ) a .               @ M %.[ ^ ^ {.B 4 +         0 l B [ ^ ^ ^ ^ ^ ^ ^ ^ {.].@           l k , ^ ^ ^ ^ < '.  ",
+"  @ B ^ ^ ^ ^ ^ ^ ^ 2 B =             Q ;.^.^ ^ ^ ^ ^ [ !.{ ~       @ A , ^ ^ ^ ^ ^ ^ ^ ^ < /.l             k , ^ ^ ^ ^ ^ g 6   ",
+"  . (.D ^ ^ ^ ^ ^ ^ ^ x _.= ` :.:   0 X <.^ ^ ^ ^ ^ ^ ^ D  .=     @ M N ^ ^ ^ ^ ^ ^ ^ ^ 2 V E             A , ^ ^ ^ ^ ^ < [.@   ",
+"    { ] ^ ^ ^ ^ ^ ^ ^ ^ x B }.|.#   { 1.2.^ ^ ^ ^ ^ ^ ^ ^ H @ 3.v R F ^ ^ ^ ^ ^ ^ ^ ^ ^ F R @         @ G z ^ ^ ^ ^ ^ ^ ] { Q   ",
+"    = : < ^ ^ ^ ^ ^ ^ ^ ^ 2 , 4.; r 5.' ^ ^ ^ ^ ^ ^ ^ ^ W _.@ @ E V 2 ^ ^ ^ ^ ^ ^ ^ ^ N M @ @ @ @ @ @ G z ^ ^ ^ ^ ^ ^ < : @     ",
+"    6.E 9 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / |.@ = Y < ^ ^ ^ ^ ^ ^ ^ ^ [ 7.w w w w w w I z ^ ^ ^ ^ ^ ^ ^ ] { Q     ",
+"      v n o ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 8.= @ 1.2.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < : @ 7     ",
+"        @ J z ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ o K @ = 9.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ] { Q       ",
+"          @ G z ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ N J @ v # 0.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < : @ 7       ",
+"          ..@ u r ' ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ D a.M @ b.  @ c.2 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ d.{ e.        ",
+"              = j J r f 2 ^ ^ ^ ^ ^ ^ ^ ^ ^ D ] f.j v       * @.g.-.9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 h.#.=           ",
+"                  ` j i : B 9 !.i.U ; 9 -.Y (.{ @             * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ =             ",
+"                      _ @ @ @ @ Q 4 # @ @ @ `                                                                                   ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                ",
+"                                                                                                                                "};
diff --git a/components/pixmaps/dove.xpm b/components/pixmaps/dove.xpm
new file mode 100644
index 0000000..1258c9e
--- /dev/null
+++ b/components/pixmaps/dove.xpm
@@ -0,0 +1,1868 @@
+/* XPM */
+static const char * dove_xpm[] = {
+"63 64 1801 2",
+"  	c None",
+". 	c #92AFD8",
+"+ 	c #7298CD",
+"@ 	c #4375BC",
+"# 	c #2760B4",
+"$ 	c #225EB3",
+"% 	c #2F67B8",
+"& 	c #3D71BD",
+"* 	c #497AC1",
+"= 	c #5482C4",
+"- 	c #5C87C7",
+"; 	c #618AC9",
+"> 	c #648DCA",
+", 	c #668FCB",
+"' 	c #648ECA",
+") 	c #618BC9",
+"! 	c #5D88C7",
+"~ 	c #5683C5",
+"{ 	c #4C7CC2",
+"] 	c #4174BE",
+"^ 	c #326AB9",
+"/ 	c #245FB4",
+"( 	c #245EB1",
+"_ 	c #3D70BB",
+": 	c #6B93CB",
+"< 	c #9EB8DC",
+"[ 	c #82A4D1",
+"} 	c #5280C1",
+"| 	c #3067B6",
+"1 	c #2560B4",
+"2 	c #3067B8",
+"3 	c #5280C4",
+"4 	c #608BC9",
+"5 	c #6B93CC",
+"6 	c #749AD0",
+"7 	c #7CA0D2",
+"8 	c #82A3D4",
+"9 	c #86A6D5",
+"0 	c #88A8D6",
+"a 	c #89A9D7",
+"b 	c #8AAAD7",
+"c 	c #89A9D6",
+"d 	c #7EA1D1",
+"e 	c #7DA1D0",
+"f 	c #7BA0D0",
+"g 	c #6590C0",
+"h 	c #6690C3",
+"i 	c #638DC9",
+"j 	c #5582C5",
+"k 	c #4677C0",
+"l 	c #356BBA",
+"m 	c #2660B4",
+"n 	c #2E66B6",
+"o 	c #4879BD",
+"p 	c #7399CD",
+"q 	c #799DCC",
+"r 	c #4476BA",
+"s 	c #205BB0",
+"t 	c #245EB4",
+"u 	c #336AB9",
+"v 	c #4879C1",
+"w 	c #5B87C7",
+"x 	c #6A92CC",
+"y 	c #779CD1",
+"z 	c #82A4D5",
+"A 	c #8AAAD8",
+"B 	c #92B0DB",
+"C 	c #98B5DD",
+"D 	c #9CB8DE",
+"E 	c #9FB9DF",
+"F 	c #A1BCDF",
+"G 	c #A3BCE0",
+"H 	c #A2BBE0",
+"I 	c #90AFD7",
+"J 	c #B8CEE4",
+"K 	c #D9E5F1",
+"L 	c #B0C8DE",
+"M 	c #86A9CF",
+"N 	c #6B94B7",
+"O 	c #799DD1",
+"P 	c #6D95CD",
+"Q 	c #5F89C8",
+"R 	c #4A7BC1",
+"S 	c #386EBB",
+"T 	c #2761B4",
+"U 	c #225DB2",
+"V 	c #3B6FBA",
+"W 	c #628CC7",
+"X 	c #B3C9E4",
+"Y 	c #93B0D8",
+"Z 	c #376BB6",
+"` 	c #1754AE",
+" .	c #1C59B1",
+"..	c #356BBB",
+"+.	c #5C88C7",
+"@.	c #7DA0D3",
+"#.	c #92B0DA",
+"$.	c #9BB6DD",
+"%.	c #A1BBE0",
+"&.	c #A7BFE1",
+"*.	c #ACC2E3",
+"=.	c #AFC5E4",
+"-.	c #B0C6E4",
+";.	c #B2C8E5",
+">.	c #B3C8E6",
+",.	c #B3C7E5",
+"'.	c #92AFD0",
+").	c #8EAFD0",
+"!.	c #F1F5FA",
+"~.	c #FDFDFE",
+"{.	c #F2F6FA",
+"].	c #AEC7E1",
+"^.	c #7097C3",
+"/.	c #85A6D4",
+"(.	c #7EA1D3",
+"_.	c #6892C8",
+":.	c #608BC8",
+"<.	c #507EC3",
+"[.	c #225EB4",
+"}.	c #1654AF",
+"|.	c #346AB8",
+"1.	c #638DC8",
+"2.	c #9CB7DC",
+"3.	c #6B92C9",
+"4.	c #2C64B6",
+"5.	c #2660B5",
+"6.	c #346ABA",
+"7.	c #4275BF",
+"8.	c #5684C6",
+"9.	c #6991CC",
+"0.	c #789CD1",
+"a.	c #86A7D6",
+"b.	c #91AFDB",
+"c.	c #9AB6DE",
+"d.	c #A9C0E2",
+"e.	c #ADC3E3",
+"f.	c #B2C7E5",
+"g.	c #B6CAE6",
+"h.	c #B8CCE7",
+"i.	c #B9CDE7",
+"j.	c #BBCDE8",
+"k.	c #BBCEE8",
+"l.	c #B8CCE4",
+"m.	c #85A8C6",
+"n.	c #BFD3E7",
+"o.	c #FEFEFF",
+"p.	c #FFFFFF",
+"q.	c #FAFCFD",
+"r.	c #B3C9E1",
+"s.	c #7CA0CA",
+"t.	c #749AC9",
+"u.	c #7EA3C7",
+"v.	c #769CCC",
+"w.	c #6792C0",
+"x.	c #5985C6",
+"y.	c #4577C0",
+"z.	c #2E67B8",
+"A.	c #1453AE",
+"B.	c #1553AD",
+"C.	c #507FC1",
+"D.	c #88A8D4",
+"E.	c #3F72BC",
+"F.	c #1553AE",
+"G.	c #1B58B1",
+"H.	c #3D72BD",
+"I.	c #5E89C9",
+"J.	c #7097CE",
+"K.	c #7298CF",
+"L.	c #7B9FD2",
+"M.	c #88A8D7",
+"N.	c #93B1DB",
+"O.	c #9CB8DF",
+"P.	c #A4BDE1",
+"Q.	c #AAC1E3",
+"R.	c #B0C5E4",
+"S.	c #B3C8E5",
+"T.	c #B7CBE7",
+"U.	c #BACDE8",
+"V.	c #BBCFE8",
+"W.	c #BDD0E9",
+"X.	c #BED0E9",
+"Y.	c #BED1E9",
+"Z.	c #AAC2DA",
+"`.	c #7DA0C8",
+" +	c #E4ECF6",
+".+	c #F6F9FC",
+"++	c #B6CCE3",
+"@+	c #6791C1",
+"#+	c #C9DAED",
+"$+	c #BBCFE4",
+"%+	c #82A6CC",
+"&+	c #6E95CD",
+"*+	c #5D89C8",
+"=+	c #3068B9",
+"-+	c #1957B0",
+";+	c #0E4EAB",
+">+	c #82A5D4",
+",+	c #789DCB",
+"'+	c #255FB1",
+")+	c #094AAA",
+"!+	c #1857B1",
+"~+	c #3067B9",
+"{+	c #497AC2",
+"]+	c #5E8AC9",
+"^+	c #7DA1D3",
+"/+	c #98B4DD",
+"(+	c #99B5DD",
+"_+	c #9DB8DF",
+":+	c #B5CAE6",
+"<+	c #BACEE8",
+"[+	c #BCCFE9",
+"}+	c #A4BED5",
+"|+	c #ACC4DE",
+"1+	c #F8FAFD",
+"2+	c #FBFCFE",
+"3+	c #AFC8E3",
+"4+	c #BDD2E8",
+"5+	c #CBDBED",
+"6+	c #658FBE",
+"7+	c #7097CF",
+"8+	c #346BBA",
+"9+	c #1E5AB2",
+"0+	c #0A4CAA",
+"a+	c #1C58AF",
+"b+	c #638EC9",
+"c+	c #6991CA",
+"d+	c #1B55AE",
+"e+	c #0648A9",
+"f+	c #1A57B1",
+"g+	c #3169BA",
+"h+	c #4679C1",
+"i+	c #6C95CD",
+"j+	c #7A9FD3",
+"k+	c #97B3DC",
+"l+	c #C3D4EB",
+"m+	c #D6E1F1",
+"n+	c #BDCEE9",
+"o+	c #A9C1E3",
+"p+	c #B3C9E5",
+"q+	c #B9CDE8",
+"r+	c #BACEE9",
+"s+	c #BBCEE9",
+"t+	c #BCCEE9",
+"u+	c #B1C7E2",
+"v+	c #92B0CD",
+"w+	c #DDE8F4",
+"x+	c #A9C4E2",
+"y+	c #EFF4FA",
+"z+	c #A4BFDF",
+"A+	c #779CCF",
+"B+	c #6F97CF",
+"C+	c #5C89C8",
+"D+	c #4A7BC2",
+"E+	c #1C58B2",
+"F+	c #084AAA",
+"G+	c #104FAB",
+"H+	c #5886C6",
+"I+	c #B4CAE6",
+"J+	c #5C89C9",
+"K+	c #1252AC",
+"L+	c #0548A9",
+"M+	c #1353AF",
+"N+	c #336ABB",
+"O+	c #4577C1",
+"P+	c #5684C7",
+"Q+	c #6992CD",
+"R+	c #779DD2",
+"S+	c #83A6D6",
+"T+	c #95B2DC",
+"U+	c #CDDAEE",
+"V+	c #F6F8FC",
+"W+	c #E3EBF6",
+"X+	c #B6CBE8",
+"Y+	c #ACC3E4",
+"Z+	c #AFC6E4",
+"`+	c #B1C8E5",
+" @	c #B4C9E6",
+".@	c #B6CBE6",
+"+@	c #B7CCE7",
+"@@	c #B6CCE7",
+"#@	c #B5C9E6",
+"$@	c #BCD0E8",
+"%@	c #D7E4F1",
+"&@	c #DAE6F2",
+"*@	c #D9E4F1",
+"=@	c #83A6D3",
+"-@	c #799ED2",
+";@	c #6992CC",
+">@	c #5886C7",
+",@	c #4779C1",
+"'@	c #2F67B9",
+")@	c #1756B0",
+"!@	c #0648A8",
+"~@	c #0D4DAA",
+"{@	c #5585C6",
+"]@	c #AFC7E5",
+"^@	c #638FCB",
+"/@	c #0D4DAB",
+"(@	c #0447A9",
+"_@	c #1252AF",
+":@	c #2761B7",
+"<@	c #4678C1",
+"[@	c #5583C6",
+"}@	c #628DCA",
+"|@	c #7399D0",
+"1@	c #7EA2D4",
+"2@	c #88A9D8",
+"3@	c #94B2DC",
+"4@	c #AFC5E5",
+"5@	c #DBE5F4",
+"6@	c #F3F7FB",
+"7@	c #D8E3F3",
+"8@	c #B4C9E7",
+"9@	c #ADC5E4",
+"0@	c #AEC5E5",
+"a@	c #AFC6E5",
+"b@	c #B0C7E5",
+"c@	c #B2C8E6",
+"d@	c #B1C7E5",
+"e@	c #B0C6E5",
+"f@	c #8BACD2",
+"g@	c #D4E2EF",
+"h@	c #FCFDFE",
+"i@	c #F9FBFD",
+"j@	c #98B4D7",
+"k@	c #7EA3D0",
+"l@	c #7BA1CF",
+"m@	c #628DC8",
+"n@	c #4175BF",
+"o@	c #2A64B7",
+"p@	c #1453AF",
+"q@	c #0447A8",
+"r@	c #084BAA",
+"s@	c #4E81C6",
+"t@	c #6F97D1",
+"u@	c #114FAD",
+"v@	c #0245A8",
+"w@	c #0E4EAE",
+"x@	c #215EB5",
+"y@	c #366EBC",
+"z@	c #5281C6",
+"A@	c #5F8BCA",
+"B@	c #6A93CE",
+"C@	c #82A5D6",
+"D@	c #8BABD9",
+"E@	c #A7BFE2",
+"F@	c #D3E0F1",
+"G@	c #EDF2F9",
+"H@	c #D0DDF0",
+"I@	c #AEC5E6",
+"J@	c #A8C1E4",
+"K@	c #A9C2E4",
+"L@	c #AAC2E4",
+"M@	c #ABC3E4",
+"N@	c #ACC3E3",
+"O@	c #ABC2E4",
+"P@	c #88AAC6",
+"Q@	c #92B2D4",
+"R@	c #F7F9FC",
+"S@	c #CDDCEE",
+"T@	c #A3BFDF",
+"U@	c #B3CAE0",
+"V@	c #5E8AB8",
+"W@	c #5F8AC9",
+"X@	c #4D7EC4",
+"Y@	c #396FBD",
+"Z@	c #255FB6",
+"`@	c #0F4FAD",
+" #	c #0245A7",
+".#	c #0247A9",
+"+#	c #5084C8",
+"@#	c #84A7DB",
+"##	c #1C59B3",
+"$#	c #084BAB",
+"%#	c #1958B2",
+"&#	c #2E67BA",
+"*#	c #4075C0",
+"=#	c #5986C8",
+"-#	c #6590CC",
+";#	c #6E96D0",
+">#	c #7BA0D3",
+",#	c #8EADDA",
+"'#	c #A7C0E2",
+")#	c #C0D1EA",
+"!#	c #ADC4E5",
+"~#	c #D4DFF1",
+"{#	c #E7EEF7",
+"]#	c #C3D3EC",
+"^#	c #A7C0E3",
+"/#	c #A4BEE2",
+"(#	c #A4BFE3",
+"_#	c #A5BFE3",
+":#	c #A5BFE2",
+"<#	c #A6BFE2",
+"[#	c #A3BEE2",
+"}#	c #7299B9",
+"|#	c #D2E0F0",
+"1#	c #DFE9F4",
+"2#	c #A9C4E1",
+"3#	c #E0EAF4",
+"4#	c #7DA2D1",
+"5#	c #648ECB",
+"6#	c #4477C0",
+"7#	c #326ABA",
+"8#	c #1D5AB2",
+"9#	c #0B4DAC",
+"0#	c #0347A9",
+"a#	c #0E51AF",
+"b#	c #6D9AD3",
+"c#	c #94B0DD",
+"d#	c #2D67BB",
+"e#	c #0346A8",
+"f#	c #0548AA",
+"g#	c #1152AF",
+"h#	c #2461B7",
+"i#	c #376EBD",
+"j#	c #487AC2",
+"k#	c #6A94CE",
+"l#	c #7098D0",
+"m#	c #7BA0D4",
+"n#	c #83A6D5",
+"o#	c #8DAED9",
+"p#	c #A4BFE2",
+"q#	c #B9CCE8",
+"r#	c #A9C1E4",
+"s#	c #D5E0F2",
+"t#	c #E0E8F4",
+"u#	c #A1BCE1",
+"v#	c #9EBAE0",
+"w#	c #9FBBE0",
+"x#	c #9FBBE1",
+"y#	c #A0BBE1",
+"z#	c #90B1D4",
+"A#	c #ADC6E1",
+"B#	c #ACC7E2",
+"C#	c #EDF3F9",
+"D#	c #8DAECC",
+"E#	c #5E8AC0",
+"F#	c #5B8ABA",
+"G#	c #4074BF",
+"H#	c #3069B9",
+"I#	c #1E5BB3",
+"J#	c #1151AE",
+"K#	c #0C4DAC",
+"L#	c #2B68BB",
+"M#	c #87ADDC",
+"N#	c #96B7DA",
+"O#	c #467DC5",
+"P#	c #0549AB",
+"Q#	c #0448AA",
+"R#	c #0B4DAD",
+"S#	c #1B59B3",
+"T#	c #3F74C0",
+"U#	c #4E7FC4",
+"V#	c #608CCA",
+"W#	c #6D96CF",
+"X#	c #7199D1",
+"Y#	c #7AA0D4",
+"Z#	c #80A4D6",
+"`#	c #87AAD8",
+" $	c #92B1DB",
+".$	c #97B4DE",
+"+$	c #95B2DD",
+"@$	c #92B2DC",
+"#$	c #94B3DD",
+"$$	c #A4BEE3",
+"%$	c #D2DEF1",
+"&$	c #98B7DF",
+"*$	c #99B7DF",
+"=$	c #99B6DF",
+"-$	c #98B6DF",
+";$	c #97B5DE",
+">$	c #91B1D9",
+",$	c #7DA2C2",
+"'$	c #E5EDF6",
+")$	c #C7D9EC",
+"!$	c #BED1E6",
+"~$	c #6C96CC",
+"{$	c #618DCB",
+"]$	c #5A88C9",
+"^$	c #5382C7",
+"/$	c #4C7CC3",
+"($	c #3F73BE",
+"_$	c #3168B9",
+":$	c #235EB4",
+"<$	c #1F5BB4",
+"[$	c #4E82C8",
+"}$	c #BCD0EB",
+"|$	c #7099D6",
+"1$	c #1254B2",
+"2$	c #0347AA",
+"3$	c #084AAC",
+"4$	c #1152B0",
+"5$	c #235FB6",
+"6$	c #356CBD",
+"7$	c #4478C2",
+"8$	c #5181C6",
+"9$	c #608CCB",
+"0$	c #6E96CF",
+"a$	c #7198D0",
+"b$	c #789ED3",
+"c$	c #7DA3D6",
+"d$	c #82A6D7",
+"e$	c #86A9D8",
+"f$	c #89ABD9",
+"g$	c #8BACD9",
+"h$	c #8CADDB",
+"i$	c #8EAEDB",
+"j$	c #91B0DC",
+"k$	c #AAC2E5",
+"l$	c #D2DEF0",
+"m$	c #BED0EA",
+"n$	c #92B2DD",
+"o$	c #92B1DD",
+"p$	c #91B1DC",
+"q$	c #8FAFDA",
+"r$	c #86A9C9",
+"s$	c #D0DEEE",
+"t$	c #F2F6FB",
+"u$	c #CEDDED",
+"v$	c #759DD0",
+"w$	c #6892CC",
+"x$	c #6892C9",
+"y$	c #6B94CE",
+"z$	c #658FCC",
+"A$	c #4073BD",
+"B$	c #336CBC",
+"C$	c #99BADF",
+"D$	c #2464BB",
+"E$	c #064AAC",
+"F$	c #0B4EAD",
+"G$	c #1757B2",
+"H$	c #2864B8",
+"I$	c #3971BF",
+"J$	c #467AC3",
+"K$	c #5383C7",
+"L$	c #5F8CCA",
+"M$	c #6F98D0",
+"N$	c #759DD3",
+"O$	c #7AA1D5",
+"P$	c #7EA3D6",
+"Q$	c #81A6D6",
+"R$	c #84A7D8",
+"S$	c #88ABD9",
+"T$	c #8AACDA",
+"U$	c #8EAFDC",
+"V$	c #ACC5E5",
+"W$	c #CDDBEE",
+"X$	c #8BAEDB",
+"Y$	c #8CAFDB",
+"Z$	c #8DAFDB",
+"`$	c #8CAEDB",
+" %	c #8BADDA",
+".%	c #8CADDA",
+"+%	c #7FA3D2",
+"@%	c #B4CAE1",
+"#%	c #D5E2F0",
+"$%	c #7DA2D3",
+"%%	c #6F98CF",
+"&%	c #799ED1",
+"*%	c #83A6D7",
+"=%	c #81A3D5",
+"-%	c #7399CF",
+";%	c #608AC8",
+">%	c #346AB9",
+",%	c #427DCB",
+"'%	c #0649AA",
+")%	c #094CAC",
+"!%	c #1051AF",
+"~%	c #1D5CB5",
+"{%	c #2D68BB",
+"]%	c #3C73BF",
+"^%	c #487BC4",
+"/%	c #5D8BCA",
+"(%	c #6994CF",
+"_%	c #6D97D0",
+":%	c #7099D1",
+"<%	c #79A0D4",
+"[%	c #7CA2D6",
+"}%	c #7EA4D6",
+"|%	c #7FA5D7",
+"1%	c #81A6D8",
+"2%	c #82A7D8",
+"3%	c #83A7D9",
+"4%	c #84A8D9",
+"5%	c #87ABDA",
+"6%	c #B9CDE9",
+"7%	c #8DAEDB",
+"8%	c #89ACDA",
+"9%	c #86AAD9",
+"0%	c #85A9D9",
+"a%	c #85A8D9",
+"b%	c #A7C1E3",
+"c%	c #769CC8",
+"d%	c #759CC7",
+"e%	c #83A6D4",
+"f%	c #9BB7DF",
+"g%	c #A8C0E3",
+"h%	c #9BB6DE",
+"i%	c #6D95CE",
+"j%	c #4879C0",
+"k%	c #76A5D3",
+"l%	c #1257B5",
+"m%	c #0447AA",
+"n%	c #084AAB",
+"o%	c #0B4EAE",
+"p%	c #1454B1",
+"q%	c #215FB7",
+"r%	c #2F6ABC",
+"s%	c #3D74C0",
+"t%	c #5182C7",
+"u%	c #5A89CA",
+"v%	c #6591CD",
+"w%	c #6C96D0",
+"x%	c #6B96D0",
+"y%	c #7099D2",
+"z%	c #749CD2",
+"A%	c #779FD4",
+"B%	c #78A0D5",
+"C%	c #7DA3D7",
+"D%	c #7EA4D7",
+"E%	c #7FA5D8",
+"F%	c #ABC4E5",
+"G%	c #A6C1E3",
+"H%	c #8DAFDC",
+"I%	c #91B2DD",
+"J%	c #93B3DF",
+"K%	c #94B3DE",
+"L%	c #90B2DE",
+"M%	c #8BAEDC",
+"N%	c #86ABDA",
+"O%	c #83A8D8",
+"P%	c #80A6D8",
+"Q%	c #7EA5D7",
+"R%	c #95B5DC",
+"S%	c #EEF4F9",
+"T%	c #D9E5F2",
+"U%	c #AEC8E3",
+"V%	c #8CACD3",
+"W%	c #B1C6E6",
+"X%	c #DCE5F3",
+"Y%	c #AEC4E4",
+"Z%	c #4B82CE",
+"`%	c #0649AB",
+" &	c #074AAB",
+".&	c #0A4BAC",
+"+&	c #0F50AF",
+"@&	c #1757B3",
+"#&	c #2361B8",
+"$&	c #316BBD",
+"%&	c #3D74C1",
+"&&	c #477BC4",
+"*&	c #5082C7",
+"=&	c #5888C9",
+"-&	c #618ECC",
+";&	c #6A94CF",
+">&	c #6793CF",
+",&	c #6B95D0",
+"'&	c #6E98D1",
+")&	c #719AD2",
+"!&	c #729BD3",
+"~&	c #759DD4",
+"{&	c #769ED5",
+"]&	c #779FD5",
+"^&	c #77A0D5",
+"/&	c #78A1D5",
+"(&	c #7BA2D7",
+"_&	c #7DA4D7",
+":&	c #8BADDB",
+"<&	c #BCD1EB",
+"[&	c #A5C0E4",
+"}&	c #9EBCE2",
+"|&	c #A4BFE4",
+"1&	c #94B5DF",
+"2&	c #7AA2D6",
+"3&	c #78A1D6",
+"4&	c #759ED5",
+"5&	c #85A9D6",
+"6&	c #EAF1F8",
+"7&	c #D8E4F1",
+"8&	c #CFDEEF",
+"9&	c #A6C0E1",
+"0&	c #DFE8F5",
+"a&	c #E9EFF8",
+"b&	c #8FAEDA",
+"c&	c #7499D0",
+"d&	c #659ADB",
+"e&	c #2263BC",
+"f&	c #0A4CAC",
+"g&	c #0D4EAE",
+"h&	c #1A5AB5",
+"i&	c #2563B9",
+"j&	c #316CBE",
+"k&	c #3C74C1",
+"l&	c #457BC4",
+"m&	c #4D80C6",
+"n&	c #5486C8",
+"o&	c #5B8ACB",
+"p&	c #6591CE",
+"q&	c #6490CE",
+"r&	c #6592CF",
+"s&	c #6894CF",
+"t&	c #6B96D1",
+"u&	c #6C97D1",
+"v&	c #6D98D2",
+"w&	c #6E99D3",
+"x&	c #6F9AD3",
+"y&	c #709AD4",
+"z&	c #729CD4",
+"A&	c #7DA5D7",
+"B&	c #89ADDB",
+"C&	c #ABC5E7",
+"D&	c #C9D9EF",
+"E&	c #BCCFEA",
+"F&	c #BFD1EB",
+"G&	c #BED1EB",
+"H&	c #B7CDE9",
+"I&	c #A8C3E5",
+"J&	c #97B7E0",
+"K&	c #88ACDB",
+"L&	c #7BA3D7",
+"M&	c #749FD5",
+"N&	c #7CA3D7",
+"O&	c #8DAEDC",
+"P&	c #8EAFD8",
+"Q&	c #E8EFF6",
+"R&	c #EAF0F8",
+"S&	c #A3BFE0",
+"T&	c #BACCE8",
+"U&	c #BFD0EA",
+"V&	c #B6CAE7",
+"W&	c #9EB9E0",
+"X&	c #7A9ED3",
+"Y&	c #5683C6",
+"Z&	c #5C90D5",
+"`&	c #0F51B1",
+" *	c #094BAB",
+".*	c #0C4DAD",
+"+*	c #1354B2",
+"@*	c #1C5CB6",
+"#*	c #2764BA",
+"$*	c #3B74C2",
+"%*	c #4379C3",
+"&*	c #4A7EC6",
+"**	c #5183C8",
+"=*	c #5687CA",
+"-*	c #5F8ECD",
+";*	c #618FCD",
+">*	c #608FCD",
+",*	c #6390CF",
+"'*	c #6593D0",
+")*	c #6694D0",
+"!*	c #6895D0",
+"~*	c #6996D1",
+"{*	c #6A97D2",
+"]*	c #6B97D2",
+"^*	c #749ED4",
+"/*	c #80A6D9",
+"(*	c #93B4DF",
+"_*	c #AEC7E7",
+":*	c #D0DFF1",
+"<*	c #D9E4F4",
+"[*	c #D4E1F2",
+"}*	c #D4E2F2",
+"|*	c #CEDDF0",
+"1*	c #A8C3E6",
+"2*	c #9AB8E0",
+"3*	c #97B6DF",
+"4*	c #A0BDE2",
+"5*	c #ACC5E6",
+"6*	c #B4CAE8",
+"7*	c #ADC5E5",
+"8*	c #94B3DA",
+"9*	c #E8EFF7",
+"0*	c #97B6DC",
+"a*	c #ADC4E4",
+"b*	c #A1BBE1",
+"c*	c #87A9D8",
+"d*	c #8EB5E0",
+"e*	c #3673C6",
+"f*	c #094CAD",
+"g*	c #0B4CAC",
+"h*	c #0E4FAE",
+"i*	c #1052B0",
+"j*	c #1455B2",
+"k*	c #1D5DB6",
+"l*	c #306BBE",
+"m*	c #3972C1",
+"n*	c #4077C3",
+"o*	c #467CC5",
+"p*	c #4D81C7",
+"q*	c #5184C9",
+"r*	c #5989CB",
+"s*	c #5C8CCC",
+"t*	c #5E8DCE",
+"u*	c #5F8FCE",
+"v*	c #6190CE",
+"w*	c #6291CF",
+"x*	c #6492D1",
+"y*	c #6594D1",
+"z*	c #6794D1",
+"A*	c #729DD4",
+"B*	c #84A9DA",
+"C*	c #9CBAE1",
+"D*	c #BBD1EB",
+"E*	c #D3E0F2",
+"F*	c #E8EEF8",
+"G*	c #E7EEF8",
+"H*	c #E5EDF7",
+"I*	c #DFE8F6",
+"J*	c #D5E3F3",
+"K*	c #C9D9EE",
+"L*	c #BACEEA",
+"M*	c #86ABDB",
+"N*	c #739CD5",
+"O*	c #6895D1",
+"P*	c #80A6D5",
+"Q*	c #EBF1F8",
+"R*	c #E9F0F7",
+"S*	c #8FB0D7",
+"T*	c #86A8D8",
+"U*	c #82A5D7",
+"V*	c #7BA1D4",
+"W*	c #4C7DC4",
+"X*	c #346ABB",
+"Y*	c #79A2DB",
+"Z*	c #1B5DBA",
+"`*	c #094AAC",
+" =	c #1253B1",
+".=	c #1657B2",
+"+=	c #1E5EB7",
+"@=	c #2765BA",
+"#=	c #2F6ABD",
+"$=	c #3770C0",
+"%=	c #3E75C3",
+"&=	c #4379C5",
+"*=	c #487EC6",
+"==	c #4C81C7",
+"-=	c #5688C7",
+";=	c #5B8BCC",
+">=	c #5789CB",
+",=	c #588ACC",
+"'=	c #5B8CCD",
+")=	c #5C8DCD",
+"!=	c #5D8ECE",
+"~=	c #5E8FCF",
+"{=	c #5F90CF",
+"]=	c #6191D0",
+"^=	c #709CD5",
+"/=	c #85ABDB",
+"(=	c #A2BEE5",
+"_=	c #C5D6EE",
+":=	c #DAE6F4",
+"<=	c #E5EDF8",
+"[=	c #D0DEF1",
+"}=	c #ADC6E7",
+"|=	c #84AADB",
+"1=	c #6C99D3",
+"2=	c #6393D1",
+"3=	c #6190D0",
+"4=	c #6090CF",
+"5=	c #8CB0DA",
+"6=	c #F0F4FA",
+"7=	c #C0D3E7",
+"8=	c #6893C3",
+"9=	c #5D8BCB",
+"0=	c #5686C9",
+"a=	c #487BC3",
+"b=	c #336BBC",
+"c=	c #235EB6",
+"d=	c #558BD5",
+"e=	c #0F52B2",
+"f=	c #1455B1",
+"g=	c #1859B4",
+"h=	c #1F5FB8",
+"i=	c #2E6ABD",
+"j=	c #356FC0",
+"k=	c #3A73C3",
+"l=	c #3F77C4",
+"m=	c #457BC5",
+"n=	c #4C80C7",
+"o=	c #5587CB",
+"p=	c #5387CA",
+"q=	c #5688CB",
+"r=	c #578ACC",
+"s=	c #578ACD",
+"t=	c #598CCE",
+"u=	c #5A8DCE",
+"v=	c #5C8DCF",
+"w=	c #6091D0",
+"x=	c #6B99D4",
+"y=	c #80A8D9",
+"z=	c #A4C0E5",
+"A=	c #D1DFF2",
+"B=	c #F5F9FC",
+"C=	c #EEF4FA",
+"D=	c #DBE6F4",
+"E=	c #C2D4ED",
+"F=	c #A3BFE4",
+"G=	c #82A8DA",
+"H=	c #6B98D4",
+"I=	c #5C8ECF",
+"J=	c #6292D0",
+"K=	c #B3CAE7",
+"L=	c #8EAFD7",
+"M=	c #5D8CCD",
+"N=	c #447AC4",
+"O=	c #4479C3",
+"P=	c #4177C2",
+"Q=	c #3A72C0",
+"R=	c #306ABC",
+"S=	c #1857B2",
+"T=	c #3173C9",
+"U=	c #0C4EAE",
+"V=	c #0C4CAC",
+"W=	c #1655AA",
+"X=	c #2562A4",
+"Y=	c #1557B2",
+"Z=	c #2060B8",
+"`=	c #2765BB",
+" -	c #2D6ABD",
+".-	c #336EC0",
+"+-	c #3872C2",
+"@-	c #3C75C4",
+"#-	c #417AC5",
+"$-	c #447CC6",
+"%-	c #477EC7",
+"&-	c #4E83C9",
+"*-	c #5286CA",
+"=-	c #4F84C9",
+"--	c #5185CA",
+";-	c #5286CB",
+">-	c #5387CC",
+",-	c #5489CC",
+"'-	c #568ACD",
+")-	c #5689CD",
+"!-	c #6C99D4",
+"~-	c #A0BDE3",
+"{-	c #CFDDF0",
+"]-	c #E0E9F7",
+"^-	c #E2ECF7",
+"/-	c #ECF2F9",
+"(-	c #F7F9FD",
+"_-	c #EAF0F9",
+":-	c #BED2EC",
+"<-	c #9EBCE3",
+"[-	c #7CA5D9",
+"}-	c #6694D2",
+"|-	c #5B8ECF",
+"1-	c #588BCC",
+"2-	c #79A0CD",
+"3-	c #E1EBF5",
+"4-	c #D4E1F0",
+"5-	c #6D96C7",
+"6-	c #6895CD",
+"7-	c #6391C9",
+"8-	c #3E75BF",
+"9-	c #5A89C4",
+"0-	c #5585C1",
+"a-	c #2B67A5",
+"b-	c #1D61BE",
+"c-	c #0B4CAD",
+"d-	c #0E4EAD",
+"e-	c #5281B4",
+"f-	c #81A5CB",
+"g-	c #316AB9",
+"h-	c #1B5CB6",
+"i-	c #2162B9",
+"j-	c #2867BC",
+"k-	c #2E6CBE",
+"l-	c #346FC0",
+"m-	c #3771C2",
+"n-	c #3A74C3",
+"o-	c #3E77C5",
+"p-	c #407AC6",
+"q-	c #437CC7",
+"r-	c #477FC8",
+"s-	c #4E84CA",
+"t-	c #4B82C9",
+"u-	c #4D83CB",
+"v-	c #4D84CB",
+"w-	c #4F86CB",
+"x-	c #548ACD",
+"y-	c #6493D2",
+"z-	c #8FB0DE",
+"A-	c #BBCFEB",
+"B-	c #B8CDEA",
+"C-	c #A4C1E5",
+"D-	c #B6CDEA",
+"E-	c #CEDEF0",
+"F-	c #DEE9F6",
+"G-	c #E6EEF8",
+"H-	c #ECF3F9",
+"I-	c #C9DAEF",
+"J-	c #AEC8E8",
+"K-	c #90B3DF",
+"L-	c #719DD5",
+"M-	c #5E90D0",
+"N-	c #568ACE",
+"O-	c #5A8CCD",
+"P-	c #B2C9E3",
+"Q-	c #FEFFFF",
+"R-	c #BED3E8",
+"S-	c #ADC6E2",
+"T-	c #5280B9",
+"U-	c #8CAED5",
+"V-	c #CADAEC",
+"W-	c #CDDCEC",
+"X-	c #7BA1C7",
+"Y-	c #2B65AF",
+"Z-	c #175AB9",
+"`-	c #1B59A6",
+" ;	c #9DB9D9",
+".;	c #D3E0EE",
+"+;	c #4D7FB9",
+"@;	c #2160B7",
+"#;	c #2665BB",
+"$;	c #2D6ABE",
+"%;	c #326EC0",
+"&;	c #3772C2",
+"*;	c #3973C3",
+"=;	c #3A74C4",
+"-;	c #3B76C4",
+";;	c #3D77C5",
+">;	c #3F79C6",
+",;	c #417BC7",
+"';	c #4880C9",
+");	c #467EC9",
+"!;	c #4981CA",
+"~;	c #5388CC",
+"{;	c #6D9BD4",
+"];	c #8EB2DE",
+"^;	c #A5C1E5",
+"/;	c #94B5E0",
+"(;	c #6A99D5",
+"_;	c #6091D2",
+":;	c #79A3D8",
+"<;	c #9FBFE4",
+"[;	c #B8CEEB",
+"};	c #C8DAEF",
+"|;	c #D0DFF2",
+"1;	c #D3E1F2",
+"2;	c #E0E9F6",
+"3;	c #B9CFEB",
+"4;	c #97B8E1",
+"5;	c #7CA6DA",
+"6;	c #6495D2",
+"7;	c #558BCE",
+"8;	c #5085C6",
+"9;	c #7FA4CE",
+"0;	c #8DAFD6",
+"a;	c #CBDAEC",
+"b;	c #DDE8F3",
+"c;	c #CCDBEB",
+"d;	c #4378BD",
+"e;	c #1356B5",
+"f;	c #0D4EAD",
+"g;	c #4075AA",
+"h;	c #D5E1EE",
+"i;	c #ECF1F7",
+"j;	c #799EC0",
+"k;	c #2966B8",
+"l;	c #2C69BD",
+"m;	c #336FC0",
+"n;	c #3973C2",
+"o;	c #3C76C3",
+"p;	c #3C77C4",
+"q;	c #3D77C4",
+"r;	c #3C77C5",
+"s;	c #3B77C5",
+"t;	c #3C78C6",
+"u;	c #427CC8",
+"v;	c #4F85CC",
+"w;	c #709CD6",
+"x;	c #8DB1DE",
+"y;	c #94B6E0",
+"z;	c #80A8DA",
+"A;	c #6192D2",
+"B;	c #4B84CC",
+"C;	c #4C84CB",
+"D;	c #588CCF",
+"E;	c #6999D5",
+"F;	c #84ABDC",
+"G;	c #99B9E2",
+"H;	c #A9C5E7",
+"I;	c #B2CBE9",
+"J;	c #B0C9E9",
+"K;	c #BFD4ED",
+"L;	c #BBD1EC",
+"M;	c #80A8DB",
+"N;	c #6898D4",
+"O;	c #578DCF",
+"P;	c #4E86CD",
+"Q;	c #6896C9",
+"R;	c #D1DFEE",
+"S;	c #D7E4F2",
+"T;	c #A4C0DF",
+"U;	c #EAF1F7",
+"V;	c #D2DFEE",
+"W;	c #5382BB",
+"X;	c #1254B3",
+"Y;	c #608CC5",
+"Z;	c #F6F8FB",
+"`;	c #A0BAD9",
+" >	c #3A74AD",
+".>	c #467DC6",
+"+>	c #497FC8",
+"@>	c #487FC8",
+"#>	c #457DC7",
+"$>	c #3B77C6",
+"%>	c #407BC7",
+"&>	c #7FA6D9",
+"*>	c #A7C3E6",
+"=>	c #7BA5D9",
+"->	c #548BCF",
+";>	c #4781CB",
+">>	c #4580CB",
+",>	c #4780CB",
+"'>	c #4A83CB",
+")>	c #5086CC",
+"!>	c #598DD0",
+"~>	c #79A3DA",
+"{>	c #85ACDD",
+"]>	c #8DB1DF",
+"^>	c #8CB1DF",
+"/>	c #8AAFDE",
+"(>	c #B3CBEA",
+"_>	c #81A9DC",
+":>	c #588CD0",
+"<>	c #4F87CD",
+"[>	c #6092CF",
+"}>	c #C1D4EA",
+"|>	c #BDD1E8",
+"1>	c #B5CDE5",
+"2>	c #DEE8F3",
+"3>	c #E7EEF6",
+"4>	c #F0F4F9",
+"5>	c #CBD9EA",
+"6>	c #7299C6",
+"7>	c #1153B2",
+"8>	c #0F50AE",
+"9>	c #6D96CA",
+"0>	c #F9FAFC",
+"a>	c #FEFEFE",
+"b>	c #C5D6E9",
+"c>	c #4378BC",
+"d>	c #437AC4",
+"e>	c #5486CA",
+"f>	c #6391D0",
+"g>	c #5B8CCE",
+"h>	c #5085CA",
+"i>	c #4B82CA",
+"j>	c #8CB0DE",
+"k>	c #C4D7EE",
+"l>	c #D8E5F3",
+"m>	c #5D91D1",
+"n>	c #4581CA",
+"o>	c #4480CB",
+"p>	c #4681CB",
+"q>	c #4881CB",
+"r>	c #4A83CC",
+"s>	c #4B84CD",
+"t>	c #5087CE",
+"u>	c #578DD0",
+"v>	c #5F92D2",
+"w>	c #6596D4",
+"x>	c #6595D4",
+"y>	c #84ABDD",
+"z>	c #97B8E2",
+"A>	c #5A8ED1",
+"B>	c #5D90CF",
+"C>	c #FAFBFD",
+"D>	c #FDFEFE",
+"E>	c #91B3D9",
+"F>	c #C9DAEC",
+"G>	c #EEF3F9",
+"H>	c #F4F7FB",
+"I>	c #A7C1DE",
+"J>	c #C7D7EA",
+"K>	c #1153B1",
+"L>	c #6E97CA",
+"M>	c #EEF3F8",
+"N>	c #6790BF",
+"O>	c #5586C9",
+"P>	c #709AD2",
+"Q>	c #84A9D9",
+"R>	c #85A9DA",
+"S>	c #7AA3D7",
+"T>	c #7AA2D7",
+"U>	c #91B3DE",
+"V>	c #E3ECF7",
+"W>	c #86ACDC",
+"X>	c #5787BE",
+"Y>	c #5F8FCA",
+"Z>	c #6A97CF",
+"`>	c #6C99D0",
+" ,	c #6291CB",
+".,	c #4F82BE",
+"+,	c #4A83C9",
+"@,	c #4D85CE",
+"#,	c #4F86CE",
+"$,	c #5189CF",
+"%,	c #548BD0",
+"&,	c #578DD1",
+"*,	c #598ED1",
+"=,	c #578CD1",
+"-,	c #6193D4",
+";,	c #96B7E2",
+">,	c #7CA5D7",
+",,	c #B6CCE5",
+"',	c #C2D6EA",
+"),	c #95B6DA",
+"!,	c #ECF2F8",
+"~,	c #F5F8FB",
+"{,	c #E9EFF7",
+"],	c #C7D8EB",
+"^,	c #2562B7",
+"/,	c #5987C0",
+"(,	c #7EA2CE",
+"_,	c #8BADD4",
+":,	c #6692CE",
+"<,	c #8CAEDC",
+"[,	c #AAC4E6",
+"},	c #B0C8E7",
+"|,	c #B8CEEA",
+"1,	c #D2E0F2",
+"2,	c #ECF1F9",
+"3,	c #B1CAE8",
+"4,	c #6A9AD4",
+"5,	c #6090C8",
+"6,	c #A4BED9",
+"7,	c #DDE6F1",
+"8,	c #E3EBF4",
+"9,	c #B7CBE1",
+"0,	c #729BCA",
+"a,	c #4A7FB8",
+"b,	c #4F88CF",
+"c,	c #5088CF",
+"d,	c #5289D0",
+"e,	c #538AD0",
+"f,	c #548AD1",
+"g,	c #729ED5",
+"h,	c #B5CCE5",
+"i,	c #FDFDFF",
+"j,	c #D0DFEF",
+"k,	c #C4D7EA",
+"l,	c #CCDCED",
+"m,	c #B0C8E3",
+"n,	c #E2EAF4",
+"o,	c #F8FAFC",
+"p,	c #6490AE",
+"q,	c #C8D8EA",
+"r,	c #93B3D7",
+"s,	c #F7F9FB",
+"t,	c #BCCFE3",
+"u,	c #618DB8",
+"v,	c #A3BFE1",
+"w,	c #CEDCF0",
+"x,	c #D5E1F2",
+"y,	c #E2EAF6",
+"z,	c #DCE8F2",
+"A,	c #9EBCE1",
+"B,	c #578BCE",
+"C,	c #6995CB",
+"D,	c #CDDBEC",
+"E,	c #99B6D5",
+"F,	c #5788C1",
+"G,	c #5289CE",
+"H,	c #538BD0",
+"I,	c #548CD1",
+"J,	c #538BD1",
+"K,	c #6495D0",
+"L,	c #B5CBE4",
+"M,	c #F8FBFD",
+"N,	c #E0EAF5",
+"O,	c #BCD1E8",
+"P,	c #C6D8EB",
+"Q,	c #E3EBF5",
+"R,	c #FCFDFD",
+"S,	c #6491AB",
+"T,	c #DDE7F2",
+"U,	c #B0C8E2",
+"V,	c #E7EEF5",
+"W,	c #7EA3CC",
+"X,	c #A1BDDE",
+"Y,	c #DEE8F5",
+"Z,	c #E9F0F8",
+"`,	c #EDF2FA",
+" '	c #99B9E1",
+".'	c #628FC7",
+"+'	c #BDD0E5",
+"@'	c #EBF1F7",
+"#'	c #92B0D0",
+"$'	c #578DCD",
+"%'	c #568ED1",
+"&'	c #578ED1",
+"*'	c #568DD2",
+"='	c #568ED2",
+"-'	c #5D90CE",
+";'	c #A8C2DF",
+">'	c #FBFCFD",
+",'	c #DDE7F3",
+"''	c #B4CCE5",
+")'	c #B6CDE6",
+"!'	c #CDDDEE",
+"~'	c #D8E5F2",
+"{'	c #E2ECF5",
+"]'	c #61929E",
+"^'	c #D4E1EF",
+"/'	c #E6EDF6",
+"('	c #DCE7F2",
+"_'	c #A6BFDD",
+":'	c #90AFD8",
+"<'	c #CADAEF",
+"['	c #B4CBE9",
+"}'	c #6F9CD6",
+"|'	c #588DCF",
+"1'	c #97B5D6",
+"2'	c #E2E5E9",
+"3'	c #B4BDC7",
+"4'	c #F5F7F9",
+"5'	c #E7ECF1",
+"6'	c #B4BBC3",
+"7'	c #EFF0F1",
+"8'	c #D6E2EF",
+"9'	c #6591C4",
+"0'	c #578FD3",
+"a'	c #588FD3",
+"b'	c #588FD4",
+"c'	c #5B8ECC",
+"d'	c #91B1D6",
+"e'	c #DBE6F3",
+"f'	c #C5D8EB",
+"g'	c #C2D5EA",
+"h'	c #EDF3F8",
+"i'	c #E1EAF4",
+"j'	c #3671BD",
+"k'	c #C0D2E6",
+"l'	c #D8E3F0",
+"m'	c #6C98A9",
+"n'	c #91B3DF",
+"o'	c #729ED6",
+"p'	c #6092D2",
+"q'	c #5685BC",
+"r'	c #D2DBE6",
+"s'	c #878889",
+"t'	c #566576",
+"u'	c #778593",
+"v'	c #F6F9FB",
+"w'	c #7F878F",
+"x'	c #54687E",
+"y'	c #767878",
+"z'	c #F8F9FB",
+"A'	c #93B2D5",
+"B'	c #5D93CF",
+"C'	c #5A92D5",
+"D'	c #5B92D5",
+"E'	c #6194D1",
+"F'	c #8DADD1",
+"G'	c #E4ECF5",
+"H'	c #D3E1F0",
+"I'	c #F5F9FB",
+"J'	c #2B69BA",
+"K'	c #93B0D0",
+"L'	c #F3F6FA",
+"M'	c #A8C0DC",
+"N'	c #6390C1",
+"O'	c #719DD6",
+"P'	c #5F91D1",
+"Q'	c #568BCE",
+"R'	c #7FA5D2",
+"S'	c #F3F4F4",
+"T'	c #929394",
+"U'	c #373A3E",
+"V'	c #708498",
+"W'	c #EFF4F9",
+"X'	c #75828F",
+"Y'	c #40454A",
+"Z'	c #949495",
+"`'	c #A5C0DC",
+" )	c #6694B6",
+".)	c #5D94D6",
+"+)	c #5E95D7",
+"@)	c #6795CC",
+"#)	c #C2D4E9",
+"$)	c #4074B7",
+"%)	c #769CC6",
+"&)	c #DCE6F1",
+"*)	c #7CA2C8",
+"=)	c #5A8DCF",
+"-)	c #5389CD",
+";)	c #4B82B9",
+">)	c #98B7D5",
+",)	c #EAEBEC",
+"')	c #CCCED1",
+"))	c #D7E1EC",
+"!)	c #E7EBF0",
+"~)	c #F1F4F7",
+"{)	c #DCE3EA",
+"])	c #CED2D5",
+"^)	c #ECEEEF",
+"/)	c #BDD0E6",
+"()	c #5685B9",
+"_)	c #6097D7",
+":)	c #689BD9",
+"<)	c #91B1D5",
+"[)	c #F1F6FA",
+"})	c #F0F5FA",
+"|)	c #E7EFF7",
+"1)	c #DCE7F3",
+"2)	c #FCFCFD",
+"3)	c #5987BA",
+"4)	c #A7C2DF",
+"5)	c #A1BEDD",
+"6)	c #F7FAFC",
+"7)	c #DCE5F1",
+"8)	c #6692C8",
+"9)	c #4C82C9",
+"0)	c #4B83CC",
+"a)	c #4C84CC",
+"b)	c #497EBC",
+"c)	c #B6CBE1",
+"d)	c #EDF1F5",
+"e)	c #A7B3BE",
+"f)	c #71777A",
+"g)	c #778085",
+"h)	c #C5D0DB",
+"i)	c #FAFCFC",
+"j)	c #D3E0EF",
+"k)	c #5887C1",
+"l)	c #6A9DDA",
+"m)	c #759DC7",
+"n)	c #C9D9EC",
+"o)	c #DBE5F0",
+"p)	c #4F83A8",
+"q)	c #AFC6DF",
+"r)	c #BDD1E7",
+"s)	c #D3E1EF",
+"t)	c #BCCFE4",
+"u)	c #6B96CA",
+"v)	c #4982C9",
+"w)	c #4883CC",
+"x)	c #5386C4",
+"y)	c #CDDBEB",
+"z)	c #FBFCFC",
+"A)	c #DBE0E6",
+"B)	c #8F979D",
+"C)	c #B7C0C7",
+"D)	c #DFE9F3",
+"E)	c #6996C9",
+"F)	c #6EA0DC",
+"G)	c #6F9ACC",
+"H)	c #DBE6F2",
+"I)	c #D5E2F1",
+"J)	c #FAFBFC",
+"K)	c #DBE5F1",
+"L)	c #A4BDD5",
+"M)	c #5D8AB7",
+"N)	c #427AAA",
+"O)	c #6D98CC",
+"P)	c #759FCF",
+"Q)	c #477FB4",
+"R)	c #5285C3",
+"S)	c #E8ECF0",
+"T)	c #749ECF",
+"U)	c #699DDB",
+"V)	c #82A9D6",
+"W)	c #F4F8FB",
+"X)	c #C9D8EA",
+"Y)	c #A4BDDA",
+"Z)	c #6C98AD",
+"`)	c #3971B3",
+" !	c #4079BD",
+".!	c #9AB6D5",
+"+!	c #90B1D3",
+"@!	c #6F98C7",
+"#!	c #BBCEE5",
+"$!	c #8CAECD",
+"%!	c #5F92C4",
+"&!	c #89AFD9",
+"*!	c #D7E3F1",
+"=!	c #D6E3F1",
+"-!	c #F3F7FA",
+";!	c #C8D8E9",
+">!	c #85A7D0",
+",!	c #658FBF",
+"'!	c #4B7FAD",
+")!	c #4B7EB6",
+"!!	c #4C84CE",
+"~!	c #4A7DBF",
+"{!	c #DEE8F4",
+"]!	c #C3D6EB",
+"^!	c #C1D3E7",
+"/!	c #6794CA",
+"(!	c #7DA5D2",
+"_!	c #9CB7D2",
+":!	c #3E76B8",
+"<!	c #6792BE",
+"[!	c #4B86D1",
+"}!	c #2867BE",
+"|!	c #769CCA",
+"1!	c #C8D9EB",
+"2!	c #EFF5F9",
+"3!	c #C1D5EA",
+"4!	c #9BB7D7",
+"5!	c #739CC9",
+"6!	c #E4EDF6",
+"7!	c #99B6CF",
+"8!	c #86A8D0",
+"9!	c #4B89D4",
+"0!	c #3D7AA4",
+"a!	c #A4BEDB",
+"b!	c #BAD0E6",
+"c!	c #F8F9FC",
+"d!	c #C0D4E9",
+"e!	c #CFDEED",
+"f!	c #95B3CC",
+"g!	c #A4BDCD",
+"h!	c #4C88AF",
+"i!	c #4889A0",
+"j!	c #86A9C8",
+"k!	c #EBF2F8",
+"l!	c #E5EDF5",
+"m!	c #8BAEC4",
+"n!	c #B9CBDC",
+"o!	c #4982BB",
+"p!	c #4384D3",
+"q!	c #477DB8",
+"r!	c #9BB7D6",
+"s!	c #E9EFF6",
+"t!	c #EDF2F8",
+"u!	c #E6EEF6",
+"v!	c #EFF3F8",
+"w!	c #769FC3",
+"x!	c #BFCFE1",
+"y!	c #4B82C2",
+"z!	c #4F8FDB",
+"A!	c #3878C9",
+"B!	c #457CB0",
+"C!	c #7DA2C0",
+"D!	c #C6D7E9",
+"E!	c #F5F8FC",
+"F!	c #C5D7EB",
+"G!	c #638FC8",
+"H!	c #6B9CD5",
+"I!	c #609DE4",
+"J!	c #4484D2",
+"K!	c #3473C6",
+"L!	c #2D6BBF",
+"M!	c #4177A7",
+"N!	c #6D96BD",
+"O!	c #A4BFDD",
+"P!	c #E2EBF5",
+"Q!	c #DBE7F3",
+"R!	c #CEDEEE",
+"S!	c #D1E0EF",
+"T!	c #DAE4F0",
+"U!	c #5080BD",
+"V!	c #6FA0BE",
+"W!	c #69A3DD",
+"X!	c #5190DB",
+"Y!	c #417FCE",
+"Z!	c #3572C4",
+"`!	c #3671BC",
+" ~	c #6B96B2",
+".~	c #A9C1DE",
+"+~	c #F0F5F9",
+"@~	c #A9C2DB",
+"#~	c #76A8DD",
+"$~	c #5C9AE1",
+"%~	c #4B89D5",
+"&~	c #3D7BCB",
+"*~	c #AFC6E1",
+"=~	c #ECF1F8",
+"-~	c #E8F0F7",
+";~	c #E2EBF4",
+">~	c #DEE9F4",
+",~	c #D8E5F1",
+"'~	c #D4E2F0",
+")~	c #90B3D7",
+"!~	c #70A9E9",
+"~~	c #5796DF",
+"{~	c #4887D4",
+"]~	c #437FC8",
+"^~	c #96B5D1",
+"/~	c #E1EAF5",
+"(~	c #CEDEED",
+"_~	c #BFD2E7",
+":~	c #97B6D8",
+"<~	c #B9CFE7",
+"[~	c #8DB7E6",
+"}~	c #71A8E7",
+"|~	c #5494DC",
+"1~	c #4785CC",
+"2~	c #4C83B2",
+"3~	c #6B97CE",
+"4~	c #9BB7DA",
+"5~	c #AFC5E0",
+"6~	c #A3BDDA",
+"7~	c #8DACCF",
+"8~	c #739CC0",
+"9~	c #5786BD",
+"0~	c #6F97C5",
+"a~	c #CBDCED",
+"b~	c #BFD4E9",
+"c~	c #F9FBFC",
+"d~	c #98B4D5",
+"e~	c #D5E3F1",
+"f~	c #ADCFF3",
+"g~	c #63A0E4",
+"h~	c #5190DA",
+"i~	c #4583D0",
+"j~	c #3C7AC9",
+"k~	c #437AC3",
+"l~	c #4B80C5",
+"m~	c #487DC3",
+"n~	c #4379BF",
+"o~	c #437BBB",
+"p~	c #4C7FBF",
+"q~	c #A2BDDB",
+"r~	c #C8DAEC",
+"s~	c #FDFDFD",
+"t~	c #D3DFEE",
+"u~	c #A8C9E7",
+"v~	c #7CB1EC",
+"w~	c #609CE2",
+"x~	c #5290D9",
+"y~	c #4785D0",
+"z~	c #407CC9",
+"A~	c #3F79C7",
+"B~	c #407AC8",
+"C~	c #427BC8",
+"D~	c #5385C3",
+"E~	c #ABC4DF",
+"F~	c #EBF0F7",
+"G~	c #90AFD2",
+"H~	c #ADCBEA",
+"I~	c #74ACEA",
+"J~	c #5E9BE1",
+"K~	c #5490D9",
+"L~	c #4A87D1",
+"M~	c #437FCB",
+"N~	c #427EC9",
+"O~	c #447FCA",
+"P~	c #457FC9",
+"Q~	c #497FBF",
+"R~	c #6894BA",
+"S~	c #9CB9D9",
+"T~	c #A6C0DE",
+"U~	c #A2BEDC",
+"V~	c #9DB9DA",
+"W~	c #90B1D5",
+"X~	c #B9CDE2",
+"Y~	c #6DA8E9",
+"Z~	c #609BE0",
+"`~	c #5692D9",
+" {	c #4D89D2",
+".{	c #4884CD",
+"+{	c #4982CB",
+"@{	c #4D85CC",
+"#{	c #4C84BD",
+"${	c #5588C8",
+"%{	c #749FD2",
+"&{	c #729ED2",
+"*{	c #568BCA",
+"={	c #558AC9",
+"-{	c #7AA1CF",
+";{	c #F3F6FB",
+">{	c #EAF0F7",
+",{	c #E3ECF5",
+"'{	c #D5E1EF",
+"){	c #C1D4E8",
+"!{	c #9AC3EF",
+"~{	c #6FA9E9",
+"{{	c #629DE1",
+"]{	c #5995DA",
+"^{	c #538ED4",
+"/{	c #4E88CF",
+"({	c #4E87CD",
+"_{	c #5088CE",
+":{	c #6F9ED7",
+"<{	c #6B9BD7",
+"[{	c #558DD1",
+"}{	c #528AD1",
+"|{	c #548CD2",
+"1{	c #5B8DB8",
+"2{	c #97B5D4",
+"3{	c #F4F7FA",
+"4{	c #84B7EE",
+"5{	c #71ABEA",
+"6{	c #66A0E3",
+"7{	c #5F9ADD",
+"8{	c #5B95D8",
+"9{	c #5B92D4",
+"0{	c #6396D5",
+"a{	c #6C9CD8",
+"b{	c #6094D4",
+"c{	c #558CD2",
+"d{	c #568ED3",
+"e{	c #578FD4",
+"f{	c #5890D5",
+"g{	c #5688BC",
+"h{	c #A1BCD8",
+"i{	c #F2F5FA",
+"j{	c #E7EFF6",
+"k{	c #D4E0EE",
+"l{	c #83B5EE",
+"m{	c #73ACEB",
+"n{	c #6BA4E4",
+"o{	c #6FA4E1",
+"p{	c #71A4DF",
+"q{	c #6B9EDB",
+"r{	c #5E94D6",
+"s{	c #5A91D5",
+"t{	c #5C94D7",
+"u{	c #5D94D7",
+"v{	c #5C94D5",
+"w{	c #618FC5",
+"x{	c #AAC2DC",
+"y{	c #CFDDED",
+"z{	c #BBD4F0",
+"A{	c #96C1F0",
+"B{	c #89BAEF",
+"C{	c #83B4EA",
+"D{	c #70A6E3",
+"E{	c #669EDE",
+"F{	c #6199DB",
+"G{	c #5E96D7",
+"H{	c #5D95D7",
+"I{	c #6097D8",
+"J{	c #6198D9",
+"K{	c #6298DA",
+"L{	c #6298D7",
+"M{	c #618FC4",
+"N{	c #A1BCD9",
+"O{	c #F5F8FA",
+"P{	c #D3E0F0",
+"Q{	c #BCCFE5",
+"R{	c #92BDE8",
+"S{	c #81B6EE",
+"T{	c #75ADE9",
+"U{	c #70A8E5",
+"V{	c #6DA4E2",
+"W{	c #6AA1E0",
+"X{	c #689FDE",
+"Y{	c #669DDC",
+"Z{	c #669CDC",
+"`{	c #6299D9",
+" ]	c #6097D9",
+".]	c #6DA2E0",
+"+]	c #5C8AB5",
+"@]	c #92B1D1",
+"#]	c #D2DFED",
+"$]	c #E0E9F4",
+"%]	c #D8E4F2",
+"&]	c #D2E0EF",
+"*]	c #CFDEEE",
+"=]	c #D2E1F0",
+"-]	c #D4DFED",
+";]	c #82ACC7",
+">]	c #A5C8EA",
+",]	c #89BAED",
+"']	c #77AEE8",
+")]	c #74AAE6",
+"!]	c #72A8E4",
+"~]	c #71A6E3",
+"{]	c #6DA3E0",
+"]]	c #649BDA",
+"^]	c #659BDB",
+"/]	c #679DDC",
+"(]	c #689EDD",
+"_]	c #6A9FDE",
+":]	c #6596CC",
+"<]	c #7AA0BE",
+"[]	c #84A7C8",
+"}]	c #9EB9D6",
+"|]	c #E4EDF5",
+"1]	c #D1DFEF",
+"2]	c #DFE8F3",
+"3]	c #BFD1E6",
+"4]	c #97B4D3",
+"5]	c #86BAF0",
+"6]	c #84B8EF",
+"7]	c #7DB3EC",
+"8]	c #7AB0EA",
+"9]	c #79AFE8",
+"0]	c #76ACE5",
+"a]	c #6AA0DD",
+"b]	c #6CA1DF",
+"c]	c #70A4E0",
+"d]	c #74A8E2",
+"e]	c #77AAE3",
+"f]	c #7AA7CC",
+"g]	c #94B5C9",
+"h]	c #9FC0E3",
+"i]	c #7097BA",
+"j]	c #88A8CF",
+"k]	c #D6E2F0",
+"l]	c #F1F5F9",
+"m]	c #B6CCE4",
+"n]	c #A0BBDA",
+"                                          . + @ # $ % & * = - ; > , , ' ) ! ~ { ] ^ / ( _ : <                                 ",
+"                                      [ } | 1 2 ] 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p                             ",
+"                                  q r s t u v w x y z A B C D E F G G H I J K L M N O P Q R S T U V W X                       ",
+"                              Y Z `  ...R +.P @.a #.$.%.&.*.=.-.;.>.>.,.'.).!.~.{.].^./.(._.:.<.S [.}.|.1.                    ",
+"                          2.3.4.5.6.7.8.9.0.a.b.c.H d.e.f.g.h.i.j.k.k.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.                  ",
+"                        D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Y.Y.W.Z.`. +p.p..+++ at +#+$+%+&+*+* =+-+;+| >+              ",
+"                      ,+'+)+!+~+{+]+^+/+(+_+E P.Q.=.S.:+h.<+[+W.W.X.X.X.W.[+}+|+1+p.p.2+3+4+2+5+6+7+4 R 8+9+0+a+b+            ",
+"                    c+d+e+f+g+h+*+i+j+k+l+m+n+o+*.-.p+:+T.q+U.r+s+t+t+s+r+r+u+v+w+o.p.p.{.x+y+p.z+A+B+C+D+l E+F+G+H+I+        ",
+"                  J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+p+ @. at T.+@+ at h.h.+@+@@@.@#@$@.+p.p.o.%@&@p.*@=@-@;@>@,@'@)@!@~@{@]@      ",
+"                ^@/@(@_@:@<@[@}@|@1 at 2@3 at 4@5 at 6@7 at 8@Y+9 at 0@a at b@`+c at c@c at c@c at c@`+d at e@f at g@p.p.p.h at i@p.6 at j@k at l@m@[@n at o@p at q@r at s@      ",
+"              t at u@v at w@x at y@z at A@B at -@C at D@c.E at e@F at G@H at I@J at K@L at M@M at N@N at N@N at N@Y+M at O@L at P@Q at R@p.p.p.p.p.p.S at T@U at V@W at X@Y at Z@`@ #.#+#    ",
+"            @### #$#%#&#*#=#-#;#>#S+,#'#)#8@!#~#{#]#^#/#(#_#:#:#<#<#<#:#:#:#:#/#[#}#|#p.p.p.p.p.p.1#2#3#4#5#[@6#7#8#9#0#a#b#  ",
+"          c#d#e#f#g#h#i#j#]+k#l#m#n#o#p#q#M at O.r#s#t#8 at u#v#w#x#x#y#y#x#x#x#w#w#v#v#z#A#~.p.p.p.p.p..+B#C#D#E#F#X at G#H#I#J#K#L#M#",
+"        N#O#P#Q#R#S#&#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$H@^#&$*$*$*$*$*$*$*$*$*$=$-$;$>$,$'$p.p.p.p.p.p.)$i@!$~${$]$^$/$($_$:$<$[$",
+"      }$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$*$n$n$n$n$n$n$n$n$n$n$o$p$q$r$s$p.p.p.p.p.p.t$o.u$v$w$x$y$y$z$x., at A$B$",
+"      C$D$Q#E$F$G$H$I$J$K$L$W#M$N$O$P$Q$R$e$S$f$T$U$V$W$:#X$Y$Z$Z$Z$Z$Y$`$`$`$h$ %.%+%@%h at p.p.p.p.p.p.p.#%$%%%&%*%D at D@=%-%;%>%",
+"      ,%P#'%)%!%~%{%]%^%K$/%(%_%:%N$<%[%}%|%1%2%3%4%5%K at 6%T$T$h$7%7%`$8%5%9%0%0%a%a%3%b%6 at p.p.p.p.p.p.p.&@c%d%e%f%g%e@*.h%i%j%",
+"    k%l%m%n%o%p%q%r%s%^%t%u%v%w%x%y%z%A%B%O$[%C%D%|%E%0%F%G%H%I%J%K%L%M%N%O%P%E%|%Q%D%R%S%p.p.p.p.p.p.p.T%U%u$V%W%[+m+X%Y%z +.",
+"    Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&|&}&1&M%4%D%2&3&B%4&5&6&p.p.p.p.p.p.p.7&8&y+9&c@)#0&a& @b&c&",
+"  d&e&'%f&g&4$h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&{&A&B&C&D&E&F&G&H&I&J&K&L&4&M&N&O&P&Q&p.p.p.p.p.p.p.R&C#6 at S&u#T&U&V&W&X&Y&",
+"  Z&`& *.*+&+*@*#*j&$*%*&***=*-*;*>*,*'*)*!*~*{*]*w&^*/*(*_*:*<*[*}*|*<&1*2*3*4*5*6*7*8*9*p.p.p.p.p.p.p.p.p.!.0*y#a*b*c.c*z$O+",
+"d*e*f*g*h*i*j*k*#*l*m*n*o*p*q*r*-*s*t*u*v*w*x*y*z*{*A*B*C*D*E*F*G*H*I*J*:*K*L*4*M*N*O*P*Q*p.p.p.p.p.p.p.p.p.R*S*f%T*U*V*k#W*X*",
+"Y*Z*`*.*+& =.=+=@=#=$=%=&=*===-=;=>=,='=)=!=~={=]=y*^=/=(=_=:=y+i at .+y+<=[=}=|=1=2=3=4=5=6=p.p.p.p.p.p.p.p.p.7=8=(%9=9=0=a=b=c=",
+"d=e=.&h*g#f=g=h=@=i=j=k=l=m=*=n=o=o=p=q=r=s=t=u=v=w=x=y=z=A=G*B=p.2+C=D=E=F=G=H=w=I=J=K=q.p.p.p.p.p.p.p.p.i at L=M=N=O=P=Q=R=q%S=",
+"T=U=V=W=X=Y=h&Z=`= -.-+- at -#-$-%-&-*-=---;->-,-'-)-s=!-~-{-]-^-/-(-V+_-7@:-<-[-}-|-1-2-3-p.p.p.p.p.p.p.p.p.4-5-6-7-k&8-9-0-a-f=",
+"b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-t-u-v-w-x-y-z-A-B-C-D-E-F-G-H-H*I-J-K-L-M-N-O-P-h at p.p.p.p.p.p.p.p.Q-R-S-#+2#T-U-V-W-X-Y-",
+"Z-.*`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';';);!;~;{;];^;/;(;_;:;<;[;};|;1;2;3;4;5;6;7;8;9;6&p.p.p.p.p.p.p.p.p.p.p.p.p. +0;a;b;'$c;d;",
+"e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;s;t;u;';v;w;x;y;z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;p.p.p.p.p.p.p.p.p.p.p.p.p.p.S;T;K 3-U;V;W;",
+"X;w at Y;Z;h@`; >j=l=.>+>@>#>p-t;$>%>N-&>1**>=>->;>>>,>'>)>!>E;~>{>]>^>/>(>_>:><>[>}>2+p.p.p.p.p.p.p.p.p.p.p.p.p.~.|>1>2>3>4>5>6>",
+"7>8>9>0>a>b>c>d>e>v*)*f>g>h>i>D;j>k>l>~-m>n>o>p>;>q>r>s>t>u>v>w>(;(;x>y>z>A>B>C-C>p.p.p.p.p.p.p.p.p.p.p.p.p.D>&@E>F>'$G>H>I>J>",
+"K>!%L>0>a>M>N>O>P>Q>M%R>S>T>U>:-V>I-W>X>Y>Z>`> ,.,+,s>@,#,$,%,&,*,*,=,-,;,>,,,R at p.p.p.p.o.p.p.p.p.p.p.p.p.Q-&@',),#%!,~,{,],0>",
+"^,/,(,0>a>a>_,:,<,[,},}=|,1,2,C#3,4,5,6,7,8,8,7,9,0,a,b,c,$,d,e,e,e,e,f,g,h,~,p.p.p.p.~.i,p.p.p.p.p.p.p.2+j,k,l,m,n,~,q.5+o,a>",
+"p,q,r,s,a>a>t,u,v,w,x,y,(-i at z,A,B,C,D,~.a>a>a>a>a>~,E,F,G,H,I,J,H,H,H,K,L,R at p.p.p.p.2+M,o.p.p.p.p.o.6 at N,O,P,T%Q,Q*~,R,3#R*a>a>",
+"S,T,U,Q&a>a>V,W,X,w,Y,Z,`,A= '6;.'+'R at a>a>a>a>a>a>~.@'#'$'%'&'*'='='-';'t$p.p.p.p.>'~,h at p.p.p.p.~.,''')'!'~'{'!,~,R,a>H>>'a>o,",
+"]'^'/'('a>a>s,_':'D&<':-['/;}'|'1'2'3'4'a>a>a>a>5'6'7'8'9'0'a'b'b'c'd'y+p.p.p.p.h at 4>C>p.p.p.p.p.o.!,e'f'g','h'.+h at a>a>a>a>a>i'",
+"j'k'~.R,a>a>a>l'm'z#(*n'W>o'p'q'r's't'u'a>a>a>v'w'x'y'z'A'B'C'D'E'F'G'p.p.p.p.q.!,.+p.p.p.p.p.p.p.p.p.h at R*H'I'a>a>a>a>a>a>a>R,",
+"J'K'L'a>a>a>a>o,M'N'L-O'H=P'Q'R'S'T'U'V'a>a>a>W'X'Y'Z'Z;`' ).)+)@)#)h at p.p.p.h@6&y+o.p.p.p.p.p.p.p.p.p.p.D>|#o,a>a>a>a>a>a>a>a>",
+"$)%)&)a>a>a>a>a>@'*)t==)D;-);)>)a>,)')))a>!)~)o,{)])^){./)()_):)<)[)p.p.p.p.})|)2+p.p.p.p.p.p.p.p.p.p.p.6&1)2)a>a>a>a>a>a>a>a>",
+"3)4)5)6)a>a>a>a>a>7)8)9)0)a)b)c)a>a>a>d)e)f)g)h)i)D>6)4>j)k)l)m)n)p.p.p.p.6)1#~,p.p.p.p.p.p.p.p.p.p.p.6@%@S%a>a>a>a>a>a>a>o,o)",
+"p)q)r)s)a>a>a>a>a>C>t)u)v)w)x)y)a>a>a>z)A)B)C)R,a>h@~,S%D)E)F)G).+p.p.p.p.9*H)i at p.p.p.p.p.p.p.p.p.p.})I)@'a>a>a>a>a>a>J)K)L)M)",
+"N)O)i'b;a>a>a>a>a>a>.+D,P)Q)R)5>a>a>a>a>a>S)4'a>a>h@~,S%Q,T)U)V)p.p.p.p.D>3#%@W)p.p.p.p.p.p.p.p.p./-I)W'a>a>a>a>a>G>X)Y)Z)    ",
+"`) !.!s,a>a>a>a>a>~.i@~,D)+!@!#!a>a>a>a>a>a>a>a>a>h at I'4>3>$!%!&!p.p.p.p.>'1)*!.+p.p.p.p.p.p.~.M,=!=!-!a>a>a>>';!>!,!'!        ",
+")!!!~!+'C>a>a>a>a>>'6)W)[)G>{!]!a>a>a>a>a>a>a>a>a>D>o,6 at G>^!/!(!o.p.p.p.o.{#G at p.p.p.p.q.C#9*1#j,4>a>a>a>a>a>o,_!:!            ",
+"<![!}!|!1!C>a>a>~.i at .+{.2!!,9*3!a>a>a>a>a>a>a>a>a>a>>'R at 6@'$4!5!6=p.p.p.p.h at p.p.p.p.>'6!1#3-U;>'a>a>a>a>a>a>s,7!              ",
+"8!9!0!a!b!4-R,D>>'c!H>!.C#6&3>d!C>a>a>a>a>a>a>a>a>a>a>2)i at v'@'e!8&p.p.p.p.o.p.a>a>a>~.R@>'a>a>a>a>a>a>a>a>a>Z;f!              ",
+"g!h!i!j!M>H>~.h at 0>~,{.S%k!9*l!#%7&a>a>a>a>a>a>a>a>a>a>a>a>~.h at R,7&o.o.a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>-!m!              ",
+"n!o!p!q!r!s!~.C>R at 6@})t!Z,u!Q,1#',a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>~.a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>v!w!              ",
+"x!y!z!A!B!C!D!E!~,!.S%Q*Q&6!i'2>F!t!a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>i;G!              ",
+"  H!I!J!K!L!M!N!O!3>!,R*u!P!D)Q!R!S!~.a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>T!U!              ",
+"  V!W!X!Y!Z!`! ~.~l!6&3>G'3#,'&@S!)$+~a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>@~                ",
+"    #~$~%~&~#-*~Q*=~-~'$;~>~H),~'~d!i'a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>h@                  ",
+"    )~!~~~{~]~^~*@'$u!/~T%(~_~:~S-!'<~R at a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>D>h@~.a>>'>'V;                  ",
+"      [~}~|~1~2~3~4~5~6~7~8~9~0~a~!'b~H'a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>h at R,a>D>c~o,>'h at R@{.d~                  ",
+"      e~f~g~h~i~j~k~l~m~n~o~p~q~R!5+r~<~!,a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>s~h at a>a>~.o,v'a>>'H>H>q.Z;-!t~                    ",
+"        u~v~w~x~y~z~A~B~C~u;D~E~a~F>P,4+P,o,a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>q.R at R,a>>'6@})i)Z;C#W'~,G>F~G~                    ",
+"          H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~J>2)a>a>a>a>a>a>a>D>a>a>h at i@R,a>a>.+})~,D>0>t!Q*Z;6=9*Q*t!!.X~                      ",
+"              Y~Z~`~ {.{p>+{@{#{${%{&{*{={-{F~a>a>a>a>a>a>h at C>R,a>h@~,H>R,a>;{k!G at 2)~,u!u!W'>{,{G'Q*'{                        ",
+"            ){!{~{{{]{^{/{({_{&,:{<{[{}{|{1{2{s,a>D>h@~.a>>'W)3{>'a>L'!,L'~.{.u!'$3{})3-3#'$P!2>/'8'                          ",
+"                4{5{6{7{8{9{0{a{b{I,c{d{e{f{g{h{i{h at R@W)o,>'L't!G>C>~,u!u!H>{.3#1#j{@'H)&@H)&@'$k{                            ",
+"                  l{m{n{o{p{q{r{d{a's{D't{u{v{w{x{v'0>!.G>6 at H>R*u!!,s,P!1#,{{.1)&@H)3-=!#%T%Q&y{                              ",
+"                  z{A{B{C{D{E{F{G{H{+)I{J{J{K{L{M{N{O{R at G@9*!,|)i'3#>{6!&@T%P!Q!'~4-4-P{>~i;Q{                                ",
+"                      R{S{T{U{V{W{X{Y{Z{`{ ]J{Y{.]+]@]#]L'W''$$]H)T%%]b;'~H'&]S!*]=]Q!l!-]                                    ",
+"                      ;]>],]v~'])]!]~]{]]]^]/](]_]:]<][]}].;{.4>|]2>%@1]1]S!H'H)|]2]3]4]                                      ",
+"                            5]6]7]8]9]0]a]a]b]c]d]e]f]g]h]i]j].~k]Q*-!{.-!l]2>m]n]                                            "};
diff --git a/components/pixmaps/icecat.xpm b/components/pixmaps/icecat.xpm
new file mode 100644
index 0000000..7ca63d3
--- /dev/null
+++ b/components/pixmaps/icecat.xpm
@@ -0,0 +1,2222 @@
+/* XPM */
+static const char * icecat_xpm[] = {
+"63 64 2155 2",
+"  	c None",
+". 	c #2871C0",
+"+ 	c #1F6ABB",
+"@ 	c #1764B7",
+"# 	c #0B5AAF",
+"$ 	c #0455AB",
+"% 	c #0958AE",
+"& 	c #1260B4",
+"* 	c #1C67B9",
+"= 	c #2069B9",
+"- 	c #286EBA",
+"; 	c #2C74C2",
+"> 	c #1C67B8",
+", 	c #0754A9",
+"' 	c #004EA4",
+") 	c #004EA3",
+"! 	c #004DA2",
+"~ 	c #0955A9",
+"{ 	c #1F66B5",
+"] 	c #3172B9",
+"^ 	c #276EBC",
+"/ 	c #0753A6",
+"( 	c #004CA0",
+"_ 	c #004C9F",
+": 	c #014EA1",
+"< 	c #024EA2",
+"[ 	c #004C9E",
+"} 	c #004B9E",
+"| 	c #004B9D",
+"1 	c #004B9C",
+"2 	c #0E57A7",
+"3 	c #2F6EB2",
+"4 	c #3378C2",
+"5 	c #0A54A4",
+"6 	c #004A9B",
+"7 	c #004A9A",
+"8 	c #0450A2",
+"9 	c #227EE0",
+"0 	c #2786EA",
+"a 	c #004999",
+"b 	c #004998",
+"c 	c #004898",
+"d 	c #004897",
+"e 	c #1359A6",
+"f 	c #2A69AF",
+"g 	c #1D62AE",
+"h 	c #004896",
+"i 	c #044E9E",
+"j 	c #014A98",
+"k 	c #004796",
+"l 	c #1669C1",
+"m 	c #004795",
+"n 	c #2580DF",
+"o 	c #3598FF",
+"p 	c #0E5CB0",
+"q 	c #004794",
+"r 	c #2884E5",
+"s 	c #0E5DB1",
+"t 	c #004694",
+"u 	c #004693",
+"v 	c #034B9A",
+"w 	c #004692",
+"x 	c #004592",
+"y 	c #064A96",
+"z 	c #2363A9",
+"A 	c #3799FF",
+"B 	c #4884C4",
+"C 	c #0E529E",
+"D 	c #024996",
+"E 	c #044B99",
+"F 	c #308CEC",
+"G 	c #014692",
+"H 	c #1D6FC7",
+"I 	c #004590",
+"J 	c #014693",
+"K 	c #115EB1",
+"L 	c #399AFF",
+"M 	c #2F8BEC",
+"N 	c #00448F",
+"O 	c #2A83E2",
+"P 	c #2E8AEB",
+"Q 	c #024793",
+"R 	c #014590",
+"S 	c #2B86E6",
+"T 	c #00438E",
+"U 	c #1260B3",
+"V 	c #1360B4",
+"W 	c #1563B7",
+"X 	c #044995",
+"Y 	c #00438D",
+"Z 	c #1767BC",
+"` 	c #00428C",
+" .	c #0B4D95",
+"..	c #356CA9",
+"+.	c #4EA3FD",
+"@.	c #2B7ED8",
+"#.	c #447EBD",
+"$.	c #488CD6",
+"%.	c #074B95",
+"&.	c #1D6CC1",
+"*.	c #145FB0",
+"=.	c #054A95",
+"-.	c #3F9DFF",
+";.	c #115AAA",
+">.	c #2A7ED8",
+",.	c #0B52A0",
+"'.	c #115BAC",
+").	c #1662B4",
+"!.	c #00428B",
+"~.	c #2E86E2",
+"{.	c #3E9DFF",
+"].	c #1C6ABE",
+"^.	c #00418A",
+"/.	c #3D9CFF",
+"(.	c #318AE8",
+"_.	c #074C97",
+":.	c #3C9BFF",
+"<.	c #1560B1",
+"[.	c #2A80DC",
+"}.	c #1460B1",
+"|.	c #145CA9",
+"1.	c #64ABF0",
+"2.	c #1F5C9D",
+"3.	c #6DA5D9",
+"4.	c #356AA1",
+"5.	c #396DA2",
+"6.	c #7AA1C1",
+"7.	c #9DC0DC",
+"8.	c #87B6E2",
+"9.	c #3999FD",
+"0.	c #024289",
+"a.	c #246CBB",
+"b.	c #4997E9",
+"c.	c #3674B9",
+"d.	c #1962B1",
+"e.	c #3286DD",
+"f.	c #014189",
+"g.	c #2674C8",
+"h.	c #3285DD",
+"i.	c #004087",
+"j.	c #358AE3",
+"k.	c #2A7BD0",
+"l.	c #2776CB",
+"m.	c #3A92ED",
+"n.	c #04458C",
+"o.	c #3B93EF",
+"p.	c #2E81D8",
+"q.	c #0D529D",
+"r.	c #419BFA",
+"s.	c #3E98F6",
+"t.	c #024288",
+"u.	c #1056A2",
+"v.	c #429FFF",
+"w.	c #145BA8",
+"x.	c #419DFE",
+"y.	c #297AD0",
+"z.	c #419EFF",
+"A.	c #3085DF",
+"B.	c #1157A4",
+"C.	c #82B3DF",
+"D.	c #84A7C4",
+"E.	c #6992B7",
+"F.	c #B9D2DE",
+"G.	c #B8D1DE",
+"H.	c #B7D1DE",
+"I.	c #B7D0DD",
+"J.	c #83BAEC",
+"K.	c #2C81DA",
+"L.	c #05448A",
+"M.	c #1963B3",
+"N.	c #003D80",
+"O.	c #06458B",
+"P.	c #307BCC",
+"Q.	c #5098E4",
+"R.	c #59A5F6",
+"S.	c #53A3F9",
+"T.	c #50A2F9",
+"U.	c #52A2F7",
+"V.	c #3775BA",
+"W.	c #0E5099",
+"X.	c #195FAC",
+"Y.	c #4499F3",
+"Z.	c #3383D6",
+"`.	c #3382D6",
+" +	c #4AA2FD",
+".+	c #155AA4",
+"++	c #11559F",
+"@+	c #459BF6",
+"#+	c #1357A1",
+"$+	c #479FFA",
+"%+	c #307FD3",
+"&+	c #2069B8",
+"*+	c #49A2FF",
+"=+	c #2E7CCF",
+"-+	c #1F67B6",
+";+	c #48A2FF",
+">+	c #185DA9",
+",+	c #024084",
+"'+	c #459DF9",
+")+	c #2672C4",
+"!+	c #3B90E9",
+"~+	c #3A8FE8",
+"{+	c #47A1FF",
+"]+	c #368AE2",
+"^+	c #46A1FF",
+"/+	c #195FAB",
+"(+	c #93C2EB",
+"_+	c #4B77A4",
+":+	c #A3BFD3",
+"<+	c #BCD4E0",
+"[+	c #BBD3DF",
+"}+	c #BAD3DF",
+"|+	c #A8CBE4",
+"1+	c #47A1FE",
+"2+	c #54A6FA",
+"3+	c #2664A6",
+"4+	c #2876C8",
+"5+	c #439FFF",
+"6+	c #2A79CD",
+"7+	c #013C7D",
+"8+	c #00397A",
+"9+	c #09478B",
+"0+	c #1A62AF",
+"a+	c #226FC0",
+"b+	c #2370C1",
+"c+	c #1E68B7",
+"d+	c #1C65B3",
+"e+	c #2D80D7",
+"f+	c #409DFE",
+"g+	c #68B0FC",
+"h+	c #51A4FB",
+"i+	c #52A6FE",
+"j+	c #4798ED",
+"k+	c #2C75C3",
+"l+	c #52A7FF",
+"m+	c #51A6FF",
+"n+	c #4596EB",
+"o+	c #0D4B91",
+"p+	c #4CA1F9",
+"q+	c #185AA3",
+"r+	c #084689",
+"s+	c #3C8CDF",
+"t+	c #4EA4FD",
+"u+	c #4FA5FF",
+"v+	c #1E62AD",
+"w+	c #3481D2",
+"x+	c #4497ED",
+"y+	c #0B498D",
+"z+	c #3786D8",
+"A+	c #4EA5FF",
+"B+	c #3F90E6",
+"C+	c #327ECF",
+"D+	c #4DA4FF",
+"E+	c #4CA4FF",
+"F+	c #499FF8",
+"G+	c #4CA3FF",
+"H+	c #1E64AE",
+"I+	c #84BCF0",
+"J+	c #306092",
+"K+	c #BFD6E1",
+"L+	c #BFD5E1",
+"M+	c #BED5E1",
+"N+	c #BDD4E0",
+"O+	c #81BAF0",
+"P+	c #4AA3FF",
+"Q+	c #5EAAF7",
+"R+	c #18508E",
+"S+	c #48A0FC",
+"T+	c #3585D9",
+"U+	c #043D7D",
+"V+	c #003774",
+"W+	c #094384",
+"X+	c #236BB9",
+"Y+	c #3E94EE",
+"Z+	c #4EA2F9",
+"`+	c #5BABFF",
+" @	c #59AAFF",
+".@	c #51A0F3",
+"+@	c #58AAFF",
+"@@	c #57AAFF",
+"#@	c #2669B2",
+"$@	c #1E5FA5",
+"%@	c #51A2F6",
+"&@	c #18579C",
+"*@	c #0A4485",
+"=@	c #4B9BEF",
+"-@	c #56A9FF",
+";@	c #55A9FF",
+">@	c #4E9EF3",
+",@	c #19589D",
+"'@	c #4898EB",
+")@	c #4897EA",
+"!@	c #2265AD",
+"~@	c #54A8FF",
+"{@	c #4FA2F8",
+"]@	c #2A70BA",
+"^@	c #53A7FF",
+"/@	c #4EA1F7",
+"(@	c #2062AA",
+"_@	c #6CACEB",
+":@	c #4F78A0",
+"<@	c #C2D8E3",
+"[@	c #C2D7E2",
+"}@	c #C1D7E2",
+"|@	c #C0D6E2",
+"1@	c #62ADFA",
+"2@	c #50A6FF",
+"3@	c #5A9CDF",
+"4@	c #4C7DAF",
+"5@	c #4598EF",
+"6@	c #2D75C3",
+"7@	c #2E76C4",
+"8@	c #3D8DE1",
+"9@	c #4CA3FD",
+"0@	c #509CEB",
+"a@	c #28405A",
+"b@	c #64B0FF",
+"c@	c #60AEFF",
+"d@	c #5FAEFF",
+"e@	c #5FADFF",
+"f@	c #5EADFF",
+"g@	c #59A6F7",
+"h@	c #55A2F2",
+"i@	c #5DADFF",
+"j@	c #4B96E4",
+"k@	c #114B8B",
+"l@	c #438CD8",
+"m@	c #5CACFF",
+"n@	c #509DEE",
+"o@	c #2E70B7",
+"p@	c #165193",
+"q@	c #58A8FB",
+"r@	c #2A6CB3",
+"s@	c #5AABFF",
+"t@	c #4996E6",
+"u@	c #4D8AC9",
+"v@	c #8EABC3",
+"w@	c #C5D9E4",
+"x@	c #C4D9E4",
+"y@	c #C4D9E3",
+"z@	c #B3D1E7",
+"A@	c #57A9FF",
+"B@	c #6191C0",
+"C@	c #A7C1D3",
+"D@	c #64AFFB",
+"E@	c #55A8FF",
+"F@	c #53A8FF",
+"G@	c #5297DF",
+"H@	c #6EB4FE",
+"I@	c #68B2FF",
+"J@	c #67B2FF",
+"K@	c #69B2FD",
+"L@	c #81B9EB",
+"M@	c #8ABCE7",
+"N@	c #85BBEB",
+"O@	c #7EB9F0",
+"P@	c #7AB8F3",
+"Q@	c #79B8F4",
+"R@	c #7DB9F3",
+"S@	c #87BDEE",
+"T@	c #94C2EA",
+"U@	c #94C0E8",
+"V@	c #94BFE6",
+"W@	c #A2C9E7",
+"X@	c #A9CBE5",
+"Y@	c #A3C8E5",
+"Z@	c #7DBAF6",
+"`@	c #63AFFF",
+" #	c #62AFFF",
+".#	c #3575BA",
+"+#	c #2A68AA",
+"@#	c #468CD6",
+"##	c #5FACFC",
+"$#	c #3170B5",
+"%#	c #4186D0",
+"&#	c #3C7FC6",
+"*#	c #557DA7",
+"=#	c #C8DBE5",
+"-#	c #C7DBE5",
+";#	c #C6DBE5",
+">#	c #98C6F0",
+",#	c #71B5FA",
+"'#	c #9CB7CB",
+")#	c #89BFF2",
+"!#	c #5BACFF",
+"~#	c #59ABFF",
+"{#	c #5DABFE",
+"]#	c #233447",
+"^#	c #70B6FF",
+"/#	c #6FB6FF",
+"(#	c #78B8F7",
+"_#	c #99C1DB",
+":#	c #A4C4D5",
+"<#	c #A6C6D6",
+"[#	c #A8C7D7",
+"}#	c #AAC8D8",
+"|#	c #ACCAD9",
+"1#	c #A7C7DC",
+"2#	c #809FBE",
+"3#	c #4B6493",
+"4#	c #1A2D6F",
+"5#	c #02105D",
+"6#	c #001164",
+"7#	c #10297A",
+"8#	c #4A69A5",
+"9#	c #9DBCD9",
+"0#	c #BDD5E2",
+"a#	c #7BBAF9",
+"b#	c #6AB3FF",
+"c#	c #569BE3",
+"d#	c #69B2FE",
+"e#	c #5194DB",
+"f#	c #2E69A8",
+"g#	c #3674B6",
+"h#	c #67B1FF",
+"i#	c #3775B8",
+"j#	c #669DD6",
+"k#	c #809DB7",
+"l#	c #CBDDE7",
+"m#	c #CADDE7",
+"n#	c #CADDE6",
+"o#	c #C9DCE6",
+"p#	c #85BEF7",
+"q#	c #65B0FF",
+"r#	c #AFD0EB",
+"s#	c #C6DAE4",
+"t#	c #ACCFEA",
+"u#	c #61AFFF",
+"v#	c #61AEFF",
+"w#	c #4975A5",
+"x#	c #79BAFE",
+"y#	c #78BAFD",
+"z#	c #8BBDE8",
+"A#	c #A0C2D4",
+"B#	c #A3C4D4",
+"C#	c #A6C5D5",
+"D#	c #8FB1CC",
+"E#	c #465F8A",
+"F#	c #0E1E59",
+"G#	c #000D5A",
+"H#	c #000F6C",
+"I#	c #001076",
+"J#	c #00137D",
+"K#	c #001681",
+"L#	c #001A84",
+"M#	c #001D84",
+"N#	c #052480",
+"O#	c #6588BE",
+"P#	c #B7D3E8",
+"Q#	c #7BBBFC",
+"R#	c #71B6FF",
+"S#	c #3A74B3",
+"T#	c #3973B2",
+"U#	c #6FB5FF",
+"V#	c #6EB5FF",
+"W#	c #3670AE",
+"X#	c #9CC2E5",
+"Y#	c #C7D9E4",
+"Z#	c #CEDFE8",
+"`#	c #CDDFE8",
+" $	c #CCDEE7",
+".$	c #8AC1F7",
+"+$	c #97C7F4",
+"@$	c #C4DAE5",
+"#$	c #71B6FD",
+"$$	c #69B3FF",
+"%$	c #69B2FF",
+"&$	c #7FBEFE",
+"*$	c #97C0DD",
+"=$	c #A1C2D3",
+"-$	c #A5C5D5",
+";$	c #A7C7D6",
+">$	c #9FC0D6",
+",$	c #455F85",
+"'$	c #041249",
+")$	c #00105D",
+"!$	c #00126A",
+"~$	c #001371",
+"{$	c #001375",
+"]$	c #001479",
+"^$	c #00147D",
+"/$	c #001680",
+"($	c #001A83",
+"_$	c #001E87",
+":$	c #002189",
+"<$	c #012487",
+"[$	c #83A4D0",
+"}$	c #C5DAE6",
+"|$	c #AFD1EE",
+"1$	c #81BEFC",
+"2$	c #77BAFF",
+"3$	c #5894D4",
+"4$	c #6BACEF",
+"5$	c #386EA9",
+"6$	c #76B9FE",
+"7$	c #76B9FF",
+"8$	c #6CA6E1",
+"9$	c #CEE0EA",
+"0$	c #D1E1E9",
+"a$	c #D0E1E9",
+"b$	c #D0E0E9",
+"c$	c #CFE0E9",
+"d$	c #B1D3F0",
+"e$	c #CCDEE8",
+"f$	c #CBDEE7",
+"g$	c #8AC1F8",
+"h$	c #71B7FF",
+"i$	c #70B5FD",
+"j$	c #83BEFC",
+"k$	c #8EC1F0",
+"l$	c #A0C2D3",
+"m$	c #A2C3D4",
+"n$	c #A4C5D5",
+"o$	c #A7C6D6",
+"p$	c #8FAFC8",
+"q$	c #758597",
+"r$	c #011352",
+"s$	c #001561",
+"t$	c #001567",
+"u$	c #00166B",
+"v$	c #001670",
+"w$	c #001774",
+"x$	c #001778",
+"y$	c #00187C",
+"z$	c #001880",
+"A$	c #001A82",
+"B$	c #001D85",
+"C$	c #002088",
+"D$	c #002389",
+"E$	c #2148A0",
+"F$	c #C6DBE8",
+"G$	c #B3D4EF",
+"H$	c #7FBEFF",
+"I$	c #78B6F7",
+"J$	c #609AD7",
+"K$	c #4277B0",
+"L$	c #76B4F4",
+"M$	c #7EBDFF",
+"N$	c #7DBDFF",
+"O$	c #B4D5F2",
+"P$	c #D4E3EB",
+"Q$	c #D3E3EB",
+"R$	c #D3E2EA",
+"S$	c #D2E2EA",
+"T$	c #C1DAEE",
+"U$	c #AAD0F3",
+"V$	c #BFD9EA",
+"W$	c #78BAFF",
+"X$	c #6398D0",
+"Y$	c #8BC2FE",
+"Z$	c #9BC2DC",
+"`$	c #A1C3D3",
+" %	c #82A2BC",
+".%	c #919CA7",
+"+%	c #6D80A5",
+"@%	c #00175E",
+"#%	c #001862",
+"$%	c #001866",
+"%%	c #00196B",
+"&%	c #00196F",
+"*%	c #001A74",
+"=%	c #001A78",
+"-%	c #001B7B",
+";%	c #001B7E",
+">%	c #001C81",
+",%	c #002087",
+"'%	c #002289",
+")%	c #002489",
+"!%	c #A3C0E0",
+"~%	c #B0D3F2",
+"{%	c #87C2FF",
+"]%	c #70A8E3",
+"^%	c #4273A8",
+"/%	c #85C1FF",
+"(%	c #A1CDF8",
+"_%	c #D6E5EC",
+":%	c #D7E5EC",
+"<%	c #CEE1EE",
+"[%	c #D6E4EC",
+"}%	c #D5E4EC",
+"|%	c #D5E4EB",
+"1%	c #93C7FB",
+"2%	c #82BFFF",
+"3%	c #9ACAF9",
+"4%	c #A8D0F4",
+"5%	c #99C9F8",
+"6%	c #80BEFF",
+"7%	c #5782B0",
+"8%	c #95C6F7",
+"9%	c #7E9EB9",
+"0%	c #939EAB",
+"a%	c #899CBB",
+"b%	c #001A59",
+"c%	c #001A5D",
+"d%	c #001B62",
+"e%	c #001B65",
+"f%	c #001C6A",
+"g%	c #001D6E",
+"h%	c #001D72",
+"i%	c #001E76",
+"j%	c #001E7A",
+"k%	c #001F7D",
+"l%	c #001F80",
+"m%	c #001F82",
+"n%	c #002085",
+"o%	c #002287",
+"p%	c #7192C8",
+"q%	c #CADEEB",
+"r%	c #95C8FD",
+"s%	c #8FC6FF",
+"t%	c #8EC6FF",
+"u%	c #8DC5FE",
+"v%	c #6DA0D6",
+"w%	c #8EC5FF",
+"x%	c #A8D1F8",
+"y%	c #D7E5EE",
+"z%	c #D9E7ED",
+"A%	c #D8E6EE",
+"B%	c #637C9F",
+"C%	c #122A60",
+"D%	c #7A97BE",
+"E%	c #D8E6ED",
+"F%	c #D7E5ED",
+"G%	c #92C7FD",
+"H%	c #8AC3FF",
+"I%	c #89C3FF",
+"J%	c #88C2FF",
+"K%	c #86C1FF",
+"L%	c #547AA3",
+"M%	c #9EC6E5",
+"N%	c #A1C3D4",
+"O%	c #85A7C1",
+"P%	c #8594A3",
+"Q%	c #D0E2F4",
+"R%	c #274376",
+"S%	c #001C58",
+"T%	c #001D5D",
+"U%	c #001E61",
+"V%	c #001E65",
+"W%	c #001F69",
+"X%	c #00206D",
+"Y%	c #002071",
+"Z%	c #002175",
+"`%	c #002278",
+" &	c #00227B",
+".&	c #00227E",
+"+&	c #002381",
+"@&	c #002383",
+"#&	c #002485",
+"$&	c #002486",
+"%&	c #3C63AE",
+"&&	c #A3CFFB",
+"*&	c #97CAFF",
+"=&	c #B0D5F8",
+"-&	c #B3D6F7",
+";&	c #B7D8F7",
+">&	c #CBE0F2",
+",&	c #DBE8EE",
+"'&	c #DCE8EF",
+")&	c #87A0BC",
+"!&	c #011952",
+"~&	c #00206C",
+"{&	c #0F3077",
+"]&	c #B8CFE5",
+"^&	c #DAE7EE",
+"/&	c #C1DCF3",
+"(&	c #92C7FF",
+"_&	c #91C7FF",
+":&	c #ADD3F6",
+"<&	c #7FB0E4",
+"[&	c #8DC3FB",
+"}&	c #446383",
+"|&	c #A0C3D6",
+"1&	c #95B7CF",
+"2&	c #6F8295",
+"3&	c #C2D9EF",
+"4&	c #D0E9FF",
+"5&	c #395684",
+"6&	c #001F57",
+"7&	c #00205B",
+"8&	c #00205F",
+"9&	c #002164",
+"0&	c #002268",
+"a&	c #00236C",
+"b&	c #00236F",
+"c&	c #002473",
+"d&	c #002577",
+"e&	c #00257A",
+"f&	c #00267C",
+"g&	c #00267E",
+"h&	c #002781",
+"i&	c #002783",
+"j&	c #002784",
+"k&	c #0D368F",
+"l&	c #9BCCFF",
+"m&	c #9FCEFF",
+"n&	c #ABD3FB",
+"o&	c #D9E7EE",
+"p&	c #DDE9EF",
+"q&	c #DEE9EF",
+"r&	c #DEEAF0",
+"s&	c #DFEAF0",
+"t&	c #B7CBDE",
+"u&	c #0C2556",
+"v&	c #00246E",
+"w&	c #00236A",
+"x&	c #274B87",
+"y&	c #D9E7F0",
+"z&	c #C1DCF5",
+"A&	c #9BCCFE",
+"B&	c #99CBFF",
+"C&	c #98CBFF",
+"D&	c #B7D7F5",
+"E&	c #ABC6DE",
+"F&	c #274972",
+"G&	c #88B9EC",
+"H&	c #96CAFF",
+"I&	c #96C9FF",
+"J&	c #94C8FF",
+"K&	c #91BDE2",
+"L&	c #A2C4D7",
+"M&	c #637C95",
+"N&	c #ADC7E0",
+"O&	c #C6E3FE",
+"P&	c #C8E4FF",
+"Q&	c #2C4E7E",
+"R&	c #002157",
+"S&	c #00225B",
+"T&	c #00235F",
+"U&	c #002463",
+"V&	c #002567",
+"W&	c #00256A",
+"X&	c #00266E",
+"Y&	c #002771",
+"Z&	c #002875",
+"`&	c #002878",
+" *	c #00297B",
+".*	c #00297D",
+"+*	c #002A7F",
+"@*	c #002A81",
+"#*	c #002A82",
+"$*	c #012B82",
+"%*	c #96C5F8",
+"&*	c #A6D2FF",
+"**	c #C5DFF5",
+"=*	c #DFEBF0",
+"-*	c #E0EBF1",
+";*	c #E1EBF1",
+">*	c #D1E1ED",
+",*	c #29446D",
+"'*	c #002467",
+")*	c #002870",
+"!*	c #00276D",
+"~*	c #002669",
+"{*	c #072E6D",
+"]*	c #C7DBED",
+"^*	c #D1E4F2",
+"/*	c #A5D1FE",
+"(*	c #A0CFFF",
+"_*	c #BBDAF6",
+":*	c #88A9CB",
+"<*	c #5F86B2",
+"[*	c #ADD3F9",
+"}*	c #A6D1FB",
+"|*	c #9FCEFE",
+"1*	c #9ECDFF",
+"2*	c #9DCDFF",
+"3*	c #91C2F6",
+"4*	c #93BEE0",
+"5*	c #7696B2",
+"6*	c #89A4BC",
+"7*	c #BBDDFC",
+"8*	c #BEE0FF",
+"9*	c #BFE0FF",
+"0*	c #264B79",
+"a*	c #002457",
+"b*	c #00255B",
+"c*	c #00265E",
+"d*	c #002662",
+"e*	c #002766",
+"f*	c #002869",
+"g*	c #00296C",
+"h*	c #002A70",
+"i*	c #002B72",
+"j*	c #002B76",
+"k*	c #002C79",
+"l*	c #002C7B",
+"m*	c #002D7D",
+"n*	c #002D7F",
+"o*	c #002E80",
+"p*	c #002D81",
+"q*	c #89B6EA",
+"r*	c #AFD6FF",
+"s*	c #D8E7F1",
+"t*	c #E0EBF0",
+"u*	c #E1ECF1",
+"v*	c #E2ECF1",
+"w*	c #E3EDF2",
+"x*	c #758CA7",
+"y*	c #00235D",
+"z*	c #002B71",
+"A*	c #002A6F",
+"B*	c #002A6C",
+"C*	c #002968",
+"D*	c #002865",
+"E*	c #819FC2",
+"F*	c #D4E5F2",
+"G*	c #BFDCF8",
+"H*	c #CBE1F2",
+"I*	c #D0E2EE",
+"J*	c #A6C9EC",
+"K*	c #D1E1EA",
+"L*	c #C8DEED",
+"M*	c #BBD9F3",
+"N*	c #8FBBE9",
+"O*	c #31455B",
+"P*	c #92BDE1",
+"Q*	c #9ABDD4",
+"R*	c #607A95",
+"S*	c #A9CFF3",
+"T*	c #B3DAFF",
+"U*	c #B5DBFF",
+"V*	c #A6CBF0",
+"W*	c #103662",
+"X*	c #002656",
+"Y*	c #00275A",
+"Z*	c #00285E",
+"`*	c #002961",
+" =	c #002A64",
+".=	c #002B68",
+"+=	c #002B6B",
+"@=	c #002C6E",
+"#=	c #002D71",
+"$=	c #002E74",
+"%=	c #002E76",
+"&=	c #002F78",
+"*=	c #00307B",
+"==	c #00307D",
+"-=	c #00317E",
+";=	c #7CA8DD",
+">=	c #BADBFD",
+",=	c #E2ECF2",
+"'=	c #E4EEF3",
+")=	c #E5EEF3",
+"!=	c #E6EFF3",
+"~=	c #567193",
+"{=	c #002B6A",
+"]=	c #002E71",
+"^=	c #002D6E",
+"/=	c #002C6A",
+"(=	c #002B67",
+"_=	c #002B64",
+":=	c #264F82",
+"<=	c #D7E7F3",
+"[=	c #D5E5F0",
+"}=	c #D7E6EF",
+"|=	c #CAE0F0",
+"1=	c #AED6FF",
+"2=	c #96BFEA",
+"3=	c #6F91B0",
+"4=	c #89ADD3",
+"5=	c #A7D2FE",
+"6=	c #A9D4FF",
+"7=	c #ABD5FF",
+"8=	c #89B2DE",
+"9=	c #204873",
+"0=	c #002855",
+"a=	c #00295A",
+"b=	c #002A5D",
+"c=	c #002B60",
+"d=	c #002C63",
+"e=	c #002D67",
+"f=	c #002E6A",
+"g=	c #002F6D",
+"h=	c #002F6F",
+"i=	c #003072",
+"j=	c #003175",
+"k=	c #003277",
+"l=	c #003278",
+"m=	c #00337A",
+"n=	c #00337C",
+"o=	c #00337D",
+"p=	c #729ED3",
+"q=	c #BFDEFE",
+"r=	c #E0EBF2",
+"s=	c #E7EFF4",
+"t=	c #E8F0F4",
+"u=	c #3E5D83",
+"v=	c #002F6C",
+"w=	c #00306F",
+"x=	c #002E69",
+"y=	c #002E66",
+"z=	c #002D63",
+"A=	c #002B5E",
+"B=	c #47719F",
+"C=	c #C3DBF1",
+"D=	c #DCEAF2",
+"E=	c #D4E6F3",
+"F=	c #C1DCF4",
+"G=	c #B5D6F5",
+"H=	c #C4DDF2",
+"I=	c #D6E5EE",
+"J=	c #D3E4F0",
+"K=	c #B9DBFD",
+"L=	c #B5DAFF",
+"M=	c #A3C9F1",
+"N=	c #2D3F52",
+"O=	c #466D95",
+"P=	c #7097C4",
+"Q=	c #99C7F8",
+"R=	c #A0CEFF",
+"S=	c #A2CFFF",
+"T=	c #A0CCFC",
+"U=	c #163F69",
+"V=	c #002A54",
+"W=	c #002B58",
+"X=	c #002C5C",
+"Y=	c #002D5F",
+"Z=	c #002E63",
+"`=	c #002F66",
+" -	c #003069",
+".-	c #00316C",
+"+-	c #00326E",
+"@-	c #003270",
+"#-	c #003372",
+"$-	c #003475",
+"%-	c #003476",
+"&-	c #003578",
+"*-	c #003579",
+"=-	c #00367A",
+"--	c #6D99CC",
+";-	c #C5E1FF",
+">-	c #DBEAF6",
+",-	c #E9F1F5",
+"'-	c #EAF1F5",
+")-	c #EAF1F6",
+"!-	c #284B74",
+"~-	c #00316B",
+"{-	c #003068",
+"]-	c #003065",
+"^-	c #002F62",
+"/-	c #002E5E",
+"(-	c #002C5A",
+"_-	c #0A3159",
+":-	c #97B5D2",
+"<-	c #D0E4F4",
+"[-	c #CDE2F3",
+"}-	c #C4DEF4",
+"|-	c #CAE0F2",
+"1-	c #DAE7EF",
+"2-	c #CCE2F6",
+"3-	c #BEDEFF",
+"4-	c #BDDDFF",
+"5-	c #82A3C6",
+"6-	c #40658D",
+"7-	c #8EC5FC",
+"8-	c #92C8FF",
+"9-	c #94C9FF",
+"0-	c #97CBFF",
+"a-	c #8EC0F3",
+"b-	c #0A355C",
+"c-	c #002C54",
+"d-	c #002D58",
+"e-	c #002E5C",
+"f-	c #002F5F",
+"g-	c #003168",
+"h-	c #00326A",
+"i-	c #00336D",
+"j-	c #00346F",
+"k-	c #003571",
+"l-	c #003573",
+"m-	c #003675",
+"n-	c #003776",
+"o-	c #003777",
+"p-	c #003778",
+"q-	c #6693C5",
+"r-	c #CCE5FF",
+"s-	c #DBEAF8",
+"t-	c #E7F0F4",
+"u-	c #E9F0F4",
+"v-	c #EBF2F6",
+"w-	c #ECF3F6",
+"x-	c #E9F1F7",
+"y-	c #1A4069",
+"z-	c #00346C",
+"A-	c #00336A",
+"B-	c #003367",
+"C-	c #003264",
+"D-	c #003061",
+"E-	c #002F5E",
+"F-	c #002E5B",
+"G-	c #0B365E",
+"H-	c #4A77A2",
+"I-	c #87A5C2",
+"J-	c #B4CADE",
+"K-	c #D5E6F2",
+"L-	c #D7E7F4",
+"M-	c #C1DEFC",
+"N-	c #345074",
+"O-	c #4D6D94",
+"P-	c #2B3D50",
+"Q-	c #507BAC",
+"R-	c #6599D0",
+"S-	c #89C2FF",
+"T-	c #8BC3FF",
+"U-	c #8DC4FF",
+"V-	c #85BBF3",
+"W-	c #19466F",
+"X-	c #002D53",
+"Y-	c #002E57",
+"Z-	c #002F5B",
+"`-	c #00305F",
+" ;	c #003162",
+".;	c #003469",
+"+;	c #00356B",
+"@;	c #00366E",
+"#;	c #003670",
+"$;	c #003772",
+"%;	c #003873",
+"&;	c #003974",
+"*;	c #003975",
+"=;	c #003976",
+"-;	c #5B8CC1",
+";;	c #D3E9FF",
+">;	c #DDECFA",
+",;	c #EAF2F5",
+"';	c #EDF3F7",
+");	c #EEF4F7",
+"!;	c #EAF2F8",
+"~;	c #173F67",
+"{;	c #00366B",
+"];	c #003569",
+"^;	c #003467",
+"/;	c #003364",
+"(;	c #003260",
+"_;	c #00315E",
+":;	c #00305A",
+"<;	c #002F58",
+"[;	c #0A3961",
+"};	c #002C4F",
+"|;	c #002846",
+"1;	c #00243F",
+"2;	c #2A4F70",
+"3;	c #5F80A2",
+"4;	c #55789B",
+"5;	c #557698",
+"6;	c #2E4A67",
+"7;	c #385E85",
+"8;	c #254E7A",
+"9;	c #002546",
+"0;	c #2D5B89",
+"a;	c #7BB6F5",
+"b;	c #84C0FF",
+"c;	c #71A9E3",
+"d;	c #0A3861",
+"e;	c #002F57",
+"f;	c #00305B",
+"g;	c #00315D",
+"h;	c #003261",
+"i;	c #003466",
+"j;	c #00376C",
+"k;	c #00386E",
+"l;	c #003870",
+"m;	c #003971",
+"n;	c #003A73",
+"o;	c #003A74",
+"p;	c #0B457F",
+"q;	c #90C2F6",
+"r;	c #CAE3FE",
+"s;	c #DFEEFB",
+"t;	c #EBF2F5",
+"u;	c #EFF5F7",
+"v;	c #F0F5F8",
+"w;	c #EEF4F9",
+"x;	c #1D446C",
+"y;	c #00376A",
+"z;	c #003668",
+"A;	c #003565",
+"B;	c #003463",
+"C;	c #003360",
+"D;	c #00325D",
+"E;	c #00315B",
+"F;	c #003058",
+"G;	c #002F54",
+"H;	c #002D51",
+"I;	c #002B4D",
+"J;	c #00294B",
+"K;	c #002746",
+"L;	c #002544",
+"M;	c #002442",
+"N;	c #052644",
+"O;	c #3C638B",
+"P;	c #325881",
+"Q;	c #042A4D",
+"R;	c #002648",
+"S;	c #00274A",
+"T;	c #0B355C",
+"U;	c #64A1DF",
+"V;	c #7CBDFF",
+"W;	c #7DBEFF",
+"X;	c #7EBDFE",
+"Y;	c #73B1EF",
+"Z;	c #0D3E69",
+"`;	c #083A68",
+" >	c #003566",
+".>	c #0C4176",
+"+>	c #00396F",
+"@>	c #003A70",
+"#>	c #003A71",
+"$>	c #003B72",
+"%>	c #164F88",
+"&>	c #8FC7FE",
+"*>	c #B4D6FA",
+"=>	c #E2F0FD",
+"->	c #EFF5F8",
+";>	c #F1F6F8",
+">>	c #F2F7F9",
+",>	c #F3F7F9",
+"'>	c #6288AE",
+")>	c #437AAF",
+"!>	c #023A6C",
+"~>	c #003767",
+"{>	c #003665",
+"]>	c #003563",
+"^>	c #003460",
+"/>	c #00335E",
+"(>	c #00315A",
+"_>	c #003057",
+":>	c #002F55",
+"<>	c #002E53",
+"[>	c #002B50",
+"}>	c #002A4E",
+"|>	c #00294C",
+"1>	c #00284A",
+"2>	c #002748",
+"3>	c #012647",
+"4>	c #2C5176",
+"5>	c #173A5E",
+"6>	c #002548",
+"7>	c #00264A",
+"8>	c #00274C",
+"9>	c #00294E",
+"0>	c #0D3A64",
+"a>	c #4077B1",
+"b>	c #5A96D7",
+"c>	c #77B9FE",
+"d>	c #5B96D5",
+"e>	c #4C85C0",
+"f>	c #093C69",
+"g>	c #427CB6",
+"h>	c #00386A",
+"i>	c #00386B",
+"j>	c #00396D",
+"k>	c #003A6E",
+"l>	c #003B71",
+"m>	c #0A457C",
+"n>	c #72ADE9",
+"o>	c #88C4FF",
+"p>	c #B3D7FC",
+"q>	c #E6F2FF",
+"r>	c #EDF4F7",
+"s>	c #F4F8FA",
+"t>	c #F5F8FA",
+"u>	c #88A7C7",
+"v>	c #7CB6EF",
+"w>	c #043C6D",
+"x>	c #00335D",
+"y>	c #00325B",
+"z>	c #003159",
+"A>	c #002E56",
+"B>	c #002D54",
+"C>	c #002C52",
+"D>	c #00284C",
+"E>	c #00274B",
+"F>	c #002649",
+"G>	c #1F4368",
+"H>	c #0A2C50",
+"I>	c #00254B",
+"J>	c #00264C",
+"K>	c #00284E",
+"L>	c #002950",
+"M>	c #002A52",
+"N>	c #002B54",
+"O>	c #03305A",
+"P>	c #356CA6",
+"Q>	c #9EC9F8",
+"R>	c #CAE2FC",
+"S>	c #769BC3",
+"T>	c #05355F",
+"U>	c #003461",
+"V>	c #4F8BC9",
+"W>	c #0E467A",
+"X>	c #0A4378",
+"Y>	c #00396C",
+"Z>	c #003B6F",
+"`>	c #003B70",
+" ,	c #2E6AA4",
+".,	c #80BFFF",
+"+,	c #A9D1FB",
+"@,	c #EBF5FF",
+"#,	c #EEF5FB",
+"$,	c #F5F9FA",
+"%,	c #F6F9FB",
+"&,	c #91ACC9",
+"*,	c #71ABE7",
+"=,	c #175084",
+"-,	c #003867",
+";,	c #003765",
+">,	c #003663",
+",,	c #003561",
+"',	c #00335F",
+"),	c #00315C",
+"!,	c #002B52",
+"~,	c #002A50",
+"{,	c #00274D",
+"],	c #00264B",
+"^,	c #103257",
+"/,	c #3C6691",
+"(,	c #04274C",
+"_,	c #00254C",
+":,	c #00264E",
+"<,	c #002850",
+"[,	c #002952",
+"},	c #002B55",
+"|,	c #002C57",
+"1,	c #5F85AC",
+"2,	c #F3F9FF",
+"3,	c #F1F8FF",
+"4,	c #9AB7D4",
+"5,	c #05345E",
+"6,	c #003564",
+"7,	c #003666",
+"8,	c #1A5289",
+"9,	c #5594D7",
+"0,	c #73B8FE",
+"a,	c #4C8CCC",
+"b,	c #064075",
+"c,	c #1A568F",
+"d,	c #19558E",
+"e,	c #5190D0",
+"f,	c #78BBFF",
+"g,	c #83BDF9",
+"h,	c #EFF7FF",
+"i,	c #F0F7FF",
+"j,	c #F2F7FB",
+"k,	c #F7F9FB",
+"l,	c #F8FAFC",
+"m,	c #A3BBD4",
+"n,	c #66A2DE",
+"o,	c #3E7BB8",
+"p,	c #003868",
+"q,	c #003766",
+"r,	c #003664",
+"s,	c #003361",
+"t,	c #00325F",
+"u,	c #002F5A",
+"v,	c #002C56",
+"w,	c #00274E",
+"x,	c #082A4F",
+"y,	c #345B86",
+"z,	c #02254C",
+"A,	c #00254D",
+"B,	c #00264F",
+"C,	c #002751",
+"D,	c #002953",
+"E,	c #002A55",
+"F,	c #002B57",
+"G,	c #093664",
+"H,	c #D5E6F7",
+"I,	c #EEF6FF",
+"J,	c #7395B7",
+"K,	c #00315F",
+"L,	c #003667",
+"M,	c #003769",
+"N,	c #2F6CA9",
+"O,	c #5597DD",
+"P,	c #589BE0",
+"Q,	c #4D8FD2",
+"R,	c #033E74",
+"S,	c #2A69A5",
+"T,	c #69AEF4",
+"U,	c #72B8FF",
+"V,	c #70B4FA",
+"W,	c #DBECFE",
+"X,	c #F5FAFF",
+"Y,	c #F5F9FB",
+"Z,	c #F9FBFC",
+"`,	c #E0ECF8",
+" '	c #2A5A8A",
+".'	c #0B4478",
+"+'	c #003464",
+"@'	c #003362",
+"#'	c #00305D",
+"$'	c #002D59",
+"%'	c #002851",
+"&'	c #00264D",
+"*'	c #04274D",
+"='	c #3A6590",
+"-'	c #2E5680",
+";'	c #01244D",
+">'	c #00244E",
+",'	c #002550",
+"''	c #002752",
+")'	c #002854",
+"!'	c #002956",
+"~'	c #3F6995",
+"{'	c #D5E2EF",
+"]'	c #E1EFFE",
+"^'	c #27507A",
+"/'	c #00366A",
+"('	c #00376B",
+"_'	c #1F5A97",
+":'	c #4789CE",
+"<'	c #498AD0",
+"['	c #013A71",
+"}'	c #013B72",
+"|'	c #2B6AA9",
+"1'	c #6DB4FF",
+"2'	c #6DB4FE",
+"3'	c #B6D7FA",
+"4'	c #F9FCFF",
+"5'	c #F8FBFE",
+"6'	c #F7FAFB",
+"7'	c #FAFCFD",
+"8'	c #608FC1",
+"9'	c #5293D9",
+"0'	c #083F75",
+"a'	c #003669",
+"b'	c #003365",
+"c'	c #003263",
+"d'	c #003161",
+"e'	c #003060",
+"f'	c #002D5A",
+"g'	c #002A56",
+"h'	c #002650",
+"i'	c #00254E",
+"j'	c #02254D",
+"k'	c #345D88",
+"l'	c #2B537E",
+"m'	c #00234D",
+"n'	c #002652",
+"o'	c #002754",
+"p'	c #002A58",
+"q'	c #7495B9",
+"r'	c #A3B5CB",
+"s'	c #8AA1BC",
+"t'	c #E8F3FF",
+"u'	c #97B4D1",
+"v'	c #00356A",
+"w'	c #09417A",
+"x'	c #579CE9",
+"y'	c #5EA4F4",
+"z'	c #5095E0",
+"A'	c #5195E1",
+"B'	c #68AFFF",
+"C'	c #68B0FF",
+"D'	c #71B0F5",
+"E'	c #EDF5FE",
+"F'	c #FDFEFF",
+"G'	c #FBFCFD",
+"H'	c #FCFDFE",
+"I'	c #7EA1C8",
+"J'	c #60A4F1",
+"K'	c #5BA1F0",
+"L'	c #003266",
+"M'	c #003164",
+"N'	c #003062",
+"O'	c #002F60",
+"P'	c #002D5C",
+"Q'	c #002A59",
+"R'	c #01244E",
+"S'	c #315A85",
+"T'	c #2A527F",
+"U'	c #00224E",
+"V'	c #00244F",
+"W'	c #002451",
+"X'	c #002653",
+"Y'	c #002655",
+"Z'	c #002857",
+"`'	c #002958",
+" )	c #8EABCB",
+".)	c #EDF6FF",
+"+)	c #C3D1E1",
+"@)	c #103461",
+"#)	c #7C95B2",
+"$)	c #DCEDFE",
+"%)	c #1C446F",
+"&)	c #003369",
+"*)	c #0C437F",
+"=)	c #5FA9FE",
+"-)	c #61ABFF",
+";)	c #62ACFF",
+">)	c #63ACFF",
+",)	c #63ADFF",
+"')	c #62ABFC",
+"))	c #85B8F1",
+"!)	c #FAFCFF",
+"~)	c #FFFFFF",
+"{)	c #FEFEFF",
+"])	c #C2D6EA",
+"^)	c #5291D8",
+"/)	c #5FA9FD",
+"()	c #03376D",
+"_)	c #003268",
+":)	c #003064",
+"<)	c #002E60",
+"[)	c #002D5E",
+"})	c #002C5D",
+"|)	c #002A5B",
+"1)	c #002959",
+"2)	c #002755",
+"3)	c #002551",
+"4)	c #002450",
+"5)	c #01244F",
+"6)	c #2F5885",
+"7)	c #2A5381",
+"8)	c #00234E",
+"9)	c #00234F",
+"0)	c #002553",
+"a)	c #002859",
+"b)	c #8BA9CA",
+"c)	c #ECF5FF",
+"d)	c #A2B3C7",
+"e)	c #12355E",
+"f)	c #002654",
+"g)	c #7D96B3",
+"h)	c #E3F1FF",
+"i)	c #E2F0FF",
+"j)	c #6A8AAE",
+"k)	c #002F63",
+"l)	c #00336C",
+"m)	c #2A6AB2",
+"n)	c #55A0F7",
+"o)	c #5BA7FF",
+"p)	c #5BA8FF",
+"q)	c #5CA8FF",
+"r)	c #5CA9FF",
+"s)	c #5DA9FF",
+"t)	c #5BA5F8",
+"u)	c #98C3F2",
+"v)	c #FEFFFF",
+"w)	c #FBFDFD",
+"x)	c #FCFDFD",
+"y)	c #8EB3DE",
+"z)	c #4D93E3",
+"A)	c #003269",
+"B)	c #003066",
+"C)	c #002F64",
+"D)	c #002E62",
+"E)	c #002D60",
+"F)	c #002C5F",
+"G)	c #002B5D",
+"H)	c #002552",
+"I)	c #305A88",
+"J)	c #2E5886",
+"K)	c #00224F",
+"L)	c #002250",
+"M)	c #002554",
+"N)	c #002858",
+"O)	c #375C88",
+"P)	c #1F3D5F",
+"Q)	c #00234A",
+"R)	c #1D3E64",
+"S)	c #98ADC5",
+"T)	c #E3F0FF",
+"U)	c #E1F0FF",
+"V)	c #DFEFFF",
+"W)	c #BAD3EF",
+"X)	c #042C5A",
+"Y)	c #00326B",
+"Z)	c #2362A9",
+"`)	c #0D4583",
+" !	c #4996ED",
+".!	c #54A5FF",
+"+!	c #55A6FF",
+"@!	c #4995E9",
+"#!	c #519FF6",
+"$!	c #56A7FF",
+"%!	c #53A0F4",
+"&!	c #D9EAFD",
+"*!	c #FEFEFE",
+"=!	c #CEDEF0",
+"-!	c #3774B8",
+";!	c #002F65",
+">!	c #002D61",
+",!	c #002C60",
+"'!	c #002A5C",
+")!	c #002756",
+"!!	c #002452",
+"~!	c #002350",
+"{!	c #022450",
+"]!	c #335F8D",
+"^!	c #325E8E",
+"/!	c #012350",
+"(!	c #002351",
+"_!	c #002757",
+":!	c #1E4777",
+"<!	c #0B294D",
+"[!	c #768DA6",
+"}!	c #DDEAF9",
+"|!	c #DDEEFF",
+"1!	c #D9ECFF",
+"2!	c #375C86",
+"3!	c #003067",
+"4!	c #043873",
+"5!	c #4A9EF9",
+"6!	c #4DA3FF",
+"7!	c #4EA4FF",
+"8!	c #1E5FA6",
+"9!	c #073F7C",
+"0!	c #3985D6",
+"a!	c #4FA4FF",
+"b!	c #D6E9FE",
+"c!	c #FAFCFC",
+"d!	c #F2F8FD",
+"e!	c #2F6096",
+"f!	c #002E64",
+"g!	c #002D62",
+"h!	c #002C61",
+"i!	c #002B5F",
+"j!	c #00295B",
+"k!	c #002453",
+"l!	c #032551",
+"m!	c #396797",
+"n!	c #3A6999",
+"o!	c #032552",
+"p!	c #002150",
+"q!	c #002251",
+"r!	c #002352",
+"s!	c #002555",
+"t!	c #163F71",
+"u!	c #C8D9EB",
+"v!	c #E5F2FF",
+"w!	c #DFEEFF",
+"x!	c #C7DAEE",
+"y!	c #A5BCD7",
+"z!	c #D8EBFF",
+"A!	c #8BAACC",
+"B!	c #003169",
+"C!	c #2166B0",
+"D!	c #47A2FF",
+"E!	c #2C77C7",
+"F!	c #063D7B",
+"G!	c #00336E",
+"H!	c #013671",
+"I!	c #388ADF",
+"J!	c #47A2FE",
+"K!	c #B3D6FB",
+"L!	c #F8FAFB",
+"M!	c #F8FBFC",
+"N!	c #6B87A7",
+"O!	c #002A5E",
+"P!	c #00295C",
+"Q!	c #002759",
+"R!	c #002556",
+"S!	c #072956",
+"T!	c #082B59",
+"U!	c #00214F",
+"V!	c #002252",
+"W!	c #002353",
+"X!	c #002454",
+"Y!	c #012758",
+"Z!	c #B8D2ED",
+"`!	c #E1EFFF",
+" ~	c #DEEEFF",
+".~	c #A1B7D0",
+"+~	c #173C68",
+"@~	c #40638C",
+"#~	c #D5EAFF",
+"$~	c #CBE4FE",
+"%~	c #1B416D",
+"&~	c #002F68",
+"*~	c #043772",
+"=~	c #2B7DD1",
+"-~	c #3E9FFE",
+";~	c #3794EE",
+">~	c #2878CA",
+",~	c #00326C",
+"'~	c #216CBA",
+")~	c #3FA1FF",
+"!~	c #5AA9F5",
+"~~	c #F4F9FF",
+"{~	c #B8CADC",
+"]~	c #00285B",
+"^~	c #002758",
+"/~	c #002657",
+"(~	c #0E3160",
+"_~	c #143969",
+":~	c #00204E",
+"<~	c #002253",
+"[~	c #002354",
+"}~	c #7898BE",
+"|~	c #DFEEFE",
+"1~	c #B3C6DB",
+"2~	c #4B698A",
+"3~	c #012652",
+"4~	c #0A305D",
+"5~	c #7996B7",
+"6~	c #D1E7FF",
+"7~	c #7799BF",
+"8~	c #002D66",
+"9~	c #002E67",
+"0~	c #083E7D",
+"a~	c #073C7A",
+"b~	c #073C7B",
+"c~	c #00306A",
+"d~	c #1A64AF",
+"e~	c #38A1FF",
+"f~	c #379EFC",
+"g~	c #5CA5E9",
+"h~	c #EBF4FD",
+"i~	c #D4E3F2",
+"j~	c #012149",
+"k~	c #002B61",
+"l~	c #002A5F",
+"m~	c #00295E",
+"n~	c #002658",
+"o~	c #002557",
+"p~	c #002455",
+"q~	c #00214E",
+"r~	c #1C4474",
+"s~	c #254F81",
+"t~	c #00204D",
+"u~	c #002151",
+"v~	c #22497A",
+"w~	c #102E51",
+"x~	c #002147",
+"y~	c #00234C",
+"z~	c #466689",
+"A~	c #BCD3EB",
+"B~	c #CEE6FF",
+"C~	c #C4E0FE",
+"D~	c #1F4472",
+"E~	c #002D65",
+"F~	c #053A79",
+"G~	c #309DFF",
+"H~	c #2F9BFB",
+"I~	c #6FB2F1",
+"J~	c #EFF5F9",
+"K~	c #39597F",
+"L~	c #00285C",
+"M~	c #00295D",
+"N~	c #002659",
+"O~	c #2A5688",
+"P~	c #336396",
+"Q~	c #022150",
+"R~	c #001F4D",
+"S~	c #002050",
+"T~	c #06295A",
+"U~	c #1A3D66",
+"V~	c #234163",
+"W~	c #9CB4CE",
+"X~	c #D5E9FF",
+"Y~	c #D2E8FF",
+"Z~	c #D0E7FF",
+"`~	c #C9E3FD",
+" {	c #C9E4FF",
+".{	c #90B3DA",
+"+{	c #032959",
+"@{	c #002B62",
+"#{	c #002B63",
+"${	c #002C65",
+"%{	c #1768BB",
+"&{	c #2999FF",
+"*{	c #2998FF",
+"={	c #2A95F8",
+"-{	c #C9E2FB",
+";{	c #F0F6F8",
+">{	c #B0C4D9",
+",{	c #012450",
+"'{	c #002558",
+"){	c #002355",
+"!{	c #00204F",
+"~{	c #042553",
+"{{	c #396B9F",
+"]{	c #0B2E5E",
+"^{	c #001E4C",
+"/{	c #002051",
+"({	c #002152",
+"_{	c #50739D",
+":{	c #D2E6FB",
+"<{	c #CDE5FF",
+"[{	c #8BA9CB",
+"}{	c #29507E",
+"|{	c #C0DCFA",
+"1{	c #C3E1FF",
+"2{	c #5A80AC",
+"3{	c #002960",
+"4{	c #002A61",
+"5{	c #084083",
+"6{	c #1A75D3",
+"7{	c #1E84E9",
+"8{	c #176BC4",
+"9{	c #0B4A91",
+"0{	c #6F96C2",
+"a{	c #ECF3F7",
+"b{	c #2E4E75",
+"c{	c #002456",
+"d{	c #001F4E",
+"e{	c #001F4C",
+"f{	c #113667",
+"g{	c #224D81",
+"h{	c #001E4B",
+"i{	c #001E4D",
+"j{	c #1C4072",
+"k{	c #CCE5FE",
+"l{	c #BFD6F0",
+"m{	c #6887A8",
+"n{	c #284B75",
+"o{	c #012959",
+"p{	c #446995",
+"q{	c #AECDEE",
+"r{	c #C1DFFF",
+"s{	c #BADBFE",
+"t{	c #385D8B",
+"u{	c #00285F",
+"v{	c #00285D",
+"w{	c #0B3367",
+"x{	c #CDDCED",
+"y{	c #D8E5F0",
+"z{	c #163154",
+"A{	c #002254",
+"B{	c #094490",
+"C{	c #08428E",
+"D{	c #083F89",
+"E{	c #02265C",
+"F{	c #011F4C",
+"G{	c #36659C",
+"H{	c #396BA1",
+"I{	c #042453",
+"J{	c #001F50",
+"K{	c #7E9FC7",
+"L{	c #6D88A7",
+"M{	c #0B2D53",
+"N{	c #0E335E",
+"O{	c #8AA9CC",
+"P{	c #C3E0FF",
+"Q{	c #BBDCFF",
+"R{	c #AED3FA",
+"S{	c #264A78",
+"T{	c #002559",
+"U{	c #00265B",
+"V{	c #00265C",
+"W{	c #00265A",
+"X{	c #2C4F7E",
+"Y{	c #5C789C",
+"Z{	c #D6E6F5",
+"`{	c #DFEBF4",
+" ]	c #586F8B",
+".]	c #001D47",
+"+]	c #002255",
+"@]	c #012253",
+"#]	c #137BF6",
+"$]	c #147FFF",
+"%]	c #073E89",
+"&]	c #072858",
+"*]	c #61A1E6",
+"=]	c #1A4376",
+"-]	c #001F4F",
+";]	c #153868",
+">]	c #0C2E54",
+",]	c #002148",
+"']	c #1C3E66",
+")]	c #A7C5E5",
+"!]	c #C0DFFF",
+"~]	c #B5D7FA",
+"{]	c #739AC5",
+"]]	c #B6DAFF",
+"^]	c #A3CAF4",
+"/]	c #204372",
+"(]	c #00255A",
+"_]	c #002459",
+":]	c #002458",
+"<]	c #002357",
+"[]	c #082755",
+"}]	c #1A3963",
+"|]	c #001C46",
+"1]	c #043479",
+"2]	c #107BFF",
+"3]	c #0F7AFF",
+"4]	c #033070",
+"5]	c #2B588F",
+"6]	c #376AA1",
+"7]	c #001D4B",
+"8]	c #224877",
+"9]	c #254569",
+"0]	c #B3D0EE",
+"a]	c #C2E0FF",
+"b]	c #A8CAEF",
+"c]	c #2C5686",
+"d]	c #5C86B5",
+"e]	c #B1D7FF",
+"f]	c #9BC5F2",
+"g]	c #1E4473",
+"h]	c #00275B",
+"i]	c #00275C",
+"j]	c #0C6ADC",
+"k]	c #0D78FF",
+"l]	c #095DCC",
+"m]	c #5796DB",
+"n]	c #3C5B7D",
+"o]	c #1E4A7F",
+"p]	c #001D4A",
+"q]	c #0B3366",
+"r]	c #9DC0E6",
+"s]	c #AFCFF2",
+"t]	c #5276A0",
+"u]	c #0B3464",
+"v]	c #608AB9",
+"w]	c #ADD5FF",
+"x]	c #ABD4FF",
+"y]	c #99C6F5",
+"z]	c #254E7F",
+"A]	c #002C62",
+"B]	c #002A60",
+"C]	c #00285A",
+"D]	c #023370",
+"E]	c #0C7DFB",
+"F]	c #0974FF",
+"G]	c #043B8B",
+"H]	c #2F5F98",
+"I]	c #62AFFE",
+"J]	c #3A597A",
+"K]	c #0B2E5F",
+"L]	c #001C49",
+"M]	c #002F67",
+"N]	c #305E91",
+"O]	c #86A7CB",
+"P]	c #113560",
+"Q]	c #517BAA",
+"R]	c #A8D3FF",
+"S]	c #A0CDFB",
+"T]	c #9BCAFB",
+"U]	c #346295",
+"V]	c #00336B",
+"W]	c #086ECC",
+"X]	c #097AFF",
+"Y]	c #0771FF",
+"Z]	c #076DF8",
+"`]	c #103C79",
+" ^	c #5EA2EB",
+".^	c #5DACFF",
+"+^	c #314964",
+"@^	c #2F629B",
+"#^	c #03214F",
+"$^	c #001C48",
+"%^	c #003871",
+"&^	c #003972",
+"*^	c #4070A3",
+"=^	c #042750",
+"-^	c #052C5C",
+";^	c #628AB7",
+">^	c #AAD4FF",
+",^	c #9AC7F5",
+"'^	c #598ABE",
+")^	c #4E81B6",
+"!^	c #033B72",
+"~^	c #003C77",
+"{^	c #003C78",
+"]^	c #003C76",
+"^^	c #003B76",
+"/^	c #003A75",
+"(^	c #003973",
+"_^	c #02498A",
+":^	c #0981DC",
+"<^	c #0B91FF",
+"[^	c #056EFF",
+"}^	c #085FD9",
+"|^	c #4A85C5",
+"1^	c #5EACFE",
+"2^	c #214F88",
+"3^	c #011D4B",
+"4^	c #001B49",
+"5^	c #004483",
+"6^	c #014380",
+"7^	c #255689",
+"8^	c #01254E",
+"9^	c #123763",
+"0^	c #88AFD9",
+"a^	c #A7D2FF",
+"b^	c #97C4F3",
+"c^	c #26578D",
+"d^	c #5586BB",
+"e^	c #9CCDFF",
+"f^	c #9ACBFF",
+"g^	c #6DA4DC",
+"h^	c #13518A",
+"i^	c #004683",
+"j^	c #004785",
+"k^	c #004685",
+"l^	c #004584",
+"m^	c #014D8F",
+"n^	c #0676C3",
+"o^	c #0363AB",
+"p^	c #046AB3",
+"q^	c #0675C3",
+"r^	c #0AA5FF",
+"s^	c #0578FF",
+"t^	c #036AFF",
+"u^	c #0461E8",
+"v^	c #356FB7",
+"w^	c #5FADFE",
+"x^	c #589FE8",
+"y^	c #19437A",
+"z^	c #011B48",
+"A^	c #001C4A",
+"B^	c #005093",
+"C^	c #045090",
+"D^	c #2F6397",
+"E^	c #9AC1EB",
+"F^	c #ACD5FF",
+"G^	c #AAD3FF",
+"H^	c #729FCF",
+"I^	c #124076",
+"J^	c #0A3B72",
+"K^	c #8EBFF2",
+"L^	c #88BCF4",
+"M^	c #86BEF9",
+"N^	c #3F7EB9",
+"O^	c #054F8E",
+"P^	c #004F92",
+"Q^	c #01589E",
+"R^	c #016AB3",
+"S^	c #028CD3",
+"T^	c #05B4FF",
+"U^	c #0491FF",
+"V^	c #0167FF",
+"W^	c #0266FD",
+"X^	c #2B6ECA",
+"Y^	c #5FABFA",
+"Z^	c #497FB9",
+"`^	c #153E74",
+" /	c #001B48",
+"./	c #00589C",
+"+/	c #005EA5",
+"@/	c #045DA0",
+"#/	c #66A2D9",
+"$/	c #A9D3FF",
+"%/	c #8AB4E2",
+"&/	c #305B8B",
+"*/	c #033066",
+"=/	c #6C9CD0",
+"-/	c #76ABE3",
+";/	c #588EC9",
+">/	c #8CC4FF",
+",/	c #75B2F0",
+"'/	c #337DBC",
+")/	c #045C9F",
+"!/	c #005EA4",
+"~/	c #00AAE8",
+"{/	c #00C5FF",
+"]/	c #00AAFF",
+"^/	c #0067FF",
+"//	c #0165FE",
+"(/	c #327BE4",
+"_/	c #5EAAFB",
+":/	c #324E6C",
+"</	c #163F76",
+"[/	c #011B47",
+"}/	c #0065AE",
+"|/	c #006BB7",
+"1/	c #0167B0",
+"2/	c #3A80BC",
+"3/	c #0C3565",
+"4/	c #5786BA",
+"5/	c #93C8FE",
+"6/	c #245A95",
+"7/	c #447BB7",
+"8/	c #8BC4FF",
+"9/	c #85C0FE",
+"0/	c #7FBCFB",
+"a/	c #81BFFF",
+"b/	c #72B3F4",
+"c/	c #408ED0",
+"d/	c #1270B6",
+"e/	c #0069B3",
+"f/	c #006BB6",
+"g/	c #006CB7",
+"h/	c #00D1FD",
+"i/	c #00D8FF",
+"j/	c #00BDFF",
+"k/	c #006BFE",
+"l/	c #186CEB",
+"m/	c #4D95ED",
+"n/	c #5194DA",
+"o/	c #1C4982",
+"p/	c #021C49",
+"q/	c #0078C8",
+"r/	c #0074C3",
+"s/	c #1971B4",
+"t/	c #18497D",
+"u/	c #3B689B",
+"v/	c #98CAFF",
+"w/	c #93C8FF",
+"x/	c #5A8EC7",
+"y/	c #1D5492",
+"z/	c #83BDFA",
+"A/	c #83C0FF",
+"B/	c #3473B7",
+"C/	c #7DBCFE",
+"D/	c #7BBCFF",
+"E/	c #79BAFF",
+"F/	c #77B9FF",
+"G/	c #62AAEF",
+"H/	c #4396DD",
+"I/	c #2D95D9",
+"J/	c #1FD5F7",
+"K/	c #18D9F8",
+"L/	c #1AD9F9",
+"M/	c #24CAFA",
+"N/	c #3790FB",
+"O/	c #52A0FC",
+"P/	c #60ADFE",
+"Q/	c #54A7FE",
+"R/	c #2E4967",
+"S/	c #275A95",
+"T/	c #052354",
+"U/	c #0064AC",
+"V/	c #0087DB",
+"W/	c #0086D9",
+"X/	c #0A7FC9",
+"Y/	c #57A2DE",
+"Z/	c #93C7FE",
+"`/	c #7CB1EA",
+" (	c #083B73",
+".(	c #003674",
+"+(	c #5F9AD8",
+"@(	c #125196",
+"#(	c #3575BB",
+"$(	c #73B8FF",
+"%(	c #66AEF8",
+"&(	c #6BB3FE",
+"*(	c #52A4F9",
+"=(	c #4599F1",
+"-(	c #4577AB",
+";(	c #376FAC",
+">(	c #123970",
+",(	c #011A47",
+"'(	c #00437E",
+")(	c #0086DA",
+"!(	c #0093EC",
+"~(	c #0093EB",
+"{(	c #008DE1",
+"](	c #1E8CD4",
+"^(	c #68ADEA",
+"/(	c #205189",
+"((	c #00316A",
+"_(	c #00346E",
+":(	c #023874",
+"<(	c #75B1F1",
+"[(	c #1B5A9E",
+"}(	c #004188",
+"|(	c #4183CB",
+"1(	c #559EEB",
+"2(	c #105CAF",
+"3(	c #418DDE",
+"4(	c #57A8FC",
+"5(	c #0762C4",
+"6(	c #0360C5",
+"7(	c #469CF5",
+"8(	c #4D89C8",
+"9(	c #2A5D99",
+"0(	c #0B2D60",
+"a(	c #011E4C",
+"b(	c #005393",
+"c(	c #008FE1",
+"d(	c #00A0F4",
+"e(	c #009FF3",
+"f(	c #0095E3",
+"g(	c #1889CB",
+"h(	c #1F66A0",
+"i(	c #0E437D",
+"j(	c #2C64A1",
+"k(	c #7ABBFF",
+"l(	c #135196",
+"m(	c #004086",
+"n(	c #04468F",
+"o(	c #6CB2FB",
+"p(	c #6DB5FF",
+"q(	c #6BB4FF",
+"r(	c #115EB0",
+"s(	c #004FA4",
+"t(	c #2776CA",
+"u(	c #1770D0",
+"v(	c #005CC1",
+"w(	c #0B68CD",
+"x(	c #2F89E8",
+"y(	c #357ECC",
+"z(	c #295C98",
+"A(	c #0E3267",
+"B(	c #021D4B",
+"C(	c #004379",
+"D(	c #0077B8",
+"E(	c #00A2EB",
+"F(	c #00ADF8",
+"G(	c #00ACF6",
+"H(	c #00A2E9",
+"I(	c #1094D3",
+"J(	c #3A97D3",
+"K(	c #6BB0F0",
+"L(	c #5A9ADF",
+"M(	c #003D81",
+"N(	c #003F85",
+"O(	c #0A4C94",
+"P(	c #6BB3FF",
+"Q(	c #66B1FF",
+"R(	c #327ED0",
+"S(	c #0051A7",
+"T(	c #3E8EE3",
+"U(	c #1D75D4",
+"V(	c #005CC0",
+"W(	c #326AA8",
+"X(	c #1F4C85",
+"Y(	c #031E4B",
+"Z(	c #005089",
+"`(	c #0069A6",
+" _	c #007CBC",
+"._	c #0087CA",
+"+_	c #0178B5",
+"@_	c #166CA1",
+"#_	c #24578B",
+"$_	c #1C4F8A",
+"%_	c #104D92",
+"&_	c #014188",
+"*_	c #539AE5",
+"=_	c #65B1FF",
+"-_	c #63B0FF",
+";_	c #3480D2",
+">_	c #004EA2",
+",_	c #0050A5",
+"'_	c #0759B0",
+")_	c #4FA1F6",
+"!_	c #5CAAFC",
+"~_	c #5498DF",
+"{_	c #3771B1",
+"]_	c #2B5F9C",
+"^_	c #22508A",
+"/_	c #163F77",
+"(_	c #0F3369",
+"__	c #0B2C61",
+":_	c #0A295D",
+"<_	c #0A2A5E",
+"[_	c #103368",
+"}_	c #173D71",
+"|_	c #2A5587",
+"1_	c #376698",
+"2_	c #2F5F92",
+"3_	c #558AC1",
+"4_	c #578EC9",
+"5_	c #558ECA",
+"6_	c #0C4889",
+"7_	c #013E7F",
+"8_	c #003E80",
+"9_	c #003D7D",
+"0_	c #174576",
+"                                            . + @ # $ % & * = -                                                               ",
+"                                    ; > , ' ' ) ) ) ) ) ) ) ! ! ! ~ { ]                                                       ",
+"                                ^ / ( ( _ _ : < _ [ } } } | | | | | 1 1 2 3                                                   ",
+"                            4 5 6 6 6 7 8 7 9 0 7 a a a a a b b b b c d d d e f                                               ",
+"                          g d h i h j k l m n o p q q r s t u v u u u w w w x w y z           A B                             ",
+"                        C D x E F G H I H J K L M G N O P Q R S T U V W X Y Z U ` `  ...    +.o @.#.                          ",
+"                    $.%.Y &.*.=.-.;.>.,.'.).!.~.{.].^.&./.(._.:.<.:.[.:.}.|.1.2.3.4.5.6.7.8.:.9.%.0.a.b.                      ",
+"                  c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.v.w.x.y.z.A.z.B.C.D.E.F.G.G.H.I.J.-.K.L.M.N.O.P.Q.          R.S.T.U.",
+"                V.W.X.Y.Z.`. +.+++ at +#+$+%+&+*+=+-+;+>+,+'+;+)+!+~+{+]+^+/+(+_+:+<+[+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+z.v.",
+"              g+h+i+j+k+l+m+m+n+o+p+q+r+s+t+u+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+M+N+O+P+Q+R+S+*+*+T+U+V+V+V+W+X+Y+^+^+^+Z+",
+"              `+ @ @ @. at +@+ at +@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@^@^@/@(@_@:@<@[@}@}@|@1 at 2@3 at 4@u+u+A+A+5 at 6@7 at 8@9 at D+D+E+E+0@a@",
+"            b at c@c at c@c at d@e at e@f at f@g at h@i at i@j at k@l at m@m at n@o@`+p at q@q at r@s@ @ @t at r@u at v@w at x@x at y@z at A@- at B@C at D@E at E@E@~@~@~@~@F@^@^@^@G@    ",
+"          H at I@J at K@L at M@N at O@P at Q@R at S@T at U@V at W@X at Y@Z@`@ #.# #+#@###$#c at c@c@%#&#*#w@=#-#-#;#>#i@,#'#<@)#m@!#`+`+`+s at s@s at s@~#{#]#    ",
+"          ^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#I at g#J at J@h#i#j#k#l#l#m#n#o#p#q#r#s#w at t#`@`@ # # #u#v#v#c at c@w#      ",
+"        x#y#z#A#B#C#[#}#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#R#^#S#/#T#/#U#V#W#X#Y#Z#Z#`#`# $.$+$n#o#-#@$#$$$$$$$%$I at I@I at I@%$        ",
+"        &$*$=$B#-$;$>$,$'$)$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$7$8$9$0$0$0$a$b$c$d$e$ $f$n#o#g$h$R#R#^#^#/#/#/#i$        ",
+"      j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$F$ $G$H$I$J$K$L$M$N$O$P$P$P$Q$Q$R$S$T$U$c$Z#`#V$1$W$W$W$2$2$2$7$7$X$        ",
+"      Y$Z$`$B#<# %.%+%@%#%$%%%&%*%=%-%;%>%M#,%'%)%!%Z#~%{%{%]%^%j$/%(%_%:%:%_%<%[%}%|%1%2%3%4%5%2%6%6%6%H$H$H$H$M$M$7%        ",
+"      8%l$m$-$9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%)%p%q%r%s%t%u%v%w%x%y%z%z%A%B%C%D%E%F%G%H%I%I%I%I%J%J%J%{%{%{%K%K%K%L%        ",
+"      M%N%:#O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&*&=&-&;&>&,&,&'&'&)&!&~&{&]&^&/&(&_&_&_&:&<&[&s%s%s%t%w%w%w%}&        ",
+"      |&m$1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&,&'&p&q&r&s&t&u&a&v&w&x&y&'&z&A&B&C&D&E&F&G&*&*&H&H&I&J&          ",
+"    K&`$L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&`& *.*+*@*#*$*%*&***'&p&r&=*-*;*>*,*'*)*!*~*{*]*r&p&^*/*(*_*}%:*<*[*}*|*1*2*3*          ",
+"    4*m$5*6*7*8*9*0*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*s&t*u*v*w*w*x*y*z*A*B*C*D*E*;*t*r&F*G*H*E%I*J*K*L*M*&*N*O*          ",
+"    P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=-=;=>==*;*,=w*'=)=!=~={=]=^=/=(=_=:=<=v*;*r&[=}=^&E%[%|=r*1=2=              ",
+"      3=4=5=6=7=8=9=0=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=w*'=!=s=t=t=u=v=w=v=x=y=z=A=B=C=D=E=F=G=H=I=J=K=L=M=N=              ",
+"    O=P=Q=1*R=S=T=U=V=W=X=Y=Z=`= -.-+- at -#-$-%-&-*-=---;->-)=s=t=,-'-)-!-.-+-~-{-]-^-/-(-_-:-<-[-}-|-1-2-3-4-5-                ",
+"    6-7-8-9-H&0-a-b-c-d-e-f-^-]-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-'-v-w-x-y-z-z-A-B-C-D-E-F-d-G-H-I-J-K-L-M-N-O-P-                ",
+"    Q-R-S-T-U-w%V-W-X-Y-Z-`- ;C-B-.;+;@;#;$;%;&;*;=;-;;;>;,-,;w-';);!;~;+;{;];^;/;(;_;:;<;[;};|;1;2;3;4;5;6;                  ",
+"  7;8;9;0;a;b;/%{%c;d;e;f;g;h;/;i;];{;j;k;l;m;n;o;p;q;r;s;t;w-);u;v;w;x;y;y;z;A;B;C;D;E;F;G;H;};I;J;K;L;M;N;O;                ",
+"  P;Q;R;S;T;U;V;W;X;Y;Z;E;`;C;B; >.>y;j;k;+>@>#>$>%>&>*>=>w-);->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>H;[>}>|>1>2>3>4>                ",
+"  5>6>7>8>9>0>a>b>c>W$d>e>f>^>]>{>g>h>i>j>k>@>l>m>n>o>p>q>r>->;>>>s>t>u>v>w>~>{>]>^>x>y>z>F;A>B>C>[>}>D>E>F>G>                ",
+"  H>I>J>K>L>M>N>O>P>Q>R>S>T>U>]>{>V>W>X>Y>k>Z>`> ,6%.,+,@,#,;>>>s>$,%,&,*,=,-,;,>,,,',D;),:;<;A>c-!,~,K>{,],^,                ",
+"/,(,_,:,<,[,V=},|,1,2,2,3,4,5,6,7,8,9,0,a,b,Z>c,d,e,f,g,h,i,j,s>$,k,l,m,n,o,p,q,r,]>s,t,g;f;u,d-v,N>M><,w,J>x,                ",
+"y,z,A,B,C,D,E,F,G,H,2,3,i,I,J,K,L,M,N,O,P,Q,Z>R,S,T,U,V,W,X,X,Y,%,l,Z,`, '.'M,L, >+'@'h;K,#'F-$'|,},D,%'B,&'*'='              ",
+"-';'>',''')'!'W=~'2,3,i,I,{']'^'^;/'('_':'<'['}'|'1'1'2'3'4'4'5'6'Z,7'7'8'9'0'a'^;b'c'd'e'E-e-f'W=g')'''h'i'j'k'              ",
+"l'm'>','n'o'!'p'q'3,i,I,r's't'u'e-v'{;w'x'y'z'A'B'C'C'C'D'E'F'F'Z,Z,G'H'I'J'K'];B-L'M'N'O'/-P'(-Q'!')''','>'R'S'              ",
+"T'U'V'W'X'Y'Z'`' )h,.)+)@)#)q>$)%)&)z-*)=)-)-);););)>),)')))!)~){)Z,G'H'])^)/)()_)L':)^-<)[)})|)1)Z'2)X'3)4)5)6)              ",
+"7)8)9)3)0)Y'Z'a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)s)s)s)t)u)v)~)w)7'x)H'y)z)A)g-B)C)D)E)F)G)|)1)Z'2)X'H)4)5)I)              ",
+"J)K)L)W'H)M)X*N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!+!+!@!#!$!$!%!&!~)*!Z,7'G'=!-!g-B);!k)>!,!A='!a=N))!f)0)!!~!{!]!              ",
+"^!/!L)(!!!0)Y'_!:!<![!}!h)U)V)|!1!2!3!Y)4!5!6!7!7!7!8!9!0!a!+.b!~)*!l,Z,c!d!e!`=;!f!g!h!i!b=j!a)_!2)M)k!(!L)l!m!              ",
+"n!o!p!q!r!k!s!X*t!u!v!T)U)w!x!y!z!A!'!B!~-C!^+^+D!E!F!G!H!I!J!K!~)~)6'L!l,M!N!F)f!z=h!F)O!P!a=Q!_!R!M)k!(!K)S!                ",
+"  T!U!q!V!W!X!R!Y!Z!i)`! ~.~+~@~#~$~%~y=&~*~=~-~;~>~.-,~,~'~)~!~~~~)l,%,%,%,{~0)d=h!i!O!P!]~Q!^~/~s!X!r!L)U!(~                ",
+"  _~:~p!q!<~[~X!R!}~|~1~2~3~4~5~;;6~7~P!8~9~&~0~a~b~ - -c~d~e~f~g~h~7's>s>t>i~j~k~l~m~P!]~Q!n~o~p~X!r!L)U!q~r~                ",
+"  s~t~:~p!u~W![~p~v~w~x~y~z~A~;;6~B~C~D~d=E~8~8~y=9~9~9~9~F~G~G~H~I~H'>>>>>>J~K~L~M~L~Y*N~n~o~p~[~r!q!p!U!q~O~                ",
+"  P~Q~R~:~S~u~<~W!T~U~V~W~X~Y~Z~B~`~ {.{+{@{#{_=_=${${${${%{&{&{*{={-{,>v;;{v;>{,{]~Y*N~'{R!){W!V!q!p!!{:~~{{{                ",
+"    ]{^{R~!{S~/{({<~_{:{X~Y~Z~<{[{}{|{1{2{N~3{`*4{4{@{@{@{5{6{7{8{9{0{%,);););a{b{'{'{a*c{){W!q!p!p!!{d{e{f{                  ",
+"    g{h{^{i{d{!{/{({j{k{Y~l{m{n{o{p{q{r{s{t{Y*Z*Z*Z*u{u{u{u{Z*Z*Z*v{w{x{);w-w-y{z{c{a*){A{V!u~p!B{C{D{E{F{G{                  ",
+"    H{I{^{^{i{i{d{J{S~K{L{M{>'N{O{P{r{3-Q{R{S{T{U{U{U{V{V{V{U{U{U{W{W{X{Y{Z{`{ ].]+]A{<~u~S~!{@]#]$]$]%]&]*]                  ",
+"      =]h{h{^{i{i{d{-];]>],]'])]P{!]3-~]{]]]^]/]a*T{T{(](](](]_]_]_]:]<]A{[]}]|]({({u~u~S~!{d{1]2]2]3]4]5]q#                  ",
+"      6]I{7]7]R~q!V!<~<~8]9]0]a]!]3-b]c]f!d]e]f]g]h]v{v{v{v{v{i]i]i]U{U{W{(]'{o~c{c{p~[~W!V!V!j]k]k]l]&]m]c at n]                ",
+"        o]7]p]h{Y*]~L~L~q]r]a]!]s]t]u]i!g!v]w]x]y]z]k~d=d=d=d=d=d=A]A]k~c=B]B]l~l~b=P!j!j!C]D]E]F]F]G]H]I]i at J]                ",
+"          K]L]L]]~]-B)B)M]N]s{O]P]f)a)b=Q]w]x]R]S]T]U]g-l)l)l)l)l)V]V]V]V]h-h-B!g-g-B)]-]-g-W]X]Y]Z]`] ^.^m at +^                ",
+"          @^#^$^:~%^&^&^&^%^*^=^V'0)-^;^w]>^R],^'^R=A&)^!^~^{^~^~^~^~^]^]^^^/^o;(^&^&^(^_^:^<^[^[^}^|^.^s at 1^                  ",
+"            2^3^4^g-5^5^5^5^6^7^8^9^0^w]>^a^b^c^d^e^f^*&g^h^i^j^k^k^l^l^5^5^m^n^5^o^p^q^r^r^s^t^u^v^w^s at +@x^                  ",
+"              y^z^A^l^B^B^B^B^C^D^E^F^G^a^H^I^J^K^f^*&L^(&M^N^O^P^B^B^B^B^B^Q^R^S^T^T^T^T^U^V^W^X^Y^~#@@;@Z^                  ",
+"                `^ /W!./+/+/+/+/@/#/$/%/&/,!*/=/B&*&-/;/t%>/I%,/'/)/!/+/+/+/+/~/{/{/{/{/]/^///(/_/~#A at E@E@:/                  ",
+"                  </[/j!}/|/|/|/|/1/2/3/a=A=4/B&H&5/6/7/8/I%9/0/a/b/c/d/e/f/g/h/i/i/i/j/k/l/m/.^ @A at E@l+n/                    ",
+"                    o/p/Y*|/q/q/q/q/r/s/t/u/v/I&w/x/k-y/z/K%A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/`+ @-@~@l+Q/R/                    ",
+"                      S/T/S~U/V/V/V/V/W/X/Y/Z/w/`/ (j-.(+(A/6%@(#(W$7$$(h$%(&($$J at q# #d at .^*(=(-@~@l+2 at -(                      ",
+"                        ;(>(,('()(!(!(!(~({(](^(/(((_(:(<(6%N$[(}(|($(^#V#1(2(3(`@ #d at .^4(5(6(7(m+2 at 8(                        ",
+"                            9(0(a(b(c(d(d(d(e(f(g(h(i(j(6%N$k(l(m(n(o(p(q(I at r(s(t(e at m@s at +@u(v(w(x(y(                          ",
+"                                z(A(B(C(D(E(F(F(G(H(I(J(K(k(L(M(N(O(p(P(I at Q(R() S(T(s at +@;@U(V(v(a                             ",
+"                                    W(X(0(Y(C-Z(`( _._._+_ at _#_$_%_&_*_I@=_-_;_>_,_'_)_!_~_d.I                                 ",
+"                                          {_]_^_/_(___:_<___[_}_|_1_2_3_4_5_6_7_8_9_0_                                        "};
diff --git a/components/pixmaps/newmail.xpm b/components/pixmaps/newmail.xpm
new file mode 100644
index 0000000..281c47c
--- /dev/null
+++ b/components/pixmaps/newmail.xpm
@@ -0,0 +1,390 @@
+/* XPM */
+static const char * newmail_xpm[] = {
+"32 32 355 2",
+"  	c None",
+". 	c #868686",
+"+ 	c #282828",
+"@ 	c #E4E5E4",
+"# 	c #E6E6E6",
+"$ 	c #E8E8E8",
+"% 	c #E7E8E7",
+"& 	c #E6E7E6",
+"* 	c #E3E3E2",
+"= 	c #E0E0E0",
+"- 	c #DEDDDE",
+"; 	c #DBDBDB",
+"> 	c #D8D7D8",
+", 	c #D5D5D5",
+"' 	c #D2D2D2",
+") 	c #D0CFCF",
+"! 	c #CCCCCC",
+"~ 	c #C9C9C9",
+"{ 	c #C6C6C6",
+"] 	c #C4C4C4",
+"^ 	c #C1C1C0",
+"/ 	c #BDBDBD",
+"( 	c #BABBBA",
+"_ 	c #B7B7B8",
+": 	c #B5B4B4",
+"< 	c #B1B1B2",
+"[ 	c #AEAFAE",
+"} 	c #E4E4E3",
+"| 	c #E8E9E9",
+"1 	c #EAEAEB",
+"2 	c #EBEBEB",
+"3 	c #EAEBEA",
+"4 	c #E9E9E9",
+"5 	c #E7E7E7",
+"6 	c #E4E4E4",
+"7 	c #E2E1E1",
+"8 	c #DFDEDF",
+"9 	c #DCDBDC",
+"0 	c #D9D9D9",
+"a 	c #D6D6D6",
+"b 	c #D3D3D3",
+"c 	c #D0D0D0",
+"d 	c #CDCDCD",
+"e 	c #CACACA",
+"f 	c #C7C7C6",
+"g 	c #BEBEBE",
+"h 	c #BBBABB",
+"i 	c #B8B8B8",
+"j 	c #B5B5B5",
+"k 	c #B2B2B2",
+"l 	c #AFAFAE",
+"m 	c #ABACAC",
+"n 	c #E5E5E5",
+"o 	c #EAEBEB",
+"p 	c #EDEDED",
+"q 	c #EEEEEE",
+"r 	c #EDEEED",
+"s 	c #E6E5E5",
+"t 	c #E0E0DF",
+"u 	c #DCDDDD",
+"v 	c #D9D9DA",
+"w 	c #D7D7D7",
+"x 	c #D4D3D4",
+"y 	c #D1D0D0",
+"z 	c #CBCACB",
+"A 	c #C7C8C7",
+"B 	c #C1C1C1",
+"C 	c #BBBBBB",
+"D 	c #AFAFAF",
+"E 	c #ACACAC",
+"F 	c #E5E6E6",
+"G 	c #ECECEC",
+"H 	c #EEEFEF",
+"I 	c #F1F1F1",
+"J 	c #EFEFEF",
+"K 	c #EAE9EA",
+"L 	c #E3E3E3",
+"M 	c #DDDDDD",
+"N 	c #DADADA",
+"O 	c #D7D6D7",
+"P 	c #D3D4D4",
+"Q 	c #D1D1D1",
+"R 	c #CECDCE",
+"S 	c #CBCBCB",
+"T 	c #C7C7C7",
+"U 	c #C1C2C1",
+"V 	c #B9B8B8",
+"W 	c #EBECEB",
+"X 	c #F0F0F0",
+"Y 	c #EEEFEE",
+"Z 	c #ECEBEC",
+"` 	c #DAD9D9",
+" .	c #D4D4D4",
+"..	c #D0D1D1",
+"+.	c #CDCDCE",
+"@.	c #C7C7C8",
+"#.	c #C4C5C5",
+"$.	c #C1C1C2",
+"%.	c #BEBEBF",
+"&.	c #B8B9B8",
+"*.	c #B3B2B2",
+"=.	c #EAEAEA",
+"-.	c #EBEBEA",
+";.	c #E8E7E8",
+">.	c #E3E2E2",
+",.	c #DFDFDF",
+"'.	c #DCDDDC",
+").	c #D0D0D1",
+"!.	c #CBCBCA",
+"~.	c #BFBEBE",
+"{.	c #E5E6E5",
+"].	c #EAEAE9",
+"^.	c #E9EAE9",
+"/.	c #E6E5E6",
+"(.	c #E1E1E0",
+"_.	c #DEDEDE",
+":.	c #DBDCDB",
+"<.	c #D8D9D8",
+"[.	c #D2D3D2",
+"}.	c #CCCDCD",
+"|.	c #C9C9CA",
+"1.	c #C4C3C4",
+"2.	c #BDBEBE",
+"3.	c #BABBBB",
+"4.	c #B4B4B4",
+"5.	c #B1B2B2",
+"6.	c #AFAEAE",
+"7.	c #ACABAC",
+"8.	c #E1E1E1",
+"9.	c #E5E5E6",
+"0.	c #E3E3E4",
+"a.	c #E2E2E1",
+"b.	c #DFE0DF",
+"c.	c #DDDCDC",
+"d.	c #D5D4D5",
+"e.	c #D2D2D1",
+"f.	c #CFCFCF",
+"g.	c #C3C3C3",
+"h.	c #C0C0C1",
+"i.	c #B7B7B7",
+"j.	c #B1B1B1",
+"k.	c #ABABAB",
+"l.	c #DEDFDF",
+"m.	c #E0E1E1",
+"n.	c #E2E2E2",
+"o.	c #E3E4E4",
+"p.	c #D9D8D9",
+"q.	c #D5D6D6",
+"r.	c #D3D4D3",
+"s.	c #CACBCB",
+"t.	c #C8C8C8",
+"u.	c #C5C6C5",
+"v.	c #C3C2C2",
+"w.	c #C0BFBF",
+"x.	c #BDBCBC",
+"y.	c #B9B9BA",
+"z.	c #B6B7B6",
+"A.	c #B3B4B3",
+"B.	c #B0B0B0",
+"C.	c #AEADAD",
+"D.	c #AAAAAB",
+"E.	c #DEDEDF",
+"F.	c #E0E1E0",
+"G.	c #E0E0E1",
+"H.	c #DEDFDE",
+"I.	c #D6D7D6",
+"J.	c #D2D1D2",
+"K.	c #CAC9CA",
+"L.	c #B6B6B6",
+"M.	c #B3B3B3",
+"N.	c #B0AFB0",
+"O.	c #ACADAD",
+"P.	c #AAAAAA",
+"Q.	c #DBDBDC",
+"R.	c #DCDCDC",
+"S.	c #DEDDDD",
+"T.	c #DCDCDD",
+"U.	c #DBDADB",
+"V.	c #D9D8D8",
+"W.	c #D7D7D6",
+"X.	c #D0CFD0",
+"Y.	c #CECECE",
+"Z.	c #C8C8C9",
+"`.	c #C0C0C0",
+" +	c #B5B5B4",
+".+	c #A9A9A9",
+"++	c #D7D7D8",
+"@+	c #DBDBDA",
+"#+	c #DADAD9",
+"$+	c #D9D9D8",
+"%+	c #D4D5D5",
+"&+	c #D3D2D2",
+"*+	c #CBCCCC",
+"=+	c #C6C7C6",
+"-+	c #C2C1C1",
+";+	c #BFBFBF",
+">+	c #BCBCBC",
+",+	c #B4B3B4",
+"'+	c #B0B1B1",
+")+	c #AEAEAE",
+"!+	c #A8A8A8",
+"~+	c #D6D5D6",
+"{+	c #D7D6D6",
+"]+	c #D7D8D7",
+"^+	c #D6D7D7",
+"/+	c #CAC9C9",
+"(+	c #C5C5C5",
+"_+	c #C2C3C2",
+":+	c #BBBBBA",
+"<+	c #B2B3B3",
+"[+	c #B0AFAF",
+"}+	c #ADADAD",
+"|+	c #A7A7A7",
+"1+	c #D4D5D4",
+"2+	c #D4D4D5",
+"3+	c #CDCECD",
+"4+	c #CACAC9",
+"5+	c #C8C7C7",
+"6+	c #C6C5C5",
+"7+	c #C3C3C4",
+"8+	c #BCBBBC",
+"9+	c #B9B9B9",
+"0+	c #B6B6B7",
+"a+	c #B4B4B3",
+"b+	c #AEAEAF",
+"c+	c #A9A9A8",
+"d+	c #A6A6A6",
+"e+	c #D1D1D0",
+"f+	c #D2D1D1",
+"g+	c #CCCDCC",
+"h+	c #BAB9BA",
+"i+	c #B7B8B8",
+"j+	c #A8A7A8",
+"k+	c #A5A5A5",
+"l+	c #CECECD",
+"m+	c #CDCCCC",
+"n+	c #CCCBCB",
+"o+	c #C8C9C9",
+"p+	c #BABABA",
+"q+	c #B1B0B1",
+"r+	c #ACABAB",
+"s+	c #A3A3A3",
+"t+	c #C8C9C8",
+"u+	c #C6C5C6",
+"v+	c #BCBDBD",
+"w+	c #BABABB",
+"x+	c #B8B9B9",
+"y+	c #B3B4B4",
+"z+	c #B2B2B1",
+"A+	c #ACACAD",
+"B+	c #AAAAA9",
+"C+	c #A8A7A7",
+"D+	c #A4A4A5",
+"E+	c #A2A2A2",
+"F+	c #C8C8C7",
+"G+	c #C7C6C6",
+"H+	c #C5C6C6",
+"I+	c #C2C2C2",
+"J+	c #BFBEBF",
+"K+	c #BCBCBD",
+"L+	c #ABAAAB",
+"M+	c #A8A8A9",
+"N+	c #A6A5A6",
+"O+	c #A1A1A1",
+"P+	c #C4C4C5",
+"Q+	c #C4C5C4",
+"R+	c #C5C4C5",
+"S+	c #C1C0C0",
+"T+	c #BFBFBE",
+"U+	c #BBBBBC",
+"V+	c #ADAEAD",
+"W+	c #A9A8A9",
+"X+	c #A7A6A7",
+"Y+	c #A4A4A4",
+"Z+	c #9F9F9F",
+"`+	c #C0C1C1",
+" @	c #C1C2C2",
+".@	c #C1C0C1",
+"+@	c #B9BAB9",
+"@@	c #B7B8B7",
+"#@	c #B5B5B6",
+"$@	c #B1B2B1",
+"%@	c #AFB0AF",
+"&@	c #AEAEAD",
+"*@	c #ACACAB",
+"=@	c #A0A0A0",
+"-@	c #9D9D9D",
+";@	c #BEBFBF",
+">@	c #ADAEAE",
+",@	c #ABACAB",
+"'@	c #A3A2A3",
+")@	c #A1A0A0",
+"!@	c #9D9E9D",
+"~@	c #9B9B9B",
+"{@	c #BCBBBB",
+"]@	c #BABAB9",
+"^@	c #B8B8B7",
+"/@	c #B6B5B6",
+"(@	c #AAA9AA",
+"_@	c #A7A8A7",
+":@	c #A2A3A3",
+"<@	c #A1A1A0",
+"[@	c #9E9E9E",
+"}@	c #9C9C9C",
+"|@	c #9A9999",
+"1@	c #B8B8B9",
+"2@	c #B8B7B8",
+"3@	c #9E9F9F",
+"4@	c #9A9A9A",
+"5@	c #989898",
+"6@	c #B5B6B5",
+"7@	c #B5B6B6",
+"8@	c #B6B6B5",
+"9@	c #B2B1B1",
+"0@	c #AFAEAF",
+"a@	c #A4A5A5",
+"b@	c #9D9C9C",
+"c@	c #969695",
+"d@	c #B2B3B2",
+"e@	c #B2B2B3",
+"f@	c #B2B1B2",
+"g@	c #ABABAA",
+"h@	c #A6A6A5",
+"i@	c #A2A2A3",
+"j@	c #969696",
+"k@	c #939394",
+"l@	c #B0B0AF",
+"m@	c #ADADAC",
+"n@	c #A9AAA9",
+"o@	c #A4A4A3",
+"p@	c #A1A1A2",
+"q@	c #9FA09F",
+"r@	c #949494",
+"s@	c #929192",
+"t@	c #ADACAC",
+"u@	c #ACADAC",
+"v@	c #ADACAD",
+"w@	c #ABAAAA",
+"x@	c #A8A8A7",
+"y@	c #A0A0A1",
+"z@	c #9C9B9C",
+"A@	c #99999A",
+"B@	c #949493",
+"C@	c #919292",
+"D@	c #909090",
+"E@	c #A9A9AA",
+"F@	c #A7A7A8",
+"G@	c #A7A6A6",
+"H@	c #A5A4A5",
+"I@	c #9A9A9B",
+"J@	c #999999",
+"K@	c #959596",
+"L@	c #939393",
+"M@	c #919291",
+"N@	c #8F8F8F",
+"  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   ",
+". . + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + ",
+". + @ @ # $ $ % & @ * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ . . + ",
+". + } & | 1 2 3 4 5 6 7 8 9 0 a b c d e f ] ^ g h i j k l m . + ",
+". + n $ o p q r 2 $ s * t u v w x y d z A ] B g C i j k D E . + ",
+". + F | G H I J G K # L = M N O P Q R S T ] U g C V j k D E . + ",
+". + s $ W q X Y Z 4 F L = M ` O  ...+.e @.#.$.%.C &.j *.D E . + ",
+". + @ % =.G p G -.;.n >.,.'.0 a b ).d !.T ] B ~.C i j k l E . + ",
+". + L {.% 4 ].^.$ /.L (._.:.<., [.) }.|.f 1.^ 2.3.i 4.5.6.7.. + ",
+". + 8.L n # 5 & 9.0.a.b.c.N w d.e.f.! ~ { g.h./ ( i.4.j.6.k.. + ",
+". + l.m.n.L o.o.>.8.b.M ; p.q.r.c +.s.t.u.v.w.x.y.z.A.B.C.D.. + ",
+". + c.E.t = F.G.= H.u ; 0 I. .J.f.! K.T ] B %.C V L.M.N.O.P.. + ",
+". + N Q.R.S.- M T.R.U.V.W., [.X.Y.S Z.{ g.`./ ( i  +k D E .+. + ",
+". + ++V.` N @+N #+$+++a %+&+c Y.*+~ =+] -+;+>+y.z.,+'+)+k.!+. + ",
+". + , ~+{+]+]+w ^+a , r.' c Y.! /+ at .(+_+`./ :+i j <+[+}+P.|+. + ",
+". + J.b  .%+1+2+r.b ' y ) 3+*+4+5+6+7+^ g 8+9+0+a+j.b+7.c+d+. + ",
+". + f.c e+Q Q f+e+c f.Y.g+S ~ T (+7+B ;+/ h+i+j k B.}+D.j+k+. + ",
+". + ! d +.Y.Y.Y.l+d m+n+e o+T (+g.B ;+/ p+i L.M.q+)+r+.+d+s+. + ",
+". + ~ e !.S S n+s.e /+t+T u+] _+h.;+v+w+x+L.y+z+D A+B+C+D+E+. + ",
+". + =+T t.t.t.t.F+T G+H+] g.I+`.J+K+:+9+L.4.< N.}+L+M+N+s+O+. + ",
+". + g.P+(+#.(+(+Q+R+] _+U S+T+/ U+p+&.0+4.k B.V+k.W+X+Y+O+Z+. + ",
+". + `+B $.I+I+I+B  @.@`.%.g >+C +@@@#@4.$@%@&@*@P.|+k+E+=@- at . + ",
+". + / g ~.;@;+;+;+g g / >+:+y.V i.j M.$@B.>@, at .+|+k+'@)@!@~@. + ",
+". + h C U+{@>+>+8+C w+]@9+^@i./@4.k j.D }+k.(@_ at k+:@<@[@}@|@. + ",
+". + ^@i 1 at x+9+9+x+i 2 at i.L.j y+<+< B.)+E L+W+|+k+s+O+3@}@4 at 5@. + ",
+". +  +j 6 at L.7@/@8 at j : 4.A.*.9 at B.0@V+m P.!+d+a at E+)@[@b at 4@5 at c@. + ",
+". + 9 at k *.k M.d at e@k f at j.B.[+)+C.*@g at .+|+h at Y+i@=@[@}@4 at 5@j at k@. + ",
+". + 0 at D N.N.l@[+D D D )+V+m at k.k.n@j+X+k+o at p@q@[@}@4 at 5@j at r@s at . + ",
+". + k.E A+t at u@m at v@E E k.w at n@M+x at X+k+o@E+y at Z+-@z at A@5 at j@B at C@D at . + ",
+". + . .+.+.+P.E at .+.+.+!+F at G@N+H at s+s+O+Z+[@}@I at J@5 at K@L at M@N at . . + ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + ",
+"  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   "};
diff --git a/components/pixmaps/weasel.xpm b/components/pixmaps/weasel.xpm
new file mode 100644
index 0000000..f0b1b87
--- /dev/null
+++ b/components/pixmaps/weasel.xpm
@@ -0,0 +1,1974 @@
+/* XPM */
+static const char * weasel_xpm[] = {
+"63 64 1907 2",
+"  	c None",
+". 	c #7C9AC3",
+"+ 	c #AFC3DB",
+"@ 	c #E2E8F1",
+"# 	c #D8E1ED",
+"$ 	c #A3B9D5",
+"% 	c #7E9CC5",
+"& 	c #89A7CB",
+"* 	c #84A3C7",
+"= 	c #B2C5DC",
+"- 	c #5C81B5",
+"; 	c #8CA8CB",
+"> 	c #EBF0F6",
+", 	c #F9FAFC",
+"' 	c #F4F8FB",
+") 	c #F8FAFC",
+"! 	c #F7F9FB",
+"~ 	c #B0C3DB",
+"{ 	c #5F84B6",
+"] 	c #A5BBD6",
+"^ 	c #B6C8DE",
+"/ 	c #EAEFF5",
+"( 	c #E9EFF6",
+"_ 	c #B8CADF",
+": 	c #92ACCE",
+"< 	c #ADC1DA",
+"[ 	c #5B82B6",
+"} 	c #6A8BBC",
+"| 	c #8AA2C7",
+"1 	c #D3DEEB",
+"2 	c #F4F7FB",
+"3 	c #E7EEF7",
+"4 	c #E5EDF6",
+"5 	c #F7F9FC",
+"6 	c #F6F9FB",
+"7 	c #DEE6F0",
+"8 	c #FCFCFE",
+"9 	c #F7FAFC",
+"0 	c #EFF4F9",
+"a 	c #FAFCFE",
+"b 	c #FEFEFF",
+"c 	c #FBFCFD",
+"d 	c #F6F8FB",
+"e 	c #CFDAE9",
+"f 	c #90ABCD",
+"g 	c #5981B4",
+"h 	c #8BA5C9",
+"i 	c #EAF1F8",
+"j 	c #EBF1F8",
+"k 	c #F6F9FC",
+"l 	c #FFFFFF",
+"m 	c #FEFEFE",
+"n 	c #F5F8FC",
+"o 	c #EBF2F9",
+"p 	c #F9FBFD",
+"q 	c #FAFBFD",
+"r 	c #CBD8E8",
+"s 	c #CEDAE9",
+"t 	c #7190BC",
+"u 	c #688BBA",
+"v 	c #809EC7",
+"w 	c #A2B7D4",
+"x 	c #ABBFD9",
+"y 	c #D6DFEC",
+"z 	c #EDF2F9",
+"A 	c #FCFDFE",
+"B 	c #CCDDEE",
+"C 	c #E8F0F7",
+"D 	c #7193BD",
+"E 	c #88A4CA",
+"F 	c #98B0D0",
+"G 	c #9BB3D1",
+"H 	c #99B0D1",
+"I 	c #95AFD0",
+"J 	c #97B0D0",
+"K 	c #9AB3D1",
+"L 	c #C7D4E5",
+"M 	c #DEE5F0",
+"N 	c #F9FBFC",
+"O 	c #F0F5FA",
+"P 	c #FBFCFE",
+"Q 	c #E3ECF5",
+"R 	c #D2E0F0",
+"S 	c #FBFDFE",
+"T 	c #FDFEFE",
+"U 	c #7D9DC4",
+"V 	c #88A3C6",
+"W 	c #A1B8D5",
+"X 	c #B6C7DE",
+"Y 	c #AEC1DA",
+"Z 	c #83A0C6",
+"` 	c #9DB4D3",
+" .	c #D4DEEB",
+"..	c #F1F5F8",
+"+.	c #F5F8FA",
+"@.	c #F8FAFB",
+"#.	c #FAFBFC",
+"$.	c #FBFBFD",
+"%.	c #FCFCFD",
+"&.	c #FDFDFE",
+"*.	c #F8FBFD",
+"=.	c #F1F6FA",
+"-.	c #F8FAFD",
+";.	c #E9F0F7",
+">.	c #F2F6F9",
+",.	c #F0F4F8",
+"'.	c #D0DBE9",
+").	c #7696C1",
+"!.	c #809DC5",
+"~.	c #FCFDFD",
+"{.	c #FAFCFD",
+"].	c #F1F6FB",
+"^.	c #DFE9F4",
+"/.	c #E8EFF7",
+"(.	c #EDF3F8",
+"_.	c #B8C9DE",
+":.	c #89A4C8",
+"<.	c #D1DCEA",
+"[.	c #E1EAF5",
+"}.	c #ECF2F9",
+"|.	c #E0EAF4",
+"1.	c #F1F5FA",
+"2.	c #E3E9F2",
+"3.	c #86A2C9",
+"4.	c #E4EAF2",
+"5.	c #E3E3E3",
+"6.	c #8A8C8E",
+"7.	c #727E8B",
+"8.	c #DEE4EB",
+"9.	c #E3ECF6",
+"0.	c #E7EFF7",
+"a.	c #E5EBF3",
+"b.	c #7595C2",
+"c.	c #E4EAF3",
+"d.	c #F5F8FB",
+"e.	c #F0F4F9",
+"f.	c #EAF1F7",
+"g.	c #E5EDF5",
+"h.	c #E1EAF4",
+"i.	c #DFE9F3",
+"j.	c #DEE8F2",
+"k.	c #DEE7F2",
+"l.	c #DEE7F3",
+"m.	c #DDE7F2",
+"n.	c #E7EEF6",
+"o.	c #EAF0F8",
+"p.	c #EFF4FA",
+"q.	c #595959",
+"r.	c #5F5F5F",
+"s.	c #8C8C8D",
+"t.	c #5D6A77",
+"u.	c #FEFFFF",
+"v.	c #DBE4EF",
+"w.	c #CBD7E7",
+"x.	c #F3F7FB",
+"y.	c #ECF2F8",
+"z.	c #E4ECF4",
+"A.	c #CCD9E7",
+"B.	c #97B3D9",
+"C.	c #91AFD8",
+"D.	c #7C9CCA",
+"E.	c #3D71BD",
+"F.	c #4577C0",
+"G.	c #4979C1",
+"H.	c #4A7AC1",
+"I.	c #5A83BF",
+"J.	c #7597C6",
+"K.	c #83A3D0",
+"L.	c #8EADD8",
+"M.	c #B7CAE2",
+"N.	c #414141",
+"O.	c #0B0B0B",
+"P.	c #080808",
+"Q.	c #304256",
+"R.	c #EFF3F8",
+"S.	c #B7C8DE",
+"T.	c #90ABCC",
+"U.	c #F2F6FA",
+"V.	c #E9F0F6",
+"W.	c #CCD9E9",
+"X.	c #93B0D6",
+"Y.	c #4476BF",
+"Z.	c #5381C3",
+"`.	c #5482C4",
+" +	c #618CC9",
+".+	c #6E95CE",
+"++	c #779CD1",
+"@+	c #7DA0D3",
+"#+	c #80A2D4",
+"$+	c #81A3D4",
+"%+	c #7C9FD2",
+"&+	c #759AD0",
+"*+	c #6B93CC",
+"=+	c #5D89C8",
+"-+	c #6F95CC",
+";+	c #C1C1C1",
+">+	c #767676",
+",+	c #4E5258",
+"'+	c #6286AE",
+")+	c #7F8C99",
+"!+	c #697078",
+"~+	c #95999D",
+"{+	c #F7F8F9",
+"]+	c #E4EBF3",
+"^+	c #86A2C7",
+"/+	c #CAD7E7",
+"(+	c #EDF2F8",
+"_+	c #CAD8E8",
+":+	c #85A3CD",
+"<+	c #4E7DC0",
+"[+	c #4779C1",
+"}+	c #608BC9",
+"|+	c #749AD0",
+"1+	c #83A5D5",
+"2+	c #8FAED9",
+"3+	c #98B4DC",
+"4+	c #9EB9DF",
+"5+	c #A2BCE0",
+"6+	c #A4BEE1",
+"7+	c #A6BEE1",
+"8+	c #A4BDE1",
+"9+	c #A1BBDF",
+"0+	c #9CB7DE",
+"a+	c #95B2DC",
+"b+	c #8BABD8",
+"c+	c #91AFDA",
+"d+	c #F1F1F1",
+"e+	c #EBEEF1",
+"f+	c #D4E1F0",
+"g+	c #8BA2BA",
+"h+	c #1F2429",
+"i+	c #6D6D6D",
+"j+	c #545454",
+"k+	c #C7C7C7",
+"l+	c #F6F8FA",
+"m+	c #9CB3D3",
+"n+	c #7D9BC4",
+"o+	c #E2E9F2",
+"p+	c #8EABD2",
+"q+	c #4676BB",
+"r+	c #4376BF",
+"s+	c #5E89C8",
+"t+	c #7399D0",
+"u+	c #86A7D6",
+"v+	c #94B1DB",
+"w+	c #9FB9DF",
+"x+	c #A7BFE2",
+"y+	c #AEC4E3",
+"z+	c #B2C7E5",
+"A+	c #B5CAE6",
+"B+	c #B7CBE7",
+"C+	c #B6CAE6",
+"D+	c #B4C9E6",
+"E+	c #B1C6E5",
+"F+	c #ACC2E3",
+"G+	c #A5BDE0",
+"H+	c #A6BEE0",
+"I+	c #E9EEF5",
+"J+	c #6D8DAF",
+"K+	c #161A1E",
+"L+	c #111111",
+"M+	c #0D0D0D",
+"N+	c #C5C5C5",
+"O+	c #A4BAD5",
+"P+	c #ADC0DA",
+"Q+	c #CBD7E6",
+"R+	c #4E79B7",
+"S+	c #4B7BC2",
+"T+	c #668FCB",
+"U+	c #6C94CD",
+"V+	c #7DA1D3",
+"W+	c #8EADD9",
+"X+	c #9BB7DE",
+"Y+	c #ADC3E3",
+"Z+	c #B3C8E5",
+"`+	c #B7CCE7",
+" @	c #BACEE8",
+".@	c #BDCFE9",
+"+@	c #BED0E9",
+"@@	c #BDD0E9",
+"#@	c #BCCFE9",
+"$@	c #BACDE8",
+"%@	c #B1C6E4",
+"&@	c #A6BDDD",
+"*@	c #C3D0DF",
+"=@	c #E4EDF6",
+"-@	c #E3EBF4",
+";@	c #A8AAAD",
+">@	c #7E7E7E",
+",@	c #8C8C8C",
+"'@	c #FDFDFD",
+")@	c #F2F5F9",
+"!@	c #91ABCE",
+"~@	c #C8D6E6",
+"{@	c #CED9E9",
+"]@	c #2F66B3",
+"^@	c #356BBC",
+"/@	c #5382C5",
+"(@	c #769BD1",
+"_@	c #98B4DD",
+":@	c #A2BBE0",
+"<@	c #A3BDE1",
+"[@	c #A5BEE1",
+"}@	c #B6CBE7",
+"|@	c #B9CDE8",
+"1@	c #BED1E9",
+"2@	c #BBCEE8",
+"3@	c #B8CCE8",
+"4@	c #B5C9E6",
+"5@	c #A7BEDE",
+"6@	c #A7B8D0",
+"7@	c #E4ECF6",
+"8@	c #D7E4F1",
+"9@	c #DFEAF4",
+"0@	c #7C9AC4",
+"a@	c #E0E8F1",
+"b@	c #F4F7FA",
+"c@	c #AEC2DC",
+"d@	c #346CBB",
+"e@	c #4F7FC4",
+"f@	c #6992CD",
+"g@	c #99B5DD",
+"h@	c #DBE4F3",
+"i@	c #DCE6F3",
+"j@	c #AEC5E5",
+"k@	c #AEC4E4",
+"l@	c #B1C8E5",
+"m@	c #B4CAE6",
+"n@	c #B8CCE7",
+"o@	c #B9CEE8",
+"p@	c #B6CAE7",
+"q@	c #B3C9E6",
+"r@	c #B0C6E5",
+"s@	c #DBE6F3",
+"t@	c #D8E4F2",
+"u@	c #809CC6",
+"v@	c #7697C1",
+"w@	c #F2F5F8",
+"x@	c #F3F6F9",
+"y@	c #9AAFCC",
+"z@	c #4C7DC3",
+"A@	c #618CCA",
+"B@	c #769CD2",
+"C@	c #85A7D7",
+"D@	c #96B3DD",
+"E@	c #C7D6ED",
+"F@	c #F0F4FA",
+"G@	c #CFDCEF",
+"H@	c #ADC5E5",
+"I@	c #AEC5E4",
+"J@	c #AFC6E5",
+"K@	c #B1C7E5",
+"L@	c #B2C8E5",
+"M@	c #AFC5E4",
+"N@	c #ADC3E4",
+"O@	c #A9C1E3",
+"P@	c #AFC3DD",
+"Q@	c #DBE6F1",
+"R@	c #D2E0EF",
+"S@	c #C8D9EC",
+"T@	c #E0EAF5",
+"U@	c #EBF1F7",
+"V@	c #8FA8CC",
+"W@	c #7293C0",
+"X@	c #91A6C3",
+"Y@	c #5B88C8",
+"Z@	c #6B94CE",
+"`@	c #7CA1D4",
+" #	c #89AAD8",
+".#	c #9CB8DE",
+"+#	c #ADC4E4",
+"@#	c #C3D4EC",
+"##	c #ECF1F9",
+"$#	c #BFCFEA",
+"%#	c #A7BDE2",
+"&#	c #A8C0E4",
+"*#	c #AAC2E4",
+"=#	c #ABC3E4",
+"-#	c #ABC3E3",
+";#	c #A9C2E4",
+">#	c #A8C1E4",
+",#	c #A7C0E3",
+"'#	c #A4BEE2",
+")#	c #93AFD5",
+"!#	c #C2D0E2",
+"~#	c #D9E5F2",
+"{#	c #D8E4F1",
+"]#	c #ECECEC",
+"^#	c #EBEBEB",
+"/#	c #F7F7F7",
+"(#	c #DEE8F4",
+"_#	c #A3B8D6",
+":#	c #7E9DC5",
+"<#	c #8BA0BD",
+"[#	c #658FCC",
+"}#	c #7098D0",
+"|#	c #7EA2D4",
+"1#	c #8BACD9",
+"2#	c #C1D2EA",
+"3#	c #A3BDE2",
+"4#	c #BFD1EB",
+"5#	c #E4EBF6",
+"6#	c #B4C7E6",
+"7#	c #9FB7DF",
+"8#	c #A0B8E0",
+"9#	c #A2BDE1",
+"0#	c #A2BEE2",
+"a#	c #A2BDE2",
+"b#	c #A1BDE1",
+"c#	c #A1BCE1",
+"d#	c #A0BCE1",
+"e#	c #9FBBE1",
+"f#	c #9DB9E0",
+"g#	c #9AB7DF",
+"h#	c #97B0D3",
+"i#	c #D6E0EC",
+"j#	c #404040",
+"k#	c #555555",
+"l#	c #696969",
+"m#	c #BEBEBE",
+"n#	c #E6EEF6",
+"o#	c #C5D7EB",
+"p#	c #DAE6F2",
+"q#	c #D6E4F1",
+"r#	c #DDE8F3",
+"s#	c #E6EDF6",
+"t#	c #BCCCE1",
+"u#	c #7398C6",
+"v#	c #F1F4F8",
+"w#	c #8EA3BF",
+"x#	c #6993CE",
+"y#	c #719AD1",
+"z#	c #7DA2D5",
+"A#	c #86A9D8",
+"B#	c #94B3DD",
+"C#	c #94B2DD",
+"D#	c #96B4DD",
+"E#	c #C0D1EB",
+"F#	c #D2DDF0",
+"G#	c #A4BDE2",
+"H#	c #99B7E0",
+"I#	c #9AB8E0",
+"J#	c #99B7DF",
+"K#	c #98B6DF",
+"L#	c #97B5DE",
+"M#	c #95B4DE",
+"N#	c #93B2DD",
+"O#	c #90B0DC",
+"P#	c #B3C7E1",
+"Q#	c #CACACA",
+"R#	c #202020",
+"S#	c #808080",
+"T#	c #797979",
+"U#	c #333333",
+"V#	c #ABABAB",
+"W#	c #F2F6FB",
+"X#	c #CFDFEF",
+"Y#	c #D6E3F1",
+"Z#	c #CDDAE9",
+"`#	c #94AECF",
+" $	c #2F6ABF",
+".$	c #5D86BE",
+"+$	c #F0F3F8",
+"@$	c #8FA4BF",
+"#$	c #7199D0",
+"$$	c #79A0D4",
+"%$	c #80A5D7",
+"&$	c #85A8D8",
+"*$	c #89ABD9",
+"=$	c #8BADDA",
+"-$	c #8DADDB",
+";$	c #95B3DD",
+">$	c #C0D2EB",
+",$	c #BED0EA",
+"'$	c #94B4DE",
+")$	c #90B1DC",
+"!$	c #91B1DC",
+"~$	c #8EAFDC",
+"{$	c #8DAEDB",
+"]$	c #8CADDA",
+"^$	c #84A4D1",
+"/$	c #BAC8DA",
+"($	c #F6F7F7",
+"_$	c #585858",
+":$	c #161616",
+"<$	c #101010",
+"[$	c #565656",
+"}$	c #E4E4E4",
+"|$	c #C6D5E9",
+"1$	c #799BCA",
+"2$	c #7397CB",
+"3$	c #5889CE",
+"4$	c #0A4DAD",
+"5$	c #EFF2F7",
+"6$	c #98ACC5",
+"7$	c #6792CD",
+"8$	c #6F98D0",
+"9$	c #749DD3",
+"0$	c #7BA2D5",
+"a$	c #7EA4D6",
+"b$	c #81A6D7",
+"c$	c #84A8D8",
+"d$	c #85A9D9",
+"e$	c #87AADA",
+"f$	c #92B2DD",
+"g$	c #BACEE9",
+"h$	c #9EBAE0",
+"i$	c #8AADDA",
+"j$	c #8CAEDB",
+"k$	c #8CADDB",
+"l$	c #89ACDA",
+"m$	c #88ABDA",
+"n$	c #87AAD9",
+"o$	c #82A6D7",
+"p$	c #7FA4D6",
+"q$	c #7EA0CE",
+"r$	c #B3C2D6",
+"s$	c #E6E7E9",
+"t$	c #A2A2A2",
+"u$	c #AFAFAF",
+"v$	c #D0DAE7",
+"w$	c #A0B6D3",
+"x$	c #7B9ECF",
+"y$	c #4274BE",
+"z$	c #2C67BB",
+"A$	c #1F5FB9",
+"B$	c #0648AA",
+"C$	c #3F72BB",
+"D$	c #EEF2F7",
+"E$	c #A3B6CE",
+"F$	c #628FCC",
+"G$	c #6C96D0",
+"H$	c #6E98D1",
+"I$	c #749CD3",
+"J$	c #779FD4",
+"K$	c #7AA1D5",
+"L$	c #7CA3D6",
+"M$	c #7DA4D7",
+"N$	c #7FA5D7",
+"O$	c #80A6D7",
+"P$	c #8EB0DC",
+"Q$	c #AEC6E6",
+"R$	c #91B2DD",
+"S$	c #92B3DE",
+"T$	c #90B2DD",
+"U$	c #8BAEDB",
+"V$	c #85AAD9",
+"W$	c #81A6D8",
+"X$	c #80A5D8",
+"Y$	c #7EA5D7",
+"Z$	c #7DA3D7",
+"`$	c #7CA2D6",
+" %	c #7AA0D5",
+".%	c #789FD4",
+"+%	c #6C86B8",
+"@%	c #839AB9",
+"#%	c #ADBBCE",
+"$%	c #B8C5D6",
+"%%	c #B0BFD5",
+"&%	c #B7C8DF",
+"*%	c #BDCCE2",
+"=%	c #CAD8ED",
+"-%	c #8FADDA",
+";%	c #5B87C7",
+">%	c #2962B6",
+",%	c #094BAD",
+"'%	c #094BAC",
+")%	c #356BBB",
+"!%	c #B1C3DA",
+"~%	c #5C8BCA",
+"{%	c #6893CF",
+"]%	c #6793D0",
+"^%	c #6C96D1",
+"/%	c #6F99D2",
+"(%	c #719BD3",
+"_%	c #749DD4",
+":%	c #759DD5",
+"<%	c #769FD5",
+"[%	c #79A1D6",
+"}%	c #7EA5D8",
+"|%	c #9FBCE2",
+"1%	c #B3CAE9",
+"2%	c #A6C1E5",
+"3%	c #ABC4E6",
+"4%	c #A6C0E4",
+"5%	c #99B8E0",
+"6%	c #89ADDC",
+"7%	c #7EA4D7",
+"8%	c #77A0D6",
+"9%	c #759FD5",
+"0%	c #78A0D6",
+"a%	c #7EA3D7",
+"b%	c #88AADA",
+"c%	c #9EBAE1",
+"d%	c #A2BCE2",
+"e%	c #7797C2",
+"f%	c #7091C0",
+"g%	c #9AB5DB",
+"h%	c #D6E1F1",
+"i%	c #D4DFF1",
+"j%	c #9BB6DE",
+"k%	c #7297CF",
+"l%	c #4374BE",
+"m%	c #2864BA",
+"n%	c #2565BE",
+"o%	c #084AAB",
+"p%	c #0C4DAD",
+"q%	c #356CBB",
+"r%	c #B9CBE3",
+"s%	c #5687CA",
+"t%	c #6290CE",
+"u%	c #618FCE",
+"v%	c #6492CF",
+"w%	c #6894D0",
+"x%	c #6995D1",
+"y%	c #6C97D2",
+"z%	c #6C98D3",
+"A%	c #6E99D3",
+"B%	c #739CD5",
+"C%	c #81A7D9",
+"D%	c #97B7E0",
+"E%	c #CBDBF0",
+"F%	c #CAD9EF",
+"G%	c #CBDAEF",
+"H%	c #C5D6ED",
+"I%	c #B2C9E8",
+"J%	c #95B5DF",
+"K%	c #83A8D9",
+"L%	c #8BAEDC",
+"M%	c #9EBCE2",
+"N%	c #9AB8DF",
+"O%	c #86A9DA",
+"P%	c #749CD4",
+"Q%	c #6793CF",
+"R%	c #608FCD",
+"S%	c #608DCD",
+"T%	c #628FCD",
+"U%	c #6C97D0",
+"V%	c #B0C6E6",
+"W%	c #A1BBE0",
+"X%	c #7FA2D5",
+"Y%	c #4F7EC4",
+"Z%	c #2660B5",
+"`%	c #1D5AB2",
+" &	c #6494D4",
+".&	c #6D9DDB",
+"+&	c #0F52B2",
+"@&	c #0A4BAC",
+"#&	c #0F50AF",
+"$&	c #326ABB",
+"%&	c #E9EFF5",
+"&&	c #E3EAF2",
+"*&	c #ADC2DF",
+"=&	c #5082C8",
+"-&	c #5A8ACB",
+";&	c #5D8DCC",
+">&	c #5D8DCD",
+",&	c #6090CE",
+"'&	c #6291CF",
+")&	c #6492D0",
+"!&	c #6594D1",
+"~&	c #6895D1",
+"{&	c #709BD4",
+"]&	c #86ABDB",
+"^&	c #A9C4E5",
+"/&	c #E8EFF9",
+"(&	c #E5EDF7",
+"_&	c #DFE9F5",
+":&	c #D4E2F3",
+"<&	c #CBDBEF",
+"[&	c #B8CDEA",
+"}&	c #9CBAE1",
+"|&	c #80A6D9",
+"1&	c #6D98D2",
+"2&	c #6291D0",
+"3&	c #6190CF",
+"4&	c #5F8ECE",
+"5&	c #608ECE",
+"6&	c #608FCE",
+"7&	c #5989CB",
+"8&	c #5586C9",
+"9&	c #5C8CCC",
+"0&	c #8FAFDB",
+"a&	c #83A6D7",
+"b&	c #789ED3",
+"c&	c #5A88C9",
+"d&	c #366DBC",
+"e&	c #1856B1",
+"f&	c #0748A9",
+"g&	c #2C6ABE",
+"h&	c #407DCC",
+"i&	c #094CAC",
+"j&	c #1052B0",
+"k&	c #2F68B9",
+"l&	c #D2DCEA",
+"m&	c #DCE4EF",
+"n&	c #BAC9DE",
+"o&	c #6D96CC",
+"p&	c #5084C8",
+"q&	c #598ACC",
+"r&	c #5689CB",
+"s&	c #598BCC",
+"t&	c #5B8CCD",
+"u&	c #5D8ECE",
+"v&	c #5E8FCF",
+"w&	c #6191D0",
+"x&	c #6C99D3",
+"y&	c #89AEDC",
+"z&	c #B1C9E9",
+"A&	c #D7E3F3",
+"B&	c #F4F7FC",
+"C&	c #F1F5FB",
+"D&	c #DFE9F6",
+"E&	c #BDD1EB",
+"F&	c #88ADDC",
+"G&	c #6B98D3",
+"H&	c #5F90CF",
+"I&	c #5C8DCE",
+"J&	c #5A8CCD",
+"K&	c #5D8ECD",
+"L&	c #5587CA",
+"M&	c #4F83C8",
+"N&	c #4C80C7",
+"O&	c #769ED4",
+"P&	c #5787C9",
+"Q&	c #5686C9",
+"R&	c #4B7EC5",
+"S&	c #366EBD",
+"T&	c #215DB5",
+"U&	c #1150AE",
+"V&	c #0647A9",
+"W&	c #0D4FB0",
+"X&	c #6597D8",
+"Y&	c #2C6DC3",
+"Z&	c #0A4BAB",
+"`&	c #0F4FAE",
+" *	c #1253B0",
+".*	c #2763B7",
+"+*	c #B1C4DE",
+"@*	c #BBCBE0",
+"#*	c #729BD1",
+"$*	c #497FC7",
+"%*	c #5387CB",
+"&*	c #5084C9",
+"**	c #5286CA",
+"=*	c #5488CC",
+"-*	c #5689CD",
+";*	c #578BCD",
+">*	c #5A8CCE",
+",*	c #6897D3",
+"'*	c #91B3DF",
+")*	c #C9D8EF",
+"!*	c #E7EEF8",
+"~*	c #EEF3FA",
+"{*	c #D8E3F4",
+"]*	c #82A8DA",
+"^*	c #6694D2",
+"/*	c #5B8DCE",
+"(*	c #588BCE",
+"_*	c #578ACD",
+":*	c #5688CC",
+"<*	c #598BCD",
+"[*	c #578ACC",
+"}*	c #4C81C8",
+"|*	c #487EC7",
+"1*	c #7CA3D7",
+"2*	c #447BC5",
+"3*	c #3B74C1",
+"4*	c #3771BF",
+"5*	c #2D69BC",
+"6*	c #205FB7",
+"7*	c #1656B2",
+"8*	c #0E4FAD",
+"9*	c #0749AA",
+"0*	c #0749AB",
+"a*	c #4E84D0",
+"b*	c #7DA4DE",
+"c*	c #185BB9",
+"d*	c #0C4CAC",
+"e*	c #1151AE",
+"f*	c #1556B2",
+"g*	c #1A5BB5",
+"h*	c #8FADD7",
+"i*	c #EDF0F6",
+"j*	c #C2D1E3",
+"k*	c #B9C9DF",
+"l*	c #719AD2",
+"m*	c #437CC7",
+"n*	c #4A81C9",
+"o*	c #4D83C9",
+"p*	c #4C83CA",
+"q*	c #4D84CB",
+"r*	c #4F86CB",
+"s*	c #588CCE",
+"t*	c #759FD7",
+"u*	c #9FBCE3",
+"v*	c #B3CBEA",
+"w*	c #C9DBEF",
+"x*	c #E1EAF6",
+"y*	c #E9F0F8",
+"z*	c #C9DAEF",
+"A*	c #A2BFE4",
+"B*	c #75A0D7",
+"C*	c #5D8FCF",
+"D*	c #5489CD",
+"E*	c #5187CC",
+"F*	c #5185CC",
+"G*	c #5287CC",
+"H*	c #4B82CA",
+"I*	c #4980C8",
+"J*	c #457DC7",
+"K*	c #447BC6",
+"L*	c #3570C1",
+"M*	c #306DBF",
+"N*	c #2A68BC",
+"O*	c #2261B8",
+"P*	c #1355B1",
+"Q*	c #0E4FAE",
+"R*	c #0B4BAB",
+"S*	c #3572C7",
+"T*	c #6597DA",
+"U*	c #1255B4",
+"V*	c #1252AF",
+"W*	c #1758B3",
+"X*	c #1E5FB7",
+"Y*	c #7CA0CF",
+"Z*	c #C9D6E6",
+"`*	c #E1E8F1",
+" =	c #B5C6DD",
+".=	c #B3C5DB",
+"+=	c #6B95CE",
+"@=	c #3E78C6",
+"#=	c #407BC7",
+"$=	c #457EC8",
+"%=	c #76A1D7",
+"&=	c #9CBBE2",
+"*=	c #8CB0DE",
+"==	c #6494D3",
+"-=	c #6293D2",
+";=	c #85ACDD",
+">=	c #ACC6E8",
+",=	c #C5D7EF",
+"'=	c #D5E2F3",
+")=	c #B5CCEA",
+"!=	c #6394D2",
+"~=	c #5389CD",
+"{=	c #4D85CC",
+"]=	c #5487CD",
+"^=	c #4C84CB",
+"/=	c #4780C9",
+"(=	c #578ACE",
+"_=	c #9CBAE2",
+":=	c #437CC8",
+"<=	c #3471C2",
+"[=	c #316EC0",
+"}=	c #2765BB",
+"|=	c #2061B9",
+"1=	c #1A5BB6",
+"2=	c #1556B3",
+"3=	c #1151AF",
+"4=	c #114FAD",
+"5=	c #0648A9",
+"6=	c #1C60BD",
+"7=	c #92B3E5",
+"8=	c #5990D7",
+"9=	c #1152B1",
+"0=	c #1050AE",
+"a=	c #1353B0",
+"b=	c #1B5AB4",
+"c=	c #2663BA",
+"d=	c #3B73C1",
+"e=	c #BACBDF",
+"f=	c #AFC2DB",
+"g=	c #A7BBD5",
+"h=	c #5184C6",
+"i=	c #3A77C6",
+"j=	c #3F7AC7",
+"k=	c #5E90D0",
+"l=	c #87ACDC",
+"m=	c #9BBBE2",
+"n=	c #77A2D8",
+"o=	c #4E86CC",
+"p=	c #4580CA",
+"q=	c #4A82CB",
+"r=	c #5389CE",
+"s=	c #6596D3",
+"t=	c #7DA7DB",
+"u=	c #92B5E1",
+"v=	c #98B9E2",
+"w=	c #9CBCE3",
+"x=	c #AFC8E9",
+"y=	c #6796D4",
+"z=	c #5289CD",
+"A=	c #4A83CB",
+"B=	c #4C84CC",
+"C=	c #5087CD",
+"D=	c #4881CA",
+"E=	c #447EC9",
+"F=	c #417DC8",
+"G=	c #3D79C7",
+"H=	c #578BCE",
+"I=	c #9FBDE3",
+"J=	c #3471C3",
+"K=	c #316FC2",
+"L=	c #2E6CBF",
+"M=	c #2968BD",
+"N=	c #2665BC",
+"O=	c #2162BA",
+"P=	c #1C5DB7",
+"Q=	c #1859B4",
+"R=	c #0F4EAD",
+"S=	c #0848AA",
+"T=	c #1458B7",
+"U=	c #75A6E1",
+"V=	c #4683D2",
+"W=	c #1052B1",
+"X=	c #1251AF",
+"Y=	c #1655B1",
+"Z=	c #205FB6",
+"`=	c #2F6ABC",
+" -	c #437AC4",
+".-	c #88A9D7",
+"+-	c #B3C7E3",
+"@-	c #99B6DB",
+"#-	c #5F8FCD",
+"$-	c #5A8DCF",
+"%-	c #CCDCF0",
+"&-	c #9BBAE2",
+"*-	c #588ED0",
+"=-	c #4580CB",
+"--	c #4681CB",
+";-	c #4881CB",
+">-	c #4982CB",
+",-	c #4C85CD",
+"'-	c #538ACF",
+")-	c #5E92D2",
+"!-	c #6998D5",
+"~-	c #6C9AD6",
+"{-	c #91B4E1",
+"]-	c #77A1D9",
+"^-	c #4F86CD",
+"/-	c #5188CE",
+"(-	c #4983CC",
+"_-	c #4A81CB",
+":-	c #4880CB",
+"<-	c #407CC8",
+"[-	c #588CCF",
+"}-	c #5086CC",
+"|-	c #3775C5",
+"1-	c #3674C4",
+"2-	c #3271C2",
+"3-	c #2E6DC0",
+"4-	c #2A69BE",
+"5-	c #2766BD",
+"6-	c #2263BA",
+"7-	c #1F5FB8",
+"8-	c #205EB7",
+"9-	c #0E4EAC",
+"0-	c #0A4AAA",
+"a-	c #1154B4",
+"b-	c #669BDD",
+"c-	c #3D7CCD",
+"d-	c #1152B0",
+"e-	c #1352AF",
+"f-	c #1957B2",
+"g-	c #2562B8",
+"h-	c #3971C0",
+"i-	c #82A7D9",
+"j-	c #97B6DF",
+"k-	c #91B2DE",
+"l-	c #8FB1DD",
+"m-	c #A8C2E5",
+"n-	c #CDDDF0",
+"o-	c #5188CD",
+"p-	c #4781CB",
+"q-	c #4882CC",
+"r-	c #4A83CC",
+"s-	c #4B84CD",
+"t-	c #4E86CE",
+"u-	c #5087CF",
+"v-	c #538AD0",
+"w-	c #568CD0",
+"x-	c #578CD0",
+"y-	c #568BD0",
+"z-	c #5E92D3",
+"A-	c #A0BEE5",
+"B-	c #558AD0",
+"C-	c #4B84CC",
+"D-	c #4C81CB",
+"E-	c #5A8ED1",
+"F-	c #5B90D0",
+"G-	c #3C78C7",
+"H-	c #3876C5",
+"I-	c #3573C3",
+"J-	c #2D6CC0",
+"K-	c #2B6ABE",
+"L-	c #5D8CCC",
+"M-	c #2461B8",
+"N-	c #1555B0",
+"O-	c #104FAD",
+"P-	c #1053B3",
+"Q-	c #538DDA",
+"R-	c #3A7BCE",
+"S-	c #1253B1",
+"T-	c #1454B0",
+"U-	c #1B59B2",
+"V-	c #2964B8",
+"W-	c #4177C2",
+"X-	c #ABC4E5",
+"Y-	c #C8D9EE",
+"Z-	c #D1DFF1",
+"`-	c #EBF1F9",
+" ;	c #BED2EC",
+".;	c #5F91D1",
+"+;	c #5088CE",
+"@;	c #4D86CD",
+"#;	c #4F87CF",
+"$;	c #5088CF",
+"%;	c #5189D0",
+"&;	c #528AD0",
+"*;	c #538BD0",
+"=;	c #558CD1",
+"-;	c #548BD0",
+";;	c #8DB2E0",
+">;	c #81AADD",
+",;	c #588ED2",
+"';	c #578DD1",
+");	c #4E87CE",
+"!;	c #5D91D2",
+"~;	c #A2BFE5",
+"{;	c #6394D3",
+"];	c #427EC9",
+"^;	c #3F7AC8",
+"/;	c #3370C2",
+"(;	c #5085CA",
+"_;	c #608ECD",
+":;	c #215FB7",
+"<;	c #4D89D8",
+"[;	c #3B7DD0",
+"};	c #1355B2",
+"|;	c #1555B1",
+"1;	c #1C5AB3",
+"2;	c #2A65B9",
+"3;	c #4478C2",
+"4;	c #729BD3",
+"5;	c #B3C9E8",
+"6;	c #DAE5F4",
+"7;	c #E9EFF8",
+"8;	c #AFC8E8",
+"9;	c #4981CB",
+"0;	c #5289CF",
+"a;	c #729FD8",
+"b;	c #5C8FD2",
+"c;	c #528AD1",
+"d;	c #538BD1",
+"e;	c #548CD1",
+"f;	c #558CD2",
+"g;	c #568ED2",
+"h;	c #578ED2",
+"i;	c #6295D5",
+"j;	c #6D9DD8",
+"k;	c #AEC9EA",
+"l;	c #75A2DB",
+"m;	c #72A0D9",
+"n;	c #6A99D7",
+"o;	c #6799D6",
+"p;	c #B0C8E8",
+"q;	c #6797D5",
+"r;	c #4681CC",
+"s;	c #447FCA",
+"t;	c #3D7AC8",
+"u;	c #3976C6",
+"v;	c #3A76C5",
+"w;	c #719CD4",
+"x;	c #2665BB",
+"y;	c #1D5CB6",
+"z;	c #1250AE",
+"A;	c #0E4DAC",
+"B;	c #4E8BD8",
+"C;	c #3F81D2",
+"D;	c #1658B4",
+"E;	c #1756B2",
+"F;	c #1D5AB4",
+"G;	c #2963B8",
+"H;	c #3E74C1",
+"I;	c #6792CF",
+"J;	c #ACC5E5",
+"K;	c #BACEEA",
+"L;	c #AAC4E6",
+"M;	c #95B6E0",
+"N;	c #719ED6",
+"O;	c #568BCF",
+"P;	c #4B83CC",
+"Q;	c #4A84CC",
+"R;	c #558BCF",
+"S;	c #79A4DB",
+"T;	c #6798D6",
+"U;	c #558DD2",
+"V;	c #588FD3",
+"W;	c #588FD4",
+"X;	c #5990D4",
+"Y;	c #5A91D5",
+"Z;	c #6497D7",
+"`;	c #6C9DD9",
+" >	c #78A5DC",
+".>	c #B1CAEA",
+"+>	c #B7CEEC",
+"@>	c #A3C1E7",
+"#>	c #9DBDE5",
+"$>	c #C4D7EF",
+"%>	c #5188CF",
+"&>	c #4D85CD",
+"*>	c #437FCA",
+"=>	c #4780CA",
+"->	c #5B8DCF",
+";>	c #5589CC",
+">>	c #3874C3",
+",>	c #2A68BE",
+"'>	c #2563BA",
+")>	c #1E5CB5",
+"!>	c #1351AE",
+"~>	c #1659B7",
+"{>	c #4D8CD9",
+"]>	c #4585D5",
+"^>	c #195BB7",
+"/>	c #1858B3",
+"(>	c #2661B8",
+"_>	c #4277C3",
+":>	c #7CA2D7",
+"<>	c #7BA4D8",
+"[>	c #7BA4D9",
+"}>	c #6F9CD5",
+"|>	c #5D90D1",
+"1>	c #4D86CE",
+"2>	c #5189CF",
+"3>	c #5D92D3",
+"4>	c #6A9BD7",
+"5>	c #5A92D5",
+"6>	c #5B92D5",
+"7>	c #5C93D6",
+"8>	c #5D94D6",
+"9>	c #6699D8",
+"0>	c #699CD9",
+"a>	c #74A3DC",
+"b>	c #96BAE5",
+"c>	c #C0D5EF",
+"d>	c #E3ECF7",
+"e>	c #D8E4F4",
+"f>	c #DFEAF6",
+"g>	c #AAC5E9",
+"h>	c #719ED9",
+"i>	c #5B90D2",
+"j>	c #4D85CE",
+"k>	c #4782CC",
+"l>	c #437DC9",
+"m>	c #3774C5",
+"n>	c #2B69BE",
+"o>	c #1F5CB5",
+"p>	c #1956B1",
+"q>	c #1451AF",
+"r>	c #1D60BB",
+"s>	c #4F8DDB",
+"t>	c #4C8BD9",
+"u>	c #1E60BA",
+"v>	c #1958B3",
+"w>	c #1C5AB4",
+"x>	c #376DBD",
+"y>	c #618DCC",
+"z>	c #4C7FC7",
+"A>	c #4B80C8",
+"B>	c #5588C9",
+"C>	c #4D7DBF",
+"D>	c #4D7AB4",
+"E>	c #4A76B4",
+"F>	c #4A7DC4",
+"G>	c #6699D7",
+"H>	c #5F94D5",
+"I>	c #5C93D5",
+"J>	c #5E95D7",
+"K>	c #6096D7",
+"L>	c #6A9CDA",
+"M>	c #679AD9",
+"N>	c #699CDA",
+"O>	c #81ACDF",
+"P>	c #ABC7EA",
+"Q>	c #D6E4F5",
+"R>	c #F2F6FC",
+"S>	c #F4F5FC",
+"T>	c #E0EAF7",
+"U>	c #B5CDEC",
+"V>	c #81ABDE",
+"W>	c #6195D5",
+"X>	c #548BD1",
+"Y>	c #5189CE",
+"Z>	c #4983CB",
+"`>	c #417DC9",
+" ,	c #3C79C7",
+".,	c #3875C5",
+"+,	c #326FC2",
+"@,	c #2562B9",
+"#,	c #1F5BB5",
+"$,	c #1A56B1",
+"%,	c #1453AF",
+"&,	c #3370C4",
+"*,	c #5A97E1",
+"=,	c #5592DD",
+"-,	c #2466BF",
+";,	c #1A59B4",
+">,	c #2E67BA",
+",,	c #5382C6",
+"',	c #346CBE",
+"),	c #336CBF",
+"!,	c #3C75C4",
+"~,	c #447CC7",
+"{,	c #4979B8",
+"],	c #5680B5",
+"^,	c #4774AD",
+"/,	c #4F7AB0",
+"(,	c #5B82B5",
+"_,	c #5583BF",
+":,	c #5C90D1",
+"<,	c #5F95D6",
+"[,	c #6398D8",
+"},	c #6197D8",
+"|,	c #6399D9",
+"1,	c #6B9EDB",
+"2,	c #6B9DDB",
+"3,	c #659AD9",
+"4,	c #6D9FDB",
+"5,	c #85B0E2",
+"6,	c #AFCAEB",
+"7,	c #DFEAF7",
+"8,	c #F9FAFD",
+"9,	c #BAD1ED",
+"0,	c #84ABDF",
+"a,	c #5C91D3",
+"b,	c #5A8FD2",
+"c,	c #4B85CD",
+"d,	c #4782CB",
+"e,	c #3976C5",
+"f,	c #3270C2",
+"g,	c #2B68BD",
+"h,	c #2561B8",
+"i,	c #205BB4",
+"j,	c #1654B0",
+"k,	c #235EB6",
+"l,	c #437FCD",
+"m,	c #66A0E4",
+"n,	c #5E9AE1",
+"o,	c #2D6FC6",
+"p,	c #4A7CC4",
+"q,	c #2A64B9",
+"r,	c #2762B8",
+"s,	c #2E68BC",
+"t,	c #346FC1",
+"u,	c #3A71BD",
+"v,	c #4E78B1",
+"w,	c #406EA9",
+"x,	c #3F6DA9",
+"y,	c #4B77AE",
+"z,	c #5881B4",
+"A,	c #658ABA",
+"B,	c #7596C1",
+"C,	c #7A9BC5",
+"D,	c #6B9AD3",
+"E,	c #6698D6",
+"F,	c #6599D9",
+"G,	c #6398D9",
+"H,	c #659ADA",
+"I,	c #6DA0DC",
+"J,	c #6C9FDC",
+"K,	c #669CDB",
+"L,	c #689CDB",
+"M,	c #6EA0DD",
+"N,	c #7FABE1",
+"O,	c #B1CBED",
+"P,	c #E7EFF9",
+"Q,	c #E2EBF8",
+"R,	c #EAF0FA",
+"S,	c #D3E1F4",
+"T,	c #83ADE0",
+"U,	c #6B9DD9",
+"V,	c #5E94D4",
+"W,	c #558DD1",
+"X,	c #5089D0",
+"Y,	c #4480CB",
+"Z,	c #3F7BC8",
+"`,	c #326EC1",
+" '	c #2B67BC",
+".'	c #2560B8",
+"+'	c #1B57B2",
+"@'	c #1D59B3",
+"#'	c #356DBE",
+"$'	c #4C88D4",
+"%'	c #7BABE8",
+"&'	c #70A6E7",
+"*'	c #3A7CCF",
+"='	c #4379C4",
+"-'	c #2964B9",
+";'	c #235FB7",
+">'	c #2B66BB",
+",'	c #316CBF",
+"''	c #3768B9",
+")'	c #537BB3",
+"!'	c #4572AC",
+"~'	c #4773AC",
+"{'	c #527CB2",
+"]'	c #5F86B7",
+"^'	c #6C8FBD",
+"/'	c #7999C3",
+"('	c #86A4C9",
+"_'	c #9BB3D3",
+":'	c #8EADD4",
+"<'	c #739DD6",
+"['	c #689BDB",
+"}'	c #6EA2DD",
+"|'	c #6EA1DD",
+"1'	c #699EDD",
+"2'	c #6A9FDD",
+"3'	c #6B9EDD",
+"4'	c #90B6E5",
+"5'	c #CEDFF4",
+"6'	c #ADC9EB",
+"7'	c #BCD4EF",
+"8'	c #C7DAF2",
+"9'	c #C7DBF2",
+"0'	c #94B7E4",
+"a'	c #77A6DE",
+"b'	c #6297D7",
+"c'	c #5A92D4",
+"d'	c #568FD3",
+"e'	c #528BD1",
+"f'	c #4E88CF",
+"g'	c #4581CB",
+"h'	c #407BC8",
+"i'	c #3975C4",
+"j'	c #326DC0",
+"k'	c #2560B7",
+"l'	c #205CB4",
+"m'	c #1D58B2",
+"n'	c #2F67BA",
+"o'	c #4078C4",
+"p'	c #5491DB",
+"q'	c #92BAED",
+"r'	c #5592DB",
+"s'	c #3772C3",
+"t'	c #2161B8",
+"u'	c #2762B9",
+"v'	c #306ABD",
+"w'	c #3671C1",
+"x'	c #4876B1",
+"y'	c #4F79B0",
+"z'	c #5C84B6",
+"A'	c #688DBB",
+"B'	c #7496C0",
+"C'	c #88A5CA",
+"D'	c #95AFCF",
+"E'	c #A4BAD6",
+"F'	c #BDCDE1",
+"G'	c #B5C7DE",
+"H'	c #95B6DE",
+"I'	c #79A8DE",
+"J'	c #6EA2DF",
+"K'	c #6DA2DF",
+"L'	c #6AA1DF",
+"M'	c #8FB9E7",
+"N'	c #B5D0EF",
+"O'	c #7AACE3",
+"P'	c #8BB5E5",
+"Q'	c #9ABEE8",
+"R'	c #B6D0EE",
+"S'	c #7EAAE1",
+"T'	c #699DDA",
+"U'	c #6097D7",
+"V'	c #5C94D6",
+"W'	c #5991D4",
+"X'	c #558ED2",
+"Y'	c #518AD0",
+"Z'	c #4C85CE",
+"`'	c #3873C3",
+" )	c #306BBE",
+".)	c #2A65BA",
+"+)	c #2560B6",
+"@)	c #2760B6",
+"#)	c #3D72BF",
+"$)	c #609BE1",
+"%)	c #AACDEF",
+"&)	c #69A1E4",
+"*)	c #3374C7",
+"=)	c #2363BA",
+"-)	c #2C66BB",
+";)	c #4B75B4",
+">)	c #5B83B6",
+",)	c #5D84B7",
+"')	c #678BBB",
+"))	c #7294C0",
+"!)	c #819FC6",
+"~)	c #A7BCD7",
+"{)	c #B4C6DD",
+"])	c #D3DDEB",
+"^)	c #C4D4E7",
+"/)	c #9CBCE1",
+"()	c #71A4E0",
+"_)	c #98BDEA",
+":)	c #A7C7EC",
+"<)	c #79A9E1",
+"[)	c #7CACE3",
+"})	c #7CACE2",
+"|)	c #7AAAE2",
+"1)	c #76A8E1",
+"2)	c #8DB6E5",
+"3)	c #8DB4E4",
+"4)	c #659BDA",
+"5)	c #6298D9",
+"6)	c #5F96D7",
+"7)	c #5B93D5",
+"8)	c #578FD3",
+"9)	c #3C77C6",
+"0)	c #2F69BD",
+"a)	c #245FB6",
+"b)	c #225DB5",
+"c)	c #396EBD",
+"d)	c #4479C3",
+"e)	c #558DD4",
+"f)	c #76AAE7",
+"g)	c #7AADE8",
+"h)	c #4081D1",
+"i)	c #2868BE",
+"j)	c #2764BA",
+"k)	c #2A65BB",
+"l)	c #2C67BC",
+"m)	c #306ABE",
+"n)	c #346FC0",
+"o)	c #4573BE",
+"p)	c #6488BA",
+"q)	c #698DBC",
+"r)	c #7E9EC5",
+"s)	c #A3B9D6",
+"t)	c #B2C4DC",
+"u)	c #C1D0E3",
+"v)	c #D4DEEC",
+"w)	c #E8EDF4",
+"x)	c #D1DEED",
+"y)	c #A7C2E2",
+"z)	c #A9C9EC",
+"A)	c #7CADE4",
+"B)	c #76AAE2",
+"C)	c #74A8E1",
+"D)	c #72A6E0",
+"E)	c #72A5E0",
+"F)	c #70A4E0",
+"G)	c #73A6E0",
+"H)	c #A3C3EA",
+"I)	c #649ADA",
+"J)	c #6198D8",
+"K)	c #427CC8",
+"L)	c #3B75C4",
+"M)	c #346EC0",
+"N)	c #2963B9",
+"O)	c #255FB7",
+"P)	c #2D65B9",
+"Q)	c #4578C2",
+"R)	c #4E83CA",
+"S)	c #649ADE",
+"T)	c #94B9E6",
+"U)	c #94BDED",
+"V)	c #4F90DC",
+"W)	c #3373C7",
+"X)	c #2966BC",
+"Y)	c #2B68BC",
+"Z)	c #2E69BD",
+"`)	c #4377C5",
+" !	c #668AC2",
+".!	c #7395C0",
+"+!	c #7D9DC5",
+"@!	c #9EB6D4",
+"#!	c #ACC0DA",
+"$!	c #BFCFE2",
+"%!	c #CDD9E8",
+"&!	c #E8EDF5",
+"*!	c #F8F9FB",
+"=!	c #C6DAEF",
+"-!	c #8AB5E4",
+";!	c #78ABE3",
+">!	c #76AAE3",
+",!	c #75A9E3",
+"'!	c #74A7E2",
+")!	c #72A6E1",
+"!!	c #6FA4E0",
+"~!	c #99BFE8",
+"{!	c #77A8E0",
+"]!	c #659BDB",
+"^!	c #6198D9",
+"/!	c #3F79C7",
+"(!	c #3973C3",
+"_!	c #336DBF",
+":!	c #2A64BA",
+"<!	c #2863B9",
+"[!	c #4075C1",
+"}!	c #5384C9",
+"|!	c #6C9BD8",
+"1!	c #7AACE8",
+"2!	c #90B1D7",
+"3!	c #B4CCF3",
+"4!	c #68A2E6",
+"5!	c #4282D1",
+"6!	c #2E6CC1",
+"7!	c #2C69BE",
+"8!	c #2F6ABE",
+"9!	c #316BBE",
+"0!	c #356EC0",
+"a!	c #3872C2",
+"b!	c #3F76C4",
+"c!	c #5B85BB",
+"d!	c #89A5CA",
+"e!	c #9DB5D3",
+"f!	c #BACAE0",
+"g!	c #CAD6E7",
+"h!	c #D7E0ED",
+"i!	c #ECF0F6",
+"j!	c #F4F6FA",
+"k!	c #BCD3EC",
+"l!	c #77ABE5",
+"m!	c #76AAE4",
+"n!	c #74A8E3",
+"o!	c #71A6E1",
+"p!	c #93BAE6",
+"q!	c #6097D8",
+"r!	c #5991D5",
+"s!	c #437CC9",
+"t!	c #3D77C6",
+"u!	c #3772C2",
+"v!	c #346EBF",
+"w!	c #336CBD",
+"x!	c #2E67BB",
+"y!	c #3970BF",
+"z!	c #6791CE",
+"A!	c #72A3E0",
+"B!	c #7FB1EB",
+"C!	c #99B3D4",
+"D!	c #8BB7EB",
+"E!	c #5694DD",
+"F!	c #3E7CCC",
+"G!	c #326FC1",
+"H!	c #346EC1",
+"I!	c #366FC1",
+"J!	c #3871C2",
+"K!	c #3C75C3",
+"L!	c #4179C6",
+"M!	c #467EC8",
+"N!	c #6791C8",
+"O!	c #D0DBEA",
+"P!	c #D6E0ED",
+"Q!	c #F5F7FA",
+"R!	c #ACCAEC",
+"S!	c #7CAEE5",
+"T!	c #6FA4DF",
+"U!	c #9CBFE9",
+"V!	c #669BDA",
+"W!	c #5E94D6",
+"X!	c #568DD3",
+"Y!	c #467FCA",
+"Z!	c #447CC8",
+"`!	c #4179C7",
+" ~	c #3E75C4",
+".~	c #326BBD",
+"+~	c #5B88CA",
+"@~	c #7EA2D5",
+"#~	c #6B97D1",
+"$~	c #6497D8",
+"%~	c #6EA4E5",
+"&~	c #87ACDA",
+"*~	c #E6EDF4",
+"=~	c #B0C9EB",
+"-~	c #6BA5E7",
+";~	c #4C8BD7",
+">~	c #3A78C9",
+",~	c #3470C2",
+"'~	c #3A73C3",
+")~	c #3F78C6",
+"!~	c #427BC8",
+"~~	c #477FC9",
+"{~	c #7FA0CB",
+"]~	c #B6C7DD",
+"^~	c #E5ECF3",
+"/~	c #F1F5F9",
+"(~	c #A5C5E8",
+"_~	c #78A8E0",
+":~	c #70A3DE",
+"<~	c #92B9E5",
+"[~	c #7CA8DE",
+"}~	c #6698D7",
+"|~	c #5D91D3",
+"1~	c #548ACF",
+"2~	c #4D83CB",
+"3~	c #437AC8",
+"4~	c #467BC6",
+"5~	c #6792CE",
+"6~	c #7A9FD5",
+"7~	c #6591CE",
+"8~	c #5A8ACC",
+"9~	c #6193D4",
+"0~	c #6FA3E1",
+"a~	c #81B0EC",
+"b~	c #D5E1F1",
+"c~	c #F2F5FA",
+"d~	c #88B7EC",
+"e~	c #5D9BE1",
+"f~	c #4887D3",
+"g~	c #3A77C7",
+"h~	c #3773C4",
+"i~	c #3A74C4",
+"j~	c #3D76C5",
+"k~	c #4079C7",
+"l~	c #4F85CB",
+"m~	c #8AAAD3",
+"n~	c #C8D6E7",
+"o~	c #D9E6F5",
+"p~	c #97BBE6",
+"q~	c #A3C2E7",
+"r~	c #85ACDE",
+"s~	c #729ED8",
+"t~	c #5A8CD0",
+"u~	c #4C82CA",
+"v~	c #5A8BCE",
+"w~	c #769ED6",
+"x~	c #7AA0D6",
+"y~	c #5888CB",
+"z~	c #497DC6",
+"A~	c #598ACB",
+"B~	c #6293D3",
+"C~	c #6FA1DE",
+"D~	c #78ABE9",
+"E~	c #99B9E5",
+"F~	c #D1DDEC",
+"G~	c #77AEEB",
+"H~	c #5996DE",
+"I~	c #4886D2",
+"J~	c #3D79C8",
+"K~	c #457EC9",
+"L~	c #4E85CD",
+"M~	c #80A7D9",
+"N~	c #D9E2EF",
+"O~	c #DEE9F5",
+"P~	c #B9CDE6",
+"Q~	c #A4C1E5",
+"R~	c #8FB3E0",
+"S~	c #84ABDC",
+"T~	c #8CAFDE",
+"U~	c #7EA4D9",
+"V~	c #5889CD",
+"W~	c #3C74C3",
+"X~	c #467CC6",
+"Y~	c #5D8CCD",
+"Z~	c #70A0DD",
+"`~	c #8DB7E9",
+" {	c #DAE6F3",
+".{	c #9BBFEB",
+"+{	c #6EA9E9",
+"@{	c #5896DD",
+"#{	c #4A87D2",
+"${	c #417DCA",
+"%{	c #417CC8",
+"&{	c #437DC8",
+"*{	c #447EC8",
+"={	c #4A82CA",
+"-{	c #6D9CD7",
+";{	c #96B7DE",
+">{	c #DCE5EF",
+",{	c #D8E2EF",
+"'{	c #B5CAE4",
+"){	c #A1BEE3",
+"!{	c #6493D2",
+"~{	c #3D77C5",
+"{{	c #4D82C9",
+"]{	c #5F8FCE",
+"^{	c #6595D3",
+"/{	c #71A1DC",
+"({	c #7CACE6",
+"_{	c #85B6EC",
+":{	c #C1D5EB",
+"<{	c #D4E1EE",
+"[{	c #88B5E8",
+"}{	c #6CA7E9",
+"|{	c #5B97DD",
+"1{	c #4E8BD3",
+"2{	c #4781CA",
+"3{	c #4B83CB",
+"4{	c #5087CE",
+"5{	c #75A1D9",
+"6{	c #699BD7",
+"7{	c #548DD2",
+"8{	c #C0D3E9",
+"9{	c #FDFEFF",
+"0{	c #97B6DE",
+"a{	c #4C82CB",
+"b{	c #588ACE",
+"c{	c #6493D1",
+"d{	c #73A2DD",
+"e{	c #7EAEE6",
+"f{	c #8FBCEE",
+"g{	c #C9DBEE",
+"h{	c #BACCE2",
+"i{	c #81B0E8",
+"j{	c #6EA8E8",
+"k{	c #5F9ADE",
+"l{	c #5590D6",
+"m{	c #5F92D3",
+"n{	c #6F9ED7",
+"o{	c #568DD1",
+"p{	c #558DD3",
+"q{	c #5890D5",
+"r{	c #5D95D7",
+"s{	c #85AEE0",
+"t{	c #DEE6EF",
+"u{	c #F3F6FB",
+"v{	c #C1D2E7",
+"w{	c #9FBDE2",
+"x{	c #9EBFE6",
+"y{	c #A4C5EB",
+"z{	c #C0D2E7",
+"A{	c #DDE8F4",
+"B{	c #E1EBF5",
+"C{	c #7FAEE7",
+"D{	c #71A9E9",
+"E{	c #659FE1",
+"F{	c #659CDC",
+"G{	c #6497D6",
+"H{	c #5A92D6",
+"I{	c #5C93D7",
+"J{	c #5D95D8",
+"K{	c #6098DA",
+"L{	c #6FA1DB",
+"M{	c #B0C9E7",
+"N{	c #ECF1F7",
+"O{	c #F3F7FA",
+"P{	c #E7EFF6",
+"Q{	c #E2EBF5",
+"R{	c #D9E4F2",
+"S{	c #C6D2E8",
+"T{	c #82B5ED",
+"U{	c #7BAEE7",
+"V{	c #6BA2E0",
+"W{	c #6299D9",
+"X{	c #6399DA",
+"Y{	c #649BDB",
+"Z{	c #669EDE",
+"`{	c #6EA3DF",
+" ]	c #86B0E0",
+".]	c #C9D7E7",
+"+]	c #EDF3F9",
+"@]	c #EBF2F8",
+"#]	c #E6EEF7",
+"$]	c #E0E9F4",
+"%]	c #DCE7F3",
+"&]	c #D5E2F0",
+"*]	c #C3CFE4",
+"=]	c #87B1E5",
+"-]	c #7EB4ED",
+";]	c #74ABE8",
+">]	c #6EA5E3",
+",]	c #689FDE",
+"']	c #689EDD",
+")]	c #699FDD",
+"!]	c #6CA1DE",
+"~]	c #71A5E1",
+"{]	c #76A9E4",
+"]]	c #7BADE5",
+"^]	c #8DB9E9",
+"/]	c #A9CAEF",
+"(]	c #C4DCF4",
+"_]	c #C5D7EC",
+":]	c #C4D3E4",
+"<]	c #EEF3F9",
+"[]	c #DEE9F4",
+"}]	c #DDE7F3",
+"|]	c #DBE6F2",
+"1]	c #D8E5F2",
+"2]	c #D0DEEE",
+"3]	c #A4BBD9",
+"4]	c #85B8EF",
+"5]	c #7DB2EC",
+"6]	c #78AEE8",
+"7]	c #76ACE6",
+"8]	c #75ABE4",
+"9]	c #7AACE4",
+"0]	c #A1C5EC",
+"a]	c #CEE2F6",
+"b]	c #DEEBF9",
+"c]	c #E8F2FB",
+"d]	c #D2E5F8",
+"e]	c #ACD0F3",
+"f]	c #94C2F1",
+"g]	c #89BCEF",
+"h]	c #8BB3DE",
+"i]	c #B4D1EF",
+"j]	c #D1DCE9",
+"k]	c #DBE7F2",
+"l]	c #D9E5F1",
+"m]	c #D3E1F0",
+"n]	c #BBCCE3",
+"o]	c #A1B4CD",
+"p]	c #7695C9",
+"q]	c #86B4E7",
+"r]	c #88BBF1",
+"s]	c #85B8EE",
+"t]	c #88BAED",
+"u]	c #90BEED",
+"v]	c #9DC6EF",
+"w]	c #D3E5F8",
+"x]	c #DEECFA",
+"y]	c #C5DEF7",
+"z]	c #A6CDF3",
+"A]	c #96C4F2",
+"B]	c #96C7F4",
+"C]	c #99C9F6",
+"D]	c #9BCAF7",
+"E]	c #9BCBF7",
+"F]	c #99CAF6",
+"G]	c #98C8F4",
+"H]	c #98C7F3",
+"I]	c #B7D3ED",
+"J]	c #C5DCF3",
+"K]	c #C8D8EB",
+"L]	c #D5E2F1",
+"M]	c #CDDDED",
+"N]	c #B8CCE3",
+"O]	c #ABBEDC",
+"P]	c #90ACCF",
+"Q]	c #85A6D6",
+"R]	c #9AC2ED",
+"S]	c #9DC8F4",
+"T]	c #90C0F0",
+"U]	c #99C5F1",
+"V]	c #9BC7F1",
+"W]	c #97C6F2",
+"X]	c #9AC9F3",
+"Y]	c #9FCDF5",
+"Z]	c #A4D2F8",
+"`]	c #A9D6FB",
+" ^	c #ACD9FC",
+".^	c #AEDAFD",
+"+^	c #AAD7FB",
+"@^	c #A6D3F9",
+"#^	c #A5D1F7",
+"$^	c #A5D0F5",
+"%^	c #A3CDF4",
+"&^	c #A2CAF0",
+"*^	c #A3CAF0",
+"=^	c #A2CAF1",
+"-^	c #A2CAF2",
+";^	c #9CC6F1",
+">^	c #90B7E5",
+",^	c #85A0CE",
+"'^	c #7F97C9",
+")^	c #89AEDD",
+"!^	c #92BDEC",
+"~^	c #97C5F3",
+"{^	c #97C7F4",
+"]^	c #99C9F4",
+"^^	c #9DCBF4",
+"/^	c #A1CFF6",
+"(^	c #A6D2F7",
+"_^	c #ABD7F9",
+":^	c #B1DBFC",
+"<^	c #B6DFFE",
+"[^	c #B8E0FE",
+"}^	c #B3DDFD",
+"|^	c #ADD8FA",
+"1^	c #A9D4F8",
+"2^	c #A9D3F7",
+"3^	c #A6D0F5",
+"4^	c #A4CEF5",
+"5^	c #A3CDF5",
+"6^	c #9FCBF4",
+"7^	c #9BC7F2",
+"8^	c #93B9E8",
+"9^	c #82A5D8",
+"0^	c #7691C3",
+"a^	c #98C3EE",
+"b^	c #9FCCF4",
+"c^	c #A3D0F8",
+"d^	c #A8D4F8",
+"e^	c #ABD6F9",
+"f^	c #AFD9FA",
+"g^	c #B2DBFB",
+"h^	c #B3DCFB",
+"i^	c #B0DAFA",
+"j^	c #ACD7F9",
+"k^	c #A7D3F8",
+"l^	c #A7D2F7",
+"m^	c #A7D1F7",
+"n^	c #A2CDF4",
+"o^	c #9AC3EE",
+"p^	c #90B4E3",
+"q^	c #8AA9D8",
+"r^	c #A7D0F6",
+"s^	c #A9D0F6",
+"t^	c #ACD3F6",
+"u^	c #ACD3F5",
+"v^	c #AACFF6",
+"w^	c #A9D1F5",
+"x^	c #A7CFF3",
+"y^	c #A4CAF0",
+"z^	c #9FC7EE",
+"A^	c #9ABEE6",
+"B^	c #92B1DD",
+"                                                                        . + @ # $       % & * = -                             ",
+"                                                                      ; > , ' ) ! ~ { ] ^ / ( _ : < [ }                       ",
+"                                                                    | 1 2 3 4 5 2 6 7 8 9 0 a b c d e f g                     ",
+"                                                                    h d i j k l m l l b n o p l l l l q r s                   ",
+"                                                          t u v w x y ) z p l l l l l A i B C l l l l l l l = D               ",
+"                                        E F G H I J K ~ L M d m m m m N O l l l l l l P Q R 0 l l l l l S T c U V W X Y       ",
+"                                Z `  ...+. at .#.$.%.&.m m m m m m m m m &.*.l l l l l l l T =.' l l l T p -.;.P >.,.5 N c '.).  ",
+"                            !.~ / ~.m m m m m m m m m m m m m m m m m m m l l l l l l l {.].P l l l &.^./.) m l ' p =.(., _.  ",
+"                          :.<.&.m m m m m m m m m m m m m m m m m m m m l l l &.O 2 l l l l l l q T [.4 }.A l l l l ) |.1.2.  ",
+"                        3.4.m m m m m m m m m T A c p ) ) 5 5 9 ) , q ~.l l l 5.6.7.8.l l l &.2 9./.0.i A l l l l l A j z a.  ",
+"                      b.c.m m m m m m m %.p d.e.f.g.h.i.j.k.l.m.h.n.o.p.l l l q.r.s.t.c l l A /./.Q 2 u.l l l l l l l 1.O v.  ",
+"                      w.m m m m m ~.p x.y.z.A.B.C.D.E.F.G.H.G.I.J.K.L.M.m l l N.O.P.Q.R.l l b 2 9 {.T 1.o.*.l l l l &.0 5 S.  ",
+"                    T.#.m m m &.p U.V.W.X.Y.Z.`. +.+++ at +#+$+#+%+&+*+=+-+A A l ;+>+,+'+0 l l l b l > )+!+~+{+u.l l l S 5 ]+^+  ",
+"                    /+m m m A 6 (+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+5 O p l d+e+f+A l l l l A g+h+i+j+k+l l l l m l+m+    ",
+"                  n+#.m m A d.o+p+q+r+s+t+u+v+w+x+y+z+A+B+B+C+D+E+F+G+H+I+j p l l l l l l l l l Q J+K+L+M+N+l l l l ) O+      ",
+"                  P+m m T d.Q+R+S+T+U+V+W+X+7+Y+Z+`+ @. at +@+@@@#@$@C+%@&@*@=@y.S l l l l l l l l p -@;@>@,@'@l l l )@!@        ",
+"                  ~@m m ! {@]@^@/@(@_@:@<@[@Y+z+}@|@#@@@+ at 1@@@@@2 at 3@4 at 5@6 at 7@8 at 9@P l l l l l l l l l l l l l u.m e 0@          ",
+"                  a at m m b at c@d at e@f@@+g at h@i at j@k at l@m at B+n@|@|@o@|@|@`+p at q@r at y+s@t@|.p.a l l l l l l l l l l P x.S # u@            ",
+"                v at w@m m x at y@z at A@B at C@D at E@F at G@H at I@J at K@L at q@D+D+D+q at L@r at M@N at O@P at Q@R at S@T at l l l l l l l b c c O z U at V@              ",
+"                W@'@m m x at X@Y at Z@`@ #.#+#@###$#%#&#*#=#-#F+F+-#-#*#;#>#,#'#)#!#~#{#x@]#^#/#l l A 9 q (#=@Q f._#                ",
+"                :#m m m )@<#[#}#|#1#=#2#3#4#5#6#7#8#9#0#0#0#0#a#b#c#d#e#f#g#h#i#' ;+j#k#l#m#'@n#o#p#q#r#s#t#                  ",
+"                u#m m m v#w#x#y#z#A#B#g#C#D#E#F#G#H#I#I#I#I#I#I#H#J#K#L#M#N#O#P#) Q#R#S#T#U#V#W#X#Y#^.Z#`#                    ",
+"               $.$m m m +$@$x##$$$%$&$*$=$-$;$>$,$'$)$!$!$!$)$)$)$O#O#~${$]$*$^$/$($_$:$<$[$}$) ^.|$1$2$                      ",
+"            3$4$.$m m m 5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$j$k$i$l$m$m$m$n$d$c$o$p$q$r$s$t$u$]#N v$w$x$y$z$                      ",
+"            A$B$C$&.m m D$E$F$G$H$I$J$K$L$M$N$O$P$Q$P$R$S$T$U$V$W$X$N$Y$Z$`$ %.%.%+%@%#%$%%%&%*%=%-%;%>%                      ",
+"            ,%'%)%c m m > !%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%;$c%d%f#N#e%f%g%3 at h%i%j%k%l%m%                    ",
+"          n%o%p%q%+.m m I+r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%=#*#N%O%P%Q%R%S%T%U%n$V%V%W%X%Y%Z%`% &                  ",
+"        .&+&@&#&$&%&m m &&*&=&-&;&>&,&'&)&!&~&{&]&^&E%/&(&_&:&<&[&}&|&1&)&2&3&4&5&6&7&8&9&k$0&a&b&c&d&e&f&g&                  ",
+"        h&i&p%j&k&l&m m m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&P C&D&E&F&G&w&H&v&I&J&K&>&L&M&N&O& %P&Q&R&S&T&U&V&W&X&                ",
+"        Y&Z&`& *.*+*~.m <.@*#*$*%*&***=*-*;*>*,*'*)*!*B&a ~*{*1%]*^*/*(*_*:*<*[*&*}*|*y%1*2*3*4*5*6*7*8*9*0*a*                ",
+"      b*c*d*e*f*g*h*i*%.j*k*l*m*n*o*p*q*r*s*t*u*z&v*w*x*y*3 z*A*B*C*D*E*F*_*G*H*I*J*w&L%K*L*M*N*O*g*P*Q*R*f&S*                ",
+"      T*U*8*V*W*X*Y*Z*`* =.=+=@=#=n*$=r*%=&=*===-=;=>=,=E%'=)=;=!=~={={=]=^=/=$=#=(=_=:=<=[=g&}=|=1=2=3=4=5=6=7=              ",
+"      8=9=0=a=b=c=d=e=f=!%g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=E=F=G=H=I=:=J=K=L=M=N=O=P=Q=e&R=S=T=U=              ",
+"      V=W=X=Y=Z=`= -.-+- at -#-H*$-I=%-&-*-=---;->-,-'-)-!-~-!-{-]-,-^-/-(-_-:-<-[-&=}-|-1-2-3-4-5-6-7-8-Y=9-0-a-b-              ",
+"      c-d-e-f-g-h--&i-j-k-l-m-A&n-n=o-p-q-r-s-,-t-u-v-w-x-y-z-A-B-w-t-C-r-D-E-w=F-G=G-H-I-K=J-K-}*L-M-N-O-R*P-Q-              ",
+"      R-S-T-U-V-W-H$X-Y-Z-`-C& ;.;p=C-+;,-@;#;$;%;%;&;*;=;-;-;;;>;,;';-;);!;~;{;];F=^;G-|-/;/;(;d$_;:;Y=U&d*P-<;              ",
+"      [;};|;1;2;3;4;5;6;7;(&8;!=9;;-0;a;b;$;%;c;d;e;f;g;g;h;i;j;k;l;m;n;o;p;q;r;p-s;F=t;u;v;=*w;|*x;y;e&z;A;U*B;              ",
+"      C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;d;U;g;V;W;X;X;Y;Z;`; >.>+>@>#>$>]-%>&>(-p-*><-=>->;>>>,>'>)>e&!>R=~>{>              ",
+"      ]>^>/>F;(>_>a%:><>[>}>|>+;s-1>2>3>4>V;W;X;5>6>7>8>9>0>a>b>c>d>e>f>g>h>i>$;j>(-k>C=C=l>m>K=n>'>o>p>q>O-r>s>              ",
+"      t>u>v>w>x>y>z>A>-*[-B>C>D>E>F>%>h;G>H>6>I>8>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>$;2>Y>Z>`> ,.,+,n>@,#,$,%,e-&,*,              ",
+"      =,-,;,>,,,',),!,~,{,],^,/,(,[ _,:,<,[,<,K>},|,1,2,3,4,5,6,7,8,p 7,9,0,G>a,b,-;c,d,*>^;e,f,g,h,i,$,j,k,l,m,              ",
+"      n,o,g-p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,g>T,U,V,W,X,1>(-Y,Z,e,`, '.'i,+'@'#'$'%'              ",
+"      &'*'='-';'r,>',''')'!'~'{']'^'/'('_':'<'['}'|'1'2'2'3'4'5'6'7'8'9'0'a'b'c'd'e'f'c,g'h'i'j'>'k'l'm'n'o'p'q'              ",
+"        r's't'M-u'>'v'w'x'y'{'z'A'B'C'D'E'F'G'H'I'J'J'K'L'M'N'O'P'Q'Q'R'S'T'U'V'W'X'Y'Z'=-j=`' ).)+)i,@)#)q=$)%)              ",
+"        &)*)=)@,-'-)v'L*;)>),)')))!): ~){)F' .])^)/)I'()_):)<)[)})|)1)2)3)4)5)6)7)8)Y'c,s;9)L*0)q,a)b)c)d)e)f)                ",
+"        g)h)i)j)k)l)m)n)o)p)q)))r); s)t)u)e v)]+I+w)x)y)z)A)B)C)D)E)F)G)H)K,I)J)V'8)X,(-K)L)M)s,N)O)P)Q)R)S)T)                ",
+"        U)V)W)X)Y)Z)m)n)`) !.!+!; @!#!$!%!v.&&&!v#! ~.*!=!-!;!>!,!'!)!!!~!{!]!^!7>U;);=>/!(!_!s,:!<![!}!|!1!2!                ",
+"        3!4!5!6!7!8!9!0!a!b!c!d!e!~ f!g!h!&&i!)@! c l l m j!k!O'l!m!n!o![)p!4)q!r!&;A=s!t!u!v!w!x!y!z!t*A!B!C!                ",
+"          D!E!F!G!H!I!J!K!L!M!N!e!$!O!P!`*> )@5 c b l l l l m Q!R!S!,!)!T!U!V!W!X!t-Y!Z!`! ~M).~+~@~#~$~%~&~*~                ",
+"          =~-~;~>~,~u!'~!,)~!~~~{~]~# ^~> /~! c m l l l l l l l ~.4 (~_~:~<~[~}~|~1~2~3~!,4~5~6~7~8~9~0~a~b~c~                ",
+"            d~e~f~g~h~i~L)j~k~E=l~m~n~I+)@! c m l l l l l l l l l l #.o~p~b>q~r~s~t~u~v~w~x~y~z~A~B~C~D~E~(+F~                ",
+"              G~H~I~J~9)@=k~!~K~L~t-M~N~b at c m l l l l l l l l l l l l l c O~P~Q~R~S~T~U~V~W~X~Y~==Z~1!`~ {y.                  ",
+"              .{+{@{#{${%{&{*{={P;Z'-{;{>{A l l l l l l l l l l l l l l m T $.,{'{){!{!~~{{{]{^{/{({_{:{;.<{                  ",
+"                [{}{|{1{k>2{3{B=4{5{6{7{b,8{~.l l l l l l l l l l u.9{&.A {.p *.k ,{0{a{b{c{!-d{e{f{g{4 Q h{                  ",
+"                  i{j{k{l{X,Y>m{n{o{e'p{q{r{s{t{l l l l l l b m &.A c q ) 5 d.u{U.1.(.[.v{w{x{y{z{A{B{T at x)                    ",
+"                    C{D{E{F{0>G{g;8)X;H{I{J{K{L{M{N{u.b m &.A P {.p ) 5 d.O{1.0 z i y*P{4 7 at Q{h.^.(#r#R{S{                    ",
+"                      e{T{U{V{K{r{J>q!W{X{Y{Z{L'`{ ].]+$c 8 q k k n ' x.1.0 +]@];.#]=@B{$]^.r#%]p#~#&]*]                      ",
+"                        =]-];]>]V{,]'])]!]~]{]]]^]/](]_]:]( d.) n =.<]j i ;.0.4 Q |.[]}]|]p#1]8 at Y#2]3]                        ",
+"                          :>4]5]6]7]8]>!9]0]a]b]c]d]e]f]g]h]i]j];.i i o.n#B{(#r#k]p#l]8 at Y#&]m]R at n]o]                          ",
+"                            p]q]r]s]t]u]v]w]x]y]z]A]B]C]D]E]F]G]H]I]J]K]{# {~#{#Y#L]f+R M]N]O]P]                              ",
+"                                Q]R]S]A]T]U]V]W]X]Y]Z]`] ^.^+^@^#^$^%^&^*^=^-^z];^>^,^                                        ",
+"                                  '^)^!^~^{^]^^^/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^8^9^0^                                          ",
+"                                          a^b^c^#^d^e^f^g^h^i^j^k^l^m^n^o^p^q^                                                ",
+"                                                  r^s^t^u^v^w^x^y^z^A^B^                                                      "};
diff --git a/defaults/preferences/prefs.js b/defaults/preferences/prefs.js
index 1eebd0a..052009e 100644
--- a/defaults/preferences/prefs.js
+++ b/defaults/preferences/prefs.js
@@ -6,7 +6,7 @@ pref("extensions.firetray.start_minimized", false);
 pref("extensions.firetray.confirm_exit", true);
 pref("extensions.firetray.restore_to_next_unread", false);
 
-pref("extensions.firetray.mail_count_type", 1);
+pref("extensions.firetray.mail_count_type", 0);
 
 pref("extensions.firetray.show_mail_count", true);
 pref("extensions.firetray.dont_count_spam", true);
diff --git a/generate_install_rdf.sh b/generate_install_rdf.sh
new file mode 100755
index 0000000..8266d09
--- /dev/null
+++ b/generate_install_rdf.sh
@@ -0,0 +1,204 @@
+#!/bin/bash
+
+VERSION="0.3.1"
+EXTENSION_ID="{9533f794-00b4-4354-aa15-c2bbda6989f8}"
+EXTENSION_NAME="FireTray"
+HOMEPAGE="http://code.google.com/p/firetray/"
+OPTIONS="chrome://firetray/content/options.xul"
+ICON="chrome://firetray/content/icon.png"
+CREATOR="Hua Luo, Francesco Solero"
+DESCRIPTION="A system tray extension for linux"
+IFS=""
+
+APP_SEPARATOR=';'
+
+#SUPPORTED APPS:
+# "name;id;min.ver;max.ver"
+SUPPORTED_APPS=( \
+"Mozilla Firefox;{ec8030f7-c20a-464f-9b0e-13a3a9e97384};3.0;5.*" \
+"Mozilla Thunderbird;{3550f703-e582-4d05-9a08-453d09bdfdc6};3.0;5.*" \
+"Songbird;songbird at songbirdnest.com;0.8;1.8.0" \
+"SeaMonkey;{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a};2.0a1;2.0.*   " \
+"Sunbird;{718e30fb-e89b-41dd-9da7-e25a45638b28};1.0b1;1.0pre" \
+"ChatZilla;{59c81df5-4b7a-477b-912d-4e0fdf64e5f2};0.8;0.9.*" \
+)
+
+DEVELOPERS=( "Jared Forsyth" "Glen Winters" )
+
+CONTRIBUTORS=( \
+"Simone 'Underpass' " \
+"Diego Rodriguez" \
+"Dave Bartlett" \
+"Bertolotti Pierre" \
+"Ziyuan Yao" \
+"+Hard -Soft" \
+"SparkyBluefang" \
+"Corossig" \
+"Hicham.Haouari" \
+"Jreybert" \
+"aedrin" \
+)
+
+TRANSLATORS=( \
+"Lachezar [bg-BG]" \
+"SoftcatalàAljullu,ellibre [ca-AD]" \
+"Sam [cz-CZ]" \
+"bricks [de-DE]" \
+"profediego [es-AR]" \
+"chuzo [es-ES]" \
+"GµårÐïåñ [fa-IR]" \
+"BatBat,Jojaba,nico at nc [fr-FR]" \
+"Simone 'Underpass' [it-IT]" \
+"drry [ja-JP]" \
+"renegade06 [mk-MK]" \
+"markh [nl-NL]" \
+"Wacław Jacek [pl-PL]" \
+"Alberto Eidh [pt-BR]" \
+"Quicksilver tears [ru-RU]" \
+"lukas_sk [sk-SK]" \
+"miles [sl-SL]" \
+"Lakrits [sv-SE]" \
+"efecan [tr-TR]" \
+"Sappa [uk-UA]" \
+"xmoke [zh-CN]" \
+)
+
+svn info > /dev/null 2> /dev/null
+NOT_SVN=$?
+
+SVN_REV=svn-r`svnversion .`
+
+if [ $NOT_SVN -ne 0 ]
+then
+  SVN_REV="src-build"
+fi
+
+EXTENSION_VERSION=$VERSION-$SVN_REV #unofficial build
+if [ ${#OFFICIAL_AMO_RELEASE} -gt 0 ] 
+then  
+  EXTENSION_VERSION=$VERSION  #amo build
+else 
+  if [ ${#OTHER_DISTRIBUTION_NAME} -gt 0 ]
+  then
+    EXTENSION_VERSION=$VERSION-$OTHER_DISTRIBUTION_NAME #other official build
+  fi
+fi
+
+
+
+add_field() #  add_field (val, tagname)
+{
+  if [ -z "$1" ]                       
+  then 
+     return
+  else
+     VAL=$1
+  fi
+
+  if [ -z "$2" ]                       
+  then
+     OPEN_TAG=''
+     CLOSE_TAG=''
+  else
+     OPEN_TAG="<$2>"
+     CLOSE_TAG="</$2>"
+  fi
+
+  echo $3$OPEN_TAG$VAL$CLOSE_TAG
+}
+
+extension_info_head()
+{
+  echo "    <em:id>$EXTENSION_ID</em:id>"
+  echo "    <em:version>$EXTENSION_VERSION</em:version>"
+  echo "    <em:type>2</em:type>"
+  echo "    <em:unpack>true</em:unpack>"
+  echo
+
+
+  echo "    <!-- Front End MetaData -->"
+  echo "    <em:name>$EXTENSION_NAME</em:name>"
+  echo "    <em:description>$DESCRIPTION</em:description>"
+  echo "    <em:creator>$CREATOR</em:creator>"
+  echo
+
+
+  echo "    <em:homepageURL>$HOMEPAGE</em:homepageURL>"
+  echo "    <em:optionsURL>$OPTIONS</em:optionsURL>"    
+  echo "    <em:iconURL>$ICON</em:iconURL>"  
+  echo  
+
+
+}
+
+supported_apps()
+{
+  echo       
+  echo '    <!-- Target Application this extension can install into, '
+  echo '         with minimum and maximum supported versions. --> '
+
+  for l in ${SUPPORTED_APPS[@]}
+  do
+    OLD_IFS=$IFS
+    IFS=$APP_SEPARATOR
+    APP=( $l )
+    echo
+    echo "      <!-- ${APP[0]} -->"
+    echo "      <em:targetApplication>"
+    echo "        <Description>"
+    echo "          <em:id>${APP[1]}</em:id>"
+    echo "          <em:minVersion>${APP[2]}</em:minVersion>"
+    echo "          <em:maxVersion>${APP[3]}</em:maxVersion>"
+    echo "        </Description>"
+    echo "      </em:targetApplication>"
+    IFS=$OLD_IFS
+  done
+}
+
+developers()
+{
+  echo
+  for l in ${DEVELOPERS[@]}
+  do
+    add_field $l "em:developer" "    "
+  done  
+}
+
+contributors()
+{
+  echo
+  for l in ${CONTRIBUTORS[@]}
+  do
+    add_field $l "em:contributor" "    "
+  done  
+}
+
+translators()
+{
+  echo
+  for l in ${TRANSLATORS[@]}
+  do
+    add_field $l "em:translator" "    "
+  done  
+}
+
+
+
+echo '<?xml version="1.0"?>'
+echo
+echo '<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'
+echo '     xmlns:em="http://www.mozilla.org/2004/em-rdf#">'
+echo '  <Description about="urn:mozilla:install-manifest">'
+
+extension_info_head
+supported_apps
+developers
+contributors
+translators
+echo
+echo '  </Description>'
+echo '</RDF>'
+
+unset IFS
+
+
diff --git a/install.rdf b/install.rdf
deleted file mode 100644
index ffe0759..0000000
--- a/install.rdf
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>{9533f794-00b4-4354-aa15-c2bbda6989f8}</em:id>
-    <em:version>0.3.4</em:version>
-    <em:type>2</em:type>
-    <em:unpack>true</em:unpack>
-
-    <!-- Front End MetaData -->
-    <em:name>FireTray</em:name>
-    <em:description>A system tray extension for linux</em:description>
-    <em:creator>Hua Luo, Francesco Solero</em:creator>
-
-    <em:homepageURL>http://code.google.com/p/firetray/</em:homepageURL>
-    <em:optionsURL>chrome://firetray/content/options.xul</em:optionsURL>
-    <em:iconURL>chrome://firetray/content/icon.png</em:iconURL>
-
-
-    <!-- Target Application this extension can install into, 
-         with minimum and maximum supported versions. --> 
-
-      <!-- Mozilla Firefox -->
-      <em:targetApplication>
-        <Description>
-          <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-          <em:minVersion>7.0</em:minVersion>
-          <em:maxVersion>8.*</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-      <!-- Mozilla Thunderbird -->
-      <em:targetApplication>
-        <Description>
-          <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
-          <em:minVersion>7.0</em:minVersion>
-          <em:maxVersion>8.*</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-      <!-- Songbird -->
-      <em:targetApplication>
-        <Description>
-          <em:id>songbird at songbirdnest.com</em:id>
-          <em:minVersion>0.8</em:minVersion>
-          <em:maxVersion>1.8.0</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-      <!-- SeaMonkey -->
-      <em:targetApplication>
-        <Description>
-          <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
-          <em:minVersion>2.0a1</em:minVersion>
-          <em:maxVersion>2.0.*</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-      <!-- Sunbird -->
-      <em:targetApplication>
-        <Description>
-          <em:id>{718e30fb-e89b-41dd-9da7-e25a45638b28}</em:id>
-          <em:minVersion>1.0b1</em:minVersion>
-          <em:maxVersion>1.0pre</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-      <!-- ChatZilla -->
-      <em:targetApplication>
-        <Description>
-          <em:id>{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}</em:id>
-          <em:minVersion>0.8</em:minVersion>
-          <em:maxVersion>0.9.*</em:maxVersion>
-        </Description>
-      </em:targetApplication>
-
-    <em:developer>Jared Forsyth</em:developer>
-    <em:developer>Glen Winters</em:developer>
-
-    <em:contributor>Simone 'Underpass' </em:contributor>
-    <em:contributor>Diego Rodriguez</em:contributor>
-    <em:contributor>Dave Bartlett</em:contributor>
-    <em:contributor>Bertolotti Pierre</em:contributor>
-    <em:contributor>Ziyuan Yao</em:contributor>
-    <em:contributor>+Hard -Soft</em:contributor>
-    <em:contributor>SparkyBluefang</em:contributor>
-    <em:contributor>Corossig</em:contributor>
-    <em:contributor>Hicham.Haouari</em:contributor>
-    <em:contributor>Jreybert</em:contributor>
-    <em:contributor>aedrin</em:contributor>
-
-    <em:translator>Lachezar [bg-BG]</em:translator>
-    <em:translator>SoftcatalàAljullu,ellibre [ca-AD]</em:translator>
-    <em:translator>Sam [cz-CZ]</em:translator>
-    <em:translator>bricks [de-DE]</em:translator>
-    <em:translator>profediego [es-AR]</em:translator>
-    <em:translator>chuzo [es-ES]</em:translator>
-    <em:translator>GµårÐïåñ [fa-IR]</em:translator>
-    <em:translator>BatBat,Jojaba,nico at nc [fr-FR]</em:translator>
-    <em:translator>Simone 'Underpass' [it-IT]</em:translator>
-    <em:translator>drry [ja-JP]</em:translator>
-    <em:translator>renegade06 [mk-MK]</em:translator>
-    <em:translator>markh [nl-NL]</em:translator>
-    <em:translator>Wacław Jacek [pl-PL]</em:translator>
-    <em:translator>Alberto Eidh [pt-BR]</em:translator>
-    <em:translator>Quicksilver tears [ru-RU]</em:translator>
-    <em:translator>lukas_sk [sk-SK]</em:translator>
-    <em:translator>miles [sl-SL]</em:translator>
-    <em:translator>Lakrits [sv-SE]</em:translator>
-    <em:translator>efecan [tr-TR]</em:translator>
-    <em:translator>Sappa [uk-UA]</em:translator>
-    <em:translator>xmoke [zh-CN]</em:translator>
-
-  </Description>
-</RDF>
diff --git a/makefile.example b/makefile.example
new file mode 100644
index 0000000..e94be03
--- /dev/null
+++ b/makefile.example
@@ -0,0 +1,6 @@
+#example of a simple makefile used to build a deb package using checkinstall
+
+install:	
+	./build.sh --dynamic-linking --output-dir=/usr/lib/firefox-addons/extensions 
+
+

-- 
system tray extension for thunderbird/firefox alike apps



More information about the Pkg-mozext-commits mailing list