Marco Web Center

[an error occurred while processing this directive]

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