added tool debugserver from Michael van Canneyt

git-svn-id: trunk@21453 -
This commit is contained in:
mattias 2009-08-26 13:50:27 +00:00
parent a8a545d920
commit 28957ba8b8
14 changed files with 7845 additions and 0 deletions

13
.gitattributes vendored
View File

@ -4704,6 +4704,19 @@ tools/chmmaker/unit1.pas svneol=native#text/plain
tools/compile_all.sh svneol=native#text/plain
tools/convert_po_file_to_utf-8.sh svneol=native#text/plain
tools/copy_po_files_to_lazarus_sources.sh -text svneol=native#application/x-sh
tools/debugserver/README.txt svneol=native#text/plain
tools/debugserver/debugserver.ico -text
tools/debugserver/debugserver.lpi svneol=native#text/plain
tools/debugserver/debugserver.lpr svneol=native#text/plain
tools/debugserver/debugserver.lrs svneol=native#text/plain
tools/debugserver/debugserver.manifest svneol=native#text/plain
tools/debugserver/debugserver.rc svneol=native#text/plain
tools/debugserver/frmmain.lfm svneol=native#text/plain
tools/debugserver/frmmain.lrs svneol=native#text/plain
tools/debugserver/frmmain.pp svneol=native#text/pascal
tools/debugserver/frmoptions.lfm svneol=native#text/plain
tools/debugserver/frmoptions.lrs svneol=native#text/plain
tools/debugserver/frmoptions.pp svneol=native#text/pascal
tools/delete_non_svn_files.pl svneol=native#text/plain
tools/find_missing_lpl_files.sh svneol=native#text/plain
tools/getallpofiles.sh -text svneol=native#application/x-sh

View File

@ -0,0 +1,46 @@
The debug server is a simple program that listens for debug messages,
and displays them in a list. The messages can be saved, cleared, it can
be paused - whatever.
It is the server part to a standard FPC unit - dbugintf. This unit
offers a simple API to send messages to a debug server (using
simpleIPC), modeled after the GExperts GDebug tool for Delphi, with
some minor enhancements.
Typical usage is as follows (I stripped actual code and {$ifdef debug}):
uses dbugintf,sysutils;
Procedure BackupFile(FN : String);
Var
BFN : String;
begin
SendMethodEnter('BackupFile');
BFN:=FN+'.bak';
SendDebug(Format('backup file "%s" exists, deleting',[BFN]));
SendDebug(Format('Backing up "%s" to "%s"',[FN,BFN]));
SendMethodExit('BackupFile');
end;
Procedure SaveToFile(FN : String);
begin
SendMethodEnter('SaveToFile');
BackupFile(FN);
SendDebug('Saving to file '+FN);
SendMethodExit('SaveToFile');
end;
There are some more methods as displayed here.
Output would look as in the attached screenshot. It is extremely useful
when debugging GUI code with lots of events - because you see the
messages as they are sent, in a separate window which can be kept 'on
top'. We also use it to debug our server applications. The indentation
of the messages (by SendMethodEnter) is intentional: if an exception
occurs, then the SendMethodExit does not happen, and you see that
something is wrong visually.

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@ -0,0 +1,78 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<Version Value="7"/>
<General>
<Flags>
<SaveOnlyProjectUnits Value="True"/>
</Flags>
<SessionStorage Value="InIDEConfig"/>
<MainUnit Value="0"/>
<TargetFileExt Value=""/>
<Title Value="FPC/Lazarus debug message server"/>
<Icon Value="0"/>
<UseXPManifest Value="True"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="1">
<Item1>
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="debugserver.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="debugserver"/>
</Unit0>
<Unit1>
<Filename Value="frmmain.pp"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="MainForm"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="frmmain"/>
</Unit1>
<Unit2>
<Filename Value="frmoptions.pp"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="OptionsForm"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="frmOptions"/>
</Unit2>
<Unit3>
<Filename Value="README.txt"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="8"/>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)/"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,22 @@
program debugserver;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, frmmain, LResources, frmOptions
{ you can add units after this };
{$IFDEF WINDOWS}{$R debugserver.rc}{$ENDIF}
begin
Application.Title:='FPC/Lazarus debug message server';
{$I debugserver.lrs}
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApp" type="win32"/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View File

@ -0,0 +1,7 @@
#define RT_MANIFEST 24
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "debugserver.manifest"
MAINICON ICON "debugserver.ico"

View File

