Solved

List usb connected devices from delphi

Posted on 2009-04-04
2
3,980 Views
Last Modified: 2012-08-14
Hi. How can i list usb devices connected using delphi??
More specific using Winusb driver (not HID device). I just want to list devices connected, not monitor for connect/disconnect devices.

ps: delphi 7
0
Comment
Question by:Jmaurin
2 Comments
 
LVL 5

Accepted Solution

by:
Mechanic_Kharkov earned 125 total points
ID: 24069809
GetRawInputDeviceList will not help because You are not looking for HID devices.
I think You need to dig to WMI functions. You need the WMI SDK to use this tool in Delphi (import type libraries "Active DS Type  Library", "Microsoft WMI Scripting v1.1  Library").
Pay your attention to such classes as Win32_USBHub, Win32_USBControllerDevice.

Script sample from MSDN:
Use the Win32_USBHub class and check the  Description property. This property may have a value such as "  Mass Storage Device" or "Printing Support".


strComputer = "."

Set objWMIService = GetObject(_

    "winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery( _

    "Select * from Win32_USBHub")

For Each objItem in colItems

    Wscript.Echo "Device ID: " & objItem.DeviceID

    Wscript.Echo "PNP Device ID: " _

        & objItem.PNPDeviceID

    Wscript.Echo "Description: " _

        & objItem.Description

    Wscript.Echo

Next

Open in new window

0
 
LVL 9

Expert Comment

by:bernani
ID: 24289756
Hi,

The following code may be helpful for you.

It's a sample prog found on a French Delphi Site showing how to enumerate and display  all devices (included USB ones) connected to the computer with info for each device.

Comments in the code are in French but the code itself is easy to understand.

Copy the code below and save it in a new unit named "Main.pas"

------------------Begin of Main.pas
//=================================================//
//             Nicolas Paglieri (ni69)             //
//                  www.ni69.info                  //
//                & www.delphifr.com               //
//=================================================//
// Merci à DelphiProg pour son aide précieuse ! ;) //
//=================================================//
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Registry, Grids, ImgList, ShellAPI; // Registry est à ajouter ici

type
  TForm1 = class(TForm)
    EnumerateDevicesBtn: TButton;
    Auteur: TLabel;
    GroupBox1: TGroupBox;
    PropertiesStringGrid: TStringGrid;
    GroupBox2: TGroupBox;
    DevicesTreeView: TTreeView;
    ImageList1: TImageList;
    DescTreeView: TTreeView;
    function Translate(English : string): string;
    procedure EnumerateDevicesBtnClick(Sender: TObject);
    procedure DevicesTreeViewAddition(Sender: TObject; Node: TTreeNode);
    procedure DevicesTreeViewChange(Sender: TObject; Node: TTreeNode);
    procedure FormCreate(Sender: TObject);
    procedure AuteurClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  DescList : array of array of String;

implementation

{$R *.dfm}

{$R WindowsXP.res} // Implémentation du Style XP dans l'application

//============================================================================//
// Fonction de traduction en français des noms anglais des catégories de périphériques
// On ajoute ici l'index de l'icône de catégorie après un # pour gérer l'affichage
//============================================================================//
function TForm1.Translate(English: string): string;
begin
 if English = 'CDROM' then result := 'Lecteurs de CD-ROM/DVD-ROM#09'
 else if English = 'Computer' then result := 'Ordinateur#14'
 else if English = 'DiskDrive' then result := 'Lecteurs de disque#10'
 else if English = 'Display' then result := 'Cartes Graphiques#01'
 else if English = 'fdc' then result := 'Contrôleur de lecteur de disquettes#04'
 else if English = 'FloppyDisk' then result := 'Lecteurs de disquettes#11'
 else if English = 'hdc' then result := 'Contrôleurs ATA/ATAPI IDE#05'
 else if English = 'Image' then result := 'Périphériques d''image#15'
 else if English = 'Keyboard' then result := 'Claviers#03'
 else if English = 'LegacyDriver' then result := 'Pilotes non Plug-and-Play#17'
 else if English = 'MEDIA' then result := 'Contrôleurs audio, vidéo et jeu#06'
 else if English = 'Modem' then result := 'Modems#12'
 else if English = 'Monitor' then result := 'Moniteurs#13'
 else if English = 'Mouse' then result := 'Souris et autres périphériques de pointage#20'
 else if English = 'Net' then result := 'Cartes réseau#02'
 else if English = 'NtApm' then result := 'Prise en charge NT APM/hérité#19'
 else if English = 'Ports' then result := 'Ports (COM et LPT)#18'
 else if English = 'Printer' then result := 'Imprimantes#08'
 else if English = 'System' then result := 'Périphériques Système#14'
 else if English = 'USB' then result := 'Contrôleurs de bus USB#07'
 else if English = 'Volume' then result := 'Volumes de stockage#21'
 else result := English+'#22'; // Périphérique inconnu
end;
//============================================================================//




//============================================================================//
//          PROCEDURE D'ENUMERATION DES PERIPHERIQUES SUR WINDOWS XP          //
//============================================================================//
procedure TForm1.EnumerateDevicesBtnClick(Sender: TObject);
var
 CategoriesList, SubCatList, SubSubCatList, FinalList : TStringList;
 nb, nb2, nb3: integer;
 Reg1, Reg2, Reg3 : TRegistry;
 HasBeenFound : boolean;
 line : string;
begin

 // On évite deux énumérations simultanées qui entraineraient des problèmes d'affichage...
 EnumerateDevicesBtn.Enabled := false;

 CategoriesList := TStringList.Create; // Liste des catégories principales du registre
 SubCatList := TStringList.Create; // Liste intermédiaire
 SubSubCatList := TStringList.Create; // Liste intermédiaire
 FinalList := TStringList.Create; // Liste finale comprenant les périphériques

 // On crée les objets TRegistry qui serviront à parcourir l'arborescence
 Reg1 := TRegistry.Create;
 Reg2 := TRegistry.Create;
 Reg3 := TRegistry.Create;

 try
  // Définition de la clé racine
  Reg1.RootKey := HKEY_LOCAL_MACHINE;
  Reg2.RootKey := HKEY_LOCAL_MACHINE;
  Reg3.RootKey := HKEY_LOCAL_MACHINE;

  //----------------------------------------------------------------------------------------
  // 1ère ETAPE : ENUMARTION DES CATEGORIES DU REGISTRE (différentes des catégories finales)
  with TRegistry.Create do try
   RootKey := HKEY_LOCAL_MACHINE;

   //! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
   // IMPORTANT : DROITS D'ACCES
   // On ouvre les clés en lecture seule avec OpenKeyReadOnly
   // car on dispose de la valeur de sécurité d'accès KEY_READ.
   // En effet, seul SYSTEM a le droit d'ouvrir cette clé en écriture en temps normal.
   //! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

   OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum');
   GetKeyNames(CategoriesList); // Récupération des catégories
   CloseKey;
  finally
   free;
  end;

   //-----------------------------------------------------------------------------------------------------------------------------------
   // 2eme ETAPE : PARCOURS DE L'ARBORESCENCE DU REGISTRE (les clés contenant les informations utiles sont contenues dans d'autres clés)
   for nb := 0 to CategoriesList.Count-1 do begin
    Reg1.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\'+CategoriesList[nb]);
     Reg1.GetKeyNames(SubCatList);
     Reg1.CloseKey;
     for nb2 := 0 to SubCatList.Count-1 do begin
       Reg2.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\'+CategoriesList[nb]+'\'+SubCatList[nb2]);
       Reg2.GetKeyNames(SubSubCatList);
       Reg2.CloseKey;
       for nb3 := 0 to SubSubCatList.Count-1 do begin
        Reg3.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\'+CategoriesList[nb]+'\'+SubCatList[nb2]+'\'+SubSubCatList[nb3]);

        // Si on ne dispose ni du type de périphérique, ni de son nom,
        // Ou alors si le périphérique n'est plus disponible (si la clé "Control" n'est pas présente), on ne l'ajoute pas
        if ((Reg3.ReadString('Class')='') and (Reg3.ReadString('DeviceDesc')='')) or (not Reg3.KeyExists('Control'))  then begin
         Reg3.CloseKey;
         continue;
        // Si il s'agit d'un lecteur CD, d'un disque dur ou d'un port (COM ou LPT), on remplace la description du périphérique par un nom plus parlant
        end else if (Reg3.ReadString('Class')='CDROM') or (Reg3.ReadString('Class')='DiskDrive') or (Reg3.ReadString('Class')='Ports') then
         line := Translate(Reg3.ReadString('Class'))+'|'+Reg3.ReadString('FriendlyName')
        else line := Translate(Reg3.ReadString('Class'))+'|'+Reg3.ReadString('DeviceDesc');
        // Ajout des informations si elles sont présentes dans le registre
         if Reg3.ValueExists('DeviceDesc') then Line := Line + '§Description@'+Reg3.ReadString('DeviceDesc');
         if Reg3.ValueExists('FriendlyName') then Line := Line + '§FriendlyName@'+Reg3.ReadString('FriendlyName');
         if Reg3.ValueExists('Mfg') then Line := Line + '§Fabriquant@'+Reg3.ReadString('Mfg');
         if Reg3.ValueExists('Service') then Line := Line + '§Service@'+Reg3.ReadString('Service');
         if Reg3.ValueExists('LocationInformation') then Line := Line + '§Emplacement@'+Reg3.ReadString('LocationInformation');
         if Reg3.ValueExists('Class') then Line := Line + '§Enumérateur@'+Reg3.ReadString('Class');
        FinalList.Add(line);
        Reg3.CloseKey;
       end;
     end;
   end;

  // On trie la liste des périphériques par ordre alphabétique
  FinalList.Sort;
  line := '';

  // On vide les TreeViews
  DevicesTreeView.Items.Clear;
  DescTreeView.Items.Clear;

  // 3ème ETAPE : ON REMPLIT LES TREEVIEWS AVEC LA LISTE DES PERIPHERIQUES ET LES INFORMATIONS QUE L'ON CLASSE AU PASSAGE DANS DIFFERENTES CATEGORIES...
  for nb := 0 to FinalList.Count-1 do begin // On parcours tous les périphériques
   HasBeenFound := false; // Variable qui permet de savoir si la catégorie existe déjà dans le TreeView ou si il faut la créer
   for nb2 := 0 to DevicesTreeView.Items.Count-1 do begin // On parcours tous les noeuds
    HasBeenFound := ((DevicesTreeView.Items[nb2].Text = Copy(FinalList[nb],1,Pos('#',FinalList[nb])-1)) and (DevicesTreeView.Items[nb2].Level = 0));
    if HasBeenFound then break;
   end;
   if HasBeenFound then begin
     // Si le noeud parent de catégorie existe déjà, on ne fait qu'inclure le périphérique dans cette branche :
     DevicesTreeView.Items.AddChild(DevicesTreeView.Items[nb2],Copy(FinalList[nb],Pos('|',FinalList[nb])+1,Pos('§',FinalList[nb])-Pos('|',FinalList[nb])-1));
     // On crée le noeud équivalent dans le treeview d'infos
     DescTreeView.Items.AddChild(DescTreeView.Items[nb2],Copy(FinalList[nb],Pos('|',FinalList[nb])+1,Length(FinalList[nb])));
   end else if not HasBeenFound then begin
     // Sinon, on crée la branche et on y place le périphérique : [ici, le noeud parent est créé dans la fonction d'ajout de l'enfant]
     DevicesTreeView.Items.AddChild(  DevicesTreeView.Items.Add(nil, Copy(FinalList[nb],1,Pos('|',FinalList[nb])-1)) , Copy(FinalList[nb],Pos('|',FinalList[nb])+1,Pos('§',FinalList[nb])-Pos('|',FinalList[nb])-1));
