Marco's Web Center

Menu for Development

Site Menu
Object Pascal Handbook
Delphi Handbooks Collection
Mastering Borland Delphi 2005
(Old) White Papers
(Old)Tools
(Old) Conferences

My Other Sites
Italian Site (www.marcocantu.it)
the delphi search

Spirit of delphi

Advertising
Home My Blog Books Object Pascal Marco

Home: Code Repository: Mastering Delphi 6

Chapter 08 - Project Actions

Project Structure

Actions.dpr
program Actions;

uses
  Forms,
  ActionsF in 'ActionsF.pas' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
ActionsF.pas
unit ActionsF;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdActns, ActnList, ExtCtrls, StdCtrls, Menus, ImgList, Buttons,
  ComCtrls, ToolWin;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ActionList1: TActionList;
    ActionCopy: TEditCopy;
    ActionCut: TEditCut;
    ActionPaste: TEditPaste;
    ActionNew: TAction;
    ActionExit: TAction;
    NoAction: TAction;
    ActionCount: TAction;
    ActionBold: TAction;
    MainMenu1: TMainMenu;
    Edit1: TMenuItem;
    Paste2: TMenuItem;
    Copy2: TMenuItem;
    Cut2: TMenuItem;
    File1: TMenuItem;
    New1: TMenuItem;
    Close1: TMenuItem;
    Test1: TMenuItem;
    N1: TMenuItem;
    Bold1: TMenuItem;
    NoAction1: TMenuItem;
    CharCount1: TMenuItem;
    ImageList1: TImageList;
    ActionEnable: TAction;
    EnableNoAction1: TMenuItem;
    ActionSender: TAction;
    TestSender: TMenuItem;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton2: TToolButton;
    procedure ActionNewExecute(Sender: TObject);
    procedure ActionExitExecute(Sender: TObject);
    procedure ActionBoldExecute(Sender: TObject);
    procedure ActionCountUpdate(Sender: TObject);
    procedure ActionCountExecute(Sender: TObject);
    procedure ActionEnableExecute(Sender: TObject);
    procedure ActionSenderExecute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ActionNewExecute(Sender: TObject);
begin
  Memo1.Lines.Clear;
end;

procedure TForm1.ActionExitExecute(Sender: TObject);
begin
  Close;
end;

procedure TForm1.ActionBoldExecute(Sender: TObject);
begin
  with Memo1.Font do
    if fsBold in Style then
      Style := Style - [fsBold]
    else
      Style := Style + [fsBold];
  // toggle status
  ActionBold.Checked := not ActionBold.Checked;
end;

procedure TForm1.ActionCountUpdate(Sender: TObject);
begin
  ActionCount.Enabled := Memo1.Empty Text <> '';
end;

procedure TForm1.ActionCountExecute(Sender: TObject);
begin
  ShowMessage ('Characters: ' + IntToStr (
    Length (Memo1.Text)));
end;

procedure TForm1.ActionEnableExecute(Sender: TObject);
begin
  NoAction.DisableIfNoHandler := False;
  NoAction.Enabled := True;
  ActionEnable.Enabled := False;
end;

procedure TForm1.ActionSenderExecute(Sender: TObject);
begin
  Memo1.Lines.Add (
    'Sender class: ' + Sender.ClassName);
  Memo1.Lines.Add (
    'Sender name: ' + (Sender as TComponent).Name);
  Memo1.Lines.Add (
    'Category: ' + (Sender as TAction).Category);
  Memo1.Lines.Add (
    'Action list name: ' + (Sender as TAction).ActionList.Name );
end;