@ -0,0 +1,907 @@
object MainForm: TMainForm
Left = 460
Height = 300
Top = 281
Width = 400
Caption = 'Debug message viewer'
ClientHeight = 278
ClientWidth = 400
Menu = MMDebugServer
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
LCLVersion = '0.9.27'
object LVMessages: TListView
Left = 0
Height = 252
Top = 26
Width = 400
Align = alClient
Columns = <
item
Caption = 'Type'
MinWidth = 50
Width = 80
end
item
Caption = 'Time'
MinWidth = 50
Width = 80
end
item
Caption = 'Message'
Width = 219
end>
MultiSelect = True
ReadOnly = True
RowSelect = True
SmallImages = ILMessages
TabOrder = 0
ViewStyle = vsReport
OnDblClick = LVMessagesDblClick
end
object TBMain: TToolBar
Left = 0
Height = 26
Top = 0
Width = 400
Caption = 'TBMain'
Images = ILMain
TabOrder = 1
object TBPause: TToolButton
Left = 24
Top = 2
Action = APause
end
object ToolButton2: TToolButton
Left = 93
Top = 2
Action = AClear
end
object TBCopyMessages: TToolButton
Left = 139
Top = 2
Action = ACopyLines
end
object TBQuit: TToolButton
Left = 1
Top = 2
Action = AQuit
end
object TBSave: TToolButton
Left = 116
Top = 2
Action = ASelectAll
end
object ToolButton3: TToolButton
Left = 70
Top = 2
Width = 23
Caption = 'ToolButton3'
Style = tbsSeparator
end
object ToolButton1: TToolButton
Left = 47
Top = 2
Action = AHide
end
object ToolButton4: TToolButton
Left = 162
Top = 2
Action = ASave
end
end
object MMDebugServer: TMainMenu
Images = ILMain
left = 39
top = 65
object MFile: TMenuItem
Caption = '&File'
object MIPause: TMenuItem
Action = APause
OnClick = APauseExecute
end
object MIOptions: TMenuItem
Action = AOptions
OnClick = AOptionsExecute
end
object MenuItem1: TMenuItem
Caption = '-'
end
object MIHide: TMenuItem
Action = AHide
OnClick = AHideExecute
end
object MIQuit: TMenuItem
Action = AQuit
OnClick = AQuitExecute
end
end
object MEdit: TMenuItem
Caption = 'Edit'
object MIClear: TMenuItem
Action = AClear
OnClick = AClearExecute
end
object MICopy: TMenuItem
Action = ACopyLines
OnClick = ACopyLinesExecute
end
object MISave: TMenuItem
Action = ASave
OnClick = ASaveExecute
end
object MenuItem2: TMenuItem
Action = ASelectAll
OnClick = ASelectAllExecute
end
end
object MView: TMenuItem
Caption = 'View'
OnClick = MViewClick
object MIAlwaysOntop: TMenuItem
AutoCheck = True
Caption = 'Always on top'
OnClick = MIAlwaysOntopClick
end
object MIToolbar: TMenuItem
AutoCheck = True
Caption = 'Toolbar'
OnClick = MIToolbarClick
end
end
end
object ALMain: TActionList
Images = ILMain
left = 88
top = 65
object AQuit: TAction
Caption = '&Quit'
Hint = 'Quit the application'
ImageIndex = 0
OnExecute = AQuitExecute
ShortCut = 16465
end
object AClear: TAction
Caption = 'Clear window'
Hint = 'Clear the message list'
ImageIndex = 1
OnExecute = AClearExecute
ShortCut = 16460
end
object APause: TAction
Caption = 'Pause messages'
Hint = 'Stop displaying new messages'
ImageIndex = 2
OnExecute = APauseExecute
ShortCut = 16464
end
object AOptions: TAction
Caption = 'Options...'
Hint = 'Set selected options'
ImageIndex = 3
OnExecute = AOptionsExecute
ShortCut = 16463
end
object AHide: TAction
Caption = '&Hide window'
Hint = 'Hide the messages window window'
ImageIndex = 4
OnExecute = AHideExecute
ShortCut = 16456
end
object ACopyLines: TAction
Caption = 'Copy selected lines'
Hint = 'Copy lines to clipboard'
ImageIndex = 5
OnExecute = ACopyLinesExecute
OnUpdate = ACopyLinesUpdate
ShortCut = 16451
end
object ASave: TAction
Caption = 'ASave'
Hint = 'Save selected lines to file'
ImageIndex = 6
OnExecute = ASaveExecute
ShortCut = 16467
end
object ASelectAll: TAction
Caption = 'ASelectAll'
Hint = 'Select all messages'
ImageIndex = 7
OnExecute = ASelectAllExecute
ShortCut = 16449
end
object AResume: TAction
Caption = 'Resume messages'
Hint = 'Continue displaying incoming messages'
ImageIndex = 8
OnExecute = AResumeExecute
ShortCut = 16466
end
object AShow: TAction
Caption = 'Show window'
Hint = 'Show messages window'
ImageIndex = 9
OnExecute = AShowExecute
end
end
object ILMain: TImageList
left = 144
top = 65
Bitmap = {
4C690A0000001000000010000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000FFE0E2E2FFD0D3D3FFBDC0C0FFABADADFF919292FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000FF0000
00FF000000FFE0E2E2FFD0D3D3FFBDC0C0FFB5B7B7FF989A9AFF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000FF4562
E4FF000000FFDCDEDEFFD0D3D3FFBEC1C1FFB7B9B9FF9B9C9CFF000000FF0608
06FF070907FF000000FF00000000000000FF000000FF000000FF000000FF5B75
E7FF3E53B3FF000000FFCDD0D0FFBEC1C1FFB7B9B9FF9B9C9CFF000000FF0C11
0EFF0D120FFF000000FF00000000000000FF4562E4FF4562E4FF4562E4FF4562
E4FF1E42DFFF364DB1FF000000FFBBBDBDFFA2A4A4FF9B9C9CFF000000FF141C
16FF161F19FF000000FF00000000000000FF4562E4FF0A16B0FF0A16B0FF0A16
B0FF0A16B0FF101BB1FF293999FF000000FF777979FF5A5B5BFF000000FF1B25
1DFF1D2820FF000000FF00000000000000FF4562E4FF000099FF000099FF0000
99FF000099FF000088FF2C3FAAFF000000FF6A6C6CFF9B9C9CFF000000FF2431
27FF26352AFF000000FF00000000000000FF2B3EC8FF0B10A1FF0E14A3FF0000
88FF000088FF2C3FAAFF000000FFBEC1C1FFB7B9B9FF9B9C9CFF000000FF2737
2BFF2C3D31FF000000FF00000000000000FF000000FF000000FF000000FF0000
88FF2C3FAAFF000000FFD1D4D4FFBEC1C1FFB7B9B9FF9B9C9CFF000000FF2635
2AFF314335FF000000FF00000000488160014881600148816001000000FF2C3F
AAFF000000FFE0E2E2FFD1D4D4FFBEC1C1FFB2B4B4FF8B8D8DFF000000FF293A
2DFF354A3BFF000000FF00000000488160014881600148816001000000FF0000
00FF000000FFDEE0E0FFC7C9C9FF919493FF4F5451FF000000FF2F4134FF3D54
42FF435D49FF000000FF0000000000000000000000000000000003060406182B
2001000000FFB5B7B7FF59605CFF000000FF354A3BFF425C49FF48644FFF4B68
53FF4D6A54FF000000FF00000000000000000000000000000000000000000000
0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000060606110606
064B0E0E0EFF424242FF4A4A4AFF3E3E3EFF2C2C2CFF000000FF0606063E0606
062100000000000000000000000000000000000000000606063A000000FF0000
00FF718385FFD8EDF0FFE9F1F2FFE4EDEEFFBAC6C7FF465253FF000000FF0000
00FF0606064B0000000000000000000000000606063E101010FFA5C0C2FFA5BF
C1FF67797AFF404748FF252727FF2E3536FF728587FF889EA0FF8AA1A3FF8CA3
A5FF000000FF0606062100000000000000002B2B2BFFBCD1D3FFC4DADCFFCFE0
E2FFA2B7B9FF5B6264FF363839FF333C3CFF536061FF83989AFF9BB5B7FF98B2
B3FF8BA2A4FF000000FF0000000000000000000000FFD3E4E8FFE9F1F4FFE4F1
F2FFDAE9EAFFD2E2E5FFBED2D5FFA7C1C3FF94ADAFFFA4BEC0FFACC4C6FF9CB6
B8FF667779FF000000FF0000000000000000000000FF75898AFFD2EDF1FFE9F8
FBFFEDF5F9FFEEF7F8FFECF7F8FFE6F3F5FFD9EAECFFCBDDDEFF899B9DFF5462
63FF4A5758FF000000FF000000000000000000000082465152FF657173FF919D
9FFFC8E1E4FFCFE5E9FFCBE0E2FFCBD1D1FF7F8D8EFF647576FF586768FF3842
43FF222829FF000000820000000000000000000000001B1F1FFF303434FF4449
4BFF626768FF666F70FF646B6BFF5D6C6EFF4B5758FF313939FF151617FF161A
1AFF191E1FFF00000000000000000000000000000000232A2AFF95A0A0FF404D
4DFF303636FF262A2AFF2A2F2FFF0D0F0FFF090B0BFF0D1010FF383E3EFF2B34
34FF1F2424FF00000000000000000000000000000000242B2BFF99A4A5FFAEB6
B7FF677071FF92A1A1FF637374FF354040FF5B6969FF2F3939FF5F6969FF343F
3FFF202626FF00000000000000000000000000000000252C2CFFA3ADADFFD2D9
D9FF7F8B8BFFCED5D6FF7B8888FF4F5758FF879393FF3D4A4AFF6B7878FF4250
50FF222929FF00000000000000000000000000000000252C2CFFA3ADADFFD3DA
DAFF818E8FFFD4DDDDFF99ABACFF525D5DFF93A0A0FF404D4DFF6C7979FF4250
50FF222929FF00000000000000000000000000000000242B2BFF757E7EFFD1D8
D8FF808D8DFFD3DDDDFF99ABACFF525D5DFF93A0A0FF404D4DFF6B7878FF3844
44FF222828FF00000000000000000000000000000000212727FF3D4343FF868E
8EFF555E5EFFD0DADAFF99ABACFF525D5DFF849494FF404D4DFF535D5DFF2228
28FF1D2323FF000000000000000000000000000000000606064B060606FF0606
06FF3A4142FF7B8F8FFF6C7A7AFF3C4444FF5E6C6CFF2C3535FF292E2EFF0000
00FF0606063E0000000000000000000000000000000000000000000000000606
0657060606FF000000FF0F0F0FFF050505FF000000FF000000FF0606064B0000
0000000000000000000000000000000000230000007D0000007D0000007D0000
007D0000007D0000007D0000007D0000007D0000007D0000007D0000007D0000
007D0000007D00000023000000000000007D0000001200000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000120000007D000000000000007D0000000000000037000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
0062000000000000007D000000000000007D00000000000000FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFFBFBF
BFFF747474FF202020FF000000FF222222FF838383FFDFDFDFFFD1D1D1FF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFF7474
74FF2D3045FF8C96D4FF95A0E2FF8C96D4FF2D3045FF8A8A8AFFD4D4D4FF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFF2020
20FF6E78C1FF7781CEFF7781CEFF7781CEFF6E78C1FF262626FFD7D7D7FF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFF0000
00FF5A62BAFF5A62BAFF5A62BAFF5A62BAFF5A62BAFF000000FFDADADAFF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFF2222
22FF353A99FF3D43A6FF3D43A6FF3D43A6FF353A99FF282828FFDCDCDCFF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFF8080
80FF05062AFF181C85FF202492FF181C85FF05062AFF979797FFDFDFDFFF0000
00FF000000000000007D000000000000007D00000000000000FFFFFFFFFFD9D9
D9FF878787FF252525FF000000FF282828FF979797FFFFFFFFFFDFDFDFFF0000
00FF000000000000007D000000000000007D00000000000000FFDFDFDFFFCFCF
CFFFD1D1D1FFD4D4D4FFDADADAFFDCDCDCFFDFDFDFFFDFDFDFFFCFCFCFFF0000
00FF000000000000007D000000000000007D000000000000004E000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
0062000000000000007D000000000000007D0000001200000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000120000007D00000000000000230000007D0000007D0000007D0000
007D0000007D0000007D0000007D0000007D0000007D0000007D0000007D0000
007D0000007D0000002300000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000053000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
004C0000000000000000000000000000000000000000000000FFFEFEFEFFFEFE
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFDFDFDFFE0E0E0FFC1C1C1FF0000
00FF0000005300000000000000000000004D000000FF000000FFFEFEFEFF0000
00FF000000FFA8A8A8FFF1F1F1FFF1F1F1FFF1F1F1FFC3C3C3FFFBFBFBFFA8A8
A8FF000000FF0000004C00000000000000FFFFFFFFFF000000FFFEFEFEFF0000
00FFEFEFEFFF000000FFBEBEBEFFCACACAFFF1F1F1FFADADADFF767676FF5D5D
5DFF404040FF000000FF00000000000000FFFFFFFFFF000000FF000000FF0000
00FFEFEFEFFF000000FFF1F1F1FFF1F1F1FFF0F0F0FFE2E2E2FF858585FF494B
4BFF161616FF000000FF00000000000000FFFFFFFFFFEFEFEFFFEFEFEFFFEFEF
EFFFC3C3C3FF000000FFBDBDBDFFB3B3B3FFE0E0E0FFEFEFEFFFEEEEEEFFEEEE
EEFFC5C5C5FF000000FF0000000000000000000000FFFFFFFFFFEFEFEFFFC3C3
C3FF000000FFEFEFEFFFEEEEEEFFEEEEEEFFEEEEEEFFEEEEEEFFEEEEEEFFECEC
ECFFC4C4C4FF000000FF000000000000000000000000000000FFFFFFFFFF0000
00FFB3B3B3FFD3D3D3FFB3B3B3FFBCBCBCFFBCBCBCFFC7C7C7FFC7C7C7FFEBEB
EBFFC3C3C3FF000000FF000000000000000000000000000000FFFFFFFFFF0000
00FFECECECFFECECECFFECECECFFEBEBEBFFEBEBEBFFEAEAEAFFEAEAEAFFEAEA
EAFFC1C1C1FF000000FF0000000000000000000000FFFFFFFFFFEFEFEFFFC3C3
C3FF000000FFC2C2C2FFE8E8E8FF836E68FF836E68FF836E68FF836E68FFE8E8
E8FFC0C0C0FF000000FF00000000000000FFFFFFFFFFEFEFEFFFEFEFEFFFEFEF
EFFFC3C3C3FF000000FFE9E9E9FF836E68FFA58B87FFA3847CFF836E68FFE7E7
E7FFBFBFBFFF000000FF00000000000000FFFFFFFFFF000000FF000000FF0000
00FFEFEFEFFF000000FFE6E6E6FF836E68FFA6A2A7FFA19597FF836E68FFE5E5
E5FFBEBEBEFF000000FF00000000000000FFFFFFFFFF000000FFFDFDFDFF0000
00FFEFEFEFFF000000FFE6E6E6FF836E68FF836D68FF836D68FF826D67FFE4E4
E4FFBDBDBDFF000000FF000000000000004D000000FF000000FFFDFDFDFF0000
00FF000000FF9F9F9FFFE5E5E5FFE4E4E4FFE4E4E4FFE3E3E3FFE3E3E3FFE3E3
E3FFBBBBBBFF000000FF000000000000000000000000000000FFC2C2C2FFBDBD
BDFFBDBDBDFFBDBDBDFFBCBCBCFFBCBCBCFFBBBBBBFFBBBBBBFFBBBBBBFFBBBB
BBFFA0A0A0FF000000D40000000000000000000000000000006B000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF0000006400000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000003D2D1CFF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FFE4D5C5FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000FFE3D4C4FFD2B99FFF5B432AFF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFE3D4C4FFD1B79CFFD3BAA0FF88653FFF5B432AFF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000FFE3D4
C4FFD5BEA6FFD5BDA4FFD1B89EFF88653FFF88653FFF5B432AFF000000FF0000
00000000000000000000000000000000000000000000000000FFE3D4C4FFD4BC
A3FFD7C1AAFFD4BCA3FFD1B89EFF88653FFF88653FFF88653FFF5B432AFF0000
00FF00000000000000000000000000000000000000D4000000FF000000FF0000
00FFD8C2ABFFD2B99FFFD1B79CFF88653FFF5A4229FF000000FF000000FF0000
00FF000000FF0000000000000000000000000000000000000000000000000000
00FFDAC5AFFFD0B69BFFD2B99FFF88653FFF5A4229FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFD8C2ABFFD0B69BFFD2B99FFF88653FFF5A4229FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFD9C4AEFFD2B99FFFD2B99FFF88653FFF5A4229FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFD4BCA3FFCFB59AFFD2B99FFF88653FFF5A4229FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFB99268FF9E7549FFA2784BFF6F5334FF60472DFF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000081000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF0000008100000000000000000000
0000000000000000000000000000000000FFB3B3B3FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6FF000000FF00000000000000000000
0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00000000000000000000
0000000000000000000000000000000000FFFFFFFFFF646464FF4D4D4DFF5050
50FFFFFFFFFF696969FF787878FFFFFFFFFF000000FF00000000000000000000
0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00000000000000000000
0000000000000000000000000000000000FFFFFFFFFF505050FF4C4C4CFFFFFF
FFFF505050FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF0000008100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFB3B3B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFD6D6D6FF000000FF00000000000000FFE3E3E3FF5A5A5AFF535353FF9191
91FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFFFFFFFFF646464FF4D4D4DFF505050FFFFFFFFFF696969FF7878
78FFFFFFFFFF000000FF00000000000000FFD6D6D6FFFFFFFFFFFFFFFFFFFFFF
FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FF0000000000000081000000FF000000FF000000FF0000
00FF000000FFFFFFFFFF505050FF4C4C4CFFFFFFFFFFA2A2A2FF696969FFB3B3
B3FFFFFFFFFF000000FF00000000000000000000000000000000000000000000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FF00000000000000000000000000000000000000000000
0000000000FFE3E3E3FF5A5A5AFF535353FF919191FFFFFFFFFF5C5C5CFF6666
66FFFFFFFFFF000000FF00000000000000000000000000000000000000000000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF000000FF00000000000000000000000000000000000000000000
0000000000FFD6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFD6D6D6FF000000FF00000000000000000000000000000000000000000000
000000000081000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000710000000000000047000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000055000000FFFAF8F7FFEBDDCBFF808AC8FF848F
D1FF848FD1FF848FD1FF848FD1FF848FD1FF848FD1FF8490D1FF848FD1FF8691
D3FFE8D5BFFFE8D5BFFF000000FF000000FFF1E7DBFFBEA98DFF7E87B7FF6875
C7FF6774C7FF6774C7FF6774C7FF6774C7FF6674C7FF6774C7FF6876C8FF7A86
CDFFBEA98DFF7C6954FF000000FF000000FFEDE0CFFFBEA98DFFD7D7D7FFFEFE
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFF9F9
F9FFB5A084FF75644FFF000000FF000000FFEDE0CFFFBEA98DFFD7D7D7FFD7D7
D7FFD7D7D7FFD7D7D7FFD7D7D7FFD7D7D7FFD7D7D7FFD7D7D7FFD6D6D6FFF1F1
F1FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFD7D7D7FFFEFE
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFCFCFCFFF4F4F4FFEBEBEBFFEBEBEBFFF1F1
F1FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFD7D7D7FFD7D7
D7FFD7D7D7FFD7D7D7FFD4D4D4FFC5C5C5FFC5C5C5FFC5C5C5FFC5C5C5FFF1F1
F1FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFEEEEEEFFFEFE
FEFFFEFEFEFFF2F2F2FFEBEBEBFFEBEBEBFFEBEBEBFFEBEBEBFFEBEBEBFFEEEE
EEFFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFCDBFAEFFDFD6
CAFFDACFC7FFD6CBBFFFD6CBBFFFD6CBBFFFD6CBBFFFD6CBBFFFD6CBBFFFC4B6
A1FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFBEA98DFFBCA6
89FFAE9A7FFFAE9A81FFAE9A81FFAE9A81FFAE9A81FFAD997EFFAC977DFFAE9A
81FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFBDA88CFFBDB1
A8FFC5C5C5FFC5C5C5FFCECECEFFEBEBEBFFD7D7D7FF9D9D9CFF56462FFF8C86
80FFAE9A81FF726049FF000000FF000000FFEDE0CFFFBEA98DFFB5A084FFC5C5
C5FFC5C5C5FF423018FF5A4933FFD6D6D6FFC5C5C5FFB9B9B9FF3C2D13FF806D
58FFB0A597FF726049FF000000FF000000FFEDE0CFFFB9A486FFAE9A81FFC5C5
C5FFCDCDCDFF53432EFF82705AFFC5C5C5FFC5C5C5FFBFBFBFFF352811FF8270
5AFFB0A99DFF726049FF000000FF000000FF82786BFFB29E83FFAE9A81FFCDCD
CDFFE6E6E6FF483621FF89795FFFC5C5C5FFC2C2C2FFB2B2B2FF3A2C11FF8270
5AFFB0A99FFF726049FF000000FF00000055000000FF6D6359FF75644FFFA1A1
A1FFC0C0C0FF909090FF909090FF868686FF6E6E6EFF7A7A7AFF49392DFF5C4F
3EFF8F8780FF40311AFF000000FF0000000000000055000000FF000000D30000
00DC000000FF000000FF000000FF000000FF000000FF000000FF000000E00000
00E1000000FF000000FF000000470000000000000053000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF0000004C0000
000000000000000000000000000000000000000000FFFEFEFEFFFEFEFEFFFEFE
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFDFDFDFFE0E0E0FFC1C1C1FF000000FF0000
005300000000000000000000000000000000000000FFFEFEFEFFF1F1F1FFF1F1
F1FFF1F1F1FFF1F1F1FFF1F1F1FFF1F1F1FFC3C3C3FFFBFBFBFFA8A8A8FF0000
00FF0000004C000000000000000000000000000000FFFEFEFEFFF1F1F1FF6640
49FF664049FF664049FF664049FF664049FFADADADFF767676FF5D5D5DFF4040
40FF000000FF000000000000000000000000000000FFFEFEFEFFF1F1F1FF6640
49FFFFFFFFFFFFFFFFFFFFFFFFFF664049FFE2E2E2FF858585FF494B4BFF1616
16FF000000FF000000000000000000000000000000FFFEFEFEFFF1F1F1FF6640
49FF664049FF664049FF664049FF664049FF664049FF664049FFEEEEEEFFC5C5
C5FF000000FF000000000000000000000000000000FFFEFEFEFFEFEFEFFF6640
49FFFFFFFFFF664049FFFFFFFFFFFFFFFFFFFFFFFFFF664049FFECECECFFC4C4
C4FF000000FF000000000000000000000000000000FFFDFDFDFFEEEEEEFF6640
49FF664049FF664049FF664049FF664049FF664049FF664049FFEBEBEBFFC3C3
C3FF000000FF000000000000000000000000000000FFFDFDFDFFEDEDEDFF6640
49FFFFFFFFFFFFFFFFFF664049FFFFFFFFFFFFFFFFFF664049FFEAEAEAFFC1C1
C1FF000000FF000000000000000000000000000000FFFDFDFDFFEBEBEBFF6640
49FF664049FF664049FF664049FF664049FF664049FF664049FFE8E8E8FFC0C0
C0FF000000FF000000000000000000000000000000FFFDFDFDFFEAEAEAFF6640
49FFFFFFFFFF664049FFFFFFFFFFFFFFFFFFFFFFFFFF664049FFE7E7E7FFBFBF
BFFF000000FF000000000000000000000000000000FFFDFDFDFFE8E8E8FF6640
49FF664049FF664049FF664049FF664049FF664049FF664049FFE5E5E5FFBEBE
BEFF000000FF000000000000000000000000000000FFFDFDFDFFE7E7E7FFE7E7
E7FFE6E6E6FFE6E6E6FFE6E6E6FFE5E5E5FFE5E5E5FFE4E4E4FFE4E4E4FFBDBD
BDFF000000FF000000000000000000000000000000FFFDFDFDFFE6E6E6FFE5E5
E5FFE5E5E5FFE5E5E5FFE4E4E4FFE4E4E4FFE3E3E3FFE3E3E3FFE3E3E3FFBBBB
BBFF000000FF000000000000000000000000000000FFC2C2C2FFBDBDBDFFBDBD
BDFFBDBDBDFFBCBCBCFFBCBCBCFFBBBBBBFFBBBBBBFFBBBBBBFFBBBBBBFFA0A0
A0FF000000D40000000000000000000000000000006B000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000640000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000FF000000FFABB5BA00000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000FFABB5BAFF000000FFABB5BA000000
000000000000000000000000000000000000ABB5BA0000000062000000BE0000
00FF000000FF000000FF000000FF000000FFABB5BAFFABB5BAFF000000FF0000
00E000000080ABB5BA0000000000000000000000006254595BFFABB5BAFFABB5
BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5
BAFF878F93FF000000800000000000000000000000A3ABB5BAFF000000680000
00FF000000FF000000FF000000FF000000FFABB5BAFFABB5BAFF000000FF0000
0068ABB5BAFF000000E00000000000000000000000FFABB5BAFF000000FF0000
0000000000000000000000000000000000FFABB5BAFF000000FFABB5BA000000
00FFABB5BAFF000000FF0000000000000000000000FFABB5BAFF000000FF0000
0000000000000000000000000000000000FF000000FFABB5BA00ABB5BA000000
00FFABB5BAFF000000FF0000000000000000000000FFABB5BAFF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
00FFABB5BAFF000000FF0000000000000000000000FFABB5BAFF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
00FFABB5BAFF000000FF0000000000000000000000FFABB5BAFF000000FF0000
0000ABB5BA00000000FF000000FF000000000000000000000000000000000000
00FFABB5BAFF000000FF0000000000000000000000FFABB5BAFF000000FFABB5
BA00000000FFABB5BAFF000000FF000000000000000000000000000000000000
00FFABB5BAFF000000FF0000000000000000000000C5ABB5BAFF000000680000
00FFABB5BAFFABB5BAFF000000FF000000FF000000FF000000FF000000FF0000
0068ABB5BAFF000000E0000000000000000000000080787F83FFABB5BAFFABB5
BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5BAFFABB5
BAFF878F93FF000000800000000000000000ABB5BA0000000080000000C50000
00FFABB5BAFFABB5BAFF000000FF000000FF000000FF000000FF000000FF0000
00E000000080ABB5BA0000000000000000000000000000000000ABB5BA00ABB5
BA00000000FFABB5BAFF000000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000ABB5BA00000000FF000000FF000000000000000000000000000000000000
000000000000000000000000000000000067000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000073000000FF2F3031FF2A2B2BFF2A2B2BFF2A2B
2BFF2A2B2BFF2A2B2BFF2A2B2BFF2A2B2BFF2A2B2BFF2A2B2BFF2A2B2BFF2A2B
2BFF2A2B2BFF000000F1000000FF0000008E000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF0000007900000000000000FFAAAAAAFFABABABFFAAAA
AAFFADADADFFAEAEAEFFAFAFAFFFAFAFAFFFB3B3B3FFB5B5B5FFB6B6B6FFBBBB
BBFFB1B1B1FF000000FF0000000000000000000000FFFFFFFFFFE0E0E0FF0000
00FF000000FFC4C4C4FF000000FF000000FF000000FFCACACAFF000000FF0000
00FFDDDDDDFF000000FF0000000000000000000000FFFFFFFFFFE0E0E0FFE0E0
E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0
E0FFE1E1E1FF000000FF0000000000000000000000FFFFFFFFFFE0E0E0FFE0E0
E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0E0FFE0E0
E0FFE4E4E4FF000000FF0000000000000000000000FFFFFFFFFFE2E2E2FF6C4E
31FFE9E9E9FF000000FF000000FF000000FF000000FFF7F7F7FF000000FFF7F7
F7FFE4E4E4FF000000FF0000000000000000000000FFFFFFFFFFE6E6E6FFE9E9
E9FFE9E9E9FFE9E9E9FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF5F5F5FFF7F7
F7FFE8E8E8FF000000FF0000000000000000000000FFFFFFFFFFE9E9E9FF6C4E
31FFE9E9E9FF000000FF000000FF000000FF000000FF000000FFF8F8F8FFFBFB
FBFFEAEAEAFF000000FF0000000000000000000000FFFFFFFFFFE7E7E7FFE9E9
E9FFEBEBEBFFEDEDEDFFEEEEEEFFF0F0F0FFF2F2F2FFF4F4F4FFF4F4F4FFF8F8
F8FFE8E8E8FF000000FF0000000000000000000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF00000000000000000000000000000000000000000000
000000000022000000FF000000FF000000FF0000008200000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0022000000FF00000039000000FF00000011000000FF00000071000000000000
0000000000000000000000000000000000000000001000000021000000330000
00FF0000002A0000003B000000FF000000330000003B000000FF000000310000
0021000000130000000800000000000000000000000000000000000000000000
00000000000000000000000000FF0000001D0000000000000000000000000000
0000000000000000000000000000
}
end
object ILMessages: TImageList
left = 178
top = 64
Bitmap = {
4C69050000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FF0008FF830000FF830008FF830000FFFF0008FF830000FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FFFF00
08FFFFC2CDFFFFFFFF00FFC2FFFFFFFFFF00FFC2CDFFFFFFFF00000000FF0000
00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FFFFFFFF00FFC2
CDFFFFFFFF00FFC2CDFFFF0000FFFF0000FFFFFFFF00FFC2CDFFFFFFFF00C500
08FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FF0008FFFFC2CDFFFFFF
FF00FFC2FFFFFFFFFF00830000FFFF0000FFFFC2FFFFFFFFFF00FFC2CDFFFFFF
FF00000000FFFF0008FFFFFFFF00FFFFFF00FF0008FFFFC2CDFFFFFFFF00FFC2
CDFFFFFFFF00FFC2CDFFFFFFFF00FFC2CDFFFFFFFF00FFC2CDFFFFFFFF00FFC2
CDFFFF0008FF000000FFFFFFFF00FFFFFF00830000FFFFFFFF00FFC2FFFFFFFF
FF00FFC2CDFFFF0008FFFF0000FFFF0000FFFFC2CDFFFFFFFF00FFC2FFFFFFFF
FF00FFC2CDFF000000FFFFFFFF00FFFFFF00830008FFFFC2CDFFFFFFFF00FFC2
CDFFFFFFFF00FFC2CDFFFF0008FFFF0000FFFFFFFF00FFC2CDFFFFFFFF00FFC2
CDFFFFFFFF00000000FFFFFFFF00FFFFFF00830000FFFF0008FFFFC2CDFFFFFF
FF00FFC2FFFFFFFFFF00830000FFFF0000FFFFC2FFFFFFFFFF00FFC2CDFFFFFF
FF00FF0000FF000000FFFFFFFF00FFFFFF00FFFFFF00830000FFFFFFFF00FFC2
CDFFFFFFFF00FF0000FFFF0000FFFF0000FFFF0000FFFFC2CDFFFFFFFF00C500
08FF000000FF830000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FFFF00
08FFFFC2CDFFFFFFFF00FFC2FFFFFFFFFF00FFC2CDFFFFFFFF00FF0000FF0000
00FF830000FFFF0008FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
00FF000000FFC50008FFFFFFFF00FFC2CDFFFF0008FF000000FF000000FF8300
00FF830008FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00000000FF000000FFFFFFFF00000000FFFF0008FF830000FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00000000FFFFC2CDFF000000FF830000FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00000000FF000000FFFF0008FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00000008FF000000FF000000FFFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00000008FF00C2FFFF00FFFFFF000000FFFF0008FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000008FF00C2CDFF00FFFFFF00C2CDFF00FFFFFF000000FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000FF00FFFFFF000000FF00FFFFFF00C2FFFF000000FF830000FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
00FF00FFFFFF000000FF000000FF000000FF00FFFFFF00C2CDFF000000FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
08FF00C2CDFF000000FF000000FF000000FF00C2CDFF00FFFFFF000000FFFF00
08FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000008FF00C2
CDFF00FFFFFF000000FF000000FF000000FF00FFFFFF00C2CDFF00FFFFFF0000
00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000008FF00C2CDFF00FF
FFFF00C2FFFF000008FF000000FF000008FF00C2FFFF00FFFFFF00C2CDFF0000
00FF830000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FF00FFFFFF00C2
CDFF00FFFFFF00C2CDFF000000FF00C2CDFF00FFFFFF00C2CDFF00FFFFFF00C2
CDFF000000FFFFFFFF00FFFFFF00FFFFFF00000000FF00FFFFFF00C2FFFF00FF
FFFF00C2CDFF00FFFFFF00C2FFFF00FFFFFF00C2CDFF00FFFFFF00C2FFFF00FF
FFFF000000FFFF0008FFFFFFFF00FFFFFF00000008FF00C2CDFF00FFFFFF00C2
CDFF00FFFFFF830000FF000000FF830000FF00FFFFFF00C2CDFF00FFFFFF00C2
CDFF00FFFFFF000000FFFFFFFF00FFFFFF00000000FF00FFFFFF00C2CDFF00FF
FFFF00C2FFFF00FFFFFF00C2CDFF00FFFFFF00C2FFFF00FFFFFF00C2CDFF00FF
FFFF00C2FFFF000000FFFFFFFF00FFFFFF00FFFFFF00000000FF000000FF0000
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF830000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FFFF00
08FF830000FFFF0008FF830000FFFF0008FF830000FFFF0008FF830000FFFF00
08FF830000FFFF0008FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FF0008FF000000FF000000FF000000FF000000FFFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FF0000
00FF0000C5FF0000FFFF0000FFFF0000FFFF0000C5FF000000FF830000FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FF0000FFFF0000
C5FF0000FFFF0000C5FF0000FFFF0000C5FF0000FFFF0000C5FF0000FFFF8300
00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FF0000C5FFFF00
08FFFF0000FF0000FFFF0000C5FF0000FFFFFF0000FFFF0008FF0000C5FF0000
00FF830000FFFFFFFF00FFFFFF00FFFFFF00FF0008FF0000C5FF0000FFFFC500
08FFFFFFFF00C50008FF0000FFFFC50008FFFFFFFF00C50008FF0000FFFF0000
C5FF000000FFFFFFFF00FFFFFF00FFFFFF00000000FF0000FFFF0000FFFF0000
FFFFC50000FFFFFFFF00FF0000FFFFFFFF00C50000FF0000FFFF0000FFFF0000
FFFF000000FFFF0008FFFFFFFF00FFFFFF00000000FF0000C5FF0000FFFF0000
C5FF0000FFFFC50008FFFFFFFF00FFC2CDFF0000FFFF0000C5FF0000FFFF0000
C5FF000000FF830000FFFFFFFF00FFFFFF00000000FF0000FFFF0000C5FF0000
FFFFFF0000FFFFFFFF00FFC2CDFFFFFFFF00FF0000FF0000FFFF0000C5FF0000
FFFF000000FFFF0008FFFFFFFF00FFFFFF00000000FF0000C5FF0000FFFFC500
08FFFFFFFF00C50008FF0000FFFFC50008FFFFFFFF00C50008FF0000FFFF0000
C5FF000000FF830000FFFFFFFF00FFFFFF00FFFFFF00000000FF0000FFFFFF00
08FFC50000FF0000FFFF0000FFFF0000FFFFC50000FFFFFFFF000000FFFF0000
00FF830000FFFF0008FFFFFFFF00FFFFFF00FFFFFF00830000FF0000FFFF0000
C5FF0000FFFF0000C5FF0000FFFF0000C5FF0000FFFF0000C5FF0000FFFF0000
00FF830008FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00830000FF0000
00FF0000FFFF0000FFFF0000C5FF0000FFFF0000FFFF000000FF000000FFFF00
08FFFF0000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008300
00FF000000FF000000FF000000FF000000FF000000FF830000FF830008FFC500
08FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FF0008FF830000FFFF0008FF830000FFFF0008FFFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000
0000000000000000000000FFFFFF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000FFFFFF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000FFFFFF000000000000
000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FF
FFFF00000000000000000000000000000000000000000000000000FFFFFF00FF
FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000
000000000000000000000000000000000000000000000000000000FFFFFF00FF
FFFF00FFFFFF000000FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF0000
0000000000000000000000000000000000000000000000FFFFFF00FFFFFF00FF
FFFF000000FFFFFFFFFF00FFFFFFFFFFFFFF000000FF00FFFFFF00FFFFFF00FF
FFFF000000000000000000000000000000000000000000FFFFFF00FFFFFF0000
00FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF000000FF00FFFFFF00FF
FFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000
00FF00FFFFFFFFFFFFFF7B7D7BFFFFFFFFFF00FFFFFF000000FF00FFFFFF00FF
FFFF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF0000
00FFFFFFFFFF00FFFFFF7B7D7BFF00FFFFFFFFFFFFFF000000FF00FFFFFF00FF
FFFF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FF
FFFF000000FFFFFFFFFF7B7D7BFFFFFFFFFF000000FF00FFFFFF00FFFFFF00FF
FFFF00000000000000000000000000000000000000000000000000FFFFFF00FF
FFFF00FFFFFF000000FFFFFFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF0000
000000000000000000000000000000000000000000000000000000FFFFFF00FF
FFFF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF0000
0000000000000000000000000000000000000000000000FFFFFF000000000000
000000FFFFFF000000FF000000FF000000FF00FFFFFF000000000000000000FF
FFFF000000000000000000000000000000000000000000000000000000000000
000000000000000000FFBDBEBDFF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF000000FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF000000FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFFFFFFFFFFFFFFFFF7B7D7BFFFFFFFFFFFFFFFFFF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
00FFFFFFFFFFFFFFFFFF7B7D7BFFFFFFFFFFFFFFFFFF000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000FFFFFFFFFF7B7D7BFFFFFFFFFF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FFFFFFFFFF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FFFFFFFFFF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF000000FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FFBDBEBDFF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF000000FF000000FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000000000000000000000000000000000
0000000000000000000000000000
}
end
object ITMessages: TIdleTimer
Enabled = False
Interval = 100
OnTimer = ITMessagesTimer
left = 93
top = 173
end
object TIDebug: TTrayIcon
BalloonHint = 'FPC/Lazarus debug messages'
PopUpMenu = PMTray
Icon.Data = {
BE1000000000010001002020000001002000A810000016000000280000002000
0000400000000100200000000000001000006400000064000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000001000000040000000A0000
0012000000130000000D00000006000000010000000100000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000020000000500000024000000820000
00960000005C0000002800000015000000070000000300000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000020000000E00000043161616C7999999FF3B3B
3BFF080808E80000007E000000440000001F0000000E00000004000000010000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000010000001A08161BF20D1C21FC637B82FE76959DFF5273
7BFF35484CFE09181DFD08161AF800000059000000220000000A000000020000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000031F2C2F796D9BA7FCBCE0EAFFEAF5F8FFBBDEE7FF8AC4
D4FF83BCCCFF6DA8B8FF233B42FD020304BD0000003E00000015000000050000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000004586468ABB8DAE3FFBEDEE6FFB7D4DCFF94C2CFFF82B7
C6FF7AAEBDFF80B0BDFF6693A0FF142125EB0000004C0000001C000000070000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000040E1E23F7A8DAE8FFCEEBF4FFF0F9FBFFB9E1EDFF92CE
DFFF87C4D6FF7BB8C9FF518897FF0A191EFD0000005300000020000000080000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000045B6E74B1C2E8F3FFBBDEE9FFB7D7E0FFA6CEDAFF8AC0
CFFF7FB6C5FF8FBBC8FF74A8B6FF1B2E33F00000005400000021000000080000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000040E1E23F7A8DDECFFC4EAF5FFF2FAFCFFB8E5F2FF95D5
E7FF8BCBDCFF83BFD0FF6093A1FF0B1A1EFD0000005400000021000000080000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000005607075B1CDEDF7FFB8DFEAFFB4D6E0FF9DCDDAFF8AC3
D3FF87BDCCFF97C2CEFF71A8B8FF1D3035F00000005500000021000000080000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000001000000060B1B20FAAADFEDFFBFE9F5FFF0F9FCFFB7E4F0FF9AD7
E7FF90CDDEFF80BFD1FF5691A1FF0A191EFE00000057000000250000000B0000
0001000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00010000000308161B8C09181DFEB3D7E2FFBBD1D8FFC6D1D6FFBCC9CFFFB5CA
D1FFACCCD5FFA6CBD5FF76A9B7FF09181DFF061115B500000032000000160000
0005000000010000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010815
1A2D08161BD5141B1DB7B5B4B6D2B7B9BDF6B6B6B7FFB8BABCFFBAC1C3FFBBC9
CCFFBACACDFFB9C8CBFFC2CECEF3BFC3C1DC636768E1071519E5040B0D560000
0017000000080000000100000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000008161B2C0817
1CE75C5B5DB9D1C6C5BDE7D7D5B7D2CAC5BCBCBDB7DCB9BFBAE8C1CDC7E3C0D0
CCE3C9CEC6F3BAC6BDDCD4D8CAB8E3E2D5BADCD9D3C78D8D8EE008161BF1040B
0E53000000160000000500000001000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000208171CD28382
83C0E6DAD9C2E6D5CEA6E0DBCBA6E2DECFB4BAC5BDE1D5D6C9B2DED9CBA6DDD9
CBA6D0D2C8F4C5CABAC0DEE7CBA6DEEBCBA6E1E2CBA6EDE9E2CA8F8F8FDD0715
19E5000000320000001100000004000000000000000000000000000000000000
0000000000000000000000000000000000000000000008171C88181F22A6D5CC
CABBE6D6D0A7E2DECDA6E2E0CDA6E7E5D8DAB4B6ABDCE2DBCDA9E1DACCA9DFD8
CCA9D4D5CECDC4D0C8D5DEE2CBA8DEECCBA7DEEFCBA6E1E2CBA6DDD8D4C66267
68E1061216AC0000001F0000000A000000010000000000000000000000000000
00000000000000000000000000000000000008161B1408171CFCBDB6B6BBEFE1
DFB5E6DFD3A6E7E1D5A8E9E1D8ABE9E6DED8D9DBD7CBECE3DDB4ECE2DCB5EBE1
DAB5EBE0DAC7BDBAB5F6E2DFD2B0E0E6CEACDFEFCCA8DEEDCBA6E9E5D7B5C4C1
BECC535D60FE0206084400000014000000030000000000000000000000000000
00000000000000000000000000000000000008171C7072787AB8EAE0DFC0E9DD
D9A6EBE1DAA8EEE4DFADEFE6E2B3D5D2D1E3F2E9E7BFF3EAE9C3F3EAE7C5F2E9
E7C5F1E9E6D3D7D5D4F3E9E2DCBDE4E3D5B4E1EAD0ADDEECCCA8E1E3CBA6E1D9
D0B37D8282E10611149A0000001E000000050000000100000000000000000000
00000000000000000000000000000000000108171CB8A2A0A1ADECDCDCA8F0E2
E0A7F2E6E5ABF4EBEAB6F6EFEFD3E0E0E1F8F8F2F2D2F8F2F2D5F7F2F1DAF7F1
F0DAF6EFEFD7E7E6E7EAF1E9E7CEEBE4DFC2E6E7D7B6E0E8CFABE0E3CBA7E3DB
CCA6908E8EC4071418D400000029000000090000000100000000000000000000
00000000000000000000000000000000000108171CE6DDDADAC4EFE1E1A7F3E5
E5A8F5EAEAADF8F0F0BCF2EFF1D9F0F0F2E8FAF8F8E3FBF8F8EEFCF9F9FAFBF9
F9FAF9F3F3DDF4F0F0F1F2EBEBE9F0E8E5CBEAE6DCBCE3E4D0ADE0E0CCA8E3D9
CCA6A19A97AB08161BF10000002F0000000A0000000200000000000000000000
00000000000000000000000000000000000109181DFBE6E1E1B7F3E6E6A6F4EA
EAA8F7EFEFAEF9F4F4BEFAF8F8EFFDFBFBF7FCFBFBF9FDFCFCFDFCFAFAFFFBF9
F9FFFDFDFDFEF9F5F5F0EFECEDE7F3E9E8CEECE3DDBEE3DFD1AEE2DBCCA8E4D5
CCA6BDB2AFA608171CFD000000330000000C0000000200000000000000000000
00000000000000000000000000000000000109181DFBE7E2E2B7F4E9E9A6F6EC
ECA8F8F2F2ADFAF6F6BBFAF7F7C9FCF9F9DAFBF9F9E3FCFAFAECFBF8F8EAFBF8
F8EBFBF7F7EAF8F2F2DBF8F0F0D7F3E8E7CAEBE1DBBBE4DBD1ADE1D8CCA8E4D4
CCA6BEB2AFA508171CFD000000320000000B0000000200000000000000000000
00000000000000000000000000000000000108171CE5D8D5D5B6F3E9E9A7F7EF
EFA7FAF4F4A9FBF8F8B2FCFAFABBFCF9F9C5FBF8F8CBFAF7F7CFF9F5F5D1F9F3
F3D1F8F1F1D1F7EEEECFF4EAEACAEFE2E0BEE8DBD6B3E3D6CEAAE2D4CBA7E4D3
CCA6A29998A908161BF00000002D0000000A0000000200000000000000000000
00000000000000000000000000000000000008171CB8CACACAC2F3E9E9A8F8F0
F0A6FAF6F6A7FCFAFAABFEFDFDB0FCFAFAB6FAF6F6BBF9F4F4BFF8F2F2C0F7EE
EEC1F5ECECC1F4E9E9BFF1E3E3BBECDCD9B3E6D6D0ADE3D3CCA8E3D2CBA6EBDC
D7B5A8A6A6CA071418D100000026000000080000000100000000000000000000
00000000000000000000000000000000000008171C70959A9BBEF2EEEECAF8F0
F0A9FAF6F6B2FBF9F9B3FCFAFAB0FBF7F7B1F9F4F4ADF8F1F1AEF6ECECAFF4E8
E8AFF2E4E4AFF0DFDFAEEDDADAADEAD4D3AAE4D1CDA8E3D0CBA6E4D0CBA6E8DC
DABE626869D5061115940000001A000000040000000100000000000000000000
00000000000000000000000000000000000008161B14323E42FCE3E2E2D3F8F1
F1B6FAF5F5BAFCFAFACAFCFAFACEFCF9F9CBF8F2F2AFF6EDEDA8F4E8E8A8F2E4
E4A8EFE0E0A8EDDBDBA8EBD6D6A8E8D2D0A7E5D0CCA6E5D0CCA6EBDAD7B5C5C0
BFCA08171CFD0207083E00000011000000020000000000000000000000000000
0000000000000000000000000000000000000000000008171C877B8183B4E6E2
E2C2F6EFEFB1FCF9F9D3FDFCFCEBFDFCFCE8F9F3F3C2F5EBEBA9F3E5E5A6F1E2
E2A6EFDDDDA6EDD9D9A6EAD4D3A6E8D1CFA6E6D0CDA6E6CFCDA6DFD7D6C44449
4BCC071317A50000001900000007000000010000000000000000000000000000
000000000000000000000000000000000000000000000000000108171CCF9394
96ABF0E9E9C2F9F3F3BEFDFBFBE5FDFBFBEBFAF5F5CFF5EBEBB3F1E3E3A7F0DF
DFA6EEDBDBA6ECD7D7A6E9D3D1A6E7D0CEA6E6CECDA6EDE2E2CA969697D10815
1ADF000000280000000C00000003000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000008161B2B3440
44E9ABABACBAE5E1E1C3F5ECECBBF9F3F3CDF9F2F2CEF6EDEDC1F0E2E2ACEEDC
DCA6ECD8D8A6EBD4D4A6E8D0CFA6ECD9D9B5DFD6D6C3989698D008171BEC050D
1047000000100000000300000001000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000816
1B2C08171CCF969B9BC3DCD9D9CDF2ECECCFF2E5E5B2F2E4E4B3EFDEDEACEDD9
D9A6EBD5D5A6EAD2D2A6EADCDCBDC9C2C2C76D7273CA08161ADC050D10480000
000F000000050000000100000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000208171C8809181DFB929798C2B6B5B5BBC7C0C0ABE4DDDDB8E3DC
DCB8C4BCBCAC9A9798B46C7273C2313D41FD07151998000000150000000A0000
0003000000010000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000010713171708161B7408171BBB08171CE708171CFC0817
1CFC08171CE908161BC00714197E040C0E250000000C00000005000000020000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000
}
Hint = 'FPC/Lazarus debug messages'
Visible = True
left = 253
top = 86
end
object PMTray: TPopupMenu
Images = ILMain
left = 207
top = 139
object PMIPause: TMenuItem
Action = APause
OnClick = APauseExecute
end
object PMIShow: TMenuItem
Action = AShow
OnClick = AShowExecute
end
object PMIClear: TMenuItem
Action = AClear
OnClick = AClearExecute
end
object MenuItem5: TMenuItem
Caption = '-'
end
object PMIQuit: TMenuItem
Action = AQuit
OnClick = AQuitExecute
end
end
object SDMessages: TSaveDialog
Title = 'Save messages to file'
DefaultExt = '.log'
Filter = 'Log files|*.log|Text files|*.txt|All files|*.*'
Options = [ofPathMustExist, ofEnableSizing, ofViewDetail]
left = 42
top = 118
end
end