//                                   \_________________________création du noeud parent____________________________/
     // On crée le noeud équivalent dans le treeview d'infos
     DescTreeView.Items.AddChild(     DescTreeView.Items.Add(nil, Copy(FinalList[nb],1,Pos('|',FinalList[nb])-1))   ,Copy(FinalList[nb],Pos('|',FinalList[nb])+1,Length(FinalList[nb])));
//                                   \________________________création du noeud parent___________________________/
   end;

   // On évite le blocage de l'application
   Application.ProcessMessages;
  end;

 finally
  // On libère les éléments créés au départ
  Reg3.Free;
  Reg2.Free;
  Reg1.Free;
  FinalList.Free;
  SubSubCatList.Free;
  SubCatList.Free;
  CategoriesList.Free;
  // On réautorise l'énumération (voir ligne 94)
  EnumerateDevicesBtn.Enabled := true;
 end;
end;
//============================================================================//




//============================================================================//
// Attribution des images de catégories pour les noeuds racines et les enfants
//============================================================================//
procedure TForm1.DevicesTreeViewAddition(Sender: TObject; Node: TTreeNode);
begin
 if Node.Level = 0 then begin
  Node.ImageIndex := StrToInt(Copy(Node.Text,Pos('#',Node.Text)+1,2));
  Node.Text := Copy(Node.Text,1,Pos('#',Node.Text)-1);
 end else Node.ImageIndex := Node.Parent.ImageIndex;
end;
//============================================================================//




//============================================================================//
//                  PROCEDURE D'AFFICHAGE DES INFORMATIONS
//============================================================================//
procedure TForm1.DevicesTreeViewChange(Sender: TObject; Node: TTreeNode);
var
 i : integer;
 line : string;
begin

 // On affiche le nom de la catégorie dans la partie informations si aucun périphérique particulier n'est sélectionné
 if DevicesTreeView.Selected.Level = 0 then begin
   PropertiesStringGrid.RowCount := 1;
   PropertiesStringGrid.Cells[0,0] := 'Catégorie';
   PropertiesStringGrid.Cells[1,0] := DevicesTreeView.Selected.Text;
   exit;
 end;

 // On recherche le noeud correspondant dans le treeview d'informations
 Screen.Cursor := crHourGlass;
 Application.ProcessMessages;
 DescTreeView.Selected := DescTreeView.Items.GetFirstNode;
 while DescTreeView.Selected.AbsoluteIndex <> DevicesTreeView.Selected.AbsoluteIndex do begin
  DescTreeView.Selected := DescTreeView.Selected.GetNext;
  Application.ProcessMessages
 end;
 Screen.Cursor := crDefault;

 // Formatage préalable de la ligne (on découpe le début inutile)
 line := Copy(DescTreeView.Selected.Text,Pos('§', DescTreeView.Selected.Text),Length(DescTreeView.Selected.Text));

 // Et on remplit la StringGrid avec les informations
 i := 0;
 while Pos('§',line)<>0 do begin
  inc(i);
   PropertiesStringGrid.RowCount := i;
   PropertiesStringGrid.Cells[0,i-1] := Copy(line, 2, Pos('@', line)-2);
  if Pos('§',Copy(line,2,Length(line))) = 0 then begin
   PropertiesStringGrid.Cells[1,i-1] := Copy(line,Pos('@', line)+1,Length(line));
   line := '';
  end else begin
   PropertiesStringGrid.Cells[1,i-1] := Copy(line,Pos('@', line)+1,Pos('§',Copy(line,2,Length(line)))-Pos('@', line));
  end;
  // On supprime de la variable line l'information ajoutée
  line := Copy(line,Pos('§',Copy(line,2,Length(line)))+1,Length(line));
 end;
end;




procedure TForm1.FormCreate(Sender: TObject);
begin
 // Initialisation au démarrage de l'application
 PropertiesStringGrid.Cells[0,0] := '            Aucun périphérique';
 PropertiesStringGrid.Cells[1,0] := 'n''est sélectionné.';
end;

procedure TForm1.AuteurClick(Sender: TObject);
begin
ShellExecute(0, nil, 'http://www.ni69.info', nil, nil, SW_SHOW);
end;

end.

--------------------- End of Main.pas

Copy the code below as save as Main.dfm

