Marco Web Center

[an error occurred while processing this directive]

Home: Code Repository: Mastering Delphi 6

Chapter 13 - Project Total

Project Structure

Total.dpr
program Total;

uses
  Forms,
  TotalF in 'TotalF.pas' {SearchForm};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TSearchForm, SearchForm);
  Application.Run;
end.
TotalF.pas
unit TotalF;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, Buttons, DBTables, Mask, ExtCtrls,
  Dialogs, Spin, DBActns, ActnList, ImgList, ComCtrls, ToolWin;

type
  TSearchForm = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    Table1EmpNo: TIntegerField;
    Table1LastName: TStringField;
    Table1FirstName: TStringField;
    Table1PhoneExt: TStringField;
    Table1HireDate: TDateTimeField;
    Table1Salary: TCurrencyField;
    ScrollBox: TScrollBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    EditEmpNo: TDBEdit;
    EditLastName: TDBEdit;
    EditFirstName: TDBEdit;
    EditPhoneExt: TDBEdit;
    EditHireDate: TDBEdit;
    EditSalary: TDBEdit;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    EditName: TEdit;
    ToolButton7: TToolButton;
    ActionList: TActionList;
    DataSetFirst1: TDataSetFirst;
    DataSetLast1: TDataSetLast;
    DataSetNext1: TDataSetNext;
    DataSetPrior1: TDataSetPrior;
    ActionGoto: TAction;
    ImageList: TImageList;
    ToolButton8: TToolButton;
    SpinEdit1: TSpinEdit;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ActionTotal: TAction;
    ActionIncrease: TAction;
    procedure FormCreate(Sender: TObject);
    procedure ActionIncreaseExecute(Sender: TObject);
    procedure ActionTotalExecute(Sender: TObject);
    procedure ActionGotoExecute(Sender: TObject);
    procedure ActionGotoUpdate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  SearchForm: TSearchForm;

implementation

{$R *.DFM}

procedure TSearchForm.FormCreate(Sender: TObject);
begin
  Table1.IndexFieldNames := 'LastName';
  Table1.First;
end;

procedure TSearchForm.ActionIncreaseExecute(Sender: TObject);
var
  Bookmark: TBookmarkStr;
  Total: Real;
begin
  // store the current position in a bookmark
  Bookmark := Table1.Bookmark;
  Table1.DisableControls;
  Total := 0;
  try
    Table1.First;
    while not Table1.EOF do
    begin
      // start edit mode
      Table1.Edit;
      Table1Salary.Value := Round (Table1Salary.Value *
        SpinEdit1.Value) / 100;
      Total := Total + Table1Salary.Value;
      Table1.Next;
    end;
  finally
    // go back to the bookmark
    Table1.Bookmark := Bookmark;
    Table1.EnableControls;
  end;
  MessageDlg ('Sum of new salaries is ' +
    Format ('%m', [Total]), mtInformation, [mbOk], 0);
end;

procedure TSearchForm.ActionTotalExecute(Sender: TObject);
var
  Bookmark: TBookmarkStr;
  Total: Real;
begin
  // store the current position in a bookmark
  Bookmark := Table1.Bookmark;
  Table1.DisableControls;
  Total := 0;
  try
    Table1.First;
    while not Table1.EOF do
    begin
      Total := Total + Table1Salary.Value;
      Table1.Next;
    end;
  finally
    // go back to the bookmark
    Table1.Bookmark := Bookmark;
    Table1.EnableControls;
  end;
  MessageDlg ('Sum of new salaries is ' +
    Format ('%m', [Total]), mtInformation, [mbOk], 0);
end;

procedure TSearchForm.ActionGotoExecute(Sender: TObject);
begin
  if not Table1.Locate ('LastName', EditName.Text, []) then
    MessageDlg ('Name not found', mtError, [mbOk], 0);
end;

procedure TSearchForm.ActionGotoUpdate(Sender: TObject);
begin
  ActionGoto.Enabled := EditName.Text <> '';
end;