View File

@ -0,0 +1,820 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TMainForm','FORMDATA',[
'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#204#1#6'Height'#3','#1#3'Top'#3#25#1
+#5'Width'#3#144#1#7'Caption'#6#20'Debug message viewer'#12'ClientHeight'#3#22
+#1#11'ClientWidth'#3#144#1#4'Menu'#7#13'MMDebugServer'#7'OnClose'#7#9'FormCl'
+'ose'#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#10'LCLVers'
+'ion'#6#6'0.9.27'#0#9'TListView'#10'LVMessages'#4'Left'#2#0#6'Height'#3#252#0
+#3'Top'#2#26#5'Width'#3#144#1#5'Align'#7#8'alClient'#7'Columns'#14#1#7'Capti'
+'on'#6#4'Type'#8'MinWidth'#2'2'#5'Width'#2'P'#0#1#7'Caption'#6#4'Time'#8'Min'
+'Width'#2'2'#5'Width'#2'P'#0#1#7'Caption'#6#7'Message'#5'Width'#3#219#0#0#0
+#11'MultiSelect'#9#8'ReadOnly'#9#9'RowSelect'#9#11'SmallImages'#7#10'ILMessa'
+'ges'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#10'OnDblClick'#7#18'LVMessa'
+'gesDblClick'#0#0#8'TToolBar'#6'TBMain'#4'Left'#2#0#6'Height'#2#26#3'Top'#2#0
+#5'Width'#3#144#1#7'Caption'#6#6'TBMain'#6'Images'#7#6'ILMain'#8'TabOrder'#2
+#1#0#11'TToolButton'#7'TBPause'#4'Left'#2#24#3'Top'#2#2#6'Action'#7#6'APause'
+#0#0#11'TToolButton'#11'ToolButton2'#4'Left'#2']'#3'Top'#2#2#6'Action'#7#6'A'
+'Clear'#0#0#11'TToolButton'#14'TBCopyMessages'#4'Left'#3#139#0#3'Top'#2#2#6
+'Action'#7#10'ACopyLines'#0#0#11'TToolButton'#6'TBQuit'#4'Left'#2#1#3'Top'#2
+#2#6'Action'#7#5'AQuit'#0#0#11'TToolButton'#6'TBSave'#4'Left'#2't'#3'Top'#2#2
+#6'Action'#7#10'ASelectAll'#0#0#11'TToolButton'#11'ToolButton3'#4'Left'#2'F'
+#3'Top'#2#2#5'Width'#2#23#7'Caption'#6#11'ToolButton3'#5'Style'#7#12'tbsSepa'
+'rator'#0#0#11'TToolButton'#11'ToolButton1'#4'Left'#2'/'#3'Top'#2#2#6'Action'
+#7#5'AHide'#0#0#11'TToolButton'#11'ToolButton4'#4'Left'#3#162#0#3'Top'#2#2#6
+'Action'#7#5'ASave'#0#0#0#9'TMainMenu'#13'MMDebugServer'#6'Images'#7#6'ILMai'
+'n'#4'left'#2''''#3'top'#2'A'#0#9'TMenuItem'#5'MFile'#7'Caption'#6#5'&File'#0
+#9'TMenuItem'#7'MIPause'#6'Action'#7#6'APause'#7'OnClick'#7#13'APauseExecute'
+#0#0#9'TMenuItem'#9'MIOptions'#6'Action'#7#8'AOptions'#7'OnClick'#7#15'AOpti'
+'onsExecute'#0#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#1'-'#0#0#9'TMenuItem'
+#6'MIHide'#6'Action'#7#5'AHide'#7'OnClick'#7#12'AHideExecute'#0#0#9'TMenuIte'
+'m'#6'MIQuit'#6'Action'#7#5'AQuit'#7'OnClick'#7#12'AQuitExecute'#0#0#0#9'TMe'
+'nuItem'#5'MEdit'#7'Caption'#6#4'Edit'#0#9'TMenuItem'#7'MIClear'#6'Action'#7
+#6'AClear'#7'OnClick'#7#13'AClearExecute'#0#0#9'TMenuItem'#6'MICopy'#6'Actio'
+'n'#7#10'ACopyLines'#7'OnClick'#7#17'ACopyLinesExecute'#0#0#9'TMenuItem'#6'M'
+'ISave'#6'Action'#7#5'ASave'#7'OnClick'#7#12'ASaveExecute'#0#0#9'TMenuItem'#9
+'MenuItem2'#6'Action'#7#10'ASelectAll'#7'OnClick'#7#17'ASelectAllExecute'#0#0
+#0#9'TMenuItem'#5'MView'#7'Caption'#6#4'View'#7'OnClick'#7#10'MViewClick'#0#9
+'TMenuItem'#13'MIAlwaysOntop'#9'AutoCheck'#9#7'Caption'#6#13'Always on top'#7
+'OnClick'#7#18'MIAlwaysOntopClick'#0#0#9'TMenuItem'#9'MIToolbar'#9'AutoCheck'
+#9#7'Caption'#6#7'Toolbar'#7'OnClick'#7#14'MIToolbarClick'#0#0#0#0#11'TActio'
+'nList'#6'ALMain'#6'Images'#7#6'ILMain'#4'left'#2'X'#3'top'#2'A'#0#7'TAction'
+#5'AQuit'#7'Caption'#6#5'&Quit'#4'Hint'#6#20'Quit the application'#10'ImageI'
+'ndex'#2#0#9'OnExecute'#7#12'AQuitExecute'#8'ShortCut'#3'Q@'#0#0#7'TAction'#6
+'AClear'#7'Caption'#6#12'Clear window'#4'Hint'#6#22'Clear the message list'
+#10'ImageIndex'#2#1#9'OnExecute'#7#13'AClearExecute'#8'ShortCut'#3'L@'#0#0#7
+'TAction'#6'APause'#7'Caption'#6#14'Pause messages'#4'Hint'#6#28'Stop displa'
+'ying new messages'#10'ImageIndex'#2#2#9'OnExecute'#7#13'APauseExecute'#8'Sh'
+'ortCut'#3'P@'#0#0#7'TAction'#8'AOptions'#7'Caption'#6#10'Options...'#4'Hint'
+#6#20'Set selected options'#10'ImageIndex'#2#3#9'OnExecute'#7#15'AOptionsExe'
+'cute'#8'ShortCut'#3'O@'#0#0#7'TAction'#5'AHide'#7'Caption'#6#12'&Hide windo'
+'w'#4'Hint'#6#31'Hide the messages window window'#10'ImageIndex'#2#4#9'OnExe'
+'cute'#7#12'AHideExecute'#8'ShortCut'#3'H@'#0#0#7'TAction'#10'ACopyLines'#7
+'Caption'#6#19'Copy selected lines'#4'Hint'#6#23'Copy lines to clipboard'#10
+'ImageIndex'#2#5#9'OnExecute'#7#17'ACopyLinesExecute'#8'OnUpdate'#7#16'ACopy'
+'LinesUpdate'#8'ShortCut'#3'C@'#0#0#7'TAction'#5'ASave'#7'Caption'#6#5'ASave'
+#4'Hint'#6#27'Save selected lines to file'#10'ImageIndex'#2#6#9'OnExecute'#7
+#12'ASaveExecute'#8'ShortCut'#3'S@'#0#0#7'TAction'#10'ASelectAll'#7'Caption'
+#6#10'ASelectAll'#4'Hint'#6#19'Select all messages'#10'ImageIndex'#2#7#9'OnE'
+'xecute'#7#17'ASelectAllExecute'#8'ShortCut'#3'A@'#0#0#7'TAction'#7'AResume'
+#7'Caption'#6#15'Resume messages'#4'Hint'#6'%Continue displaying incoming me'
+'ssages'#10'ImageIndex'#2#8#9'OnExecute'#7#14'AResumeExecute'#8'ShortCut'#3
+'R@'#0#0#7'TAction'#5'AShow'#7'Caption'#6#11'Show window'#4'Hint'#6#20'Show '
+'messages window'#10'ImageIndex'#2#9#9'OnExecute'#7#12'AShowExecute'#0#0#0#10
+'TImageList'#6'ILMain'#4'left'#3#144#0#3'top'#2'A'#6'Bitmap'#10#14'('#0#0'Li'
+#10#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0
,#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#224#226#226#255#208#211#211
+#255#189#192#192#255#171#173#173#255#145#146#146#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0
+#255#224#226#226#255#208#211#211#255#189#192#192#255#181#183#183#255#152#154
+#154#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#255'Eb'#228#255#0#0#0#255#220#222#222#255#208#211#211#255#190#193
+#193#255#183#185#185#255#155#156#156#255#0#0#0#255#6#8#6#255#7#9#7#255#0#0#0
+#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'[u'#231#255'>S'#179#255
+#0#0#0#255#205#208#208#255#190#193#193#255#183#185#185#255#155#156#156#255#0
+#0#0#255#12#17#14#255#13#18#15#255#0#0#0#255#0#0#0#0#0#0#0#255'Eb'#228#255'E'
+'b'#228#255'Eb'#228#255'Eb'#228#255#30'B'#223#255'6M'#177#255#0#0#0#255#187
+#189#189#255#162#164#164#255#155#156#156#255#0#0#0#255#20#28#22#255#22#31#25
+#255#0#0#0#255#0#0#0#0#0#0#0#255'Eb'#228#255#10#22#176#255#10#22#176#255#10
+#22#176#255#10#22#176#255#16#27#177#255')9'#153#255#0#0#0#255'wyy'#255'Z[['
+#255#0#0#0#255#27'%'#29#255#29'( '#255#0#0#0#255#0#0#0#0#0#0#0#255'Eb'#228
+#255#0#0#153#255#0#0#153#255#0#0#153#255#0#0#153#255#0#0#136#255',?'#170#255
+#0#0#0#255'jll'#255#155#156#156#255#0#0#0#255'$1'''#255'&5*'#255#0#0#0#255#0
+#0#0#0#0#0#0#255'+>'#200#255#11#16#161#255#14#20#163#255#0#0#136#255#0#0#136
+#255',?'#170#255#0#0#0#255#190#193#193#255#183#185#185#255#155#156#156#255#0
+#0#0#255'''7+'#255',=1'#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#136#255',?'#170#255#0#0#0#255#209#212#212#255#190#193#193#255
+#183#185#185#255#155#156#156#255#0#0#0#255'&5*'#255'1C5'#255#0#0#0#255#0#0#0
+#0'H'#129'`'#1'H'#129'`'#1'H'#129'`'#1#0#0#0#255',?'#170#255#0#0#0#255#224
+#226#226#255#209#212#212#255#190#193#193#255#178#180#180#255#139#141#141#255
+#0#0#0#255'):-'#255'5J;'#255#0#0#0#255#0#0#0#0'H'#129'`'#1'H'#129'`'#1'H'#129
+'`'#1#0#0#0#255#0#0#0#255#0#0#0#255#222#224#224#255#199#201#201#255#145#148
+#147#255'OTQ'#255#0#0#0#255'/A4'#255'=TB'#255'C]I'#255#0#0#0#255#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#3#6#4#6#24'+ '#1#0#0#0#255#181#183#183#255'Y`\'#255#0#0
+#0#255'5J;'#255'B\I'#255'HdO'#255'KhS'#255'MjT'#255#0#0#0#255#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#6#6#17#6#6
+#6'K'#14#14#14#255'BBB'#255'JJJ'#255'>>>'#255',,,'#255#0#0#0#255#6#6#6'>'#6#6
+#6'!'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#6#6':'#0#0#0#255#0#0#0#255'q'
+#131#133#255#216#237#240#255#233#241#242#255#228#237#238#255#186#198#199#255
+'FRS'#255#0#0#0#255#0#0#0#255#6#6#6'K'#0#0#0#0#0#0#0#0#0#0#0#0#6#6#6'>'#16#16
+#16#255#165#192#194#255#165#191#193#255'gyz'#255'@GH'#255'%'''''#255'.56'#255
+'r'#133#135#255#136#158#160#255#138#161#163#255#140#163#165#255#0#0#0#255#6#6
+#6'!'#0#0#0#0#0#0#0#0'+++'#255#188#209#211#255#196#218#220#255#207#224#226
+#255#162#183#185#255'[bd'#255'689'#255'3<<'#255'S`a'#255#131#152#154#255#155
+#181#183#255#152#178#179#255#139#162#164#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0
+#255#211#228#232#255#233#241#244#255#228#241#242#255#218#233#234#255#210#226
+#229#255#190#210#213#255#167#193#195#255#148#173#175#255#164#190#192#255#172
+#196#198#255#156#182#184#255'fwy'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255'u'
+#137#138#255#210#237#241#255#233#248#251#255#237#245#249#255#238#247#248#255
+#236#247#248#255#230#243#245#255#217#234#236#255#203#221#222#255#137#155#157
+#255'Tbc'#255'JWX'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#130'FQR'#255'eqs'#255
+#145#157#159#255#200#225#228#255#207#229#233#255#203#224#226#255#203#209#209
+#255''#141#142#255'duv'#255'Xgh'#255'8BC'#255'"()'#255#0#0#0#130#0#0#0#0#0#0
+#0#0#0#0#0#0#27#31#31#255'044'#255'DIK'#255'bgh'#255'fop'#255'dkk'#255']ln'
+#255'KWX'#255'199'#255#21#22#23#255#22#26#26#255#25#30#31#255#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0'#**'#255#149#160#160#255'@MM'#255'066'#255'&**'#255'*//'#255
+#13#15#15#255#9#11#11#255#13#16#16#255'8>>'#255'+44'#255#31'$$'#255#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0'$++'#255#153#164#165#255#174#182#183#255'gpq'#255#146
+#161#161#255'cst'#255'5@@'#255'[ii'#255'/99'#255'_ii'#255'4??'#255' &&'#255#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'%,,'#255#163#173#173#255#210#217#217#255''
+#139#139#255#206#213#214#255'{'#136#136#255'OWX'#255#135#147#147#255'=JJ'#255
+'kxx'#255'BPP'#255'"))'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'%,,'#255#163#173
+#173#255#211#218#218#255#129#142#143#255#212#221#221#255#153#171#172#255'R]]'
+#255#147#160#160#255'@MM'#255'lyy'#255'BPP'#255'"))'#255#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0'$++'#255'u~~'#255#209#216#216#255#128#141#141#255#211#221#221
+#255#153#171#172#255'R]]'#255#147#160#160#255'@MM'#255'kxx'#255'8DD'#255'"(('
,#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'!'''''#255'=CC'#255#134#142#142#255'U^^'
+#255#208#218#218#255#153#171#172#255'R]]'#255#132#148#148#255'@MM'#255'S]]'
+#255'"(('#255#29'##'#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#6#6'K'#6#6#6#255#6
+#6#6#255':AB'#255'{'#143#143#255'lzz'#255'<DD'#255'^ll'#255',55'#255')..'#255
+#0#0#0#255#6#6#6'>'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6#6#6'W'
+#6#6#6#255#0#0#0#255#15#15#15#255#5#5#5#255#0#0#0#255#0#0#0#255#6#6#6'K'#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'#'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0
+#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'
+#0#0#0'#'#0#0#0#0#0#0#0'}'#0#0#0#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#18#0#0#0'}'#0#0#0#0#0#0
+#0'}'#0#0#0#0#0#0#0'7'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'b'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0
+'}'#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0#255
+#255#255#255#255#191#191#191#255'ttt'#255' '#255#0#0#0#255'"""'#255#131#131
+#131#255#223#223#223#255#209#209#209#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0
+#0#0'}'#0#0#0#0#0#0#0#255#255#255#255#255'ttt'#255'-0E'#255#140#150#212#255
+#149#160#226#255#140#150#212#255'-0E'#255#138#138#138#255#212#212#212#255#0#0
+#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0#255#255#255#255#255' '
+' '#255'nx'#193#255'w'#129#206#255'w'#129#206#255'w'#129#206#255'nx'#193#255
+'&&&'#255#215#215#215#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0#0#0
+#0#0#0#255#255#255#255#255#0#0#0#255'Zb'#186#255'Zb'#186#255'Zb'#186#255'Zb'
+#186#255'Zb'#186#255#0#0#0#255#218#218#218#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0
+#0#0#0#0#0'}'#0#0#0#0#0#0#0#255#255#255#255#255'"""'#255'5:'#153#255'=C'#166
+#255'=C'#166#255'=C'#166#255'5:'#153#255'((('#255#220#220#220#255#0#0#0#255#0
+#0#0#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0#255#255#255#255#255#128#128
+#128#255#5#6'*'#255#24#28#133#255' $'#146#255#24#28#133#255#5#6'*'#255#151
+#151#151#255#223#223#223#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0
+#0#0#0#0#0#255#255#255#255#255#217#217#217#255#135#135#135#255'%%%'#255#0#0#0
+#255'((('#255#151#151#151#255#255#255#255#255#223#223#223#255#0#0#0#255#0#0#0
+#0#0#0#0'}'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0#0#255#223#223#223#255#207#207#207
+#255#209#209#209#255#212#212#212#255#218#218#218#255#220#220#220#255#223#223
+#223#255#223#223#223#255#207#207#207#255#0#0#0#255#0#0#0#0#0#0#0'}'#0#0#0#0#0
+#0#0'}'#0#0#0#0#0#0#0'N'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'b'#0#0#0#0#0#0#0'}'#0#0#0#0#0#0
+#0'}'#0#0#0#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#18#0#0#0'}'#0#0#0#0#0#0#0'#'#0#0#0'}'#0#0#0
+'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'}'#0
+#0#0'}'#0#0#0'}'#0#0#0'}'#0#0#0'#'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'S'#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'L'#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254#254#255#254#254#254#255#254
+#254#254#255#254#254#254#255#254#254#254#255#254#254#254#255#253#253#253#255
+#224#224#224#255#193#193#193#255#0#0#0#255#0#0#0'S'#0#0#0#0#0#0#0#0#0#0#0'M'
+#0#0#0#255#0#0#0#255#254#254#254#255#0#0#0#255#0#0#0#255#168#168#168#255#241
+#241#241#255#241#241#241#255#241#241#241#255#195#195#195#255#251#251#251#255
+#168#168#168#255#0#0#0#255#0#0#0'L'#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0
+#255#254#254#254#255#0#0#0#255#239#239#239#255#0#0#0#255#190#190#190#255#202
+#202#202#255#241#241#241#255#173#173#173#255'vvv'#255']]]'#255'@@@'#255#0#0#0
+#255#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#239#239
+#239#255#0#0#0#255#241#241#241#255#241#241#241#255#240#240#240#255#226#226
+#226#255#133#133#133#255'IKK'#255#22#22#22#255#0#0#0#255#0#0#0#0#0#0#0#255
+#255#255#255#255#239#239#239#255#239#239#239#255#239#239#239#255#195#195#195
+#255#0#0#0#255#189#189#189#255#179#179#179#255#224#224#224#255#239#239#239
+#255#238#238#238#255#238#238#238#255#197#197#197#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#255#255#255#255#255#239#239#239#255#195#195#195#255#0#0#0#255#239
+#239#239#255#238#238#238#255#238#238#238#255#238#238#238#255#238#238#238#255
+#238#238#238#255#236#236#236#255#196#196#196#255#0#0#0#255#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#179#179#179#255#211#211#211#255
+#179#179#179#255#188#188#188#255#188#188#188#255#199#199#199#255#199#199#199
+#255#235#235#235#255#195#195#195#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#255#255#0#0#0#255#236#236#236#255#236#236#236#255#236#236#236
,#255#235#235#235#255#235#235#235#255#234#234#234#255#234#234#234#255#234#234
+#234#255#193#193#193#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255
+#239#239#239#255#195#195#195#255#0#0#0#255#194#194#194#255#232#232#232#255
+#131'nh'#255#131'nh'#255#131'nh'#255#131'nh'#255#232#232#232#255#192#192#192
+#255#0#0#0#255#0#0#0#0#0#0#0#255#255#255#255#255#239#239#239#255#239#239#239
+#255#239#239#239#255#195#195#195#255#0#0#0#255#233#233#233#255#131'nh'#255
+#165#139#135#255#163#132'|'#255#131'nh'#255#231#231#231#255#191#191#191#255#0
+#0#0#255#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#239
+#239#239#255#0#0#0#255#230#230#230#255#131'nh'#255#166#162#167#255#161#149
+#151#255#131'nh'#255#229#229#229#255#190#190#190#255#0#0#0#255#0#0#0#0#0#0#0
+#255#255#255#255#255#0#0#0#255#253#253#253#255#0#0#0#255#239#239#239#255#0#0
+#0#255#230#230#230#255#131'nh'#255#131'mh'#255#131'mh'#255#130'mg'#255#228
+#228#228#255#189#189#189#255#0#0#0#255#0#0#0#0#0#0#0'M'#0#0#0#255#0#0#0#255
+#253#253#253#255#0#0#0#255#0#0#0#255#159#159#159#255#229#229#229#255#228#228
+#228#255#228#228#228#255#227#227#227#255#227#227#227#255#227#227#227#255#187
+#187#187#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#194#194#194#255#189
+#189#189#255#189#189#189#255#189#189#189#255#188#188#188#255#188#188#188#255
+#187#187#187#255#187#187#187#255#187#187#187#255#187#187#187#255#160#160#160
+#255#0#0#0#212#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'k'#0#0#0#255#0#0#0#255#0#0#0#255
+#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'=-'#28#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#228#213#197#255#0#0#0#255#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#227#212#196#255#210#185#159#255'[C*'#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255
+#227#212#196#255#209#183#156#255#211#186#160#255#136'e?'#255'[C*'#255#0#0#0
+#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#227#212#196#255#213#190#166#255#213#189#164#255#209#184#158#255#136'e?'
+#255#136'e?'#255'[C*'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#255#227#212#196#255#212#188#163#255#215#193#170#255#212#188#163
+#255#209#184#158#255#136'e?'#255#136'e?'#255#136'e?'#255'[C*'#255#0#0#0#255#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#212#0#0#0#255#0#0#0#255#0#0#0#255#216
+#194#171#255#210#185#159#255#209#183#156#255#136'e?'#255'ZB)'#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#255#218#197#175#255#208#182#155#255#210#185#159#255#136'e?'#255'ZB)'
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#255#216#194#171#255#208#182#155#255#210#185#159#255#136'e?'
+#255'ZB)'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#255#217#196#174#255#210#185#159#255#210#185#159#255
+#136'e?'#255'ZB)'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#212#188#163#255#207#181#154#255#210#185
+#159#255#136'e?'#255'ZB)'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#185#146'h'#255#158'uI'#255#162
+'xK'#255'oS4'#255'`G-'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#129#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#129#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#255#179#179#179#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#214#214#214
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255'ddd'#255'MMM'#255'P'
+'PP'#255#255#255#255#255'iii'#255'xxx'#255#255#255#255#255#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
,#0#0#0#0#0#0#0#0#255#255#255#255#255'PPP'#255'LLL'#255#255#255#255#255'PPP'
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#129#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#0#0#0#255#179#179#179#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#214
+#214#214#255#0#0#0#255#0#0#0#0#0#0#0#255#227#227#227#255'ZZZ'#255'SSS'#255
+#145#145#145#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#0#0#0#255#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#0#0#0#255#255#255#255#255'ddd'#255'MMM'#255'PPP'#255#255
+#255#255#255'iii'#255'xxx'#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#255
+#214#214#214#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0
+#129#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#255'PPP'
+#255'LLL'#255#255#255#255#255#162#162#162#255'iii'#255#179#179#179#255#255
+#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#227#227#227#255'ZZZ'#255'SS'
+'S'#255#145#145#145#255#255#255#255#255'\\\'#255'fff'#255#255#255#255#255#0#0
+#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#214#214#214#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#214#214
+#214#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#129
+#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0'q'#0#0#0#0#0#0#0'G'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0'U'#0#0#0#255#250#248#247#255#235#221#203#255#128#138
+#200#255#132#143#209#255#132#143#209#255#132#143#209#255#132#143#209#255#132
+#143#209#255#132#143#209#255#132#144#209#255#132#143#209#255#134#145#211#255
+#232#213#191#255#232#213#191#255#0#0#0#255#0#0#0#255#241#231#219#255#190#169
+#141#255'~'#135#183#255'hu'#199#255'gt'#199#255'gt'#199#255'gt'#199#255'gt'
+#199#255'ft'#199#255'gt'#199#255'hv'#200#255'z'#134#205#255#190#169#141#255
+'|iT'#255#0#0#0#255#0#0#0#255#237#224#207#255#190#169#141#255#215#215#215#255
+#254#254#254#255#254#254#254#255#254#254#254#255#254#254#254#255#254#254#254
+#255#254#254#254#255#254#254#254#255#254#254#254#255#249#249#249#255#181#160
+#132#255'udO'#255#0#0#0#255#0#0#0#255#237#224#207#255#190#169#141#255#215#215
+#215#255#215#215#215#255#215#215#215#255#215#215#215#255#215#215#215#255#215
+#215#215#255#215#215#215#255#215#215#215#255#214#214#214#255#241#241#241#255
+#174#154#129#255'r`I'#255#0#0#0#255#0#0#0#255#237#224#207#255#190#169#141#255
+#215#215#215#255#254#254#254#255#254#254#254#255#254#254#254#255#254#254#254
+#255#252#252#252#255#244#244#244#255#235#235#235#255#235#235#235#255#241#241
+#241#255#174#154#129#255'r`I'#255#0#0#0#255#0#0#0#255#237#224#207#255#190#169
+#141#255#215#215#215#255#215#215#215#255#215#215#215#255#215#215#215#255#212
+#212#212#255#197#197#197#255#197#197#197#255#197#197#197#255#197#197#197#255
+#241#241#241#255#174#154#129#255'r`I'#255#0#0#0#255#0#0#0#255#237#224#207#255
+#190#169#141#255#238#238#238#255#254#254#254#255#254#254#254#255#242#242#242
+#255#235#235#235#255#235#235#235#255#235#235#235#255#235#235#235#255#235#235
+#235#255#238#238#238#255#174#154#129#255'r`I'#255#0#0#0#255#0#0#0#255#237#224
+#207#255#190#169#141#255#205#191#174#255#223#214#202#255#218#207#199#255#214
+#203#191#255#214#203#191#255#214#203#191#255#214#203#191#255#214#203#191#255
+#214#203#191#255#196#182#161#255#174#154#129#255'r`I'#255#0#0#0#255#0#0#0#255
+#237#224#207#255#190#169#141#255#190#169#141#255#188#166#137#255#174#154''
+#255#174#154#129#255#174#154#129#255#174#154#129#255#174#154#129#255#173#153
+'~'#255#172#151'}'#255#174#154#129#255#174#154#129#255'r`I'#255#0#0#0#255#0#0
+#0#255#237#224#207#255#190#169#141#255#189#168#140#255#189#177#168#255#197
+#197#197#255#197#197#197#255#206#206#206#255#235#235#235#255#215#215#215#255
+#157#157#156#255'VF/'#255#140#134#128#255#174#154#129#255'r`I'#255#0#0#0#255
+#0#0#0#255#237#224#207#255#190#169#141#255#181#160#132#255#197#197#197#255
+#197#197#197#255'B0'#24#255'ZI3'#255#214#214#214#255#197#197#197#255#185#185
+#185#255'<-'#19#255#128'mX'#255#176#165#151#255'r`I'#255#0#0#0#255#0#0#0#255
,#237#224#207#255#185#164#134#255#174#154#129#255#197#197#197#255#205#205#205
+#255'SC.'#255#130'pZ'#255#197#197#197#255#197#197#197#255#191#191#191#255'5('
+#17#255#130'pZ'#255#176#169#157#255'r`I'#255#0#0#0#255#0#0#0#255#130'xk'#255
+#178#158#131#255#174#154#129#255#205#205#205#255#230#230#230#255'H6!'#255#137
+'y_'#255#197#197#197#255#194#194#194#255#178#178#178#255':,'#17#255#130'pZ'
+#255#176#169#159#255'r`I'#255#0#0#0#255#0#0#0'U'#0#0#0#255'mcY'#255'udO'#255
+#161#161#161#255#192#192#192#255#144#144#144#255#144#144#144#255#134#134#134
+#255'nnn'#255'zzz'#255'I9-'#255'\O>'#255#143#135#128#255'@1'#26#255#0#0#0#255
+#0#0#0#0#0#0#0'U'#0#0#0#255#0#0#0#211#0#0#0#220#0#0#0#255#0#0#0#255#0#0#0#255
+#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#224#0#0#0#225#0#0#0#255#0#0#0#255#0#0#0
+'G'#0#0#0#0#0#0#0'S'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'L'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#255#254#254#254#255#254#254#254#255#254#254#254#255#254#254#254
+#255#254#254#254#255#254#254#254#255#253#253#253#255#224#224#224#255#193#193
+#193#255#0#0#0#255#0#0#0'S'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254
+#254#255#241#241#241#255#241#241#241#255#241#241#241#255#241#241#241#255#241
+#241#241#255#241#241#241#255#195#195#195#255#251#251#251#255#168#168#168#255
+#0#0#0#255#0#0#0'L'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254#254#255#241#241
+#241#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255#173#173#173#255'vvv'
+#255']]]'#255'@@@'#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254
+#254#255#241#241#241#255'f@I'#255#255#255#255#255#255#255#255#255#255#255#255
+#255'f@I'#255#226#226#226#255#133#133#133#255'IKK'#255#22#22#22#255#0#0#0#255
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254#254#255#241#241#241#255'f@I'#255
+'f@I'#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255#238#238#238#255#197
+#197#197#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#254#254#254#255#239
+#239#239#255'f@I'#255#255#255#255#255'f@I'#255#255#255#255#255#255#255#255
+#255#255#255#255#255'f@I'#255#236#236#236#255#196#196#196#255#0#0#0#255#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#255#253#253#253#255#238#238#238#255'f@I'#255'f@I'
+#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255#235#235#235#255#195#195#195
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#253#253#253#255#237#237#237
+#255'f@I'#255#255#255#255#255#255#255#255#255'f@I'#255#255#255#255#255#255
+#255#255#255'f@I'#255#234#234#234#255#193#193#193#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#255#253#253#253#255#235#235#235#255'f@I'#255'f@I'#255'f@I'
+#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255#232#232#232#255#192#192#192#255#0#0
+#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#253#253#253#255#234#234#234#255'f@I'
+#255#255#255#255#255'f@I'#255#255#255#255#255#255#255#255#255#255#255#255#255
+'f@I'#255#231#231#231#255#191#191#191#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#255#253#253#253#255#232#232#232#255'f@I'#255'f@I'#255'f@I'#255'f@I'#255
+'f@I'#255'f@I'#255'f@I'#255#229#229#229#255#190#190#190#255#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#255#253#253#253#255#231#231#231#255#231#231#231#255
+#230#230#230#255#230#230#230#255#230#230#230#255#229#229#229#255#229#229#229
+#255#228#228#228#255#228#228#228#255#189#189#189#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#255#253#253#253#255#230#230#230#255#229#229#229#255#229#229
+#229#255#229#229#229#255#228#228#228#255#228#228#228#255#227#227#227#255#227
+#227#227#255#227#227#227#255#187#187#187#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#194#194#194#255#189#189#189#255#189#189#189#255#189#189#189#255
+#188#188#188#255#188#188#188#255#187#187#187#255#187#187#187#255#187#187#187
+#255#187#187#187#255#160#160#160#255#0#0#0#212#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+'k'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#171#181
+#186#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0#0#255#171
+#181#186#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#171#181#186#0#0#0#0'b'#0#0
+#0#190#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#171#181#186#255#171
+#181#186#255#0#0#0#255#0#0#0#224#0#0#0#128#171#181#186#0#0#0#0#0#0#0#0#0#0#0
+#0'bTY['#255#171#181#186#255#171#181#186#255#171#181#186#255#171#181#186#255
+#171#181#186#255#171#181#186#255#171#181#186#255#171#181#186#255#171#181#186
+#255#171#181#186#255#135#143#147#255#0#0#0#128#0#0#0#0#0#0#0#0#0#0#0#163#171
+#181#186#255#0#0#0'h'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#171
+#181#186#255#171#181#186#255#0#0#0#255#0#0#0'h'#171#181#186#255#0#0#0#224#0#0
+#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#255#171#181#186#255#0#0#0#255#171#181#186#0#0#0#0#255#171#181#186
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0#0
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#171#181#186#0#171#181#186#0#0#0#0
+#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0
+#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0
+#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0
+#0#255#0#0#0#0#171#181#186#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#171#181
+#186#255#0#0#0#255#171#181#186#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0
+#0#0#0#197#171#181#186#255#0#0#0'h'#0#0#0#255#171#181#186#255#171#181#186#255
+#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0'h'#171#181#186#255#0
+#0#0#224#0#0#0#0#0#0#0#0#0#0#0#128'x'#131#255#171#181#186#255#171#181#186
+#255#171#181#186#255#171#181#186#255#171#181#186#255#171#181#186#255#171#181
+#186#255#171#181#186#255#171#181#186#255#171#181#186#255#135#143#147#255#0#0
+#0#128#0#0#0#0#0#0#0#0#171#181#186#0#0#0#0#128#0#0#0#197#0#0#0#255#171#181
+#186#255#171#181#186#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#224#0#0#0#128#171#181#186#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#171#181#186
+#0#171#181#186#0#0#0#0#255#171#181#186#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#171#181#186#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'g'#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0's'#0#0#0#255'/01'#255'*++'#255'*++'#255'*++'
+#255'*++'#255'*++'#255'*++'#255'*++'#255'*++'#255'*++'#255'*++'#255'*++'#255
+'*++'#255#0#0#0#241#0#0#0#255#0#0#0#142#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0'y'#0#0#0#0#0#0#0#255#170#170#170#255#171
+#171#171#255#170#170#170#255#173#173#173#255#174#174#174#255#175#175#175#255
+#175#175#175#255#179#179#179#255#181#181#181#255#182#182#182#255#187#187#187
+#255#177#177#177#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#224
+#224#224#255#0#0#0#255#0#0#0#255#196#196#196#255#0#0#0#255#0#0#0#255#0#0#0
+#255#202#202#202#255#0#0#0#255#0#0#0#255#221#221#221#255#0#0#0#255#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#255#255#224#224#224#255#224#224#224#255#224#224#224
+#255#224#224#224#255#224#224#224#255#224#224#224#255#224#224#224#255#224#224
+#224#255#224#224#224#255#224#224#224#255#225#225#225#255#0#0#0#255#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#255#255#224#224#224#255#224#224#224#255#224#224#224
+#255#224#224#224#255#224#224#224#255#224#224#224#255#224#224#224#255#224#224
+#224#255#224#224#224#255#224#224#224#255#228#228#228#255#0#0#0#255#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#255#255#226#226#226#255'lN1'#255#233#233#233#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#247#247#247#255#0#0#0#255#247#247#247
+#255#228#228#228#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#230
+#230#230#255#233#233#233#255#233#233#233#255#233#233#233#255#247#247#247#255
+#247#247#247#255#247#247#247#255#247#247#247#255#245#245#245#255#247#247#247
+#255#232#232#232#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#233
+#233#233#255'lN1'#255#233#233#233#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255
+#0#0#0#255#248#248#248#255#251#251#251#255#234#234#234#255#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#255#255#231#231#231#255#233#233#233#255#235#235
+#235#255#237#237#237#255#238#238#238#255#240#240#240#255#242#242#242#255#244
+#244#244#255#244#244#244#255#248#248#248#255#232#232#232#255#0#0#0#255#0#0#0
+#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'"'#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#130#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0'"'#0#0#0#255#0#0#0'9'#0#0#0#255#0#0#0#17#0#0#0
+#255#0#0#0'q'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#16#0#0#0
+'!'#0#0#0'3'#0#0#0#255#0#0#0'*'#0#0#0';'#0#0#0#255#0#0#0'3'#0#0#0';'#0#0#0
+#255#0#0#0'1'#0#0#0'!'#0#0#0#19#0#0#0#8#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#29#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'TImageList'#10'ILMessages'#4'left'#3#178#0#3
+'top'#2'@'#6'Bitmap'#10#14#20#0#0'Li'#5#0#0#0#16#0#0#0#16#0#0#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#0#8#255#131#0#0
+#255#131#0#8#255#131#0#0#255#255#0#8#255#131#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#131#0#0#255#255#0#8#255#255#194#205#255#255#255#255#0#255#194
+#255#255#255#255#255#0#255#194#205#255#255#255#255#0#0#0#0#255#0#0#0#255#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#131#0#0
+#255#255#255#255#0#255#194#205#255#255#255#255#0#255#194#205#255#255#0#0#255
+#255#0#0#255#255#255#255#0#255#194#205#255#255#255#255#0#197#0#8#255#0#0#0
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#0#8#255#255
+#194#205#255#255#255#255#0#255#194#255#255#255#255#255#0#131#0#0#255#255#0#0
+#255#255#194#255#255#255#255#255#0#255#194#205#255#255#255#255#0#0#0#0#255
+#255#0#8#255#255#255#255#0#255#255#255#0#255#0#8#255#255#194#205#255#255#255
+#255#0#255#194#205#255#255#255#255#0#255#194#205#255#255#255#255#0#255#194
+#205#255#255#255#255#0#255#194#205#255#255#255#255#0#255#194#205#255#255#0#8
+#255#0#0#0#255#255#255#255#0#255#255#255#0#131#0#0#255#255#255#255#0#255#194
+#255#255#255#255#255#0#255#194#205#255#255#0#8#255#255#0#0#255#255#0#0#255
+#255#194#205#255#255#255#255#0#255#194#255#255#255#255#255#0#255#194#205#255
+#0#0#0#255#255#255#255#0#255#255#255#0#131#0#8#255#255#194#205#255#255#255
+#255#0#255#194#205#255#255#255#255#0#255#194#205#255#255#0#8#255#255#0#0#255
+#255#255#255#0#255#194#205#255#255#255#255#0#255#194#205#255#255#255#255#0#0
+#0#0#255#255#255#255#0#255#255#255#0#131#0#0#255#255#0#8#255#255#194#205#255
+#255#255#255#0#255#194#255#255#255#255#255#0#131#0#0#255#255#0#0#255#255#194
+#255#255#255#255#255#0#255#194#205#255#255#255#255#0#255#0#0#255#0#0#0#255
+#255#255#255#0#255#255#255#0#255#255#255#0#131#0#0#255#255#255#255#0#255#194
+#205#255#255#255#255#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255
+#194#205#255#255#255#255#0#197#0#8#255#0#0#0#255#131#0#0#255#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#255#0#8#255#255#194#205
+#255#255#255#255#0#255#194#255#255#255#255#255#0#255#194#205#255#255#255#255
+#0#255#0#0#255#0#0#0#255#131#0#0#255#255#0#8#255#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#197#0#8#255
+#255#255#255#0#255#194#205#255#255#0#8#255#0#0#0#255#0#0#0#255#131#0#0#255
+#131#0#8#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#255#255
+#255#0#0#0#0#255#255#0#8#255#131#0#0#255#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#255#194#205#255#0#0#0
+#255#131#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#255#0#8
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#0#0#8#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#8
+#255#0#194#255#255#0#255#255#255#0#0#0#255#255#0#8#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#8#255#0#194#205#255#0#255#255
+#255#0#194#205#255#0#255#255#255#0#0#0#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#255#255#255#0#0#0#255#0#255
+#255#255#0#194#255#255#0#0#0#255#131#0#0#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#0#0#0#255#0#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#255#255#255#0
+#194#205#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#8#255#0#194
+#205#255#0#0#0#255#0#0#0#255#0#0#0#255#0#194#205#255#0#255#255#255#0#0#0#255
+#255#0#8#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#0#0#8#255#0#194#205#255#0#255#255#255#0#0#0#255#0#0#0
,#255#0#0#0#255#0#255#255#255#0#194#205#255#0#255#255#255#0#0#0#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#8#255#0
+#194#205#255#0#255#255#255#0#194#255#255#0#0#8#255#0#0#0#255#0#0#8#255#0#194
+#255#255#0#255#255#255#0#194#205#255#0#0#0#255#131#0#0#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#255#255#255#0#194#205#255
+#0#255#255#255#0#194#205#255#0#0#0#255#0#194#205#255#0#255#255#255#0#194#205
+#255#0#255#255#255#0#194#205#255#0#0#0#255#255#255#255#0#255#255#255#0#255
+#255#255#0#0#0#0#255#0#255#255#255#0#194#255#255#0#255#255#255#0#194#205#255
+#0#255#255#255#0#194#255#255#0#255#255#255#0#194#205#255#0#255#255#255#0#194
+#255#255#0#255#255#255#0#0#0#255#255#0#8#255#255#255#255#0#255#255#255#0#0#0
+#8#255#0#194#205#255#0#255#255#255#0#194#205#255#0#255#255#255#131#0#0#255#0
+#0#0#255#131#0#0#255#0#255#255#255#0#194#205#255#0#255#255#255#0#194#205#255
+#0#255#255#255#0#0#0#255#255#255#255#0#255#255#255#0#0#0#0#255#0#255#255#255
+#0#194#205#255#0#255#255#255#0#194#255#255#0#255#255#255#0#194#205#255#0#255
+#255#255#0#194#255#255#0#255#255#255#0#194#205#255#0#255#255#255#0#194#255
+#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255
+#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#131#0#0#255#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#131#0#0#255#255#0#8#255#131#0#0#255#255#0#8#255#131#0#0#255
+#255#0#8#255#131#0#0#255#255#0#8#255#131#0#0#255#255#0#8#255#131#0#0#255#255
+#0#8#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#0#8#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#131#0#0#255#0#0#0#255#0#0#197#255
+#0#0#255#255#0#0#255#255#0#0#255#255#0#0#197#255#0#0#0#255#131#0#0#255#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#131#0#0#255#0#0#255#255#0#0#197#255#0#0#255#255#0#0#197#255#0#0#255
+#255#0#0#197#255#0#0#255#255#0#0#197#255#0#0#255#255#131#0#0#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#197
+#255#255#0#8#255#255#0#0#255#0#0#255#255#0#0#197#255#0#0#255#255#255#0#0#255
+#255#0#8#255#0#0#197#255#0#0#0#255#131#0#0#255#255#255#255#0#255#255#255#0
+#255#255#255#0#255#0#8#255#0#0#197#255#0#0#255#255#197#0#8#255#255#255#255#0
+#197#0#8#255#0#0#255#255#197#0#8#255#255#255#255#0#197#0#8#255#0#0#255#255#0
+#0#197#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
+#255#255#0#0#255#255#0#0#255#255#197#0#0#255#255#255#255#0#255#0#0#255#255
+#255#255#0#197#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#255#0#8
+#255#255#255#255#0#255#255#255#0#0#0#0#255#0#0#197#255#0#0#255#255#0#0#197
+#255#0#0#255#255#197#0#8#255#255#255#255#0#255#194#205#255#0#0#255#255#0#0
+#197#255#0#0#255#255#0#0#197#255#0#0#0#255#131#0#0#255#255#255#255#0#255#255
+#255#0#0#0#0#255#0#0#255#255#0#0#197#255#0#0#255#255#255#0#0#255#255#255#255
+#0#255#194#205#255#255#255#255#0#255#0#0#255#0#0#255#255#0#0#197#255#0#0#255
+#255#0#0#0#255#255#0#8#255#255#255#255#0#255#255#255#0#0#0#0#255#0#0#197#255
+#0#0#255#255#197#0#8#255#255#255#255#0#197#0#8#255#0#0#255#255#197#0#8#255
+#255#255#255#0#197#0#8#255#0#0#255#255#0#0#197#255#0#0#0#255#131#0#0#255#255
+#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#255#255#255#0#8#255#197
+#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#197#0#0#255#255#255#255#0#0#0
+#255#255#0#0#0#255#131#0#0#255#255#0#8#255#255#255#255#0#255#255#255#0#255
+#255#255#0#131#0#0#255#0#0#255#255#0#0#197#255#0#0#255#255#0#0#197#255#0#0
+#255#255#0#0#197#255#0#0#255#255#0#0#197#255#0#0#255#255#0#0#0#255#131#0#8
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#131#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#197#255#0#0#255#255#0#0
+#255#255#0#0#0#255#0#0#0#255#255#0#8#255#255#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#131#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#131#0#0#255#131#0#8#255#197
+#0#8#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#0#8#255#131#0
+#0#255#255#0#8#255#131#0#0#255#255#0#8#255#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#255#255#255#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#255#255#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#255#255#255
+#255#0#255#255#255#255#255#255#255#0#0#0#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#0#0#255#255#255#255#255#0#255#255#255#255#255#255#255#0#255#255#255
+#255#255#255#255#0#0#0#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#255
+#255#255#255#255#255#255'{}{'#255#255#255#255#255#0#255#255#255#0#0#0#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#0#0#255#255#255#255#255#0#255#255#255'{}{'
+#255#0#255#255#255#255#255#255#255#0#0#0#255#0#255#255#255#0#255#255#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#0#0#255#255#255#255#255'{}{'#255#255#255#255#255#0#0#0#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#255#255#255#255#0#0
+#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0
+#255#0#255#255#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#0#0#0#0#0#0#0#0
+#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#255#255#255#0#0#0#0#0#0#0#0#0
+#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#255#189#190#189#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0
+#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#255#255#255#255#255#255#255#255'{}{'#255#255#255#255#255#255#255
+#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255'{}{'#255#255#255#255
+#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255'{}{'#255#255#255
+#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#255#189#190#189#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'TIdleTimer'#10'ITMes'
+'sages'#7'Enabled'#8#8'Interval'#2'd'#7'OnTimer'#7#15'ITMessagesTimer'#4'lef'
+'t'#2']'#3'top'#3#173#0#0#0#9'TTrayIcon'#7'TIDebug'#11'BalloonHint'#6#26'FPC'
+'/Lazarus debug messages'#9'PopUpMenu'#7#6'PMTray'#9'Icon.Data'#10#194#16#0#0
+#190#16#0#0#0#0#1#0#1#0' '#0#0#1#0' '#0#168#16#0#0#22#0#0#0'('#0#0#0' '#0#0
+#0'@'#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#1#0#0#0#4#0#0#0#10#0#0#0#18#0#0#0#19#0#0#0#13#0#0#0#6#0
+#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#0#5#0#0#0'$'#0#0#0#130#0#0
+#0#150#0#0#0'\'#0#0#0'('#0#0#0#21#0#0#0#7#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0
+#0#14#0#0#0'C'#22#22#22#199#153#153#153#255';;;'#255#8#8#8#232#0#0#0'~'#0#0#0
+'D'#0#0#0#31#0#0#0#14#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#26#8#22#27#242#13#28'!'#252'c{'
+#130#254'v'#149#157#255'Rs{'#255'5HL'#254#9#24#29#253#8#22#26#248#0#0#0'Y'#0
+#0#0'"'#0#0#0#10#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#3#31',/ym'#155#167#252#188#224#234#255#234#245#248#255
+#187#222#231#255#138#196#212#255#131#188#204#255'm'#168#184#255'#;B'#253#2#3
+#4#189#0#0#0'>'#0#0#0#21#0#0#0#5#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4'Xdh'#171#184#218#227#255#190#222#230#255#183
+#212#220#255#148#194#207#255#130#183#198#255'z'#174#189#255#128#176#189#255
+'f'#147#160#255#20'!%'#235#0#0#0'L'#0#0#0#28#0#0#0#7#0#0#0#1#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4#14#30'#'#247#168#218#232
+#255#206#235#244#255#240#249#251#255#185#225#237#255#146#206#223#255#135#196
+#214#255'{'#184#201#255'Q'#136#151#255#10#25#30#253#0#0#0'S'#0#0#0' '#0#0#0#8
+#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4
+'[nt'#177#194#232#243#255#187#222#233#255#183#215#224#255#166#206#218#255#138
+#192#207#255''#182#197#255#143#187#200#255't'#168#182#255#27'.3'#240#0#0#0
+'T'#0#0#0'!'#0#0#0#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#4#14#30'#'#247#168#221#236#255#196#234#245#255#242#250#252
+#255#184#229#242#255#149#213#231#255#139#203#220#255#131#191#208#255'`'#147
+#161#255#11#26#30#253#0#0#0'T'#0#0#0'!'#0#0#0#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5'`pu'#177#205#237#247#255#184
+#223#234#255#180#214#224#255#157#205#218#255#138#195#211#255#135#189#204#255
+#151#194#206#255'q'#168#184#255#29'05'#240#0#0#0'U'#0#0#0'!'#0#0#0#8#0#0#0#1
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#6#11#27' '
+#250#170#223#237#255#191#233#245#255#240#249#252#255#183#228#240#255#154#215
+#231#255#144#205#222#255#128#191#209#255'V'#145#161#255#10#25#30#254#0#0#0'W'
+#0#0#0'%'#0#0#0#11#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#1#0#0#0#3#8#22#27#140#9#24#29#254#179#215#226#255#187#209#216#255#198#209
+#214#255#188#201#207#255#181#202#209#255#172#204#213#255#166#203#213#255'v'
+#169#183#255#9#24#29#255#6#17#21#181#0#0#0'2'#0#0#0#22#0#0#0#5#0#0#0#1#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#8#21#26'-'#8#22#27#213#20#27#29#183#181#180
+#182#210#183#185#189#246#182#182#183#255#184#186#188#255#186#193#195#255#187
+#201#204#255#186#202#205#255#185#200#203#255#194#206#206#243#191#195#193#220
+'cgh'#225#7#21#25#229#4#11#13'V'#0#0#0#23#0#0#0#8#0#0#0#1#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#8#22#27','#8#23#28#231'\[]'#185#209#198#197#189#231#215#213#183#210#202#197
,#188#188#189#183#220#185#191#186#232#193#205#199#227#192#208#204#227#201#206
+#198#243#186#198#189#220#212#216#202#184#227#226#213#186#220#217#211#199#141
+#141#142#224#8#22#27#241#4#11#14'S'#0#0#0#22#0#0#0#5#0#0#0#1#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#2#8#23
+#28#210#131#130#131#192#230#218#217#194#230#213#206#166#224#219#203#166#226
+#222#207#180#186#197#189#225#213#214#201#178#222#217#203#166#221#217#203#166
+#208#210#200#244#197#202#186#192#222#231#203#166#222#235#203#166#225#226#203
+#166#237#233#226#202#143#143#143#221#7#21#25#229#0#0#0'2'#0#0#0#17#0#0#0#4#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#8#23#28#136#24#31'"'#166#213#204#202#187#230#214#208#167#226#222#205#166
+#226#224#205#166#231#229#216#218#180#182#171#220#226#219#205#169#225#218#204
+#169#223#216#204#169#212#213#206#205#196#208#200#213#222#226#203#168#222#236
+#203#167#222#239#203#166#225#226#203#166#221#216#212#198'bgh'#225#6#18#22#172
+#0#0#0#31#0#0#0#10#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#8#22#27#20#8#23#28#252#189#182#182#187#239#225#223#181#230#223
+#211#166#231#225#213#168#233#225#216#171#233#230#222#216#217#219#215#203#236
+#227#221#180#236#226#220#181#235#225#218#181#235#224#218#199#189#186#181#246
+#226#223#210#176#224#230#206#172#223#239#204#168#222#237#203#166#233#229#215
+#181#196#193#190#204'S]`'#254#2#6#8'D'#0#0#0#20#0#0#0#3#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#23#28'prxz'#184#234#224#223#192
+#233#221#217#166#235#225#218#168#238#228#223#173#239#230#226#179#213#210#209
+#227#242#233#231#191#243#234#233#195#243#234#231#197#242#233#231#197#241#233
+#230#211#215#213#212#243#233#226#220#189#228#227#213#180#225#234#208#173#222
+#236#204#168#225#227#203#166#225#217#208#179'}'#130#130#225#6#17#20#154#0#0#0
+#30#0#0#0#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#8
+#23#28#184#162#160#161#173#236#220#220#168#240#226#224#167#242#230#229#171
+#244#235#234#182#246#239#239#211#224#224#225#248#248#242#242#210#248#242#242
+#213#247#242#241#218#247#241#240#218#246#239#239#215#231#230#231#234#241#233
+#231#206#235#228#223#194#230#231#215#182#224#232#207#171#224#227#203#167#227
+#219#204#166#144#142#142#196#7#20#24#212#0#0#0')'#0#0#0#9#0#0#0#1#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#8#23#28#230#221#218#218#196#239
+#225#225#167#243#229#229#168#245#234#234#173#248#240#240#188#242#239#241#217
+#240#240#242#232#250#248#248#227#251#248#248#238#252#249#249#250#251#249#249
+#250#249#243#243#221#244#240#240#241#242#235#235#233#240#232#229#203#234#230
+#220#188#227#228#208#173#224#224#204#168#227#217#204#166#161#154#151#171#8#22
+#27#241#0#0#0'/'#0#0#0#10#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#1#9#24#29#251#230#225#225#183#243#230#230#166#244#234#234#168#247
+#239#239#174#249#244#244#190#250#248#248#239#253#251#251#247#252#251#251#249
+#253#252#252#253#252#250#250#255#251#249#249#255#253#253#253#254#249#245#245
+#240#239#236#237#231#243#233#232#206#236#227#221#190#227#223#209#174#226#219
+#204#168#228#213#204#166#189#178#175#166#8#23#28#253#0#0#0'3'#0#0#0#12#0#0#0
+#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#9#24#29#251#231
+#226#226#183#244#233#233#166#246#236#236#168#248#242#242#173#250#246#246#187
+#250#247#247#201#252#249#249#218#251#249#249#227#252#250#250#236#251#248#248
+#234#251#248#248#235#251#247#247#234#248#242#242#219#248#240#240#215#243#232
+#231#202#235#225#219#187#228#219#209#173#225#216#204#168#228#212#204#166#190
+#178#175#165#8#23#28#253#0#0#0'2'#0#0#0#11#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#8#23#28#229#216#213#213#182#243#233#233#167
+#247#239#239#167#250#244#244#169#251#248#248#178#252#250#250#187#252#249#249
+#197#251#248#248#203#250#247#247#207#249#245#245#209#249#243#243#209#248#241
+#241#209#247#238#238#207#244#234#234#202#239#226#224#190#232#219#214#179#227
+#214#206#170#226#212#203#167#228#211#204#166#162#153#152#169#8#22#27#240#0#0
+#0'-'#0#0#0#10#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#8#23#28#184#202#202#202#194#243#233#233#168#248#240#240#166#250#246#246
+#167#252#250#250#171#254#253#253#176#252#250#250#182#250#246#246#187#249#244
+#244#191#248#242#242#192#247#238#238#193#245#236#236#193#244#233#233#191#241
+#227#227#187#236#220#217#179#230#214#208#173#227#211#204#168#227#210#203#166
+#235#220#215#181#168#166#166#202#7#20#24#209#0#0#0'&'#0#0#0#8#0#0#0#1#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#23#28'p'#149#154#155#190
+#242#238#238#202#248#240#240#169#250#246#246#178#251#249#249#179#252#250#250
+#176#251#247#247#177#249#244#244#173#248#241#241#174#246#236#236#175#244#232
+#232#175#242#228#228#175#240#223#223#174#237#218#218#173#234#212#211#170#228
+#209#205#168#227#208#203#166#228#208#203#166#232#220#218#190'bhi'#213#6#17#21
+#148#0#0#0#26#0#0#0#4#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
,#0#0#0#0#8#22#27#20'2>B'#252#227#226#226#211#248#241#241#182#250#245#245#186
+#252#250#250#202#252#250#250#206#252#249#249#203#248#242#242#175#246#237#237
+#168#244#232#232#168#242#228#228#168#239#224#224#168#237#219#219#168#235#214
+#214#168#232#210#208#167#229#208#204#166#229#208#204#166#235#218#215#181#197
+#192#191#202#8#23#28#253#2#7#8'>'#0#0#0#17#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#23#28#135'{'#129#131#180#230
+#226#226#194#246#239#239#177#252#249#249#211#253#252#252#235#253#252#252#232
+#249#243#243#194#245#235#235#169#243#229#229#166#241#226#226#166#239#221#221
+#166#237#217#217#166#234#212#211#166#232#209#207#166#230#208#205#166#230#207
+#205#166#223#215#214#196'DIK'#204#7#19#23#165#0#0#0#25#0#0#0#7#0#0#0#1#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#8
+#23#28#207#147#148#150#171#240#233#233#194#249#243#243#190#253#251#251#229
+#253#251#251#235#250#245#245#207#245#235#235#179#241#227#227#167#240#223#223
+#166#238#219#219#166#236#215#215#166#233#211#209#166#231#208#206#166#230#206
+#205#166#237#226#226#202#150#150#151#209#8#21#26#223#0#0#0'('#0#0#0#12#0#0#0
+#3#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#8#22#27'+4@D'#233#171#171#172#186#229#225#225#195#245#236#236
+#187#249#243#243#205#249#242#242#206#246#237#237#193#240#226#226#172#238#220
+#220#166#236#216#216#166#235#212#212#166#232#208#207#166#236#217#217#181#223
+#214#214#195#152#150#152#208#8#23#27#236#5#13#16'G'#0#0#0#16#0#0#0#3#0#0#0#1
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#8#22#27','#8#23#28#207#150#155#155#195#220#217#217#205
+#242#236#236#207#242#229#229#178#242#228#228#179#239#222#222#172#237#217#217
+#166#235#213#213#166#234#210#210#166#234#220#220#189#201#194#194#199'mrs'#202
+#8#22#26#220#5#13#16'H'#0#0#0#15#0#0#0#5#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#2#8#23#28#136#9#24#29#251#146#151#152#194#182#181#181#187#199
+#192#192#171#228#221#221#184#227#220#220#184#196#188#188#172#154#151#152#180
+'lrs'#194'1=A'#253#7#21#25#152#0#0#0#21#0#0#0#10#0#0#0#3#0#0#0#1#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#7#19#23#23#8#22#27't'#8#23
+#27#187#8#23#28#231#8#23#28#252#8#23#28#252#8#23#28#233#8#22#27#192#7#20#25
+'~'#4#12#14'%'#0#0#0#12#0#0#0#5#0#0#0#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#4'Hint'#6#26
+'FPC/Lazarus debug messages'#7'Visible'#9#4'left'#3#253#0#3'top'#2'V'#0#0#10
+'TPopupMenu'#6'PMTray'#6'Images'#7#6'ILMain'#4'left'#3#207#0#3'top'#3#139#0#0
+#9'TMenuItem'#8'PMIPause'#6'Action'#7#6'APause'#7'OnClick'#7#13'APauseExecut'
+'e'#0#0#9'TMenuItem'#7'PMIShow'#6'Action'#7#5'AShow'#7'OnClick'#7#12'AShowEx'
+'ecute'#0#0#9'TMenuItem'#8'PMIClear'#6'Action'#7#6'AClear'#7'OnClick'#7#13'A'
+'ClearExecute'#0#0#9'TMenuItem'#9'MenuItem5'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
+'em'#7'PMIQuit'#6'Action'#7#5'AQuit'#7'OnClick'#7#12'AQuitExecute'#0#0#0#11
+'TSaveDialog'#10'SDMessages'#5'Title'#6#21'Save messages to file'#10'Default'
+'Ext'#6#4'.log'#6'Filter'#6'.Log files|*.log|Text files|*.txt|All files|*.*'
+#7'Options'#11#15'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'l'
+'eft'#2'*'#3'top'#2'v'#0#0#0
]);