-------------- Begin of Main.dfm
object Form1: TForm1
  Left = 398
  Top = 151
  BorderStyle = bsToolWindow
  Caption = 'Lister les p'#233'riph'#233'riques du syst'#232'me'
  ClientHeight = 497
  ClientWidth = 321
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesktopCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Auteur: TLabel
    Left = 7
    Top = 482
    Width = 306
    Height = 13
    Cursor = crHandPoint
    Alignment = taCenter
    AutoSize = False
    Caption = 'Nicolas Paglieri (ni69) - www.ni69.info'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clRed
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = [fsBold]
    ParentFont = False
    OnClick = AuteurClick
  end
  object EnumerateDevicesBtn: TButton
    Left = 8
    Top = 8
    Width = 305
    Height = 25
    Cursor = crHandPoint
    Caption = 'Actualiser la Liste des p'#233'riph'#233'riques'
    TabOrder = 0
    OnClick = EnumerateDevicesBtnClick
  end
  object GroupBox1: TGroupBox
    Left = 8
    Top = 384
    Width = 305
    Height = 97
    Caption = ' Propri'#233't'#233's du p'#233'riph'#233'rique '
    TabOrder = 1
    object PropertiesStringGrid: TStringGrid
      Left = 8
      Top = 17
      Width = 289
      Height = 72
      ColCount = 2
      DefaultColWidth = 133
      DefaultRowHeight = 18
      FixedCols = 0
      RowCount = 1
      FixedRows = 0
      Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goRowSelect]
      ScrollBars = ssVertical
      TabOrder = 0
    end
  end
  object GroupBox2: TGroupBox
    Left = 8
    Top = 40
    Width = 305
    Height = 337
    Caption = ' Liste des p'#233'riph'#233'riques '
    TabOrder = 2
    object DevicesTreeView: TTreeView
      Left = 8
      Top = 16
      Width = 289
      Height = 313
      Images = ImageList1
      Indent = 19
      MultiSelectStyle = []
      ReadOnly = True
      TabOrder = 0
      OnAddition = DevicesTreeViewAddition
      OnChange = DevicesTreeViewChange
    end
  end
  object DescTreeView: TTreeView
    Left = 16
    Top = 401
    Width = 17
    Height = 72
    Indent = 19
    ReadOnly = True
    ShowLines = False
    ShowRoot = False
    TabOrder = 3
    ToolTips = False
    Visible = False
  end
  object ImageList1: TImageList
    Left = 24
    Top = 64
    Bitmap = {
      494C010117001800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000006000000001002000000000000060
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000F3F3F300D4D4D400ABABAB008787870075757500757575008888
      8800A6A6A600C8C8C800E9E9E900FCFCFC000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000C0C0C000FF000000FF000000C0C0C000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000F6F6F600C6C6C60092929200A1A1A100BABABA00B9B9B9009A9A9A007474
      74006464640073737300AAAAAA00E6E6E6000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000FF000000FF000000FF000000FF000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000FEFE
      FE00D6D6D600B2B2B200E0E0E000F5F5F5000000000000000000FEFEFE00F0F0
      F000C4C4C400707070006D6D6D00BDBDBD000000000000000000000000000000
      0000000000000000000000000000F6F6F600EEEEEE00F4F4F400FDFDFD000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000FF000000FF000000FF000000FF000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000F8F8
      F800B7B7B700E0E0E000E6E6E600EEEEEE00F9F9F900FEFEFE00000000000000
      000000000000C6C6C60062626200939393000000000000000000000000000000
      0000FDFDFD00F1F1F100D9D9D900ABABAB008A8A8A00A3A3A300D0D0D000EDED
      ED00FAFAFA000000000000000000000000000000000000000000000000000000
      00000000000000000000C0C0C000FF000000FF000000C0C0C000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000E3E3
      E300CFCFCF00E8E8E800E2E2E200E2E2E200E2E2E200E3E3E300E9E9E900F9F9
      F90000000000EDEDED0089898900818181000000000000000000FAFAFA00EDED
      ED00CFCFCF0093939300676767008E848400524D4D004A4A4A005D5D5D008989
      8900C0C0C000E5E5E500F6F6F600000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C9C9
      C900E8E8E800F2F2F200E6E6E600E7E7E700E5E5E500E3E3E300DEDEDE00E3E3
      E300FEFEFE00F6F6F600A1A1A1008B8B8B0000000000EBEBEB00C0C0C0008181
      8100757575008D8D8D00A5A5A500757070003F3C3C00494444005A5252004E4C
      4C005656560072727200A8A8A800DCDCDC000000000000000000000000000000
      0000000000000000000000000000FF000000FF00000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C2C2
      C200F4F4F400FEFEFE00EEEEEE00ECECEC00EBEBEB00E8E8E800E5E5E500DEDE
      DE00F5F5F500F5F5F50096969600ACACAC00F1F1F1008989890089898900C9C9
      C900A3A3A30080808000828282007D7C7C004E4E4E00717171007D7D7D00746E
      6E007465650056515100525252007B7B7B000000000000000000000000000000
      0000000000000000000000000000FF000000FF000000C0C0C000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C4C4
      C400F8F8F80000000000F9F9F900F1F1F100EFEFEF00ECECEC00E8E8E800E1E1
      E100F1F1F100E8E8E80088888800D2D2D200A6A6A600AEAEAE00989898008282
      8200A4A4A400B9B9B900D1D1D1008E8E8E00797979006C6C6C00818181006262
      620034343400B79898008A7777006B6B6B000000000000000000000000000000
      0000000000000000000000000000FF000000FF000000FF000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C5C5
      C500FCFCFC000000000000000000F9F9F900F2F2F200EFEFEF00EBEBEB00E4E4
      E400F0F0F000BBBBBB00A6A6A600ECECEC00A0A0A0009C9C9C00B5B5B500C7C7
      C700E1E1E100E6E6E600D0D0D000D8D8D800D1D1D100C3C3C3009A9999007D78
      78004643430093818100847676007D7D7D000000000000000000000000000000
      0000000000000000000000000000C0C0C000FF000000FF000000FF0000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C1C1
      C100DFDFDF00F5F5F5000000000000000000FBFEFE00F3F2F200EEEEEE00ECEC
      EC00DDDDDD0091919100D6D6D600FCFCFC00BABABA00D3D3D300DEDEDE00C7C7
      C700E1E1E100DFDFDF00F2F2F200FCFCFC00ECECEC00DFDFDF00F7F7F700EEEA
      EA00DECCCC008F8A8A008D898900E7E7E700000000000000000000000000C0C0
      C000FF000000FF000000C0C0C00000000000FF000000FF000000FF000000FF00
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000FDFDFD00F6F6F600C3C3
      C300EBEBEB00D9D9D900E7E8E800D6CACA00C9B3B300E4E6E600E1E1E100DADA
      DA00A5A5A500BBBBBB00F3F3F30000000000E3E3E300E0E0E000BBBBBB007979
      79006C6C6C00B8B8B800F2F2F200FCFCFC00ECECEC00DFDFDF00F7F7F700CACA
      CA00C1C1C100CBCBCB00F9F9F90000000000000000000000000000000000FF00
      0000FF000000FF000000FF00000000000000C0C0C000FF000000FF000000FF00
      0000FF0000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FCFCFC00E9E9E900C9C9C900AEAE
      AE00F7F7F70000000000F4F9F900BC868600AB6B6B00C8CDCD00D5D5D500BCBC
      BC00A7A7A700E8E8E800FEFEFE0000000000000000000000000000000000ECEC
      EC00DBDBDB00C8C8C800D5D5D500E6E6E600CDCDCD00D4D4D400D4D4D400FCFC
      FC0000000000000000000000000000000000000000000000000000000000FF00
      0000FF000000FF000000FF0000000000000000000000FF000000FF000000FF00
      0000FF0000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000F2F2F200B8B8B800989898009090
      9000BABABA00F0F0F000F9FBFB00C2A8A800D0BFBF0000000000D5D5D500AFAF
      AF00E6E6E600FCFCFC0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000FF00
      0000FF00000000000000000000000000000000000000FF000000FF000000FF00
      0000FF0000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D0D0D000B2B2B200B4B4B400B1B1
      B100999999008D8D8D00C3C3C300CACDCD00C0C1C100C2C2C200CECECE00F2F2
      F200FDFDFD000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000C0C0
      C000FF000000C0C0C0000000000000000000FF000000FF000000FF000000FF00
      0000C0C0C0000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000C5C5C500B7B7B700BFBFBF00BABA
      BA00BFBFBF00B8B8B800E0E0E000AFAFAF00DBDBDB00F9F9F900000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000C0C0C000FF000000FF000000FF000000FF000000FF000000FF000000C0C0
      C000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000F9F9F900C0C0C000D3D3D300ECEC
      EC00CBCBCB00CBCBCB00C6C6C600EBEBEB00FBFBFB0000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000FAF8
      F900D4C9CE00A68C9700815F6C0076515F0075505E007A5765009D838D00CDBF
      C400F5F2F3000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000080808000C0C0C000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000F0F0F000C1C1C1009393
      93008585850090909000A1A1A100B1B1B100B8B8B800A9A9A900969696009393
      9300A2A2A200C5C5C500EAEAEA00FCFCFC000000000000000000FDFCFD00CFBD
      C000B1989C00C4B0B100C9B4B400C7ADAD00BF9A9A00A881850087606B008D6E
      7A00C7B8BE00FAF8F90000000000000000000000000000000000000000000000
      00000000000000000000000000007F7F7F002020200000000000000000000000
      00000000000000000000000000000000000080808000C0C0C000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FBFBFB00BFBFBF009A9A9A00AFAD
      AD008D8A8C00747373006463620064605F00806869009B7C7C009F828200836E
      6E006459590074747400B1B1B100EAEAEA000000000000000000E9DDDE00D6CE
      CE00E2E2E200E0DFDF00DBD6D600D3BEBE00BFA0A000A16E6E00BD8F8F008D64
      6D00A9929B00F3EFF00000000000000000000000000000000000000000000000
      00000000000000000000BFBFBF00CFCFCF009090900020202000000000000000
      00000000000000000000000000000000000080808000C0C0C000C0C0C0000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EDEDED00A7A8A800D7D5D400FFFD
      F200E2F2D600F9F3E100EEC19D00C6877F00F7A9AB00FFC6C600FFD9D900FEEC
      EC00D6C4C4006655550073737300C3C3C3000000000000000000E1D4D400E9E9
      E900F2F2F200ECECEC00DFDEDE00D7C2C200BA8F8F00995B5B00B5838300B487
      8A00B6A2AA00F6F2F30000000000000000000000000000000000000000000000
      000000000000BFBFBF00CFCFCF00C0C0C000C0C0C00090909000202020000000
      0000000000000000000000000000000000000000000080808000000000000000
      000000000000000000000000000000000000C0C0C00000000000000000000000
      000000000000000000000000000000000000EBEBEB00B1B1B200D4CFCF00F0EB
      D30022AD26002AAA22009C9A6400FF9DA400FFA0A000FFADAC00FFBEBD00FFEA
      EA0000000000D6C4C40061575700989898000000000000000000EBDEDE00EEEE
      EE00EFE1E100F2F2F200E2E1E100D5B4B400A565650099515100B5818100B78F
      9300E4DCDF000000000000000000000000000000000000000000000000000000
      0000BFBFBF00CFCFCF00C0C0C000C0C0C000C0C0C000C0C0C000909090002020
      2000000000000000000000000000000000000000000000000000808080008080
      80008080800080808000808080008080800000000000C0C0C000000000000000
      000000000000000000000000000000000000EBEBEB00C0C0C000E8E2E100F1E5
      C90032C3430001A008009F9D7500FFB7BD00FFA1A000FFB1BA00FCBBD000FFF3
      F70000000000000000008972720079797900000000000000000000000000E5D4
      D400CF988F00DCB4B400D1A5A500C997970099464600994646009E696C00C2B0
      B600F6F3F400000000000000000000000000000000000000000000000000BFBF
      BF00CFCFCF00C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0009090
      9000202020000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000008080800000000000000000000000
      000000000000000000000000000000000000ECECEC00C4C4C500ECE4E200F3E1
      BE0054E66C001FB12D00C8AD9D00FFC9CC00FFC9CA00E6C7D100C7B0AF00F1E0
      E400F8F5F400F8F4F200C1A8A60072727200000000000000000000000000E6D4
      D500E6A46700FEB13800F6C27F00DEAEA500BB6E6E00A2464600825B6500A087
      9100D0C3C800FCFAFB0000000000000000000000000000000000BFBFBF00CFCF
      CF00C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000909090002020200000000000000000000000000000000000000000000000
      0000000000000000000000000000000000008080800080808000808080000000
      000000000000000000000000000000000000ECECEC00C7CACD00EEEAEA00F3DC
      B3005EE0B50037A6CA00C6A5B800FFCFCD00FFDDDE00E4D5DF00BAA39A00EDCB
      CC00FBCBCB00FACBCA00CFA6A6007D7D7D00000000000000000000000000DCC3
      C400E8A75F00FFB23300FFB53900FFB63B00F4BC7100E0A88900B77A7E008E5A
      650094768200EFEBEC00000000000000000000000000BFBFBF00CFCFCF00C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C000AFAFAF003F3F3F00000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000ECEDED00CDC7BD00F6DAB300F5D2
      AF0062ADF5003B96FB00A7A1C300FFF5F200FFFBFB00FFF3FF00F2BEDC00FDC1
      CB00FF9F9E00FFB3B300C28C8C00A1A1A100000000000000000000000000D7BB
      BC00EEAF5600FFBE4B00FFC15100FFC35400FFC15100FFBE4B00F9B74F00D889
      6B008A6A7700EFEBEC00000000000000000000000000DFDFBF00CFCFCF00C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000CFCFCF00DFDFDF0020202000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000080808000808080008080
      800000000000000000000000000000000000EDEEEF00D1A76C00F2AB5200FFD2
      A600F6C99B00DDC2A300CBA69E00EDE9EE0000000000FFF0F000FFCBD200FFB3
      B400FFA3A200FC9F9F009D7E7E00D2D2D2000000000000000000FCFAFB00CCAE
      AE00FFC35600FFC96200FFCD6900FFCE6B00FFCD6900FFCA6300FFC45700E395
      5C00987C8700F2EEF00000000000000000000000000000000000BFBFBF00CFCF
      CF00C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000CFCF
      CF00DFDFDF006060600000000000000000000000000000000000000000000000
      000000000000000000008080800000000000C0C0C000C0C0C000C0C0C000C0C0
      C00080808000000000000000000000000000EEEEEF00C7AA8900E3B78800FFC2
      7700FFB95F00FFC06900FCB66900D2A48700EBE4EA00FFF2F600FFDBDD00FFCE
      CE00FCB6B600B8818100C9C5C500F4F4F4000000000000000000E4DBDC00E3C7
      B300FFCE6A00FFD47800FFD98100FFDB8300FFD98100FFD57900FFCE6B00C886
      6700A38A9400F3EFF0000000000000000000000000000000000000000000BFBF
      BF00CFCFCF00C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000CFCFCF00DFDF
      DF00606060000000000000000000000000000000000000000000000000000000
      000000000000000000008080800000000000C0C0C000C0C0C000C0C0C000C0C0
      C00080808000000000000000000000000000EDEDED00BCBFC100D8D1C600FFC7
      7200FBCB8200FAC47900FCBF6900F7B05100D5995E00E2B69800E7BEAC00BE98
      9800A1818100C8C2C200F4F4F400000000000000000000000000DAD0D100E8CC
      A700FFD77C00FFDF8C00FFE59800FFE79C00FFE59800FFE08D00FFD77E00BF84
      7000B29EA600F6F3F40000000000000000000000000000000000000000000000
      0000BFBFBF00CFCFCF00C0C0C000C0C0C000C0C0C000CFCFCF00DFDFDF006060
      6000000000000000000000000000000000000000000000000000000000000000
      000000000000000000008080800000000000C0C0C000C0C0C000C0C0C000C0C0
      C00080808000000000000000000000000000EBEBEB00D4D4D500EDE5DF00E3D0
      C700E9E8F000ECE9E900E9E5E100E6E2D900E7D4B400E1B98100E0B171008579
      760099979700E3E3E300FDFDFD00000000000000000000000000D3CCCC00EBCE
      9A00FFDE8A00FFE89E00FFF0AE00FFF3B400FFF0AF00FFE9A000FFDF8C00A570
      7100BCA9B100F8F5F60000000000000000000000000000000000000000000000
      000000000000BFBFBF00CFCFCF00C0C0C000CFCFCF00DFDFDF00606060000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000008080800000000000C0C0C000C0C0C000C0C0C000C0C0
      C00080808000000000000000000000000000E2E2E200D9DCDF00D8C4B800B581
      7500B3838100BB8D8D00C59E9F00CBA7AA00D9CCD000EAF1F800E2E4E9008383
      83009D9D9D00E7E7E70000000000000000000000000000000000D2CFCF00B1A0
      8F00D0B99100E3D0A200F9F3BE00FFFDC900FFFAC200FFF0AD00FFE496009D6C
      7200C7B8BE00FAF8F90000000000000000000000000000000000000000000000
      00000000000000000000BFBFBF00DFDFDF00DFDFDF0060606000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000008080800000000000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C000808080000000000000000000D4D4D500F4F2EE00FCCD9300FDC5
      8B00F8C49D00F2BDA000ECB7A300E7B0A500ECC4C000FFEAEA00FEEEEE007F7E
      7E0099999900E2E2E200FEFEFE00000000000000000000000000D3D3D300D7D4
      D400CCC3C300D1C3C300C2ADAD00C0A7A100CBB39F00DCC29D00DEBA9000A37B
      8100D7CCD000FCFAFB0000000000000000000000000000000000000000000000
      00000000000000000000000000007F7F7F004040400000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000008080800000000000000000000000000000000000000000000000
      000000000000000000000000000000000000CFCDCC00F3CA9500FBC78F00FECC
      A100FFCEA900FFCEB100FFD0BB00FFD4C700CEB4B100ECDADB00FFFEFE00C8C8
      C800C4C4C400EFEFEF0000000000000000000000000000000000000000000000
      0000FAF9F900E7E4E400E3DBDC00E5DADA00DDC9CA00D6BBBB00C69F9F00E0D1
      D200FCFAFB000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF000080800000FFFF000080800000FFFF000080
      800000FFFF00008080000000000000000000FAFAFA00EBEBE900E8E5E100E1DD
      D900D8D4D100DDD3CF00DDCFCB00D3C4C400D2D0D000D9D9D900DDDDDD00DEDE
      DE00F1F1F100FCFCFC00000000000000000000000000969696005A5A5A006C6C
      6C0097979700CDCDCD00E4E4E400BEBEBE00A3A3A300CDCDCD00EBEBEB00F9F9
      F900FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FCFC
      FC00E0E0E000B3B3B3008E8E8E0087878700878787008B8B8B00ACACAC00DBDB
      DB00FAFAFA00000000000000000000000000000000000000000000000000FAF8
      F900D4C9CE00A68C9700815F6C0076515F0075505E007A5765009D838D00CDBF
      C400F5F2F3000000000000000000000000000000000000000000000000000000
      0000FAFAFA00F0F0F000F2F2F200000000000000000000000000000000000000
      000000000000000000000000000000000000B0B0B000837F7F008C7B7B005751
      51004A4A4A005A5A5A005D5D5D006F6262004A4A4A005C5C5C0081818100B8B8
      B800E4E4E40000000000FFFFFF00FFFFFF000000000000000000FCFCFC00CBCB
      CB0089747400A4919100AD9E9E00AB999900A28282007B6161005B5959007474
      7400BFBFBF00FAFAFA0000000000000000000000000000000000FDFCFD00CFBD
      C000B1989C00C4B0B100C9B4B400C7ADAD00BF9A9A00A881850087606B008D6E
      7A00C7B8BE00FAF8F900000000000000000000000000FDFDFD00F8F8F800EDED
      ED00C0C0C000919191009F9F9F00D5D5D500EAEAEA00F0F0F000F9F9F9000000
      00000000000000000000000000000000000088888800B3AEAE009D8D8D00D4B2
      B200E4B9B900917B7B00C5939300AE99A000B1949700997F7F005B5454005454
      540071717100A2A2A200DBDBDB00FFFFFF000000000000000000E5DCDC00CDBE
      BE00EFFAFA00E8EDED00E1DFDF00DCCCCC00DACECE00C9B3B300C09191006558
      580087878700ECECEC0000000000000000000000000000000000E9DDDE00D6CE
      CE00E2E2E200E0DFDF00DBD6D600D3BEBE00BFA0A000A16E6E00BD8F8F008D64
      6D00A9929B00F3EFF0000000000000000000FDFDFD00D6D6D600B7B7B7008687
      86007E858200555353004B4A4A005D5D5D00707070008E8E8E00BCBCBC00E1E1
      E100F0F0F000F9F9F90000000000000000008D8D8D00A8A4A400545353005F5D
      5D0073686800CC969600AE7474007B4B640068526F006483B600B587A400AA83
      83006E5E5E00515151007B7B7B00FFFFFF000000000000000000D0BABA000000
      000000000000F2FBFA00DEE4E400D8C7C700D8BEBE00CBAFAF00C99F9F00B588
      8800A1A1A100F3F3F30000000000000000000000000000000000E1D4D400E9E9
      E900F2F2F200ECECEC00DFDEDE00D7C2C200BA8F8F00995B5B00B5838300B487
      8A00B6A2AA00F6F2F3000000000000000000D7D7D7006D6D6D0048484A00C5CD
      CC00DAF4E900BAB0B5009E838A006F5D5F004C4D4D00484A4A00535353006666
      66008D8D8D00BCBCBC00E1E1E100F3F3F300919191009B9A9A00535353005353
      53007D727200E3999900A98181008B6C6C00855F5F00885C6900502D5D00905E
      5E00A3B69000A87B7B007A7A7A00FFFFFF000000000000000000E5D1D100FAFE
      FE00EAD0DB00E5E1F500DEEEF200D3B6B600D08C8D00CC838300C3959500B194
      9400E5E5E5000000000000000000000000000000000000000000EBDEDE00EEEE
      EE00EFE1E100F2F2F200E2E1E100D5B4B400A565650099515100B5818100B78F
      9300E4DCDF00000000000000000000000000BCBCBD00F7F5F500F0EDEB00F8F2
      EB00FAE6D600F2E9DB00CEB3A100C7A0A200D399A100DBB9BB00BEC1C1006B6C
      6C004A4A4A005353530068686800909090009E9E9E009C9C9C00686868005B5B
      5B0070696900E2C1C100FFD1D100FDCBCB00DBADAD00AC858500A67B7B009566
      66008E827000BA828200D5D5D500FFFFFF00000000000000000000000000D4CD
      D400C67A5E00E4AD7F00C7A6BF00BA7B9900C4525F00C85C5E009D808000C4C4
      C400F3F3F300000000000000000000000000000000000000000000000000E5D4
      D400CF988F00DCB4B400D1A5A500C997970099464600994646009E696C00C2B0
      B600F6F3F400000000000000000000000000C6C6C700D3CBC400E6D2B800FFF3
      E300FFF6D600FFFFEA00FFC97C00E19C4E00AE7C5000BA7B7B00C2B8B900979C
      9D0094959500B5B5B5005F5F5F004D4D4D00BCBCBC009B9B9B00676767005353
      530079747400C7B6B600FFE1E100FFD8D800FFD1D100FDCBCB00E9B9B900B394
      9400D0BDBD00E7E4E400FDFDFD00FFFFFF00000000000000000000000000CDD2
      E100E38D3A00FFAE0100FFB72D00EBB37000CD818400B04A6900555354007979
      7900A6A6A600E5E5E5000000000000000000000000000000000000000000E6D4
      D500E6A46700FEB13800F6C27F00DEAEA500BB6E6E00A2464600825B6500A087
      9100D0C3C800FCFAFB0000000000000000000000000000000000E1E1E100BFBF
      BE00A4A19D00C9BBAE00BF956B009B704E00A06C5B00B9878600757071003238
      3B00383B3E00A5A5A600E4E4E4004A4A4A00C2C2C2009A9A9A003BC96B004CBD
      72005C946F009B969600E4D8D800DECBCB00E1CECE00D2CACA00E0E0E000FDFD
      FD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000BFB3
      CE00F29F3100FFBF2800FFBE2E00FFC62500FFD43800FCC25900C88A6D009164
      6C0067646500B1B1B100F4F4F40000000000000000000000000000000000DCC3
      C400E8A75F00FFB23300FFB53900FFB63B00F4BC7100E0A88900B77A7E008E5A
      650094768200EFEBEC00000000000000000000000000ECECEC00979797005F5F
      60004E51520067696C0076696F0099818900C1B1B500C3C7C8005E686C006D4A
      2C007F5024005E646A00C1C2C2004B4B4B00C7C7C7009292920048E07B0040D8
      73004CBE73006B6A6A00ACACAC00F6F6F600FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000F9F9F900BFA3
      B400FFB92D00F3BD3200DCA83800D8A63800E9B63800FFD23C00FFD93300FAB0
      2900976F7A00BEBEBE00F9F9F90000000000000000000000000000000000D7BB
      BC00EEAF5600FFBE4B00FFC15100FFC35400FFC15100FFBE4B00F9B74F00D889
      6B008A6A7700EFEBEC000000000000000000FAFAFA0098999900AFAEAE00D3C6
      C600DEE0E000CCCDCD00BAB8B800CACFCF00D2D7D700D4D6D600909295004A40
      340052433100797C8000BCBCBC004B4B4B00CDCDCD00979797005DF58F0041D9
      73003CAD62006C6C6C00C0C0C000FAFAFA00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000E9EAEC00CDA6
      9C00E3B04500C4A69F00CCC1D000D6C8D300B2969400AC894C00EBCC4100F9B2
      3A0083717800D4D4D400FDFDFD00000000000000000000000000FCFAFB00CCAE
      AE00FFC35600FFC96200FFCD6900FFCE6B00FFCD6900FFCA6300FFC45700E395
      5C00987C8700F2EEF000000000000000000000000000D7DBDB00DBC7C700D9BB
      BB00B0B1B100CBCDCD00E4E4E400E0E0E000B2B2B200B8B9B900E0E0DF009497
      99007E818500D2D2D300AEAEAE0047474700D3D3D30095A8950053BA6C0050DE
      7A002EA04E005D5D5D00C4C4C400FAFAFA00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000D5D7DD00CEA5
      8400C7B0AF00A98DBD00CBA2A600D5B2C800CA9CB200C082A000A4827F00B780
      4E0071696C00D9D9D900FDFDFD00000000000000000000000000E4DBDC00E3C7
      B300FFCE6A00FFD47800FFD98100FFDB8300FFD98100FFD57900FFCE6B00C886
      6700A38A9400F3EFF00000000000000000000000000000000000000000000000
      0000D5D6D600EFF1F100FBFBFB00BABABA0088888800A6A6A6009D9D9D00BCBC
      BC00BCBCBC00828282008787870057575700AFAFAF00A2A2A200818181007777
      77008686860055555500C9C9C900FAFAFA00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000C9C8D500E6BB
      8200A999650081796C00B1998100CCAA9300AD988200B78B8600DFB98300E3A8
      6D006D646800DCDCDC00FDFDFD00000000000000000000000000DAD0D100E8CC
      A700FFD77C00FFDF8C00FFE59800FFE79C00FFE59800FFE08D00FFD77E00BF84
      7000B29EA600F6F3F40000000000000000000000000000000000000000000000
      000000000000BBBBBB00A1A0A000A5A5A500B8B8B800DADADA00E3E3E300A5A5
      A500828282006767670064646400C7C7C7009C9C9C0080808000717171008787
      87009898980092929200EAEAEA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FAFAFA00CBC7D700F8D3
      7200FFFB8D00CFC89B00D2D09A00FFFFB500FFFFB300FFFAA500FFFF8C00D598
      74007A747700EAEAEA0000000000000000000000000000000000D3CCCC00EBCE
      9A00FFDE8A00FFE89E00FFF0AE00FFF3B400FFF0AF00FFE9A000FFDF8C00A570
      7100BCA9B100F8F5F60000000000000000000000000000000000000000000000
      000000000000000000000000000000000000ECECEC00DADADA00B7B7B7009E9E
      9E008A8A8A00B5B5B500D4D4D400FCFCFC008989890041272700595252008888
      88009F9F9F00EAEAEA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000EAEBEB00D1CDD500A290
      7800CAB78500EEDDA100FFFDC600FFFFDF00FFFFDA00FFFFC000FFFF9900BE8F
      82007A7A7A00ECECEC0000000000000000000000000000000000D2CFCF00B1A0
      8F00D0B99100E3D0A200F9F3BE00FFFDC900FFFAC200FFF0AD00FFE496009D6C
      7200C7B8BE00FAF8F90000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000C1C1C1007D71710098989800EEEE
      EE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000F6F7F700D6D7D800BFBD
      C900AEA3B800A18C9C00A4848D00A9888800BD9E9700D9BF9D00F2DD9100B786
      7F008D8D8D00F1F1F10000000000000000000000000000000000D3D3D300D7D4
      D400CCC3C300D1C3C300C2ADAD00C0A7A100CBB39F00DCC29D00DEBA9000A37B
      8100D7CCD000FCFAFB0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000CACACA0085787800EEEEEE00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
      0000FAFAFA00F0F0F100DDDEDE00CCC3C600BEA6AF00B0899600B0818D00CAA5
      A700000000000000000000000000000000000000000000000000000000000000
      0000FAF9F900E7E4E400E3DBDC00E5DADA00DDC9CA00D6BBBB00C69F9F00E0D1
      D200FCFAFB000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000F1F1F100CCCCCC008C8C8C0087878700A8A8A8009494940084848400BABA
      BA00E5E5E500F7F7F70000000000000000000000000000000000000000000000
      0000FDFDFD00F1F1F100DBDBDB00B1B1B1008C8C8C00A3A3A300D0D0D000EDED
      ED00F9F9F9000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000F7F7F700EAEAEA00C3C3C300818181005151510077777700B2B2B200E4E4
      E400F4F4F4000000000000000000000000000000000000000000F9F9F900DFDF
      DF009595950061616100464646004444440056505000827B7B004F4F4F005656
      560074747400AFAFAF00E1E1E100000000000000000000000000FAFAFA00EDED
      ED00CFCFCF009393930054545400847D7D00524D4D004A4A4A005D5D5D008787
      8700BABABA00E4E4E400F4F4F400FDFDFD000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000F6F6F600E2E2
      E200B2B2B2007373730059595900988D8D007567670042424200545454007171
      7100A2A2A200D6D6D600F0F0F000FAFAFA0000000000F9F9F900BBBBBB006565
      6500A6A6A600F1F1F100B2B2B2009E8B8B00A6868600B6B3B300E5E5E500B5B5
      B50058585800515151007B7B7B00EAEAEA0000000000EAEAEA00C0C0C0008181
      8100757575008D8D8D00686868009F9999009D9B9B0090858500625A5A004D4B
      4B005454540071717100A0A0A000D6D6D6000000000000000000000000000000
      0000000000000000000000000000F6F6F600EEEEEE00F4F4F400FDFDFD000000
      00000000000000000000000000000000000000000000DEDEDE00A8A8A8006B6B
      6B008A8A8A00A8A8A80067676700B6ACAC0088787800B19D9D00978585005F56
      56004B4B4B00606060008F8F8F00C1C1C10000000000B8B8B8009B9B9B00EEEE
      EE00F1F1F100E8E8E800ACACAC0093939300606060006E6E6E008C8C8C00BCBC
      BC00E9E9E900B2B2B20072727200EDEDED00F0F0F0008D8D8D0088888800C9C9
      C900D5D5D500C9C9C9007B7B7B008C8B8B00A2A0A000C8C7C700D3D3D300A8A2
      A2008C848400625858004F4F4F008C8C8C000000000000000000000000000000
      0000FDFDFD00F1F1F100D9D9D900ABABAB008A8A8A00A3A3A300D0D0D000EDED
      ED00FAFAFA00000000000000000000000000E5E5E50086868600A8A8A800D0D0
      D000D2D2D200C5C5C50078787800928F8F0035333300121111000F0F0F007F72
      7200C6A5A50082717100555252007777770000000000CCCCCC00FAFAFA00F2F2
      F200D8D8D800959595007F7F7F0097979700B2B2B200A6A6A600949494008E8E
      8E0089898900656565007B7B7B00EEEEEE00A5A5A500BDBDBD00D2D2D200C5C5
      C500BABABA00BEBEBE00B4B4B4008F8F8F00878787007E78780090888800C3BD
      BD00DCDADA00D1D1D100726C6C007E7E7E000000000000000000FAFAFA00EDED
      ED00CFCFCF0093939300676767008E848400524D4D004A4A4A005D5D5D008989
      8900C0C0C000E5E5E500F6F6F60000000000A3A3A300C2C2C200CFCFCF00C2C2
      C200BABABA00C9C9C900CDCDCD008B8B8B008180800066656500262424007371
      710026232300D5B0B000937E7E006E6E6E0000000000B6B6B600D8D8D800A0A0
      A0009B9B9B00C9C9C900ABABAB008D8D8D0081818100838383009F9F9F00BFBF
      BF007BAA8A00585858007D7D7D00EEEEEE00B9B9B900C2C2C200BEBEBE00CECE
      CE00E5E5E500EAEAEA00E1E1E100C5C5C500C0C0C000C5C5C500979696008C86
      8600968888008A948800556659009595950000000000EBEBEB00C0C0C0008181
      8100757575008D8D8D00A5A5A500757070003F3C3C00494444005A5252004E4C
      4C005656560072727200A8A8A800DCDCDC00B7B7B700BEBEBE00C5C5C500D5D5
      D500E9E9E900C3BDBD00B4B4B400D4D4D400A6A6A6008686860077777700908C
      8C0089808000557F5F00747D71008C8C8C000000000077777700A6A6A600D9D9
      D900D8D8D800D8D8D800D8D8D800E0E0E000CFCFCF00BEBEBE009D9D9D008989
      8900688472005858580083838300EEEEEE00BEBEBE00E1E1E100F2F2F200F4F4
      F400DFDFDF00BEB6B600D2C6C600C6BEBE00A09F9F00BBBBBB00D6D6D600D0D0
      D000BBBBBB007C7A7A0087838300EBEBEB00F1F1F1008989890089898900C9C9
      C900A3A3A30080808000828282007D7C7C004E4E4E00717171007D7D7D00746E
      6E007465650056515100525252007B7B7B00C4C4C400E6E6E600F4F4F400F5F5
      F500F1F1F100EEA3A300A65A5A00C5C5C500BABABA00A9A9A900CACACA00A6A6
      A6008686860079787800A09E9E00F0F0F000000000009E9E9E00E1E1E100D8D8
      D800D2D2D200C9C9C900D5D5D500CECECE00C2C2C200C0C0C000CCCCCC00D4D4
      D400CCCCCC0071717100A6A6A600F4F4F400EDEDED00E1E1E100DFDFDF00CBCB
      CB00C5A9A900FFD7D700FFDFDF00FFE8E800FFF5F500CDCDCD00B5B5B500A0A0
      A000BCBCBC00D0D0D000FCFCFC0000000000A6A6A600AEAEAE00989898008282
      8200A4A4A400B9B9B900D1D1D1008E8E8E00797979006C6C6C00818181006262
      620034343400B79898008A7777006B6B6B00F6F6F600E2E2E200D4D4D400DDDD
      DD00EFEFEF00F0A9A900A65A5A00B6838300DCA9A900E1E1E1009D8A8A009266
      660063636300B5B5B500F9F9F9000000000000000000AFAFAF00D5D5D500C2C2
      C200AAAAAA00A5A5A500CFCFCF00F0F0F000EDEDED00EAEAEA00D9D9D900BFBF
      BF00BEBEBE0089898900E5E5E50000000000000000000000000000000000BEB2
      B200FFD1D100FFCECE00FFD7D700FFDFDF00FFFAFA0000000000ADADAD005454
      5400B5B5B500F7F7F7000000000000000000A0A0A0009C9C9C00B5B5B500C7C7
      C700E1E1E100E6E6E600D0D0D000D8D8D800D1D1D100C3C3C3009A9999007D78
      78004643430093818100847676007D7D7D000000000000000000000000000000
      0000E1E1E100EEAAAA00A65A5A00B6838300C7949400F8F8F800B49B9B00A65A
      5A004B4B4B00C4C4C400FAFAFA000000000000000000F6F6F600C7C7C700C9C9
      C900ECECEC00B2B2B200BABABA00AEAEAE00B6B6B600BDBDBD00BDBDBD00B3B3
      B300A8A8A800EAEAEA0000000000000000000000000000000000FAFAFA00CFBB
      BB00FFDADA00FFD3D400FFD9F300FFD8F700FFFAFF00FFF9F900FFE9E9005F5C
      5C0099999900F3F3F3000000000000000000BABABA00D3D3D300DEDEDE00C7C7
      C700E1E1E100DFDFDF00F2F2F200FCFCFC00ECECEC00DFDFDF00F7F7F700EEEA
      EA00DECCCC008F8A8A008D898900E7E7E7000000000000000000000000000000
      000000000000EDADAD00A65A5A00DBC2C200B59B9B00CCCCCC00BDA3A300A65A
      5A004B4B4B00C4C4C400FAFAFA0000000000000000000000000000000000C4BB
      BB00FFD4C500FFD2C700FBD7CE00EFDCD500E5E1DF00E7E7E70086868600C1C1
      C100F7F7F7000000000000000000000000000000000000000000D8D8D800F5D2
      D200FFDADA00FFE5E900C0AEB50072707200FFF4F900FFCCCC00FFCCCC007F72
      72008D8D8D00F0F0F0000000000000000000E3E3E300E0E0E000BBBBBB007979
      79006C6C6C00B8B8B800F2F2F200FCFCFC00ECECEC00DFDFDF00F7F7F700CACA
      CA00C1C1C100CBCBCB00F9F9F900000000000000000000000000000000000000
      000000000000EDB0B000B96161009C575700AD7B7B008B72720081676700A65A
      5A004B4B4B00C4C4C400FAFAFA0000000000000000000000000000000000D6C0
      B900FFDCB800FFDCB800FFDCB800FFD6B300FFD4AF007B636200BDBDBD00F9F9
      F900000000000000000000000000000000000000000000000000EDEDED00D9B3
      B300FFCCCC00FFE2E600CDC0CA008B7E7F00FFF0F500FFD2D200FFDADA008E83
      8300A5A5A500F4F4F4000000000000000000000000000000000000000000ECEC
      EC00DBDBDB00C8C8C800D5D5D500E6E6E600CDCDCD00D4D4D400D4D4D400FCFC
      FC00000000000000000000000000000000000000000000000000000000000000
      000000000000EDB3B300A65A5A00B0B0B000CCBFBF00BDA3A300B3818100B961
      61004B4B4B00C4C4C400FAFAFA0000000000000000000000000000000000CBAB
      A200FFE5CB00FFE5CB00FFE5CB00FFE5CB00F9DDC40074686800E4E4E4000000
      000000000000000000000000000000000000000000000000000000000000C5B5
      B500FFF5F50000000000FFE9FD00FFDAF700FFDEE300FFCFCF00FFD6D600827D
      7D00D0D0D000FDFDFD0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000EDB6B600A65A5A00BCBCBC009E9E9E00B6B6B600D8D8D800A65A
      5A004B4B4B00C4C4C400FAFAFA00000000000000000000000000EEEAEA00DFC3
      B700FFEDDC00FFEDDC00FFEDDC00FFEDDC00DBC2B60093939300F1F1F1000000
      000000000000000000000000000000000000000000000000000000000000C6C6
      C600F5F5F50000000000FFF3F300FFE3E300FFDADA00FFD2D200D9B5B500A4A4
      A400F4F4F4000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000F0BDBD00A65A5A00C6C6C600C6C6C600B9B9B900D4D4D400A65A
      5A0060606000CACACA00FAFAFA00000000000000000000000000CFBBB900FFF7
      EE00FFF7EE00FFF7EE00FFF7EE00FFF7EE00B1A29D00CFCFCF00FDFDFD000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000BDBDBD00ECECEC00FFF4F400FFEBEB00FFE3E300E2C5C500A8A5A500F1F1
      F100000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000F3E6E600E0D3D300F2F2F200D8D8D800F1F1F100DBDBDB00BC77
      7700BBBBBB00FAFAFA00000000000000000000000000FAF6F600D9C6C500F5F1
      F000E6D8D700E6D8D700E6D8D700EAE0DF00E0DADA00FDFDFD00000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000D0D0D000C5C2C200D5CECE00C1B9B900CECECE00FAFAFA000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EFB0B000EDB2B200F4DC
      DC00000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000FFE5E500F7BF
      BF00E49F9F000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080008080
      8000000000000000000000000000000000000000000000000000808080008080
      8000808080008080800080808000808080008080800080808000808080008080
      8000808080008080800000000000000000000000000000000000808080008080
      8000808080008080800080808000808080008080800080808000808080008080
      800080808000808080000000000000000000000000000000000000000000FCFC
      FC00ECECEC00D8D8D800D1D1D100D5D5D500E6E6E600D8A1A100E8AFAF00EECC
      CC00FBCBCB00E59F9F0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000C0C0C000C0C0
      C00000000000000000000000000000000000000000000000000080808000C0C0
      C000000000000000000000000000000000000000000000000000000000000000
      0000C0C0C000808080008080800000000000000000000000000080808000C0C0
      C000000000000000000000000000000000000000000000000000000000000000
      0000C0C0C0008080800080808000000000000000000000000000FCFCFC00E4E4
      E400AFAFAF0080808000717171007A7A7A009B9B9B00ECECEC00E4C3C300EEAF
      AF00EECCCC00FBC9C900E1A1A100000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000080808000C0C0
      C000808080008080800080808000808080008080800080808000808080008080
      8000C0C0C000808080008080800000000000000000000000000080808000C0C0
      C000808080008080800080808000808080008080800080808000808080008080
      8000C0C0C0008080800080808000000000000000000000000000EFEFEF008E8E
      8E00888888006D6D6D006D6D6D00616161005656560081818100ECECEC00F0C1
      C100E3989800FFFAFA00EDAAAA00000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000080808000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C000808080008080800000000000000000000000000080808000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C00080808000808080000000000000000000FEFEFE00ABABAB008888
      8800A0A0A000AAAAAA00AFAFAF00C2C2C200888888004D4D4D0084848400ECEC
      EC00D2AFAF00DF9F9F00FFD6D600E6ADAD000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000808080008080800080808000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000080
      0000C0C0C000808080008080800000000000808080008080800080808000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000080
      0000C0C0C000808080008080800000000000FEFEFE00EEEEEE00616161007A7A
      7A00ABABAB00C7C7C700C9C9C900AFAFAF00BFBFBF00888888005C5C5C00A7A7
      A700ECECEC00E5A3A300FFE9E900EAA8A8000000000080808000808080008080
      8000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000080808000C0C0C000808080000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000080808000808080000000000080808000C0C0C000808080000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000808080008080800000000000F4F4F400ABABAB00545454006A67
      670053454500534545009D989800CCCCCC00ACACAC009C9C9C004A4A4A008080
      8000D8D8D800D7A8A80000000000F6C6C6000000000080808000808080008080
      8000808080000000000000000000000000000000000000000000000000000000
      00000000000080808000000000000000000080808000C0C0C000C0C0C0008080
      8000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C000C0C0C000808080000000000080808000C0C0C000C0C0C0008080
      8000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000C0C0C000C0C0C0008080800000000000CDC4C400674C4C00525252005345
      4500857272009A7979005E5E5E00B7B7B700C6C6C600B6B6B600888888007171
      7100D1D1D1000000000000000000000000000000000080808000808080008080
      8000808080008080800080808000808080008080800080808000808080008080
      80008080800080808000000000000000000080808000C0C0C000C0C0C0008080
      8000808080008080800080808000808080008080800080808000808080008080
      80008080800080808000808080000000000080808000C0C0C000C0C0C0008080
      8000808080008080800080808000808080008080800080808000808080008080
      80008080800080808000808080000000000097757500977A7A00464646007171
      71008A8A8A00787878008E75750054545400C7C7C700ACACAC006D6D6D007171
      7100D1D1D10000000000000000000000000000000000C0C0C000C0C0C000C0C0
      C000C0C0C0000000000000000000000000000000000000000000000000000000
      000000000000C0C0C000000000000000000080808000C0C0C000C0C0C000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00000800000C0C0C0008080
      80008080800000000000000000000000000080808000C0C0C000C0C0C000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00000800000C0C0C0008080
      800080808000000000000000000000000000A4838300D0BABA003C3C3C008383
      8300C7C7C7009A9A9A007573730054545400B0B0B000A5A5A5006D6D6D007A7A
      7A00D5D5D50000000000000000000000000000000000C0C0C000C0C0C000C0C0
      C000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000008080800000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000808080000000000000000000000000008080800000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      800080808000000000000000000000000000A4878700F9F7F7004B4B4B004F4F
      4F0000000000C7C7C700737373006B6A6A0096969600949494006D6D6D009898
      9800E4E4E4000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000080808000C0C0C000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C000808080000000000000000000000000000000000080808000C0C0C000C0C0
      C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0
      C00080808000000000000000000000000000CDBDBD00A7919100C9C9C9003939
      39004E4E4E006C6C6C00545454006C6C6C007F7F7F00878787006B6B6B00C3C3
      C300F6F6F6000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080008080
      8000808080008080800080808000808080008080800080808000808080008080
      8000808080000000000000000000000000000000000000000000808080008080
      8000808080008080800080808000808080008080800080808000808080008080
      80008080800000000000000000000000000000000000A98B8B00896C6C005448
      48003939390048484800535353005D5D5D00616161006D6D6D00A2A2A200E9E9
      E900000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000808080008080800000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000097979700363636003F3F3F004D4D4D005959590099999900EBEBEB00FCFC
      FC00000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000C0C0C000C0C0C00000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000F2F2F200CACACA00C6C6C600EAEAEA00FCFCFC00000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000FCFC
      FC00E0E0E000B3B3B3008E8E8E0087878700878787008B8B8B00ACACAC00DBDB
      DB00FAFAFA000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000080FF00006BD700000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000FCFCFC00CBCB
      CB0089747400A4919100AD9E9E00AB999900A28282007B6161005B5959007474
      7400BFBFBF00FAFAFA0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000080FF00006BD700006BD7000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000E5DCDC00CDBE
      BE00EFFAFA00E8EDED00E1DFDF00DCCCCC00DACECE00C9B3B300C09191006558
      580087878700ECECEC0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000FBFBFB00EBEBEB00DBDBDB00D6D6D600DBDBDB00EBEBEB00FBFBFB000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000080FF000080FF00006BD700006BD70000000000000000000000
      0000000000000000000000000000000000000000000000000000D0BABA000000
      000000000000F2FBFA00DEE4E400D8C7C700D8BEBE00CBAFAF00C99F9F00B588
      8800A1A1A100F3F3F30000000000000000000000000000000000000000000000
      000000000000000000000000000040BFBF0000BFBF0000BFBF0000BFBF0000BF
      BF00004040000000000000000000000000000000000000000000F5F5F500DEDE
      DE00CBCBCB00A0A0A000777777006B6B6B0077777700A0A0A000CBCBCB00DEDE
      DE00F5F5F5000000000000000000000000000000000000000000000000000000
      0000000000000080FF004080FF000080FF00006BD700006BD700000000000000
      0000000000000000000000000000000000000000000000000000E5D1D100FAFE
      FE00EAD0DB00E5E1F500DEEEF200D3B6B600D08C8D00CC838300C3959500B194
      9400E5E5E5000000000000000000000000004040400040404000404040004040
      4000404040004040400040404000609F9F00409F9F00409F9F00409F9F00409F
      9F0040606000404040002020200000000000FEFEFE00F0F0F000C2C2C2008181
      8100877C7C00A8929200A8929200A8929200786C6C0056565600666666008181
      8100C0C0C000E9E9E900FBFBFB00000000000000000000000000000000000000
      0000000000000080FF004080FF004080FF000080FF00006BD700006BD7000000
      000000000000000000000000000000000000000000000000000000000000D4CD
      D400C67A5E00E4AD7F00C7A6BF00BA7B9900C4525F00C85C5E009D808000C4C4
      C400F3F3F300000000000000000000000000BFBFBF0000800000004000003050
      300000600000305030000060000060A060000080000000602000008000000060
      200000602000008000000040000000000000F3F3F300B7B6B600A8929200A892
      9200FFD9D9000000000000000000FFD9D900FEC4C400A8929200A89292004F4C
      4C006C6C6C009F9F9F00CBCBCB00DFDFDF000000000000000000000000000000
      0000000000000080FF004080FF004080FF004080FF000080FF00006BD700006B
      D70000000000000000000000000000000000000000000000000000000000CDD2
      E100E38D3A00FFAE0100FFB72D00EBB37000CD818400B04A6900555354007979
      7900A6A6A600E5E5E5000000000000000000BFBFBF0000800000BFBFBF005050
      50006FAF6F00A0A0A0000040000060A060000080000050505000202020003070
      300040404000004000000040000030303000D0CFCF00A8929200F1CCC900DBB9
      B800F5E3E300B3878800F5E3E300FBA7A700FEC4C400FFD9D900FBA7A700A892
      9200786C6C0056565600676767008C8C8C000000000000000000000000000000
      0000000000000080FF004080FF004080FF004080FF004080FF000080FF000080
      FF00006BD700000000000000000000000000000000000000000000000000BFB3
      CE00F29F3100FFBF2800FFBE2E00FFC62500FFD43800FCC25900C88A6D009164
      6C0067646500B1B1B100F4F4F40000000000BFBFBF0000800000004000000040
      000000600000004000000060000090B0900060A0600030AF300030AF300060A0
      600030AF3000309030000040000060606000A8929200EBCED400A488A1000000
      0000C3A7A90000000000C2A1A10000000000B3878800F5E3E300CE8A8B00FFD9
      D900FBA7A700A8929200A89292007A7A7A000000000000000000000000000000
      0000000000000080FF004080FF004080FF004080FF00719FFF00AEC9FF000080
      FF00000000000000000000000000000000000000000000000000F9F9F900BFA3
      B400FFB92D00F3BD3200DCA83800D8A63800E9B63800FFD23C00FFD93300FAB0
      2900976F7A00BEBEBE00F9F9F90000000000BFBFBF0000603F00BFBFBF005050
      50006FAF6F00A0A0A0000040000060A060000080000000800000004000000040
      00000060000060A060000040000060606000D8D8D800FBA7A700F5E3E300FBA7
      A700F5E3E300C69E910000000000AB84840000000000B49B9900F5E3E300B387
      8800FFB1B100FFB1B100A8929200ADADAD000000000000000000000000000000
      0000000000000080FF004080FF004080FF00719FFF00AEC9FF000080FF000000
      0000000000000000000000000000000000000000000000000000E9EAEC00CDA6
      9C00E3B04500C4A69F00CCC1D000D6C8D300B2969400AC894C00EBCC4100F9B2
      3A0083717800D4D4D400FDFDFD0000000000BFBFBF0000603F00004000000040
      000000600000004000000060000090B0900090B0900000800000A0A0A0008080
      80000040000090B090003050300060606000F2F2F200BCBCBC00B3B2B000BBB6
      B400AFA09900BAA4A300C8ADAD00FFC6C600FBA7A700FEC4C400B3878800FBA7
      A700FFB1B100AB7D7D00B9A2A200E8E8E8000000000000000000000000000000
      0000000000000080FF004080FF00719FFF00AEC9FF000080FF00000000000000
      0000000000000000000000000000000000000000000000000000D5D7DD00CEA5
      8400C7B0AF00A98DBD00CBA2A600D5B2C800CA9CB200C082A000A4827F00B780
      4E0071696C00D9D9D900FDFDFD0000000000BFBFBF0000800000BFBFBF005050
      50006FAF6F00A0A0A0000040000060A0600060A0600000800000BFBFBF00A0A0
      A0000040000090B09000305030005F5F5F00EBEBEB00BFBFBF00C2C2C200CACA
      CA00BEBEBE00DDCBCB00D7BABA00D7BABA00CFC9C900D1C7C800D3C6C700D0C1
      C100D1C0C000E1D9D900F7F7F700FEFEFE000000000000000000000000000000
      0000000000000080FF00719FFF00AEC9FF000080FF0000000000000000000000
      0000000000000000000000000000000000000000000000000000C9C8D500E6BB
      8200A999650081796C00B1998100CCAA9300AD988200B78B8600DFB98300E3A8
      6D006D646800DCDCDC00FDFDFD0000000000BFBFBF0000603F0060A060000080
      00000080000060A060000080000060A0600060BF6000009F000060BF60000080
      00000080000060A060000040000000000000C9B3B300AB939300B8A0A000CCAB
      AB00CDB0B000CEBCBC00EDEBEB00FBFBFB000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000080FF00AEC9FF000080FF000000000000000000000000000000
      00000000000000000000000000000000000000000000FAFAFA00CBC7D700F8D3
      7200FFFB8D00CFC89B00D2D09A00FFFFB500FFFFB300FFFAA500FFFF8C00D598
      74007A747700EAEAEA0000000000000000009F9F9F00A0A0A000A0A0A000A0A0
      A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0
      A000A0A0A000A0A0A0005050500000000000E5BFBF00C6C6C600BABABA00CBCB
      CB00F1F1F1000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000080FF000080FF00000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EAEBEB00D1CDD500A290
      7800CAB78500EEDDA100FFFDC600FFFFDF00FFFFDA00FFFFC000FFFF9900BE8F
      82007A7A7A00ECECEC0000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000E9DBDB00DEC2C200D6B2B200ECEC
      EC00FBFBFB000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000F6F7F700D6D7D800BFBD
      C900AEA3B800A18C9C00A4848D00A9888800BD9E9700D9BF9D00F2DD9100B786
      7F008D8D8D00F1F1F10000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000FAFAFA00F0F0F100DDDEDE00CCC3C600BEA6AF00B0899600B0818D00CAA5
      A700000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000600000000100010000000000000300000000000000000000
      000000000000000000000000FFFFFF00F800FFFFFC3F0000F000FFFFFC3F0000
      E0C0FE1FFC3F0000E038F007FC3F0000E008C001FFFF0000E0008000FE7F0000
      E0000000FE3F0000E4000000FE3F0000E6000000FE1F0000E3000000E10F0000
      80010001E10700000401E00FE18700000043FFFFE78700000007FFFFE3070000
      003FFFFFF00F0000007FFFFFFFFF0000E007FE7F1FFF8000C003FC3F1FFF0000
      C003F81F007F0000C003F00FBF3F0008C007E007C09F000CE007C003FF5F0000
      E0038001FF0F0000E0030000FF0F0000E0038001FE870080C003C003FD030000
      C003E007FD030001C003F00FFD030001C003F81FFD030003C003FC3FFA010001
      C003FE7FFBFD0003F007FFFFFC0300038000E007E007F1FF0004C003C003801F
      0000C003C00300030000D803C00300000000C007C00700000000E007E0070000
      0000E003E003C0000000E001E00380000000C001E00300000000C001C0038000
      0000C001C003F0000000C001C003F80000008003C003FF0000008003C003FFFF
      00008003C003FFFF0000F00FF007FFFFF003F007FFFFF007C001C000FFFFC000
      80008000FE1F800080000000F007000080000000C00100008000000080000000
      800000000000000080000001000000018001E0430000F0018003C0030000F801
      E007C0030001F801E00FC003E00FF801E01FE403FFFFF801C01FE407FFFFF801
      C01FF00FFFFFF803803FF81FFFFFFFFFFFFFFFFFFF8FFF87E003E003FFC7FF07
      C001C001E003FE07CFF0CFF0C001FC87C000C000C001FDFFC000C00080008DF7
      00000000000001F31FF81FF80002000100000000000700000001000100070001
      00030003000707F37FE37FE3080787F7800380030007F27FC007C007800FF83F
      FFFFFFFFF00FFC3FFFFFFFFFF83FFE7FFFFFE007FFFFFFFFF9FFC003FFFFFFFF
      F8FFC003FE07F01FF87FD803FE07C007F83FC00700010001F81FE00700010600
      F80FE00300000000F807E00100001500F80FC00100000280F81FC00100000000
      F83FC00100000000F87FC001000100FFF8FF8003000107FFF9FF8003FFFF07FF
      FFFF8003FFFFFFFFFFFFF00FFFFFFFFF00000000000000000000000000000000
      000000000000}
  end
end

Code is OK with D7 on XP Pro.

Hope this can help.
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now