diff --git a/RodaxSoftware.FactuGES.proj b/RodaxSoftware.FactuGES.proj index bdd8e9d1..5c23b36c 100644 --- a/RodaxSoftware.FactuGES.proj +++ b/RodaxSoftware.FactuGES.proj @@ -1,9 +1,16 @@ - + - + %0D%0A + %0A%0D%0C%08 + %0A%20%08 %09 - %22 + %40 + %25 + %22 + %27 + %0D + %0A %20 @@ -202,4 +209,31 @@ DependsOnTargets="CleanCode;BuildCode"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/ApplicationBase/ApplicationBase.res b/Source/ApplicationBase/ApplicationBase.res index 1641339f..8b251f31 100644 Binary files a/Source/ApplicationBase/ApplicationBase.res and b/Source/ApplicationBase/ApplicationBase.res differ diff --git a/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas index 36393f6e..19895e5b 100644 --- a/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas +++ b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas @@ -167,6 +167,14 @@ begin ADataTable.RemoteFetchEnabled := False; try ADataStreamer.ReadDataset(AStream, ADataTable, True); + ADataTable.Open; + + { ¡¡OJO!! Trapicheo!!!!! + Forzamos a recuperar en Dataset todas las tuplas + recorriendonos toda la tabla.} + ADataTable.Last; + ADataTable.First; + Result := ADataTable.Dataset; finally //FreeAndNIL(ADataTable); <-- No liberar, lo hace Application diff --git a/Source/Cliente/ApplicationBase.drc b/Source/Cliente/ApplicationBase.drc new file mode 100644 index 00000000..cdb70b80 --- /dev/null +++ b/Source/Cliente/ApplicationBase.drc @@ -0,0 +1,24 @@ +/* VER185 + Generated by the CodeGear Delphi Pascal Compiler + because -GD or --drc was supplied to the compiler. + + This file contains compiler-generated resources that + were bound to the executable. + If this file is empty, then no compiler-generated + resources were bound to the produced executable. +*/ + +STRINGTABLE +BEGIN +END + +/* c:\codigo tecsitel\source\applicationbase\empresas\data\uDataModuleEmpresas.DFM */ +/* c:\codigo tecsitel\source\applicationbase\usuarios\data\uCambiarPassword.dfm */ +/* c:\codigo tecsitel\source\applicationbase\usuarios\data\uLoginForm.dfm */ +/* c:\codigo tecsitel\source\applicationbase\usuarios\data\uDataModuleUsuarios.DFM */ +/* c:\codigo tecsitel\source\applicationbase\empresas\views\uViewEmpresa.dfm */ +/* c:\codigo tecsitel\source\applicationbase\empresas\views\uEditorDatosBancariosEmpresa.dfm */ +/* c:\codigo tecsitel\source\applicationbase\empresas\views\uViewDatosBancarios.dfm */ +/* c:\codigo tecsitel\source\applicationbase\empresas\views\uEditorEmpresa.dfm */ +/* C:\Codigo Tecsitel\Source\ApplicationBase\ApplicationBase.res */ +/* C:\Codigo Tecsitel\Source\ApplicationBase\ApplicationBase.drf */ diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr index 376ba3d5..ffc937f7 100644 --- a/Source/Cliente/FactuGES.dpr +++ b/Source/Cliente/FactuGES.dpr @@ -21,7 +21,7 @@ var begin Application.Initialize; - //ReportMemoryLeaksOnShutdown := True; + 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. diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 9187fba3..57a9487f 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -52,66 +52,6 @@ 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 diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index fbc3c2b3..19ec614f 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm index b31e8872..b8814ccf 100644 --- a/Source/Cliente/uPantallaPrincipal.dfm +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -2,7 +2,7 @@ object fPantallaPrincipal: TfPantallaPrincipal Left = 358 Top = 250 Caption = 'Pantalla principal' - ClientHeight = 563 + ClientHeight = 582 ClientWidth = 751 Color = clWindow Font.Charset = DEFAULT_CHARSET @@ -23,7 +23,7 @@ object fPantallaPrincipal: TfPantallaPrincipal Left = 0 Top = 0 Width = 751 - Height = 541 + Height = 560 Margins.Left = 5 Margins.Top = 5 Margins.Right = 5 @@ -31,12 +31,12 @@ object fPantallaPrincipal: TfPantallaPrincipal ParentColor = True Align = alClient TabOrder = 0 - ExplicitHeight = 522 + ExplicitHeight = 541 object JvSyncSplitter1: TJvSyncSplitter Left = 215 Top = 5 Width = 5 - Height = 531 + Height = 550 ResizeStyle = rsPattern ExplicitLeft = 210 ExplicitHeight = 570 @@ -45,7 +45,7 @@ object fPantallaPrincipal: TfPantallaPrincipal Left = 5 Top = 5 Width = 210 - Height = 531 + Height = 550 ActivePage = pagInicio Align = alLeft AutoHeaders = True @@ -86,12 +86,12 @@ object fPantallaPrincipal: TfPantallaPrincipal NavPanelHotTrackFont.Style = [] SmallImages = ModulesSmallImageList OnChange = JvNavigationPaneChange - ExplicitHeight = 512 + ExplicitHeight = 531 object pagInicio: TJvNavPanelPage Left = 0 Top = 0 Width = 208 - Height = 458 + Height = 477 Background.Stretch = False Background.Proportional = False Background.Center = False @@ -99,17 +99,17 @@ object fPantallaPrincipal: TfPantallaPrincipal Background.Transparent = False Caption = 'Inicio' ImageIndex = 0 - ExplicitHeight = 439 + ExplicitHeight = 458 object Panel1: TPanel Left = 0 - Top = 372 + Top = 391 Width = 208 Height = 86 Align = alBottom Color = clWindow ParentBackground = False TabOrder = 1 - ExplicitTop = 353 + ExplicitTop = 372 object Label1: TLabel Left = 38 Top = 29 @@ -157,21 +157,21 @@ object fPantallaPrincipal: TfPantallaPrincipal Left = 220 Top = 5 Width = 526 - Height = 531 + Height = 550 BoundColor = clActiveCaption BoundLines = [blLeft, blTop, blRight, blBottom] Caption = 'pnlBorde' Align = alClient - ExplicitHeight = 512 + ExplicitHeight = 531 object pnlMain: TTBXAlignmentPanel Left = 1 Top = 1 Width = 524 - Height = 529 + Height = 548 Align = alClient Color = clWindow TabOrder = 0 - ExplicitHeight = 510 + ExplicitHeight = 529 object lblBienvenido: TLabel Left = 8 Top = 8 @@ -208,7 +208,7 @@ object fPantallaPrincipal: TfPantallaPrincipal end object TBXStatusBar1: TTBXStatusBar Left = 0 - Top = 541 + Top = 560 Width = 751 Images = StatusPanelImageList Panels = < @@ -230,7 +230,7 @@ object fPantallaPrincipal: TfPantallaPrincipal Tag = 0 end> UseSystemFont = False - ExplicitTop = 522 + ExplicitTop = 541 end object XPManifest1: TXPManifest Left = 248 @@ -561,6 +561,18 @@ object fPantallaPrincipal: TfPantallaPrincipal object Opciones1_OLD: TMenuItem Tag = -7000 Caption = 'Opciones' + object Configuraractualizaciones1: TMenuItem + Tag = 100 + Action = actActualizaciones + end + object Configurarconexin2_OLD: TMenuItem + Tag = 101 + Action = actConexion + end + object N2: TMenuItem + Tag = 2 + Caption = '-' + end object Administracin1: TMenuItem Tag = 1 Caption = 'Administraci'#243'n' @@ -573,18 +585,6 @@ object fPantallaPrincipal: TfPantallaPrincipal OnClick = Perfiles1Click end end - object N2: TMenuItem - Tag = 2 - Caption = '-' - end - object Configuraractualizaciones1: TMenuItem - Tag = 100 - Action = actActualizaciones - end - object Configurarconexin2_OLD: TMenuItem - Tag = 101 - Action = actConexion - end end object Ayuda2_OLD: TMenuItem Tag = -6000 diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res index 1641339f..8b251f31 100644 Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/Modulos/Familias/Controller/Familias_controller.dpk b/Source/Modulos/Familias/Controller/Familias_controller.dpk index f78853eb..2791236d 100644 --- a/Source/Modulos/Familias/Controller/Familias_controller.dpk +++ b/Source/Modulos/Familias/Controller/Familias_controller.dpk @@ -27,24 +27,11 @@ package Familias_controller; requires rtl, vcl, - dbrtl, - cxLibraryD10, - dxThemeD10, - dsnap, - vcldb, - adortl, + Base, + GUIBase, + ApplicationBase, Familias_model, - Familias_data, - ControllerBase, - dxBarExtItemsD10, - dxComnD10, - dxBarD10, - dxLayoutControlD10, - dxPSCoreD10, - dxPScxCommonD10, - dxPScxGridLnkD10, - dxPsPrVwAdvD10, - GUIBase; + Familias_data; contains uFamiliasController in 'uFamiliasController.pas', diff --git a/Source/Modulos/Familias/Controller/Familias_controller.dproj b/Source/Modulos/Familias/Controller/Familias_controller.dproj new file mode 100644 index 00000000..5df20ed9 --- /dev/null +++ b/Source/Modulos/Familias/Controller/Familias_controller.dproj @@ -0,0 +1,570 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Familias_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Controller/Familias_controller.res b/Source/Modulos/Familias/Controller/Familias_controller.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Modulos/Familias/Controller/Familias_controller.res and b/Source/Modulos/Familias/Controller/Familias_controller.res differ diff --git a/Source/Modulos/Familias/Data/Familias_data.dpk b/Source/Modulos/Familias/Data/Familias_data.dpk index 4deac4e7..89c056c0 100644 --- a/Source/Modulos/Familias/Data/Familias_data.dpk +++ b/Source/Modulos/Familias/Data/Familias_data.dpk @@ -27,14 +27,12 @@ package Familias_data; requires rtl, dbrtl, - cxLibraryD10, - dxThemeD10, vcl, dsnap, vcldb, - adortl, - Familias_model, - Base; + Base, + ApplicationBase, + Familias_model; contains uDataModuleFamilias in 'uDataModuleFamilias.pas' {DataModuleFamilias}; diff --git a/Source/Modulos/Familias/Data/Familias_data.dproj b/Source/Modulos/Familias/Data/Familias_data.dproj new file mode 100644 index 00000000..6dc2b0fa --- /dev/null +++ b/Source/Modulos/Familias/Data/Familias_data.dproj @@ -0,0 +1,548 @@ + + + {28b6d86e-fac2-4bfd-97d9-fcea860835eb} + Familias_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_data.dpk + + + + + MainSource + + + + + + + + + + + + + + +
DataModuleFamilias
+
+
+
+ diff --git a/Source/Modulos/Familias/Data/Familias_data.res b/Source/Modulos/Familias/Data/Familias_data.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Modulos/Familias/Data/Familias_data.res and b/Source/Modulos/Familias/Data/Familias_data.res differ diff --git a/Source/Modulos/Familias/Familias_Group.groupproj b/Source/Modulos/Familias/Familias_Group.groupproj new file mode 100644 index 00000000..5aea7da8 --- /dev/null +++ b/Source/Modulos/Familias/Familias_Group.groupproj @@ -0,0 +1,104 @@ + + + {9a7cc043-5043-46ff-a039-c4103c4aa6b2} + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Familias/Model/Familias_model.dpk b/Source/Modulos/Familias/Model/Familias_model.dpk index fa4241d1..9bacc3c4 100644 --- a/Source/Modulos/Familias/Model/Familias_model.dpk +++ b/Source/Modulos/Familias/Model/Familias_model.dpk @@ -31,7 +31,8 @@ requires vcldb, vcl, adortl, - DataAbstract_D10; + Base, + ApplicationBase; contains uBizFamilias in 'uBizFamilias.pas', diff --git a/Source/Modulos/Familias/Model/Familias_model.dproj b/Source/Modulos/Familias/Model/Familias_model.dproj new file mode 100644 index 00000000..e3440bc3 --- /dev/null +++ b/Source/Modulos/Familias/Model/Familias_model.dproj @@ -0,0 +1,541 @@ + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Familias_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_model.dpk + + + + + MainSource + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Model/Familias_model.res b/Source/Modulos/Familias/Model/Familias_model.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Modulos/Familias/Model/Familias_model.res and b/Source/Modulos/Familias/Model/Familias_model.res differ diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.dpk b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk index 8d17834d..6a51cb66 100644 --- a/Source/Modulos/Familias/Plugin/Familias_plugin.dpk +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.dpk @@ -27,10 +27,9 @@ package Familias_plugin; requires rtl, vcl, - PngComponentsD10, - PNG_D10, - vclactnband, - vclx, + Base, + GUIBase, + ApplicationBase, Familias_model, Familias_controller, Familias_view, diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.dproj b/Source/Modulos/Familias/Plugin/Familias_plugin.dproj new file mode 100644 index 00000000..856c4927 --- /dev/null +++ b/Source/Modulos/Familias/Plugin/Familias_plugin.dproj @@ -0,0 +1,542 @@ + + + {82e36812-58c4-491b-b463-6b951e95da51} + Familias_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Familias/Plugin/Familias_plugin.res b/Source/Modulos/Familias/Plugin/Familias_plugin.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Modulos/Familias/Plugin/Familias_plugin.res and b/Source/Modulos/Familias/Plugin/Familias_plugin.res differ diff --git a/Source/Modulos/Familias/Views/Familias_view.dpk b/Source/Modulos/Familias/Views/Familias_view.dpk index 0cd86e58..56d8bdbd 100644 --- a/Source/Modulos/Familias/Views/Familias_view.dpk +++ b/Source/Modulos/Familias/Views/Familias_view.dpk @@ -27,12 +27,9 @@ package Familias_view; requires rtl, vcl, - dbrtl, - vcldb, - dsnap, - adortl, + Base, GUIBase, - DataAbstract_D10, + ApplicationBase, Familias_controller; contains diff --git a/Source/Modulos/Familias/Views/Familias_view.dproj b/Source/Modulos/Familias/Views/Familias_view.dproj new file mode 100644 index 00000000..b28290e4 --- /dev/null +++ b/Source/Modulos/Familias/Views/Familias_view.dproj @@ -0,0 +1,567 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Familias_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Familias_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Familias_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorFamilias
+
+ +
+
+ diff --git a/Source/Modulos/Familias/Views/Familias_view.res b/Source/Modulos/Familias/Views/Familias_view.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Modulos/Familias/Views/Familias_view.res and b/Source/Modulos/Familias/Views/Familias_view.res differ diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk index 4bac639b..da7d762e 100644 --- a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk @@ -27,21 +27,9 @@ package FormasPago_controller; requires rtl, vcl, - dbrtl, - cxLibraryD10, - dxThemeD10, - dsnap, - vcldb, - adortl, - ControllerBase, - dxBarExtItemsD10, - dxComnD10, - dxBarD10, - dxLayoutControlD10, - dxPSCoreD10, - dxPScxCommonD10, - dxPScxGridLnkD10, - dxPsPrVwAdvD10, + Base, + GUIBase, + ApplicationBase, FormasPago_model, FormasPago_data; diff --git a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj index 141e5155..98a6f244 100644 --- a/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj +++ b/Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj @@ -34,86 +34,72 @@ ..\..\..\Lib;..\..\Lib ..\..\..\Lib;..\..\Lib ..\..\..\Lib;..\..\Lib - DEBUG Delphi.Personality Package - - False - True - False - - - False - False - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - FormasPago_controller.dpk - - +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FormasPago_controller.dpk
- + MainSource - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
-