View File

@ -0,0 +1,546 @@
{ Debug server main form
Copyright (C) 2009 Michael Van Canneyt (michael@freepascal.org)
This source is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This code is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
A copy of the GNU General Public License is available on the World Wide Web
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
}
unit frmmain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Menus, ActnList, ComCtrls, ExtCtrls, simpleipc, dbugmsg, clipbrd;
type
{ TMainForm }
TMainForm = class(TForm)
AClear: TAction;
ACopyLines: TAction;
AShow: TAction;
AResume: TAction;
ASelectAll: TAction;
ASave: TAction;
AHide: TAction;
AOptions: TAction;
APause: TAction;
AQuit: TAction;
ALMain: TActionList;
ITMessages: TIdleTimer;
ILMain: TImageList;
ILMessages: TImageList;
LVMessages: TListView;
MEdit: TMenuItem;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
PMIQuit: TMenuItem;
PMIShow: TMenuItem;
PMIClear: TMenuItem;
MenuItem5: TMenuItem;
PMIPause: TMenuItem;
MIToolbar: TMenuItem;
MIAlwaysOntop: TMenuItem;
MView: TMenuItem;
MISave: TMenuItem;
MICopy: TMenuItem;
MIClear: TMenuItem;
MIHide: TMenuItem;
MIQuit: TMenuItem;
MIOptions: TMenuItem;
MIPause: TMenuItem;
MFile: TMenuItem;
MMDebugServer: TMainMenu;
PMTray: TPopupMenu;
SDMessages: TSaveDialog;
TBMain: TToolBar;
TBPause: TToolButton;
TBCopyMessages: TToolButton;
TBQuit: TToolButton;
TBSave: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
TIDebug: TTrayIcon;
ToolButton4: TToolButton;
procedure AClearExecute(Sender: TObject);
procedure ACopyLinesExecute(Sender: TObject);
procedure ACopyLinesUpdate(Sender: TObject);
procedure AHideExecute(Sender: TObject);
procedure AOptionsExecute(Sender: TObject);
procedure APauseExecute(Sender: TObject);
procedure AQuitExecute(Sender: TObject);
procedure AResumeExecute(Sender: TObject);
procedure ASaveExecute(Sender: TObject);
procedure ASelectAllExecute(Sender: TObject);
procedure AShowExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ITMessagesTimer(Sender: TObject);
procedure LVMessagesDblClick(Sender: TObject);
procedure MIAlwaysOntopClick(Sender: TObject);
procedure MIToolbarClick(Sender: TObject);
procedure MViewClick(Sender: TObject);
private
{ private declarations }
FPaused : Boolean;
FSrv : TSimpleIPCServer;
FShowOnStartUp,
FShowOnmessage,
FAtBottom : Boolean;
FQuitting : Boolean;
FDiscarded : Int64;
procedure CheckDebugMessages;
procedure CheckMessages(Sender: TObject; Var Done : Boolean);
procedure ClearMessages;
procedure CopySelectedToClipBoard;
procedure GetMessagesAsText(L: TStrings; SelectedOnly: Boolean);
function GetShowToolbar: Boolean;
function GetStayOnTop: Boolean;
procedure LoadSettings;
procedure ReadDebugMessage;
procedure ResumeMessages;
procedure SaveMessagesToFile(SelectedOnly: Boolean);
procedure SaveSettings;
procedure SelectAllMessages;
procedure SetPauseAction(AAction: TAction);
procedure SetShowToolBar(const AValue: Boolean);
procedure SetStayOnTop(const AValue: Boolean);
procedure ShowCurrentMessage;
procedure ShowDebugmessage(const Msg: TDebugmessage);
procedure ShowMessageWindow;
procedure ShowOptions;
procedure StartServer;
procedure StopServer;
public
{ public declarations }
Property StayOnTop : Boolean Read GetStayOnTop Write SetStayOnTop;
Property ShowToolbar : Boolean Read GetShowToolbar Write SetShowToolBar;
end;
var
MainForm: TMainForm;
implementation
uses inifiles,frmoptions;
{ TMainForm }
{ ---------------------------------------------------------------------
Event handlers
---------------------------------------------------------------------}
procedure TMainForm.AShowExecute(Sender: TObject);
begin
ShowMessageWindow;
end;
procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
If FQuitting then
CloseAction:=caFree
else
CloseAction:=caHide
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
LoadSettings;
If Not FShowOnStartup Then
Hide;
StartServer;
end;
procedure TMainForm.AQuitExecute(Sender: TObject);
begin
FQuitting:=True;
Close;
end;
procedure TMainForm.AResumeExecute(Sender: TObject);
begin
ResumeMessages;
SetPauseAction(APause);
end;
procedure TMainForm.ASaveExecute(Sender: TObject);
begin
SaveMessagesToFile(False);
end;
procedure TMainForm.ASelectAllExecute(Sender: TObject);
begin
SelectAllMessages;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
StopServer;
end;
procedure TMainForm.ITMessagesTimer(Sender: TObject);
begin
CheckDebugMessages;
end;
procedure TMainForm.LVMessagesDblClick(Sender: TObject);
begin
ShowCurrentMessage;
end;
procedure TMainForm.MIAlwaysOntopClick(Sender: TObject);
begin
StayOnTop:=(Sender as TMenuItem).Checked;
end;
procedure TMainForm.MIToolbarClick(Sender: TObject);
begin
ShowToolBar:=(Sender as TMenuItem).Checked;
end;
procedure TMainForm.MViewClick(Sender: TObject);
begin
MIAlwaysOnTop.Checked:=STayOnTop;
MIToolbar.Checked:=ShowToolbar;
end;
procedure TMainForm.CheckMessages(Sender: TObject; Var Done : Boolean);
begin
CheckDebugMessages;
end;
procedure TMainForm.AClearExecute(Sender: TObject);
begin
ClearMessages;
end;
procedure TMainForm.ACopyLinesExecute(Sender: TObject);
begin
CopySelectedToClipBoard;
end;
procedure TMainForm.ACopyLinesUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled:=(LVMessages.SelCount>0);
end;
procedure TMainForm.AHideExecute(Sender: TObject);
begin
Hide;
end;
procedure TMainForm.AOptionsExecute(Sender: TObject);
begin
ShowOptions;
end;
procedure TMainForm.APauseExecute(Sender: TObject);
begin
FPaused:=True;
SetPauseAction(AResume);
end;
{ ---------------------------------------------------------------------
Methods that do the actual work
---------------------------------------------------------------------}
procedure TMainForm.StartServer;
begin
FSrv:=TSimpleIPCServer.Create(Nil);
FSrv.ServerID:=DebugServerID;
FSrv.Global:=True;
FSrv.Active:=True;
FSrv.StartServer;
Application.OnIdle:=@CheckMessages;
ITMessages.Enabled:=True;
end;
procedure TMainForm.StopServer;
begin
Application.OnIdle:=Nil;
ITMessages.Enabled:=False;
FreeAndNil(FSrv);
end;
procedure TMainForm.SaveMessagesToFile(SelectedOnly : Boolean);
Var
L : TStrings;
FN : String;
begin
With SDMessages do
If Execute then
FN:=FileName
else
Exit;
L:=TstringList.Create;
try
Self.GetMessagesAsText(L,SelectedOnly);
L.SaveToFile(FN);
finally
L.Free;
end;
end;
procedure TMainForm.SetPauseAction(AAction : TAction);
begin
MIPause.Action:=AAction;
PMIPause.Action:=AAction;
TBPause.Action:=AAction;
end;
procedure TMainForm.SelectAllMessages;
Var
I : Integer;
begin
LVmessages.Items.BeginUpdate;
try
For I:=0 to LVmessages.Items.Count-1 do
LVmessages.Items[I].Selected:=True;
finally
LVmessages.Items.EndUpdate;
end;
end;
procedure TMainForm.ShowCurrentMessage;
begin
If LVMessages.Selected<>Nil then
ShowMessage(LVMessages.Selected.SubItems[1]);
end;
function TMainForm.GetShowToolbar: Boolean;
begin
Result:=TBMain.Visible;
end;
function TMainForm.GetStayOnTop: Boolean;
begin
Result:=FormStyle=fsStayOnTop;
end;
procedure TMainForm.CheckDebugMessages;
begin
While FSrv.PeekMessage(1,True) do
ReadDebugMessage;
end;
procedure TMainForm.ReadDebugMessage;
Var
Msg : TDebugMessage;
begin
FSrv.MsgData.Seek(0,soFrombeginning);
ReadDebugMessageFromStream(FSrv.MsgData,MSg);
If not FPaused then
ShowDebugMessage(Msg)
else
Inc(FDiscarded);
end;
procedure TMainForm.ShowDebugmessage(Const Msg : TDebugmessage);
Var
LI : TListItem;
begin
LVmessages.Items.BeginUpdate;
try
if FAtBottom then
LI:=LVmessages.Items.Add
else
LI:=LVmessages.Items.Insert(0);
If (Msg.MsgType=lctStop) then
LI.ImageIndex:=4
else
LI.ImageIndex:=Msg.MsgType;
LI.Caption:=DebugMessageName(Msg.MsgType);
LI.Subitems.Add(TimeToStr(Msg.MsgTimeStamp));
LI.SubItems.Add(Msg.Msg);
finally
LVmessages.Items.EndUpdate;
end;
If FShowOnMessage then
ShowMessageWindow;
end;
procedure TMainForm.ShowMessageWindow;
begin
If Not Visible then
Show;
If (WindowState=wsMinimized) then
WindowState:=wsNormal;
end;
procedure TMainForm.ClearMessages;
begin
LVMessages.Items.Clear;
end;
procedure TMainForm.CopySelectedToClipBoard;
Var
L : TStringList;
begin
L:=TStringList.Create;
try
GetMessagesAsText(L,True);
ClipBoard.AsText:=L.Text;
finally
L.Free;
end;
end;
procedure TMainForm.GetMessagesAsText(L : TStrings; SelectedOnly : Boolean);
Var
I : Integer;
S : String;
LI : TListItem;
begin
For I:=0 to LVMessages.Items.Count-1 do
begin
LI:=LVMessages.Items[i];
If (Not SelectedOnly) or LI.Selected then
begin
S:=LI.Caption;
S:=S+': ['+Li.SubItems[0]+'] ';
S:=S+Li.SubItems[1];
L.Add(S);
end;
end;
end;
procedure TMainForm.ShowOptions;
begin
With TOptionsForm.Create(Self) do
begin
ShowOnStartUp:=FShowOnStartUp;
ShowOnMessage:=FShowOnmessage;
NewMessageAtBottom:=FAtBottom;
If (ShowModal=mrOk) then
begin
FShowOnStartUp:=ShowOnStartUp;
FShowOnmessage:=ShowOnMessage;
FAtBottom:=NewMessageAtBottom;
SaveSettings;
end;
end;
end;
procedure TMainForm.ResumeMessages;
Var
Msg : TDebugmessage;
begin
FPaused:=False;
Msg.MsgTimeStamp:=Now;
Msg.MsgType:=lctInformation;
Msg.Msg:=Format('Discarded %d messages while paused.',[FDiscarded]);
FDiscarded:=0;
ShowDebugMessage(Msg);
end;
procedure TMainForm.SetShowToolBar(const AValue: Boolean);
begin
TBMain.Visible:=AValue;
end;
procedure TMainForm.SetStayOnTop(const AValue: Boolean);
begin
FormStyle:=fsStayOnTop;
end;
Const
SSettings = 'Settings';
KeyShowOnStartup = 'ShowOnStartup';
KeyShowOnMessage = 'ShowOnMessage';
KeyAtBottom = 'NewAtBottom';
KeyStayOnTop = 'StayOnTop';
KeyToolBar = 'ShowToolBar';
procedure TMainForm.LoadSettings;
Var
Ini : TMemIniFile;
begin
Ini:=TMeminiFile.Create(GetAppConfigFile(False));
With Ini do
try
FShowOnStartUp:=ReadBool(SSettings,KeyShowOnStartup,True);
FShowOnMessage:=ReadBool(SSettings,KeyShowOnMessage,True);
FAtBottom:=ReadBool(SSettings,KeyAtBottom,False);
StayOnTop:=ReadBool(SSettings,KeyStayOnTop,False);
ShowToolBar:=ReadBool(SSettings,KeyToolBar,True);
finally
Free;
end;
end;
procedure TMainForm.SaveSettings;
Var
Ini : TMemIniFile;
begin
Ini:=TMeminiFile.Create(GetAppConfigFile(False));
With Ini do
try
WriteBool(SSettings,KeyShowOnStartup,FShowOnStartUp);
WriteBool(SSettings,KeyShowOnMessage,FShowOnMessage);
WriteBool(SSettings,KeyAtBottom,FAtBottom);
WriteBool(SSettings,KeyStayOnTop,StayOnTop);
WriteBool(SSettings,KeyToolBar,ShowToolBar);
finally
Free;
end;
end;
Function MyGetAppName : String;
begin
Result:='FPCDebugSrv';
end;
initialization
{$I frmmain.lrs}
OnGetApplicationName:=@MyGetAppName;
end.

