diff --git a/Build/Build.fbp5 b/Build/Build.fbp5
index 8b7071ba..69b4022a 100644
--- a/Build/Build.fbp5
+++ b/Build/Build.fbp5
@@ -499,7 +499,7 @@ OriginalFilename=
ProductName=
ProductVersion=3.0.0.0
Comments=
-CompileDate=lunes, 17 de septiembre de 2007 12:28
+CompileDate=domingo, 30 de septiembre de 2007 20:47
]]>
@@ -694,7 +694,6 @@ LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
-Comments=
]]>
@@ -729,7 +728,7 @@ Comments=
%library_path%
0
True
- 3
+ 0
1048576
16384
@@ -754,133 +753,8 @@ Comments=
True
-
-
+
0
@@ -892,9 +766,9 @@ Comments=
0
1252
12
- Release
+ Debug
False
-
+
True
True
@@ -920,7 +794,7 @@ Comments=
0
False
0
- %source_path%\Base\GUIBase\GUIBase.dpk
+ %source_path%\GUIBase\GUIBase.dpk
True
0
@@ -962,9 +836,9 @@ Comments=
False
%base_dcp_path%
- False
+ True
- False
+ True
False
True
@@ -978,7 +852,7 @@ Comments=
True
%library_path%
0
- False
+ True
3
1048576
16384
@@ -990,7 +864,7 @@ Comments=
False
fa8
- False
+ True
False
True
@@ -1004,20 +878,145 @@ Comments=
True
+
+
+
+ 0
+
+ True
+ False
+ False
+ True
+ True
+ 0
+ 1252
+ 12
+ Debug
+ False
+
+
+ True
+ True
+
+ False
+
+ False
+ False
+ True
+ True
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ 3082
+
+ 1
+ 0
+ 0
+ False
+ 0
+ %source_path%\ApplicationBase\ApplicationBase.dpk
+ True
+ 0
+
+
+ rcBorland
+ 1000
+
+ False
+ False
+ False
+ False
+ [usPackages,usCompiler,usLinker,usVersionInfo]
+ False
+ False
+
+
+
+ False
+ False
+ False
+ False
+ False
+ True
+ False
+ False
+ %package_path%
+
+
+
+ False
+ %base_dcp_path%
+ True
+
+ True
+
+ False
+ True
+ False
+ False
+ True
+ 4194304
+ False
+ False
+ False
+ True
+ %library_path%
+ 0
+ True
+ 0
+ 1048576
+ 16384
+
+ True
+ True
+ %output_path%\Cliente
+ False
+
+ False
+ fa8
+ True
+ False
+
+ True
+ True
+ False
+ False
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+ False
+ True
+
+
Módulos
0
Módulos
- True
+ False
True
False
True
False
0
- False
+ True
0
1000
False
@@ -1037,1390 +1036,6 @@ Comments=
0
1000
False
-
- Empresas
- 0
-
- Empresas
- True
- True
- False
- True
- False
-
- 0
- False
- 0
- 1000
- False
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Empresas\Model\Empresas_model.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Empresas\Data\Empresas_data.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Empresas\Controller\Empresas_controller.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- False
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Base\Usuarios\Usuarios.dpk
- True
- 3
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Empresas\Views\Empresas_view.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Empresas\Plugin\Empresas_plugin.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 3
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
- Usuarios
- 0
-
- Usuarios
- True
- True
- False
- True
- False
-
- 0
- False
- 0
- 1000
- False
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Usuarios\Model\Usuarios_model.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 0
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- False
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3081
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Usuarios\Data\Usuarios_data.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 0
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- True
- True
-
- False
-
- False
- False
- False
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3081
-
- 1
- 0
- 0
- False
- 0
- %source_path%\Modulos\Usuarios\Controller\Usuarios_controller.dpk
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 0
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- False
- True
-
- False
-
- False
- False
- True
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3082
-
- 1
- 0
- 0
- False
- 0
-
-
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 0
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
-
-
- 0
-
- True
- False
- False
- True
- True
- 0
- 1252
- 12
- Release
- False
-
-
- False
- True
-
- False
-
- False
- False
- False
- True
- False
- False
- False
- False
- False
- False
- False
- False
- 3081
-
- 1
- 0
- 0
- False
- 0
-
-
- True
- 0
-
-
- rcBorland
- 1000
-
- False
- False
- False
- False
- [usPackages,usCompiler,usLinker,usVersionInfo]
- False
- False
-
-
-
- False
- False
- False
- False
- False
- True
- False
- False
- %package_path%
-
-
-
- False
- %modules_dcp_path%
- False
-
- False
-
- False
- True
- False
- False
- True
- 4194304
- False
- False
- False
- True
- %library_path%
- 0
- False
- 0
- 1048576
- 16384
-
- True
- True
- %output_path%
- False
-
- False
- fa8
- False
- False
-
- True
- True
- False
- False
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
- False
- True
-
-
-
@@ -16427,7 +15042,7 @@ Comments=
False
%output_path%\Cliente
False
- PluginSDK_D10R;GUISDK_D11;Base;GUIBase;Usuarios;Contactos_plugin;Empresas_plugin;
+ PluginSDK_D10R;GUISDK_D11;Base;GUIBase;ApplicationBase;
False
fa8
True
@@ -16673,7 +15288,7 @@ Comments=
vtProject
- %DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport3;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview;%project_path%\Lib\JSDialog;
+ %DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport3;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview;%project_path%\Lib\JSDialog;C:\UserControl\Lib\D11;
True
False
False
diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB
index 850051ab..1ff997a9 100644
Binary files a/Database/FACTUGES.FDB and b/Database/FACTUGES.FDB differ
diff --git a/Source/ApplicationBase/ApplicationBase.bdsproj b/Source/ApplicationBase/ApplicationBase.bdsproj
new file mode 100644
index 00000000..d4951b0d
--- /dev/null
+++ b/Source/ApplicationBase/ApplicationBase.bdsproj
@@ -0,0 +1,697 @@
+
+
+
+
+
+
+
+
+
+
+
+ ApplicationBase.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\Lib
+ ..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VCL for the Web Design Package for CodeGear RAD Studio
+ CodeGear WebSnap Components
+ CodeGear SOAP Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+
+
+
+
+
+
diff --git a/Source/ApplicationBase/ApplicationBase.cfg b/Source/ApplicationBase/ApplicationBase.cfg
new file mode 100644
index 00000000..7b0053cd
--- /dev/null
+++ b/Source/ApplicationBase/ApplicationBase.cfg
@@ -0,0 +1,40 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N0".\"
+-LE"..\..\..\..\Output\Debug\Cliente"
+-LN"..\Lib"
+-U"..\Lib"
+-O"..\Lib"
+-I"..\Lib"
+-R"..\Lib"
diff --git a/Source/ApplicationBase/ApplicationBase.dpk b/Source/ApplicationBase/ApplicationBase.dpk
new file mode 100644
index 00000000..7c23d5e4
--- /dev/null
+++ b/Source/ApplicationBase/ApplicationBase.dpk
@@ -0,0 +1,86 @@
+package ApplicationBase;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+{$DEFINE DEBUG}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ Base,
+ GUIBase,
+ pckUCDataConnector,
+ pckUserControl_RT,
+ JvJansD11R,
+ cxLibraryD10,
+ dxThemeD10,
+ cxEditorsD10,
+ cxDataD10,
+ vcljpg,
+ vcldb,
+ PNG_D10,
+ PngComponentsD10,
+ vclactnband,
+ vclx,
+ JvCoreD11R,
+ Jcl,
+ JclVcl,
+ JvSystemD11R,
+ JvMMD11R,
+ JvStdCtrlsD11R,
+ JvCtrlsD11R;
+
+contains
+ uFactuGES_App in 'uFactuGES_App.pas',
+ uIDataModuleUsuarios in 'Usuarios\Model\Data\uIDataModuleUsuarios.pas',
+ uDataModuleUsuarios in 'Usuarios\Data\uDataModuleUsuarios.pas',
+ uUCROConn in 'Usuarios\Data\uUCROConn.pas',
+ uUsuariosController in 'Usuarios\Controller\uUsuariosController.pas',
+ uBizEmpresasDatosBancarios in 'Empresas\Model\uBizEmpresasDatosBancarios.pas',
+ schEmpresasClient_Intf in 'Empresas\Model\schEmpresasClient_Intf.pas',
+ schEmpresasServer_Intf in 'Empresas\Model\schEmpresasServer_Intf.pas',
+ uBizEmpresas in 'Empresas\Model\uBizEmpresas.pas',
+ uIDataModuleEmpresas in 'Empresas\Model\Data\uIDataModuleEmpresas.pas',
+ uDataModuleEmpresas in 'Empresas\Data\uDataModuleEmpresas.pas',
+ uEmpresasController in 'Empresas\Controller\uEmpresasController.pas',
+ uDatosBancariosEmpresaController in 'Empresas\Controller\uDatosBancariosEmpresaController.pas',
+ uIEditorEmpresas in 'Empresas\Controller\View\uIEditorEmpresas.pas',
+ uIEditorDatosBancarioEmpresa in 'Empresas\Controller\View\uIEditorDatosBancarioEmpresa.pas',
+ uIEditorEmpresa in 'Empresas\Controller\View\uIEditorEmpresa.pas',
+ uViewEmpresa in 'Empresas\Views\uViewEmpresa.pas',
+ uEditorDatosBancariosEmpresa in 'Empresas\Views\uEditorDatosBancariosEmpresa.pas',
+ uEditorEmpresa in 'Empresas\Views\uEditorEmpresa.pas',
+ uEmpresasViewRegister in 'Empresas\Views\uEmpresasViewRegister.pas',
+ uViewDatosBancarios in 'Empresas\Views\uViewDatosBancarios.pas',
+ uCambiarPassword in 'Usuarios\Data\uCambiarPassword.pas',
+ uLoginForm in 'Usuarios\Data\uLoginForm.pas',
+ uUsuarios in 'Usuarios\Model\uUsuarios.pas',
+ schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas',
+ schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas',
+ uIEditorLogin in 'Usuarios\Controller\View\uIEditorLogin.pas',
+ uEditorLogin in 'Usuarios\Views\uEditorLogin.pas',
+ uUsuariosViewRegister in 'Usuarios\Views\uUsuariosViewRegister.pas';
+
+end.
diff --git a/Source/ApplicationBase/ApplicationBase.dproj b/Source/ApplicationBase/ApplicationBase.dproj
new file mode 100644
index 00000000..c9986fe8
--- /dev/null
+++ b/Source/ApplicationBase/ApplicationBase.dproj
@@ -0,0 +1,597 @@
+
+
+
+ {14a25028-ec1a-430c-ade3-13c264e9bac2}
+ ApplicationBase.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Output\Debug\Cliente\ApplicationBase.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\Output\Release\Cliente
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\Output\Debug\Cliente
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ ..\Lib
+ DEBUG
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0
+ VCL for the Web Design Package for CodeGear RAD Studio
+ CodeGear WebSnap Components
+ CodeGear SOAP Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ CodeGear C++Builder Office 2000 Servers Package
+ CodeGear C++Builder Office XP Servers Package
+ ApplicationBase.dpkFalse
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/ApplicationBase/ApplicationBase.rc b/Source/ApplicationBase/ApplicationBase.rc
new file mode 100644
index 00000000..153736af
--- /dev/null
+++ b/Source/ApplicationBase/ApplicationBase.rc
@@ -0,0 +1,22 @@
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+FILEFLAGSMASK 0x3FL
+FILEFLAGS 0x00L
+FILEOS 0x40004L
+FILETYPE 0x1L
+FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "0C0A04E4"
+ BEGIN
+ VALUE "FileVersion", "1.0.0.0\0"
+ VALUE "ProductVersion", "1.0.0.0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0C0A, 1252
+ END
+END
diff --git a/Source/ApplicationBase/ApplicationBase.res b/Source/ApplicationBase/ApplicationBase.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/ApplicationBase/ApplicationBase.res differ
diff --git a/Source/Base/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas
similarity index 100%
rename from Source/Base/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas
rename to Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas
diff --git a/Source/Base/Empresas/Controller/View/uIEditorEmpresa.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas
similarity index 100%
rename from Source/Base/Empresas/Controller/View/uIEditorEmpresa.pas
rename to Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas
diff --git a/Source/Base/Empresas/Controller/View/uIEditorEmpresas.pas b/Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas
similarity index 100%
rename from Source/Base/Empresas/Controller/View/uIEditorEmpresas.pas
rename to Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas
diff --git a/Source/Base/Empresas/Controller/uDatosBancariosEmpresaController.pas b/Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas
similarity index 100%
rename from Source/Base/Empresas/Controller/uDatosBancariosEmpresaController.pas
rename to Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas
diff --git a/Source/Base/Empresas/Controller/uEmpresasController.pas b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas
similarity index 92%
rename from Source/Base/Empresas/Controller/uEmpresasController.pas
rename to Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas
index 799f8852..f38cb497 100644
--- a/Source/Base/Empresas/Controller/uEmpresasController.pas
+++ b/Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas
@@ -5,10 +5,10 @@ interface
uses
Windows, Forms, Classes, Controls, Contnrs, SysUtils,
- uBizEmpresas, uIDataModuleEmpresas, uDADataTable;
+ uBizEmpresas, uIDataModuleEmpresas, uDADataTable, uControllerBase;
type
- IEmpresasController = interface
+ IEmpresasController = interface(IControllerBase)
['{2F0AB21C-4F19-446E-87C4-B9C1038850FC}']
function Buscar(const ID: Integer): IBizEmpresa;
function BuscarTodos: IBizEmpresa;
@@ -24,7 +24,7 @@ type
function ToStringList(AEmpresa : IBizEmpresa) : TStringList;
end;
- TEmpresasController = class(TInterfacedObject, IEmpresasController)
+ TEmpresasController = class(TControllerBase, IEmpresasController)
protected
FDataModule : IDataModuleEmpresas;
function ValidarEmpresa(AEmpresa : IBizEmpresa): Boolean; virtual;
diff --git a/Source/Base/Empresas/Data/uDataModuleEmpresas.dfm b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm
similarity index 100%
rename from Source/Base/Empresas/Data/uDataModuleEmpresas.dfm
rename to Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm
diff --git a/Source/Base/Empresas/Data/uDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas
similarity index 100%
rename from Source/Base/Empresas/Data/uDataModuleEmpresas.pas
rename to Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas
diff --git a/Source/Base/Empresas/Model/Data/uIDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas
similarity index 100%
rename from Source/Base/Empresas/Model/Data/uIDataModuleEmpresas.pas
rename to Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas
diff --git a/Source/Base/Empresas/Model/schEmpresasClient_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas
similarity index 100%
rename from Source/Base/Empresas/Model/schEmpresasClient_Intf.pas
rename to Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas
diff --git a/Source/Base/Empresas/Model/schEmpresasServer_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas
similarity index 100%
rename from Source/Base/Empresas/Model/schEmpresasServer_Intf.pas
rename to Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas
diff --git a/Source/Base/Empresas/Model/uBizEmpresas.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas
similarity index 100%
rename from Source/Base/Empresas/Model/uBizEmpresas.pas
rename to Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas
diff --git a/Source/Base/Empresas/Model/uBizEmpresasDatosBancarios.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas
similarity index 100%
rename from Source/Base/Empresas/Model/uBizEmpresasDatosBancarios.pas
rename to Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas
diff --git a/Source/Base/Empresas/Servidor/srvEmpresas_Impl.dfm b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm
similarity index 100%
rename from Source/Base/Empresas/Servidor/srvEmpresas_Impl.dfm
rename to Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm
diff --git a/Source/Base/Empresas/Servidor/srvEmpresas_Impl.pas b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas
similarity index 100%
rename from Source/Base/Empresas/Servidor/srvEmpresas_Impl.pas
rename to Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas
diff --git a/Source/Base/Empresas/Test/Empresas_Tests.bdsproj b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj
similarity index 100%
rename from Source/Base/Empresas/Test/Empresas_Tests.bdsproj
rename to Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj
diff --git a/Source/Base/Empresas/Test/Empresas_Tests.dpr b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr
similarity index 100%
rename from Source/Base/Empresas/Test/Empresas_Tests.dpr
rename to Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr
diff --git a/Source/Base/Empresas/Test/Empresas_Tests.drc b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.drc
similarity index 100%
rename from Source/Base/Empresas/Test/Empresas_Tests.drc
rename to Source/ApplicationBase/Empresas/Test/Empresas_Tests.drc
diff --git a/Source/Base/Empresas/Test/Empresas_Tests.res b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res
similarity index 100%
rename from Source/Base/Empresas/Test/Empresas_Tests.res
rename to Source/ApplicationBase/Empresas/Test/Empresas_Tests.res
diff --git a/Source/Base/Empresas/Test/uEmpresasController_Test.pas b/Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas
similarity index 100%
rename from Source/Base/Empresas/Test/uEmpresasController_Test.pas
rename to Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas
diff --git a/Source/Base/Empresas/Test/uHostMainForm.dfm b/Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm
similarity index 100%
rename from Source/Base/Empresas/Test/uHostMainForm.dfm
rename to Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm
diff --git a/Source/Base/Empresas/Test/uHostMainForm.pas b/Source/ApplicationBase/Empresas/Test/uHostMainForm.pas
similarity index 100%
rename from Source/Base/Empresas/Test/uHostMainForm.pas
rename to Source/ApplicationBase/Empresas/Test/uHostMainForm.pas
diff --git a/Source/Base/Empresas/Views/uEditorDatosBancariosEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm
similarity index 100%
rename from Source/Base/Empresas/Views/uEditorDatosBancariosEmpresa.dfm
rename to Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm
diff --git a/Source/Base/Empresas/Views/uEditorDatosBancariosEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas
similarity index 100%
rename from Source/Base/Empresas/Views/uEditorDatosBancariosEmpresa.pas
rename to Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas
diff --git a/Source/Base/Empresas/Views/uEditorEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm
similarity index 100%
rename from Source/Base/Empresas/Views/uEditorEmpresa.dfm
rename to Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm
diff --git a/Source/Base/Empresas/Views/uEditorEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas
similarity index 100%
rename from Source/Base/Empresas/Views/uEditorEmpresa.pas
rename to Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas
diff --git a/Source/Base/Empresas/Views/uEmpresasViewRegister.pas b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas
similarity index 100%
rename from Source/Base/Empresas/Views/uEmpresasViewRegister.pas
rename to Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas
diff --git a/Source/Base/Empresas/Views/uViewDatosBancarios.dfm b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm
similarity index 100%
rename from Source/Base/Empresas/Views/uViewDatosBancarios.dfm
rename to Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm
diff --git a/Source/Base/Empresas/Views/uViewDatosBancarios.pas b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas
similarity index 100%
rename from Source/Base/Empresas/Views/uViewDatosBancarios.pas
rename to Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas
diff --git a/Source/Base/Empresas/Views/uViewEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm
similarity index 100%
rename from Source/Base/Empresas/Views/uViewEmpresa.dfm
rename to Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm
diff --git a/Source/Base/Empresas/Views/uViewEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas
similarity index 100%
rename from Source/Base/Empresas/Views/uViewEmpresa.pas
rename to Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas
diff --git a/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas
new file mode 100644
index 00000000..0f3e505f
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas
@@ -0,0 +1,22 @@
+unit uIEditorLogin;
+
+interface
+
+uses
+ uEditorBase, uUsuariosController;
+
+type
+ IEditorLogin = interface
+ ['{96513A0B-679D-4DD6-8821-C99003DAD2A3}']
+ function ShowModal : Integer;
+ procedure Release;
+
+ function GetController : IUsuariosController;
+ procedure SetController (const AValue : IUsuariosController);
+ property Controller : IUsuariosController read GetController write SetController;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Base/Usuarios/Controller/uUsuariosController.pas b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
similarity index 69%
rename from Source/Base/Usuarios/Controller/uUsuariosController.pas
rename to Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
index cb78c693..31e6dd45 100644
--- a/Source/Base/Usuarios/Controller/uUsuariosController.pas
+++ b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
@@ -4,21 +4,26 @@ interface
uses
- Classes, SysUtils, uDADataTable, uControllerBase,
+ Classes, SysUtils, Forms, uDADataTable, uControllerBase,
uIDataModuleUsuarios, uDataModuleUsuarios, UCBase;
type
- IUsuariosController = interface(IObservador)
+ IUsuariosController = interface(IControllerBase)
['{DD963EEC-5880-4DE7-AF55-B5080B538D84}']
- {procedure Logoff;
- procedure Execute;
- procedure StartLogin;
+ procedure Logoff;
+ function StartLogin : Boolean;
procedure ShowUserManager;
procedure ShowProfileManager;
procedure ShowLogManager;
procedure ShowChangePassword;
- procedure ChangeUser(IDUser: Integer; Login, Name, Mail: String; Profile,UserExpired,UserDaysSun: Integer; PrivUser: Boolean);
+ function ComprobarUsuario(const User : String; const Password: String): Boolean;
+
+ function GetMaxIntentosLogin: Integer;
+ procedure SetMaxIntentosLogin(const Value: Integer);
+ property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin;
+
+{ procedure ChangeUser(IDUser: Integer; Login, Name, Mail: String; Profile,UserExpired,UserDaysSun: Integer; PrivUser: Boolean);
procedure ChangePassword(IDUser: Integer; NewPassword: String);
procedure AddRight(idUser: Integer; ItemRight: TObject; FullPath: Boolean = True); overload;
procedure AddRight(idUser: Integer; ItemRight: String); overload;
@@ -44,21 +49,35 @@ type
function DarListaUsuarios: TStringList;}
end;
- TUsuariosController = class(TObservador, IUsuariosController)
+ TUsuariosController = class(TControllerBase, IUsuariosController)
protected
FDataModule : IDataModuleUsuarios;
FUserControl: TUserControl;
+ function GetMaxIntentosLogin: Integer;
+ procedure SetMaxIntentosLogin(const Value: Integer);
+
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
// function ValidarFormaPago(AFormaPago: IBizFormaPago): Boolean;
procedure AsignarDataModule;
procedure InicializarUserControl;
+ procedure ComprobarUsuarioInicial;
+
+ procedure OnLoginForm(Sender: TObject; var CustomForm: TCustomForm);
public
constructor Create; virtual;
destructor Destroy; override;
+ procedure Logoff;
+ function StartLogin : Boolean;
+ procedure ShowUserManager;
+ procedure ShowProfileManager;
+ procedure ShowLogManager;
+ procedure ShowChangePassword;
+ function ComprobarUsuario(const User : String; const Password: String): Boolean;
+
{ function Eliminar(AFormaPago : IBizFormaPago): Boolean;
function Guardar(AFormaPago : IBizFormaPago): Boolean; virtual;
procedure DescartarCambios(AFormaPago : IBizFormaPago); virtual;
@@ -69,9 +88,8 @@ type
procedure Ver(AFormaPago: IBizFormaPago);
function Localizar(AUsuarios: IBizFormaPago; ADescripcion:String): Boolean;
function DarListaUsuarios: TStringList;}
-
- published
property UserControl : TUserControl read FUserControl;
+ property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin;
end;
implementation
@@ -79,7 +97,7 @@ implementation
uses
cxControls, DB, uEditorRegistryUtils, schUsuariosClient_Intf,
uDAInterfaces, uDataTableUtils, uDialogUtils,
- uDateUtils, uROTypes, DateUtils, Controls, Windows;
+ uDateUtils, uROTypes, DateUtils, Controls, Windows, uLoginForm, uIEditorLogin;
{ TUsuariosController }
@@ -116,11 +134,25 @@ begin
Result := FDataModule.GetItems;
end;}
+function TUsuariosController.ComprobarUsuario(const User,
+ Password: String): Boolean;
+begin
+ Result := FUserControl.VerificaLogin(User, Password);
+end;
+
+procedure TUsuariosController.ComprobarUsuarioInicial;
+begin
+ // Para que haya un usuario siempre en la BD
+ if not FUserControl.ExisteUsuario('admin') then
+ FUserControl.AddUser('admin', '1', 'Administrador', 'admin@correo.net', 0, 0 , 30, True);
+end;
+
constructor TUsuariosController.Create;
begin
AsignarDataModule;
FUserControl := TUserControl.Create(nil);
InicializarUserControl;
+ ComprobarUsuarioInicial;
end;
function TUsuariosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
@@ -173,14 +205,31 @@ begin
FDataModule := NIL;
inherited;
end;
+function TUsuariosController.GetMaxIntentosLogin: Integer;
+begin
+ Result := FUserControl.Login.MaxLoginAttempts;
+end;
+
procedure TUsuariosController.InicializarUserControl;
begin
- FDataModule.InicializarCamposUserControl(FUserControl);
with FUserControl do
begin
- Criptografia := cMD5;
AutoStart := False;
+ Criptografia := cMD5;
+ OnCustomLoginForm := OnLoginForm;
end;
+ FDataModule.InicializarCamposUserControl(FUserControl);
+end;
+
+procedure TUsuariosController.Logoff;
+begin
+ FUserControl.Logoff;
+end;
+
+procedure TUsuariosController.OnLoginForm(Sender: TObject;
+ var CustomForm: TCustomForm);
+begin
+ CustomForm := TfLoginForm.Create(NIL);
end;
{
@@ -276,6 +325,54 @@ begin
//
end;
+procedure TUsuariosController.SetMaxIntentosLogin(const Value: Integer);
+begin
+ FUserControl.Login.MaxLoginAttempts := Value;
+end;
+
+procedure TUsuariosController.ShowChangePassword;
+begin
+ FUserControl.ShowChangePassword;
+end;
+
+procedure TUsuariosController.ShowLogManager;
+begin
+ FUserControl.ShowLogManager;
+end;
+
+procedure TUsuariosController.ShowProfileManager;
+begin
+ FUserControl.ShowProfileManager;
+end;
+
+procedure TUsuariosController.ShowUserManager;
+begin
+ FUserControl.ShowUserManager;
+end;
+
+function TUsuariosController.StartLogin : Boolean;
+var
+ AEditor : IEditorLogin;
+begin
+ AEditor := NIL;
+ ShowHourglassCursor;
+ try
+ CreateEditor('EditorLogin', IEditorLogin, AEditor);
+ with AEditor do
+ Controller := Self;
+ finally
+ HideHourglassCursor;
+ end;
+
+ if Assigned(AEditor) then
+ try
+ Result := (AEditor.ShowModal = mrOk);
+ AEditor.Release;
+ finally
+ AEditor := NIL;
+ end;
+end;
+
{function TUsuariosController.Guardar(AFormaPago: IBizFormaPago): Boolean;
begin
Result := False;
diff --git a/Source/Base/Usuarios/Data/uCambiarPassword.dfm b/Source/ApplicationBase/Usuarios/Data/uCambiarPassword.dfm
similarity index 100%
rename from Source/Base/Usuarios/Data/uCambiarPassword.dfm
rename to Source/ApplicationBase/Usuarios/Data/uCambiarPassword.dfm
diff --git a/Source/Base/Usuarios/Data/uCambiarPassword.pas b/Source/ApplicationBase/Usuarios/Data/uCambiarPassword.pas
similarity index 100%
rename from Source/Base/Usuarios/Data/uCambiarPassword.pas
rename to Source/ApplicationBase/Usuarios/Data/uCambiarPassword.pas
diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm
new file mode 100644
index 00000000..2e8e9432
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm
@@ -0,0 +1,24 @@
+object DataModuleUsuarios: TDataModuleUsuarios
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ Height = 205
+ Width = 355
+ object ROLoginService: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvLogin'
+ Left = 48
+ Top = 32
+ end
+ object srvUsuarios: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvUsuarios'
+ Left = 152
+ Top = 32
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 104
+ end
+end
diff --git a/Source/Base/Usuarios/Data/uDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas
similarity index 95%
rename from Source/Base/Usuarios/Data/uDataModuleUsuarios.pas
rename to Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas
index 2e697243..14cba592 100644
--- a/Source/Base/Usuarios/Data/uDataModuleUsuarios.pas
+++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas
@@ -17,7 +17,6 @@ type
ROLoginService: TRORemoteService;
srvUsuarios: TRORemoteService;
Bin2DataStreamer: TDABin2DataStreamer;
- UserControl1: TUserControl;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure DAClientDataModuleDestroy(Sender: TObject);
private
@@ -57,7 +56,8 @@ implementation
uses
Forms, Controls, uDataTableUtils, uDataModuleConexion, uLoginForm,
- uCambiarPassword, Dialogs, Windows, uEmpresasController, schUsuariosClient_Intf;
+ uCambiarPassword, Dialogs, Windows, uEmpresasController,
+ schUsuariosClient_Intf;
{ TDAClientDataModule1 }
diff --git a/Source/Base/Usuarios/Data/uLoginForm.dfm b/Source/ApplicationBase/Usuarios/Data/uLoginForm.dfm
similarity index 100%
rename from Source/Base/Usuarios/Data/uLoginForm.dfm
rename to Source/ApplicationBase/Usuarios/Data/uLoginForm.dfm
diff --git a/Source/ApplicationBase/Usuarios/Data/uLoginForm.pas b/Source/ApplicationBase/Usuarios/Data/uLoginForm.pas
new file mode 100644
index 00000000..a8baebae
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Data/uLoginForm.pas
@@ -0,0 +1,112 @@
+unit uLoginForm;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls,
+ cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
+ cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls,
+ JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement,
+ JvAppStorage, JvAppRegistryStorage;
+
+type
+ TfLoginForm = class(TForm)
+ Panel1: TPanel;
+ Label3: TLabel;
+ Label4: TLabel;
+ edtPassword: TEdit;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label1: TLabel;
+ edtUser: TEdit;
+ JvGradient1: TJvGradient;
+ Button1: TButton;
+ Timer1: TTimer;
+ JvAppRegistryStorage1: TJvAppRegistryStorage;
+ JvFormStorage1: TJvFormStorage;
+ Image1: TImage;
+ procedure bAceptarClick(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure ToolButton4Click(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ procedure Timer1Timer(Sender: TObject);
+ private
+ FIntentos: Integer;
+ end;
+
+var
+ fLoginForm: TfLoginForm;
+
+implementation
+
+uses
+ uFactuGES_App, uDataModuleConexion;
+ {uDataModuleUsuarios, uDataModuleBase}
+
+{$R *.dfm}
+
+{
+********************************* TfLoginForm **********************************
+}
+procedure TfLoginForm.bAceptarClick(Sender: TObject);
+//var
+// bOk : Boolean;
+begin
+{ ShowHourglassCursor;
+ try
+ bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text);
+ finally
+ HideHourglassCursor;
+ end;
+
+ if bOk then
+ ModalResult := mrOK
+ else begin
+ Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente'
+ + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK);
+ Dec(FIntentos);
+ if (FIntentos <= 0) then
+ ModalResult := mrCancel;
+ end;}
+end;
+
+procedure TfLoginForm.FormCreate(Sender: TObject);
+begin
+ FIntentos := 3;
+end;
+
+procedure TfLoginForm.ToolButton4Click(Sender: TObject);
+var
+ ATimer : Boolean;
+begin
+ if Timer1.Enabled then
+ begin
+ ATimer := True;
+ Timer1.Enabled := False;
+ end;
+
+ dmConexion.ConfigurarConexion;
+
+ if ATimer then
+ Timer1.Enabled := True;
+end;
+
+procedure TfLoginForm.FormShow(Sender: TObject);
+begin
+ Self.Caption := Self.Caption + ' - ' + AppFactuGES.AppVersion;
+ JvFormStorage1.RestoreFormPlacement;
+ // Hacer login automática si hay usuario/password y no hay más de una base
+ // de datos como opción para conectarse.
+
+ if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then
+ Timer1.Enabled := True;
+end;
+
+procedure TfLoginForm.Timer1Timer(Sender: TObject);
+begin
+ Timer1.Enabled := False;
+ bAceptar.Click;
+end;
+
+end.
diff --git a/Source/Base/Usuarios/Data/uUCROConn.pas b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas
similarity index 74%
rename from Source/Base/Usuarios/Data/uUCROConn.pas
rename to Source/ApplicationBase/Usuarios/Data/uUCROConn.pas
index bd27a10d..36393f6e 100644
--- a/Source/Base/Usuarios/Data/uUCROConn.pas
+++ b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas
@@ -50,43 +50,11 @@ type
property RemoteService : TRORemoteService read FRemoteService write SetRemoteService;
end;
-const
- // Select para as tabelas de sistema !!! Para outro tipo de banco implemente aqui !!!!!
-
- // Para banco novo !!!
- // Não esquecer de colocar em TBancoDados, o tipo de banco !!!!!!
- // Não esquecer de colocar no 'case' de UCFindTable
-
- SQL_Firebird =
- 'SELECT ' +
- ' UPPER(RDB$RELATIONS.RDB$RELATION_NAME) RDB$RELATION_NAME ' +
- 'FROM ' +
- ' RDB$RELATIONS ' +
- 'WHERE ' +
- ' RDB$RELATIONS.RDB$FLAGS = 1 AND UPPER(RDB$RELATIONS.RDB$RELATION_NAME) = ' +
- ' UPPER(''%s'')';
-
- SQL_MSSQL = '';
-
- SQL_Oracle = '';
-
- SQL_PostgreSQL =
- 'SELECT ' +
- ' UPPER(PG_CLASS.RELNAME) ' +
- 'FROM ' +
- ' PG_CLASS ' +
- 'WHERE ' +
- ' PG_CLASS.RELKIND = ''r'' AND ' +
- ' UPPER(PG_CLASS.RELNAME) LIKE UPPER(''%s'')';
-
- SQL_MySQL = '';
-
- SQL_Paradox = '';
-
implementation
uses
- FactuGES_Intf, uROTypes, uDAClasses, uDADataTable;
+ Forms, Dialogs, FactuGES_Intf, uROTypes, uDAClasses, uDADataTable,
+ uDACDSDataTable;
{ TUCROConn }
@@ -177,18 +145,35 @@ begin
end;
end;
+
function TUCROConn.UCGetSQLDataset(FSQL: String): TDataset;
var
- AStream : Binary;
- ADataTable : TDADataTable;
+ AStream: TMemoryStream;
+ ADataStreamer: TDABin2DataStreamer;
+ ADataTable: TDACDSDataTable;
begin
- Result := NIL;
+ ADataStreamer := TDABin2DataStreamer.Create(NIL);
AStream := (FRemoteService as IsrvUsuarios).SQLGetData(FSQL, True, -1);
- if Assigned(AStream) then
- begin
- ADataTable := TDADataTable.Create(NIL);
- ADataTable.LoadFromStream(AStream);
- Result := ADataTable.Dataset;
+
+ if AStream <> nil then
+ try
+ ADataTable := TDACDSDataTable.Create(Application);
+
+ // Generar un nombre aleatorio
+ Randomize;
+ ADataTable.Name := 'SQLResult' + '_' + IntToStr(Random(MAXINT));
+
+ ADataTable.LocalDataStreamer := ADataStreamer;
+ ADataTable.RemoteFetchEnabled := False;
+ try
+ ADataStreamer.ReadDataset(AStream, ADataTable, True);
+ Result := ADataTable.Dataset;
+ finally
+ //FreeAndNIL(ADataTable); <-- No liberar, lo hace Application
+ end;
+ finally
+ FreeAndNIL(AStream);
+ FreeAndNIL(ADataStreamer);
end;
end;
diff --git a/Source/Base/Usuarios/Data/uUsuario.dfm b/Source/ApplicationBase/Usuarios/Data/uUsuario.dfm
similarity index 100%
rename from Source/Base/Usuarios/Data/uUsuario.dfm
rename to Source/ApplicationBase/Usuarios/Data/uUsuario.dfm
diff --git a/Source/Base/Usuarios/Data/uUsuario.pas b/Source/ApplicationBase/Usuarios/Data/uUsuario.pas
similarity index 100%
rename from Source/Base/Usuarios/Data/uUsuario.pas
rename to Source/ApplicationBase/Usuarios/Data/uUsuario.pas
diff --git a/Source/Base/Usuarios/Data/uUsuarios.dfm b/Source/ApplicationBase/Usuarios/Data/uUsuarios.dfm
similarity index 100%
rename from Source/Base/Usuarios/Data/uUsuarios.dfm
rename to Source/ApplicationBase/Usuarios/Data/uUsuarios.dfm
diff --git a/Source/Base/Usuarios/Data/uUsuarios.pas b/Source/ApplicationBase/Usuarios/Data/uUsuarios.pas
similarity index 100%
rename from Source/Base/Usuarios/Data/uUsuarios.pas
rename to Source/ApplicationBase/Usuarios/Data/uUsuarios.pas
diff --git a/Source/Base/Usuarios/Model/Data/uIDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas
similarity index 100%
rename from Source/Base/Usuarios/Model/Data/uIDataModuleUsuarios.pas
rename to Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas
diff --git a/Source/Base/Usuarios/Model/schUsuariosClient_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas
similarity index 96%
rename from Source/Base/Usuarios/Model/schUsuariosClient_Intf.pas
rename to Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas
index 02e9c47d..1b5720ab 100644
--- a/Source/Base/Usuarios/Model/schUsuariosClient_Intf.pas
+++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas
@@ -9,11 +9,11 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_USUARIOS = '{BCEAD2C9-F685-4AD0-BFD5-FAA3694FB6B8}';
- RID_USUARIOS_EVENTOS = '{FCCBD5C6-0BBB-44C1-B19A-983FEE8F93D5}';
- RID_USUARIOS_LOGON = '{31C71D37-D969-4C21-AD16-ECD67F1BD5B0}';
- RID_PERMISOS = '{90F13FF0-B34A-4AA9-8EC5-F8427722C146}';
- RID_PERMISOSEX = '{30F060F4-D38F-41D2-8888-EE5E91BBAA0B}';
+ RID_USUARIOS = '{1A97AED1-832A-46A9-9894-8CB44D7AFBBD}';
+ RID_USUARIOS_EVENTOS = '{16F186E3-A7CF-40DD-B040-EB735A5F1FDD}';
+ RID_USUARIOS_LOGON = '{8005FBCF-1276-473D-A3BE-15C8159AB6CE}';
+ RID_PERMISOS = '{802AF8DD-DA72-412A-AB43-4D5F0EA5630F}';
+ RID_PERMISOSEX = '{B2319D8E-0423-41D1-B166-7BD9EC069549}';
{ Data table names }
nme_USUARIOS = 'USUARIOS';
@@ -115,7 +115,7 @@ const
type
{ IUSUARIOS }
IUSUARIOS = interface(IDAStronglyTypedDataTable)
- ['{98E5DC96-C6C8-48DD-9A93-727F34455103}']
+ ['{F248A54E-1181-40E9-B9B4-9A1D9F4DA382}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -282,7 +282,7 @@ type
{ IUSUARIOS_EVENTOS }
IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable)
- ['{AFFBC554-995C-4D6C-A88B-3A786E4905CD}']
+ ['{8E5D7E37-04E5-4395-8B3E-E0757F5675B4}']
{ Property getters and setters }
function GetAPLICACIONValue: String;
procedure SetAPLICACIONValue(const aValue: String);
@@ -413,7 +413,7 @@ type
{ IUSUARIOS_LOGON }
IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable)
- ['{721BFDBE-77B1-4E34-8E49-D2782E2939A1}']
+ ['{FF8C8388-9397-4FA2-AB70-491B8299DC00}']
{ Property getters and setters }
function GetLOGONIDValue: String;
procedure SetLOGONIDValue(const aValue: String);
@@ -496,7 +496,7 @@ type
{ IPERMISOS }
IPERMISOS = interface(IDAStronglyTypedDataTable)
- ['{E369AE58-C4F5-476F-8D81-1C0440F6A362}']
+ ['{7705D3E7-EC27-4CB7-9492-1873D2158F79}']
{ Property getters and setters }
function GetID_USUARIOValue: Integer;
procedure SetID_USUARIOValue(const aValue: Integer);
@@ -567,7 +567,7 @@ type
{ IPERMISOSEX }
IPERMISOSEX = interface(IDAStronglyTypedDataTable)
- ['{956C4144-986B-4043-8DA5-81667770CD85}']
+ ['{1636E92E-3A74-4F5F-AF20-5831B0D57A38}']
{ Property getters and setters }
function GetID_USUARIOValue: Integer;
procedure SetID_USUARIOValue(const aValue: Integer);
diff --git a/Source/Base/Usuarios/Model/schUsuariosServer_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas
similarity index 96%
rename from Source/Base/Usuarios/Model/schUsuariosServer_Intf.pas
rename to Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas
index 36ac6e3c..25699bf6 100644
--- a/Source/Base/Usuarios/Model/schUsuariosServer_Intf.pas
+++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas
@@ -9,16 +9,16 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_USUARIOSDelta = '{46E1A07E-12D3-4FEB-B692-A849C5467B93}';
- RID_USUARIOS_EVENTOSDelta = '{53E03F8A-166F-4A18-85B9-BBBEB2D60052}';
- RID_USUARIOS_LOGONDelta = '{0EC1E706-6226-449C-885B-6C6AC5187088}';
- RID_PERMISOSDelta = '{A8CCC0BF-DEB4-439F-B7C4-3A25F5210A5E}';
- RID_PERMISOSEXDelta = '{78ACF719-CCD6-47F3-AA01-D580F121F7A8}';
+ RID_USUARIOSDelta = '{30AE63B9-1580-4117-9B4F-448F309BD6AC}';
+ RID_USUARIOS_EVENTOSDelta = '{81DD56BF-BBB5-4311-9AF3-E72EF8B5EC32}';
+ RID_USUARIOS_LOGONDelta = '{BE275431-94DF-4C1C-83D0-C09B4E0DA9D9}';
+ RID_PERMISOSDelta = '{F99C6E2E-FE0E-4943-9B69-37B2F48AF314}';
+ RID_PERMISOSEXDelta = '{43B62FCB-7C4A-4F3A-9F77-85339308E91A}';
type
{ IUSUARIOSDelta }
IUSUARIOSDelta = interface(IUSUARIOS)
- ['{46E1A07E-12D3-4FEB-B692-A849C5467B93}']
+ ['{30AE63B9-1580-4117-9B4F-448F309BD6AC}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldUSERNAMEValue : String;
@@ -184,7 +184,7 @@ type
{ IUSUARIOS_EVENTOSDelta }
IUSUARIOS_EVENTOSDelta = interface(IUSUARIOS_EVENTOS)
- ['{53E03F8A-166F-4A18-85B9-BBBEB2D60052}']
+ ['{81DD56BF-BBB5-4311-9AF3-E72EF8B5EC32}']
{ Property getters and setters }
function GetOldAPLICACIONValue : String;
function GetOldID_USUARIOValue : Integer;
@@ -315,7 +315,7 @@ type
{ IUSUARIOS_LOGONDelta }
IUSUARIOS_LOGONDelta = interface(IUSUARIOS_LOGON)
- ['{0EC1E706-6226-449C-885B-6C6AC5187088}']
+ ['{BE275431-94DF-4C1C-83D0-C09B4E0DA9D9}']
{ Property getters and setters }
function GetOldLOGONIDValue : String;
function GetOldID_USUARIOValue : Integer;
@@ -397,7 +397,7 @@ type
{ IPERMISOSDelta }
IPERMISOSDelta = interface(IPERMISOS)
- ['{A8CCC0BF-DEB4-439F-B7C4-3A25F5210A5E}']
+ ['{F99C6E2E-FE0E-4943-9B69-37B2F48AF314}']
{ Property getters and setters }
function GetOldID_USUARIOValue : Integer;
function GetOldMODULOValue : String;
@@ -467,7 +467,7 @@ type
{ IPERMISOSEXDelta }
IPERMISOSEXDelta = interface(IPERMISOSEX)
- ['{78ACF719-CCD6-47F3-AA01-D580F121F7A8}']
+ ['{43B62FCB-7C4A-4F3A-9F77-85339308E91A}']
{ Property getters and setters }
function GetOldID_USUARIOValue : Integer;
function GetOldMODULOValue : String;
diff --git a/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas
new file mode 100644
index 00000000..ef53a8c4
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas
@@ -0,0 +1,15 @@
+unit uUsuarios;
+
+interface
+
+uses
+ UCBase;
+
+type
+ TUsuario = class(TUCUser)
+
+ end;
+
+implementation
+
+end.
diff --git a/Source/Base/Usuarios/Servidor/srvUsuarios_Impl.dfm b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm
similarity index 100%
rename from Source/Base/Usuarios/Servidor/srvUsuarios_Impl.dfm
rename to Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm
diff --git a/Source/Base/Usuarios/Servidor/srvUsuarios_Impl.pas b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas
similarity index 100%
rename from Source/Base/Usuarios/Servidor/srvUsuarios_Impl.pas
rename to Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas
diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm
new file mode 100644
index 00000000..fb4b5560
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm
@@ -0,0 +1,1099 @@
+object fEditorLogin: TfEditorLogin
+ Left = 790
+ Top = 387
+ ActiveControl = edtUser
+ BorderStyle = bsDialog
+ Caption = 'FactuGES'
+ ClientHeight = 241
+ ClientWidth = 385
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label3: TLabel
+ Left = 24
+ Top = 108
+ Width = 39
+ Height = 13
+ Caption = 'Usuario:'
+ Transparent = False
+ end
+ object Label4: TLabel
+ Left = 24
+ Top = 138
+ Width = 57
+ Height = 13
+ Caption = 'Contrase'#241'a:'
+ Transparent = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 72
+ Width = 94
+ Height = 13
+ Caption = 'Inicio de sesi'#243'n:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clMenuHighlight
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object JvGradient1: TJvGradient
+ Left = 0
+ Top = 57
+ Width = 385
+ Height = 4
+ Align = alTop
+ StartColor = 2971346
+ EndColor = 4828405
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 385
+ Height = 57
+ Align = alTop
+ BevelOuter = bvNone
+ Color = clWhite
+ TabOrder = 0
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 385
+ Height = 57
+ Align = alClient
+ Center = True
+ Picture.Data = {
+ 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF
+ F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A
+ 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC
+ FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA
+ FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5
+ A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7
+ 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26
+ EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251
+ 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD
+ FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41
+ F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF
+ EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1
+ F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000
+ 0000C201FA000007FF800582838485868788898A8322173C5300919293949596
+ 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1
+ 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70
+ 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED
+ F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48
+ 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003
+ CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F
+ 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C
+ 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3
+ A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27
+ 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031
+ ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14
+ 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86
+ 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9
+ 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E
+ 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F
+ 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5
+ E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C
+ 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53
+ D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8
+ AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689
+ B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45
+ 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047
+ 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839
+ 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E
+ AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868
+ 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319
+ 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64
+ 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535
+ 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7
+ 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046
+ 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161
+ 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B
+ 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD
+ 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2
+ F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2
+ 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6
+ 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A
+ C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E
+ 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52
+ 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43
+ 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A
+ 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8
+ 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791
+ 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846
+ 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4
+ 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686
+ D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099
+ 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8
+ E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C
+ 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E
+ 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3
+ 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01
+ 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D
+ 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A
+ 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B
+ 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087
+ 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB
+ 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944
+ 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6
+ 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929
+ 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA
+ D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4
+ 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0
+ 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996
+ 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279
+ 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4
+ 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065
+ 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7
+ B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B
+ 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016
+ 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB
+ 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B
+ 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE
+ A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC
+ EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B
+ 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055
+ 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067
+ 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C
+ 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059
+ A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048
+ 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300
+ 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535
+ 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F
+ 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B
+ 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2
+ 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3
+ 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F
+ 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB
+ 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D
+ F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01
+ 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81
+ 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C
+ 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1
+ 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1
+ 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F
+ A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570
+ 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002
+ BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029
+ 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1
+ 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736
+ BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562
+ 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B
+ D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B
+ A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A
+ 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343
+ 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861
+ 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79
+ 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083
+ 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699
+ 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A
+ D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3
+ DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709
+ 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0
+ 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2
+ 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE
+ 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020
+ 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B
+ 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E
+ 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7
+ 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901
+ 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794
+ 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2
+ 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81
+ CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4
+ 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9
+ 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E
+ 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2
+ 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5
+ E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA
+ AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539
+ BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28
+ 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3
+ 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669
+ 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B
+ B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD
+ D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C
+ 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83
+ 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740
+ AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F
+ 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C
+ F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83
+ 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E
+ 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075
+ 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9
+ 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B
+ 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5
+ 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA
+ BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE
+ EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143
+ DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18
+ 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7
+ BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442
+ 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375
+ 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278
+ 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8
+ F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8
+ 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E
+ 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF
+ 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8
+ 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C
+ 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7
+ 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09
+ 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731
+ 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF
+ 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696
+ 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8
+ 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26
+ 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96
+ 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000
+ 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA
+ 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB
+ 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA
+ AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483
+ 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E
+ 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5
+ 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E
+ 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7
+ CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C
+ 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021
+ 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958
+ 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7
+ 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C
+ 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1
+ 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929
+ D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2
+ ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7
+ 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF
+ 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814
+ 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69
+ A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E
+ 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A
+ 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686
+ 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85
+ 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5
+ 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962
+ 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275
+ 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018
+ B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9
+ 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF
+ 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A
+ 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392
+ 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777
+ B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3
+ 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200
+ 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313
+ 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540
+ 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA
+ D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164
+ 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A
+ D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA
+ 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140
+ DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7
+ 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141
+ 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA
+ 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7
+ 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547
+ 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454
+ 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230
+ A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C
+ 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B
+ 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C
+ 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308
+ 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC
+ 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A
+ 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC
+ 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304
+ 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8
+ 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3
+ 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D
+ 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6
+ 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09
+ 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B
+ B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F
+ 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4
+ A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66
+ 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B
+ 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746
+ ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778
+ 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E
+ ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33
+ 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8
+ 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44
+ 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3
+ EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D
+ 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F
+ 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA
+ B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65
+ F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E
+ 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1
+ 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5
+ 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137
+ 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C
+ 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0
+ 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7
+ F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667
+ 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C
+ D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083
+ 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2
+ 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774
+ 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D
+ CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5
+ 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C
+ B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D
+ 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0
+ A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F
+ 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8
+ 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C
+ 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C
+ 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49
+ 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3
+ 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392
+ 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C
+ 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477
+ E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89
+ 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431
+ 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155
+ B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019
+ 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F
+ 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93
+ C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8
+ 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F
+ 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2
+ A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474
+ DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3
+ ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA
+ A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC
+ B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E
+ 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F
+ 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5
+ E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8
+ 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E
+ C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C
+ 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B
+ A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3
+ EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB
+ 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F
+ 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002
+ 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B
+ B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4
+ 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E
+ 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60
+ B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F
+ 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0
+ 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D
+ 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E
+ 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C
+ CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B
+ 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A
+ 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810
+ BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1
+ FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472
+ CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD
+ BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3
+ F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887
+ D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5
+ 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE
+ 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D
+ D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D
+ 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6
+ 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3
+ 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3
+ 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84
+ 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2
+ AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006
+ 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E
+ D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B
+ 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1
+ D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239
+ 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF
+ 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28
+ E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9
+ 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2
+ 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E
+ E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E
+ E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003
+ 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47
+ CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125
+ 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010
+ 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560
+ 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0
+ 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9
+ 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08
+ DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6
+ 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9
+ 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56
+ 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF
+ FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A
+ 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3
+ 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E
+ 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770
+ 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22
+ AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1
+ A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54
+ 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C
+ 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68
+ 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367
+ 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE
+ CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374
+ 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75
+ 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6
+ 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506
+ 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1
+ C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB
+ 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865
+ 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8
+ 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413
+ 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906
+ DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1
+ DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B
+ 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E
+ E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4
+ AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E
+ 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09
+ 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085
+ 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC
+ A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA
+ 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08
+ AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC
+ 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680
+ 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458
+ C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243
+ 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE
+ 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1
+ 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71
+ 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981
+ 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905
+ 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41
+ B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603
+ 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8
+ CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A
+ 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6
+ 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A
+ 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631
+ E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9
+ 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1
+ AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A
+ 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8
+ C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589
+ 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538
+ 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874
+ 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86
+ 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4
+ A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C
+ 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809
+ 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2
+ 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C
+ 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276
+ D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C
+ E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA
+ 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718
+ 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590
+ 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648
+ 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57
+ C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB
+ 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B
+ 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA
+ 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087
+ 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051
+ 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E
+ C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D
+ 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E
+ F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B
+ 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926
+ F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710
+ A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A
+ 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8
+ 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763
+ 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048
+ EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0
+ 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1
+ D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889
+ 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10
+ 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B
+ C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47
+ 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67
+ 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C
+ 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0
+ 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC
+ 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E
+ E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB
+ 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996
+ 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173
+ 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E
+ 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680
+ 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4
+ 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011
+ 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384
+ F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA
+ 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721
+ 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2
+ 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D
+ F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735
+ 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59
+ 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244
+ C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B
+ 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87
+ 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D
+ DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3
+ 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC
+ 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06
+ 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209
+ 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE
+ 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A
+ 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED
+ 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A
+ 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0
+ 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303
+ 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D
+ 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606
+ 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24
+ A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE
+ E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93
+ 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737
+ 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50
+ B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C
+ 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5
+ 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722
+ A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2
+ 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E
+ E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC
+ 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE
+ B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69
+ C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B
+ 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E
+ DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0
+ 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7
+ ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB
+ E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B
+ FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326
+ 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC
+ 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996
+ 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3
+ DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1
+ BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E
+ 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F
+ 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97
+ 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE
+ B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384
+ 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E
+ A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027
+ 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100
+ 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F
+ 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72
+ 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC
+ DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB
+ 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E
+ B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7
+ 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4
+ 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0
+ E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929
+ F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79
+ E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54
+ 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E
+ AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E
+ F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C
+ 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101
+ 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC
+ 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263
+ 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE
+ 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821
+ 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B
+ 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E
+ 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365
+ 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D
+ 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123
+ 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2
+ DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32
+ 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D
+ 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25
+ 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C
+ CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823
+ 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A
+ 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767
+ A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46
+ A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C
+ 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8
+ 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595
+ 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B
+ 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0
+ D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB
+ 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054
+ 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7
+ D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83
+ BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F
+ 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9
+ 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597
+ DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78
+ 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356
+ 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598
+ CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B
+ 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2
+ 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63
+ 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C
+ 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4
+ 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003
+ E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96
+ 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64
+ 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA
+ F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1
+ 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E
+ 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D
+ 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051
+ 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092
+ 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002
+ E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1
+ 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8
+ 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8
+ 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7
+ 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08
+ 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D
+ E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789
+ 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2
+ A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE
+ 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C
+ 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1
+ DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59
+ EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C
+ 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F
+ 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98
+ 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D
+ 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296
+ 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB
+ 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D
+ 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401
+ 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D
+ E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF
+ 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D
+ 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B
+ AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748
+ 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57
+ BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F
+ 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62
+ 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097
+ BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5
+ 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F
+ 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA
+ 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3
+ 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C
+ 750701100620740018A007741524C0B1054C80333FD05064E600517766243882
+ 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264
+ 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768
+ F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0
+ 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D
+ 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866
+ 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0
+ 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F
+ 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D
+ 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47
+ 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533
+ 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4
+ 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112
+ 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D
+ 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60
+ 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A
+ A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070
+ 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871
+ 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999
+ A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799
+ 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D
+ A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570
+ 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864
+ 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2
+ E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F
+ 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1
+ 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153
+ 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A
+ A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776
+ 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8
+ 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358
+ 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65
+ 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7
+ C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC
+ 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E
+ 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8
+ 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104
+ 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3
+ 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011
+ 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788
+ A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000
+ 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B
+ 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9
+ 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4
+ 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E
+ A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD
+ D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B
+ BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810
+ 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722
+ F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333
+ ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF
+ A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C
+ AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3
+ 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01
+ 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C
+ CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5
+ 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7
+ 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B
+ D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638
+ DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8
+ B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28
+ 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2
+ 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB
+ D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660
+ 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21
+ 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103
+ D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849
+ 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130
+ 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED
+ 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8
+ 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D
+ DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007
+ DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B
+ 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D
+ 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3
+ 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D
+ 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58
+ FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE
+ 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2
+ 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4
+ 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2
+ 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9
+ EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3
+ BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8
+ CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB
+ 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C
+ 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97
+ 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E
+ 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1
+ 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785
+ 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3
+ 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81
+ DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D
+ CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8
+ 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2
+ A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C
+ 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0
+ B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE
+ CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF
+ EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1
+ 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68
+ 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720
+ A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9
+ 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A
+ 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8
+ 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5
+ B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483
+ 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D
+ 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64
+ 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C
+ B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552
+ 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558
+ 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642
+ D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E
+ 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B
+ 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1
+ 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555
+ 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C
+ 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800
+ 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18
+ 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C
+ 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1
+ 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70
+ EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1
+ C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A
+ 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53
+ 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0
+ 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56
+ C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A
+ CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132
+ C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F
+ 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D
+ CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07
+ 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828
+ 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09
+ 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E
+ D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978
+ C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A
+ 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A
+ A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00
+ 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409
+ 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751
+ E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148
+ 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56
+ AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7
+ CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02
+ 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D
+ 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD
+ E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C
+ B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C
+ 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA
+ 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E
+ 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58
+ 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A
+ 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801
+ 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F
+ 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899
+ 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736
+ 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0
+ 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3
+ D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A
+ 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD
+ CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4
+ E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41
+ DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197
+ FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3
+ C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F
+ DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71
+ 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452
+ 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD
+ EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F
+ 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912
+ D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01
+ 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007
+ 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8
+ 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9
+ 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880
+ 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6
+ 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810
+ 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6
+ 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE
+ 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C
+ C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2
+ 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE
+ F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004
+ 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF
+ 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000
+ 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820
+ 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203
+ 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F
+ 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039
+ 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE
+ 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D
+ 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771
+ 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D
+ 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78
+ 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5
+ 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106
+ 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9
+ 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B
+ 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5
+ D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF
+ F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B
+ 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A
+ A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632
+ 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E
+ FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550
+ ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B
+ FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0
+ FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF
+ B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005
+ 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8
+ 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B
+ B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6
+ 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934
+ 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90
+ 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5
+ F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F
+ 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D
+ 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A
+ 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419
+ 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04
+ 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B
+ BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B
+ F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A
+ D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658
+ 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7
+ 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0
+ 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE
+ 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3
+ 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870
+ 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E
+ 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF
+ 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318
+ 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0
+ 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A
+ D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB
+ 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6
+ 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD
+ 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3
+ A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF
+ 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543
+ 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65
+ C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D
+ DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B
+ C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0
+ 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A
+ 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C
+ 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5
+ 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031
+ EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7
+ 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE
+ E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0
+ BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB
+ 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8
+ 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209
+ 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099
+ 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002
+ 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF
+ 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0
+ ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280
+ 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5
+ 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35
+ 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22
+ 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5
+ 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D
+ F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96
+ A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F
+ F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38
+ 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A
+ 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC
+ B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC
+ DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289
+ 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C
+ 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD
+ 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63
+ 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7
+ 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6
+ 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C
+ 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0
+ DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE
+ 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185
+ 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6
+ 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C
+ C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206
+ 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204
+ 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6
+ E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9
+ A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D
+ B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE
+ 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D
+ AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A
+ E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0
+ 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212
+ FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0
+ C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8
+ D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751
+ 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308
+ B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA
+ EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F
+ 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F
+ 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671
+ BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2
+ E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8
+ 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213
+ 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B
+ BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15
+ 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2
+ 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074
+ 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724
+ DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749
+ 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6
+ CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B
+ B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8
+ 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C
+ 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5
+ 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177
+ E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0
+ 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222
+ 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A
+ 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA
+ BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2
+ D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006
+ 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B
+ 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0
+ C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8
+ 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1
+ E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259
+ CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC
+ 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35
+ 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C
+ 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719
+ 0DE44000003B}
+ ExplicitWidth = 386
+ end
+ end
+ object edtPassword: TEdit
+ Left = 96
+ Top = 132
+ Width = 278
+ Height = 21
+ PasswordChar = '*'
+ TabOrder = 2
+ end
+ object bAceptar: TButton
+ Left = 208
+ Top = 203
+ Width = 75
+ Height = 25
+ Caption = '&Aceptar'
+ Default = True
+ TabOrder = 3
+ OnClick = bAceptarClick
+ end
+ object bCancelar: TButton
+ Left = 296
+ Top = 203
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = '&Salir'
+ ModalResult = 2
+ TabOrder = 4
+ end
+ object edtUser: TEdit
+ Left = 96
+ Top = 104
+ Width = 278
+ Height = 21
+ TabOrder = 1
+ end
+ object Button1: TButton
+ Left = 16
+ Top = 203
+ Width = 129
+ Height = 25
+ Caption = 'C&onfigurar conexi'#243'n...'
+ TabOrder = 5
+ OnClick = ToolButton4Click
+ end
+ object Timer1: TTimer
+ Enabled = False
+ Interval = 5000
+ OnTimer = Timer1Timer
+ Left = 344
+ Top = 64
+ end
+ object JvAppRegistryStorage1: TJvAppRegistryStorage
+ StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
+ StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
+ StorageOptions.BooleanAsString = False
+ Root = 'Software\%APPL_NAME%'
+ SubStorages = <>
+ Left = 14
+ Top = 168
+ end
+ object JvFormStorage1: TJvFormStorage
+ AppStorage = JvAppRegistryStorage1
+ AppStoragePath = '\'
+ Options = []
+ StoredProps.Strings = (
+ 'edtUser.Text'
+ 'edtPassword.Text')
+ StoredValues = <
+ item
+ Name = 'Ruta'
+ Value = ''
+ end>
+ Left = 48
+ Top = 168
+ end
+end
diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas
new file mode 100644
index 00000000..e1790fc8
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas
@@ -0,0 +1,126 @@
+unit uEditorLogin;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls,
+ cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
+ cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls,
+ JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement,
+ JvAppStorage, JvAppRegistryStorage, uIEditorLogin, uUsuariosController;
+
+type
+ TfEditorLogin = class(TForm, IEditorLogin)
+ Panel1: TPanel;
+ Label3: TLabel;
+ Label4: TLabel;
+ edtPassword: TEdit;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label1: TLabel;
+ edtUser: TEdit;
+ JvGradient1: TJvGradient;
+ Button1: TButton;
+ Timer1: TTimer;
+ JvAppRegistryStorage1: TJvAppRegistryStorage;
+ JvFormStorage1: TJvFormStorage;
+ Image1: TImage;
+ procedure bAceptarClick(Sender: TObject);
+ procedure ToolButton4Click(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ procedure Timer1Timer(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ private
+ FController : IUsuariosController;
+ FIntentos : Integer;
+ function GetController : IUsuariosController;
+ procedure SetController (const AValue : IUsuariosController);
+ published
+ property Controller : IUsuariosController read GetController write SetController;
+ end;
+
+
+implementation
+
+uses
+ uFactuGES_App, uDataModuleConexion;
+
+{$R *.dfm}
+
+{
+********************************* TfEditorLogin **********************************
+}
+procedure TfEditorLogin.bAceptarClick(Sender: TObject);
+var
+ bOk : Boolean;
+begin
+ Timer1.Enabled := False;
+
+ ShowHourglassCursor;
+ try
+ bOK := FController.ComprobarUsuario(edtUser.Text, edtPassword.Text);
+ finally
+ HideHourglassCursor;
+ end;
+
+ if bOk then
+ ModalResult := mrOK
+ else begin
+ Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente'
+ + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK);
+ Inc(FIntentos);
+ if (Controller.MaxIntentosLogin > 0) and (FIntentos = Controller.MaxIntentosLogin) then
+ ModalResult := mrCancel;
+ end;
+end;
+
+procedure TfEditorLogin.ToolButton4Click(Sender: TObject);
+var
+ ATimer : Boolean;
+begin
+ if Timer1.Enabled then
+ begin
+ ATimer := True;
+ Timer1.Enabled := False;
+ end;
+
+ dmConexion.ConfigurarConexion;
+
+ if ATimer then
+ Timer1.Enabled := True;
+end;
+
+procedure TfEditorLogin.FormCreate(Sender: TObject);
+begin
+ FIntentos := 0;
+end;
+
+procedure TfEditorLogin.FormShow(Sender: TObject);
+begin
+ Self.Caption := Self.Caption + ' - ' + AppFactuGES.AppVersion;
+ JvFormStorage1.RestoreFormPlacement;
+
+ // Hacer login automática si hay usuario/password y no hay más de una base
+ // de datos como opción para conectarse.
+ if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then
+ Timer1.Enabled := True;
+end;
+
+function TfEditorLogin.GetController: IUsuariosController;
+begin
+ Result := FController;
+end;
+
+procedure TfEditorLogin.SetController(const AValue: IUsuariosController);
+begin
+ FController := AValue;
+end;
+
+procedure TfEditorLogin.Timer1Timer(Sender: TObject);
+begin
+ Timer1.Enabled := False;
+ bAceptar.Click;
+end;
+
+end.
diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas
new file mode 100644
index 00000000..99cb4a0c
--- /dev/null
+++ b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas
@@ -0,0 +1,23 @@
+unit uUsuariosViewRegister;
+
+interface
+
+procedure RegisterViews;
+procedure UnregisterViews;
+
+implementation
+
+uses
+ uEditorRegistryUtils, uEditorLogin;
+
+procedure RegisterViews;
+begin
+ EditorRegistry.RegisterClass(TfEditorLogin, 'EditorLogin');
+end;
+
+procedure UnregisterViews;
+begin
+ EditorRegistry.UnRegisterClass(TfEditorLogin);
+end;
+
+end.
diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj b/Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj
new file mode 100644
index 00000000..6a6eb5fa
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Usuarios.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 3
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ Gestión de usuarios
+
+
+
+ .\
+ ..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+ C:\Archivos de programa\Borland\Delphi7\Bin\
+
+
+ True
+ False
+ 1
+ 0
+ 3
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.3.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.dpk b/Source/ApplicationBase/_Usuarios_/Usuarios.dpk
new file mode 100644
index 00000000..b5fa2fda
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/Usuarios.dpk
@@ -0,0 +1,43 @@
+package Usuarios;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$DESCRIPTION 'Gestión de usuarios'}
+{$IMPLICITBUILD ON}
+
+requires
+ vcl,
+ vcldb,
+ Base,
+ Empresas_model,
+ Empresas_controller,
+ JvMMD11R;
+
+contains
+ uDataModuleUsuarios in 'uDataModuleUsuarios.pas' {dmUsuarios: TDAClientDataModule},
+ uUsuarios in 'uUsuarios.pas' {fUsuarios},
+ uUsuario in 'uUsuario.pas' {fUsuario},
+ uLoginForm in 'uLoginForm.pas' {fLoginForm},
+ uCambiarPassword in 'uCambiarPassword.pas' {fCambiarPassword};
+
+end.
diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.dproj b/Source/ApplicationBase/_Usuarios_/Usuarios.dproj
new file mode 100644
index 00000000..062fb034
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/Usuarios.dproj
@@ -0,0 +1,557 @@
+
+
+
+ {0e3d28a9-51af-483b-b478-472a086ee120}
+ Usuarios.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\Output\Debug\Cliente\Usuarios.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ RELEASE
+
+
+ 7.0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+ ..\..\Lib;..\..\Modulos\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseGestión de usuariosTrueFalseFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1030FalseFalseFalseFalseFalse308212521.0.3.01.0.0.0Usuarios.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.rc b/Source/ApplicationBase/_Usuarios_/Usuarios.rc
new file mode 100644
index 00000000..169f9978
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/Usuarios.rc
@@ -0,0 +1,22 @@
+1 VERSIONINFO
+FILEVERSION 1,0,3,0
+PRODUCTVERSION 1,0,3,0
+FILEFLAGSMASK 0x3FL
+FILEFLAGS 0x00L
+FILEOS 0x40004L
+FILETYPE 0x1L
+FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "0C0A04E4"
+ BEGIN
+ VALUE "FileVersion", "1.0.3.0\0"
+ VALUE "ProductVersion", "1.0.0.0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0C0A, 1252
+ END
+END
diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.res b/Source/ApplicationBase/_Usuarios_/Usuarios.res
new file mode 100644
index 00000000..73fae82f
Binary files /dev/null and b/Source/ApplicationBase/_Usuarios_/Usuarios.res differ
diff --git a/Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm
new file mode 100644
index 00000000..91698274
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm
@@ -0,0 +1,94 @@
+object fCambiarPassword: TfCambiarPassword
+ Left = 460
+ Top = 492
+ Width = 361
+ Height = 299
+ Caption = 'Cambiar la contrase'#241'a'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bAceptar: TButton
+ Left = 136
+ Top = 230
+ Width = 120
+ Height = 25
+ Caption = '&Cambiar la contrase'#241'a'
+ Default = True
+ TabOrder = 0
+ OnClick = bAceptarClick
+ end
+ object bCancelar: TButton
+ Left = 269
+ Top = 230
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = '&Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ object PageControl1: TPageControl
+ Left = 2
+ Top = 2
+ Width = 349
+ Height = 217
+ ActivePage = pagContrasena
+ TabOrder = 2
+ object pagContrasena: TTabSheet
+ Caption = 'Cambiar la contrase'#241'a'
+ object Label4: TLabel
+ Left = 16
+ Top = 19
+ Width = 167
+ Height = 13
+ Caption = 'Escriba la nueva contrase'#241'a:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 72
+ Width = 257
+ Height = 13
+ Caption = 'Repita la nueva contrase'#241'a para confirmarla:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ end
+ object edtPassword2: TEdit
+ Left = 16
+ Top = 88
+ Width = 295
+ Height = 21
+ CharCase = ecLowerCase
+ PasswordChar = '*'
+ TabOrder = 0
+ end
+ object edtPassword: TEdit
+ Left = 16
+ Top = 39
+ Width = 295
+ Height = 21
+ CharCase = ecLowerCase
+ PasswordChar = '*'
+ TabOrder = 1
+ end
+ end
+ end
+end
diff --git a/Source/ApplicationBase/_Usuarios_/uCambiarPassword.pas b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.pas
new file mode 100644
index 00000000..03a158bf
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.pas
@@ -0,0 +1,41 @@
+unit uCambiarPassword;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ComCtrls;
+
+type
+ TfCambiarPassword = class(TForm)
+ bAceptar: TButton;
+ bCancelar: TButton;
+ Label4: TLabel;
+ edtPassword: TEdit;
+ Label1: TLabel;
+ edtPassword2: TEdit;
+ PageControl1: TPageControl;
+ pagContrasena: TTabSheet;
+ procedure bAceptarClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fCambiarPassword: TfCambiarPassword;
+
+implementation
+
+{$R *.dfm}
+
+procedure TfCambiarPassword.bAceptarClick(Sender: TObject);
+begin
+ if edtPassword2.Text <> edtPassword.Text then
+ raise Exception.Create('Por favor, introduzca la MISMA contraseña en los dos campos')
+ else
+ ModalResult := mrOK;
+end;
+
+end.
diff --git a/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm
new file mode 100644
index 00000000..ce6d0400
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm
@@ -0,0 +1,17 @@
+object dmUsuarios: TdmUsuarios
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ Height = 205
+ Width = 355
+ object ROLoginService: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvLogin'
+ Left = 48
+ Top = 32
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 104
+ end
+end
diff --git a/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas
new file mode 100644
index 00000000..369a5f3c
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas
@@ -0,0 +1,209 @@
+unit uDataModuleUsuarios;
+
+interface
+
+uses {vcl:} SysUtils, Classes, DB, DBClient,
+ {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
+ FactuGES_Intf, uIntegerListUtils, uBizEmpresas, uDADataStreamer;
+
+const
+ PERFIL_ADMINISTRADORES = 'Administradores';
+
+type
+ TdmUsuarios = class(TDAClientDataModule)
+ ROLoginService: TRORemoteService;
+ DABINAdapter: TDABINAdapter;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ procedure DAClientDataModuleDestroy(Sender: TObject);
+ private
+ FUsuario : String;
+ FPassword : String; // Lo guardo para poder hacer una reconexión
+
+ FLoginInfo: TRdxLoginInfo;
+ FEmpresaActual: IBizEmpresa;
+ function CambiarPassword (const APassword : String) : boolean; overload;
+ function GetEsAdministrador: Boolean;
+
+ function GetEmpresas: TIntegerList;
+
+ procedure SetEmpresaActual(const Value: IBizEmpresa);
+ function GetIDEmpresaActual: Integer;
+ procedure SetIDEmpresaActual(const Value: Integer);
+ public
+ function Login: Boolean; overload;
+ function Login(Usuario: String; Password: String): Boolean; overload;
+ procedure Logout;
+ procedure CambiarPassword; overload;
+ property EsAdministrador : Boolean read GetEsAdministrador;
+ property IDEmpresaActual : Integer read GetIDEmpresaActual write SetIDEmpresaActual;
+ property EmpresaActual : IBizEmpresa read FEmpresaActual write SetEmpresaActual;
+ property Empresas : TIntegerList read GetEmpresas;
+ property LoginInfo: TRdxLoginInfo read FLoginInfo;
+ end;
+
+var
+ dmUsuarios: TdmUsuarios;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ Forms, Controls, uDataTableUtils, uDataModuleConexion, uLoginForm,
+ uCambiarPassword, Dialogs, Windows, uEmpresasController;
+
+{ TDAClientDataModule1 }
+
+procedure TdmUsuarios.DAClientDataModuleCreate(Sender: TObject);
+begin
+ ROLoginService.Channel := dmConexion.Channel;
+ ROLoginService.Message := dmConexion.Message;
+ FEmpresaActual := nil;
+ FUsuario := '';
+ FPassword := '';
+ FLoginInfo := NIL;
+end;
+
+function TdmUsuarios.Login: Boolean;
+begin
+ // Intento hacer login si el usuario ya lo había hecho antes
+ if (Length(FUsuario) > 0) then
+ if Login(FUsuario, FPassword) then
+ begin
+ Result := True;
+ Exit;
+ end;
+
+ // Si no funcionar el login anterior o es la primera vez,
+ // saco la pantalla de login
+ with TfLoginForm.Create(NIL) do
+ try
+ if Assigned(FLoginInfo) then
+ edtUser.Text := FLoginInfo.Usuario;
+ Result := (ShowModal = mrOK)
+ finally
+ Free;
+ end;
+end;
+
+function TdmUsuarios.Login(Usuario: String; Password: String): Boolean;
+begin
+ // Libero la información del login anterior (sesión, etc)
+ if Assigned(FLoginInfo) then
+ FreeANDNil(FLoginInfo);
+
+ Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo);
+
+ if Result then
+ begin
+ // Lo guardo para poder reconectarme
+ FUsuario := Usuario;
+ FPassword := Password;
+ end;
+end;
+
+procedure TdmUsuarios.Logout;
+begin
+ (ROLoginService as IsrvLogin).Logout;
+ if Assigned(FLoginInfo) then
+ FreeANDNil(FLoginInfo);
+ FUsuario := '';
+ FPassword := '';
+end;
+
+procedure TdmUsuarios.SetEmpresaActual(const Value: IBizEmpresa);
+begin
+ FEmpresaActual := Value;
+ FEmpresaActual.DataTable.Active := True;
+end;
+
+procedure TdmUsuarios.SetIDEmpresaActual(const Value: Integer);
+var
+ AEmpresasController : IEmpresasController;
+ AEmpresa : IBizEmpresa;
+begin
+ AEmpresasController := TEmpresasController.Create;
+ AEmpresa := AEmpresasController.Buscar(Value);
+ AEmpresa.DataTable.Active := True;
+
+ if not AEmpresa.IsEmpty then
+ begin
+ FEmpresaActual := AEmpresa;
+ FEmpresaActual.DataTable.Active := True;
+ end
+ else
+ FEmpresaActual := NIL;
+end;
+
+procedure TdmUsuarios.DAClientDataModuleDestroy(Sender: TObject);
+begin
+ if Assigned(FLoginInfo) then
+ FreeANDNil(FLoginInfo);
+end;
+
+function TdmUsuarios.GetEmpresas: TIntegerList;
+var
+ i : integer;
+begin
+ Result := TIntegerList.Create;
+
+ if not Assigned(FLoginInfo) then
+ raise Exception.Create('Usuario no validado en el sistema (login)');
+
+ for i := 0 to FLoginInfo.Empresas.Count - 1 do
+ Result.Add(FLoginInfo.Empresas.Items[i]);
+end;
+
+function TdmUsuarios.GetEsAdministrador: Boolean;
+var
+ I: Integer;
+begin
+ Result := False;
+
+ if not Assigned(FLoginInfo) then
+ raise Exception.Create('Usuario no validado en el sistema (login)');
+
+ for I := 0 to FLoginInfo.Perfiles.Count - 1 do
+ if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then
+ begin
+ Result := True;
+ Break;
+ end;
+end;
+
+function TdmUsuarios.GetIDEmpresaActual: Integer;
+begin
+ if not Assigned(FEmpresaActual) then
+ Result := ID_NULO
+ else
+ Result := FEmpresaActual.ID;
+end;
+
+procedure TdmUsuarios.CambiarPassword;
+begin
+ with TfCambiarPassword.Create(NIL) do
+ try
+ if ShowModal = mrOk then
+ if CambiarPassword(edtPassword.Text) then
+ Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK);
+ finally
+ Free;
+ end;
+end;
+
+function TdmUsuarios.CambiarPassword(const APassword: String): boolean;
+begin
+{ if not (ROLoginService as IsrvLogin).SetUserPassword(LoginInfo.UserID, APassword) then
+ raise Exception.Create('Error en el servidor. No se ha podido cambiar la contraseña');}
+ Result := True;
+end;
+
+initialization
+ dmUsuarios := TdmUsuarios.Create(nil);
+
+finalization
+ FreeAndNil(dmUsuarios);
+
+end.
diff --git a/Source/ApplicationBase/_Usuarios_/uLoginForm.dfm b/Source/ApplicationBase/_Usuarios_/uLoginForm.dfm
new file mode 100644
index 00000000..bfa1641a
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uLoginForm.dfm
@@ -0,0 +1,1099 @@
+object fLoginForm: TfLoginForm
+ Left = 790
+ Top = 387
+ ActiveControl = edtUser
+ BorderStyle = bsDialog
+ Caption = 'FactuGES'
+ ClientHeight = 241
+ ClientWidth = 385
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label3: TLabel
+ Left = 24
+ Top = 108
+ Width = 39
+ Height = 13
+ Caption = 'Usuario:'
+ Transparent = False
+ end
+ object Label4: TLabel
+ Left = 24
+ Top = 138
+ Width = 57
+ Height = 13
+ Caption = 'Contrase'#241'a:'
+ Transparent = False
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 72
+ Width = 94
+ Height = 13
+ Caption = 'Inicio de sesi'#243'n:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clMenuHighlight
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ end
+ object JvGradient1: TJvGradient
+ Left = 0
+ Top = 57
+ Width = 385
+ Height = 4
+ Align = alTop
+ StartColor = 2971346
+ EndColor = 4828405
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 385
+ Height = 57
+ Align = alTop
+ BevelOuter = bvNone
+ Color = clWhite
+ TabOrder = 0
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 385
+ Height = 57
+ Align = alClient
+ Center = True
+ Picture.Data = {
+ 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF
+ F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A
+ 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC
+ FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA
+ FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5
+ A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7
+ 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26
+ EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251
+ 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD
+ FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41
+ F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF
+ EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1
+ F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000
+ 0000C201FA000007FF800582838485868788898A8322173C5300919293949596
+ 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1
+ 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70
+ 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED
+ F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48
+ 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003
+ CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F
+ 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C
+ 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3
+ A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27
+ 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031
+ ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14
+ 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86
+ 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9
+ 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E
+ 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F
+ 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5
+ E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C
+ 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53
+ D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8
+ AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689
+ B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45
+ 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047
+ 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839
+ 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E
+ AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868
+ 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319
+ 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64
+ 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535
+ 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7
+ 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046
+ 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161
+ 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B
+ 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD
+ 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2
+ F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2
+ 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6
+ 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A
+ C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E
+ 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52
+ 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43
+ 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A
+ 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8
+ 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791
+ 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846
+ 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4
+ 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686
+ D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099
+ 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8
+ E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C
+ 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E
+ 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3
+ 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01
+ 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D
+ 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A
+ 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B
+ 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087
+ 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB
+ 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944
+ 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6
+ 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929
+ 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA
+ D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4
+ 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0
+ 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996
+ 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279
+ 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4
+ 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065
+ 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7
+ B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B
+ 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016
+ 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB
+ 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B
+ 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE
+ A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC
+ EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B
+ 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055
+ 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067
+ 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C
+ 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059
+ A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048
+ 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300
+ 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535
+ 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F
+ 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B
+ 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2
+ 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3
+ 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F
+ 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB
+ 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D
+ F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01
+ 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81
+ 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C
+ 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1
+ 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1
+ 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F
+ A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570
+ 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002
+ BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029
+ 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1
+ 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736
+ BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562
+ 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B
+ D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B
+ A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A
+ 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343
+ 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861
+ 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79
+ 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083
+ 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699
+ 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A
+ D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3
+ DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709
+ 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0
+ 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2
+ 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE
+ 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020
+ 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B
+ 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E
+ 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7
+ 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901
+ 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794
+ 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2
+ 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81
+ CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4
+ 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9
+ 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E
+ 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2
+ 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5
+ E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA
+ AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539
+ BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28
+ 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3
+ 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669
+ 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B
+ B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD
+ D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C
+ 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83
+ 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740
+ AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F
+ 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C
+ F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83
+ 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E
+ 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075
+ 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9
+ 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B
+ 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5
+ 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA
+ BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE
+ EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143
+ DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18
+ 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7
+ BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442
+ 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375
+ 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278
+ 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8
+ F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8
+ 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E
+ 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF
+ 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8
+ 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C
+ 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7
+ 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09
+ 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731
+ 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF
+ 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696
+ 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8
+ 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26
+ 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96
+ 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000
+ 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA
+ 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB
+ 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA
+ AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483
+ 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E
+ 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5
+ 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E
+ 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7
+ CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C
+ 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021
+ 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958
+ 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7
+ 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C
+ 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1
+ 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929
+ D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2
+ ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7
+ 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF
+ 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814
+ 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69
+ A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E
+ 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A
+ 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686
+ 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85
+ 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5
+ 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962
+ 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275
+ 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018
+ B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9
+ 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF
+ 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A
+ 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392
+ 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777
+ B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3
+ 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200
+ 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313
+ 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540
+ 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA
+ D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164
+ 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A
+ D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA
+ 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140
+ DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7
+ 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141
+ 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA
+ 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7
+ 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547
+ 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454
+ 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230
+ A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C
+ 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B
+ 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C
+ 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308
+ 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC
+ 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A
+ 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC
+ 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304
+ 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8
+ 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3
+ 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D
+ 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6
+ 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09
+ 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B
+ B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F
+ 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4
+ A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66
+ 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B
+ 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746
+ ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778
+ 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E
+ ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33
+ 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8
+ 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44
+ 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3
+ EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D
+ 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F
+ 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA
+ B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65
+ F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E
+ 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1
+ 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5
+ 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137
+ 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C
+ 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0
+ 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7
+ F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667
+ 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C
+ D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083
+ 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2
+ 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774
+ 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D
+ CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5
+ 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C
+ B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D
+ 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0
+ A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F
+ 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8
+ 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C
+ 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C
+ 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49
+ 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3
+ 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392
+ 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C
+ 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477
+ E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89
+ 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431
+ 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155
+ B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019
+ 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F
+ 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93
+ C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8
+ 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F
+ 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2
+ A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474
+ DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3
+ ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA
+ A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC
+ B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E
+ 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F
+ 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5
+ E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8
+ 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E
+ C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C
+ 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B
+ A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3
+ EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB
+ 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F
+ 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002
+ 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B
+ B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4
+ 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E
+ 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60
+ B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F
+ 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0
+ 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D
+ 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E
+ 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C
+ CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B
+ 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A
+ 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810
+ BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1
+ FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472
+ CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD
+ BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3
+ F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887
+ D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5
+ 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE
+ 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D
+ D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D
+ 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6
+ 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3
+ 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3
+ 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84
+ 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2
+ AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006
+ 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E
+ D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B
+ 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1
+ D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239
+ 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF
+ 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28
+ E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9
+ 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2
+ 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E
+ E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E
+ E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003
+ 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47
+ CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125
+ 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010
+ 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560
+ 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0
+ 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9
+ 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08
+ DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6
+ 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9
+ 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56
+ 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF
+ FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A
+ 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3
+ 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E
+ 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770
+ 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22
+ AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1
+ A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54
+ 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C
+ 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68
+ 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367
+ 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE
+ CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374
+ 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75
+ 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6
+ 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506
+ 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1
+ C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB
+ 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865
+ 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8
+ 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413
+ 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906
+ DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1
+ DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B
+ 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E
+ E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4
+ AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E
+ 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09
+ 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085
+ 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC
+ A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA
+ 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08
+ AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC
+ 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680
+ 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458
+ C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243
+ 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE
+ 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1
+ 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71
+ 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981
+ 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905
+ 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41
+ B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603
+ 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8
+ CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A
+ 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6
+ 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A
+ 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631
+ E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9
+ 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1
+ AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A
+ 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8
+ C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589
+ 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538
+ 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874
+ 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86
+ 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4
+ A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C
+ 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809
+ 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2
+ 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C
+ 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276
+ D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C
+ E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA
+ 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718
+ 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590
+ 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648
+ 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57
+ C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB
+ 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B
+ 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA
+ 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087
+ 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051
+ 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E
+ C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D
+ 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E
+ F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B
+ 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926
+ F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710
+ A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A
+ 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8
+ 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763
+ 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048
+ EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0
+ 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1
+ D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889
+ 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10
+ 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B
+ C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47
+ 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67
+ 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C
+ 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0
+ 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC
+ 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E
+ E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB
+ 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996
+ 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173
+ 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E
+ 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680
+ 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4
+ 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011
+ 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384
+ F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA
+ 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721
+ 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2
+ 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D
+ F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735
+ 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59
+ 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244
+ C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B
+ 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87
+ 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D
+ DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3
+ 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC
+ 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06
+ 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209
+ 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE
+ 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A
+ 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED
+ 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A
+ 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0
+ 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303
+ 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D
+ 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606
+ 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24
+ A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE
+ E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93
+ 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737
+ 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50
+ B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C
+ 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5
+ 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722
+ A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2
+ 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E
+ E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC
+ 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE
+ B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69
+ C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B
+ 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E
+ DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0
+ 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7
+ ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB
+ E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B
+ FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326
+ 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC
+ 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996
+ 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3
+ DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1
+ BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E
+ 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F
+ 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97
+ 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE
+ B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384
+ 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E
+ A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027
+ 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100
+ 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F
+ 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72
+ 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC
+ DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB
+ 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E
+ B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7
+ 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4
+ 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0
+ E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929
+ F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79
+ E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54
+ 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E
+ AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E
+ F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C
+ 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101
+ 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC
+ 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263
+ 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE
+ 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821
+ 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B
+ 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E
+ 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365
+ 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D
+ 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123
+ 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2
+ DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32
+ 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D
+ 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25
+ 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C
+ CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823
+ 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A
+ 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767
+ A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46
+ A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C
+ 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8
+ 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595
+ 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B
+ 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0
+ D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB
+ 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054
+ 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7
+ D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83
+ BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F
+ 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9
+ 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597
+ DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78
+ 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356
+ 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598
+ CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B
+ 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2
+ 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63
+ 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C
+ 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4
+ 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003
+ E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96
+ 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64
+ 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA
+ F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1
+ 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E
+ 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D
+ 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051
+ 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092
+ 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002
+ E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1
+ 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8
+ 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8
+ 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7
+ 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08
+ 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D
+ E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789
+ 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2
+ A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE
+ 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C
+ 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1
+ DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59
+ EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C
+ 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F
+ 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98
+ 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D
+ 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296
+ 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB
+ 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D
+ 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401
+ 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D
+ E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF
+ 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D
+ 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B
+ AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748
+ 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57
+ BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F
+ 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62
+ 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097
+ BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5
+ 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F
+ 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA
+ 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3
+ 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C
+ 750701100620740018A007741524C0B1054C80333FD05064E600517766243882
+ 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264
+ 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768
+ F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0
+ 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D
+ 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866
+ 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0
+ 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F
+ 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D
+ 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47
+ 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533
+ 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4
+ 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112
+ 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D
+ 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60
+ 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A
+ A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070
+ 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871
+ 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999
+ A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799
+ 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D
+ A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570
+ 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864
+ 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2
+ E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F
+ 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1
+ 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153
+ 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A
+ A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776
+ 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8
+ 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358
+ 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65
+ 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7
+ C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC
+ 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E
+ 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8
+ 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104
+ 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3
+ 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011
+ 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788
+ A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000
+ 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B
+ 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9
+ 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4
+ 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E
+ A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD
+ D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B
+ BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810
+ 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722
+ F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333
+ ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF
+ A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C
+ AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3
+ 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01
+ 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C
+ CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5
+ 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7
+ 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B
+ D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638
+ DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8
+ B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28
+ 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2
+ 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB
+ D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660
+ 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21
+ 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103
+ D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849
+ 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130
+ 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED
+ 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8
+ 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D
+ DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007
+ DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B
+ 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D
+ 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3
+ 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D
+ 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58
+ FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE
+ 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2
+ 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4
+ 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2
+ 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9
+ EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3
+ BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8
+ CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB
+ 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C
+ 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97
+ 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E
+ 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1
+ 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785
+ 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3
+ 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81
+ DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D
+ CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8
+ 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2
+ A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C
+ 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0
+ B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE
+ CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF
+ EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1
+ 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68
+ 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720
+ A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9
+ 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A
+ 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8
+ 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5
+ B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483
+ 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D
+ 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64
+ 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C
+ B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552
+ 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558
+ 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642
+ D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E
+ 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B
+ 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1
+ 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555
+ 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C
+ 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800
+ 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18
+ 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C
+ 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1
+ 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70
+ EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1
+ C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A
+ 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53
+ 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0
+ 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56
+ C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A
+ CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132
+ C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F
+ 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D
+ CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07
+ 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828
+ 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09
+ 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E
+ D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978
+ C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A
+ 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A
+ A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00
+ 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409
+ 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751
+ E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148
+ 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56
+ AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7
+ CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02
+ 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D
+ 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD
+ E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C
+ B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C
+ 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA
+ 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E
+ 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58
+ 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A
+ 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801
+ 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F
+ 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899
+ 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736
+ 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0
+ 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3
+ D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A
+ 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD
+ CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4
+ E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41
+ DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197
+ FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3
+ C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F
+ DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71
+ 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452
+ 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD
+ EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F
+ 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912
+ D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01
+ 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007
+ 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8
+ 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9
+ 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880
+ 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6
+ 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810
+ 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6
+ 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE
+ 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C
+ C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2
+ 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE
+ F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004
+ 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF
+ 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000
+ 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820
+ 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203
+ 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F
+ 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039
+ 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE
+ 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D
+ 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771
+ 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D
+ 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78
+ 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5
+ 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106
+ 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9
+ 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B
+ 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5
+ D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF
+ F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B
+ 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A
+ A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632
+ 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E
+ FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550
+ ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B
+ FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0
+ FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF
+ B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005
+ 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8
+ 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B
+ B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6
+ 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934
+ 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90
+ 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5
+ F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F
+ 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D
+ 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A
+ 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419
+ 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04
+ 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B
+ BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B
+ F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A
+ D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658
+ 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7
+ 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0
+ 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE
+ 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3
+ 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870
+ 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E
+ 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF
+ 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318
+ 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0
+ 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A
+ D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB
+ 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6
+ 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD
+ 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3
+ A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF
+ 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543
+ 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65
+ C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D
+ DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B
+ C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0
+ 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A
+ 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C
+ 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5
+ 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031
+ EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7
+ 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE
+ E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0
+ BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB
+ 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8
+ 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209
+ 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099
+ 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002
+ 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF
+ 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0
+ ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280
+ 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5
+ 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35
+ 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22
+ 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5
+ 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D
+ F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96
+ A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F
+ F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38
+ 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A
+ 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC
+ B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC
+ DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289
+ 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C
+ 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD
+ 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63
+ 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7
+ 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6
+ 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C
+ 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0
+ DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE
+ 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185
+ 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6
+ 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C
+ C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206
+ 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204
+ 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6
+ E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9
+ A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D
+ B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE
+ 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D
+ AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A
+ E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0
+ 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212
+ FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0
+ C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8
+ D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751
+ 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308
+ B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA
+ EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F
+ 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F
+ 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671
+ BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2
+ E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8
+ 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213
+ 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B
+ BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15
+ 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2
+ 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074
+ 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724
+ DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749
+ 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6
+ CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B
+ B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8
+ 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C
+ 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5
+ 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177
+ E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0
+ 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222
+ 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A
+ 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA
+ BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2
+ D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006
+ 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B
+ 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0
+ C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8
+ 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1
+ E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259
+ CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC
+ 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35
+ 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C
+ 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719
+ 0DE44000003B}
+ ExplicitWidth = 386
+ end
+ end
+ object edtPassword: TEdit
+ Left = 96
+ Top = 132
+ Width = 278
+ Height = 21
+ PasswordChar = '*'
+ TabOrder = 2
+ end
+ object bAceptar: TButton
+ Left = 208
+ Top = 203
+ Width = 75
+ Height = 25
+ Caption = '&Aceptar'
+ Default = True
+ TabOrder = 3
+ OnClick = bAceptarClick
+ end
+ object bCancelar: TButton
+ Left = 296
+ Top = 203
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = '&Salir'
+ ModalResult = 2
+ TabOrder = 4
+ end
+ object edtUser: TEdit
+ Left = 96
+ Top = 104
+ Width = 278
+ Height = 21
+ TabOrder = 1
+ end
+ object Button1: TButton
+ Left = 16
+ Top = 203
+ Width = 129
+ Height = 25
+ Caption = 'C&onfigurar conexi'#243'n...'
+ TabOrder = 5
+ OnClick = ToolButton4Click
+ end
+ object Timer1: TTimer
+ Enabled = False
+ Interval = 5000
+ OnTimer = Timer1Timer
+ Left = 344
+ Top = 64
+ end
+ object JvAppRegistryStorage1: TJvAppRegistryStorage
+ StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
+ StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
+ StorageOptions.BooleanAsString = False
+ Root = 'Software\%APPL_NAME%'
+ SubStorages = <>
+ Left = 14
+ Top = 168
+ end
+ object JvFormStorage1: TJvFormStorage
+ AppStorage = JvAppRegistryStorage1
+ AppStoragePath = '\'
+ Options = []
+ StoredProps.Strings = (
+ 'edtUser.Text'
+ 'edtPassword.Text')
+ StoredValues = <
+ item
+ Name = 'Ruta'
+ Value = ''
+ end>
+ Left = 48
+ Top = 168
+ end
+end
diff --git a/Source/Base/Usuarios/Data/uLoginForm.pas b/Source/ApplicationBase/_Usuarios_/uLoginForm.pas
similarity index 94%
rename from Source/Base/Usuarios/Data/uLoginForm.pas
rename to Source/ApplicationBase/_Usuarios_/uLoginForm.pas
index 2e183b43..a3814747 100644
--- a/Source/Base/Usuarios/Data/uLoginForm.pas
+++ b/Source/ApplicationBase/_Usuarios_/uLoginForm.pas
@@ -52,13 +52,13 @@ procedure TfLoginForm.bAceptarClick(Sender: TObject);
var
bOk : Boolean;
begin
-{ ShowHourglassCursor;
+ ShowHourglassCursor;
try
bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text);
finally
HideHourglassCursor;
end;
-
+
if bOk then
ModalResult := mrOK
else begin
@@ -67,7 +67,7 @@ begin
Dec(FIntentos);
if (FIntentos <= 0) then
ModalResult := mrCancel;
- end;}
+ end;
end;
procedure TfLoginForm.FormCreate(Sender: TObject);
diff --git a/Source/ApplicationBase/_Usuarios_/uUsuario.dfm b/Source/ApplicationBase/_Usuarios_/uUsuario.dfm
new file mode 100644
index 00000000..93fcc6e1
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uUsuario.dfm
@@ -0,0 +1,123 @@
+object fUsuario: TfUsuario
+ Left = 523
+ Top = 415
+ BorderStyle = bsDialog
+ Caption = 'Datos del usuario'
+ ClientHeight = 309
+ ClientWidth = 308
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Button1: TButton
+ Left = 138
+ Top = 273
+ Width = 75
+ Height = 25
+ Action = actAceptar
+ TabOrder = 1
+ end
+ object Button2: TButton
+ Left = 226
+ Top = 273
+ Width = 75
+ Height = 25
+ Action = actCancelar
+ TabOrder = 2
+ end
+ object TabControl1: TPageControl
+ Left = 8
+ Top = 8
+ Width = 293
+ Height = 257
+ ActivePage = pagUsuario
+ TabOrder = 0
+ object pagUsuario: TTabSheet
+ Caption = 'Usuario'
+ object GroupBox1: TGroupBox
+ Left = 6
+ Top = 5
+ Width = 274
+ Height = 99
+ Caption = 'GroupBox1'
+ TabOrder = 0
+ DesignSize = (
+ 274
+ 99)
+ object Label4: TLabel
+ Left = 34
+ Top = 28
+ Width = 39
+ Height = 13
+ Caption = 'Usuario:'
+ Transparent = False
+ end
+ object Label5: TLabel
+ Left = 16
+ Top = 60
+ Width = 57
+ Height = 13
+ Caption = 'Contrase'#241'a:'
+ Transparent = False
+ end
+ object edtUser: TEdit
+ Left = 88
+ Top = 24
+ Width = 169
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 0
+ end
+ object edtPassword: TEdit
+ Left = 88
+ Top = 56
+ Width = 169
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ PasswordChar = '*'
+ TabOrder = 1
+ end
+ end
+ object GroupBox2: TGroupBox
+ Left = 7
+ Top = 111
+ Width = 273
+ Height = 110
+ Caption = 'Permisos y seguridad'
+ TabOrder = 1
+ object Label1: TLabel
+ Left = 47
+ Top = 36
+ Width = 26
+ Height = 13
+ Caption = 'Perfil:'
+ Transparent = False
+ end
+ object cbPerfil: TComboBox
+ Left = 88
+ Top = 28
+ Width = 169
+ Height = 21
+ ItemHeight = 13
+ TabOrder = 0
+ end
+ end
+ end
+ end
+ object ActionList: TActionList
+ Left = 8
+ Top = 272
+ object actAceptar: TAction
+ Caption = '&Aceptar'
+ end
+ object actCancelar: TAction
+ Caption = '&Cancelar'
+ end
+ end
+end
diff --git a/Source/ApplicationBase/_Usuarios_/uUsuario.pas b/Source/ApplicationBase/_Usuarios_/uUsuario.pas
new file mode 100644
index 00000000..90e722c2
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uUsuario.pas
@@ -0,0 +1,39 @@
+unit uUsuario;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, ComCtrls, ActnList;
+
+type
+ TfUsuario = class(TForm)
+ Button1: TButton;
+ Button2: TButton;
+ TabControl1: TPageControl;
+ pagUsuario: TTabSheet;
+ GroupBox1: TGroupBox;
+ Label4: TLabel;
+ Label5: TLabel;
+ edtUser: TEdit;
+ edtPassword: TEdit;
+ GroupBox2: TGroupBox;
+ Label1: TLabel;
+ cbPerfil: TComboBox;
+ ActionList: TActionList;
+ actAceptar: TAction;
+ actCancelar: TAction;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ fUsuario: TfUsuario;
+
+implementation
+
+{$R *.dfm}
+
+end.
diff --git a/Source/ApplicationBase/_Usuarios_/uUsuarios.dfm b/Source/ApplicationBase/_Usuarios_/uUsuarios.dfm
new file mode 100644
index 00000000..0c3eb30f
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uUsuarios.dfm
@@ -0,0 +1,118 @@
+object fUsuarios: TfUsuarios
+ Left = 490
+ Top = 417
+ BorderStyle = bsDialog
+ Caption = 'Administraci'#243'n de usuarios'
+ ClientHeight = 401
+ ClientWidth = 550
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Grid: TDBGrid
+ Left = 8
+ Top = 40
+ Width = 425
+ Height = 313
+ DataSource = DADataSource
+ TabOrder = 0
+ TitleFont.Charset = DEFAULT_CHARSET
+ TitleFont.Color = clWindowText
+ TitleFont.Height = -11
+ TitleFont.Name = 'MS Sans Serif'
+ TitleFont.Style = []
+ end
+ object JvNavPanelHeader1: TJvNavPanelHeader
+ Left = 0
+ Top = 0
+ Width = 550
+ Align = alTop
+ Caption = 'Panel de control'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindow
+ Font.Height = -16
+ Font.Name = 'Arial'
+ Font.Style = [fsBold]
+ ParentFont = False
+ ColorFrom = 8684164
+ ColorTo = 8684164
+ ImageIndex = 0
+ StyleManager = dmBase.StyleManager
+ ParentStyleManager = False
+ end
+ object Button1: TButton
+ Left = 448
+ Top = 40
+ Width = 91
+ Height = 25
+ Action = actNuevo
+ TabOrder = 2
+ end
+ object Button2: TButton
+ Left = 448
+ Top = 136
+ Width = 91
+ Height = 25
+ Action = actModificar
+ TabOrder = 3
+ end
+ object Button3: TButton
+ Left = 448
+ Top = 176
+ Width = 91
+ Height = 25
+ Action = actEliminar
+ TabOrder = 4
+ end
+ object Button4: TButton
+ Left = 448
+ Top = 368
+ Width = 91
+ Height = 25
+ Action = actCerrar
+ TabOrder = 5
+ end
+ object Button5: TButton
+ Left = 448
+ Top = 96
+ Width = 91
+ Height = 25
+ Action = actCambiarPassword
+ TabOrder = 6
+ end
+ object DADataSource: TDADataSource
+ Left = 368
+ Top = 40
+ end
+ object ActionList: TActionList
+ Left = 8
+ Top = 360
+ object actCerrar: TAction
+ Caption = '&Cerrar'
+ OnExecute = actCerrarExecute
+ end
+ object actNuevo: TAction
+ Caption = 'Nuevo usuario'
+ OnUpdate = actNuevoUpdate
+ end
+ object actCambiarPassword: TAction
+ Caption = 'Cambiar contrase'#241'a'
+ OnUpdate = actCambiarPasswordUpdate
+ end
+ object actModificar: TAction
+ Caption = 'Modificar usuario'
+ OnUpdate = actModificarUpdate
+ end
+ object actEliminar: TAction
+ Caption = 'Eliminar usuario'
+ OnUpdate = actEliminarUpdate
+ end
+ end
+end
diff --git a/Source/ApplicationBase/_Usuarios_/uUsuarios.pas b/Source/ApplicationBase/_Usuarios_/uUsuarios.pas
new file mode 100644
index 00000000..6fb22fd6
--- /dev/null
+++ b/Source/ApplicationBase/_Usuarios_/uUsuarios.pas
@@ -0,0 +1,89 @@
+unit uUsuarios;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls,
+ DBCtrls, uDataModuleBase, JvExControls, JvComponent, JvNavigationPane,
+ Grids, DBGrids, ActnList, uDAInterfaces;
+
+type
+ TfUsuarios = class(TForm)
+ DADataSource: TDADataSource;
+ Grid: TDBGrid;
+ JvNavPanelHeader1: TJvNavPanelHeader;
+ Button1: TButton;
+ Button2: TButton;
+ Button3: TButton;
+ Button4: TButton;
+ Button5: TButton;
+ ActionList: TActionList;
+ actCerrar: TAction;
+ actNuevo: TAction;
+ actCambiarPassword: TAction;
+ actModificar: TAction;
+ actEliminar: TAction;
+ procedure actCerrarExecute(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure actEliminarUpdate(Sender: TObject);
+ procedure actModificarUpdate(Sender: TObject);
+ procedure actCambiarPasswordUpdate(Sender: TObject);
+ procedure actNuevoUpdate(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+procedure AdministrarUsuarios;
+
+implementation
+
+{$R *.dfm}
+
+
+procedure AdministrarUsuarios;
+var
+ fUsuarios: TfUsuarios;
+begin
+ fUsuarios := TfUsuarios.Create(NIL);
+ try
+ fUsuarios.ShowModal;
+ finally
+ fUsuarios.Free;
+ end;
+end;
+
+procedure TfUsuarios.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfUsuarios.FormCreate(Sender: TObject);
+begin
+{ DADataSource.DataTable := dmUsuarios.tbl_Usuarios;
+ DADataSource.DataTable.Active := True;}
+end;
+
+procedure TfUsuarios.actEliminarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
+end;
+
+procedure TfUsuarios.actModificarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
+end;
+
+procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
+end;
+
+procedure TfUsuarios.actNuevoUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := Assigned(DADataSource.DataTable);
+end;
+
+end.
diff --git a/Source/ApplicationBase/uFactuGES_App.pas b/Source/ApplicationBase/uFactuGES_App.pas
new file mode 100644
index 00000000..cde5ad13
--- /dev/null
+++ b/Source/ApplicationBase/uFactuGES_App.pas
@@ -0,0 +1,145 @@
+unit uFactuGES_App;
+
+interface
+
+uses
+ SysUtils, Classes, Forms, uUsuarios, uBizEmpresas,
+ uEmpresasController, JclFileUtils, uUsuariosController;
+
+type
+ TAppFactuGES = class(TObject)
+ private
+ FAppInfo : TJclFileVersionInfo;
+ FEmpresasController : IEmpresasController;
+ FUsuariosController: IUsuariosController;
+ FEmpresaActiva: IBizEmpresa;
+ FUsuarioActivo: TUsuario;
+ function GetAppForm: TCustomForm;
+ procedure SetEmpresaActiva(const Value: IBizEmpresa);
+ procedure SetUsuarioActivo(const Value: TUsuario);
+ function GetEmpresasController: IEmpresasController;
+ function GetUsuariosController: IUsuariosController;
+ function GetAppName: String;
+ function GetAppVersion: String;
+ protected
+ procedure InitializeInstance; virtual;
+ procedure DestroyInstance; virtual;
+ public
+ class function NewInstance: TObject; override;
+ procedure FreeInstance; override;
+ class function RefCount: Integer;
+ property AppVersion : String read GetAppVersion;
+ property AppName : String read GetAppName;
+ property AppForm : TCustomForm read GetAppForm;
+ property EmpresaActiva : IBizEmpresa read FEmpresaActiva write SetEmpresaActiva;
+ property UsuarioActivo : TUsuario read FUsuarioActivo write SetUsuarioActivo;
+ property EmpresasController : IEmpresasController read GetEmpresasController;
+ property UsuariosController : IUsuariosController read GetUsuariosController;
+ end;
+
+var
+ AppFactuGES : TAppFactuGES = nil;
+
+implementation
+
+uses
+ uDataModuleBase, uUsuariosViewRegister;
+
+var
+ Ref_Count : Integer = 0;
+
+procedure TAppFactuGES.DestroyInstance;
+begin
+
+end;
+
+procedure TAppFactuGES.FreeInstance;
+begin
+ Dec(Ref_Count);
+ if (Ref_Count = 0) then
+ begin
+ AppFactuGES := NIL;
+ // Destroy private variables here
+
+
+
+ inherited FreeInstance;
+ end;
+end;
+
+function TAppFactuGES.GetAppForm: TCustomForm;
+begin
+ Result := Application.MainForm;
+end;
+
+function TAppFactuGES.GetAppName: String;
+begin
+ Result := FAppInfo.ProductName;
+end;
+
+function TAppFactuGES.GetAppVersion: String;
+begin
+ Result := FAppInfo.ProductVersion;
+end;
+
+function TAppFactuGES.GetEmpresasController: IEmpresasController;
+begin
+ Result := FEmpresasController;
+end;
+
+function TAppFactuGES.GetUsuariosController: IUsuariosController;
+begin
+ Result := FUsuariosController;
+end;
+
+procedure TAppFactuGES.InitializeInstance;
+begin
+ FEmpresaActiva := NIL;
+ FUsuarioActivo := NIL;
+ FAppInfo := TJclFileVersionInfo.Create(Application.ExeName);
+ FUsuariosController := TUsuariosController.Create;
+ FEmpresasController := TEmpresasController.Create;
+end;
+
+class function TAppFactuGES.NewInstance: TObject;
+begin
+ if (not Assigned(AppFactuGES)) then
+ begin
+ AppFactuGES := TAppFactuGES(inherited NewInstance);
+ // Initialize private variables here
+ AppFactuGES.InitializeInstance;
+ end;
+ Result := AppFactuGES;
+ Inc(Ref_Count);
+end;
+
+class function TAppFactuGES.RefCount: Integer;
+begin
+ Result := Ref_Count;
+end;
+
+procedure TAppFactuGES.SetEmpresaActiva(const Value: IBizEmpresa);
+begin
+ FEmpresaActiva := Value;
+end;
+
+procedure TAppFactuGES.SetUsuarioActivo(const Value: TUsuario);
+begin
+ if Assigned(FUsuarioActivo) and (FUsuarioActivo <> Value) then
+ FreeAndNIL(FUsuarioActivo);
+ FUsuarioActivo := Value;
+end;
+
+initialization
+ AppFactuGES := TAppFactuGES.Create;
+
+ // Pongo esto aquí por ahora
+ uUsuariosViewRegister.RegisterViews;
+
+finalization
+ FreeAndNIL(AppFactuGES);
+
+ // Pongo esto aquí por ahora
+ uUsuariosViewRegister.UnregisterViews;
+
+end.
diff --git a/Source/Base/Base.bdsproj b/Source/Base/Base.bdsproj
index 7f75ab6d..7ebf9f74 100644
--- a/Source/Base/Base.bdsproj
+++ b/Source/Base/Base.bdsproj
@@ -1,183 +1,183 @@

-
-
-
-
-
-
-
-
-
- Base.dpk
-
-
- 7.0
-
-
- 8
- 0
- 1
- 1
- 0
- 0
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 1
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 1
- 1
- 1
- 1
- 1
- True
- True
- WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-
- False
-
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- False
- False
- False
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
- True
-
-
-
- 0
- 0
- False
- 1
- False
- False
- False
- 16384
- 1048576
- 4194304
- Libreria base de FactuGES
-
-
-
- .\
- ..\..\Output\Debug\Cliente
- ..\Lib
- ..\Lib
-
-
-
- False
-
-
-
-
-
- False
-
-
- True
- False
-
-
- False
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 3082
- 1252
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
+
+
+
+
+
+
+
+
+
+ Base.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+ Libreria base de FactuGES
+
+
+
+ .\
+ ..\..\Output\Debug\Cliente
+ ..\Lib
+
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+ False
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
VCL for the Web Design Package for CodeGear RAD Studio
CodeGear WebSnap Components
CodeGear SOAP Components
@@ -186,10 +186,9 @@
CodeGear C++Builder Office 2000 Servers Package
CodeGear C++Builder Office XP Servers Package
-
-
+
+
-
diff --git a/Source/Base/Base.drc b/Source/Base/Base.drc
index fb8b881c..d993392a 100644
--- a/Source/Base/Base.drc
+++ b/Source/Base/Base.drc
@@ -14,10 +14,10 @@ BEGIN
uClassRegistryUtils_eClassnotFound, "Class \"%s\" was not found in the registry."
END
-/* C:\Codigo Tecsitel\Source\Base\Conexion\uConfigurarConexion.dfm */
-/* C:\Codigo Tecsitel\Source\Base\Conexion\uDataModuleConexion.dfm */
-/* C:\Codigo Tecsitel\Source\Base\Configuracion\uDataModuleConfiguracion.dfm */
-/* C:\Codigo Tecsitel\Source\Base\uDataModuleBase.DFM */
-/* C:\Codigo Tecsitel\Source\Base\Actualizacion\uActualizacion.dfm */
+/* Conexion\uConfigurarConexion.dfm */
+/* Conexion\uDataModuleConexion.dfm */
+/* Configuracion\uDataModuleConfiguracion.dfm */
+/* uDataModuleBase.DFM */
+/* Actualizacion\uActualizacion.dfm */
/* C:\Codigo Tecsitel\Source\Base\Base.res */
/* C:\Codigo Tecsitel\Source\Base\Base.drf */
diff --git a/Source/Base/Base.res b/Source/Base/Base.res
index 02236de8..8b251f31 100644
Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ
diff --git a/Source/Base/Controladores/uControllerBase.pas b/Source/Base/Controladores/uControllerBase.pas
index 0d3f90a6..b710af87 100644
--- a/Source/Base/Controladores/uControllerBase.pas
+++ b/Source/Base/Controladores/uControllerBase.pas
@@ -39,6 +39,9 @@ type
destructor Destroy; override;
end;
+ IControllerBase = IObservador;
+ TControllerBase = TObservador;
+
implementation
uses
diff --git a/Source/Base/Usuarios/Data/uDataModuleUsuarios.dfm b/Source/Base/Usuarios/Data/uDataModuleUsuarios.dfm
deleted file mode 100644
index 1b2ff77c..00000000
--- a/Source/Base/Usuarios/Data/uDataModuleUsuarios.dfm
+++ /dev/null
@@ -1,76 +0,0 @@
-object DataModuleUsuarios: TDataModuleUsuarios
- OldCreateOrder = True
- OnCreate = DAClientDataModuleCreate
- Height = 205
- Width = 355
- object ROLoginService: TRORemoteService
- Message = dmConexion.ROMessage
- Channel = dmConexion.ROChannel
- ServiceName = 'srvLogin'
- Left = 48
- Top = 32
- end
- object srvUsuarios: TRORemoteService
- Message = dmConexion.ROMessage
- Channel = dmConexion.ROChannel
- ServiceName = 'srvUsuarios'
- Left = 152
- Top = 32
- end
- object Bin2DataStreamer: TDABin2DataStreamer
- Left = 48
- Top = 104
- end
- object UserControl1: TUserControl
- ApplicationID = 'ProjetoNovo'
- LogControl.TableLog = 'UCLog'
- EncryptKey = 0
- Login.InitialLogin.User = 'admin'
- Login.InitialLogin.Email = 'usercontrol@usercontrol.net'
- Login.InitialLogin.Password = '123mudar'
- Login.MaxLoginAttempts = 0
- ExtraRights = <>
- TableUsers.FieldUserID = 'UCIdUser'
- TableUsers.FieldUserName = 'UCUserName'
- TableUsers.FieldLogin = 'UCLogin'
- TableUsers.FieldPassword = 'UCPassword'
- TableUsers.FieldEmail = 'UCEmail'
- TableUsers.FieldPrivileged = 'UCPrivileged'
- TableUsers.FieldTypeRec = 'UCTypeRec'
- TableUsers.FieldProfile = 'UCProfile'
- TableUsers.FieldKey = 'UCKey'
- TableUsers.FieldDateExpired = 'UCPassExpired'
- TableUsers.FieldUserExpired = 'UCUserExpired'
- TableUsers.FieldUserDaysSun = 'UCUserDaysSun'
- TableUsers.TableName = 'UCTabUsers'
- TableEmpresa.FieldID = 'UCID'
- TableEmpresa.FieldName = 'UCNOME'
- TableEmpresa.TableName = 'UCEMPRESA'
- TableEmpresa.Active = False
- TableEmpresa.IDInteiro = False
- TableRights.FieldUserID = 'UCIdUser'
- TableRights.FieldModule = 'UCModule'
- TableRights.FieldComponentName = 'UCCompName'
- TableRights.FieldFormName = 'UCFormName'
- TableRights.FieldKey = 'UCKey'
- TableRights.TableName = 'UCTabRights'
- TableUsersLogged.FieldLogonID = 'UCIdLogon'
- TableUsersLogged.FieldUserID = 'UCIdUser'
- TableUsersLogged.FieldApplicationID = 'UCApplicationId'
- TableUsersLogged.FieldMachineName = 'UCMachineName'
- TableUsersLogged.FieldData = 'UCData'
- TableUsersLogged.TableName = 'UCTabUsersLogged'
- TableHistory.TableName = 'UCTABHistory'
- TableHistory.FieldApplicationID = 'ApplicationID'
- TableHistory.FieldUserID = 'UserID'
- TableHistory.FieldEventDate = 'EventDate'
- TableHistory.FieldEventTime = 'EventTime'
- TableHistory.FieldForm = 'Form'
- TableHistory.FieldCaptionForm = 'FormCaption'
- TableHistory.FieldEvent = 'Event'
- TableHistory.FieldObs = 'Obs'
- TableHistory.FieldTableName = 'tName'
- Left = 192
- Top = 120
- end
-end
diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas
index 1839cb51..f47dc7de 100644
--- a/Source/Base/Utiles/uSistemaFunc.pas
+++ b/Source/Base/Utiles/uSistemaFunc.pas
@@ -43,8 +43,7 @@ procedure Deltree(DirToKill : String; KillChoosenDir : Boolean);
implementation
uses
- SysUtils, Windows, Dialogs,
-
+ SysUtils, Windows, Dialogs, JclFileUtils,
Messages, Classes, Graphics, Controls, Forms,
StdCtrls;
@@ -151,27 +150,14 @@ end;
function DarVersionFichero (Executable : String) : String;
var
- Size, Size2: DWord;
- Pt, Pt2: Pointer;
+ Obj : TJclFileVersionInfo;
begin
- Size := GetFileVersionInfoSize(PChar (Executable), Size2);
- if Size > 0 then
- begin
- GetMem (Pt, Size);
- try
- GetFileVersionInfo (PChar (Executable), 0, Size, Pt);
- VerQueryValue (Pt, '\', Pt2, Size2);
- with TVSFixedFileInfo (Pt2^) do
- begin
- Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' +
- IntToStr (LoWord (dwFileVersionMS)) + '.' +
- IntToStr (HiWord (dwFileVersionLS)) + '.' +
- IntToStr (LoWord (dwFileVersionLS));
- end;
- finally
- FreeMem (Pt);
- end;
- end;
+ Obj := TJclFileVersionInfo.Create(Application.ExeName);
+ try
+ Result := Obj.FileVersion;
+ finally
+ FreeAndNil(Obj);
+ end;
end;
function DarFechaFichero (Executable : String) : String;
diff --git a/Source/Base/__uExceptions.pas__ b/Source/Base/__uExceptions.pas__
deleted file mode 100644
index d3e6e852..00000000
--- a/Source/Base/__uExceptions.pas__
+++ /dev/null
@@ -1,20 +0,0 @@
-unit uExceptions;
-
-interface
-
-uses
- uDADataTable;
-
-const
- AUF_FKVIOLATION = 'violation of FOREIGN KEY';
- AUF_HAVEVALUE = 'must have a value';
-
-type
- IApplyUpdateFailedException = interface
- ['{B090A762-3D65-405E-A810-14DB4F6E8F82}']
- procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
- end;
-
-implementation
-
-end.
diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas
index 812a1627..35ee011f 100644
--- a/Source/Base/uDataModuleBase.pas
+++ b/Source/Base/uDataModuleBase.pas
@@ -24,7 +24,6 @@ type
procedure LeerConfiguracion;
public
procedure SalvarConfiguracion;
- function DarVersion : String;
property OnThemeChange: TNotifyEvent read FOnThemeChange write
FOnThemeChange;
end;
@@ -98,18 +97,6 @@ begin
dmConfiguracion.SalvarConfiguracion;
end;
-function TdmBase.DarVersion: String;
-var
- Obj : TJclFileVersionInfo;
-begin
- Obj := TJclFileVersionInfo.Create(Application.ExeName);
- try
- Result := 'v' + Obj.FileVersion;
- finally
- FreeAndNil(Obj);
- end;
-end;
-
procedure TdmBase.DataModuleDestroy(Sender: TObject);
begin
FreeANDNIL(dmConfiguracion);
diff --git a/Source/Base_Group.groupproj b/Source/Base_Group.groupproj
index 2076a8e0..f28fcdfa 100644
--- a/Source/Base_Group.groupproj
+++ b/Source/Base_Group.groupproj
@@ -4,7 +4,10 @@
+
+
+
Default.Personality
@@ -21,14 +24,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/Source/ClearFiles.msbuild b/Source/ClearFiles.msbuild
deleted file mode 100644
index 30f4b9de..00000000
--- a/Source/ClearFiles.msbuild
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/Base/Actualizacion/uActualizacion.dfm b/Source/Cliente/Actualizacion/uActualizacion.dfm
similarity index 100%
rename from Source/Base/Actualizacion/uActualizacion.dfm
rename to Source/Cliente/Actualizacion/uActualizacion.dfm
diff --git a/Source/Base/Actualizacion/uActualizacion.pas b/Source/Cliente/Actualizacion/uActualizacion.pas
similarity index 100%
rename from Source/Base/Actualizacion/uActualizacion.pas
rename to Source/Cliente/Actualizacion/uActualizacion.pas
diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr
index 18c64e48..7a4baf90 100644
--- a/Source/Cliente/FactuGES.dpr
+++ b/Source/Cliente/FactuGES.dpr
@@ -1,9 +1,11 @@
program FactuGES;
uses
+ ExceptionLog,
Forms,
Windows,
SysUtils,
+ uFactuGES_App,
uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal},
uMenuUtils in 'Utiles\uMenuUtils.pas',
uSplash in 'uSplash.pas' {SplashScreen},
@@ -20,14 +22,14 @@ var
begin
Application.Initialize;
+ //ReportMemoryLeaksOnShutdown := True;
// ¡¡¡Fallo en Delphi 2007!!!
// Tengo que ponerlo a false porque si no el formulario principal no se puede poner por encima de los formularios hijos.
// Luego, en el formulario principal cambio los paramátros para obligar a que aparezca el icono en la barra de tareas.
Application.MainFormOnTaskbar := False;
-
- Application.Title := 'FactuGES';
+ Application.Title := AppFactuGES.AppName;
{ fActualizacion := TfActualizacion.Create(Application);
try
diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index 7daa3c52..66d34648 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -5,7 +5,7 @@
FactuGES.dpr
Debug
AnyCPU
- PluginSDK_D10R;GUISDK_D11;Base;GUIBase;Empresas_plugin;Empresas_controller;Empresas_model
+ PluginSDK_D10R;GUISDK_D11;Base;GUIBase;ApplicationBase
DCC32
..\..\Output\Debug\Cliente\FactuGES.exe
true
@@ -45,43 +45,13 @@
$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib
$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib
$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib
- DEBUG;
+ DEBUG;EUREKALOG;EUREKALOG_VER6
Delphi.Personality
VCLApplication
T:\Codigo (Luis Leon)\Source\Modulos\Pedidos de cliente\Controller\FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2220FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.2.0FactuGESFactuGES2.1.4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
CodeGear Control Panel Applet Package
CodeGear WebSnap Components
CodeGear SOAP Components
@@ -116,12 +86,12 @@
diff --git a/Source/Servidor/FactuGES_Server.cfg b/Source/Servidor/FactuGES_Server.cfg
index 7c5d7e6e..45f6a1af 100644
--- a/Source/Servidor/FactuGES_Server.cfg
+++ b/Source/Servidor/FactuGES_Server.cfg
@@ -35,4 +35,3 @@
-E"..\..\Output\Debug\Servidor"
-LE"C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl"
-LN"C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Dcp"
--DEUREKALOG;EUREKALOG_VER6
diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr
index 09f33e5a..16ed3212 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -3,7 +3,6 @@ program FactuGES_Server;
{#ROGEN:..\Servicios\FactuGES.rodl} // RemObjects: Careful, do not remove!
uses
- ExceptionLog,
uROComInit,
Forms,
uServerMainForm in 'uServerMainForm.pas' {fServerForm},
@@ -16,13 +15,13 @@ uses
FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas',
FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas',
srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService},
- srvLogin_Impl in 'srvLogin_Impl.pas',
- srvEmpresas_Impl in '..\Base\Empresas\Servidor\srvEmpresas_Impl.pas' {srvEmpresas: TDARemoteService},
+ srvLogin_Impl in 'srvLogin_Impl.pas' {srvLogin: TDARemoteService},
+ srvEmpresas_Impl in '..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas' {srvEmpresas: TDARemoteService},
srvConfiguracion_Impl in 'Configuracion\srvConfiguracion_Impl.pas' {srvConfiguracion: TDataAbstractService},
srvFamilias_Impl in '..\Modulos\Familias\Servidor\srvFamilias_Impl.pas',
srvFormasPago_Impl in '..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas',
srvTiposIVA_Impl in '..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas',
- srvUsuarios_Impl in '..\Base\Usuarios\Servidor\srvUsuarios_Impl.pas',
+ srvUsuarios_Impl in '..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas',
RegExpr in 'Utiles\RegExpr.pas',
uBusinessUtils in 'Utiles\uBusinessUtils.pas',
uDatabaseUtils in 'Utiles\uDatabaseUtils.pas',
@@ -37,14 +36,16 @@ uses
uBizClientesServer in '..\Modulos\Contactos\Model\uBizClientesServer.pas',
uBizContactosServer in '..\Modulos\Contactos\Model\uBizContactosServer.pas',
uBizEmpleadosServer in '..\Modulos\Contactos\Model\uBizEmpleadosServer.pas',
- schEmpresasServer_Intf in '..\Base\Empresas\Model\schEmpresasServer_Intf.pas',
- schEmpresasClient_Intf in '..\Base\Empresas\Model\schEmpresasClient_Intf.pas',
+ schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas',
+ schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas',
schFamiliasServer_Intf in '..\Modulos\Familias\Model\schFamiliasServer_Intf.pas',
schFamiliasClient_Intf in '..\Modulos\Familias\Model\schFamiliasClient_Intf.pas',
schFormasPagoServer_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas',
schFormasPagoClient_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas',
schTiposIVAServer_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas',
- schTiposIVAClient_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas';
+ schTiposIVAClient_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas',
+ schUsuariosClient_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas',
+ schUsuariosServer_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
new file mode 100644
index 00000000..9cf1ef2a
--- /dev/null
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -0,0 +1,585 @@
+
+
+ {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
+ FactuGES_Server.dpr
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Output\Debug\Servidor\FactuGES_Server.exe
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ ..\..\Output\Release\Servidor
+ RELEASE
+
+
+ 7.0
+ 3
+ ..\..\Output\Debug\Servidor
+ DEBUG
+
+
+ Delphi.Personality
+
+
+FalseTrueFalseTrueFalse3000FalseFalseFalseFalseFalse308212523.0.0.03.0.0.0domingo, 30 de septiembre de 2007 20:47
+ RemObjects Pascal Script - RemObjects SDK 3.0 Integration
+ FactuGES_Server.dpr
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Servidor/FactuGES_Server.drc b/Source/Servidor/FactuGES_Server.drc
index 4d3386b9..c642df23 100644
--- a/Source/Servidor/FactuGES_Server.drc
+++ b/Source/Servidor/FactuGES_Server.drc
@@ -8,247 +8,243 @@
resources were bound to the produced executable.
*/
-#define pnglang_EPNGHeaderNotPresentText 64480
-#define pnglang_EPNGZLIBErrorText 64496
-#define pnglang_EPNGInvalidPaletteText 64497
-#define pnglang_EPNGInvalidFileHeaderText 64498
-#define pnglang_EPNGIHDRNotFirstText 64499
-#define pnglang_EPNGSizeExceedsText 64500
-#define pnglang_EPNGUnknownPalEntryText 64501
-#define pnglang_EPNGUnknownCriticalChunkText 64502
-#define pnglang_EPNGUnknownCompressionText 64503
-#define pnglang_EPNGUnknownInterlaceText 64504
-#define pnglang_EPNGCannotAssignChunkText 64505
-#define pnglang_EPNGUnexpectedEndText 64506
-#define pnglang_EPNGNoImageDataText 64507
-#define pnglang_EPNGCannotChangeSizeText 64508
-#define pnglang_EPNGCannotAddChunkText 64509
-#define pnglang_EPNGCannotAddInvalidImageText 64510
-#define pnglang_EPNGOutMemoryText 64511
-#define cxEditConsts_scxRegExprTooBigReferenceNumber 64512
-#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64513
-#define cxEditConsts_scxRegExprSubrangeOrder 64514
-#define cxEditConsts_scxRegExprHexNumberExpected0 64515
-#define cxEditConsts_scxRegExprHexNumberExpected 64516
-#define cxEditConsts_scxRegExprMissing 64517
-#define cxEditConsts_scxRegExprUnnecessary 64518
-#define cxEditConsts_scxRegExprIncorrectSpace 64519
-#define cxEditConsts_scxRegExprNotCompiled 64520
-#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64521
-#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64522
-#define cxEditConsts_scxMaskEditRegExprError 64523
-#define cxEditConsts_scxMaskEditInvalidEditValue 64524
-#define pnglang_EPngInvalidCRCText 64525
-#define pnglang_EPNGInvalidIHDRText 64526
-#define pnglang_EPNGMissingMultipleIDATText 64527
-#define cxEditConsts_cxSDateEOM 64528
-#define cxEditConsts_cxSDateNow 64529
-#define cxEditConsts_scxSEditRepositoryButtonItem 64530
-#define cxEditConsts_scxSEditRepositoryMaskItem 64531
-#define cxEditConsts_scxSEditRepositoryTextItem 64532
-#define cxEditConsts_scxRegExprLine 64533
-#define cxEditConsts_scxRegExprChar 64534
-#define cxEditConsts_scxRegExprNotAssignedSourceStream 64535
-#define cxEditConsts_scxRegExprEmptySourceStream 64536
-#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64537
-#define cxEditConsts_scxRegExprCantUseStarQuantifier 64538
-#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64539
-#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64540
-#define cxEditConsts_scxRegExprIllegalSymbol 64541
-#define cxEditConsts_scxRegExprIllegalQuantifier 64542
-#define cxEditConsts_scxRegExprIllegalIntegerValue 64543
-#define cxEditConsts_cxSDateTomorrow 64544
-#define cxEditConsts_cxSDateSunday 64545
-#define cxEditConsts_cxSDateMonday 64546
-#define cxEditConsts_cxSDateTuesday 64547
-#define cxEditConsts_cxSDateWednesday 64548
-#define cxEditConsts_cxSDateThursday 64549
-#define cxEditConsts_cxSDateFriday 64550
-#define cxEditConsts_cxSDateSaturday 64551
-#define cxEditConsts_cxSDateFirst 64552
-#define cxEditConsts_cxSDateSecond 64553
-#define cxEditConsts_cxSDateThird 64554
-#define cxEditConsts_cxSDateFourth 64555
-#define cxEditConsts_cxSDateFifth 64556
-#define cxEditConsts_cxSDateSixth 64557
-#define cxEditConsts_cxSDateSeventh 64558
-#define cxEditConsts_cxSDateBOM 64559
-#define IBXConst_SEventAlreadyRegistered 64560
-#define IBXConst_SStringTooLarge 64561
-#define IBXConst_SNoTimers 64562
-#define IBXConst_SIB65feature 64563
-#define IBXConst_SLoginPromptFailure 64564
-#define IBXConst_SIB70feature 64565
-#define IBXConst_SIB71feature 64566
-#define IBXConst_SIB80feature 64567
-#define cxDataConsts_cxSDataReadError 64568
-#define cxDataConsts_cxSDataWriteError 64569
-#define cxEditConsts_cxSEditInvalidRepositoryItem 64570
-#define cxEditConsts_cxSEditNumericValueConvertError 64571
-#define cxEditConsts_cxSEditValidateErrorText 64572
-#define cxEditConsts_cxSEditValueOutOfBounds 64573
-#define cxEditConsts_cxSDateToday 64574
-#define cxEditConsts_cxSDateYesterday 64575
-#define IBXConst_SParamNameExpected 64576
-#define IBXConst_SSuccess 64577
-#define IBXConst_SDelphiException 64578
-#define IBXConst_SNoOptionsSet 64579
-#define IBXConst_SNoDestinationDirectory 64580
-#define IBXConst_SNosourceDirectory 64581
-#define IBXConst_SNoUninstallFile 64582
-#define IBXConst_SOptionNeedsClient 64583
-#define IBXConst_SOptionNeedsServer 64584
-#define IBXConst_SInvalidOption 64585
-#define IBXConst_SInvalidOnErrorResult 64586
-#define IBXConst_SInvalidOnStatusResult 64587
-#define IBXConst_SDPBConstantUnknownEx 64588
-#define IBXConst_STPBConstantUnknownEx 64589
-#define IBXConst_SUnknownPlan 64590
-#define IBXConst_SFieldSizeMismatch 64591
-#define IBXConst_SInvalidBatchMove 64592
-#define IBXConst_SSQLDialectInvalid 64593
-#define IBXConst_SSPBConstantNotSupported 64594
-#define IBXConst_SSPBConstantUnknown 64595
-#define IBXConst_SServiceActive 64596
-#define IBXConst_SServiceInActive 64597
-#define IBXConst_SServerNameMissing 64598
-#define IBXConst_SQueryParamsError 64599
-#define IBXConst_SStartParamsError 64600
-#define IBXConst_SOutputParsingError 64601
-#define IBXConst_SUseSpecificProcedures 64602
-#define IBXConst_SSQLMonitorAlreadyPresent 64603
-#define IBXConst_SCantPrintValue 64604
-#define IBXConst_SEOFReached 64605
-#define IBXConst_SEOFInComment 64606
-#define IBXConst_SEOFInString 64607
-#define IBXConst_SUpdateFailed 64608
-#define IBXConst_SNotCachedUpdates 64609
-#define IBXConst_SNotLiveRequest 64610
-#define IBXConst_SNoProvider 64611
-#define IBXConst_SNoRecordsAffected 64612
-#define IBXConst_SNoTableName 64613
-#define IBXConst_SCannotCreatePrimaryIndex 64614
-#define IBXConst_SCannotDropSystemIndex 64615
-#define IBXConst_STableNameMismatch 64616
-#define IBXConst_SIndexFieldMissing 64617
-#define IBXConst_SInvalidCancellation 64618
-#define IBXConst_SInvalidEvent 64619
-#define IBXConst_SMaximumEvents 64620
-#define IBXConst_SNoEventsRegistered 64621
-#define IBXConst_SInvalidQueueing 64622
-#define IBXConst_SInvalidRegistration 64623
-#define IBXConst_SCircularReference 64624
-#define IBXConst_SSQLParseError 64625
-#define IBXConst_SUserAbort 64626
-#define IBXConst_SDataSetUniDirectional 64627
-#define IBXConst_SCannotCreateSharedResource 64628
-#define IBXConst_SWindowsAPIError 64629
-#define IBXConst_SColumnListsDontMatch 64630
-#define IBXConst_SColumnTypesDontMatch 64631
-#define IBXConst_SCantEndSharedTransaction 64632
-#define IBXConst_SFieldUnsupportedType 64633
-#define IBXConst_SCircularDataLink 64634
-#define IBXConst_SEmptySQLStatement 64635
-#define IBXConst_SIsASelectStatement 64636
-#define IBXConst_SRequiredParamNotSet 64637
-#define IBXConst_SNoStoredProcName 64638
-#define IBXConst_SIsAExecuteProcedure 64639
-#define IBXConst_SInvalidDataConversion 64640
-#define IBXConst_SColumnIsNotNullable 64641
-#define IBXConst_SBlobCannotBeRead 64642
-#define IBXConst_SBlobCannotBeWritten 64643
-#define IBXConst_SEmptyQuery 64644
-#define IBXConst_SCannotOpenNonSQLSelect 64645
-#define IBXConst_SNoFieldAccess 64646
-#define IBXConst_SFieldReadOnly 64647
-#define IBXConst_SFieldNotFound 64648
-#define IBXConst_SNotEditing 64649
-#define IBXConst_SCannotInsert 64650
-#define IBXConst_SCannotPost 64651
-#define IBXConst_SCannotUpdate 64652
-#define IBXConst_SCannotDelete 64653
-#define IBXConst_SCannotRefresh 64654
-#define IBXConst_SBufferNotSet 64655
-#define IBXConst_SUpdateWrongDB 64656
-#define IBXConst_SUpdateWrongTR 64657
-#define IBXConst_SDatabaseNotAssigned 64658
-#define IBXConst_STransactionNotAssigned 64659
-#define IBXConst_SXSQLDAIndexOutOfRange 64660
-#define IBXConst_SXSQLDANameDoesNotExist 64661
-#define IBXConst_SEOF 64662
-#define IBXConst_SBOF 64663
-#define IBXConst_SInvalidStatementHandle 64664
-#define IBXConst_SSQLOpen 64665
-#define IBXConst_SSQLClosed 64666
-#define IBXConst_SDatasetOpen 64667
-#define IBXConst_SDatasetClosed 64668
-#define IBXConst_SUnknownSQLDataType 64669
-#define IBXConst_SInvalidColumnIndex 64670
-#define IBXConst_SInvalidParamColumnIndex 64671
-#define IBXConst_SFileAccessError 64672
-#define IBXConst_SConnectionTimeout 64673
-#define IBXConst_SCannotSetDatabase 64674
-#define IBXConst_SCannotSetTransaction 64675
-#define IBXConst_SOperationCancelled 64676
-#define IBXConst_SDPBConstantNotSupported 64677
-#define IBXConst_SDPBConstantUnknown 64678
-#define IBXConst_STPBConstantNotSupported 64679
-#define IBXConst_STPBConstantUnknown 64680
-#define IBXConst_SDatabaseClosed 64681
-#define IBXConst_SDatabaseOpen 64682
-#define IBXConst_SDatabaseNameMissing 64683
-#define IBXConst_SNotInTransaction 64684
-#define IBXConst_SInTransaction 64685
-#define IBXConst_STimeoutNegative 64686
-#define IBXConst_SNoDatabasesInTransaction 64687
-#define IBSQLMonitor_StrFetch 64688
-#define IBSQLMonitor_StrPrepare 64689
-#define IBSQLMonitor_StrPlan 64690
-#define IBSQLMonitor_StrPlanCantRetrive 64691
-#define IBSQLMonitor_StrCommitHardComm 64692
-#define IBSQLMonitor_StrCommitRetaining 64693
-#define IBSQLMonitor_StrRollback 64694
-#define IBSQLMonitor_StrRollbackRetainin 64695
-#define IBSQLMonitor_StrStartTransaction 64696
-#define IBSQLMonitor_StrApplication 64697
-#define IBXConst_SUnknownError 64698
-#define IBXConst_SInterBaseMissing 64699
-#define IBXConst_SInterBaseInstallMissing 64700
-#define IBXConst_SIB60feature 64701
-#define IBXConst_SNotSupported 64702
-#define IBXConst_SNotPermitted 64703
-#define ADOConst_SCantRequery 64704
-#define ADOConst_SNoFilterOptions 64705
-#define ADOConst_SRecordsetNotOpen 64706
-#define ADOConst_sNameAttr 64707
-#define ADOConst_sValueAttr 64708
-#define IBSQLMonitor_StrConnect 64709
-#define IBSQLMonitor_StrDisconnect 64710
-#define IBSQLMonitor_StrMisc 64711
-#define IBSQLMonitor_StrError 64712
-#define IBSQLMonitor_StrAttach 64713
-#define IBSQLMonitor_StrDetach 64714
-#define IBSQLMonitor_StrQuery 64715
-#define IBSQLMonitor_StrStart 64716
-#define IBSQLMonitor_StrExecute 64717
-#define IBSQLMonitor_StrNULL 64718
-#define IBSQLMonitor_StrBLOB 64719
-#define uDARes_err_DARDMConnectionIsNotAssigned 64720
-#define uDARes_err_DARDMCannotFindProxessorForDelta 64721
-#define uDARes_err_NeedShareMem 64722
-#define uDARes_err_ExecuteSQLCommandNotAllowed 64723
-#define uDARes_err_DatasetNotAccessible 64724
-#define uDARes_err_CommandNotAccessible 64725
-#define uDARes_err_SQLNotPermitted 64726
-#define ADOConst_SMissingConnection 64727
-#define ADOConst_SNoDetailFilter 64728
-#define ADOConst_SBookmarksRequired 64729
-#define ADOConst_SMissingCommandText 64730
-#define ADOConst_SNoResultSet 64731
-#define ADOConst_SADOCreateError 64732
-#define ADOConst_SEventsNotSupported 64733
-#define ADOConst_SUsupportedFieldType 64734
-#define ADOConst_SConnectionRequired 64735
+#define cxEditConsts_scxRegExprTooBigReferenceNumber 64496
+#define cxEditConsts_scxRegExprCantCreateEmptyEnum 64497
+#define cxEditConsts_scxRegExprSubrangeOrder 64498
+#define cxEditConsts_scxRegExprHexNumberExpected0 64499
+#define cxEditConsts_scxRegExprHexNumberExpected 64500
+#define cxEditConsts_scxRegExprMissing 64501
+#define cxEditConsts_scxRegExprUnnecessary 64502
+#define cxEditConsts_scxRegExprIncorrectSpace 64503
+#define cxEditConsts_scxRegExprNotCompiled 64504
+#define cxEditConsts_scxRegExprIncorrectParameterQuantifier 64505
+#define cxEditConsts_scxRegExprCantUseParameterQuantifier 64506
+#define cxEditConsts_scxMaskEditRegExprError 64507
+#define cxEditConsts_scxMaskEditInvalidEditValue 64508
+#define cxEditConsts_cxSDateEOM 64512
+#define cxEditConsts_cxSDateNow 64513
+#define cxEditConsts_scxSEditRepositoryButtonItem 64514
+#define cxEditConsts_scxSEditRepositoryMaskItem 64515
+#define cxEditConsts_scxSEditRepositoryTextItem 64516
+#define cxEditConsts_scxRegExprLine 64517
+#define cxEditConsts_scxRegExprChar 64518
+#define cxEditConsts_scxRegExprNotAssignedSourceStream 64519
+#define cxEditConsts_scxRegExprEmptySourceStream 64520
+#define cxEditConsts_scxRegExprCantUsePlusQuantifier 64521
+#define cxEditConsts_scxRegExprCantUseStarQuantifier 64522
+#define cxEditConsts_scxRegExprCantCreateEmptyAlt 64523
+#define cxEditConsts_scxRegExprCantCreateEmptyBlock 64524
+#define cxEditConsts_scxRegExprIllegalSymbol 64525
+#define cxEditConsts_scxRegExprIllegalQuantifier 64526
+#define cxEditConsts_scxRegExprIllegalIntegerValue 64527
+#define cxEditConsts_cxSDateTomorrow 64528
+#define cxEditConsts_cxSDateSunday 64529
+#define cxEditConsts_cxSDateMonday 64530
+#define cxEditConsts_cxSDateTuesday 64531
+#define cxEditConsts_cxSDateWednesday 64532
+#define cxEditConsts_cxSDateThursday 64533
+#define cxEditConsts_cxSDateFriday 64534
+#define cxEditConsts_cxSDateSaturday 64535
+#define cxEditConsts_cxSDateFirst 64536
+#define cxEditConsts_cxSDateSecond 64537
+#define cxEditConsts_cxSDateThird 64538
+#define cxEditConsts_cxSDateFourth 64539
+#define cxEditConsts_cxSDateFifth 64540
+#define cxEditConsts_cxSDateSixth 64541
+#define cxEditConsts_cxSDateSeventh 64542
+#define cxEditConsts_cxSDateBOM 64543
+#define pnglang_EPNGCannotAssignChunkText 64544
+#define pnglang_EPNGUnexpectedEndText 64545
+#define pnglang_EPNGNoImageDataText 64546
+#define pnglang_EPNGCannotChangeSizeText 64547
+#define pnglang_EPNGCannotAddChunkText 64548
+#define pnglang_EPNGCannotAddInvalidImageText 64549
+#define pnglang_EPNGOutMemoryText 64550
+#define pnglang_EPNGHeaderNotPresentText 64551
+#define cxDataConsts_cxSDataReadError 64552
+#define cxDataConsts_cxSDataWriteError 64553
+#define cxEditConsts_cxSEditInvalidRepositoryItem 64554
+#define cxEditConsts_cxSEditNumericValueConvertError 64555
+#define cxEditConsts_cxSEditValidateErrorText 64556
+#define cxEditConsts_cxSEditValueOutOfBounds 64557
+#define cxEditConsts_cxSDateToday 64558
+#define cxEditConsts_cxSDateYesterday 64559
+#define ADOConst_SNoFilterOptions 64560
+#define ADOConst_SRecordsetNotOpen 64561
+#define ADOConst_sNameAttr 64562
+#define ADOConst_sValueAttr 64563
+#define pnglang_EPngInvalidCRCText 64564
+#define pnglang_EPNGInvalidIHDRText 64565
+#define pnglang_EPNGMissingMultipleIDATText 64566
+#define pnglang_EPNGZLIBErrorText 64567
+#define pnglang_EPNGInvalidPaletteText 64568
+#define pnglang_EPNGInvalidFileHeaderText 64569
+#define pnglang_EPNGIHDRNotFirstText 64570
+#define pnglang_EPNGSizeExceedsText 64571
+#define pnglang_EPNGUnknownPalEntryText 64572
+#define pnglang_EPNGUnknownCriticalChunkText 64573
+#define pnglang_EPNGUnknownCompressionText 64574
+#define pnglang_EPNGUnknownInterlaceText 64575
+#define IBSQLMonitor_StrCommitHardComm 64576
+#define IBSQLMonitor_StrCommitRetaining 64577
+#define IBSQLMonitor_StrRollback 64578
+#define IBSQLMonitor_StrRollbackRetainin 64579
+#define IBSQLMonitor_StrStartTransaction 64580
+#define IBSQLMonitor_StrApplication 64581
+#define ADOConst_SMissingConnection 64582
+#define ADOConst_SNoDetailFilter 64583
+#define ADOConst_SBookmarksRequired 64584
+#define ADOConst_SMissingCommandText 64585
+#define ADOConst_SNoResultSet 64586
+#define ADOConst_SADOCreateError 64587
+#define ADOConst_SEventsNotSupported 64588
+#define ADOConst_SUsupportedFieldType 64589
+#define ADOConst_SConnectionRequired 64590
+#define ADOConst_SCantRequery 64591
+#define IBXConst_SIB80feature 64592
+#define IBSQLMonitor_StrConnect 64593
+#define IBSQLMonitor_StrDisconnect 64594
+#define IBSQLMonitor_StrMisc 64595
+#define IBSQLMonitor_StrError 64596
+#define IBSQLMonitor_StrAttach 64597
+#define IBSQLMonitor_StrDetach 64598
+#define IBSQLMonitor_StrQuery 64599
+#define IBSQLMonitor_StrStart 64600
+#define IBSQLMonitor_StrExecute 64601
+#define IBSQLMonitor_StrNULL 64602
+#define IBSQLMonitor_StrBLOB 64603
+#define IBSQLMonitor_StrFetch 64604
+#define IBSQLMonitor_StrPrepare 64605
+#define IBSQLMonitor_StrPlan 64606
+#define IBSQLMonitor_StrPlanCantRetrive 64607
+#define IBXConst_SOptionNeedsClient 64608
+#define IBXConst_SOptionNeedsServer 64609
+#define IBXConst_SInvalidOption 64610
+#define IBXConst_SInvalidOnErrorResult 64611
+#define IBXConst_SInvalidOnStatusResult 64612
+#define IBXConst_SDPBConstantUnknownEx 64613
+#define IBXConst_STPBConstantUnknownEx 64614
+#define IBXConst_SUnknownPlan 64615
+#define IBXConst_SFieldSizeMismatch 64616
+#define IBXConst_SEventAlreadyRegistered 64617
+#define IBXConst_SStringTooLarge 64618
+#define IBXConst_SNoTimers 64619
+#define IBXConst_SIB65feature 64620
+#define IBXConst_SLoginPromptFailure 64621
+#define IBXConst_SIB70feature 64622
+#define IBXConst_SIB71feature 64623
+#define IBXConst_SQueryParamsError 64624
+#define IBXConst_SStartParamsError 64625
+#define IBXConst_SOutputParsingError 64626
+#define IBXConst_SUseSpecificProcedures 64627
+#define IBXConst_SSQLMonitorAlreadyPresent 64628
+#define IBXConst_SCantPrintValue 64629
+#define IBXConst_SEOFReached 64630
+#define IBXConst_SEOFInComment 64631
+#define IBXConst_SEOFInString 64632
+#define IBXConst_SParamNameExpected 64633
+#define IBXConst_SSuccess 64634
+#define IBXConst_SDelphiException 64635
+#define IBXConst_SNoOptionsSet 64636
+#define IBXConst_SNoDestinationDirectory 64637
+#define IBXConst_SNosourceDirectory 64638
+#define IBXConst_SNoUninstallFile 64639
+#define IBXConst_SCannotDropSystemIndex 64640
+#define IBXConst_STableNameMismatch 64641
+#define IBXConst_SIndexFieldMissing 64642
+#define IBXConst_SInvalidCancellation 64643
+#define IBXConst_SInvalidEvent 64644
+#define IBXConst_SMaximumEvents 64645
+#define IBXConst_SNoEventsRegistered 64646
+#define IBXConst_SInvalidQueueing 64647
+#define IBXConst_SInvalidRegistration 64648
+#define IBXConst_SInvalidBatchMove 64649
+#define IBXConst_SSQLDialectInvalid 64650
+#define IBXConst_SSPBConstantNotSupported 64651
+#define IBXConst_SSPBConstantUnknown 64652
+#define IBXConst_SServiceActive 64653
+#define IBXConst_SServiceInActive 64654
+#define IBXConst_SServerNameMissing 64655
+#define IBXConst_SColumnTypesDontMatch 64656
+#define IBXConst_SCantEndSharedTransaction 64657
+#define IBXConst_SFieldUnsupportedType 64658
+#define IBXConst_SCircularDataLink 64659
+#define IBXConst_SEmptySQLStatement 64660
+#define IBXConst_SIsASelectStatement 64661
+#define IBXConst_SRequiredParamNotSet 64662
+#define IBXConst_SNoStoredProcName 64663
+#define IBXConst_SIsAExecuteProcedure 64664
+#define IBXConst_SUpdateFailed 64665
+#define IBXConst_SNotCachedUpdates 64666
+#define IBXConst_SNotLiveRequest 64667
+#define IBXConst_SNoProvider 64668
+#define IBXConst_SNoRecordsAffected 64669
+#define IBXConst_SNoTableName 64670
+#define IBXConst_SCannotCreatePrimaryIndex 64671
+#define IBXConst_SFieldReadOnly 64672
+#define IBXConst_SFieldNotFound 64673
+#define IBXConst_SNotEditing 64674
+#define IBXConst_SCannotInsert 64675
+#define IBXConst_SCannotPost 64676
+#define IBXConst_SCannotUpdate 64677
+#define IBXConst_SCannotDelete 64678
+#define IBXConst_SCannotRefresh 64679
+#define IBXConst_SBufferNotSet 64680
+#define IBXConst_SCircularReference 64681
+#define IBXConst_SSQLParseError 64682
+#define IBXConst_SUserAbort 64683
+#define IBXConst_SDataSetUniDirectional 64684
+#define IBXConst_SCannotCreateSharedResource 64685
+#define IBXConst_SWindowsAPIError 64686
+#define IBXConst_SColumnListsDontMatch 64687
+#define IBXConst_SBOF 64688
+#define IBXConst_SInvalidStatementHandle 64689
+#define IBXConst_SSQLOpen 64690
+#define IBXConst_SSQLClosed 64691
+#define IBXConst_SDatasetOpen 64692
+#define IBXConst_SDatasetClosed 64693
+#define IBXConst_SUnknownSQLDataType 64694
+#define IBXConst_SInvalidColumnIndex 64695
+#define IBXConst_SInvalidParamColumnIndex 64696
+#define IBXConst_SInvalidDataConversion 64697
+#define IBXConst_SColumnIsNotNullable 64698
+#define IBXConst_SBlobCannotBeRead 64699
+#define IBXConst_SBlobCannotBeWritten 64700
+#define IBXConst_SEmptyQuery 64701
+#define IBXConst_SCannotOpenNonSQLSelect 64702
+#define IBXConst_SNoFieldAccess 64703
+#define IBXConst_STPBConstantNotSupported 64704
+#define IBXConst_STPBConstantUnknown 64705
+#define IBXConst_SDatabaseClosed 64706
+#define IBXConst_SDatabaseOpen 64707
+#define IBXConst_SDatabaseNameMissing 64708
+#define IBXConst_SNotInTransaction 64709
+#define IBXConst_SInTransaction 64710
+#define IBXConst_STimeoutNegative 64711
+#define IBXConst_SNoDatabasesInTransaction 64712
+#define IBXConst_SUpdateWrongDB 64713
+#define IBXConst_SUpdateWrongTR 64714
+#define IBXConst_SDatabaseNotAssigned 64715
+#define IBXConst_STransactionNotAssigned 64716
+#define IBXConst_SXSQLDAIndexOutOfRange 64717
+#define IBXConst_SXSQLDANameDoesNotExist 64718
+#define IBXConst_SEOF 64719
+#define uDARes_err_DatasetNotAccessible 64720
+#define uDARes_err_CommandNotAccessible 64721
+#define uDARes_err_SQLNotPermitted 64722
+#define IBXConst_SUnknownError 64723
+#define IBXConst_SInterBaseMissing 64724
+#define IBXConst_SInterBaseInstallMissing 64725
+#define IBXConst_SIB60feature 64726
+#define IBXConst_SNotSupported 64727
+#define IBXConst_SNotPermitted 64728
+#define IBXConst_SFileAccessError 64729
+#define IBXConst_SConnectionTimeout 64730
+#define IBXConst_SCannotSetDatabase 64731
+#define IBXConst_SCannotSetTransaction 64732
+#define IBXConst_SOperationCancelled 64733
+#define IBXConst_SDPBConstantNotSupported 64734
+#define IBXConst_SDPBConstantUnknown 64735
#define uDARes_err_CannotFindItem 64736
#define uDARes_err_DriverAlreadyLoaded 64737
#define uDARes_err_InvalidDLL 64738
@@ -262,18 +258,18 @@
#define uDARes_err_PoolIsNotEmpty 64746
#define uDARes_err_MaxPoolSizeReached 64747
#define uDARes_err_LAMEDataset 64748
-#define uDARes_err_HETConnectionNotSupportedInV3 64749
-#define uDARes_err_DARDMInvalidSchema 64750
-#define uDARes_err_DARDMUnassignedAdapter 64751
-#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 64752
-#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 64753
-#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 64754
-#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 64755
-#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 64756
-#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 64757
-#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 64758
-#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 64759
-#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 64760
+#define uDARes_err_DARDMInvalidSchema 64749
+#define uDARes_err_DARDMCannotFindProxessorForDelta 64750
+#define uDARes_err_NeedShareMem 64751
+#define JvResources_RsCl3DDkShadow 64752
+#define JvResources_RsCl3DLight 64753
+#define JvResources_RsClInfoText 64754
+#define JvResources_RsClInfoBk 64755
+#define JvResources_RsGradientActiveCaption 64756
+#define JvResources_RsGradientInactiveCaption 64757
+#define JvResources_RsHotLight 64758
+#define JvResources_RsMenuBar 64759
+#define JvResources_RsMenuHighlight 64760
#define uDARes_err_ChangeLogAlreadyStarted 64761
#define uDARes_err_NotAttachedToDataTable 64762
#define uDARes_err_DriverProcAlreadyRegistered 64763
@@ -281,502 +277,502 @@
#define uDARes_err_DriverManagerNotAssigned 64765
#define uDARes_err_FieldTypeNotSupported 64766
#define uDARes_err_InvalidDataset 64767
-#define IdResourceStringsProtocols_RSHTTPForbidden 64768
-#define IdResourceStringsProtocols_RSHTTPNotFound 64769
-#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 64770
-#define IdResourceStringsProtocols_RSHTTPNotAcceptable 64771
-#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 64772
-#define IdResourceStringsProtocols_RSHTTPRequestTimeout 64773
-#define IdResourceStringsProtocols_RSHTTPConflict 64774
-#define IdResourceStringsProtocols_RSHTTPGone 64775
-#define IdResourceStringsProtocols_RSHTTPLengthRequired 64776
-#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 64777
-#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 64778
-#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 64779
-#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 64780
-#define IdResourceStringsProtocols_RSHTTPInternalServerError 64781
-#define IdResourceStringsProtocols_RSHTTPNotImplemented 64782
-#define IdResourceStringsProtocols_RSHTTPBadGateway 64783
-#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 64784
-#define IdResourceStringsProtocols_RSHTTPContinue 64785
-#define IdResourceStringsProtocols_RSHTTPOK 64786
-#define IdResourceStringsProtocols_RSHTTPCreated 64787
-#define IdResourceStringsProtocols_RSHTTPAccepted 64788
-#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 64789
-#define IdResourceStringsProtocols_RSHTTPNoContent 64790
-#define IdResourceStringsProtocols_RSHTTPResetContent 64791
-#define IdResourceStringsProtocols_RSHTTPPartialContent 64792
-#define IdResourceStringsProtocols_RSHTTPMovedPermanently 64793
-#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 64794
-#define IdResourceStringsProtocols_RSHTTPSeeOther 64795
-#define IdResourceStringsProtocols_RSHTTPNotModified 64796
-#define IdResourceStringsProtocols_RSHTTPUseProxy 64797
-#define IdResourceStringsProtocols_RSHTTPBadRequest 64798
-#define IdResourceStringsProtocols_RSHTTPUnauthorized 64799
-#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 64800
-#define IdResourceStringsCore_RSConnectTimeout 64801
-#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 64802
-#define IdResourceStringsCore_RSAlreadyConnected 64803
-#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 64804
-#define IdResourceStringsCore_RSchedMaxThreadEx 64805
-#define IdResourceStringsCore_RSTransparentProxyCannotBind 64806
-#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 64807
-#define IdResourceStringsCore_RSBufferMissingTerminator 64808
-#define IdResourceStringsCore_RSBufferInvalidStartPos 64809
-#define IdResourceStringsCore_RSReplyInvalidCode 64810
-#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 64811
-#define IdResourceStringsCore_RSNoOnExecute 64812
-#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 64813
-#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 64814
-#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 64815
-#define IdResourceStringsCore_RSSocksServerGeneralError 64816
-#define IdResourceStringsCore_RSSocksServerPermissionError 64817
-#define IdResourceStringsCore_RSSocksServerNetUnreachableError 64818
-#define IdResourceStringsCore_RSSocksServerHostUnreachableError 64819
-#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 64820
-#define IdResourceStringsCore_RSSocksServerTTLExpiredError 64821
-#define IdResourceStringsCore_RSSocksServerCommandError 64822
-#define IdResourceStringsCore_RSSocksServerAddressError 64823
-#define IdResourceStringsCore_RSInterceptCircularLink 64824
-#define IdResourceStringsCore_RSNotEnoughDataInBuffer 64825
-#define IdResourceStringsCore_RSTooMuchDataInBuffer 64826
-#define IdResourceStringsCore_RSFileNotFound 64827
-#define IdResourceStringsCore_RSNotConnected 64828
-#define IdResourceStringsCore_RSObjectTypeNotSupported 64829
-#define IdResourceStringsCore_RSIdNoDataToRead 64830
-#define IdResourceStringsCore_RSReadTimeout 64831
-#define IdResourceStrings_RSInvalidPortRange 64832
-#define IdResourceStrings_RSInvalidServiceName 64833
-#define IdResourceStrings_RSIPv6Unavailable 64834
-#define IdResourceStrings_RSInvalidIPv6Address 64835
-#define IdResourceStrings_RSIPVersionUnsupported 64836
-#define IdResourceStrings_RSNotAllBytesSent 64837
-#define IdResourceStrings_RSPackageSizeTooBig 64838
-#define IdResourceStrings_RSSetSizeExceeded 64839
-#define IdResourceStringsCore_RSSocksUDPNotSupported 64840
-#define IdResourceStringsCore_RSSocksRequestFailed 64841
-#define IdResourceStringsCore_RSSocksRequestServerFailed 64842
-#define IdResourceStringsCore_RSSocksRequestIdentFailed 64843
-#define IdResourceStringsCore_RSSocksUnknownError 64844
-#define IdResourceStringsCore_RSSocksServerRespondError 64845
-#define IdResourceStringsCore_RSSocksAuthMethodError 64846
-#define IdResourceStringsCore_RSSocksAuthError 64847
-#define IdResourceStrings_RSStackETOOMANYREFS 64848
-#define IdResourceStrings_RSStackETIMEDOUT 64849
-#define IdResourceStrings_RSStackECONNREFUSED 64850
-#define IdResourceStrings_RSStackELOOP 64851
-#define IdResourceStrings_RSStackENAMETOOLONG 64852
-#define IdResourceStrings_RSStackEHOSTDOWN 64853
-#define IdResourceStrings_RSStackEHOSTUNREACH 64854
-#define IdResourceStrings_RSStackENOTEMPTY 64855
-#define IdResourceStrings_RSStackHOST_NOT_FOUND 64856
-#define IdResourceStrings_RSStackClassUndefined 64857
-#define IdResourceStrings_RSStackAlreadyCreated 64858
-#define IdResourceStrings_RSAntiFreezeOnlyOne 64859
-#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 64860
-#define IdResourceStrings_RSCannotBindRange 64861
-#define IdResourceStrings_RSConnectionClosedGracefully 64862
-#define IdResourceStrings_RSCouldNotBindSocket 64863
-#define IdResourceStrings_RSStackEPROTONOSUPPORT 64864
-#define IdResourceStrings_RSStackESOCKTNOSUPPORT 64865
-#define IdResourceStrings_RSStackEOPNOTSUPP 64866
-#define IdResourceStrings_RSStackEPFNOSUPPORT 64867
-#define IdResourceStrings_RSStackEAFNOSUPPORT 64868
-#define IdResourceStrings_RSStackEADDRINUSE 64869
-#define IdResourceStrings_RSStackEADDRNOTAVAIL 64870
-#define IdResourceStrings_RSStackENETDOWN 64871
-#define IdResourceStrings_RSStackENETUNREACH 64872
-#define IdResourceStrings_RSStackENETRESET 64873
-#define IdResourceStrings_RSStackECONNABORTED 64874
-#define IdResourceStrings_RSStackECONNRESET 64875
-#define IdResourceStrings_RSStackENOBUFS 64876
-#define IdResourceStrings_RSStackEISCONN 64877
-#define IdResourceStrings_RSStackENOTCONN 64878
-#define IdResourceStrings_RSStackESHUTDOWN 64879
-#define IdResourceStrings_RSStatusText 64880
-#define IdResourceStrings_RSStackError 64881
-#define IdResourceStrings_RSStackEINTR 64882
-#define IdResourceStrings_RSStackEBADF 64883
-#define IdResourceStrings_RSStackEACCES 64884
-#define IdResourceStrings_RSStackEFAULT 64885
-#define IdResourceStrings_RSStackEINVAL 64886
-#define IdResourceStrings_RSStackEMFILE 64887
-#define IdResourceStrings_RSStackEWOULDBLOCK 64888
-#define IdResourceStrings_RSStackEINPROGRESS 64889
-#define IdResourceStrings_RSStackEALREADY 64890
-#define IdResourceStrings_RSStackENOTSOCK 64891
-#define IdResourceStrings_RSStackEDESTADDRREQ 64892
-#define IdResourceStrings_RSStackEMSGSIZE 64893
-#define IdResourceStrings_RSStackEPROTOTYPE 64894
-#define IdResourceStrings_RSStackENOPROTOOPT 64895
-#define DBConsts_SUnassignedVar 64896
-#define DBConsts_SRecordNotFound 64897
-#define DBConsts_SBcdOverflow 64898
-#define DBConsts_SInvalidBcdValue 64899
-#define DBConsts_SInvalidFormatType 64900
-#define DBConsts_SCouldNotParseTimeStamp 64901
-#define DBConsts_SInvalidSqlTimeStamp 64902
-#define IdResourceStrings_RSFailedTimeZoneInfo 64903
-#define IdResourceStrings_RSWinsockCallError 64904
-#define IdResourceStrings_RSWinsockLoadError 64905
-#define IdResourceStrings_RSWinsockInitializationError 64906
-#define IdResourceStrings_RSStatusResolving 64907
-#define IdResourceStrings_RSStatusConnecting 64908
-#define IdResourceStrings_RSStatusConnected 64909
-#define IdResourceStrings_RSStatusDisconnecting 64910
-#define IdResourceStrings_RSStatusDisconnected 64911
-#define DBConsts_SLookupInfoError 64912
-#define DBConsts_SDataSourceChange 64913
-#define DBConsts_SDataSetOpen 64914
-#define DBConsts_SNotEditing 64915
-#define DBConsts_SDataSetClosed 64916
-#define DBConsts_SDataSetEmpty 64917
-#define DBConsts_SDataSetReadOnly 64918
-#define DBConsts_SNestedDataSetClass 64919
-#define DBConsts_STextFalse 64920
-#define DBConsts_STextTrue 64921
-#define DBConsts_SParameterNotFound 64922
-#define DBConsts_SInvalidVersion 64923
-#define DBConsts_SBadFieldType 64924
-#define DBConsts_SProviderSQLNotSupported 64925
-#define DBConsts_SProviderExecuteNotSupported 64926
-#define DBConsts_SDataSetUnidirectional 64927
-#define DBConsts_SFieldRangeError 64928
-#define DBConsts_SBcdFieldRangeError 64929
-#define DBConsts_SInvalidIntegerValue 64930
-#define DBConsts_SInvalidBoolValue 64931
-#define DBConsts_SInvalidFloatValue 64932
-#define DBConsts_SFieldTypeMismatch 64933
-#define DBConsts_SFieldSizeMismatch 64934
-#define DBConsts_SInvalidVarByteArray 64935
-#define DBConsts_SFieldOutOfRange 64936
-#define DBConsts_SFieldRequired 64937
-#define DBConsts_SDataSetMissing 64938
-#define DBConsts_SInvalidCalcType 64939
-#define DBConsts_SFieldReadOnly 64940
-#define DBConsts_SNoIndexForFields 64941
-#define DBConsts_SIndexNotFound 64942
-#define DBConsts_SCircularDataLink 64943
-#define uRODECConst_sFMT_COPY 64944
-#define uRODECConst_sFMT_HEX 64945
-#define uRODECConst_sFMT_HEXL 64946
-#define uRODECConst_sFMT_MIME64 64947
-#define uRODECConst_sFMT_UU 64948
-#define uRODECConst_sFMT_XX 64949
-#define uRODECConst_sInvalidKeySize 64950
-#define uRODECConst_sNotInitialized 64951
-#define DBConsts_SInvalidFieldSize 64952
-#define DBConsts_SInvalidFieldKind 64953
-#define DBConsts_SUnknownFieldType 64954
-#define DBConsts_SFieldNameMissing 64955
-#define DBConsts_SDuplicateFieldName 64956
-#define DBConsts_SFieldNotFound 64957
-#define DBConsts_SFieldAccessError 64958
-#define DBConsts_SFieldValueError 64959
-#define uRORes_err_ChannelDoesntSupportIROMetadataReader 64960
-#define uRORes_err_TooManySessions 64961
-#define uRORes_err_DOMElementIsNIL 64962
-#define uRORes_err_CannotLoadXMLDocument 64963
-#define uRORes_err_ErrorCreatingMsXmlDoc 64964
-#define uRORes_err_NoXMLParsersAvailable 64965
-#define uRORes_err_IDispatchMarshalingNotSupported 64966
-#define uRORes_err_UnsupportedVariantType 64967
-#define uRORes_err_VariantIsNotArray 64968
-#define uRORes_err_InvalidVarArrayDimCount 64969
-#define uRORes_err_CannotFindParameter 64970
-#define uRORes_err_MessageNotAssigned 64971
-#define uRODECConst_sProtectionCircular 64972
-#define uRODECConst_sStringFormatExists 64973
-#define uRODECConst_sInvalidStringFormat 64974
-#define uRODECConst_sInvalidFormatString 64975
-#define uRORes_err_ClassFactoryNotFound 64976
-#define uRORes_err_IROMessageNotSupported 64977
-#define uRORes_err_ClassAlreadyRegistered 64978
-#define uRORes_err_UnknownClass 64979
-#define uRORes_err_UnknownProxyInterface 64980
-#define uRORes_err_DispatcherAlreadyAssigned 64981
-#define uRORes_err_CannotFindMessageDispatcher 64982
-#define uRORes_err_ServerOnlySupportsOneDispatcher 64983
-#define uRORes_err_UnhandledException 64984
-#define uRORes_err_ChannelBusy 64985
-#define uRORes_err_ArrayIndexOutOfBounds 64986
-#define uRORes_err_InvalidHeader 64987
-#define uRORes_err_InvalidHeaderEncrypted 64988
-#define uRORes_err_UnknownClassInStream 64989
-#define uRORes_err_UnexpectedClassInStream 64990
-#define uRORes_err_SessionNotFound 64991
-#define uRORes_err_RodlNoStructElementsDefined 64992
-#define uRORes_err_RodlNoOperationsDefined 64993
-#define uRORes_err_RodlUsedFileDoesNotExist 64994
-#define uRORes_err_RodlInvalidDataType 64995
-#define uRORes_err_RodlStructCannotBeNested 64996
-#define uRORes_err_RodlInvalidAncestorType 64997
-#define uRORes_str_ExceptionOnServer 64998
-#define uRORes_str_ExceptionReraisedFromServer 64999
-#define uRORes_err_AssignError 65000
-#define uRORes_err_InvalidRequestStream 65001
-#define uRORes_err_NILMessage 65002
-#define uRORes_err_UnspecifiedInterface 65003
-#define uRORes_err_UnspecifiedMessage 65004
-#define uRORes_err_UnknownMethod 65005
-#define uRORes_err_ClassFactoryDidNotReturnInstance 65006
-#define uRORes_err_TypeNotSupported 65007
-#define ComStrs_sPageIndexError 65008
-#define JConsts_sChangeJPGSize 65009
-#define JConsts_sJPEGError 65010
-#define JConsts_sJPEGImageFile 65011
-#define uRORes_err_InvalidIndex 65012
-#define uRORes_err_InvalidType 65013
-#define uRORes_err_InvalidLibrary 65014
-#define uRORes_err_InvalidStream 65015
-#define uRORes_err_InvalidTargetEntity 65016
-#define uRORes_err_InvalidParamFlag 65017
-#define uRORes_err_InvalidStringLength 65018
-#define uRORes_str_InvalidClassTypeInStream 65019
-#define uRORes_err_UnexpectedEndOfStream 65020
-#define uRORes_err_RodlDuplicateName 65021
-#define uRORes_err_RodlNoDataTypeSpecified 65022
-#define uRORes_err_RodlNoEnumValues 65023
-#define JclResources_RsIntelCacheDescr87 65024
-#define JclResources_RsIntelCacheDescrB0 65025
-#define JclResources_RsIntelCacheDescrB3 65026
-#define JclResources_RsIntelCacheDescrB4 65027
-#define JclResources_RsIntelCacheDescrF0 65028
-#define JclResources_RsIntelCacheDescrF1 65029
-#define ComStrs_sTabFailClear 65030
-#define ComStrs_sTabFailDelete 65031
-#define ComStrs_sTabFailRetrieve 65032
-#define ComStrs_sTabFailGetObject 65033
-#define ComStrs_sTabFailSet 65034
-#define ComStrs_sTabFailSetObject 65035
-#define ComStrs_sTabMustBeMultiLine 65036
-#define ComStrs_sInvalidIndex 65037
-#define ComStrs_sInsertError 65038
-#define ComStrs_sUDAssociated 65039
-#define JclResources_RsIntelCacheDescr68 65040
-#define JclResources_RsIntelCacheDescr70 65041
-#define JclResources_RsIntelCacheDescr71 65042
-#define JclResources_RsIntelCacheDescr72 65043
-#define JclResources_RsIntelCacheDescr78 65044
-#define JclResources_RsIntelCacheDescr79 65045
-#define JclResources_RsIntelCacheDescr7A 65046
-#define JclResources_RsIntelCacheDescr7B 65047
-#define JclResources_RsIntelCacheDescr7C 65048
-#define JclResources_RsIntelCacheDescr7D 65049
-#define JclResources_RsIntelCacheDescr7F 65050
-#define JclResources_RsIntelCacheDescr82 65051
-#define JclResources_RsIntelCacheDescr83 65052
-#define JclResources_RsIntelCacheDescr84 65053
-#define JclResources_RsIntelCacheDescr85 65054
-#define JclResources_RsIntelCacheDescr86 65055
-#define JclResources_RsIntelCacheDescr44 65056
-#define JclResources_RsIntelCacheDescr45 65057
-#define JclResources_RsIntelCacheDescr46 65058
-#define JclResources_RsIntelCacheDescr47 65059
-#define JclResources_RsIntelCacheDescr49 65060
-#define JclResources_RsIntelCacheDescr50 65061
-#define JclResources_RsIntelCacheDescr51 65062
-#define JclResources_RsIntelCacheDescr52 65063
-#define JclResources_RsIntelCacheDescr56 65064
-#define JclResources_RsIntelCacheDescr57 65065
-#define JclResources_RsIntelCacheDescr5B 65066
-#define JclResources_RsIntelCacheDescr5C 65067
-#define JclResources_RsIntelCacheDescr5D 65068
-#define JclResources_RsIntelCacheDescr60 65069
-#define JclResources_RsIntelCacheDescr66 65070
-#define JclResources_RsIntelCacheDescr67 65071
-#define JclResources_RsIntelCacheDescr05 65072
-#define JclResources_RsIntelCacheDescr06 65073
-#define JclResources_RsIntelCacheDescr08 65074
-#define JclResources_RsIntelCacheDescr0A 65075
-#define JclResources_RsIntelCacheDescr0B 65076
-#define JclResources_RsIntelCacheDescr0C 65077
-#define JclResources_RsIntelCacheDescr22 65078
-#define JclResources_RsIntelCacheDescr23 65079
-#define JclResources_RsIntelCacheDescr25 65080
-#define JclResources_RsIntelCacheDescr29 65081
-#define JclResources_RsIntelCacheDescr2C 65082
-#define JclResources_RsIntelCacheDescr30 65083
-#define JclResources_RsIntelCacheDescr40 65084
-#define JclResources_RsIntelCacheDescr41 65085
-#define JclResources_RsIntelCacheDescr42 65086
-#define JclResources_RsIntelCacheDescr43 65087
-#define JclResources_RsRTTIFloatType 65088
-#define JclResources_RsRTTIMethodKind 65089
-#define JclResources_RsRTTIParamCount 65090
-#define JclResources_RsRTTIReturnType 65091
-#define JclResources_RsRTTIMaxLen 65092
-#define JclResources_RsRTTIElSize 65093
-#define JclResources_RsRTTIElType 65094
-#define JclResources_RsRTTIElNeedCleanup 65095
-#define JclResources_RsRTTIVarType 65096
-#define JclResources_RsDeclarationFormat 65097
-#define JclResources_RsSynchCreateEvent 65098
-#define JclResources_RsIntelCacheDescr00 65099
-#define JclResources_RsIntelCacheDescr01 65100
-#define JclResources_RsIntelCacheDescr02 65101
-#define JclResources_RsIntelCacheDescr03 65102
-#define JclResources_RsIntelCacheDescr04 65103
-#define JclResources_RsRTTIIndex 65104
-#define JclResources_RsRTTIDefault 65105
-#define JclResources_RsRTTIName 65106
-#define JclResources_RsRTTIType 65107
-#define JclResources_RsRTTIFlags 65108
-#define JclResources_RsRTTIGUID 65109
-#define JclResources_RsRTTITypeKind 65110
-#define JclResources_RsRTTIOrdinalType 65111
-#define JclResources_RsRTTIMinValue 65112
-#define JclResources_RsRTTIMaxValue 65113
-#define JclResources_RsRTTINameList 65114
-#define JclResources_RsRTTIClassName 65115
-#define JclResources_RsRTTIParent 65116
-#define JclResources_RsRTTIPropCount 65117
-#define JclResources_RsRTTIUnitName 65118
-#define JclResources_RsRTTIBasedOn 65119
-#define JclResources_RsRTTIUnknownIdentifier 65120
-#define JclResources_RsRTTIVar 65121
-#define JclResources_RsRTTIConst 65122
-#define JclResources_RsRTTIArrayOf 65123
-#define JclResources_RsRTTIOut 65124
-#define JclResources_RsRTTIOrdinal 65125
-#define JclResources_RsRTTITrue 65126
-#define JclResources_RsRTTIFalse 65127
-#define JclResources_RsRTTITypeError 65128
-#define JclResources_RsRTTITypeInfoAt 65129
-#define JclResources_RsRTTIPropRead 65130
-#define JclResources_RsRTTIPropWrite 65131
-#define JclResources_RsRTTIPropStored 65132
-#define JclResources_RsRTTIField 65133
-#define JclResources_RsRTTIStaticMethod 65134
-#define JclResources_RsRTTIVirtualMethod 65135
-#define JclResources_RsInconsistentPath 65136
-#define JclResources_RsHKCRLong 65137
-#define JclResources_RsHKCULong 65138
-#define JclResources_RsHKLMLong 65139
-#define JclResources_RsHKUSLong 65140
-#define JclResources_RsHKPDLong 65141
-#define JclResources_RsHKCCLong 65142
-#define JclResources_RsHKDDLong 65143
-#define JclResources_RsHKCRShort 65144
-#define JclResources_RsHKCUShort 65145
-#define JclResources_RsHKLMShort 65146
-#define JclResources_RsHKUSShort 65147
-#define JclResources_RsHKPDShort 65148
-#define JclResources_RsHKCCShort 65149
-#define JclResources_RsHKDDShort 65150
-#define JclResources_RsRTTIValueOutOfRange 65151
-#define JvResources_RsMenuBar 65152
-#define JvResources_RsMenuHighlight 65153
-#define ComConst_SOleError 65154
-#define ComConst_SNoMethod 65155
-#define ComConst_SVarNotObject 65156
-#define ComConst_STooManyParams 65157
-#define JclResources_RsWin32Prefix 65158
-#define JclResources_RsFileUtilsNoVersionInfo 65159
-#define JclResources_RsCreateFileMapping 65160
-#define JclResources_RsCreateFileMappingView 65161
-#define JclResources_RsViewNeedsMapping 65162
-#define JclResources_RsFailedToObtainSize 65163
-#define JclResources_RsUnableToOpenKeyRead 65164
-#define JclResources_RsUnableToOpenKeyWrite 65165
-#define JclResources_RsUnableToAccessValue 65166
-#define JclResources_RsWrongDataType 65167
-#define JvResources_RsClAppWorkSpace 65168
-#define JvResources_RsClHighlight 65169
-#define JvResources_RsClHighlightText 65170
-#define JvResources_RsClBtnFace 65171
-#define JvResources_RsClBtnShadow 65172
-#define JvResources_RsClGrayText 65173
-#define JvResources_RsClBtnText 65174
-#define JvResources_RsClInactiveCaptionText 65175
-#define JvResources_RsClBtnHighlight 65176
-#define JvResources_RsCl3DDkShadow 65177
-#define JvResources_RsCl3DLight 65178
-#define JvResources_RsClInfoText 65179
-#define JvResources_RsClInfoBk 65180
-#define JvResources_RsGradientActiveCaption 65181
-#define JvResources_RsGradientInactiveCaption 65182
-#define JvResources_RsHotLight 65183
-#define JvResources_RsClLightGreen 65184
-#define JvResources_RsClLightTurquoise 65185
-#define JvResources_RsClPaleBlue 65186
-#define JvResources_RsClLavender 65187
-#define JvResources_RsClScrollBar 65188
-#define JvResources_RsClBackground 65189
-#define JvResources_RsClActiveCaption 65190
-#define JvResources_RsClInactiveCaption 65191
-#define JvResources_RsClMenu 65192
-#define JvResources_RsClWindow 65193
-#define JvResources_RsClWindowFrame 65194
-#define JvResources_RsClMenuText 65195
-#define JvResources_RsClWindowText 65196
-#define JvResources_RsClCaptionText 65197
-#define JvResources_RsClActiveBorder 65198
-#define JvResources_RsClInactiveBorder 65199
-#define JvResources_RsClBlueGray 65200
-#define JvResources_RsClGray50 65201
-#define JvResources_RsClLightOrange 65202
-#define JvResources_RsClSeaGreen 65203
-#define JvResources_RsClLightBlue 65204
-#define JvResources_RsClViolet 65205
-#define JvResources_RsClGray40 65206
-#define JvResources_RsClPink 65207
-#define JvResources_RsClGold 65208
-#define JvResources_RsClBrightGreen 65209
-#define JvResources_RsClTurquoise 65210
-#define JvResources_RsClPlum 65211
-#define JvResources_RsClGray25 65212
-#define JvResources_RsClRose 65213
-#define JvResources_RsClTan 65214
-#define JvResources_RsClLightYellow 65215
-#define JvResources_RsClAqua 65216
-#define JvResources_RsClWhite 65217
-#define JvResources_RsClMoneyGreen 65218
-#define JvResources_RsClSkyBlue 65219
-#define JvResources_RsClCream 65220
-#define JvResources_RsClMedGray 65221
-#define JvResources_RsClBrown 65222
-#define JvResources_RsClOliveGreen 65223
-#define JvResources_RsClDarkGreen 65224
-#define JvResources_RsClDarkTeal 65225
-#define JvResources_RsClDarkBlue 65226
-#define JvResources_RsClIndigo 65227
-#define JvResources_RsClGray80 65228
-#define JvResources_RsClDarkRed 65229
-#define JvResources_RsClOrange 65230
-#define JvResources_RsClDarkYellow 65231
-#define JvResources_RsEPixelFormatNotImplemented 65232
-#define JvResources_RsEBitCountNotImplemented 65233
-#define JvResources_RsClBlack 65234
-#define JvResources_RsClMaroon 65235
-#define JvResources_RsClGreen 65236
-#define JvResources_RsClOlive 65237
-#define JvResources_RsClNavy 65238
-#define JvResources_RsClPurple 65239
-#define JvResources_RsClTeal 65240
-#define JvResources_RsClGray 65241
-#define JvResources_RsClSilver 65242
-#define JvResources_RsClRed 65243
-#define JvResources_RsClLime 65244
-#define JvResources_RsClYellow 65245
-#define JvResources_RsClBlue 65246
-#define JvResources_RsClFuchsia 65247
-#define JvResources_RsEUnableToCreateKey 65248
-#define JvResources_RsEEnumeratingRegistry 65249
-#define JvResources_RsEInvalidType 65250
-#define JvResources_RsEUnknownBaseType 65251
-#define JvResources_RsEInvalidPath 65252
-#define JvResources_RsENotAUniqueRootPath 65253
-#define JvResources_RsECircularReferenceOfStorages 65254
-#define JvResources_RsGIFImage 65255
-#define JvResources_RsEChangeGIFSize 65256
-#define JvResources_RsENoGIFData 65257
-#define JvResources_RsEUnrecognizedGIFExt 65258
-#define JvResources_RsEWrongGIFColors 65259
-#define JvResources_RsEBadGIFCodeSize 65260
-#define JvResources_RsEGIFDecodeError 65261
-#define JvResources_RsEGIFEncodeError 65262
-#define JvResources_RsEGIFVersion 65263
+#define JvResources_RsClWindow 64768
+#define JvResources_RsClWindowFrame 64769
+#define JvResources_RsClMenuText 64770
+#define JvResources_RsClWindowText 64771
+#define JvResources_RsClCaptionText 64772
+#define JvResources_RsClActiveBorder 64773
+#define JvResources_RsClInactiveBorder 64774
+#define JvResources_RsClAppWorkSpace 64775
+#define JvResources_RsClHighlight 64776
+#define JvResources_RsClHighlightText 64777
+#define JvResources_RsClBtnFace 64778
+#define JvResources_RsClBtnShadow 64779
+#define JvResources_RsClGrayText 64780
+#define JvResources_RsClBtnText 64781
+#define JvResources_RsClInactiveCaptionText 64782
+#define JvResources_RsClBtnHighlight 64783
+#define JvResources_RsClBrightGreen 64784
+#define JvResources_RsClTurquoise 64785
+#define JvResources_RsClPlum 64786
+#define JvResources_RsClGray25 64787
+#define JvResources_RsClRose 64788
+#define JvResources_RsClTan 64789
+#define JvResources_RsClLightYellow 64790
+#define JvResources_RsClLightGreen 64791
+#define JvResources_RsClLightTurquoise 64792
+#define JvResources_RsClPaleBlue 64793
+#define JvResources_RsClLavender 64794
+#define JvResources_RsClScrollBar 64795
+#define JvResources_RsClBackground 64796
+#define JvResources_RsClActiveCaption 64797
+#define JvResources_RsClInactiveCaption 64798
+#define JvResources_RsClMenu 64799
+#define JvResources_RsClDarkTeal 64800
+#define JvResources_RsClDarkBlue 64801
+#define JvResources_RsClIndigo 64802
+#define JvResources_RsClGray80 64803
+#define JvResources_RsClDarkRed 64804
+#define JvResources_RsClOrange 64805
+#define JvResources_RsClDarkYellow 64806
+#define JvResources_RsClBlueGray 64807
+#define JvResources_RsClGray50 64808
+#define JvResources_RsClLightOrange 64809
+#define JvResources_RsClSeaGreen 64810
+#define JvResources_RsClLightBlue 64811
+#define JvResources_RsClViolet 64812
+#define JvResources_RsClGray40 64813
+#define JvResources_RsClPink 64814
+#define JvResources_RsClGold 64815
+#define JvResources_RsClGray 64816
+#define JvResources_RsClSilver 64817
+#define JvResources_RsClRed 64818
+#define JvResources_RsClLime 64819
+#define JvResources_RsClYellow 64820
+#define JvResources_RsClBlue 64821
+#define JvResources_RsClFuchsia 64822
+#define JvResources_RsClAqua 64823
+#define JvResources_RsClWhite 64824
+#define JvResources_RsClMoneyGreen 64825
+#define JvResources_RsClSkyBlue 64826
+#define JvResources_RsClCream 64827
+#define JvResources_RsClMedGray 64828
+#define JvResources_RsClBrown 64829
+#define JvResources_RsClOliveGreen 64830
+#define JvResources_RsClDarkGreen 64831
+#define JvResources_RsENoGIFData 64832
+#define JvResources_RsEUnrecognizedGIFExt 64833
+#define JvResources_RsEWrongGIFColors 64834
+#define JvResources_RsEBadGIFCodeSize 64835
+#define JvResources_RsEGIFDecodeError 64836
+#define JvResources_RsEGIFEncodeError 64837
+#define JvResources_RsEGIFVersion 64838
+#define JvResources_RsEPixelFormatNotImplemented 64839
+#define JvResources_RsEBitCountNotImplemented 64840
+#define JvResources_RsClBlack 64841
+#define JvResources_RsClMaroon 64842
+#define JvResources_RsClGreen 64843
+#define JvResources_RsClOlive 64844
+#define JvResources_RsClNavy 64845
+#define JvResources_RsClPurple 64846
+#define JvResources_RsClTeal 64847
+#define JclResources_RsIntelCacheDescrB3 64848
+#define JclResources_RsIntelCacheDescrB4 64849
+#define JclResources_RsIntelCacheDescrF0 64850
+#define JclResources_RsIntelCacheDescrF1 64851
+#define JvResources_RsAniExtension 64852
+#define JvResources_RsAniFilterName 64853
+#define JvResources_RsRootValueReplaceFmt 64854
+#define JvResources_RsEUnableToCreateKey 64855
+#define JvResources_RsEEnumeratingRegistry 64856
+#define JvResources_RsEInvalidType 64857
+#define JvResources_RsEUnknownBaseType 64858
+#define JvResources_RsEInvalidPath 64859
+#define JvResources_RsENotAUniqueRootPath 64860
+#define JvResources_RsECircularReferenceOfStorages 64861
+#define JvResources_RsGIFImage 64862
+#define JvResources_RsEChangeGIFSize 64863
+#define JclResources_RsIntelCacheDescr71 64864
+#define JclResources_RsIntelCacheDescr72 64865
+#define JclResources_RsIntelCacheDescr78 64866
+#define JclResources_RsIntelCacheDescr79 64867
+#define JclResources_RsIntelCacheDescr7A 64868
+#define JclResources_RsIntelCacheDescr7B 64869
+#define JclResources_RsIntelCacheDescr7C 64870
+#define JclResources_RsIntelCacheDescr7D 64871
+#define JclResources_RsIntelCacheDescr7F 64872
+#define JclResources_RsIntelCacheDescr82 64873
+#define JclResources_RsIntelCacheDescr83 64874
+#define JclResources_RsIntelCacheDescr84 64875
+#define JclResources_RsIntelCacheDescr85 64876
+#define JclResources_RsIntelCacheDescr86 64877
+#define JclResources_RsIntelCacheDescr87 64878
+#define JclResources_RsIntelCacheDescrB0 64879
+#define JclResources_RsIntelCacheDescr46 64880
+#define JclResources_RsIntelCacheDescr47 64881
+#define JclResources_RsIntelCacheDescr49 64882
+#define JclResources_RsIntelCacheDescr50 64883
+#define JclResources_RsIntelCacheDescr51 64884
+#define JclResources_RsIntelCacheDescr52 64885
+#define JclResources_RsIntelCacheDescr56 64886
+#define JclResources_RsIntelCacheDescr57 64887
+#define JclResources_RsIntelCacheDescr5B 64888
+#define JclResources_RsIntelCacheDescr5C 64889
+#define JclResources_RsIntelCacheDescr5D 64890
+#define JclResources_RsIntelCacheDescr60 64891
+#define JclResources_RsIntelCacheDescr66 64892
+#define JclResources_RsIntelCacheDescr67 64893
+#define JclResources_RsIntelCacheDescr68 64894
+#define JclResources_RsIntelCacheDescr70 64895
+#define JclResources_RsIntelCacheDescr08 64896
+#define JclResources_RsIntelCacheDescr0A 64897
+#define JclResources_RsIntelCacheDescr0B 64898
+#define JclResources_RsIntelCacheDescr0C 64899
+#define JclResources_RsIntelCacheDescr22 64900
+#define JclResources_RsIntelCacheDescr23 64901
+#define JclResources_RsIntelCacheDescr25 64902
+#define JclResources_RsIntelCacheDescr29 64903
+#define JclResources_RsIntelCacheDescr2C 64904
+#define JclResources_RsIntelCacheDescr30 64905
+#define JclResources_RsIntelCacheDescr40 64906
+#define JclResources_RsIntelCacheDescr41 64907
+#define JclResources_RsIntelCacheDescr42 64908
+#define JclResources_RsIntelCacheDescr43 64909
+#define JclResources_RsIntelCacheDescr44 64910
+#define JclResources_RsIntelCacheDescr45 64911
+#define JclResources_RsRTTIParamCount 64912
+#define JclResources_RsRTTIReturnType 64913
+#define JclResources_RsRTTIMaxLen 64914
+#define JclResources_RsRTTIElSize 64915
+#define JclResources_RsRTTIElType 64916
+#define JclResources_RsRTTIElNeedCleanup 64917
+#define JclResources_RsRTTIVarType 64918
+#define JclResources_RsDeclarationFormat 64919
+#define JclResources_RsSynchCreateEvent 64920
+#define JclResources_RsIntelCacheDescr00 64921
+#define JclResources_RsIntelCacheDescr01 64922
+#define JclResources_RsIntelCacheDescr02 64923
+#define JclResources_RsIntelCacheDescr03 64924
+#define JclResources_RsIntelCacheDescr04 64925
+#define JclResources_RsIntelCacheDescr05 64926
+#define JclResources_RsIntelCacheDescr06 64927
+#define JclResources_RsRTTIName 64928
+#define JclResources_RsRTTIType 64929
+#define JclResources_RsRTTIFlags 64930
+#define JclResources_RsRTTIGUID 64931
+#define JclResources_RsRTTITypeKind 64932
+#define JclResources_RsRTTIOrdinalType 64933
+#define JclResources_RsRTTIMinValue 64934
+#define JclResources_RsRTTIMaxValue 64935
+#define JclResources_RsRTTINameList 64936
+#define JclResources_RsRTTIClassName 64937
+#define JclResources_RsRTTIParent 64938
+#define JclResources_RsRTTIPropCount 64939
+#define JclResources_RsRTTIUnitName 64940
+#define JclResources_RsRTTIBasedOn 64941
+#define JclResources_RsRTTIFloatType 64942
+#define JclResources_RsRTTIMethodKind 64943
+#define JclResources_RsRTTIConst 64944
+#define JclResources_RsRTTIArrayOf 64945
+#define JclResources_RsRTTIOut 64946
+#define JclResources_RsRTTIOrdinal 64947
+#define JclResources_RsRTTITrue 64948
+#define JclResources_RsRTTIFalse 64949
+#define JclResources_RsRTTITypeError 64950
+#define JclResources_RsRTTITypeInfoAt 64951
+#define JclResources_RsRTTIPropRead 64952
+#define JclResources_RsRTTIPropWrite 64953
+#define JclResources_RsRTTIPropStored 64954
+#define JclResources_RsRTTIField 64955
+#define JclResources_RsRTTIStaticMethod 64956
+#define JclResources_RsRTTIVirtualMethod 64957
+#define JclResources_RsRTTIIndex 64958
+#define JclResources_RsRTTIDefault 64959
+#define JclResources_RsHKCULong 64960
+#define JclResources_RsHKLMLong 64961
+#define JclResources_RsHKUSLong 64962
+#define JclResources_RsHKPDLong 64963
+#define JclResources_RsHKCCLong 64964
+#define JclResources_RsHKDDLong 64965
+#define JclResources_RsHKCRShort 64966
+#define JclResources_RsHKCUShort 64967
+#define JclResources_RsHKLMShort 64968
+#define JclResources_RsHKUSShort 64969
+#define JclResources_RsHKPDShort 64970
+#define JclResources_RsHKCCShort 64971
+#define JclResources_RsHKDDShort 64972
+#define JclResources_RsRTTIValueOutOfRange 64973
+#define JclResources_RsRTTIUnknownIdentifier 64974
+#define JclResources_RsRTTIVar 64975
+#define ComStrs_sPageIndexError 64976
+#define JConsts_sChangeJPGSize 64977
+#define JConsts_sJPEGError 64978
+#define JConsts_sJPEGImageFile 64979
+#define JclResources_RsWin32Prefix 64980
+#define JclResources_RsFileUtilsNoVersionInfo 64981
+#define JclResources_RsCreateFileMapping 64982
+#define JclResources_RsCreateFileMappingView 64983
+#define JclResources_RsViewNeedsMapping 64984
+#define JclResources_RsFailedToObtainSize 64985
+#define JclResources_RsUnableToOpenKeyRead 64986
+#define JclResources_RsUnableToOpenKeyWrite 64987
+#define JclResources_RsUnableToAccessValue 64988
+#define JclResources_RsWrongDataType 64989
+#define JclResources_RsInconsistentPath 64990
+#define JclResources_RsHKCRLong 64991
+#define IdResourceStringsProtocols_RSHTTPUnknownResponseCode 64992
+#define IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten 64993
+#define IdResourceStringsProtocols_RSHTTPErrorParsingCommand 64994
+#define IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme 64995
+#define IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive 64996
+#define IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered 64997
+#define ComStrs_sTabFailClear 64998
+#define ComStrs_sTabFailDelete 64999
+#define ComStrs_sTabFailRetrieve 65000
+#define ComStrs_sTabFailGetObject 65001
+#define ComStrs_sTabFailSet 65002
+#define ComStrs_sTabFailSetObject 65003
+#define ComStrs_sTabMustBeMultiLine 65004
+#define ComStrs_sInvalidIndex 65005
+#define ComStrs_sInsertError 65006
+#define ComStrs_sUDAssociated 65007
+#define IdResourceStringsProtocols_RSHTTPNotAcceptable 65008
+#define IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired 65009
+#define IdResourceStringsProtocols_RSHTTPRequestTimeout 65010
+#define IdResourceStringsProtocols_RSHTTPConflict 65011
+#define IdResourceStringsProtocols_RSHTTPGone 65012
+#define IdResourceStringsProtocols_RSHTTPLengthRequired 65013
+#define IdResourceStringsProtocols_RSHTTPPreconditionFailed 65014
+#define IdResourceStringsProtocols_RSHTTPRequestEntityToLong 65015
+#define IdResourceStringsProtocols_RSHTTPRequestURITooLong 65016
+#define IdResourceStringsProtocols_RSHTTPUnsupportedMediaType 65017
+#define IdResourceStringsProtocols_RSHTTPInternalServerError 65018
+#define IdResourceStringsProtocols_RSHTTPNotImplemented 65019
+#define IdResourceStringsProtocols_RSHTTPBadGateway 65020
+#define IdResourceStringsProtocols_RSHTTPServiceUnavailable 65021
+#define IdResourceStringsProtocols_RSHTTPGatewayTimeout 65022
+#define IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported 65023
+#define IdResourceStringsProtocols_RSHTTPCreated 65024
+#define IdResourceStringsProtocols_RSHTTPAccepted 65025
+#define IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation 65026
+#define IdResourceStringsProtocols_RSHTTPNoContent 65027
+#define IdResourceStringsProtocols_RSHTTPResetContent 65028
+#define IdResourceStringsProtocols_RSHTTPPartialContent 65029
+#define IdResourceStringsProtocols_RSHTTPMovedPermanently 65030
+#define IdResourceStringsProtocols_RSHTTPMovedTemporarily 65031
+#define IdResourceStringsProtocols_RSHTTPSeeOther 65032
+#define IdResourceStringsProtocols_RSHTTPNotModified 65033
+#define IdResourceStringsProtocols_RSHTTPUseProxy 65034
+#define IdResourceStringsProtocols_RSHTTPBadRequest 65035
+#define IdResourceStringsProtocols_RSHTTPUnauthorized 65036
+#define IdResourceStringsProtocols_RSHTTPForbidden 65037
+#define IdResourceStringsProtocols_RSHTTPNotFound 65038
+#define IdResourceStringsProtocols_RSHTTPMethodNotAllowed 65039
+#define IdResourceStringsCore_RSAlreadyConnected 65040
+#define IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded 65041
+#define IdResourceStringsCore_RSchedMaxThreadEx 65042
+#define IdResourceStringsCore_RSTransparentProxyCannotBind 65043
+#define IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP 65044
+#define IdResourceStringsCore_RSBufferMissingTerminator 65045
+#define IdResourceStringsCore_RSBufferInvalidStartPos 65046
+#define IdResourceStringsCore_RSReplyInvalidCode 65047
+#define IdResourceStringsCore_RSThreadSchedulerThreadRequired 65048
+#define IdResourceStringsCore_RSNoOnExecute 65049
+#define IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive 65050
+#define IdResourceStringsProtocols_RSMIMEExtensionEmpty 65051
+#define IdResourceStringsProtocols_RSMIMEMIMETypeEmpty 65052
+#define IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists 65053
+#define IdResourceStringsProtocols_RSHTTPContinue 65054
+#define IdResourceStringsProtocols_RSHTTPOK 65055
+#define IdResourceStringsCore_RSSocksServerHostUnreachableError 65056
+#define IdResourceStringsCore_RSSocksServerConnectionRefusedError 65057
+#define IdResourceStringsCore_RSSocksServerTTLExpiredError 65058
+#define IdResourceStringsCore_RSSocksServerCommandError 65059
+#define IdResourceStringsCore_RSSocksServerAddressError 65060
+#define IdResourceStringsCore_RSInterceptCircularLink 65061
+#define IdResourceStringsCore_RSNotEnoughDataInBuffer 65062
+#define IdResourceStringsCore_RSTooMuchDataInBuffer 65063
+#define IdResourceStringsCore_RSFileNotFound 65064
+#define IdResourceStringsCore_RSNotConnected 65065
+#define IdResourceStringsCore_RSObjectTypeNotSupported 65066
+#define IdResourceStringsCore_RSIdNoDataToRead 65067
+#define IdResourceStringsCore_RSReadTimeout 65068
+#define IdResourceStringsCore_RSReadLnMaxLineLengthExceeded 65069
+#define IdResourceStringsCore_RSConnectTimeout 65070
+#define IdResourceStringsCore_RSThreadTerminateAndWaitFor 65071
+#define IdResourceStrings_RSInvalidIPv6Address 65072
+#define IdResourceStrings_RSIPVersionUnsupported 65073
+#define IdResourceStrings_RSNotAllBytesSent 65074
+#define IdResourceStrings_RSPackageSizeTooBig 65075
+#define IdResourceStrings_RSSetSizeExceeded 65076
+#define IdResourceStringsCore_RSSocksUDPNotSupported 65077
+#define IdResourceStringsCore_RSSocksRequestFailed 65078
+#define IdResourceStringsCore_RSSocksRequestServerFailed 65079
+#define IdResourceStringsCore_RSSocksRequestIdentFailed 65080
+#define IdResourceStringsCore_RSSocksUnknownError 65081
+#define IdResourceStringsCore_RSSocksServerRespondError 65082
+#define IdResourceStringsCore_RSSocksAuthMethodError 65083
+#define IdResourceStringsCore_RSSocksAuthError 65084
+#define IdResourceStringsCore_RSSocksServerGeneralError 65085
+#define IdResourceStringsCore_RSSocksServerPermissionError 65086
+#define IdResourceStringsCore_RSSocksServerNetUnreachableError 65087
+#define IdResourceStrings_RSStackELOOP 65088
+#define IdResourceStrings_RSStackENAMETOOLONG 65089
+#define IdResourceStrings_RSStackEHOSTDOWN 65090
+#define IdResourceStrings_RSStackEHOSTUNREACH 65091
+#define IdResourceStrings_RSStackENOTEMPTY 65092
+#define IdResourceStrings_RSStackHOST_NOT_FOUND 65093
+#define IdResourceStrings_RSStackClassUndefined 65094
+#define IdResourceStrings_RSStackAlreadyCreated 65095
+#define IdResourceStrings_RSAntiFreezeOnlyOne 65096
+#define IdResourceStrings_RSCannotSetIPVersionWhenConnected 65097
+#define IdResourceStrings_RSCannotBindRange 65098
+#define IdResourceStrings_RSConnectionClosedGracefully 65099
+#define IdResourceStrings_RSCouldNotBindSocket 65100
+#define IdResourceStrings_RSInvalidPortRange 65101
+#define IdResourceStrings_RSInvalidServiceName 65102
+#define IdResourceStrings_RSIPv6Unavailable 65103
+#define IdResourceStrings_RSStackEPFNOSUPPORT 65104
+#define IdResourceStrings_RSStackEAFNOSUPPORT 65105
+#define IdResourceStrings_RSStackEADDRINUSE 65106
+#define IdResourceStrings_RSStackEADDRNOTAVAIL 65107
+#define IdResourceStrings_RSStackENETDOWN 65108
+#define IdResourceStrings_RSStackENETUNREACH 65109
+#define IdResourceStrings_RSStackENETRESET 65110
+#define IdResourceStrings_RSStackECONNABORTED 65111
+#define IdResourceStrings_RSStackECONNRESET 65112
+#define IdResourceStrings_RSStackENOBUFS 65113
+#define IdResourceStrings_RSStackEISCONN 65114
+#define IdResourceStrings_RSStackENOTCONN 65115
+#define IdResourceStrings_RSStackESHUTDOWN 65116
+#define IdResourceStrings_RSStackETOOMANYREFS 65117
+#define IdResourceStrings_RSStackETIMEDOUT 65118
+#define IdResourceStrings_RSStackECONNREFUSED 65119
+#define IdResourceStrings_RSStackEBADF 65120
+#define IdResourceStrings_RSStackEACCES 65121
+#define IdResourceStrings_RSStackEFAULT 65122
+#define IdResourceStrings_RSStackEINVAL 65123
+#define IdResourceStrings_RSStackEMFILE 65124
+#define IdResourceStrings_RSStackEWOULDBLOCK 65125
+#define IdResourceStrings_RSStackEINPROGRESS 65126
+#define IdResourceStrings_RSStackEALREADY 65127
+#define IdResourceStrings_RSStackENOTSOCK 65128
+#define IdResourceStrings_RSStackEDESTADDRREQ 65129
+#define IdResourceStrings_RSStackEMSGSIZE 65130
+#define IdResourceStrings_RSStackEPROTOTYPE 65131
+#define IdResourceStrings_RSStackENOPROTOOPT 65132
+#define IdResourceStrings_RSStackEPROTONOSUPPORT 65133
+#define IdResourceStrings_RSStackESOCKTNOSUPPORT 65134
+#define IdResourceStrings_RSStackEOPNOTSUPP 65135
+#define DBConsts_SInvalidBcdValue 65136
+#define DBConsts_SInvalidFormatType 65137
+#define DBConsts_SCouldNotParseTimeStamp 65138
+#define DBConsts_SInvalidSqlTimeStamp 65139
+#define IdResourceStrings_RSFailedTimeZoneInfo 65140
+#define IdResourceStrings_RSWinsockCallError 65141
+#define IdResourceStrings_RSWinsockLoadError 65142
+#define IdResourceStrings_RSWinsockInitializationError 65143
+#define IdResourceStrings_RSStatusResolving 65144
+#define IdResourceStrings_RSStatusConnecting 65145
+#define IdResourceStrings_RSStatusConnected 65146
+#define IdResourceStrings_RSStatusDisconnecting 65147
+#define IdResourceStrings_RSStatusDisconnected 65148
+#define IdResourceStrings_RSStatusText 65149
+#define IdResourceStrings_RSStackError 65150
+#define IdResourceStrings_RSStackEINTR 65151
+#define DBConsts_SNotEditing 65152
+#define DBConsts_SDataSetClosed 65153
+#define DBConsts_SDataSetEmpty 65154
+#define DBConsts_SDataSetReadOnly 65155
+#define DBConsts_SNestedDataSetClass 65156
+#define DBConsts_STextFalse 65157
+#define DBConsts_STextTrue 65158
+#define DBConsts_SParameterNotFound 65159
+#define DBConsts_SInvalidVersion 65160
+#define DBConsts_SBadFieldType 65161
+#define DBConsts_SProviderSQLNotSupported 65162
+#define DBConsts_SProviderExecuteNotSupported 65163
+#define DBConsts_SDataSetUnidirectional 65164
+#define DBConsts_SUnassignedVar 65165
+#define DBConsts_SRecordNotFound 65166
+#define DBConsts_SBcdOverflow 65167
+#define DBConsts_SInvalidBoolValue 65168
+#define DBConsts_SInvalidFloatValue 65169
+#define DBConsts_SFieldTypeMismatch 65170
+#define DBConsts_SFieldSizeMismatch 65171
+#define DBConsts_SInvalidVarByteArray 65172
+#define DBConsts_SFieldOutOfRange 65173
+#define DBConsts_SFieldRequired 65174
+#define DBConsts_SDataSetMissing 65175
+#define DBConsts_SInvalidCalcType 65176
+#define DBConsts_SFieldReadOnly 65177
+#define DBConsts_SNoIndexForFields 65178
+#define DBConsts_SIndexNotFound 65179
+#define DBConsts_SCircularDataLink 65180
+#define DBConsts_SLookupInfoError 65181
+#define DBConsts_SDataSourceChange 65182
+#define DBConsts_SDataSetOpen 65183
+#define uRODECConst_sFMT_MIME64 65184
+#define uRODECConst_sFMT_UU 65185
+#define uRODECConst_sFMT_XX 65186
+#define uRODECConst_sInvalidKeySize 65187
+#define uRODECConst_sNotInitialized 65188
+#define DBConsts_SInvalidFieldSize 65189
+#define DBConsts_SInvalidFieldKind 65190
+#define DBConsts_SUnknownFieldType 65191
+#define DBConsts_SFieldNameMissing 65192
+#define DBConsts_SDuplicateFieldName 65193
+#define DBConsts_SFieldNotFound 65194
+#define DBConsts_SFieldAccessError 65195
+#define DBConsts_SFieldValueError 65196
+#define DBConsts_SFieldRangeError 65197
+#define DBConsts_SBcdFieldRangeError 65198
+#define DBConsts_SInvalidIntegerValue 65199
+#define uRORes_err_CannotLoadXMLDocument 65200
+#define uRORes_err_ErrorCreatingMsXmlDoc 65201
+#define uRORes_err_NoXMLParsersAvailable 65202
+#define uRORes_err_IDispatchMarshalingNotSupported 65203
+#define uRORes_err_UnsupportedVariantType 65204
+#define uRORes_err_VariantIsNotArray 65205
+#define uRORes_err_InvalidVarArrayDimCount 65206
+#define uRORes_err_CannotFindParameter 65207
+#define uRORes_err_MessageNotAssigned 65208
+#define uRODECConst_sProtectionCircular 65209
+#define uRODECConst_sStringFormatExists 65210
+#define uRODECConst_sInvalidStringFormat 65211
+#define uRODECConst_sInvalidFormatString 65212
+#define uRODECConst_sFMT_COPY 65213
+#define uRODECConst_sFMT_HEX 65214
+#define uRODECConst_sFMT_HEXL 65215
+#define uRORes_err_UnknownClass 65216
+#define uRORes_err_UnknownProxyInterface 65217
+#define uRORes_err_DispatcherAlreadyAssigned 65218
+#define uRORes_err_CannotFindMessageDispatcher 65219
+#define uRORes_err_ServerOnlySupportsOneDispatcher 65220
+#define uRORes_err_UnhandledException 65221
+#define uRORes_err_ChannelBusy 65222
+#define uRORes_err_ArrayIndexOutOfBounds 65223
+#define uRORes_err_InvalidHeader 65224
+#define uRORes_err_InvalidHeaderEncrypted 65225
+#define uRORes_err_UnknownClassInStream 65226
+#define uRORes_err_UnexpectedClassInStream 65227
+#define uRORes_err_SessionNotFound 65228
+#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65229
+#define uRORes_err_TooManySessions 65230
+#define uRORes_err_DOMElementIsNIL 65231
+#define uRORes_err_RodlInvalidDataType 65232
+#define uRORes_err_RodlStructCannotBeNested 65233
+#define uRORes_err_RodlInvalidAncestorType 65234
+#define uRORes_str_ExceptionOnServer 65235
+#define uRORes_str_ExceptionReraisedFromServer 65236
+#define uRORes_err_AssignError 65237
+#define uRORes_err_InvalidRequestStream 65238
+#define uRORes_err_NILMessage 65239
+#define uRORes_err_UnspecifiedInterface 65240
+#define uRORes_err_UnspecifiedMessage 65241
+#define uRORes_err_UnknownMethod 65242
+#define uRORes_err_ClassFactoryDidNotReturnInstance 65243
+#define uRORes_err_TypeNotSupported 65244
+#define uRORes_err_ClassFactoryNotFound 65245
+#define uRORes_err_IROMessageNotSupported 65246
+#define uRORes_err_ClassAlreadyRegistered 65247
+#define ComConst_STooManyParams 65248
+#define uRORes_err_InvalidIndex 65249
+#define uRORes_err_InvalidType 65250
+#define uRORes_err_InvalidLibrary 65251
+#define uRORes_err_InvalidStream 65252
+#define uRORes_err_InvalidTargetEntity 65253
+#define uRORes_err_InvalidParamFlag 65254
+#define uRORes_err_InvalidStringLength 65255
+#define uRORes_str_InvalidClassTypeInStream 65256
+#define uRORes_err_UnexpectedEndOfStream 65257
+#define uRORes_err_RodlDuplicateName 65258
+#define uRORes_err_RodlNoDataTypeSpecified 65259
+#define uRORes_err_RodlNoEnumValues 65260
+#define uRORes_err_RodlNoStructElementsDefined 65261
+#define uRORes_err_RodlNoOperationsDefined 65262
+#define uRORes_err_RodlUsedFileDoesNotExist 65263
#define Consts_SSeparator 65264
#define Consts_SErrorSettingCount 65265
#define Consts_SListBoxMustBeVirtual 65266
@@ -790,9 +786,9 @@
#define Consts_STrayIconCreateError 65274
#define Consts_SPageControlNotSet 65275
#define Consts_SWindowsVistaRequired 65276
-#define JvResources_RsAniExtension 65277
-#define JvResources_RsAniFilterName 65278
-#define JvResources_RsRootValueReplaceFmt 65279
+#define ComConst_SOleError 65277
+#define ComConst_SNoMethod 65278
+#define ComConst_SVarNotObject 65279
#define Consts_srNone 65280
#define Consts_SOutOfRange 65281
#define Consts_SInsertLineError 65282
@@ -1051,23 +1047,6 @@
#define SysConst_SAccessDenied 65535
STRINGTABLE
BEGIN
- pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header."
- pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: "
- pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette."
- pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again."
- pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)"
- pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length."
- pnglang_EPNGUnknownPalEntryText, "There is no such palette entry."
- pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded."
- pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded."
- pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded."
- pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned."
- pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file."
- pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data."
- pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap."
- pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed."
- pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid."
- pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again."
cxEditConsts_scxRegExprTooBigReferenceNumber, "Too big reference number"
cxEditConsts_scxRegExprCantCreateEmptyEnum, "Can't create empty enumeration"
cxEditConsts_scxRegExprSubrangeOrder, "The starting character of the subrange must be less than the finishing one"
@@ -1081,9 +1060,6 @@ BEGIN
cxEditConsts_scxRegExprCantUseParameterQuantifier, "The parameter quantifier cannot be applied here"
cxEditConsts_scxMaskEditRegExprError, "Regular expression errors:"
cxEditConsts_scxMaskEditInvalidEditValue, "The edit value is invalid"
- pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)"
- pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted"
- pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts."
cxEditConsts_cxSDateEOM, "eom"
cxEditConsts_cxSDateNow, "now"
cxEditConsts_scxSEditRepositoryButtonItem, "ButtonEdit|Represents an edit control with embedded buttons"
@@ -1116,14 +1092,14 @@ BEGIN
cxEditConsts_cxSDateSixth, "sixth"
cxEditConsts_cxSDateSeventh, "seventh"
cxEditConsts_cxSDateBOM, "bom"
- IBXConst_SEventAlreadyRegistered, "Events already registered"
- IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d"
- IBXConst_SNoTimers, "Not enough timers available"
- IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality"
- IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file."
- IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality"
- IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality"
- IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality"
+ pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned."
+ pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file."
+ pnglang_EPNGNoImageDataText, "This \"Portable Network Graphics\" image contains no data."
+ pnglang_EPNGCannotChangeSizeText, "The \"Portable Network Graphics\" image can not be resize by changing width and height properties. Try assigning the image from a bitmap."
+ pnglang_EPNGCannotAddChunkText, "The program tried to add a existent critical chunk to the current image which is not allowed."
+ pnglang_EPNGCannotAddInvalidImageText, "It's not allowed to add a new chunk because the current image is invalid."
+ pnglang_EPNGOutMemoryText, "Some operation could not be performed because the system is out of resources. Close some windows and try again."
+ pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header."
cxDataConsts_cxSDataReadError, "Stream read error"
cxDataConsts_cxSDataWriteError, "Stream write error"
cxEditConsts_cxSEditInvalidRepositoryItem, "The repository item is not acceptable"
@@ -1132,139 +1108,39 @@ BEGIN
cxEditConsts_cxSEditValueOutOfBounds, "Value out of bounds"
cxEditConsts_cxSDateToday, "today"
cxEditConsts_cxSDateYesterday, "yesterday"
- IBXConst_SParamNameExpected, "Parameter name expected"
- IBXConst_SSuccess, "Successful execution"
- IBXConst_SDelphiException, "DelphiException %s"
- IBXConst_SNoOptionsSet, "No Install Options selected"
- IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set"
- IBXConst_SNosourceDirectory, "SourceDirectory is not set"
- IBXConst_SNoUninstallFile, "Uninstall File Name is not set"
- IBXConst_SOptionNeedsClient, "%s component requires Client to function properly"
- IBXConst_SOptionNeedsServer, "%s component requires Server to function properly"
- IBXConst_SInvalidOption, "Invalid option specified"
- IBXConst_SInvalidOnErrorResult, "Unexpected onError return value"
- IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value"
- IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown"
- IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown"
- IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan"
- IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data"
- IBXConst_SInvalidBatchMove, "Invalid Batch Move"
- IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid"
- IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported"
- IBXConst_SSPBConstantUnknown, "SPB Constant Unknown"
- IBXConst_SServiceActive, "Cannot perform operation -- service is not attached"
- IBXConst_SServiceInActive, "Cannot perform operation -- service is attached"
- IBXConst_SServerNameMissing, "Server Name Missing"
- IBXConst_SQueryParamsError, "Query Parameters missing or incorrect"
- IBXConst_SStartParamsError, "start Parameters missing or incorrect"
- IBXConst_SOutputParsingError, "Unexpected Output buffer value"
- IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params"
- IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present"
- IBXConst_SCantPrintValue, "Cannot print value"
- IBXConst_SEOFReached, "SEOFReached"
- IBXConst_SEOFInComment, "EOF in comment detected"
- IBXConst_SEOFInString, "EOF in string detected"
- IBXConst_SUpdateFailed, "Update Failed"
- IBXConst_SNotCachedUpdates, "CachedUpdates not enabled"
- IBXConst_SNotLiveRequest, "Request is not live - cannot modify"
- IBXConst_SNoProvider, "No Provider"
- IBXConst_SNoRecordsAffected, "No Records Affected"
- IBXConst_SNoTableName, "No Table Name assigned"
- IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically"
- IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index"
- IBXConst_STableNameMismatch, "Table Name Mismatch"
- IBXConst_SIndexFieldMissing, "Index Field Missing"
- IBXConst_SInvalidCancellation, "Cannot Cancel events while processing"
- IBXConst_SInvalidEvent, "Invalid Event"
- IBXConst_SMaximumEvents, "Exceded Maximum Event limits"
- IBXConst_SNoEventsRegistered, "No Events Registered"
- IBXConst_SInvalidQueueing, "Invalid Queueing"
- IBXConst_SInvalidRegistration, "Invalid Registration"
- IBXConst_SCircularReference, "Circular references not permitted"
- IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s"
- IBXConst_SUserAbort, "User abort"
- IBXConst_SDataSetUniDirectional, "Data set is uni-directional"
- IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)"
- IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])"
- IBXConst_SColumnListsDontMatch, "Column lists do not match"
- IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)"
- IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction"
- IBXConst_SFieldUnsupportedType, "Unsupported Field Type"
- IBXConst_SCircularDataLink, "Circular DataLink Reference"
- IBXConst_SEmptySQLStatement, "Empty SQL Statement"
- IBXConst_SIsASelectStatement, "use Open for a Select Statement"
- IBXConst_SRequiredParamNotSet, "Required Param value not set"
- IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned"
- IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures"
- IBXConst_SInvalidDataConversion, "Invalid data conversion"
- IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)"
- IBXConst_SBlobCannotBeRead, "Blob stream cannot be read"
- IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written"
- IBXConst_SEmptyQuery, "Empty query"
- IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery"
- IBXConst_SNoFieldAccess, "No access to field \"%s\""
- IBXConst_SFieldReadOnly, "Field \"%s\" is read-only"
- IBXConst_SFieldNotFound, "Field \"%s\" not found"
- IBXConst_SNotEditing, "Not in edit mode"
- IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)"
- IBXConst_SCannotPost, "Cannot post. (No update/insert query)"
- IBXConst_SCannotUpdate, "Cannot update. (No update query)"
- IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)"
- IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)"
- IBXConst_SBufferNotSet, "Buffer not set"
- IBXConst_SUpdateWrongDB, "Updating wrong database"
- IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set"
- IBXConst_SDatabaseNotAssigned, "Database not assigned"
- IBXConst_STransactionNotAssigned, "Transaction not assigned"
- IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range"
- IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)"
- IBXConst_SEOF, "End of file"
- IBXConst_SBOF, "Beginning of file"
- IBXConst_SInvalidStatementHandle, "Invalid statement handle"
- IBXConst_SSQLOpen, "IBSQL Open"
- IBXConst_SSQLClosed, "IBSQL Closed"
- IBXConst_SDatasetOpen, "Dataset open"
- IBXConst_SDatasetClosed, "Dataset closed"
- IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)"
- IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)"
- IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)"
- IBXConst_SFileAccessError, "Temporary file access error"
- IBXConst_SConnectionTimeout, "Database connection timed out"
- IBXConst_SCannotSetDatabase, "Cannot set database"
- IBXConst_SCannotSetTransaction, "Cannot set transaction"
- IBXConst_SOperationCancelled, "Operation cancelled at user's request"
- IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported"
- IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown"
- IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported"
- IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown"
- IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open"
- IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open"
- IBXConst_SDatabaseNameMissing, "Database name is missing"
- IBXConst_SNotInTransaction, "Transaction is not active"
- IBXConst_SInTransaction, "Transaction is active"
- IBXConst_STimeoutNegative, "Timeout values cannot be negative"
- IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component"
- IBSQLMonitor_StrFetch, ": [Fetch] "
- IBSQLMonitor_StrPrepare, ": [Prepare] "
- IBSQLMonitor_StrPlan, " Plan: "
- IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large"
+ ADOConst_SNoFilterOptions, "FilterOptions are not supported"
+ ADOConst_SRecordsetNotOpen, "Recordset is not open"
+ ADOConst_sNameAttr, "Name"
+ ADOConst_sValueAttr, "Value"
+ pnglang_EPngInvalidCRCText, "This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)"
+ pnglang_EPNGInvalidIHDRText, "The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted"
+ pnglang_EPNGMissingMultipleIDATText, "This \"Portable Network Graphics\" image is invalid because it has missing image parts."
+ pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: "
+ pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette."
+ pnglang_EPNGInvalidFileHeaderText, "The file being readed is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corruped, try obtaining it again."
+ pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)"
+ pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either it's width or height exceeds the maximum size, which is 65535 pixels length."
+ pnglang_EPNGUnknownPalEntryText, "There is no such palette entry."
+ pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded."
+ pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded."
+ pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded."
IBSQLMonitor_StrCommitHardComm, ": [Commit (Hard commit)]"
IBSQLMonitor_StrCommitRetaining, ": [Commit retaining (Soft commit)]"
IBSQLMonitor_StrRollback, ": [Rollback]"
IBSQLMonitor_StrRollbackRetainin, ": [Rollback retaining (Soft rollback)]"
IBSQLMonitor_StrStartTransaction, ": [Start transaction]"
IBSQLMonitor_StrApplication, "[Application: "
- IBXConst_SUnknownError, "Unknown error"
- IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality"
- IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality"
- IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality"
- IBXConst_SNotSupported, "Unsupported feature"
- IBXConst_SNotPermitted, "Not permitted"
+ ADOConst_SMissingConnection, "Missing Connection or ConnectionString"
+ ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables"
+ ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls"
+ ADOConst_SMissingCommandText, "Missing %s property"
+ ADOConst_SNoResultSet, "CommandText does not return a result set"
+ ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed"
+ ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors"
+ ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s"
+ ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions"
ADOConst_SCantRequery, "Cannot perform a requery after connection has changed"
- ADOConst_SNoFilterOptions, "FilterOptions are not supported"
- ADOConst_SRecordsetNotOpen, "Recordset is not open"
- ADOConst_sNameAttr, "Name"
- ADOConst_sValueAttr, "Value"
+ IBXConst_SIB80feature, "%s is an InterBase 2007 function. Please upgrade to InterBase 2007 to use this functonality"
IBSQLMonitor_StrConnect, ": [Connect]"
IBSQLMonitor_StrDisconnect, ": [Disconnect]"
IBSQLMonitor_StrMisc, "[Misc] "
@@ -1276,22 +1152,138 @@ BEGIN
IBSQLMonitor_StrExecute, ": [Execute] "
IBSQLMonitor_StrNULL, ""
IBSQLMonitor_StrBLOB, ""
- uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned"
- uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\""
- uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem."
- uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server."
+ IBSQLMonitor_StrFetch, ": [Fetch] "
+ IBSQLMonitor_StrPrepare, ": [Prepare] "
+ IBSQLMonitor_StrPlan, " Plan: "
+ IBSQLMonitor_StrPlanCantRetrive, " Plan: Can't retrieve plan - too large"
+ IBXConst_SOptionNeedsClient, "%s component requires Client to function properly"
+ IBXConst_SOptionNeedsServer, "%s component requires Server to function properly"
+ IBXConst_SInvalidOption, "Invalid option specified"
+ IBXConst_SInvalidOnErrorResult, "Unexpected onError return value"
+ IBXConst_SInvalidOnStatusResult, "Unexpected onStatus return value"
+ IBXConst_SDPBConstantUnknownEx, "DPB Constant (%s) is unknown"
+ IBXConst_STPBConstantUnknownEx, "TPB Constant (%s) is unknown"
+ IBXConst_SUnknownPlan, "Unknown Error - Can't retrieve plan"
+ IBXConst_SFieldSizeMismatch, "Size Mismatch - Field %s size is too small for data"
+ IBXConst_SEventAlreadyRegistered, "Events already registered"
+ IBXConst_SStringTooLarge, "Trying to store a string of length %d into a field that can only contain %d"
+ IBXConst_SNoTimers, "Not enough timers available"
+ IBXConst_SIB65feature, "%s is an InterBase 6.5 function. Please upgrade to InterBase 6.5 to use this functonality"
+ IBXConst_SLoginPromptFailure, "Can not find default login prompt dialog. Please add DBLogDlg to the uses section of your main file."
+ IBXConst_SIB70feature, "%s is an InterBase 7.0 function. Please upgrade to InterBase 7.0 to use this functonality"
+ IBXConst_SIB71feature, "%s is an InterBase 7.1 function. Please upgrade to InterBase 7.1 to use this functonality"
+ IBXConst_SQueryParamsError, "Query Parameters missing or incorrect"
+ IBXConst_SStartParamsError, "start Parameters missing or incorrect"
+ IBXConst_SOutputParsingError, "Unexpected Output buffer value"
+ IBXConst_SUseSpecificProcedures, "Generic ServiceStart not applicable: Use Specific Procedures to set configuration params"
+ IBXConst_SSQLMonitorAlreadyPresent, "SQL Monitor Instance is already present"
+ IBXConst_SCantPrintValue, "Cannot print value"
+ IBXConst_SEOFReached, "SEOFReached"
+ IBXConst_SEOFInComment, "EOF in comment detected"
+ IBXConst_SEOFInString, "EOF in string detected"
+ IBXConst_SParamNameExpected, "Parameter name expected"
+ IBXConst_SSuccess, "Successful execution"
+ IBXConst_SDelphiException, "DelphiException %s"
+ IBXConst_SNoOptionsSet, "No Install Options selected"
+ IBXConst_SNoDestinationDirectory, "DestinationDirectory is not set"
+ IBXConst_SNosourceDirectory, "SourceDirectory is not set"
+ IBXConst_SNoUninstallFile, "Uninstall File Name is not set"
+ IBXConst_SCannotDropSystemIndex, "Cannot Drop System Index"
+ IBXConst_STableNameMismatch, "Table Name Mismatch"
+ IBXConst_SIndexFieldMissing, "Index Field Missing"
+ IBXConst_SInvalidCancellation, "Cannot Cancel events while processing"
+ IBXConst_SInvalidEvent, "Invalid Event"
+ IBXConst_SMaximumEvents, "Exceded Maximum Event limits"
+ IBXConst_SNoEventsRegistered, "No Events Registered"
+ IBXConst_SInvalidQueueing, "Invalid Queueing"
+ IBXConst_SInvalidRegistration, "Invalid Registration"
+ IBXConst_SInvalidBatchMove, "Invalid Batch Move"
+ IBXConst_SSQLDialectInvalid, "SQL Dialect Invalid"
+ IBXConst_SSPBConstantNotSupported, "SPB Constant Not supported"
+ IBXConst_SSPBConstantUnknown, "SPB Constant Unknown"
+ IBXConst_SServiceActive, "Cannot perform operation -- service is not attached"
+ IBXConst_SServiceInActive, "Cannot perform operation -- service is attached"
+ IBXConst_SServerNameMissing, "Server Name Missing"
+ IBXConst_SColumnTypesDontMatch, "Column types don't match. (From index: %d; To index: %d)"
+ IBXConst_SCantEndSharedTransaction, "Can't end a shared transaction unless it is forced and equal to the transaction's TimeoutAction"
+ IBXConst_SFieldUnsupportedType, "Unsupported Field Type"
+ IBXConst_SCircularDataLink, "Circular DataLink Reference"
+ IBXConst_SEmptySQLStatement, "Empty SQL Statement"
+ IBXConst_SIsASelectStatement, "use Open for a Select Statement"
+ IBXConst_SRequiredParamNotSet, "Required Param value not set"
+ IBXConst_SNoStoredProcName, "No Stored Procedure Name assigned"
+ IBXConst_SIsAExecuteProcedure, "use ExecProc for Procedure; use TQuery for Select procedures"
+ IBXConst_SUpdateFailed, "Update Failed"
+ IBXConst_SNotCachedUpdates, "CachedUpdates not enabled"
+ IBXConst_SNotLiveRequest, "Request is not live - cannot modify"
+ IBXConst_SNoProvider, "No Provider"
+ IBXConst_SNoRecordsAffected, "No Records Affected"
+ IBXConst_SNoTableName, "No Table Name assigned"
+ IBXConst_SCannotCreatePrimaryIndex, "Cannot Create Primary Index; are created automatically"
+ IBXConst_SFieldReadOnly, "Field \"%s\" is read-only"
+ IBXConst_SFieldNotFound, "Field \"%s\" not found"
+ IBXConst_SNotEditing, "Not in edit mode"
+ IBXConst_SCannotInsert, "Cannot insert into dataset. (No insert query)"
+ IBXConst_SCannotPost, "Cannot post. (No update/insert query)"
+ IBXConst_SCannotUpdate, "Cannot update. (No update query)"
+ IBXConst_SCannotDelete, "Cannot delete from dataset. (No delete query)"
+ IBXConst_SCannotRefresh, "Cannot refresh row. (No refresh query)"
+ IBXConst_SBufferNotSet, "Buffer not set"
+ IBXConst_SCircularReference, "Circular references not permitted"
+ IBXConst_SSQLParseError, "SQL Parse Error:\r\n\r\n%s"
+ IBXConst_SUserAbort, "User abort"
+ IBXConst_SDataSetUniDirectional, "Data set is uni-directional"
+ IBXConst_SCannotCreateSharedResource, "Cannot create shared resource. (Windows error %d)"
+ IBXConst_SWindowsAPIError, "Windows API error. (Windows error %d [$%.8x])"
+ IBXConst_SColumnListsDontMatch, "Column lists do not match"
+ IBXConst_SBOF, "Beginning of file"
+ IBXConst_SInvalidStatementHandle, "Invalid statement handle"
+ IBXConst_SSQLOpen, "IBSQL Open"
+ IBXConst_SSQLClosed, "IBSQL Closed"
+ IBXConst_SDatasetOpen, "Dataset open"
+ IBXConst_SDatasetClosed, "Dataset closed"
+ IBXConst_SUnknownSQLDataType, "Unknown SQL Data type (%d)"
+ IBXConst_SInvalidColumnIndex, "Invalid column index (index exceeds permitted range)"
+ IBXConst_SInvalidParamColumnIndex, "Invalid parameter index (index exceeds permitted range)"
+ IBXConst_SInvalidDataConversion, "Invalid data conversion"
+ IBXConst_SColumnIsNotNullable, "Column cannot be set to null (%s)"
+ IBXConst_SBlobCannotBeRead, "Blob stream cannot be read"
+ IBXConst_SBlobCannotBeWritten, "Blob stream cannot be written"
+ IBXConst_SEmptyQuery, "Empty query"
+ IBXConst_SCannotOpenNonSQLSelect, "Cannot \"open\" a non-select statement. Use ExecQuery"
+ IBXConst_SNoFieldAccess, "No access to field \"%s\""
+ IBXConst_STPBConstantNotSupported, "TPB Constant (isc_tpb_%s) is unsupported"
+ IBXConst_STPBConstantUnknown, "TPB Constant (%d) is unknown"
+ IBXConst_SDatabaseClosed, "Cannot perform operation -- DB is not open"
+ IBXConst_SDatabaseOpen, "Cannot perform operation -- DB is currently open"
+ IBXConst_SDatabaseNameMissing, "Database name is missing"
+ IBXConst_SNotInTransaction, "Transaction is not active"
+ IBXConst_SInTransaction, "Transaction is active"
+ IBXConst_STimeoutNegative, "Timeout values cannot be negative"
+ IBXConst_SNoDatabasesInTransaction, "No databases are listed in transaction component"
+ IBXConst_SUpdateWrongDB, "Updating wrong database"
+ IBXConst_SUpdateWrongTR, "Updating wrong transaction. Unique transaction expected in set"
+ IBXConst_SDatabaseNotAssigned, "Database not assigned"
+ IBXConst_STransactionNotAssigned, "Transaction not assigned"
+ IBXConst_SXSQLDAIndexOutOfRange, "XSQLDA index out of range"
+ IBXConst_SXSQLDANameDoesNotExist, "XSQLDA name does not exist (%s)"
+ IBXConst_SEOF, "End of file"
uDARes_err_DatasetNotAccessible, "Access to dataset %s has not been permitted."
uDARes_err_CommandNotAccessible, "executon of command %s has not been permitted."
uDARes_err_SQLNotPermitted, "Execution of the specified SQL statement has not been permitted."
- ADOConst_SMissingConnection, "Missing Connection or ConnectionString"
- ADOConst_SNoDetailFilter, "Filter property cannot be used for detail tables"
- ADOConst_SBookmarksRequired, "Dataset does not support bookmarks, which are required for multi-record data controls"
- ADOConst_SMissingCommandText, "Missing %s property"
- ADOConst_SNoResultSet, "CommandText does not return a result set"
- ADOConst_SADOCreateError, "Error creating object. Please verify that the Microsoft Data Access Components 2.1 (or later) have been properly installed"
- ADOConst_SEventsNotSupported, "Events are not supported with server side TableDirect cursors"
- ADOConst_SUsupportedFieldType, "Unsupported field type (%s) in field %s"
- ADOConst_SConnectionRequired, "A connection component is required for async ExecuteOptions"
+ IBXConst_SUnknownError, "Unknown error"
+ IBXConst_SInterBaseMissing, "InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality"
+ IBXConst_SInterBaseInstallMissing, "InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality"
+ IBXConst_SIB60feature, "%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality"
+ IBXConst_SNotSupported, "Unsupported feature"
+ IBXConst_SNotPermitted, "Not permitted"
+ IBXConst_SFileAccessError, "Temporary file access error"
+ IBXConst_SConnectionTimeout, "Database connection timed out"
+ IBXConst_SCannotSetDatabase, "Cannot set database"
+ IBXConst_SCannotSetTransaction, "Cannot set transaction"
+ IBXConst_SOperationCancelled, "Operation cancelled at user's request"
+ IBXConst_SDPBConstantNotSupported, "DPB Constant (isc_dpb_%s) is unsupported"
+ IBXConst_SDPBConstantUnknown, "DPB Constant (%d) is unknown"
uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s"
uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded"
uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver"
@@ -1305,18 +1297,18 @@ BEGIN
uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled"
uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection"
uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly"
- uDARes_err_HETConnectionNotSupportedInV3, "HET Connections are not supported by te legacy v3 DARemoteService"
uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager"
- uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned"
- IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable"
- IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout"
- IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported"
- IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code"
- IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written."
- IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command."
- IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme."
- IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active."
- IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s."
+ uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\""
+ uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem."
+ JvResources_RsCl3DDkShadow, "Dark shadow 3D elements"
+ JvResources_RsCl3DLight, "Highlight 3D elements"
+ JvResources_RsClInfoText, "Tooltip text"
+ JvResources_RsClInfoBk, "Tooltip background"
+ JvResources_RsGradientActiveCaption, "Gradient Active Caption"
+ JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption"
+ JvResources_RsHotLight, "Hot Light"
+ JvResources_RsMenuBar, "Menu Bar"
+ JvResources_RsMenuHighlight, "Menu Highlight"
uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time."
uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable"
uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered"
@@ -1324,280 +1316,102 @@ BEGIN
uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned"
uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported"
uDARes_err_InvalidDataset, "Invalid or NIL dataset"
- IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden"
- IdResourceStringsProtocols_RSHTTPNotFound, "Not Found"
- IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed"
- IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable"
- IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required"
- IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout"
- IdResourceStringsProtocols_RSHTTPConflict, "Conflict"
- IdResourceStringsProtocols_RSHTTPGone, "Gone"
- IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required"
- IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed"
- IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long"
- IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max"
- IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type"
- IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error"
- IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented"
- IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway"
- IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits"
- IdResourceStringsProtocols_RSHTTPContinue, "Continue"
- IdResourceStringsProtocols_RSHTTPOK, "OK"
- IdResourceStringsProtocols_RSHTTPCreated, "Created"
- IdResourceStringsProtocols_RSHTTPAccepted, "Accepted"
- IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information"
- IdResourceStringsProtocols_RSHTTPNoContent, "No Content"
- IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content"
- IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content"
- IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently"
- IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily"
- IdResourceStringsProtocols_RSHTTPSeeOther, "See Other"
- IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified"
- IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy"
- IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request"
- IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized"
- IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded."
- IdResourceStringsCore_RSConnectTimeout, "Connect timed out."
- IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads"
- IdResourceStringsCore_RSAlreadyConnected, "Already connected."
- IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded"
- IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded."
- IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind."
- IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy."
- IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified."
- IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid."
- IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s"
- IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler."
- IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event."
- IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active."
- IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty"
- IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty"
- IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure."
- IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset."
- IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable."
- IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable."
- IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused."
- IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired."
- IdResourceStringsCore_RSSocksServerCommandError, "Command not supported."
- IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported."
- IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed"
- IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer."
- IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer."
- IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found"
- IdResourceStringsCore_RSNotConnected, "Not Connected"
- IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported."
- IdResourceStringsCore_RSIdNoDataToRead, "No data to read."
- IdResourceStringsCore_RSReadTimeout, "Read Timeout"
- IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)"
- IdResourceStrings_RSInvalidServiceName, "%s is not a valid service."
- IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable"
- IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address"
- IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported."
- IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent."
- IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big."
- IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded."
- IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version."
- IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed."
- IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect."
- IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids."
- IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error."
- IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond."
- IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method."
- IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server."
- IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice."
- IdResourceStrings_RSStackETIMEDOUT, "Connection timed out."
- IdResourceStrings_RSStackECONNREFUSED, "Connection refused."
- IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links."
- IdResourceStrings_RSStackENAMETOOLONG, "File name too long."
- IdResourceStrings_RSStackEHOSTDOWN, "Host is down."
- IdResourceStrings_RSStackEHOSTUNREACH, "No route to host."
- IdResourceStrings_RSStackENOTEMPTY, "Directory not empty"
- IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found."
- IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined."
- IdResourceStrings_RSStackAlreadyCreated, "Stack already created."
- IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application."
- IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected"
- IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)"
- IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully."
- IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use."
- IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported."
- IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported."
- IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket."
- IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported."
- IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family."
- IdResourceStrings_RSStackEADDRINUSE, "Address already in use."
- IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address."
- IdResourceStrings_RSStackENETDOWN, "Network is down."
- IdResourceStrings_RSStackENETUNREACH, "Network is unreachable."
- IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset."
- IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort."
- IdResourceStrings_RSStackECONNRESET, "Connection reset by peer."
- IdResourceStrings_RSStackENOBUFS, "No buffer space available."
- IdResourceStrings_RSStackEISCONN, "Socket is already connected."
- IdResourceStrings_RSStackENOTCONN, "Socket is not connected."
- IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed."
- IdResourceStrings_RSStatusText, "%s"
- IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s"
- IdResourceStrings_RSStackEINTR, "Interrupted system call."
- IdResourceStrings_RSStackEBADF, "Bad file number."
- IdResourceStrings_RSStackEACCES, "Access denied."
- IdResourceStrings_RSStackEFAULT, "Buffer fault."
- IdResourceStrings_RSStackEINVAL, "Invalid argument."
- IdResourceStrings_RSStackEMFILE, "Too many open files."
- IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block."
- IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress."
- IdResourceStrings_RSStackEALREADY, "Operation already in progress."
- IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket."
- IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required."
- IdResourceStrings_RSStackEMSGSIZE, "Message too long."
- IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket."
- IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option."
- DBConsts_SUnassignedVar, "Unassigned variant value"
- DBConsts_SRecordNotFound, "Record not found"
- DBConsts_SBcdOverflow, "BCD overflow"
- DBConsts_SInvalidBcdValue, "%s is not a valid BCD value"
- DBConsts_SInvalidFormatType, "Invalid format type for BCD"
- DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string"
- DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values"
- IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information."
- IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s"
- IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)"
- IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error."
- IdResourceStrings_RSStatusResolving, "Resolving hostname %s."
- IdResourceStrings_RSStatusConnecting, "Connecting to %s."
- IdResourceStrings_RSStatusConnected, "Connected."
- IdResourceStrings_RSStatusDisconnecting, "Disconnecting."
- IdResourceStrings_RSStatusDisconnected, "Disconnected."
- DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete"
- DBConsts_SDataSourceChange, "DataSource cannot be changed"
- DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset"
- DBConsts_SNotEditing, "Dataset not in edit or insert mode"
- DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset"
- DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset"
- DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset"
- DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s"
- DBConsts_STextFalse, "False"
- DBConsts_STextTrue, "True"
- DBConsts_SParameterNotFound, "Parameter '%s' not found"
- DBConsts_SInvalidVersion, "Unable to load bind parameters"
- DBConsts_SBadFieldType, "Field '%s' is of an unsupported type"
- DBConsts_SProviderSQLNotSupported, "SQL not supported: %s"
- DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s"
- DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset"
- DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g"
- DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s"
- DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'"
- DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'"
- DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'"
- DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s"
- DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d"
- DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'"
- DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range"
- DBConsts_SFieldRequired, "Field '%s' must have a value"
- DBConsts_SDataSetMissing, "Field '%s' has no dataset"
- DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field"
- DBConsts_SFieldReadOnly, "Field '%s' cannot be modified"
- DBConsts_SNoIndexForFields, "No index for fields '%s'"
- DBConsts_SIndexNotFound, "Index '%s' not found"
- DBConsts_SCircularDataLink, "Circular datalinks are not allowed"
- uRODECConst_sFMT_COPY, "copy Input to Output"
- uRODECConst_sFMT_HEX, "Hexadecimal"
- uRODECConst_sFMT_HEXL, "Hexadecimal lowercase"
- uRODECConst_sFMT_MIME64, "MIME Base 64"
- uRODECConst_sFMT_UU, "UU Coding"
- uRODECConst_sFMT_XX, "XX Coding"
- uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes"
- uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first."
- DBConsts_SInvalidFieldSize, "Invalid field size"
- DBConsts_SInvalidFieldKind, "Invalid FieldKind"
- DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type"
- DBConsts_SFieldNameMissing, "Field name missing"
- DBConsts_SDuplicateFieldName, "Duplicate field name '%s'"
- DBConsts_SFieldNotFound, "Field '%s' not found"
- DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s"
- DBConsts_SFieldValueError, "Invalid value for field '%s'"
- uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader"
- uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)"
- uRORes_err_DOMElementIsNIL, "DOMElement is NIL"
- uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d"
- uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s"
- uRORes_err_NoXMLParsersAvailable, "MSXML is not installed"
- uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported."
- uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\""
- uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d"
- uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d"
- uRORes_err_CannotFindParameter, "Cannot find parameter %s"
- uRORes_err_MessageNotAssigned, "Message is NIL"
- uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid."
- uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist."
- uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format."
- uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format."
- uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found"
- uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage"
- uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered"
- uRORes_err_UnknownClass, "Unknown class \"%s\""
- uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\""
- uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned"
- uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?"
- uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher"
- uRORes_err_UnhandledException, "Unhandled exception"
- uRORes_err_ChannelBusy, "Channel is busy. Try again later."
- uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)."
- uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message."
- uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?"
- uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream."
- uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"."
- uRORes_err_SessionNotFound, "Session %s could not be found"
- uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements."
- uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements."
- uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found."
- uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"."
- uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves."
- uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"."
- uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s"
- uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s"
- uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"."
- uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)"
- uRORes_err_NILMessage, "Message is NIL"
- uRORes_err_UnspecifiedInterface, "The message does not have an interface name"
- uRORes_err_UnspecifiedMessage, "The message does not have a name"
- uRORes_err_UnknownMethod, "Unknown method %s for interface %s"
- uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\""
- uRORes_err_TypeNotSupported, "Type \"%s\" not supported"
- ComStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d"
- JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image"
- JConsts_sJPEGError, "JPEG error #%d"
- JConsts_sJPEGImageFile, "JPEG Image File"
- uRORes_err_InvalidIndex, "Invalid index %d"
- uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\""
- uRORes_err_InvalidLibrary, "Invalid library"
- uRORes_err_InvalidStream, "Invalid stream"
- uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\""
- uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\""
- uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\""
- uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\""
- uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream."
- uRORes_err_RodlDuplicateName, "Duplicate name."
- uRORes_err_RodlNoDataTypeSpecified, "No data type specified."
- uRORes_err_RodlNoEnumValues, "Enum does not contain any values."
- JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size"
- JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries"
+ JvResources_RsClWindow, "Window background"
+ JvResources_RsClWindowFrame, "Window frame"
+ JvResources_RsClMenuText, "Menu text"
+ JvResources_RsClWindowText, "Window text"
+ JvResources_RsClCaptionText, "Active window title bar text"
+ JvResources_RsClActiveBorder, "Active window border"
+ JvResources_RsClInactiveBorder, "Inactive window border"
+ JvResources_RsClAppWorkSpace, "Application workspace"
+ JvResources_RsClHighlight, "Selection background"
+ JvResources_RsClHighlightText, "Selection text"
+ JvResources_RsClBtnFace, "Button face"
+ JvResources_RsClBtnShadow, "Button shadow"
+ JvResources_RsClGrayText, "Dimmed text"
+ JvResources_RsClBtnText, "Button text"
+ JvResources_RsClInactiveCaptionText, "Inactive window title bar text"
+ JvResources_RsClBtnHighlight, "Button highlight"
+ JvResources_RsClBrightGreen, "Bright Green"
+ JvResources_RsClTurquoise, "Turquoise"
+ JvResources_RsClPlum, "Plum"
+ JvResources_RsClGray25, "Gray 25%"
+ JvResources_RsClRose, "Rose"
+ JvResources_RsClTan, "Tan"
+ JvResources_RsClLightYellow, "Light Yellow"
+ JvResources_RsClLightGreen, "Light Green"
+ JvResources_RsClLightTurquoise, "Light Turquoise"
+ JvResources_RsClPaleBlue, "Pale Blue"
+ JvResources_RsClLavender, "Lavender"
+ JvResources_RsClScrollBar, "Scrollbar"
+ JvResources_RsClBackground, "Desktop background"
+ JvResources_RsClActiveCaption, "Active window title bar"
+ JvResources_RsClInactiveCaption, "Inactive window title bar"
+ JvResources_RsClMenu, "Menu background"
+ JvResources_RsClDarkTeal, "Dark Teal"
+ JvResources_RsClDarkBlue, "Dark Blue"
+ JvResources_RsClIndigo, "Indigo"
+ JvResources_RsClGray80, "Gray 80%"
+ JvResources_RsClDarkRed, "Dark Red"
+ JvResources_RsClOrange, "Orange"
+ JvResources_RsClDarkYellow, "Dark Yellow"
+ JvResources_RsClBlueGray, "Blue Gray"
+ JvResources_RsClGray50, "Gray 50%"
+ JvResources_RsClLightOrange, "Light Orange"
+ JvResources_RsClSeaGreen, "Sea Green"
+ JvResources_RsClLightBlue, "Light Blue"
+ JvResources_RsClViolet, "Violet"
+ JvResources_RsClGray40, "Gray 40%"
+ JvResources_RsClPink, "Pink"
+ JvResources_RsClGold, "Gold"
+ JvResources_RsClGray, "Gray"
+ JvResources_RsClSilver, "Silver"
+ JvResources_RsClRed, "Red"
+ JvResources_RsClLime, "Lime"
+ JvResources_RsClYellow, "Yellow"
+ JvResources_RsClBlue, "Blue"
+ JvResources_RsClFuchsia, "Fuchsia"
+ JvResources_RsClAqua, "Aqua"
+ JvResources_RsClWhite, "White"
+ JvResources_RsClMoneyGreen, "Money green"
+ JvResources_RsClSkyBlue, "Sky blue"
+ JvResources_RsClCream, "Cream"
+ JvResources_RsClMedGray, "Medium gray"
+ JvResources_RsClBrown, "Brown"
+ JvResources_RsClOliveGreen, "Olive Green"
+ JvResources_RsClDarkGreen, "Dark Green"
+ JvResources_RsENoGIFData, "No GIF Data to write"
+ JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x"
+ JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2"
+ JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9"
+ JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt"
+ JvResources_RsEGIFEncodeError, "GIF image encoding error"
+ JvResources_RsEGIFVersion, "Unknown GIF version"
+ JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented"
+ JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented"
+ JvResources_RsClBlack, "Black"
+ JvResources_RsClMaroon, "Maroon"
+ JvResources_RsClGreen, "Green"
+ JvResources_RsClOlive, "Olive green"
+ JvResources_RsClNavy, "Navy blue"
+ JvResources_RsClPurple, "Purple"
+ JvResources_RsClTeal, "Teal"
JclResources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries"
JclResources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries"
JclResources_RsIntelCacheDescrF0, "64-Byte Prefetching"
JclResources_RsIntelCacheDescrF1, "128-Byte Prefetching"
- ComStrs_sTabFailClear, "Failed to clear tab control"
- ComStrs_sTabFailDelete, "Failed to delete tab at index %d"
- ComStrs_sTabFailRetrieve, "Failed to retrieve tab at index %d"
- ComStrs_sTabFailGetObject, "Failed to get object at index %d"
- ComStrs_sTabFailSet, "Failed to set tab \"%s\" at index %d"
- ComStrs_sTabFailSetObject, "Failed to set object at index %d"
- ComStrs_sTabMustBeMultiLine, "MultiLine must be True when TabPosition is tpLeft or tpRight"
- ComStrs_sInvalidIndex, "Invalid index"
- ComStrs_sInsertError, "Unable to insert an item"
- ComStrs_sUDAssociated, "%s is already associated with %s"
- JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size"
- JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative"
+ JvResources_RsAniExtension, "ani"
+ JvResources_RsAniFilterName, "ANI Image"
+ JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties."
+ JvResources_RsEUnableToCreateKey, "Unable to create key '%s'"
+ JvResources_RsEEnumeratingRegistry, "Error enumerating registry"
+ JvResources_RsEInvalidType, "Invalid type"
+ JvResources_RsEUnknownBaseType, "Unknown base type for given set"
+ JvResources_RsEInvalidPath, "Invalid path"
+ JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path"
+ JvResources_RsECircularReferenceOfStorages, "Circular reference of storages"
+ JvResources_RsGIFImage, "CompuServe GIF Image"
+ JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image"
JclResources_RsIntelCacheDescr71, "Trace cache: 16 K-Ops, 8-way set associative"
JclResources_RsIntelCacheDescr72, "Trace cache: 32 K-Ops, 8-way set associative"
JclResources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size"
@@ -1612,8 +1426,8 @@ BEGIN
JclResources_RsIntelCacheDescr84, "2nd-level cache: 1 MBytes, 8-way associative, 32 byte line size"
JclResources_RsIntelCacheDescr85, "2nd-level cache: 2 MBytes, 8-way associative, 32 byte line size"
JclResources_RsIntelCacheDescr86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size"
- JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size"
- JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries"
JclResources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size"
JclResources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size"
JclResources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size"
@@ -1628,8 +1442,8 @@ BEGIN
JclResources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size"
JclResources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size"
JclResources_RsIntelCacheDescr67, "1st-level data cache: 16 KBytes, 4-way set associative, 64 byte line size"
- JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries"
- JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr68, "1st-level data cache: 32 KBytes, 4-way set associative, 64 byte line size"
+ JclResources_RsIntelCacheDescr70, "Trace cache: 12 K-Ops, 8-way set associative"
JclResources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size"
JclResources_RsIntelCacheDescr0A, "1st level data cache: 8 KBytes, 2-way set associative, 32 byte line size"
JclResources_RsIntelCacheDescr0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries"
@@ -1644,8 +1458,8 @@ BEGIN
JclResources_RsIntelCacheDescr41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size"
JclResources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size"
JclResources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size"
- JclResources_RsRTTIFloatType, "Float type: "
- JclResources_RsRTTIMethodKind, "Method kind: "
+ JclResources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size"
+ JclResources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size"
JclResources_RsRTTIParamCount, "Parameter count: "
JclResources_RsRTTIReturnType, "Return type: "
JclResources_RsRTTIMaxLen, "Max length: "
@@ -1660,8 +1474,8 @@ BEGIN
JclResources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries"
JclResources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries"
JclResources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries"
- JclResources_RsRTTIIndex, "index"
- JclResources_RsRTTIDefault, "default"
+ JclResources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries"
+ JclResources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size"
JclResources_RsRTTIName, "Name: "
JclResources_RsRTTIType, "Type: "
JclResources_RsRTTIFlags, "Flags: "
@@ -1676,8 +1490,8 @@ BEGIN
JclResources_RsRTTIPropCount, "Property count: "
JclResources_RsRTTIUnitName, "Unit name: "
JclResources_RsRTTIBasedOn, "Based on: "
- JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'."
- JclResources_RsRTTIVar, "var "
+ JclResources_RsRTTIFloatType, "Float type: "
+ JclResources_RsRTTIMethodKind, "Method kind: "
JclResources_RsRTTIConst, "const "
JclResources_RsRTTIArrayOf, "array of "
JclResources_RsRTTIOut, "out "
@@ -1692,8 +1506,8 @@ BEGIN
JclResources_RsRTTIField, "field"
JclResources_RsRTTIStaticMethod, "static method"
JclResources_RsRTTIVirtualMethod, "virtual method"
- JclResources_RsInconsistentPath, "\"%s\" does not match RootKey"
- JclResources_RsHKCRLong, "HKEY_CLASSES_ROOT"
+ JclResources_RsRTTIIndex, "index"
+ JclResources_RsRTTIDefault, "default"
JclResources_RsHKCULong, "HKEY_CURRENT_USER"
JclResources_RsHKLMLong, "HKEY_LOCAL_MACHINE"
JclResources_RsHKUSLong, "HKEY_USERS"
@@ -1708,12 +1522,12 @@ BEGIN
JclResources_RsHKCCShort, "HKCC"
JclResources_RsHKDDShort, "HKDD"
JclResources_RsRTTIValueOutOfRange, "Value out of range (%s)."
- JvResources_RsMenuBar, "Menu Bar"
- JvResources_RsMenuHighlight, "Menu Highlight"
- ComConst_SOleError, "OLE error %.8x"
- ComConst_SNoMethod, "Method '%s' not supported by automation object"
- ComConst_SVarNotObject, "Variant does not reference an automation object"
- ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters"
+ JclResources_RsRTTIUnknownIdentifier, "Unknown identifier '%s'."
+ JclResources_RsRTTIVar, "var "
+ ComStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d"
+ JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image"
+ JConsts_sJPEGError, "JPEG error #%d"
+ JConsts_sJPEGImageFile, "JPEG Image File"
JclResources_RsWin32Prefix, "Win32: %s (%u)"
JclResources_RsFileUtilsNoVersionInfo, "File contains no version information"
JclResources_RsCreateFileMapping, "Failed to create FileMapping"
@@ -1724,102 +1538,280 @@ BEGIN
JclResources_RsUnableToOpenKeyWrite, "Unable to open key \"%s\\%s\" for write"
JclResources_RsUnableToAccessValue, "Unable to open key \"%s\\%s\" and access value \"%s\""
JclResources_RsWrongDataType, "\"%s\\%s\\%s\" is of wrong kind or size"
- JvResources_RsClAppWorkSpace, "Application workspace"
- JvResources_RsClHighlight, "Selection background"
- JvResources_RsClHighlightText, "Selection text"
- JvResources_RsClBtnFace, "Button face"
- JvResources_RsClBtnShadow, "Button shadow"
- JvResources_RsClGrayText, "Dimmed text"
- JvResources_RsClBtnText, "Button text"
- JvResources_RsClInactiveCaptionText, "Inactive window title bar text"
- JvResources_RsClBtnHighlight, "Button highlight"
- JvResources_RsCl3DDkShadow, "Dark shadow 3D elements"
- JvResources_RsCl3DLight, "Highlight 3D elements"
- JvResources_RsClInfoText, "Tooltip text"
- JvResources_RsClInfoBk, "Tooltip background"
- JvResources_RsGradientActiveCaption, "Gradient Active Caption"
- JvResources_RsGradientInactiveCaption, "Gradient Inactive Caption"
- JvResources_RsHotLight, "Hot Light"
- JvResources_RsClLightGreen, "Light Green"
- JvResources_RsClLightTurquoise, "Light Turquoise"
- JvResources_RsClPaleBlue, "Pale Blue"
- JvResources_RsClLavender, "Lavender"
- JvResources_RsClScrollBar, "Scrollbar"
- JvResources_RsClBackground, "Desktop background"
- JvResources_RsClActiveCaption, "Active window title bar"
- JvResources_RsClInactiveCaption, "Inactive window title bar"
- JvResources_RsClMenu, "Menu background"
- JvResources_RsClWindow, "Window background"
- JvResources_RsClWindowFrame, "Window frame"
- JvResources_RsClMenuText, "Menu text"
- JvResources_RsClWindowText, "Window text"
- JvResources_RsClCaptionText, "Active window title bar text"
- JvResources_RsClActiveBorder, "Active window border"
- JvResources_RsClInactiveBorder, "Inactive window border"
- JvResources_RsClBlueGray, "Blue Gray"
- JvResources_RsClGray50, "Gray 50%"
- JvResources_RsClLightOrange, "Light Orange"
- JvResources_RsClSeaGreen, "Sea Green"
- JvResources_RsClLightBlue, "Light Blue"
- JvResources_RsClViolet, "Violet"
- JvResources_RsClGray40, "Gray 40%"
- JvResources_RsClPink, "Pink"
- JvResources_RsClGold, "Gold"
- JvResources_RsClBrightGreen, "Bright Green"
- JvResources_RsClTurquoise, "Turquoise"
- JvResources_RsClPlum, "Plum"
- JvResources_RsClGray25, "Gray 25%"
- JvResources_RsClRose, "Rose"
- JvResources_RsClTan, "Tan"
- JvResources_RsClLightYellow, "Light Yellow"
- JvResources_RsClAqua, "Aqua"
- JvResources_RsClWhite, "White"
- JvResources_RsClMoneyGreen, "Money green"
- JvResources_RsClSkyBlue, "Sky blue"
- JvResources_RsClCream, "Cream"
- JvResources_RsClMedGray, "Medium gray"
- JvResources_RsClBrown, "Brown"
- JvResources_RsClOliveGreen, "Olive Green"
- JvResources_RsClDarkGreen, "Dark Green"
- JvResources_RsClDarkTeal, "Dark Teal"
- JvResources_RsClDarkBlue, "Dark Blue"
- JvResources_RsClIndigo, "Indigo"
- JvResources_RsClGray80, "Gray 80%"
- JvResources_RsClDarkRed, "Dark Red"
- JvResources_RsClOrange, "Orange"
- JvResources_RsClDarkYellow, "Dark Yellow"
- JvResources_RsEPixelFormatNotImplemented, "BitmapToMemoryStream: pixel format not implemented"
- JvResources_RsEBitCountNotImplemented, "BitmapToMemoryStream: bit count not implemented"
- JvResources_RsClBlack, "Black"
- JvResources_RsClMaroon, "Maroon"
- JvResources_RsClGreen, "Green"
- JvResources_RsClOlive, "Olive green"
- JvResources_RsClNavy, "Navy blue"
- JvResources_RsClPurple, "Purple"
- JvResources_RsClTeal, "Teal"
- JvResources_RsClGray, "Gray"
- JvResources_RsClSilver, "Silver"
- JvResources_RsClRed, "Red"
- JvResources_RsClLime, "Lime"
- JvResources_RsClYellow, "Yellow"
- JvResources_RsClBlue, "Blue"
- JvResources_RsClFuchsia, "Fuchsia"
- JvResources_RsEUnableToCreateKey, "Unable to create key '%s'"
- JvResources_RsEEnumeratingRegistry, "Error enumerating registry"
- JvResources_RsEInvalidType, "Invalid type"
- JvResources_RsEUnknownBaseType, "Unknown base type for given set"
- JvResources_RsEInvalidPath, "Invalid path"
- JvResources_RsENotAUniqueRootPath, "'%s' is not a unique root path"
- JvResources_RsECircularReferenceOfStorages, "Circular reference of storages"
- JvResources_RsGIFImage, "CompuServe GIF Image"
- JvResources_RsEChangeGIFSize, "Cannot change the Size of a GIF image"
- JvResources_RsENoGIFData, "No GIF Data to write"
- JvResources_RsEUnrecognizedGIFExt, "Unrecognized extension block: %.2x"
- JvResources_RsEWrongGIFColors, "Wrong number of colors; must be a power of 2"
- JvResources_RsEBadGIFCodeSize, "GIF code size not in range 2 to 9"
- JvResources_RsEGIFDecodeError, "GIF encoded data is corrupt"
- JvResources_RsEGIFEncodeError, "GIF image encoding error"
- JvResources_RsEGIFVersion, "Unknown GIF version"
+ JclResources_RsInconsistentPath, "\"%s\" does not match RootKey"
+ JclResources_RsHKCRLong, "HKEY_CLASSES_ROOT"
+ IdResourceStringsProtocols_RSHTTPUnknownResponseCode, "Unknown Response Code"
+ IdResourceStringsProtocols_RSHTTPHeaderAlreadyWritten, "Header has already been written."
+ IdResourceStringsProtocols_RSHTTPErrorParsingCommand, "Error in parsing command."
+ IdResourceStringsProtocols_RSHTTPUnsupportedAuthorisationScheme, "Unsupported authorization scheme."
+ IdResourceStringsProtocols_RSHTTPCannotSwitchSessionStateWhenActive, "Cannot change session state when the server is active."
+ IdResourceStringsProtocols_RSHTTPAuthAlreadyRegistered, "This authentication method is already registered with class name %s."
+ ComStrs_sTabFailClear, "Failed to clear tab control"
+ ComStrs_sTabFailDelete, "Failed to delete tab at index %d"
+ ComStrs_sTabFailRetrieve, "Failed to retrieve tab at index %d"
+ ComStrs_sTabFailGetObject, "Failed to get object at index %d"
+ ComStrs_sTabFailSet, "Failed to set tab \"%s\" at index %d"
+ ComStrs_sTabFailSetObject, "Failed to set object at index %d"
+ ComStrs_sTabMustBeMultiLine, "MultiLine must be True when TabPosition is tpLeft or tpRight"
+ ComStrs_sInvalidIndex, "Invalid index"
+ ComStrs_sInsertError, "Unable to insert an item"
+ ComStrs_sUDAssociated, "%s is already associated with %s"
+ IdResourceStringsProtocols_RSHTTPNotAcceptable, "Not Acceptable"
+ IdResourceStringsProtocols_RSHTTPProxyAuthenticationRequired, "Proxy Authentication Required"
+ IdResourceStringsProtocols_RSHTTPRequestTimeout, "Request Timeout"
+ IdResourceStringsProtocols_RSHTTPConflict, "Conflict"
+ IdResourceStringsProtocols_RSHTTPGone, "Gone"
+ IdResourceStringsProtocols_RSHTTPLengthRequired, "Length Required"
+ IdResourceStringsProtocols_RSHTTPPreconditionFailed, "Precondition Failed"
+ IdResourceStringsProtocols_RSHTTPRequestEntityToLong, "Request Entity To Long"
+ IdResourceStringsProtocols_RSHTTPRequestURITooLong, "Request-URI Too Long. 256 Chars max"
+ IdResourceStringsProtocols_RSHTTPUnsupportedMediaType, "Unsupported Media Type"
+ IdResourceStringsProtocols_RSHTTPInternalServerError, "Internal Server Error"
+ IdResourceStringsProtocols_RSHTTPNotImplemented, "Not Implemented"
+ IdResourceStringsProtocols_RSHTTPBadGateway, "Bad Gateway"
+ IdResourceStringsProtocols_RSHTTPServiceUnavailable, "Service Unavailable"
+ IdResourceStringsProtocols_RSHTTPGatewayTimeout, "Gateway timeout"
+ IdResourceStringsProtocols_RSHTTPHTTPVersionNotSupported, "HTTP version not supported"
+ IdResourceStringsProtocols_RSHTTPCreated, "Created"
+ IdResourceStringsProtocols_RSHTTPAccepted, "Accepted"
+ IdResourceStringsProtocols_RSHTTPNonAuthoritativeInformation, "Non-authoritative Information"
+ IdResourceStringsProtocols_RSHTTPNoContent, "No Content"
+ IdResourceStringsProtocols_RSHTTPResetContent, "Reset Content"
+ IdResourceStringsProtocols_RSHTTPPartialContent, "Partial Content"
+ IdResourceStringsProtocols_RSHTTPMovedPermanently, "Moved Permanently"
+ IdResourceStringsProtocols_RSHTTPMovedTemporarily, "Moved Temporarily"
+ IdResourceStringsProtocols_RSHTTPSeeOther, "See Other"
+ IdResourceStringsProtocols_RSHTTPNotModified, "Not Modified"
+ IdResourceStringsProtocols_RSHTTPUseProxy, "Use Proxy"
+ IdResourceStringsProtocols_RSHTTPBadRequest, "Bad Request"
+ IdResourceStringsProtocols_RSHTTPUnauthorized, "Unauthorized"
+ IdResourceStringsProtocols_RSHTTPForbidden, "Forbidden"
+ IdResourceStringsProtocols_RSHTTPNotFound, "Not Found"
+ IdResourceStringsProtocols_RSHTTPMethodNotAllowed, "Method not allowed"
+ IdResourceStringsCore_RSAlreadyConnected, "Already connected."
+ IdResourceStringsCore_RSMaximumNumberOfCaptureLineExceeded, "Maximum number of line allowed exceeded"
+ IdResourceStringsCore_RSchedMaxThreadEx, "The maximum number of threads for this scheduler is exceeded."
+ IdResourceStringsCore_RSTransparentProxyCannotBind, "Transparent proxy cannot bind."
+ IdResourceStringsCore_RSTransparentProxyCanNotSupportUDP, "UDP Not supported by this proxy."
+ IdResourceStringsCore_RSBufferMissingTerminator, "Buffer terminator must be specified."
+ IdResourceStringsCore_RSBufferInvalidStartPos, "Buffer start position is invalid."
+ IdResourceStringsCore_RSReplyInvalidCode, "Reply Code is not valid: %s"
+ IdResourceStringsCore_RSThreadSchedulerThreadRequired, "Thread must be specified for the scheduler."
+ IdResourceStringsCore_RSNoOnExecute, "You must have an OnExecute event."
+ IdResourceStringsCore_RSTCPServerSchedulerAlreadyActive, "Cannot change the scheduler while the server is Active."
+ IdResourceStringsProtocols_RSMIMEExtensionEmpty, "Extension is empty"
+ IdResourceStringsProtocols_RSMIMEMIMETypeEmpty, "Mimetype is empty"
+ IdResourceStringsProtocols_RSMIMEMIMEExtAlreadyExists, "Extension already exits"
+ IdResourceStringsProtocols_RSHTTPContinue, "Continue"
+ IdResourceStringsProtocols_RSHTTPOK, "OK"
+ IdResourceStringsCore_RSSocksServerHostUnreachableError, "Host unreachable."
+ IdResourceStringsCore_RSSocksServerConnectionRefusedError, "Connection refused."
+ IdResourceStringsCore_RSSocksServerTTLExpiredError, "TTL expired."
+ IdResourceStringsCore_RSSocksServerCommandError, "Command not supported."
+ IdResourceStringsCore_RSSocksServerAddressError, "Address type not supported."
+ IdResourceStringsCore_RSInterceptCircularLink, "%d: Circular links are not allowed"
+ IdResourceStringsCore_RSNotEnoughDataInBuffer, "Not enough data in buffer."
+ IdResourceStringsCore_RSTooMuchDataInBuffer, "Too much data in buffer."
+ IdResourceStringsCore_RSFileNotFound, "File \"%s\" not found"
+ IdResourceStringsCore_RSNotConnected, "Not Connected"
+ IdResourceStringsCore_RSObjectTypeNotSupported, "Object type not supported."
+ IdResourceStringsCore_RSIdNoDataToRead, "No data to read."
+ IdResourceStringsCore_RSReadTimeout, "Read Timeout"
+ IdResourceStringsCore_RSReadLnMaxLineLengthExceeded, "Max line length exceeded."
+ IdResourceStringsCore_RSConnectTimeout, "Connect timed out."
+ IdResourceStringsCore_RSThreadTerminateAndWaitFor, "Cannot call TerminateAndWaitFor on FreeAndTerminate threads"
+ IdResourceStrings_RSInvalidIPv6Address, "%s is not a valid IPv6 address"
+ IdResourceStrings_RSIPVersionUnsupported, "The requested IPVersion / Address family is not supported."
+ IdResourceStrings_RSNotAllBytesSent, "Not all bytes sent."
+ IdResourceStrings_RSPackageSizeTooBig, "Package Size Too Big."
+ IdResourceStrings_RSSetSizeExceeded, "Set Size Exceeded."
+ IdResourceStringsCore_RSSocksUDPNotSupported, "UDP is not support in this SOCKS version."
+ IdResourceStringsCore_RSSocksRequestFailed, "Request rejected or failed."
+ IdResourceStringsCore_RSSocksRequestServerFailed, "Request rejected because SOCKS server cannot connect."
+ IdResourceStringsCore_RSSocksRequestIdentFailed, "Request rejected because the client program and identd report different user-ids."
+ IdResourceStringsCore_RSSocksUnknownError, "Unknown socks error."
+ IdResourceStringsCore_RSSocksServerRespondError, "Socks server did not respond."
+ IdResourceStringsCore_RSSocksAuthMethodError, "Invalid socks authentication method."
+ IdResourceStringsCore_RSSocksAuthError, "Authentication error to socks server."
+ IdResourceStringsCore_RSSocksServerGeneralError, "General SOCKS server failure."
+ IdResourceStringsCore_RSSocksServerPermissionError, "Connection not allowed by ruleset."
+ IdResourceStringsCore_RSSocksServerNetUnreachableError, "Network unreachable."
+ IdResourceStrings_RSStackELOOP, "Too many levels of symbolic links."
+ IdResourceStrings_RSStackENAMETOOLONG, "File name too long."
+ IdResourceStrings_RSStackEHOSTDOWN, "Host is down."
+ IdResourceStrings_RSStackEHOSTUNREACH, "No route to host."
+ IdResourceStrings_RSStackENOTEMPTY, "Directory not empty"
+ IdResourceStrings_RSStackHOST_NOT_FOUND, "Host not found."
+ IdResourceStrings_RSStackClassUndefined, "Stack Class is undefined."
+ IdResourceStrings_RSStackAlreadyCreated, "Stack already created."
+ IdResourceStrings_RSAntiFreezeOnlyOne, "Only one TIdAntiFreeze can exist per application."
+ IdResourceStrings_RSCannotSetIPVersionWhenConnected, "Cannot change IPVersion when connected"
+ IdResourceStrings_RSCannotBindRange, "Can not bind in port range (%d - %d)"
+ IdResourceStrings_RSConnectionClosedGracefully, "Connection Closed Gracefully."
+ IdResourceStrings_RSCouldNotBindSocket, "Could not bind socket. Address and port are already in use."
+ IdResourceStrings_RSInvalidPortRange, "Invalid Port Range (%d - %d)"
+ IdResourceStrings_RSInvalidServiceName, "%s is not a valid service."
+ IdResourceStrings_RSIPv6Unavailable, "IPv6 unavailable"
+ IdResourceStrings_RSStackEPFNOSUPPORT, "Protocol family not supported."
+ IdResourceStrings_RSStackEAFNOSUPPORT, "Address family not supported by protocol family."
+ IdResourceStrings_RSStackEADDRINUSE, "Address already in use."
+ IdResourceStrings_RSStackEADDRNOTAVAIL, "Cannot assign requested address."
+ IdResourceStrings_RSStackENETDOWN, "Network is down."
+ IdResourceStrings_RSStackENETUNREACH, "Network is unreachable."
+ IdResourceStrings_RSStackENETRESET, "Net dropped connection or reset."
+ IdResourceStrings_RSStackECONNABORTED, "Software caused connection abort."
+ IdResourceStrings_RSStackECONNRESET, "Connection reset by peer."
+ IdResourceStrings_RSStackENOBUFS, "No buffer space available."
+ IdResourceStrings_RSStackEISCONN, "Socket is already connected."
+ IdResourceStrings_RSStackENOTCONN, "Socket is not connected."
+ IdResourceStrings_RSStackESHUTDOWN, "Cannot send or receive after socket is closed."
+ IdResourceStrings_RSStackETOOMANYREFS, "Too many references, cannot splice."
+ IdResourceStrings_RSStackETIMEDOUT, "Connection timed out."
+ IdResourceStrings_RSStackECONNREFUSED, "Connection refused."
+ IdResourceStrings_RSStackEBADF, "Bad file number."
+ IdResourceStrings_RSStackEACCES, "Access denied."
+ IdResourceStrings_RSStackEFAULT, "Buffer fault."
+ IdResourceStrings_RSStackEINVAL, "Invalid argument."
+ IdResourceStrings_RSStackEMFILE, "Too many open files."
+ IdResourceStrings_RSStackEWOULDBLOCK, "Operation would block."
+ IdResourceStrings_RSStackEINPROGRESS, "Operation now in progress."
+ IdResourceStrings_RSStackEALREADY, "Operation already in progress."
+ IdResourceStrings_RSStackENOTSOCK, "Socket operation on non-socket."
+ IdResourceStrings_RSStackEDESTADDRREQ, "Destination address required."
+ IdResourceStrings_RSStackEMSGSIZE, "Message too long."
+ IdResourceStrings_RSStackEPROTOTYPE, "Protocol wrong type for socket."
+ IdResourceStrings_RSStackENOPROTOOPT, "Bad protocol option."
+ IdResourceStrings_RSStackEPROTONOSUPPORT, "Protocol not supported."
+ IdResourceStrings_RSStackESOCKTNOSUPPORT, "Socket type not supported."
+ IdResourceStrings_RSStackEOPNOTSUPP, "Operation not supported on socket."
+ DBConsts_SInvalidBcdValue, "%s is not a valid BCD value"
+ DBConsts_SInvalidFormatType, "Invalid format type for BCD"
+ DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string"
+ DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values"
+ IdResourceStrings_RSFailedTimeZoneInfo, "Failed attempting to retrieve time zone information."
+ IdResourceStrings_RSWinsockCallError, "Error on call Winsock2 library function %s"
+ IdResourceStrings_RSWinsockLoadError, "Error on loading Winsock2 library (%s)"
+ IdResourceStrings_RSWinsockInitializationError, "Winsock Initialization Error."
+ IdResourceStrings_RSStatusResolving, "Resolving hostname %s."
+ IdResourceStrings_RSStatusConnecting, "Connecting to %s."
+ IdResourceStrings_RSStatusConnected, "Connected."
+ IdResourceStrings_RSStatusDisconnecting, "Disconnecting."
+ IdResourceStrings_RSStatusDisconnected, "Disconnected."
+ IdResourceStrings_RSStatusText, "%s"
+ IdResourceStrings_RSStackError, "Socket Error # %d\r\n%s"
+ IdResourceStrings_RSStackEINTR, "Interrupted system call."
+ DBConsts_SNotEditing, "Dataset not in edit or insert mode"
+ DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset"
+ DBConsts_SDataSetEmpty, "Cannot perform this operation on an empty dataset"
+ DBConsts_SDataSetReadOnly, "Cannot modify a read-only dataset"
+ DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s"
+ DBConsts_STextFalse, "False"
+ DBConsts_STextTrue, "True"
+ DBConsts_SParameterNotFound, "Parameter '%s' not found"
+ DBConsts_SInvalidVersion, "Unable to load bind parameters"
+ DBConsts_SBadFieldType, "Field '%s' is of an unsupported type"
+ DBConsts_SProviderSQLNotSupported, "SQL not supported: %s"
+ DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s"
+ DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset"
+ DBConsts_SUnassignedVar, "Unassigned variant value"
+ DBConsts_SRecordNotFound, "Record not found"
+ DBConsts_SBcdOverflow, "BCD overflow"
+ DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'"
+ DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'"
+ DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s"
+ DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d"
+ DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'"
+ DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range"
+ DBConsts_SFieldRequired, "Field '%s' must have a value"
+ DBConsts_SDataSetMissing, "Field '%s' has no dataset"
+ DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field"
+ DBConsts_SFieldReadOnly, "Field '%s' cannot be modified"
+ DBConsts_SNoIndexForFields, "No index for fields '%s'"
+ DBConsts_SIndexNotFound, "Index '%s' not found"
+ DBConsts_SCircularDataLink, "Circular datalinks are not allowed"
+ DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete"
+ DBConsts_SDataSourceChange, "DataSource cannot be changed"
+ DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset"
+ uRODECConst_sFMT_MIME64, "MIME Base 64"
+ uRODECConst_sFMT_UU, "UU Coding"
+ uRODECConst_sFMT_XX, "XX Coding"
+ uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be within %d-%d bytes"
+ uRODECConst_sNotInitialized, "%s is not initialized, call Init() or InitKey() first."
+ DBConsts_SInvalidFieldSize, "Invalid field size"
+ DBConsts_SInvalidFieldKind, "Invalid FieldKind"
+ DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type"
+ DBConsts_SFieldNameMissing, "Field name missing"
+ DBConsts_SDuplicateFieldName, "Duplicate field name '%s'"
+ DBConsts_SFieldNotFound, "Field '%s' not found"
+ DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s"
+ DBConsts_SFieldValueError, "Invalid value for field '%s'"
+ DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g"
+ DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s"
+ DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'"
+ uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d"
+ uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s"
+ uRORes_err_NoXMLParsersAvailable, "MSXML is not installed"
+ uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported."
+ uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\""
+ uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d"
+ uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d"
+ uRORes_err_CannotFindParameter, "Cannot find parameter %s"
+ uRORes_err_MessageNotAssigned, "Message is NIL"
+ uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid."
+ uRODECConst_sStringFormatExists, "String Format \"%d\" does not exist."
+ uRODECConst_sInvalidStringFormat, "Input is not a valid %s Format."
+ uRODECConst_sInvalidFormatString, "Input cannot be converted to %s Format."
+ uRODECConst_sFMT_COPY, "copy Input to Output"
+ uRODECConst_sFMT_HEX, "Hexadecimal"
+ uRODECConst_sFMT_HEXL, "Hexadecimal lowercase"
+ uRORes_err_UnknownClass, "Unknown class \"%s\""
+ uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\""
+ uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned"
+ uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for the requested path?"
+ uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher"
+ uRORes_err_UnhandledException, "Unhandled exception"
+ uRORes_err_ChannelBusy, "Channel is busy. Try again later."
+ uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)."
+ uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message."
+ uRORes_err_InvalidHeaderEncrypted, "Invalid binary header. It seems that encryption is active on the other side of the communication, but not locally?"
+ uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream."
+ uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"."
+ uRORes_err_SessionNotFound, "Session %s could not be found"
+ uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader"
+ uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)"
+ uRORes_err_DOMElementIsNIL, "DOMElement is NIL"
+ uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"."
+ uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves."
+ uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"."
+ uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s"
+ uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s"
+ uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"."
+ uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)"
+ uRORes_err_NILMessage, "Message is NIL"
+ uRORes_err_UnspecifiedInterface, "The message does not have an interface name"
+ uRORes_err_UnspecifiedMessage, "The message does not have a name"
+ uRORes_err_UnknownMethod, "Unknown method %s for interface %s"
+ uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\""
+ uRORes_err_TypeNotSupported, "Type \"%s\" not supported"
+ uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found"
+ uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage"
+ uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered"
+ ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters"
+ uRORes_err_InvalidIndex, "Invalid index %d"
+ uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\""
+ uRORes_err_InvalidLibrary, "Invalid library"
+ uRORes_err_InvalidStream, "Invalid stream"
+ uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\""
+ uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\""
+ uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\""
+ uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\""
+ uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream."
+ uRORes_err_RodlDuplicateName, "Duplicate name."
+ uRORes_err_RodlNoDataTypeSpecified, "No data type specified."
+ uRORes_err_RodlNoEnumValues, "Enum does not contain any values."
+ uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements."
+ uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements."
+ uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found."
Consts_SSeparator, "Separator"
Consts_SErrorSettingCount, "Error setting %s.Count"
Consts_SListBoxMustBeVirtual, "Listbox (%s) style must be virtual in order to set Count"
@@ -1833,9 +1825,9 @@ BEGIN
Consts_STrayIconCreateError, "Cannot create shell notification icon"
Consts_SPageControlNotSet, "PageControl must first be assigned"
Consts_SWindowsVistaRequired, "%s requires Windows Vista or later"
- JvResources_RsAniExtension, "ani"
- JvResources_RsAniFilterName, "ANI Image"
- JvResources_RsRootValueReplaceFmt, "The Default Root Value \"%0:s\" has been replaced with \"%1:s\".\r\nPlease change the value in the FileVersionInfo Project Properties."
+ ComConst_SOleError, "OLE error %.8x"
+ ComConst_SNoMethod, "Method '%s' not supported by automation object"
+ ComConst_SVarNotObject, "Variant does not reference an automation object"
Consts_srNone, "(None)"
Consts_SOutOfRange, "Value must be between %d and %d"
Consts_SInsertLineError, "Unable to insert a line"
@@ -2094,49 +2086,48 @@ BEGIN
SysConst_SAccessDenied, "File access denied"
END
-/* C:\Archivos de programa\EurekaLog 6\Delphi11\DIALOG.RES */
-/* c:\archivos de programa\codegear\rad studio\5.0\lib\Controls.res */
-/* c:\archivos de programa\codegear\rad studio\5.0\lib\Buttons.res */
-/* c:\archivos de programa\codegear\rad studio\5.0\lib\ExtDlgs.res */
-/* C:\Codigo Tecsitel\Lib\jvcl\JvConsts.res */
-/* c:\archivos de programa\codegear\rad studio\5.0\lib\WindowsXP.res */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxProgress.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxCtrls.RES */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxPrintDialog.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxDock.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreviewPageSettings.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxSearchDialog.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxDialogForm.DFM */
+/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\controls.res */
+/* C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK\uROPoweredByRemObjectsButton.res */
+/* C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK\uROHtmlServerInfo.res */
+/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\buttons.res */
+/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\extdlgs.res */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxProgress.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxCtrls.res */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxPrintDialog.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxDock.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreviewPageSettings.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxSearchDialog.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreview.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreview.res */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxDialogForm.dfm */
/* C:\Codigo Tecsitel\Lib\FastReport3\frxPassw.dfm */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxClass.RES */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreview.DFM */
-/* C:\Codigo Tecsitel\Lib\FastReport3\frxPreview.RES */
-/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROHtmlServerInfo.res */
-/* C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\uROPoweredByRemObjectsButton.res */
-/* uAcercaDe.dfm */
-/* Configuracion\uFrameConfiguracion.dfm */
-/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_ADODriver_Glyphs.res */
-/* C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\Drivers\DataAbstract_IBXDriver_Glyphs.res */
-/* C:\Codigo Tecsitel\Lib\jvcl\JvLogForm.dfm */
-/* uDataModuleServer.dfm */
-/* Configuracion\uConfGeneral.dfm */
+/* C:\Codigo Tecsitel\Lib\FastReport3\frxClass.res */
+/* C:\Codigo Tecsitel\Lib\JVCL\JvConsts.res */
+/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\WindowsXP.res */
+/* C:\Codigo Tecsitel\Lib\JVCL\JvLogForm.dfm */
+/* C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract\DataAbstract_IBXDriver_Glyphs.res */
+/* C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract\DataAbstract_ADODriver_Glyphs.res */
+/* C:\Codigo Tecsitel\Source\Servidor\uDataModuleServer.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\Configuracion\uFrameConfiguracion.dfm */
/* C:\Codigo Tecsitel\Lib\DevExpressVCL\dxOffice11.res */
-/* C:\Codigo Tecsitel\Lib\DevExpressVCL\cxLookAndFeelPainters.res */
/* C:\Codigo Tecsitel\Lib\DevExpressVCL\cxControls.res */
+/* C:\Codigo Tecsitel\Lib\DevExpressVCL\cxLookAndFeelPainters.res */
+/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\filectrl.res */
/* C:\Codigo Tecsitel\Lib\DevExpressVCL\cxEdit.res */
-/* c:\archivos de programa\codegear\rad studio\5.0\lib\FileCtrl.res */
/* C:\Codigo Tecsitel\Lib\DevExpressVCL\cxShellBrowser.dfm */
-/* Configuracion\uConexionBD.dfm */
-/* Configuracion\uConfiguracion.dfm */
-/* uServerMainForm.dfm */
-/* srvLogin_Impl.dfm */
-/* ..\Modulos\Contactos\Servidor\srvContactos_Impl.dfm */
-/* ..\Base\Empresas\Servidor\srvEmpresas_Impl.dfm */
-/* Configuracion\srvConfiguracion_Impl.dfm */
-/* ..\Modulos\Familias\Servidor\srvFamilias_Impl.dfm */
-/* ..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.dfm */
-/* ..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.dfm */
-/* ..\Base\Usuarios\Servidor\srvUsuarios_Impl.dfm */
-/* C:\Codigo Tecsitel\Source\Servidor\FactuGES_Server.res */
-/* C:\Codigo Tecsitel\Source\Servidor\..\Servicios\RODLFile.res */
-/* C:\Codigo Tecsitel\Source\Servidor\FactuGES_Server.drf */
+/* C:\Codigo Tecsitel\Source\Servidor\Configuracion\uConexionBD.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\Configuracion\uConfGeneral.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\Configuracion\uConfiguracion.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\uAcercaDe.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\uServerMainForm.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\srvLogin_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Modulos\Contactos\Servidor\srvContactos_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\Configuracion\srvConfiguracion_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Modulos\Familias\Servidor\srvFamilias_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.dfm */
+/* C:\Codigo Tecsitel\Source\Servidor\FactuGES_Server.RES */
+/* C:\Codigo Tecsitel\Source\Servidor\..\Servicios\RODLFILE.res */
+/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf28.tmp */
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc
index 7c0b65b4..4e771cb2 100644
--- a/Source/Servidor/FactuGES_Server.rc
+++ b/Source/Servidor/FactuGES_Server.rc
@@ -14,7 +14,7 @@ BEGIN
BEGIN
VALUE "FileVersion", "3.0.0.0\0"
VALUE "ProductVersion", "3.0.0.0\0"
- VALUE "CompileDate", "domingo, 30 de septiembre de 2007 20:47\0"
+ VALUE "CompileDate", "domingo, 07 de octubre de 2007 20:30\0"
END
END
BLOCK "VarFileInfo"
diff --git a/Source/Servidor/Utiles/uBusinessUtils.pas b/Source/Servidor/Utiles/uBusinessUtils.pas
index 76ac5daa..bad38ae5 100644
--- a/Source/Servidor/Utiles/uBusinessUtils.pas
+++ b/Source/Servidor/Utiles/uBusinessUtils.pas
@@ -10,15 +10,15 @@ function GetBusinessProcessorConnection (ABusinessProcessor: TDABusinessProcesso
implementation
uses
- DARemoteService_Impl;
+ DataAbstractService_Impl;
{ Se utiliza en las reglas de negocio del servidor y
devuelve la conexión utilizada por el BusinessProcessor para
procesar los deltas. }
function GetBusinessProcessorConnection (ABusinessProcessor: TDABusinessProcessor): IDAConnection;
begin
- if (ABusinessProcessor.Owner is TDARemoteService) then
- Result := (ABusinessProcessor.Owner as TDARemoteService).Connection
+ if (ABusinessProcessor.Owner is TDataAbstractService) then
+ Result := (ABusinessProcessor.Owner as TDataAbstractService).Connection
else
Result := NIL;
end;
diff --git a/Source/Servidor/Utiles/uSchemaUtilsServer.pas b/Source/Servidor/Utiles/uSchemaUtilsServer.pas
index 592471b9..01327bb3 100644
--- a/Source/Servidor/Utiles/uSchemaUtilsServer.pas
+++ b/Source/Servidor/Utiles/uSchemaUtilsServer.pas
@@ -5,8 +5,7 @@ interface
uses
Classes, SysUtils,
uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
- DARemoteService_Impl,
- DataAbstract4_Intf,
+ DataAbstract4_Intf, DataAbstractService_Impl,
uDAClasses, uDAInterfaces, uDADataTable;
type
@@ -14,7 +13,7 @@ type
protected
function GenerateNewSQL : String;
public
- Service : TDARemoteService;
+ Service : TDataAbstractService;
Columnas : String;
ColumnasQueSuman : String;
ColumnasQueAVG : String;
@@ -39,7 +38,6 @@ var
i : integer;
Separador : String;
bHayAgrupacion : Boolean;
- APos : Integer;
function GetTrueFieldName(AField : string; ConAlias : Boolean = True) : String;
var
@@ -131,7 +129,6 @@ function TReplicarDataSet.GetNewDataSet: IDADataset;
var
SQL: String;
ASchemaDataSet: TDADataSet;
- AField: TDAField;
AColumnList : TStringList;
i, j : Integer;
begin
diff --git a/Source/Servidor/srvEmpresas_Impl.dfm b/Source/Servidor/srvEmpresas_Impl.dfm
new file mode 100644
index 00000000..ccd0c53b
--- /dev/null
+++ b/Source/Servidor/srvEmpresas_Impl.dfm
@@ -0,0 +1,7 @@
+inherited srvEmpresas: TsrvEmpresas
+ OldCreateOrder = True
+ Left = 200
+ Top = 200
+ Height = 300
+ Width = 300
+end
diff --git a/Source/Servidor/srvEmpresas_Impl.pas b/Source/Servidor/srvEmpresas_Impl.pas
new file mode 100644
index 00000000..14b5ca7e
--- /dev/null
+++ b/Source/Servidor/srvEmpresas_Impl.pas
@@ -0,0 +1,47 @@
+unit srvEmpresas_Impl;
+
+{----------------------------------------------------------------------------}
+{ This unit was automatically generated by the RemObjects SDK after reading }
+{ the RODL file associated with this project . }
+{ }
+{ This is where you are supposed to code the implementation of your objects. }
+{----------------------------------------------------------------------------}
+
+{$I Remobjects.inc}
+
+interface
+
+uses
+ {vcl:} Classes, SysUtils,
+ {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
+ {Required:} uRORemoteDataModule,
+ {Ancestor Implementation:} DataAbstractService_Impl,
+ {Used RODLs:} DataAbstract4_Intf,
+ {Generated:} FactuGES_Intf;
+
+type
+ { TsrvEmpresas }
+ TsrvEmpresas = class(TDataAbstractService, IsrvEmpresas)
+ private
+ protected
+ { IsrvEmpresas methods }
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk;
+
+procedure Create_srvEmpresas(out anInstance : IUnknown);
+begin
+ anInstance := TsrvEmpresas.Create(nil);
+end;
+
+{ srvEmpresas }
+initialization
+ TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker);
+
+finalization
+
+end.