end.
ActionsF.dfm
object Form1: TForm1
  Left = 226
  Top = 132
  Width = 519
  Height = 417
  Caption = 'Actions'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  Menu = MainMenu1
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 0
    Top = 23
    Width = 511
    Height = 348
    Align = alClient
    TabOrder = 0
  end
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 511
    Height = 23
    ButtonWidth = 29
    Caption = 'ToolBar1'
    EdgeOuter = esNone
    Flat = True
    Images = ImageList1
    ParentShowHint = False
    ShowHint = True
    TabOrder = 1
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      HelpType = htKeyword
      Action = ActionNew
    end
    object ToolButton6: TToolButton
      Left = 29
      Top = 0
      Width = 12
      HelpType = htKeyword
      Caption = 'ToolButton6'
      ImageIndex = 4
      Style = tbsSeparator
    end
    object ToolButton3: TToolButton
      Left = 41
      Top = 0
      HelpType = htKeyword
      Action = ActionCut
    end
    object ToolButton5: TToolButton
      Left = 70
      Top = 0
      HelpType = htKeyword
      Action = ActionPaste
    end
    object ToolButton4: TToolButton
      Left = 99
      Top = 0
      HelpType = htKeyword
      Action = ActionCopy
    end
    object ToolButton2: TToolButton
      Left = 128
      Top = 0
      Width = 8
      HelpType = htKeyword
      Caption = 'ToolButton2'
      ImageIndex = 6
      Style = tbsSeparator
    end
    object ToolButton7: TToolButton
      Left = 136
      Top = 0
      HelpType = htKeyword
      Action = ActionBold
    end
    object ToolButton8: TToolButton
      Left = 165
      Top = 0
      HelpType = htKeyword
      Action = ActionCount
    end
    object ToolButton10: TToolButton
      Left = 194
      Top = 0
      Width = 8
      HelpType = htKeyword
      Caption = 'ToolButton10'
      ImageIndex = 6
      Style = tbsSeparator
    end
    object ToolButton9: TToolButton
      Left = 202
      Top = 0
      HelpType = htKeyword
      Action = ActionExit
    end
  end
  object ActionList1: TActionList
    Images = ImageList1
    Left = 96
    Top = 152
    object ActionCopy: TEditCopy
      Category = 'Edit'
      Caption = '&Copy'
      Hint = 'Copy'
      ImageIndex = 1
      ShortCut = 16451
    end
    object ActionCut: TEditCut
      Category = 'Edit'
      Caption = 'Cu&t'
      Hint = 'Cut'
      ImageIndex = 0
      ShortCut = 16472
    end
    object ActionPaste: TEditPaste
      Category = 'Edit'
      Caption = '&Paste'
      Hint = 'Paste'
      ImageIndex = 2
      ShortCut = 16470
    end
    object ActionNew: TAction
      Category = 'File'
      Caption = '&New'
      Hint = 'New'
      ImageIndex = 3
      ShortCut = 113
      OnExecute = ActionNewExecute
    end
    object ActionExit: TAction
      Category = 'File'
      Caption = 'E&xit'
      Hint = 'Exit'
      ImageIndex = 5
      ShortCut = 32883
      OnExecute = ActionExitExecute
    end
    object NoAction: TAction
      Category = 'Test'
      Caption = '&No Action'
      Hint = 'No Action'
    end
    object ActionCount: TAction
      Category = 'Test'
      Caption = '&Count Chars'
      Hint = 'Count Characters'
      ImageIndex = 6
      OnExecute = ActionCountExecute
      OnUpdate = ActionCountUpdate
    end
    object ActionBold: TAction
      Category = 'Edit'
      Caption = '&Bold'
      Hint = 'Bold'
      ImageIndex = 4
      ShortCut = 16450
      OnExecute = ActionBoldExecute
    end
    object ActionEnable: TAction
      Category = 'Test'
      Caption = '&Enable NoAction'
      Hint = 'Enable No Action'
      OnExecute = ActionEnableExecute
    end
    object ActionSender: TAction
      Category = 'Test'
      Caption = 'Test &Sender'
      Hint = 'Test Sender'
      OnExecute = ActionSenderExecute
    end
  end
  object MainMenu1: TMainMenu
    Images = ImageList1
    Left = 64
    Top = 104
    object File1: TMenuItem
      Caption = '&File'
      object New1: TMenuItem
        Action = ActionNew
      end
      object Close1: TMenuItem
        Action = ActionExit
      end
    end
    object Edit1: TMenuItem
      Caption = '&Edit'
      object Cut2: TMenuItem
        Action = ActionCut
      end
      object Copy2: TMenuItem
        Action = ActionCopy
      end
      object Paste2: TMenuItem
        Action = ActionPaste
      end
      object N1: TMenuItem
        Caption = '-'
      end
      object Bold1: TMenuItem
        Action = ActionBold
      end
    end
    object Test1: TMenuItem
      Caption = 'Test'
      object NoAction1: TMenuItem
        Action = NoAction
      end
      object CharCount1: TMenuItem
        Action = ActionCount
      end
      object EnableNoAction1: TMenuItem
        Action = ActionEnable
      end
      object TestSender: TMenuItem
        Action = ActionSender
      end
    end
  end
  object ImageList1: TImageList
    Left = 152
    Top = 128
    Bitmap = {
      494C010107000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000003000000001001000000000000018
      000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7F0000E07FEF3DFF7FFF7FFF7FFF7FFF7FE07F0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3D00000000
      000000000000000000000000EF3DFF7F00000000000000000000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F1F0000000000FF7FFF7FFF7FFF7FFF7F0000EF3D
      EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F1F0000001F001F000000FF7FFF7FFF7F0000EF3DEF3D
      00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000
      0000000000000000000000000000EF3DEF3D00000000EF3D0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3DEF3DE07F0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07F
      E07FE07FE07FE07FE07FE07F0000FF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      EF3DEF3DEF3DEF3DE07FE07F0000FF7F0000FF7F0000FF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F1F000000FF7FFF7F1F000000FF7F0000EF3DEF3DFF7F
      FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F1F001F0000000000000000000000FF7FEF3DEF3DEF3D
      EF3DEF3DEF3DEF3D0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3DE07FE07F0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000
      0000FF7F000000000000FF7F000000000000007C00000000EF3DFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FE07FE07FE07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000E07FE07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F0000FF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7F0000E07FE07FE07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F000000000000007CFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F1F001F001F001F001F0000000000000000000000
      00000000000000000000FF7FFF7FFF7FFF7F007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000FF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F007C007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FE07FE07F0000FF7FFF7FFF7FFF7F0000FF7F0000
      000000000000FF7F0000FF7F0000007C007C007C007C007CFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F000000000000
      00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F0000FF7F007CFF7FFF7FFF7FFF7F0000FF7FFF7F
      0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F0000007C007C007C007C007CFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F1F0000001F000000FF7F0000FF7F0000
      0000FF7F0000FF7F0000FF7FFF7FFF7FFF7F007C007C007C007CFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7F1F000000FF7F1F000000FF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7F007C007C007C007C007C007C007CFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000
      0000FF7F00000000000000000000FF7F007C007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000
      E07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F007C007C007CFF7FFF7FFF7FFF7F00000000FF7F
      E07FE07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FEF3D
      FF7FFF7FFF7FFF7FFF7FE07F0000FF7F007C007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7F1F000000FF7F1F000000FF7F0000FF7F0000
      FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7F1F00000000000000FF7FFF7F0000FF7FFF7F
      FF7F0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7F
      FF7FFF7F0000FF7FFF7F0000FF7FFF7F007C007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000
      F75EFF7F0000FF7F0000FF7FFF7FEF3D007C007C007CFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FE07F000000000000000000000000FF7FFF7F
      FF7FE07FE07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3D0000
      0000EF3DEF3D00000000EF3D0000FF7F007C0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D0000000000000000
      00000000000000000000EF3D0000000000001F001F00FF7FFF7F0000FF7F0000
      FF7F0000FF7FFF7F0000FF7FFF7FFF7FFF7F0000000000000000000000000000
      000000000000000000000000000000000000000000000000003CE07FE07FE07F
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E0000000000000000007CFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FE07FE07FFF7F0000000000000000000000000000
      000000000000000000000000000000000000000000000000003C003CE07FE07F
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E0000F75E0000
      F75E007C007C007CF75E0000000000000000FF7FFF7FFF7FFF7F0000E07FE07F
      EF3D00000000EF3DE07FE07F007C007C007C0000000000000000000000000000
      000000000000000000000000000000000000000000000000003C003C003CE07F
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E0000000000000000FF7FFF7FFF7FFF7F000000000000
      000000000000FF7FFF7FFF7FFF7FFF7FFF7FEF3D0000000000000000EF3D0000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E0000F75E0000
      F75E0000F75E0000F75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000EF3D00000000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E0000F75E0000
      F75E0000F75E0000F75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3D00000000EF3D00000000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E0000F75E0000
      F75E0000F75E0000F75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3D000000000000
      000000000000000000000000000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000
      000000000000000000000000000000000000000000000000003C003C003CE07F
      0000E07FE07FE07FE07F0000000000000000000000000000F75E000000000000
      0000000000000000F75E0000000000000000CB22FC453020457BB4074B634B08
      7F29302920002000600001081000B6286000000000000000007CEF3D00000000
      0000000000000000EF3D007C000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E000000000000
      FF030000FF030000F75E0000000000000000FF7FFF7F0000807FFF7FFF7FFF7F
      FF7F0000807FFF7FFF7FFF7FFF7F0000807F000000000000007C007C007C0000
      000000000000007C007C007C000000000000000000000000003C003C003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75E000000000000
      0000000000000000F75E00000000000000000000807FFF7FFF7FFF7FFF7F0000
      807FFF7FFF7FFF7FFF7F0000807FFF7FFF7F000000000000007C007C00000000
      0000000000000000007C007C000000000000000000000000003CFF03003C0000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E00000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000007C0000007CEF3D
      00000000EF3D007C0000007C000000000000000000000000003CFF03FF030000
      E07FE07FE07FE07FE07F0000000000000000000000000000F75EF75EF75EF75E
      F75EF75EF75EF75EF75E00000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000007C
      007C007C007C0000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D0000000000000000
      00000000000000000000EF3D0000000000002F36A5212F37B430293725398E23
      253AFF7F000000000000FF7FFF7FFF7F00000000000000000000000000000000
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      E07FEF3DFF7FFF7FFF7FFF7FFF7FE07F00000000000000000000000000000000
      0000E07F000000000000000000000000E07F0000000000000000000000000000
      FF7F0000000000000000FF7F0000FF7F00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      E07FEF3DFF7FFF7FFF7FFF7FFF7FE07F00000000E07FE07F0000EF3DEF3DEF3D
      E07FE07FEF3DEF3DEF3DEF3DE07FE07F00000000000000000000000000000000
      FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000
      0000000000000000EF3DEF3D0000000000000000000000000000000000000000
      E07FEF3DFF7FFF7FFF7FFF7FFF7FE07F000000000000E07F0000000000000000
      000000000000000000000000E07F00000000EF3D000000000000000000000000
      00000000EF3DFF7F0000000000000000000000001F0000000000000000000000
      000000000000EF3DEF3D00000000000000000000000000000000000000000000
      E07FEF3DFF7FFF7FFF7FFF7FFF7FE07F00000000000000000000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000EF3D000000000000E07FE07FE07FE07FE07FE07F
      E07FE07F0000FF7F0000FF7FFF7F000000001F0000001F001F00000000000000
      00000000EF3DEF3D000000000000000000000000000000000000000000000000
      000000000000EF3DEF3D00000000EF3D00000000000000000000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000EF3D000000000000E07FEF3DEF3DEF3DEF3DEF3D
      E07FE07F0000FF7F0000FF7F0000000000001F000000000000001F0000000000
      0000EF3DEF3DFF7FFF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7F000000000000EF3DEF3DE07F00000000000000000000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000EF3D000000000000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F0000FF7F000000000000000000001F001F0000000000000000000000
      FF7FEF3DEF3DEF3DEF3DEF3DEF3DEF3D00000000FF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7F000000000000EF3DE07FE07F00000000000000000000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000EF3D000000000000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F000000000000007C00000000000000001F001F001F001F001F000000
      0000000000000000000000000000000000000000FF7F00000000FF7F00000000
      0000FF7F000000000000007C00000000EF3DE07FE07FE07F0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000E07FE07F00000000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F00000000007C007C007C000000000000000000000000000000000000
      00000000FF7FFF7FFF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7F00000000007C007C007C000000000000E07FE07F0000FF7FFF7FFF7F
      FF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F0000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F0000007C007C007C007C007C00000000000000001F0000001F000000
      00000000FF7F00000000FF7F0000FF7F00000000FF7F0000000000000000FF7F
      0000FF7F0000007C007C007C007C007C00000000000000000000FF7FFF7FFF7F
      FF7F000000000000000000000000000000000000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F007C007C007C007C007C007C007C000000001F00000000001F000000
      00000000FF7FFF7FFF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7F
      FF7FFF7F007C007C007C007C007C007C007C0000000000000000FF7FFF7FFF7F
      FF7F0000FF7FFF7F000000000000000000000000E07FEF3DFF7FFF7FFF7FFF7F
      FF7FE07F00000000007C007C007C00000000000000001F00000000001F000000
      00000000FF7F0000FF7FFF7FFF7FFF7F00000000FF7F00000000FF7F00000000
      0000000000000000007C007C007C000000000000000000000000FF7FFF7FFF7F
      FF7F0000FF7F0000E07F00000000000000000000EF3D00000000EF3DEF3D0000
      0000EF3D00000000007C007C007C00000000000000001F000000000000000000
      00000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7F0000FF7F
      FF7F000000000000007C007C007C000000000000000000000000FF7FFF7FFF7F
      FF7F000000000000E07FE07F0000000000000000E07FEF3DEF3D00000000EF3D
      EF3DE07F00000000007C007C007C000000000000000000001F001F001F000000
      00000000FF7F0000FF7F0000FF7FFF7F00000000FF7F0000F75EFF7F0000FF7F
      000000000000EF3D007C007C007C0000000000000000E07F0000000000000000
      00000000000000000000E07FE07F000000000000E07FE07FEF3D00000000EF3D
      E07FE07F007C007C007C007C0000000000000000000000000000000000000000
      00000000FF7FFF7FFF7F0000FF7F000000000000FF7FFF7FFF7FFF7F00000000
      0000007C007C007C007C007C0000000000000000E07FE07F0000000000000000
      E07FE07F0000000000000000E07FE07F0000EF3D000000000000000000000000
      00000000EF3D0000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000E07F000000000000000000000000
      E07F0000000000000000000000000000E07F424D3E000000000000003E000000
      2800000040000000300000000100010000000000800100000000000000000000
      000000000000000000000000FFFFFF00558BEC53568BF18B8B18FF53305BC390
      FDFF33C933D28BC30000D88BC3E862C74344FF53405BC390518BD88BCA8BD08B
      536683784200740DE84FFFFFFF5E5BC374040000EB078BC300000074098BC3E8
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC007C007FFFFFFFFC007C007FFFF
      2020C007C007FFFF7271C007C007FFFF0303C007C007FFFFA723C007C007FFFF
      A7A7C007C007FFFF8787C007C007FFFFCF8FC007C007FFFFCFCFC007C007FFFF
      FFFFC007C007FFFFE7E7C007C007FFFFE3C7C007C007FFFFE7E7C007C007FFFF
      E997C007C007FFFFFC3FC007C007FFFFFC00FFFFFC00FF7EFC00FFE7FC009001
      FC00FFC7FC00C00300008F8FFC00E003000107000000E003000332000000E003
      000700000000E00300078000000000010023F900002380000001E1000001E007
      0000C9000000E00F0023C9000023E00F0023C3000063E0270023E30000C3C073
      0007FF0101079E79003FFF0303FF7EFE00000000000000000000000000000000
      000000000000}
  end
end