View File

@ -0,0 +1,63 @@
object OptionsForm: TOptionsForm
Left = 412
Height = 223
Top = 217
Width = 390
Caption = 'Options'
ClientHeight = 223
ClientWidth = 390
Position = poMainFormCenter
LCLVersion = '0.9.27'
object ButtonPanel1: TButtonPanel
Left = 6
Height = 38
Top = 179
Width = 378
TabOrder = 0
ShowButtons = [pbOK, pbCancel]
end
object GBWindow: TGroupBox
Left = 16
Height = 81
Top = 16
Width = 300
Caption = 'Show message window'
ClientHeight = 65
ClientWidth = 296
TabOrder = 1
object CBShowOnStartUp: TCheckBox
Left = 14
Height = 21
Top = 9
Width = 117
Caption = 'Show on startup'
TabOrder = 0
end
object CBShowOnMessage: TCheckBox
Left = 13
Height = 21
Top = 37
Width = 156
Caption = 'Show on new message'
TabOrder = 1
end
end
object GBMessages: TGroupBox
Left = 16
Height = 59
Top = 109
Width = 300
Caption = 'Messages'
ClientHeight = 43
ClientWidth = 296
TabOrder = 2
object CBNewAtBottom: TCheckBox
Left = 13
Height = 21
Top = 10
Width = 204
Caption = 'Show new messages at bottom'
TabOrder = 0
end
end
end