end.
TotalF.dfm
object SearchForm: TSearchForm
  Left = 281
  Top = 141
  Width = 491
  Height = 187
  Caption = 'Table Search'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clBlack
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Position = poScreenCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object ScrollBox: TScrollBox
    Left = 0
    Top = 27
    Width = 483
    Height = 133
    HorzScrollBar.Margin = 6
    VertScrollBar.Margin = 6
    Align = alClient
    BorderStyle = bsNone
    TabOrder = 0
    object Label1: TLabel
      Left = 230
      Top = 17
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Emp No'
      FocusControl = EditEmpNo
    end
    object Label2: TLabel
      Left = 14
      Top = 15
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Last Name'
      FocusControl = EditLastName
    end
    object Label3: TLabel
      Left = 14
      Top = 36
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&First Name'
      FocusControl = EditFirstName
    end
    object Label4: TLabel
      Left = 14
      Top = 58
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Phone Ext'
      FocusControl = EditPhoneExt
    end
    object Label5: TLabel
      Left = 230
      Top = 39
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Hire Date'
      FocusControl = EditHireDate
    end
    object Label6: TLabel
      Left = 14
      Top = 79
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Salary'
      FocusControl = EditSalary
    end
    object EditEmpNo: TDBEdit
      Left = 296
      Top = 14
      Width = 57
      Height = 21
      Color = clWindow
      DataField = 'EmpNo'
      DataSource = DataSource1
      TabOrder = 0
    end
    object EditLastName: TDBEdit
      Left = 80
      Top = 12
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'LastName'
      DataSource = DataSource1
      TabOrder = 1
    end
    object EditFirstName: TDBEdit
      Left = 80
      Top = 33
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'FirstName'
      DataSource = DataSource1
      TabOrder = 2
    end
    object EditPhoneExt: TDBEdit
      Left = 80
      Top = 55
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'PhoneExt'
      DataSource = DataSource1
      TabOrder = 3
    end
    object EditHireDate: TDBEdit
      Left = 296
      Top = 36
      Width = 57
      Height = 21
      Color = clWindow
      DataField = 'HireDate'
      DataSource = DataSource1
      TabOrder = 4
    end
    object EditSalary: TDBEdit
      Left = 80
      Top = 76
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'Salary'
      DataSource = DataSource1
      TabOrder = 5
    end
  end
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 483
    Height = 27
    Caption = 'ToolBar1'
    Customizable = False
    EdgeBorders = [ebTop, ebBottom]
    Flat = True
    Images = ImageList
    ParentShowHint = False
    ShowHint = True
    TabOrder = 1
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Action = DataSetFirst1
    end
    object ToolButton2: TToolButton
      Left = 23
      Top = 0
      Action = DataSetPrior1
    end
    object ToolButton3: TToolButton
      Left = 46
      Top = 0
      Action = DataSetNext1
    end
    object ToolButton4: TToolButton
      Left = 69
      Top = 0
      Action = DataSetLast1
    end
    object ToolButton5: TToolButton
      Left = 92
      Top = 0
      Width = 8
      Caption = 'ToolButton5'
      ImageIndex = 3
      Style = tbsSeparator
    end
    object EditName: TEdit
      Left = 100
      Top = 0
      Width = 137
      Height = 22
      Color = clWindow
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      ParentFont = False
      TabOrder = 0
      Text = 'Williams'
    end
    object ToolButton7: TToolButton
      Left = 237
      Top = 0
      Action = ActionGoto
    end
    object ToolButton8: TToolButton
      Left = 260
      Top = 0
      Width = 8
      Caption = 'ToolButton8'
      ImageIndex = 6
      Style = tbsSeparator
    end
    object ToolButton10: TToolButton
      Left = 268
      Top = 0
      Action = ActionTotal
    end
    object SpinEdit1: TSpinEdit
      Left = 291
      Top = 0
      Width = 49
      Height = 22
      Color = clWindow
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      Increment = 5
      MaxValue = 200
      MinValue = 50
      ParentFont = False
      TabOrder = 1
      Value = 105
    end
    object ToolButton9: TToolButton
      Left = 340
      Top = 0
      Action = ActionIncrease
    end
  end
  object DataSource1: TDataSource
    DataSet = Table1
    Left = 263
    Top = 109
  end
  object Table1: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    TableName = 'employee.db'
    Left = 316
    Top = 109
    object Table1EmpNo: TIntegerField
      FieldName = 'EmpNo'
    end
    object Table1LastName: TStringField
      FieldName = 'LastName'
    end
    object Table1FirstName: TStringField
      FieldName = 'FirstName'
      Size = 15
    end
    object Table1PhoneExt: TStringField
      FieldName = 'PhoneExt'
      Size = 4
    end
    object Table1HireDate: TDateTimeField
      FieldName = 'HireDate'
    end
    object Table1Salary: TCurrencyField
      FieldName = 'Salary'
    end
  end
  object ActionList: TActionList
    Images = ImageList
    Left = 214
    Top = 111
    object DataSetFirst1: TDataSetFirst
      Category = 'Dataset'
      Caption = '&First'
      Hint = 'First'
      ImageIndex = 0
    end
    object DataSetLast1: TDataSetLast
      Category = 'Dataset'
      Caption = '&Last'
      Hint = 'Last'
      ImageIndex = 1
    end
    object DataSetNext1: TDataSetNext
      Category = 'Dataset'
      Caption = '&Next'
      Hint = 'Next'
      ImageIndex = 2
    end
    object DataSetPrior1: TDataSetPrior
      Category = 'Dataset'
      Caption = '&Prior'
      Hint = 'Prior'
      ImageIndex = 3
    end
    object ActionGoto: TAction
      Caption = '&Goto'
      Hint = 'Goto'
      ImageIndex = 4
      OnExecute = ActionGotoExecute
      OnUpdate = ActionGotoUpdate
    end
    object ActionTotal: TAction
      Caption = '&Total'
      Hint = 'Total'
      ImageIndex = 6
      OnExecute = ActionTotalExecute
    end
    object ActionIncrease: TAction
      Caption = '&Increase'
      Hint = 'Increase'
      ImageIndex = 7
      OnExecute = ActionIncreaseExecute
    end
  end
  object ImageList: TImageList
    Left = 24
    Top = 112
    Bitmap = {
      494C010108000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000003000000001001000000000000018
      000000000000000000000000000000000000112F6B457C610328B143982B0D7C
      46433C754B0220225C752702202A5C75E2016041D80DFD470044BB331100DF68
      9027DD480044B817DF0DDF09DF09DF05DF057D7EFF479B7DC14A3C7D46433C75
      410220622B720B0B40451D62F17F5F292A3AA101DF6890277D4B0034E01B1972
      A96B12001146FF7FAA5B11005146FF7FAA435633272A0B00C0110C624E043633
      51253758991D321D00002E20EC40FA7FDF61DD31112200002C221F7EC0011700
      00401F38017EC001EC02A627F00DC009F0034E30F07DC005110D18000000F005
      C0150C3E1F38E23B4129DF11DF0D0D744300207E3D7C2E28AA017D0900449F7D
      C14A3C7D26433C755102E01B1A72A9431200E82B2C4A0000403540452928117C
      12020030100730030044F27DFF2B2C265F452828517C4A311007D0020030F06A
      FF7F204014008045117FFF3327220000014600002C42F97F9F1D300100388F45
      CA32471A0000CE313162FF7FEC440900C0312C42F87F9F1D300100388A45527F
      FF33472A00000E19B81BC16A2C466A7FFF07A95B1200112EFF7FAA4B1100512E
      FF7FAA3310000B628E7C2E74957F3F7EDF6490273D4A007C46433C754F022062
      FD0300406F000E446A183906F00DC001110D4647027EC025317D8A4510000028
      0D2851052A065F420000F133103B81411F1401460000513EFF7F8A45E92B1105
      2A0A5F29713EFF7FFD0300401F04D0030044006201231D0000740762CE041615
      AA01C16A407DAA3F04001007C12645351F00205818205E758B00006201231D00
      0030E015EC239E45CA33476A00000112FF7FF075C009317D3142000011791146
      00005D7CEE775C02607DCE775B026019782D2B720B070028B143787DFF2B4A45
      4B444E18BF01DF6890271D4B0034E01B1972BE2B040010072647A94750020044
      10020040D80D187500008045EA2B2A58E903E92B3D0200189F61C803A0670000
      114A00007135C1223E5812690000A965076CC1223E5C103100000C3E04006E41
      D819C12A4535205819245F759A0000622158A82846472A28C1662079AA5B0400
      10077D041615CA6851052A5819245F75930017030040370300000E18B87F0000
      F005DF05F03BC060BD030040170200002E40370200000E18B86700002C4A1F00
      8045EA4751020030117E00002C229F45EB33607DC162AA3B13002B221F622E30
      17105D020004562BED03007CEE7791000062017ECE04362BFD4C002C1179103B
      E23BBF1F13008B5D80740A0020585A35E03B0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000009E41D8011177214E1200006E8E1B
      782D6B2D18002A7610774A29D1050647C8470000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D000000000000EF3D
      000000000000EF3D000000000000EF3D00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D0000EF3D0000EF3D
      0000EF3D0000EF3D0000EF3D0000EF3D00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D00000000000000000000
      000000000000000000000000000000000000FF0300000000E07FFF7FE07FFF7F
      E07F000000000000000000000000000000000000E07F00000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FF030000E07FFF7FE07FFF7F0000
      000000000000000000000000000000000000000000000000FF0300000000E07F
      FF7FE07FFF7FE07F000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D0000007C007C00000000
      0000000000000000000000000000007C007CFF030000FF7FE07FFF7FE07FFF7F
      E07FFF7F0000000000000000000000000000000000000000FF030000E07FFF7F
      E07FFF7F00000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000007C0000
      000000000000000000000000007C00000000FF030000E07FFF7FE07FFF7F0000
      000000000000000000000000000000000000000000000000FF030000FF7FE07F
      FF7FE07FFF7FE07FFF7F00000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3D007C
      EF3DEF3DEF3DEF3DEF3D007CEF3DEF3DEF3DFF030000FF7FE07FFF7FE07FFF7F
      E07FFF7FE07FFF7FE07F00000000007C007C000000000000FF030000E07FFF7F
      E07FFF7F00000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000007C
      00000000000000000000007C000000000000FF030000E07FFF7F000000000000
      0000000000000000000000000000007C007C000000000000FF030000FF7FE07F
      FF7FE07FFF7FE07FFF7FE07FFF7FE07F00000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D00000000000000000000
      007C000000000000007C0000000000000000000000000000E07FFF7FE07F0000
      000000000000000000000000000000000000000000000000FF030000E07FFF7F
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000007C007C007C000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000E07F
      FF7FE07F00000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3DEF3D
      EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D00000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3DEF3D
      EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000000000001042
      0000000000000000000000000000000000000000000000000000000000000000
      0000000010420000000000000000000000000000000000000000104200000000
      0000000010420000000000000000000000000000000000000000000000001042
      0000000000000000104200000000000000000000000000000000000000000000
      0000104200000000000000000000000000000000000000000000000000000000
      1042000000000000000000000000000000000000000000000000104200000000
      1042000000000000000000000000000000000000000000000000000000000000
      0000104200000000104200000000000000000000000000000000000000000000
      0000000000001042000000000000000000000000000000000000000010420000
      0000000000000000000000000000000000000000000000000000104210420000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000001042104200000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000104200000000
      1042000000000000000000000000000000000000000000000000000000000000
      0000104200000000104200000000000000000000000000000000000000000000
      0000000000001042000000000000000000000000000000000000000010420000
      0000000000000000000000000000000000000000000000000000104200000000
      0000000010420000000000000000000000000000000000000000000000001042
      0000000000000000104200000000000000000000000000000000000000000000
      0000104200000000000000000000000000000000000000000000000000000000
      1042000000000000000000000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000000000001042
      0000000000000000000000000000000000000000000000000000000000000000
      0000000010420000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000300000000100010000000000800100000000000000000000
      000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF00000000
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FF0000FF0000FFFFFFFFFF0000FF0000FFFFFFFFFFFFDDDDFFF8FFFFFFFFD555
      20F81FFFC0070000007F041FE7E7DFFF007C000FF3F787FC003C000FF9F7DBFB
      000F0007FCFF000000040001FE7FDDF7000C0000FF3F9EEF01FF0001FE7FDF1F
      E3FC003FFCFF0000FFFCFC7FF9F7DFFFFFFFFFFFF3F79FFFFFF8FFFFE7E7DFFF
      FFF8FFFFC0070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7E7F9FFFF9F
      E787E1E7F87FFE1FE607E067F81FF81FE007E007F80FF01FE607E067F81FF81F
      E787E1E7F87FFE1FE7E7E7E7F9FFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
      000000000000}
  end
end