diff --git a/.gitattributes b/.gitattributes index d5474aba3c..802fbe724c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3235,19 +3235,21 @@ components/onlinepackagemanager/images/ToolBar/Dis/01[!!-~]Filter.png -text svne components/onlinepackagemanager/images/ToolBar/Dis/02[!!-~]Download.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Dis/03[!!-~]Install.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Dis/04[!!-~]Update.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Dis/05[!!-~]CleanUp.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Dis/06[!!-~]Repository.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Dis/07[!!-~]Options.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Dis/08[!!-~]Help.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Dis/05[!!-~]Uninstall.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Dis/06[!!-~]CleanUp.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Dis/07[!!-~]Repository.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Dis/08[!!-~]Options.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Dis/09[!!-~]Help.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Nor/00[!!-~]Refresh.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Nor/01[!!-~]Filter.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Nor/02[!!-~]Download.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Nor/03[!!-~]Install.png -text svneol=unset#image/png components/onlinepackagemanager/images/ToolBar/Nor/04[!!-~]Update.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Nor/05[!!-~]CleanUp.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Nor/06[!!-~]Repository.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Nor/07[!!-~]Options.png -text svneol=unset#image/png -components/onlinepackagemanager/images/ToolBar/Nor/08[!!-~]Help.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Nor/05[!!-~]Uninstall.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Nor/06[!!-~]CleanUp.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Nor/07[!!-~]Repository.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Nor/08[!!-~]Options.png -text svneol=unset#image/png +components/onlinepackagemanager/images/ToolBar/Nor/09[!!-~]Help.png -text svneol=unset#image/png components/onlinepackagemanager/images/Tree_Buttons/00[!!-~]Repository.png -text svneol=unset#image/png components/onlinepackagemanager/images/Tree_Buttons/01[!!-~]PackageName.png -text svneol=unset#image/png components/onlinepackagemanager/images/Tree_Buttons/02[!!-~]PackageFile.png -text svneol=unset#image/png diff --git a/components/onlinepackagemanager/images/ToolBar/Dis/05 Uninstall.png b/components/onlinepackagemanager/images/ToolBar/Dis/05 Uninstall.png new file mode 100644 index 0000000000..5cd4c02a6d Binary files /dev/null and b/components/onlinepackagemanager/images/ToolBar/Dis/05 Uninstall.png differ diff --git a/components/onlinepackagemanager/images/ToolBar/Dis/05 CleanUp.png b/components/onlinepackagemanager/images/ToolBar/Dis/06 CleanUp.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Dis/05 CleanUp.png rename to components/onlinepackagemanager/images/ToolBar/Dis/06 CleanUp.png diff --git a/components/onlinepackagemanager/images/ToolBar/Dis/06 Repository.png b/components/onlinepackagemanager/images/ToolBar/Dis/07 Repository.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Dis/06 Repository.png rename to components/onlinepackagemanager/images/ToolBar/Dis/07 Repository.png diff --git a/components/onlinepackagemanager/images/ToolBar/Dis/07 Options.png b/components/onlinepackagemanager/images/ToolBar/Dis/08 Options.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Dis/07 Options.png rename to components/onlinepackagemanager/images/ToolBar/Dis/08 Options.png diff --git a/components/onlinepackagemanager/images/ToolBar/Dis/08 Help.png b/components/onlinepackagemanager/images/ToolBar/Dis/09 Help.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Dis/08 Help.png rename to components/onlinepackagemanager/images/ToolBar/Dis/09 Help.png diff --git a/components/onlinepackagemanager/images/ToolBar/Nor/05 Uninstall.png b/components/onlinepackagemanager/images/ToolBar/Nor/05 Uninstall.png new file mode 100644 index 0000000000..19993ff1c9 Binary files /dev/null and b/components/onlinepackagemanager/images/ToolBar/Nor/05 Uninstall.png differ diff --git a/components/onlinepackagemanager/images/ToolBar/Nor/05 CleanUp.png b/components/onlinepackagemanager/images/ToolBar/Nor/06 CleanUp.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Nor/05 CleanUp.png rename to components/onlinepackagemanager/images/ToolBar/Nor/06 CleanUp.png diff --git a/components/onlinepackagemanager/images/ToolBar/Nor/06 Repository.png b/components/onlinepackagemanager/images/ToolBar/Nor/07 Repository.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Nor/06 Repository.png rename to components/onlinepackagemanager/images/ToolBar/Nor/07 Repository.png diff --git a/components/onlinepackagemanager/images/ToolBar/Nor/07 Options.png b/components/onlinepackagemanager/images/ToolBar/Nor/08 Options.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Nor/07 Options.png rename to components/onlinepackagemanager/images/ToolBar/Nor/08 Options.png diff --git a/components/onlinepackagemanager/images/ToolBar/Nor/08 Help.png b/components/onlinepackagemanager/images/ToolBar/Nor/09 Help.png similarity index 100% rename from components/onlinepackagemanager/images/ToolBar/Nor/08 Help.png rename to components/onlinepackagemanager/images/ToolBar/Nor/09 Help.png diff --git a/components/onlinepackagemanager/opkman_const.pas b/components/onlinepackagemanager/opkman_const.pas index caef97cabf..7508e1f2c9 100644 --- a/components/onlinepackagemanager/opkman_const.pas +++ b/components/onlinepackagemanager/opkman_const.pas @@ -152,6 +152,8 @@ resourcestring rsMainFrm_TBInstall_Hint = 'Install packages'; rsMainFrm_TBUpdate_Caption = 'Update'; rsMainFrm_TBUpdate_Hint = 'Update packages from external URL'; + rsMainFrm_TBUnInstall_Caption = 'Uninstall'; + rsMainFrm_TBUnInstall_Hint = 'Uninstall packages'; rsMainFrm_TBCleanUp_Caption = 'Cleanup'; rsMainFrm_TBCleanUp_Hint = 'Cleanup local repository'; rsMainFrm_TBRepository_Caption = 'Create'; @@ -198,6 +200,10 @@ resourcestring +'Resolve dependency?'; rsMainFrm_rsPackageDependency1 = 'Not resolving dependencies might lead to install failure!'; rsMainFrm_rsPackageRating = 'Your vote for package "%s" is: %s. Thank you for voting!'; + rsMainFrm_rsUninstall = '%sAre you sure you wish to uninstall the checked packages?' + sLineBreak + + 'Please note: in order for the changes to take effect you must rebuid the IDE.'; + rsMainFrm_rsUninstall_Nothing = 'None of the checked packages are installed. Nothing to uninstall.'; + rsMainFrm_rsUninstall_Error = 'Cannot uninstall package "%s"!'; //progress form rsProgressFrm_Caption0 = 'Downloading packages'; diff --git a/components/onlinepackagemanager/opkman_mainfrm.lfm b/components/onlinepackagemanager/opkman_mainfrm.lfm index 59f9f6c7ac..00aa4189a7 100644 --- a/components/onlinepackagemanager/opkman_mainfrm.lfm +++ b/components/onlinepackagemanager/opkman_mainfrm.lfm @@ -15,7 +15,7 @@ object MainFrm: TMainFrm OnKeyPress = FormKeyPress OnShow = FormShow Position = poScreenCenter - LCLVersion = '1.7' + LCLVersion = '1.9.0.0' object pnMain: TPanel Left = 0 Height = 530 @@ -391,7 +391,7 @@ object MainFrm: TMainFrm TabOrder = 1 OnResize = pnToolBarResize object tbButtons: TToolBar - Left = 137 + Left = 81 Height = 63 Top = 3 Width = 663 @@ -407,11 +407,11 @@ object MainFrm: TMainFrm TabOrder = 0 Transparent = True object tbOptions: TToolButton - Left = 433 + Left = 503 Top = 0 AutoSize = True Caption = 'Options' - ImageIndex = 6 + ImageIndex = 7 OnClick = tbOptionsClick ParentShowHint = False ShowHint = True @@ -427,11 +427,11 @@ object MainFrm: TMainFrm ShowHint = True end object tbCleanUp: TToolButton - Left = 281 + Left = 351 Top = 0 AutoSize = True Caption = 'Clean up' - ImageIndex = 4 + ImageIndex = 5 OnClick = tbCleanUpClick ParentShowHint = False ShowHint = True @@ -457,12 +457,12 @@ object MainFrm: TMainFrm ShowHint = True end object tbCreate: TToolButton - Left = 351 + Left = 421 Top = 0 AutoSize = True Caption = 'Create' DropdownMenu = pmCreate - ImageIndex = 5 + ImageIndex = 6 ParentShowHint = False ShowHint = True Style = tbsDropDown @@ -478,15 +478,25 @@ object MainFrm: TMainFrm ShowHint = True end object tbHelp: TToolButton - Left = 503 + Left = 573 Top = 0 AutoSize = True Caption = 'Help' - ImageIndex = 7 + ImageIndex = 8 OnClick = tbHelpClick ParentShowHint = False ShowHint = True end + object tbUninstall: TToolButton + Left = 281 + Top = 0 + AutoSize = True + Caption = 'Uninstall' + ImageIndex = 4 + OnClick = tbUninstallClick + ParentShowHint = False + ShowHint = True + end end end object tbCleanUp1: TToolButton @@ -498,6 +508,16 @@ object MainFrm: TMainFrm ParentShowHint = False ShowHint = True end + object tbInstall1: TToolButton + Left = 141 + Top = 0 + AutoSize = True + Caption = 'Install' + ImageIndex = 2 + OnClick = tbInstallClick + ParentShowHint = False + ShowHint = True + end object pmTree: TPopupMenu left = 248 top = 168 @@ -1430,7 +1450,7 @@ object MainFrm: TMainFrm left = 64 top = 224 Bitmap = { - 4C69080000002000000020000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + 4C69090000002000000020000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -1951,120 +1971,126 @@ object MainFrm: TMainFrm FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00035B92A6035B91EF035A91EB025A92A1FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00045B93863281B0F89DC7E2FF8FBEDBFF5195BFFB035A91DDFFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00035C93E493C1DEFF16699DFF126497FF2F79A7FF2E7CABF7FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00025A91F37AB0D1FF2873A0FFECEEEEFF19689AFF6BA7CDFF035B92E5FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00035A93BA5EA0C7FE1E6D9EFF19689AFF12689EFF97C6E3FF196CA0F4FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00085E94F590C0DEFF3F92C6FF0F7BBFFF51A0D1FF4B95C4FF035C - 92CBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF002172A4F58DC1E1FF2186C5FF1982C3FF62A9D4FF085E - 94F6FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00035A92C93B8ABAFB5DA7D5FF107CBFFF3990C7FF2076 - ADFC016096AF07A5C79300A0C4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00035B90F24292C2FF2E89C1FF167AB7FF188F - BDFF059FC3FF42C4DCF90CA6C7FCFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00085F95F4228EBEFF099FC5FF26B2 - D2FF83E5F4FF95E5F4FF114B97F9010570EBFFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000196BDE910A5C8FF64DAEDFF8EEF - FCFF5193C4FF0D1379FF181C99FF1A1AB2FF00006DF2FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF0002A1C4FF29BED7FC5DDCEDFF4DAFD4FF1124 - 84FF101688FF4545DFFF4747EEFF2B2BD2FF030375F4FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF0000A0C4FA1BA1C5F8174193FF030975FF1011 - AEFF3333E3FF4B4BF4FF3031BFFF030872FF023C8FFC02A1C5D3FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000A73F6000395FF0000BFFF1010 - CDFF1F1FC0FF0A1181FF0B2886FE71BDDCFF91F0FDFF6EDBEDFF20AFCEF500A2 - C6A1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000006EE00000AAFF0000B7FF0208 - 89FF020E75FF4E92C1FFB4F5FEFF7AEEFDFF48E7FDFF4DE4F7FF78E2F1FF3EBF - D8F700A3C6C8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000016EF500066FFE0C59 - A0FE8EE8F8FF89EFFEFF7AEDFDFF64E5F9FF50E6FCFF35E3F9FF2AD5ECFF63DB - EAFF59CCDEFA03A3C6DDFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00008EBAA74DCF - E5FF65EAFCFF4EE6FCFF5FE6F9FF53DBF0FF4EE3F7FF33DBF4FF25D7EEFF14C6 - DEFF50D3E4FF73D5E6FD0BA6C7EAFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000A1C59B48CD - E1FF5AE5F6FF3EE4FCFF46DCF3FF54E1F7FF37CFE9FF37DCF4FF23D0EAFF23CE - E5FF06B9D4FF4AD1E2FF85DCE9FE14A8CAF1FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0039C4 - DCFD5AE0F1FF31E0F8FF34D7F0FF48E2F8FF30CBE7FF2DD1ECFF20C8E4FF1ACB - E4FF28C8DFFF03B3D0FF48CEE1FF91E0ECFF25AFCEF5FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0024B6 - D2F561DCEDFF23D4EDFF2BD8F0FF2FD4EEFF3CDFF7FF14B7D7FF2FD6EEFF16BB - D8FF13C9DFFF30C8DDFF04AFCEFF3BC8DDFF9AE4EEFF42BCD5F700A2C69CFFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000DA9 - C9F26FDDEBFF15C7E2FF25D6EEFF1BC3E0FF36E3FAFF21C7E2FF13B9D7FF31C9 - E2FF08B4D2FF13C4DCFF3ECCE0FF07ACCCFF31C1D8FF97E4EFFF70D1E1F90CA6 - C8EBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000A2 - C5F364D8E7FF1BC2DBFF19CFE8FF14BDDAFF25D4EEFF41DFF3FF06A6C9FF2ACD - E5FF23B8D4FF01B4D2FF21C9DEFF47D0E2FF0EADCDFF1FB4D1FF95E3EEFF9EE3 - EEFF0FA6C7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000A3 - C5AB40C7DCFF38C8DDFF0BC1DCFF13C1DCFF12BDDBFF35DBF0FF3BCAE3FF07AB - CDFF42D1E5FF0CA7CAFF02BBD5FF33CDE0FF50D4E4FF3CC0D9FF16AAC9FF2BB2 - D0F9009EBF90FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF0015AECCF264D5E6FF06B4D1FF19C8E1FF09AACCFF1ACDE7FF5DDEEFFF13AD - CDFF1CC0DAFF42C8DDFF03A5C8FF1CC4DBFF89E2EEFF6CD5E5FF07A2C6F80096 - B799FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF0000A1C4E557D1E3FF3DC0D8FF07BED7FF28BCD6FF07B1D1FF40D5E8FF48CF - E3FF02A4C6FF47D1E3FF52C9DDFF13A9CBFF26B6D1F900A0C3EDFFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF001AAFCDF577D6E7FF0EB4D1FF3ACDE0FF08A5C8FF18C1DAFF60D9 - E8FF39BED6FF3DBCD6FF57CBDFFD05A2C6FA0093B3BFFFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00009DC1D942C8DDFD75CFE1FF44CCE0FF61D1E4FF0CA6C7FF78D8 - E7FF55C9DDFC03A0C5FE0093B2C9FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF0001A0C4F55CCBDFFF51BFD7FF47C5DCFD16A9CAF8019F - C2F80089A8ADFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00009EC2DC009DBFDA008FB0A2FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000B679F000C669F000B679E000568 + 9D0009659E38146DA4931971A8961871A8951971A8951971A8951971A8951971 + A8951A72A8951A72A9951A72A9951A72A9951C73A9951E74AA951E75AA951E75 + AA951F75AA951F75AB951F75AB952076AB952076AB981F73AA830E69A30E0965 + 9F000F679E000B659E000A659F00FFFFFF000B679F000C669F000B679E000063 + 992F1F74A9CE5296C2FF5498C3FF5599C4FF5699C4FF589AC5FF599BC6FF5A9D + C7FF5C9EC7FF5D9FC8FF5FA0C9FF60A0C9FF64A3CBFF68A6CDFF68A7CDFF6AA8 + CEFF6CA8CFFF6DA9D0FF6FABD1FF70ACD2FF74AFD4FF6DAAD0FF1F74AA980461 + 9C110F679E000B659E000A659F00FFFFFF000B679F000B659F0005629B563E8B + B9EA87BBDCFF4689B4FF1D6798FF226B9CFF226B9CFF236B9BFF236B9CFF236B + 9BFF236B9BFF236B9BFF236B9BFF246B9AFF246B9BFF246B9AFF246B9AFF246B + 9AFF256B9AFF256B9AFF256B99FF246A98FF216998FF8BBCDAFFA5CFE8FF2477 + ADCD076199370B669E000B669E00FFFFFF0009669E0409659E6A4893C4FFA6D5 + F4FF97C8E8FF3679A3FF0A4F7DFF105582FF105482FF105481FF105481FF0F54 + 81FF0F5380FF0F5380FF0F537FFF0F527FFF0F527FFF0F527EFF0F527EFF0F51 + 7EFF0E517DFF0E517DFF0E517DFF0D507BFF094D7AFF7BAECDFFCFEDFFFF9BCC + EDFF3083B6F2045EA04B045BA500FFFFFF0006629B17176FA8B784C2EBFF9ED2 + F4FF8FC5E8FF3A769CFF09436AFF104A70FF104A70FF104A70FF104970FF104A + 6FFF0F496FFF0F496FFF0F486EFF0F486DFF0F476DFF0E476DFF0E476DFF0E46 + 6CFF0E466BFF0E466BFF0E466BFF0D4469FF0A4268FF79AAC8FFBFE5FCFFA3D5 + F5FF6EB4DFFF0A63A48C055AA300FFFFFF0009649D292179B0CD79BEEBFF8DCA + F1FF6EADD6FF5390B7FF4582A9FF4B86ADFF4E88AEFF508AAFFF548CB1FF578E + B2FF5A90B3FF5D92B5FF5F93B6FF6194B6FF6396B7FF6597B8FF6799B9FF6A9A + BAFF6A9ABAFF6A9ABAFF6A9ABAFF6A99B9FF6999B9FF8BBAD9FF9FCDEBFF95CD + F2FF72B9E8FF126CA4A308659A0DFFFFFF0009629D3A2980B9E86EBAECFF4493 + C6FB2276ABDF61AEDDFF73BEEEFF71BCECFF72BDEDFF72BDEDFF73BDEDFF73BE + EDFF74BEEEFF74BEEEFF75BFEEFF76BFEEFF76C0EFFF77C0EFFF78C1EFFF78C1 + F0FF79C1F0FF79C2F0FF79C2F0FF79C2F1FF78C2F2FF82BFE7FA71ACD0BB5EA4 + D0F261AFE1FF1C74AFC5085DA323FFFFFF0009629C512880BAFD2F86BEF90663 + 9C62146EA6A86AB5E6FF71BCECFF6FBAEBFF6FBAEBFF6FBBEBFF6FBBEBFF6FBB + EBFF6FBAEBFF6FBAEBFF6FBBEBFF6FBBEBFF70BBEBFF6FBBEBFF6FBAEBFF6FBA + EBFF6FBAEAFF6DB9E9FF6BB7E8FF6AB6E7FF69B6E7FF60AADAFE4496C56A438E + BD34297FB0C41268ADF60222DE42FFFFFF000D67A0780E69A2E70C66A04A0171 + AE002C84BAE076BDEBFF6FBBEBFF6FBCEDFF6DBDF0FF6CBCEEFF6CBAECFF6BBB + EDFF6BBBEFFF6DBAECFF6CB8E9FF6BB7E8FF69B6E6FF66B3E5FF63B1E3FF60AF + E1FF5DACE0FF5AAADEFF56A7DCFF52A4D9FF50A2D8FF4F9FD2FF1870A8A02074 + AA00247DB0070967A062025FA027FFFFFF000C679E2607679D280C68A2000364 + 9E304795C6FA79C3F3FF69B6E9FF6AAAD3FF77A2BFFF7E9FB4FF7E9CAFFF7B9D + B2FF719DBAFF5C9EC8FF52A4DAFF4FA5DDFF4EA2D8FF4B9ED6FF489CD4FF449A + D2FF4197D0FF3D95CDFF3A92CCFF368FCAFF318CC7FF3E93CAFF1B72AAD30D61 + 9C051C74AB000C6AA10002669900FFFFFF000A679F0005669E0008639F000964 + 9F6759A5D4FF6FAACFFF8099AAFFABADAFFFC8C4C2FFD6D1CDFFDAD6D3FFDCD7 + D4FFD3CFCDFFB6B7B9FF7F97A6FF4E8EB8FF4398CFFF4698CEFF4496CCFF4193 + CBFF3E91C9FF3B8FC7FF388DC5FF358BC4FF3289C2FF4292C7FF2C7EB3FB0C62 + 9B220F659E000C689F0002669B00FFFFFF0013699D0013689D0012659C001167 + 9E875484A2FEA8A9A9FFD0CBC8FFD2D1D0FFCDCDCDFFCECECEFFD4D4D4FFDDDD + DDFFE6E6E6FFF2F1F1FFEFEAE7FFBAB9B8FF57829FFF2578ADFF287AADFF2879 + ADFF2879ADFF2879ADFF2879ADFF2879ADFF2879ADFF2A7BB0FE1B72A9F10A66 + 9F4A0C67A0000C67A00008669E00FFFFFF00797F8200797F8200787E8100777D + 8070AFAFAFFCCDCCCBFFBDBDBDFFBDBDBDFFC4C4C4FFCBCBCBFFD3D3D3FFDBDB + DBFFE3E3E3FFE8E9E9FFF2F2F2FFFEFCFBFFCDCBCAFF496C83FF1B5D88FF2060 + 89FF216089FF216089FF216089FF205F88FF26648BFF156699F108659F1E0C66 + A0080C67A3000C68A3000D68A300FFFFFF0082807F0082807F007E7C7B33AFAD + ACF4D5D4D4FFB9B9B9FF0101A1353A3CBDE30404A848CDCDCDFFD6D6D6FFDEDE + DEFFE5E5E5FF0202A5483C3FBEE40404A535FEFDFCFFBCBAB9FF3F7191FF2A71 + A0FF2E729FFF2E729FFF2E729FFF2D729EFF397AA3FF2272A4F00966A10B0C6A + A6000B6198000B6096000B609600FFFFFF00818181007D7D7D02929292B9D9D9 + D9FFC9C9C9FF00009C351D23B9EF8288F2FF2F36C0F70000A149DEDEDEFFE3E3 + E3FF00009E492C33C0F7848AF2FF2228B9EF00009F35EBE8E5FF8998A3FF337E + B0FF3583B5FF3683B5FF3683B5FF3582B5FF478EBCFF297BAFF00968A40F0848 + 6F0001090E0001060A0001060A00FFFFFF00808080007D7D7D3ABDBDBDFEDDDD + DDFFCBCBCBFF0407A5E3646DE4FF6B6BE6FF7376E6FF2B33B3F70000704A0000 + 704A2A31B4F77073E6FF6B6BE6FF7D83E7FF0307A5E3EBEBEBFFC7C5C3FF508B + B0FF3B94CDFF3F94CAFF3F94CAFF3D93CAFF55A0D2FF3081B4F0011D300F0000 + 0000000000000000000000000000FFFFFF007C7C7C0186868689DCDCDCFFDCDC + DCFFD3D3D3FF000093481D27B2F7555AD6FF5454D3FF5F62D4FF272F91F8262E + 92F85D60D4FF5454D3FF5B5FD7FF2930B4F700009648E2E2E3FFE4DFDBFF7192 + A8FF3F98D3FF4499D2FF4499D1FF4198D1FF5EAADBFF357EACF0000000000000 + 0000000000000000000000000000FFFFFF007B7B7B18949494B7E9E9E9FFE1E1 + E1FFDDDDDDFFDCDBDBFF00008E491924ACF74147CCFF3D3DC9FF494DC7FF494D + C8FF4040CAFF595FD2FF1F28ADF700009149D8D8D8FFDDDDDDFFE6E4E2FF90A0 + ABFF4496CDFF469BD4FF479BD2FF439AD2FF66AFDEFF3B82B0F00002061A0000 + 0000000000000000000000000000FFFFFF008686862BA6A6A6D1F1F1F1FFE9E9 + E9FFE6E6E6FFE4E5E5FFE7E8E8FF000088491622A7F73138C7FF2F2FC3FF3232 + C2FF323AC2FF111FA4F700008B49D0D0D0FFD4D4D4FFD9D9D9FFE4E2E1FFA1A9 + ADFF4797CBFF489DD5FF4A9ED4FF469CD3FF6DB3E1FF4085B2F20001062E0000 + 0000000000000000000000000000FFFFFF004E4E4E2CA3A3A3D2F7F7F7FFF1F1 + F1FFECECECFFECECECFFECEDEDFF00008349121EA4F70A12C2FF0000BCFF0000 + BCFF0A12C2FF131FA4F700008549CCCCCCFFD0D0D0FFD5D5D5FFE0DFDDFFA0A7 + ADFF4A99CDFF4CA0D6FF4D9FD5FF489DD4FF73B6E3FF4387B2F5000106490000 + 0000000000000000000000000000FFFFFF001313131A919191B9FAFAFAFFF7F7 + F7FFF3F3F3FFF2F2F2FF00007D49151FA2F70C12D3FF0000D0FF0D13C8FF0D13 + C9FF0000D0FF0C13D3FF1720A2F700007F49CDCDCDFFD2D2D2FFDCD9D7FF8F9F + A9FF4B9CD2FF4DA1D8FF4EA1D7FF4A9FD6FF74B8E4FF4488B3F70001065F0000 + 0000000000000000000000000000FFFFFF00131313037373738DF4F4F4FFFDFD + FDFFF7F7F7FF070978491B22A1F70E13E2FF0000E2FF1215DCFF1A215AF81B22 + 5AF71215DCFF0000E2FF1014E2FF1F23A1F722228E49CFCFCFFFD3CECCFF7F9B + ADFF5FADE1FF61AEDFFF62AEDFFF5EACDEFF84C3EBFF448AB7FA000106660000 + 0000000000000000000000000000FFFFFF000000000037373742D6D6D6FFFFFF + FFFFFCFCFCFF1C2581E42B30E9FF0000F3FF1416EDFF20246BF70000474A0000 + 444A21246CF71416EDFF0000F3FF2E32E9FF313199E3D1D0D0FFB9B8B9FF6C9C + BBFF6BB2DEFF6DB0DAFF6DB0DAFF6EB2DCFF65ACDAFF185982CC0001034E0000 + 0000000000000000000000000000FFFFFF000000000005050504909090C1FDFD + FDFFFFFFFFFF030474351C1E99EF2E31EAFF222582F700004C4AD6D6D6FFCECF + CFFF00004A49222585F72E32EAFF1C1E99EF02027935D0CFCFFF848789E4072C + 448C012B448C032B448D032B448C032C458D0027418400091050000000000000 + 0000000000000000000000000000FFFFFF0000000000000000003838383BCBCB + CBF9FFFFFFFFF7F7F7FF0A0E73371D257DE503046249DADADAFFD2D2D2FFCBCB + CBFFC4C4C4FF050568493A3BB1E50A0A8235C7C7C7FFB2B2B2FE343434690000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000030303005151 + 517BCECECEFFFFFFFFFFF9F9F9FFEEEEEEFFE7E7E7FFE0E0E0FFD8D8D8FFD1D1 + D1FFCACACAFFC2C2C2FFBDBDBDFFC0C0C0FFB3B3B3FF54545494020202130000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 00004949498BB9B9B9FCF6F6F6FFFCFCFCFFF1F1F1FFE7E7E7FFE0E0E0FFD9D9 + D9FFD4D4D4FFD1D1D1FFC8C8C8FFA6A6A6FF4F4F4F9B02020227000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 000000000000252525617A7A7AC8BFBFBFFDE1E1E1FFE6E6E6FFE4E4E4FFDBDB + DBFFCFCFCFFFB0B0B0FE7A7A7AD02D2D2D6F0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 0000000000000000000000000000262626484A4A4A836F6F6FA2767676B06E6E + 6EA54B4B4B882B2B2B500303031C000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -2077,6 +2103,128 @@ object MainFrm: TMainFrm FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00035B92A6035B91EF035A91EB025A92A1FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00045B93863281B0F89DC7E2FF8FBEDBFF5195BFFB035A91DDFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00035C93E493C1DEFF16699DFF126497FF2F79A7FF2E7CABF7FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00025A91F37AB0D1FF2873A0FFECEEEEFF19689AFF6BA7CDFF035B + 92E5FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00035A93BA5EA0C7FE1E6D9EFF19689AFF12689EFF97C6E3FF196C + A0F4FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00085E94F590C0DEFF3F92C6FF0F7BBFFF51A0D1FF4B95 + C4FF035C92CBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF002172A4F58DC1E1FF2186C5FF1982C3FF62A9 + D4FF085E94F6FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00035A92C93B8ABAFB5DA7D5FF107CBFFF3990 + C7FF2076ADFC016096AF07A5C79300A0C4FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00035B90F24292C2FF2E89C1FF167A + B7FF188FBDFF059FC3FF42C4DCF90CA6C7FCFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00085F95F4228EBEFF099F + C5FF26B2D2FF83E5F4FF95E5F4FF114B97F9010570EBFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000196BDE910A5C8FF64DA + EDFF8EEFFCFF5193C4FF0D1379FF181C99FF1A1AB2FF00006DF2FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0002A1C4FF29BED7FC5DDCEDFF4DAF + D4FF112484FF101688FF4545DFFF4747EEFF2B2BD2FF030375F4FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000A0C4FA1BA1C5F8174193FF0309 + 75FF1011AEFF3333E3FF4B4BF4FF3031BFFF030872FF023C8FFC02A1C5D3FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000A73F6000395FF0000 + BFFF1010CDFF1F1FC0FF0A1181FF0B2886FE71BDDCFF91F0FDFF6EDBEDFF20AF + CEF500A2C6A1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000006EE00000AAFF0000 + B7FF020889FF020E75FF4E92C1FFB4F5FEFF7AEEFDFF48E7FDFF4DE4F7FF78E2 + F1FF3EBFD8F700A3C6C8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000016EF50006 + 6FFE0C59A0FE8EE8F8FF89EFFEFF7AEDFDFF64E5F9FF50E6FCFF35E3F9FF2AD5 + ECFF63DBEAFF59CCDEFA03A3C6DDFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00008E + BAA74DCFE5FF65EAFCFF4EE6FCFF5FE6F9FF53DBF0FF4EE3F7FF33DBF4FF25D7 + EEFF14C6DEFF50D3E4FF73D5E6FD0BA6C7EAFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000A1 + C59B48CDE1FF5AE5F6FF3EE4FCFF46DCF3FF54E1F7FF37CFE9FF37DCF4FF23D0 + EAFF23CEE5FF06B9D4FF4AD1E2FF85DCE9FE14A8CAF1FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0039C4DCFD5AE0F1FF31E0F8FF34D7F0FF48E2F8FF30CBE7FF2DD1ECFF20C8 + E4FF1ACBE4FF28C8DFFF03B3D0FF48CEE1FF91E0ECFF25AFCEF5FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0024B6D2F561DCEDFF23D4EDFF2BD8F0FF2FD4EEFF3CDFF7FF14B7D7FF2FD6 + EEFF16BBD8FF13C9DFFF30C8DDFF04AFCEFF3BC8DDFF9AE4EEFF42BCD5F700A2 + C69CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000DA9C9F26FDDEBFF15C7E2FF25D6EEFF1BC3E0FF36E3FAFF21C7E2FF13B9 + D7FF31C9E2FF08B4D2FF13C4DCFF3ECCE0FF07ACCCFF31C1D8FF97E4EFFF70D1 + E1F90CA6C8EBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0000A2C5F364D8E7FF1BC2DBFF19CFE8FF14BDDAFF25D4EEFF41DFF3FF06A6 + C9FF2ACDE5FF23B8D4FF01B4D2FF21C9DEFF47D0E2FF0EADCDFF1FB4D1FF95E3 + EEFF9EE3EEFF0FA6C7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0000A3C5AB40C7DCFF38C8DDFF0BC1DCFF13C1DCFF12BDDBFF35DBF0FF3BCA + E3FF07ABCDFF42D1E5FF0CA7CAFF02BBD5FF33CDE0FF50D4E4FF3CC0D9FF16AA + C9FF2BB2D0F9009EBF90FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF0015AECCF264D5E6FF06B4D1FF19C8E1FF09AACCFF1ACDE7FF5DDE + EFFF13ADCDFF1CC0DAFF42C8DDFF03A5C8FF1CC4DBFF89E2EEFF6CD5E5FF07A2 + C6F80096B799FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF0000A1C4E557D1E3FF3DC0D8FF07BED7FF28BCD6FF07B1D1FF40D5 + E8FF48CFE3FF02A4C6FF47D1E3FF52C9DDFF13A9CBFF26B6D1F900A0C3EDFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF001AAFCDF577D6E7FF0EB4D1FF3ACDE0FF08A5C8FF18C1 + DAFF60D9E8FF39BED6FF3DBCD6FF57CBDFFD05A2C6FA0093B3BFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00009DC1D942C8DDFD75CFE1FF44CCE0FF61D1E4FF0CA6 + C7FF78D8E7FF55C9DDFC03A0C5FE0093B2C9FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0001A0C4F55CCBDFFF51BFD7FF47C5DCFD16A9 + CAF8019FC2F80089A8ADFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00009EC2DC009DBFDA008FB0A2FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 0004A99580B0AD9883FFAC9782FFAC9782FFAC9782FFAC9782FFAC9782FFAC97 @@ -2463,7 +2611,7 @@ object MainFrm: TMainFrm left = 64 top = 288 Bitmap = { - 4C69080000002000000020000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + 4C69090000002000000020000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF @@ -2987,6 +3135,134 @@ object MainFrm: TMainFrm FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006D6D6D006C6C6C006C6C6C006C6C + 6C006B6B6B387373739377777796777777957777779577777795777777957777 + 779578787895787878957878789578787895797979957A7A7A957A7A7A957A7A + 7A957B7B7B957B7B7B957B7B7B957C7C7C957C7C7C98797979836F6F6F0E6B6B + 6B006D6D6D006B6B6B006B6B6B00FFFFFF006D6D6D006C6C6C006C6C6C006767 + 672F7A7A7ACE9B9B9BFF9D9D9DFF9E9E9EFF9E9E9EFF9F9F9FFFA0A0A0FFA1A1 + A1FFA2A2A2FFA3A3A3FFA4A4A4FFA4A4A4FFA7A7A7FFAAAAAAFFABABABFFACAC + ACFFACACACFFADADADFFAFAFAFFFB0B0B0FFB3B3B3FFAEAEAEFF7A7A7A986868 + 68116D6D6D006B6B6B006B6B6B00FFFFFF006D6D6D006C6C6C00686868568F8F + 8FEABEBEBEFF8E8E8EFF6D6D6DFF717171FF717171FF717171FF717171FF7171 + 71FF717171FF717171FF717171FF707070FF717171FF707070FF707070FF7070 + 70FF717171FF717171FF707070FF6F6F6FFF6E6E6EFFBFBFBFFFD1D1D1FF7D7D + 7DCD676767376C6C6C006C6C6C00FFFFFF006C6C6C046B6B6B6A999999FFD8D8 + D8FFCBCBCBFF7D7D7DFF545454FF5A5A5AFF5A5A5AFF595959FF595959FF5959 + 59FF585858FF585858FF585858FF575757FF575757FF575757FF575757FF5656 + 56FF565656FF565656FF565656FF555555FF525252FFB1B1B1FFEEEEEEFFD0D0 + D0FF888888F26767674B67676700FFFFFF0068686817767676B7C7C7C7FFD6D6 + D6FFC9C9C9FF7A7A7AFF484848FF4E4E4EFF4E4E4EFF4E4E4EFF4E4E4EFF4E4E + 4EFF4D4D4DFF4D4D4DFF4C4C4CFF4C4C4CFF4B4B4BFF4B4B4BFF4B4B4BFF4A4A + 4AFF4A4A4AFF4A4A4AFF4A4A4AFF484848FF464646FFADADADFFE7E7E7FFD8D8 + D8FFB8B8B8FF6C6C6C8C66666600FFFFFF006A6A6A297F7F7FCDC3C3C3FFCECE + CEFFB2B2B2FF949494FF868686FF8A8A8AFF8C8C8CFF8E8E8EFF909090FF9292 + 92FF949494FF969696FF979797FF989898FF9A9A9AFF9B9B9BFF9C9C9CFF9E9E + 9EFF9E9E9EFF9E9E9EFF9E9E9EFF9D9D9DFF9D9D9DFFBDBDBDFFD0D0D0FFD1D1 + D1FFBEBEBEFF727272A36A6A6A0DFFFFFF006969693A878787E8C0C0C0FF9999 + 99FB7C7C7CDFB3B3B3FFC3C3C3FFC1C1C1FFC2C2C2FFC2C2C2FFC2C2C2FFC3C3 + C3FFC3C3C3FFC3C3C3FFC4C4C4FFC4C4C4FFC5C5C5FFC5C5C5FFC6C6C6FFC6C6 + C6FFC6C6C6FFC7C7C7FFC7C7C7FFC7C7C7FFC7C7C7FFC4C4C4FAB0B0B0BBA9A9 + A9F2B5B5B5FF7B7B7BC568686823FFFFFF0069696951878787FD8C8C8CF96969 + 6962747474A8BBBBBBFFC1C1C1FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0 + C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0 + C0FFBFBFBFFFBEBEBEFFBCBCBCFFBBBBBBFFBBBBBBFFAFAFAFFE9A9A9A6A9393 + 9334838383C4727272F656565642FFFFFF006D6D6D786F6F6FE76D6D6D4A7676 + 76008A8A8AE0C2C2C2FFC0C0C0FFC1C1C1FFC3C3C3FFC1C1C1FFC0C0C0FFC0C0 + C0FFC1C1C1FFC0C0C0FFBDBDBDFFBCBCBCFFBBBBBBFFB9B9B9FFB7B7B7FFB4B4 + B4FFB2B2B2FFB0B0B0FFADADADFFAAAAAAFFA8A8A8FFA5A5A5FF767676A07A7A + 7A00828282076D6D6D6267676727FFFFFF006D6D6D266C6C6C286E6E6E006A6A + 6A309A9A9AFAC8C8C8FFBCBCBCFFAEAEAEFFA5A5A5FFA1A1A1FF9E9E9EFF9F9F + 9FFFA0A0A0FFA3A3A3FFAAAAAAFFABABABFFA8A8A8FFA5A5A5FFA3A3A3FFA0A0 + A0FF9E9E9EFF9B9B9BFF999999FF969696FF939393FF999999FF787878D36969 + 69057A7A7A006F6F6F0069696900FFFFFF006D6D6D006B6B6B006A6A6A006B6B + 6B67AAAAAAFFAEAEAEFF9B9B9BFFADADADFFC3C3C3FFD0D0D0FFD5D5D5FFD6D6 + D6FFCECECEFFB7B7B7FF989898FF939393FF9E9E9EFF9E9E9EFF9C9C9CFF9A9A + 9AFF989898FF969696FF949494FF929292FF909090FF989898FF848484FB6969 + 69226C6C6C006D6D6D006A6A6A00FFFFFF006E6E6E006E6E6E006B6B6B006D6D + 6D87878787FEA8A8A8FFCACACAFFD0D0D0FFCDCDCDFFCECECEFFD4D4D4FFDDDD + DDFFE6E6E6FFF1F1F1FFE9E9E9FFB8B8B8FF858585FF7E7E7EFF7F7F7FFF7F7F + 7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF818181FE787878F16C6C + 6C4A6D6D6D006D6D6D006C6C6C00FFFFFF007F7F7F007F7F7F007E7E7E007D7D + 7D70AFAFAFFCCBCBCBFFBDBDBDFFBDBDBDFFC4C4C4FFCBCBCBFFD3D3D3FFDBDB + DBFFE3E3E3FFE8E8E8FFF2F2F2FFFBFBFBFFCACACAFF6E6E6EFF626262FF6464 + 64FF656565FF656565FF656565FF646464FF686868FF6C6C6CF16B6B6B1E6D6D + 6D086E6E6E006F6F6F006F6F6F00FFFFFF007F7F7F007F7F7F007B7B7B33ACAC + ACF4D4D4D4FFB9B9B9FF30303035626262E335353548CDCDCDFFD6D6D6FFDEDE + DEFFE5E5E5FF32323248646464E434343435FCFCFCFFB9B9B9FF747474FF7676 + 76FF777777FF777777FF777777FF777777FF7E7E7EFF777777F06D6D6D0B7171 + 7100676767006666660066666600FFFFFF00818181007D7D7D02929292B9D9D9 + D9FFC9C9C9FF2E2E2E354F4F4FEFA7A7A7FF5E5E5EF730303049DEDEDEFFE3E3 + E3FF2F2F2F495C5C5CF7A8A8A8FF525252EF2F2F2F35E7E7E7FF999999FF8484 + 84FF898989FF898989FF898989FF888888FF939393FF818181F06F6F6F0F4C4C + 4C00090909000606060006060600FFFFFF00808080007D7D7D3ABDBDBDFEDDDD + DDFFCBCBCBFF353535E38F8F8FFF8F8F8FFF979797FF585858F72121214A2121 + 214A575757F7959595FF8F8F8FFFA0A0A0FF353535E3EBEBEBFFC4C4C4FF8F8F + 8FFF9A9A9AFF9A9A9AFF9A9A9AFF999999FFA6A6A6FF878787F01F1F1F0F0000 + 0000000000000000000000000000FFFFFF007C7C7C0186868689DCDCDCFFDCDC + DCFFD3D3D3FF2B2B2B484F4F4FF77E7E7EFF797979FF838383FF4B4B4BF84A4A + 4AF8828282FF797979FF828282FF565656F72C2C2C48E2E2E2FFDEDEDEFF9494 + 94FF9F9F9FFFA0A0A0FFA0A0A0FF9F9F9FFFAFAFAFFF838383F0000000000000 + 0000000000000000000000000000FFFFFF007B7B7B18949494B7E9E9E9FFE1E1 + E1FFDDDDDDFFDBDBDBFF2A2A2A494B4B4BF76E6E6EFF666666FF717171FF7171 + 71FF696969FF808080FF4E4E4EF72B2B2B49D8D8D8FFDDDDDDFFE3E3E3FFA1A1 + A1FF9D9D9DFFA2A2A2FFA1A1A1FFA0A0A0FFB4B4B4FF878787F00202021A0000 + 0000000000000000000000000000FFFFFF008686862BA6A6A6D1F1F1F1FFE9E9 + E9FFE6E6E6FFE4E4E4FFE7E7E7FF28282849484848F7616161FF5B5B5BFF5D5D + 5DFF616161FF454545F729292949D0D0D0FFD4D4D4FFD9D9D9FFE1E1E1FFA9A9 + A9FF9D9D9DFFA4A4A4FFA4A4A4FFA2A2A2FFB8B8B8FF8A8A8AF20202022E0000 + 0000000000000000000000000000FFFFFF004E4E4E2CA3A3A3D2F7F7F7FFF1F1 + F1FFECECECFFECECECFFECECECFF27272749444444F7454545FF383838FF3838 + 38FF454545FF454545F727272749CCCCCCFFD0D0D0FFD5D5D5FFDEDEDEFFA7A7 + A7FF9F9F9FFFA6A6A6FFA5A5A5FFA3A3A3FFBBBBBBFF8C8C8CF5020202490000 + 0000000000000000000000000000FFFFFF001313131A919191B9FAFAFAFFF7F7 + F7FFF3F3F3FFF2F2F2FF25252549454545F74B4B4BFF3E3E3EFF484848FF4848 + 48FF3E3E3EFF4B4B4BFF454545F725252549CDCDCDFFD2D2D2FFD8D8D8FFA0A0 + A0FFA2A2A2FFA7A7A7FFA7A7A7FFA5A5A5FFBDBDBDFF8D8D8DF70202025F0000 + 0000000000000000000000000000FFFFFF00131313037373738DF4F4F4FFFDFD + FDFFF7F7F7FF29292949474747F7505050FF434343FF505050FF313131F83131 + 31F7505050FF434343FF515151FF484848F742424249CFCFCFFFCDCDCDFF9D9D + 9DFFB3B3B3FFB3B3B3FFB3B3B3FFB2B2B2FFC7C7C7FF8F8F8FFA020202660000 + 0000000000000000000000000000FFFFFF000000000037373742D6D6D6FFFFFF + FFFFFCFCFCFF3F3F3FE4666666FF484848FF565656FF383838F71515154A1414 + 144A393939F7565656FF484848FF686868FF505050E3D0D0D0FFB8B8B8FF9F9F + 9FFFB7B7B7FFB4B4B4FFB4B4B4FFB6B6B6FFB1B1B1FF5D5D5DCC0101014E0000 + 0000000000000000000000000000FFFFFF000000000005050504909090C1FDFD + FDFFFFFFFFFF25252535424242EF676767FF404040F71616164AD6D6D6FFCECE + CEFF16161649414141F7686868FF424242EF25252535CFCFCFFF878787E42E2E + 2E8C2D2D2D8C2D2D2D8D2D2D2D8C2E2E2E8D2A2A2A840A0A0A50000000000000 + 0000000000000000000000000000FFFFFF0000000000000000003838383BCBCB + CBF9FFFFFFFFF7F7F7FF2B2B2B373E3E3EE51F1F1F49DADADAFFD2D2D2FFCBCB + CBFFC4C4C4FF222222495E5E5EE52D2D2D35C7C7C7FFB2B2B2FE343434690000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000030303005151 + 517BCECECEFFFFFFFFFFF9F9F9FFEEEEEEFFE7E7E7FFE0E0E0FFD8D8D8FFD1D1 + D1FFCACACAFFC2C2C2FFBDBDBDFFC0C0C0FFB3B3B3FF54545494020202130000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 00004949498BB9B9B9FCF6F6F6FFFCFCFCFFF1F1F1FFE7E7E7FFE0E0E0FFD9D9 + D9FFD4D4D4FFD1D1D1FFC8C8C8FFA6A6A6FF4F4F4F9B02020227000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 000000000000252525617A7A7AC8BFBFBFFDE1E1E1FFE6E6E6FFE4E4E4FFDBDB + DBFFCFCFCFFFB0B0B0FE7A7A7AD02D2D2D6F0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF000000000000000000000000000000 + 0000000000000000000000000000262626484A4A4A836F6F6FA2767676B06E6E + 6EA54B4B4B882B2B2B500303031C000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00616161A6616161EF606060EB606060A1FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF diff --git a/components/onlinepackagemanager/opkman_mainfrm.pas b/components/onlinepackagemanager/opkman_mainfrm.pas index a0d926bf06..5aab049094 100644 --- a/components/onlinepackagemanager/opkman_mainfrm.pas +++ b/components/onlinepackagemanager/opkman_mainfrm.pas @@ -36,7 +36,7 @@ uses // LazUtils LazFileUtils, // IdeIntf - IDECommands, PackageLinkIntf, + IDECommands, PackageLinkIntf, PackageIntf, // OpkMan opkman_VirtualTrees, opkman_downloader, opkman_installer, opkman_serializablepackages, opkman_visualtree, opkman_const, opkman_common, @@ -72,6 +72,8 @@ type OD: TOpenDialog; SD: TSaveDialog; tbCleanUp1: TToolButton; + tbInstall1: TToolButton; + tbUninstall: TToolButton; tbOptions: TToolButton; cbAll: TCheckBox; cbFilterBy: TComboBox; @@ -132,6 +134,7 @@ type procedure pnTopResize(Sender: TObject); procedure spClearClick(Sender: TObject); procedure spExpandClick(Sender: TObject); + procedure tbUninstallClick(Sender: TObject); procedure tbUpdateClick(Sender: TObject); private FHintTimeOut: Integer; @@ -445,6 +448,7 @@ begin tbRefresh.Enabled := (AEnable) and (Trim(Options.RemoteRepository[Options.ActiveRepositoryIndex]) <> ''); tbDownload.Enabled := (AEnable) and (SerializablePackages.Count > 0) and (VisualTree.VST.CheckedCount > 0); tbInstall.Enabled := (AEnable) and (SerializablePackages.Count > 0) and (VisualTree.VST.CheckedCount > 0); + tbUninstall.Enabled := (AEnable) and (SerializablePackages.Count > 0) and (VisualTree.VST.CheckedCount > 0); tbUpdate.Enabled := (AEnable) and (SerializablePackages.Count > 0) and (VisualTree.VST.CheckedCount > 0); tbCleanUp.Enabled := (AEnable) and (SerializablePackages.Count > 0); tbCreate.Visible := Options.UserProfile = 1; @@ -755,6 +759,109 @@ begin end; end; +procedure TMainFrm.tbUninstallClick(Sender: TObject); + + function IsAtLeastOnePackageInstalled: Boolean; + var + I, J: Integer; + LazarusPackage: TLazarusPackage; + begin + Result := False; + for I := 0 to SerializablePackages.Count - 1 do + begin + for J := 0 to SerializablePackages.Items[I].LazarusPackages.Count - 1 do + begin + LazarusPackage := TLazarusPackage(SerializablePackages.Items[I].LazarusPackages.Items[J]); + if (LazarusPackage.Checked) and (LazarusPackage.PackageState = psInstalled) then + begin + Result := True; + Exit; + end; + end; + end; + end; + + function GetIDEPackage(const AFileName: String): TIDEPackage; + var + I: Integer; + begin + Result := nil; + for I := 0 to PackageEditingInterface.GetPackageCount - 1 do + begin + if UpperCase(PackageEditingInterface.GetPackages(I).Filename) = UpperCase(AFileName) then + begin + Result := PackageEditingInterface.GetPackages(I); + Break; + end; + end; + end; + +var + I, J: Integer; + LazarusPackage: TLazarusPackage; + IDEPackage: TIDEPackage; + FileName: String; + NeedToRebuild: Boolean; +begin + if not IsSomethingChecked then + Exit; + + if IsAtLeastOnePackageInstalled then + begin + if MessageDlgEx(Format(rsMainFrm_rsUninstall, [' ']), mtInformation, [mbYes, mbNo], Self) = mrNo then + Exit; + end + else + begin + MessageDlgEx(rsMainFrm_rsUninstall_Nothing, mtInformation, [mbOk], Self); + Exit; + end; + + NeedToRebuild := False; + Updates.StopUpdate; + for I := 0 to SerializablePackages.Count - 1 do + begin + for J := 0 to SerializablePackages.Items[I].LazarusPackages.Count - 1 do + begin + LazarusPackage := TLazarusPackage(SerializablePackages.Items[I].LazarusPackages.Items[J]); + if (LazarusPackage.Checked) and (LazarusPackage.PackageState = psInstalled) then + begin + case LazarusPackage.PackageType of + ptRunTime, ptRunTimeOnly: + begin + FileName := StringReplace(LazarusPackage.Name, '.lpk', '.opkman', [rfIgnoreCase]); + if FileExists(Options.LocalRepositoryPackages + SerializablePackages.Items[I].PackageBaseDir + LazarusPackage.PackageRelativePath + FileName) then + DeleteFile(Options.LocalRepositoryPackages + SerializablePackages.Items[I].PackageBaseDir + LazarusPackage.PackageRelativePath + FileName); + NeedToRebuild := True; + end; + ptDesignTime, ptRunAndDesignTime: + begin + IDEPackage := GetIDEPackage(LazarusPackage.PackageAbsolutePath); + if IDEPackage <> nil then + begin + if PackageEditingInterface.UninstallPackage(IDEPackage, False) <> mrOk then + begin + NeedToRebuild := False; + MessageDlgEx(Format(rsMainFrm_rsUninstall_Error, [LazarusPackage.Name]), mtError, [mbOk], Self); + Updates.StartUpdate; + Exit; + end + else + NeedToRebuild := True; + end; + end; + end; + end; + end; + end; + if NeedToRebuild then + begin + EnableDisableControls(False); + IDECommands.ExecuteIDECommand(Self, ecBuildLazarus); + EnableDisableControls(True); + end; +end; + procedure TMainFrm.tbInstallClick(Sender: TObject); var CanGo: Boolean; @@ -1125,6 +1232,8 @@ begin tbInstall.Hint := rsMainFrm_TBInstall_Hint; tbUpdate.Caption := rsMainFrm_TBUpdate_Caption; tbUpdate.Hint := rsMainFrm_TBUpdate_Hint; + tbUninstall.Caption := rsMainFrm_TBUninstall_Caption; + tbUninstall.Hint := rsMainFrm_TBUninstall_Hint; tbCleanUp.Caption := rsMainFrm_TBCleanUp_Caption; tbCleanUp.Hint := rsMainFrm_TBCleanUp_Hint; tbCreate.Caption := rsMainFrm_TBRepository_Caption; diff --git a/components/onlinepackagemanager/opkman_visualtree.pas b/components/onlinepackagemanager/opkman_visualtree.pas index 3e2dd5e7ba..aa6f2e1cae 100644 --- a/components/onlinepackagemanager/opkman_visualtree.pas +++ b/components/onlinepackagemanager/opkman_visualtree.pas @@ -185,7 +185,7 @@ begin DefaultText := ''; Header.AutoSizeIndex := 4; Header.Height := 25; - + Colors.DisabledColor := clBlack; with Header.Columns.Add do begin Position := 0;