View File

@ -0,0 +1,20 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TOptionsForm','FORMDATA',[
'TPF0'#12'TOptionsForm'#11'OptionsForm'#4'Left'#3#156#1#6'Height'#3#223#0#3'T'
+'op'#3#217#0#5'Width'#3#134#1#7'Caption'#6#7'Options'#12'ClientHeight'#3#223
+#0#11'ClientWidth'#3#134#1#8'Position'#7#16'poMainFormCenter'#10'LCLVersion'
+#6#6'0.9.27'#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Height'#2'&'#3
+'Top'#3#179#0#5'Width'#3'z'#1#8'TabOrder'#2#0#11'ShowButtons'#11#4'pbOK'#8'p'
+'bCancel'#0#0#0#9'TGroupBox'#8'GBWindow'#4'Left'#2#16#6'Height'#2'Q'#3'Top'#2
+#16#5'Width'#3','#1#7'Caption'#6#19'Show message window'#12'ClientHeight'#2
+'A'#11'ClientWidth'#3'('#1#8'TabOrder'#2#1#0#9'TCheckBox'#15'CBShowOnStartUp'
+#4'Left'#2#14#6'Height'#2#21#3'Top'#2#9#5'Width'#2'u'#7'Caption'#6#15'Show o'
+'n startup'#8'TabOrder'#2#0#0#0#9'TCheckBox'#15'CBShowOnMessage'#4'Left'#2#13
+#6'Height'#2#21#3'Top'#2'%'#5'Width'#3#156#0#7'Caption'#6#19'Show on new mes'
+'sage'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#10'GBMessages'#4'Left'#2#16#6'Heig'
+'ht'#2';'#3'Top'#2'm'#5'Width'#3','#1#7'Caption'#6#8'Messages'#12'ClientHeig'
+'ht'#2'+'#11'ClientWidth'#3'('#1#8'TabOrder'#2#2#0#9'TCheckBox'#13'CBNewAtBo'
+'ttom'#4'Left'#2#13#6'Height'#2#21#3'Top'#2#10#5'Width'#3#204#0#7'Caption'#6
+#27'Show new messages at bottom'#8'TabOrder'#2#0#0#0#0#0
]);

View File

@ -0,0 +1,84 @@
{ Debug server options form
Copyright (C) 2009 Michael Van Canneyt (michael@freepascal.org)
This source is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This code is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
A copy of the GNU General Public License is available on the World Wide Web
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
}
unit frmOptions;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ButtonPanel, StdCtrls;
type
{ TOptionsForm }
TOptionsForm = class(TForm)
ButtonPanel1: TButtonPanel;
CBShowOnStartUp: TCheckBox;
CBShowOnMessage: TCheckBox;
CBNewAtBottom: TCheckBox;
GBWindow: TGroupBox;
GBMessages: TGroupBox;
private
function GetB(AIndex: integer): Boolean;
function GetCB(AIndex: Integer): TCheckBox;
procedure SetB(AIndex: integer; const AValue: Boolean);
{ private declarations }
public
{ public declarations }
Property ShowOnStartup : Boolean Index 0 Read GetB Write SetB;
Property ShowOnMessage : Boolean Index 1 Read GetB Write SetB;
Property NewMessageAtBottom : Boolean Index 2 Read GetB Write SetB;
end;
var
OptionsForm: TOptionsForm;
implementation
{ TOptionsForm }
function TOptionsForm.GetCB(AIndex : Integer) : TCheckBox;
begin
Case AIndex of
0 : Result:=CBShowOnStartUp;
1 : Result:=CBShowOnMessage;
2 : Result:=CBNewAtBottom;
end;
end;
function TOptionsForm.GetB(AIndex: integer): Boolean;
begin
Result:=GetCb(AIndex).Checked;
end;
procedure TOptionsForm.SetB(AIndex: integer; const AValue: Boolean);
begin
GetCb(AIndex).Checked:=AValue;
end;
initialization
{$I frmoptions.lrs}
end.