From 3d01e3e42238cbddd90d35a5076fd9912dc4d7f8 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 9 May 2025 11:52:15 -0700 Subject: [PATCH 01/13] =?UTF-8?q?--=20correcci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 4e80b42c6..527e44887 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -23058,7 +23058,7 @@ Partial Class Ventas Dim CantidadRemision As Decimal = DtRemisionesTmpDT.FiltroPrimeroValor("Cantidad", $"CveVentaDetalleRemision={MovDet("CveVentaDetalle").ToString()}").ToDecimal Dim CantidadInventario As Decimal = MovDet("Cantidad").ToString().ToDecimal - If RemisionesLista.Count > 0 AndAlso ChkRemProductos.Checked AndAlso CantidadInventario >= CantidadRemision Then + If RemisionesLista.Count > 0 AndAlso CantidadInventario >= CantidadRemision Then Cantidad = CantidadRemision Else Cantidad = CantidadInventario From ed51b20c62769773c42be4a995e749ec3b7dfcf7 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 11 May 2025 22:05:00 -0700 Subject: [PATCH 02/13] -- puesto --- App_Code/ClsRH.vb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 241ce2730..cd2840b87 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -3370,7 +3370,7 @@ Public Class ClsRH Return Retorno End Function - Public Function AddPuesto(Puesto As String, CveUsuario As Integer, CveEmpresa As Integer, Optional CveOcupacion As Integer = Nothing) As Boolean + Public Function AddPuesto(Puesto As String, CveUsuario As Integer, CveEmpresa As Integer, Optional CveOcupacion As Integer = Nothing, Optional ValorXHora As Decimal = 0) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_RH_PuestoAdd") @@ -3380,6 +3380,7 @@ Public Class ClsRH .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveOcupacion", SqlDbType.Int).Value = CveOcupacion + .Add("@ValorXHora", SqlDbType.Money).Value = ValorXHora End With Try @@ -3397,17 +3398,17 @@ Public Class ClsRH Return Retorno End Function - Public Function UpdatePuesto(CvePuesto As Integer, Puesto As String, Estatus As Integer, CveUsuario As Integer, Optional CveOcupacion As Integer = Nothing) As Boolean + Public Function UpdatePuesto(CvePuesto As Integer, Puesto As String, Estatus As Integer, CveUsuario As Integer, Optional CveOcupacion As Integer = Nothing, Optional ValorXHora As Decimal = 0) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_RH_PuestoUpdate") - With SqlAdapter.SelectCommand.Parameters .Add("@Puesto", SqlDbType.VarChar).Value = Puesto .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto .Add("@CveOcupacion", SqlDbType.Int).Value = CveOcupacion - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@ValorxHora", SqlDbType.Money).Value = ValorXHora End With Try From ef8a3247d831199dce36651630e37bc7ccb928a8 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 12 May 2025 08:51:16 -0700 Subject: [PATCH 03/13] =?UTF-8?q?--=20activaci=C3=B3n=20valorxhora,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RH/CatPuesto.aspx | 14 +++++++++++++- RH/CatPuesto.aspx.vb | 23 ++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/RH/CatPuesto.aspx b/RH/CatPuesto.aspx index e17c81fcb..767a65228 100644 --- a/RH/CatPuesto.aspx +++ b/RH/CatPuesto.aspx @@ -33,7 +33,7 @@ @@ -50,6 +50,11 @@ + + + + + @@ -129,6 +134,13 @@ +
+ + <%-- + --%> + +
+
diff --git a/RH/CatPuesto.aspx.vb b/RH/CatPuesto.aspx.vb index 7a3b71d3e..b386a540c 100644 --- a/RH/CatPuesto.aspx.vb +++ b/RH/CatPuesto.aspx.vb @@ -64,9 +64,6 @@ Partial Class RH_CatPuesto End Set End Property - - - Private Property DTArea As DataTable Get If ViewState("DTArea") Is Nothing Then @@ -134,17 +131,18 @@ Partial Class RH_CatPuesto CargaCatalogoOcupaciones() - If ObjPuestos.GetPuestos(UsuarioActual.CveEmpresa) Then - GvPuestos.DataSource = ObjPuestos.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - - GlobalDTRHPuestos(UsuarioActual.CveEmpresa) = ObjPuestos.DtResultados + GvPuestos.DataSource = ObjPuestos.DtResultados Else Me.GvPuestos.DataSource = Nothing End If ObjPuestos.Dispose() GvPuestos.DataBind() + If UsuarioActual.CveEmpresa = 153 Then + GvPuestos.Columns(3).Visible = True + divValorxhora.Visible = True + End If UpDatos.Update() End Sub @@ -294,8 +292,6 @@ Partial Class RH_CatPuesto End If - - UpModalPuesto.Update() End Sub @@ -343,13 +339,13 @@ Partial Class RH_CatPuesto End If If CvePuesto = -1 And Actualizar = False Then - If ObjPuestos.AddPuesto(TxtPuesto.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlOcupacion.SelectedValue.ToEntero) Then - If ObjPuestos.GetPuestos(UsuarioActual.CveEmpresa) Then Application("GlobalDTRHPuestos") = ObjPuestos.DtResultados Else Application("GlobalDTRHPuestos") = Nothing + If ObjPuestos.AddPuesto(TxtPuesto.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlOcupacion.SelectedValue.ToEntero, TxtValorXHora.text.todecimal) Then + GlobalDTRHPuestos(UsuarioActual.CveEmpresa) = Nothing Alert("Puesto agregado correctamente.") End If Else - If ObjPuestos.UpdatePuesto(CvePuesto, TxtPuesto.Text.Trim, estatus, UsuarioActual.CveUsuario, DdlOcupacion.SelectedValue.ToEntero) Then - If ObjPuestos.GetPuestos(UsuarioActual.CveEmpresa) Then Application("GlobalDTRHPuestos") = ObjPuestos.DtResultados Else Application("GlobalDTRHPuestos") = Nothing + If ObjPuestos.UpdatePuesto(CvePuesto, TxtPuesto.Text.Trim, estatus, UsuarioActual.CveUsuario, DdlOcupacion.SelectedValue.ToEntero, TxtValorXHora.Text.ToDecimal) Then + GlobalDTRHPuestos(UsuarioActual.CveEmpresa) = Nothing Alert("Puesto actualizado correctamente.") End If End If @@ -388,6 +384,7 @@ Partial Class RH_CatPuesto CvePuesto = GvRow.DataKey("CvePuesto").ToEntero TxtPuesto.Text = GvRow.DataKey("Puesto") + TxtValorXHora.Text = GvRow.DataKey("ValorXHora").ToString LtlTituloModalPuesto.Text = "Editar Puesto" If Boolean.Parse(GvRow.DataKey("Estatus")) Then From 930dfb444b716b90dcc5ae38214d9a9e7fe1922e Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 12 May 2025 21:55:44 -0700 Subject: [PATCH 04/13] -- nuevos parametros --- App_Code/DtDatos.xsd | 485 ++++++++++++++++++++++--------------------- App_Code/DtDatos.xss | 4 +- 2 files changed, 246 insertions(+), 243 deletions(-) diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index f3b7eb91c..82d82319b 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -9,321 +9,324 @@ - + - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - + - - - + + + diff --git a/App_Code/DtDatos.xss b/App_Code/DtDatos.xss index 12eb8d1df..000d79685 100644 --- a/App_Code/DtDatos.xss +++ b/App_Code/DtDatos.xss @@ -4,7 +4,7 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + @@ -18,7 +18,7 @@ - + From 93cc42ab5971005f2cd202844e524856880e16f1 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 13 May 2025 08:47:48 -0700 Subject: [PATCH 05/13] - --- Contabilidad/RepIVA.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 243f59c2b..84e7fd0b7 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -219,7 +219,7 @@ SubTotal
16%
- +
From 00a5ebfd3381c52a2c6b2146d9479a752d39917e Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 13 May 2025 08:50:56 -0700 Subject: [PATCH 06/13] CAt AF Ultima Iamgen, Entyardas salidas formato EMD --- AF/CatAF.aspx | 166 +++++++++++++++++++++++---- AF/CatAF.aspx.vb | 24 ++++ App_Code/ClsBancos.vb | 9 +- Compras/PopUpVerFactura.aspx.vb | 7 +- Empresas/Grales/Formatos/Salida.rdlc | 2 +- Inventarios/EntradasSalidas.aspx | 15 +-- Inventarios/EntradasSalidas.aspx.vb | 5 + 7 files changed, 197 insertions(+), 31 deletions(-) diff --git a/AF/CatAF.aspx b/AF/CatAF.aspx index 7b11dbbb3..2477b9e6d 100644 --- a/AF/CatAF.aspx +++ b/AF/CatAF.aspx @@ -36,7 +36,54 @@ padding-right: 4px !important; padding-left: 4px !important; } + + img.cbp-img-ajustada { + max-width: 150px; + max-height: 150px; + height: auto; + width: auto; + object-fit: contain; + display: block; + cursor: pointer; +} + + @@ -370,6 +417,39 @@ + + + <%-- 20 --%> + + + + +
+
+
+
+ +
+
+
+ + <%----%> +
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -436,30 +516,18 @@ - - - - - + + + + + + - + - - - - - - - + - - - - - - - @@ -496,7 +564,10 @@ - +
+ × + Vista ampliada +
@@ -516,4 +587,57 @@ } --%> + + <%----%> + + + + + diff --git a/AF/CatAF.aspx.vb b/AF/CatAF.aspx.vb index 6feb748f4..d50f844b9 100644 --- a/AF/CatAF.aspx.vb +++ b/AF/CatAF.aspx.vb @@ -53,6 +53,14 @@ Partial Class AF_CatAF CargaCombos() CargaCaracteristicas() + If UsuarioActual.CveEmpresa = 13 Then + ChkUltimaImagen.Checked = True + ChkMarcaActivoFijo.Checked = True + ChkModeloActivoFijo.Checked = True + ChkNoSerie.Checked = True + ChkObservaciones.Checked = True + End If + If (Request("GPO") IsNot Nothing AndAlso Request("GPO").ToEntero() > 0) Then CargaParametrosInicial() Else @@ -62,6 +70,7 @@ Partial Class AF_CatAF CargaPersonalizacion() + End If End Sub @@ -598,6 +607,8 @@ Partial Class AF_CatAF If ChkObservaciones.Checked Then ListPersonalizada.Add("Observaciones") + If ChkUltimaImagen.Checked Then ListPersonalizada.Add("UltimaImagen") + If objUsuario.AddUsuariosPersonalizaciones(UsuarioActual, "CatAF.aspx", String.Join("|", ListPersonalizada)) Then 'Alert("Personalizacion guardada") @@ -638,6 +649,15 @@ Partial Class AF_CatAF 'ChkSubProyecto.Checked = False ChkNombreCliente.Checked = False ChkObservaciones.Checked = False + ChkUltimaImagen.Checked = False + + If UsuarioActual.CveEmpresa = 13 Then + ChkUltimaImagen.Checked = True + ChkMarcaActivoFijo.Checked = True + ChkModeloActivoFijo.Checked = True + ChkNoSerie.Checked = True + ChkObservaciones.Checked = True + End If Dim Personalizaciones As String() = strBasePersonalizacion.Split("|"c) @@ -703,6 +723,9 @@ Partial Class AF_CatAF Case "Observaciones" ChkObservaciones.Checked = True Exit Select + Case "UltimaImagen" + ChkUltimaImagen.Checked = True + Exit Select Case Else Exit Select End Select @@ -762,6 +785,7 @@ Partial Class AF_CatAF 'GvDatos.Columns(18).Visible = ChkSubProyecto.Checked GvDatos.Columns(18).Visible = ChkNombreCliente.Checked GvDatos.Columns(19).Visible = ChkObservaciones.Checked + GvDatos.Columns(20).Visible = ChkUltimaImagen.Checked diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 145843325..135d41b25 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -1593,7 +1593,14 @@ Public Class ClsBancos ' Me.OnError("Ocurrió un error al guardar los cambios en el Banco", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) ' End If Catch ex As Exception - OnError("Ocurrió un error al guardar los cambios en el Banco IE Conciliar.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + + If ex.Message.Contains("Número: 2601;") Then + Alert("Ya existe un movimiento bancario con el mismo Folio: " & Folio & ".", TipoMensaje.MsgAdvertencia) + Me.OnError("Ocurrió un error al Guardar el Movimiento. Ya existe un movimiento bancario con el mismo Folio: " & Folio & ".", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Else + OnError("Ocurrió un error al guardar los cambios en el Banco IE Conciliar.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End If + End Try Return Retorno diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index c6e5e4842..59ece46c1 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -3538,7 +3538,12 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("Almacen", Almacen)) params.Add(New ReportParameter("Fecha", Fecha)) params.Add(New ReportParameter("FacturaProveedor", FolioVenta)) - params.Add(New ReportParameter("FacturadoA", If(DtMovimientos(0)("Nombre").ToString <> "", DtMovimientos(0)("Nombre").ToString, NombreCliente))) + If NombreCliente = "" Then + params.Add(New ReportParameter("FacturadoA", Recibio)) + Else + params.Add(New ReportParameter("FacturadoA", If(DtMovimientos(0)("Nombre").ToString <> "", DtMovimientos(0)("Nombre").ToString, NombreCliente))) + End If + params.Add(New ReportParameter("Observaciones", Observaciones)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("Folio", Folio)) diff --git a/Empresas/Grales/Formatos/Salida.rdlc b/Empresas/Grales/Formatos/Salida.rdlc index ec108c2e6..3428967bb 100644 --- a/Empresas/Grales/Formatos/Salida.rdlc +++ b/Empresas/Grales/Formatos/Salida.rdlc @@ -1104,7 +1104,7 @@ 0.79361cm 11.65255cm 0.6cm - 9.5262cm + 9.15694cm 4 - +
@@ -913,398 +918,354 @@
- - -
-
-
+ + + +
+
+
-
-
-
- - Utilidad +
+
+
+ + Utilidad +
+
+
+ + + + + + + + + + + +
-
- - +
- - +
- +
-
-
 
-
 
-
- - - - <%# Eval("Sucursal") %> - - +
+
- - - -
-
Venta
-
Utilidad
-
-
- -
-
<%# String.Format("{0:N2}", Eval("VentaAnual")) %>
-
<%# String.Format("{0:N2}", Eval("UtilidadAnual")) %>
-
-
-
- - - - - -
-
Venta
-
Utilidad
-
-
- -
-
<%# String.Format("{0:N2}", Eval("VentaMensual")) %>
-
<%# String.Format("{0:N2}", Eval("UtilidadMensual")) %>
-
-
-
- - +
+
+
+
+ Ventas por sucursal +
+
+
+ + + + <%# Eval("Sucursal") %> + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
-
-
+
+
+
+
+ Ventas por vendedor +
+
+
+ + + + <%# Eval("Vendedor") %> -
- -
- -
- -
-
-
-
- Ventas por sucursal + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + +
-
- - - - <%# Eval("Sucursal") %> - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - +
+ + +
+
+
+
+ Ventas por clasificación +
+
+
+ + + + <%# Eval("Clasificacion") %> + + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
+
+
+ + +
+
+
+
+ Ventas por marca +
+
+
+ + + + <%# Eval("Marca") %> + + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
+
+
+ +
+
+
+
+ Ventas por PS +
+
+
+ + + + <%# Eval("ProductoServicio") %> + + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
+
+
+ +
+
+
+
+ Ventas por Cliente +
+
+
+ + + + <%# Eval("NombreCliente") %> + + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
+
+
+ +
+
+
+
+ Ventas por Proveedor +
+
+
+ + + + <%# Eval("NombreProveedor") %> + + + + <%# Eval("Año", "{0:N2}") %> + + + <%# Eval("Mes", "{0:N2}") %> + + + <%# Eval("Semana", "{0:N2}") %> + + + <%# Eval("Día", "{0:N2}") %> + + + +
- -
-
-
-
- Ventas por vendedor -
-
-
- - - - <%# Eval("Vendedor") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
+ -
-
-
-
- Ventas por clasificación -
-
-
- - - - <%# Eval("Clasificacion") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
+ + -
-
-
-
- Ventas por marca -
-
-
- - - - <%# Eval("Marca") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
- -
-
-
-
- Ventas por PS -
-
-
- - - - <%# Eval("ProductoServicio") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
- -
-
-
-
- Ventas por Cliente -
-
-
- - - - <%# Eval("NombreCliente") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
- -
-
-
-
- Ventas por Proveedor -
-
-
- - - - <%# Eval("NombreProveedor") %> - - - - <%# Eval("Año", "{0:N2}") %> - - - <%# Eval("Mes", "{0:N2}") %> - - - <%# Eval("Semana", "{0:N2}") %> - - - <%# Eval("Día", "{0:N2}") %> - - - -
-
-
-
- - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - - - - - - - - - - - - + + + + + diff --git a/General/Dashboard.aspx.vb b/General/Dashboard.aspx.vb index d2c1284eb..21ba073fa 100644 --- a/General/Dashboard.aspx.vb +++ b/General/Dashboard.aspx.vb @@ -17,6 +17,7 @@ Partial Class General_Dashboard ddlDashboardOption.SelectedValue = "1" ' Opción por defecto: Ingresos LoadDashboard() End If + ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkExportarPDF) End Sub Protected Sub ddlDashboardOption_SelectedIndexChanged(sender As Object, e As EventArgs) @@ -28,6 +29,11 @@ Partial Class General_Dashboard ' Aquí podrías cargar dinámicamente si lo deseas en el futuro End Sub + Public Overrides Sub VerifyRenderingInServerForm(control As Control) + ' No hagas nada aquí. Sólo con esta firma el GridView deja de quejarse. + End Sub + + Private Sub LoadDashboard() Dim opcion As Integer = Integer.Parse(ddlDashboardOption.SelectedValue) Dim hoy As DateTime = DateTime.Now @@ -89,17 +95,13 @@ Partial Class General_Dashboard End Sub Protected Sub LnkExportarPDF_Click(sender As Object, e As EventArgs) Handles LnkExportarPDF.Click - UPDashboard.Update() - - ' Clonar todo el UpdatePanel - Dim clonedPanel As New UpdatePanel() - clonedPanel.ID = "ClonedDashboard" - clonedPanel.ContentTemplateContainer.Controls.Add(UPDashboard.ContentTemplateContainer) - - ' Usar el método mejorado - clonedPanel.GenerarReportePDF("Reporte_Dashboard") + DivIndicadoresLeft.InnerHtml &= DivIndicadoresRight.InnerHtml + DivIndicadoresRight.InnerHtml = String.Empty + pnlDashboard.GenerarReportePDF("Reporte Resumen de Indicadores") End Sub + + Private Sub CargarIndicadores(dt As DataTable) If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then ProcesarDatosIndicadores(dt) @@ -234,6 +236,53 @@ Partial Class General_Dashboard End Sub + Protected Sub gvResumenSucursales_RowCreated(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.Header Then + ' Limpiar celdas originales + e.Row.Cells.Clear() + + ' Crear primera fila de encabezado (grupos) + Dim headerRow As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal) + + ' Celda para "Sucursal" (ocupa 2 filas) + Dim cellSucursal As New TableHeaderCell() + cellSucursal.RowSpan = 2 + cellSucursal.Text = "Sucursal" + headerRow.Cells.Add(cellSucursal) + + ' Celda para "Año" (abarca 2 columnas) + Dim cellAño As New TableHeaderCell() + cellAño.ColumnSpan = 2 + cellAño.Text = "Año" + headerRow.Cells.Add(cellAño) + + ' Celda para "Mes" (abarca 2 columnas) + Dim cellMes As New TableHeaderCell() + cellMes.ColumnSpan = 2 + cellMes.Text = "Mes" + headerRow.Cells.Add(cellMes) + + ' Añadir fila al GridView + Dim grid As GridView = DirectCast(sender, GridView) + grid.Controls(0).Controls.AddAt(0, headerRow) + + ' Crear segunda fila de encabezado (subtítulos) + Dim subHeaderRow As New GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Normal) + + ' Subtítulos para "Año" + subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Venta"}) + subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Utilidad"}) + + ' Subtítulos para "Mes" + subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Venta"}) + subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Utilidad"}) + + grid.Controls(0).Controls.AddAt(1, subHeaderRow) + + End If + End Sub + + Private Sub CargarVentasPorSucursal(dt As DataTable) If dt Is Nothing OrElse dt.Rows.Count = 0 Then Return diff --git a/OP/OP.aspx.vb b/OP/OP.aspx.vb index da0815cfa..2396263f4 100644 --- a/OP/OP.aspx.vb +++ b/OP/OP.aspx.vb @@ -921,12 +921,29 @@ Partial Class OP_OP End Sub Protected Sub BtnAceptarCancelacion_Click(sender As Object, e As EventArgs) + Dim EstatusCancelacion As String = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("EstatusOP", "TipoEstatus=4") + Dim CveEstatusCancelacion As Integer = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOP", "TipoEstatus=4").ToEntero() + If Not CveEstatusCancelacion > 0 Then + Alert("No se encontró el estatus de finalización de la OP.", TipoMensaje.MsgError) + Exit Sub + End If + Dim ObjInventario As New ClsInventarios() + Dim CveMovimientoSalida As Integer = 1 + Dim CveMovEntradaDev As Integer = 0 + Dim CveMovMerma As Integer = 1 Dim TieneError As Boolean = False Dim MensajeError As String = "" ObjInventario.IniciaTransacSQL() Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL()) + Dim TipoMovimientoSalida As Integer = 26 + Dim TipoMovimientoEntrada As Integer = 27 + Dim TotalMP As Decimal = 0 + Dim TotalDevoluciones As Decimal = 0 + Dim TotalMermas As Decimal = 0 + + Dim Fecha As DateTime = NowADS() Try @@ -938,15 +955,10 @@ Partial Class OP_OP End If ' 1. Movimiento de Salida MP - Dim CveMovSalida As Integer = ObjInventario.AddMovimiento( - DdlAlmacenSalidaMP.SelectedValue.ToEntero(), 26, 1, NowADS, -1, - UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, - Observaciones:="Cancelación OP #" & LblFolio.Text) + CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenSalidaMP.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Cancelación OP #" & LblFolio.Text, Modulo:="OP/CancelanciónSalida") ' 2. Movimiento de Entrada Devoluciones - Dim CveMovEntradaDev As Integer = ObjInventario.AddMovimiento( - DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), 27, 1, NowADS, -1, - UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + CveMovEntradaDev = ObjInventario.AddMovimiento(DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónEntrada", CveMovimientoRelacionado:=CveMovimientoSalida) ' 3. Procesar cada material For Each row As GridViewRow In GvMPCancelacion.Rows @@ -958,11 +970,16 @@ Partial Class OP_OP Throw New Exception("La suma de merma y devolución no puede exceder la cantidad") End If - Dim CvePS As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(0) - Dim CveUM As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(1) + TotalMP += Cantidad + TotalDevoluciones += Devolucion + TotalMermas += Merma + + Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero + Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero + ' Registrar salida - ObjInventario.AddMovimientoDetalle(CveMovSalida, Cantidad, CveUM, CvePS, 0) + ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, 0) ' Registrar devolución If Devolucion > 0 Then @@ -971,17 +988,15 @@ Partial Class OP_OP Next ' 4. Registrar mermas si existen - Dim TotalMermas As Decimal = 0 + If DdlAlmacenMermas.SelectedValue <> "-1" Then - Dim CveMovMerma As Integer = ObjInventario.AddMovimiento( - DdlAlmacenMermas.SelectedValue.ToEntero(), 26, 1, NowADS, -1, - UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + CveMovMerma = ObjInventario.AddMovimiento(DdlAlmacenMermas.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónMerma", CveMovimientoRelacionado:=CveMovimientoSalida) For Each row As GridViewRow In GvMPCancelacion.Rows Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal() If Merma > 0 Then - Dim CvePS As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(0) - Dim CveUM As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(1) + Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero + Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero ObjInventario.AddMovimientoDetalle(CveMovMerma, Merma, CveUM, CvePS, 0) TotalMermas += Merma End If @@ -989,26 +1004,26 @@ Partial Class OP_OP End If ' 5. Generar pólizas contables - Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, NowADS, + Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, Fecha, "Cancelación OP #" & LblFolio.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) ' Salida MP (Abono 68) - ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Salida MP Cancelación") + ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Cancelación MP OP #" & LblFolio.Text, "Cancelación MP OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoSalida) ' Entrada Devoluciones (Cargo 68) - ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación") + ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación OP #" & LblFolio.Text, "Devoluciones Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovEntradaDev) If TotalMermas > 0 Then ' Salida Mermas (Abono 68) - ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMermas, TotalMermas, 68, "Mermas Cancelación") + ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMermas, TotalMermas, 68, "Mermas Cancelación OP #" & LblFolio.Text, "Mermas Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovMerma) ' Cargo Mermas (95) - ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Ajuste por Mermas") + ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Ajuste Mermas Cancelación OP #" & LblFolio.Text, "Ajuste Mermas Cancelación OP #" & LblFolio.Text) End If ' 6. Actualizar estatus OP - If ObjOP.UpdateEstatusOP(CveOP, 4, UsuarioActual.CveEmpresa) Then + If ObjOP.UpdateEstatusOP(CveOP, CveEstatusCancelacion, UsuarioActual.CveEmpresa) Then ObjInventario.Commit() TxtEstatus.Text = "Cancelado" BtnCancelarOP.Visible = False From f6ef4c58d183361d673a8e79b8e32a8dd60a59b6 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 13 May 2025 09:22:06 -0700 Subject: [PATCH 11/13] =?UTF-8?q?--=20al=20actualizar=20datos=20de=20cr?= =?UTF-8?q?=C3=A9ditos,=20que=20se=20actualice=20el=20globaldtproveedores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Proveedores.aspx.vb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index fb5d7c9be..cc1892977 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -4180,18 +4180,14 @@ Partial Class Compras_Proveedores Dim ObjPro As New ClsCompProveedores If ObjPro.UpdateProveedorLimiteCredito(CveProveedor, TxtLimiteCredito.Text.ToDecimal, TxtPlazoCobranza.Text.ToEntero, ChkUsaLimiteCredito.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlTipoFechaVencimiento.SelectedValue.ToEntero) Then - - Alert("Limite de crédito modificado correctamente.") + Alert("Límite de crédito modificado correctamente.") RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) + GlobalDTCompProveedores(UsuarioActual.CveEmpresa) = Nothing End If ObjPro.Dispose() Else RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros")) End If - - - - UPPCxP.Update() UpParametros.Update() From 2d398492f2e7c7c045ed6bb747c47786e29d18e8 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 13 May 2025 16:36:18 -0700 Subject: [PATCH 12/13] -- columnas de subtotales de ND --- Contabilidad/RepIVA.aspx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index b754cb2a7..334824b57 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -286,8 +286,15 @@ - - + + + Actos ND
16%
+
+ + + +
+ IVA ND
16%
@@ -295,6 +302,14 @@
+ + + Actos ND
8%
+
+ + + +
IVA ND
8%
From f12d8407a930c60945742cfadd46af4924d255ad Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 13 May 2025 16:42:21 -0700 Subject: [PATCH 13/13] DtDAtos campos nuevos rep IVA --- App_Code/DtDatos.xsd | 488 ++++++++++---------- App_Code/DtDatos.xss | 2 +- Empresas/119/Formatos/RepIVAAcreditable.rpt | Bin 147456 -> 147456 bytes 3 files changed, 246 insertions(+), 244 deletions(-) diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index 82d82319b..fed3d0787 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -12,321 +12,323 @@ - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - + - - - + + + diff --git a/App_Code/DtDatos.xss b/App_Code/DtDatos.xss index 000d79685..af01e0090 100644 --- a/App_Code/DtDatos.xss +++ b/App_Code/DtDatos.xss @@ -18,7 +18,7 @@ - + diff --git a/Empresas/119/Formatos/RepIVAAcreditable.rpt b/Empresas/119/Formatos/RepIVAAcreditable.rpt index dcfbc35fd4c43265a6d1129a8e2d15afe0ed574a..189c43bba70113ec71dbf79e3927405e27158f78 100644 GIT binary patch delta 23324 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 Ny@)hP3xK+@{{s~w1-$?O delta 23096 zcmZs>Q*dWZ_x>H*wr$(Cjft&^Ir+x6jfrjBwrx&q=gs}R|HEHbeR^H1tGf2V?&`h! z>gDGL?dJzwdkBI!Tku@lys{2Fi}v)0_sfk1oZ}3{wQ0Tm0sqBhp4q+{%WcT(zU~F8!y! z@r1e^2nbA+e2k$X^;-GOkQ)pi_zcRd2ur^!Z5L}^sf(RoXvE3Tzu0eTp^L-xZErR$ z3{|Mvph(aJ+tQLyU^%`8D9uZf2MP(-wusk0(8Z_co=d@U7@zBP=#I=w{jHmd(;xIk zpcdnngciOJX~L`}!YdAFGBwUxhLd?CEq7L)1)PCoZzj2ovf76zG-yR0;8cCf^kyu$ zcytQl6C1mr|Q~LBCpf=61qqrPIiyKXzSu8fvScAF4iS8#<7zeeGCW{Yd`hF})|>fnF@h8ZIfCmfLagb$ zctI;PG`tpxzwcwyH*`DGGIT63ZVOa@k^s5yF%~c5WU+j)T_II2r}yFjHAQ>j0idBZ zO-Gz^jttt>{kUQ#1Nuz9J=Gnj>+m|?>egI39~`vuBtRV_M`(ibuj3ao6@H_+DPJ5% z{k6YX!5@+ZQ(|>*e=4n{hC+Pda{ z2i~V!-CZ&X_w^hfY=KKz5N@f1X*ocA;=UpDwqh-W$tNi{=rSjs!?h^sF#wo*&7>m} zi#69zf_~Rt?j!#$G(uvD@CE(4i!k6oHV8QM8^ON) ziQtjMbg8Et;MI4;n^YiLp@nYsPP;UsI6Wg)7*Gn{#wG2GiZiZicbDPMAU>D4TLFzz z8ga&knJh6c!QO#sJGgsVA+)#&oX)icE#AdnlhA1;_nZd^P6PE&Jiyc}K-@n&fzS_3 zz{CeU^O>M~#;V4#N>V`kO6+Zcnw^bB*^COyXe4Ns-P zJ1xgcTB_2Ou*FDZ9?PMp&ql@Po>n^n{Xw3hpkY=`U^0AQNu$s;9Ynocc5BZ`Kbsk16*ol6G;V65*^ zW614qk_9M)Ja}R&PsknRRmc88{iWF|ExRw#*4V#lW?R4e!@Vb;S8rM zUI~GY{Ds!qu~j5ewTBiiIzd&m6tu)3C@!&VQLFwGAiL~A)A}S=MF*q|SU`Tutas-= zm^P5#;knk3OlV;h$)++nW>nWRUfZYqpj;o@54WVS8tb%7VCPB~!>IzKa{9$Gw4hwv z-4r?qEyndwYDm{U#it5I;UC*7tj?C5YNSMwpa@*s#FEK#tg38lYcVt&#^d*y98T${ z&$5UgS>hU9naA0V)`hj0JqDEVusI$U$bD%x@P3 zsdaxKu8|wAcyapjMVMzo|41b5)mIxvQ!yuwI+IMke6=ovV7EV!Np20W=O~iXqtY~Y zUXir9s70tGsUoJ>PraJGbT@Lccb;+7U`5h26z-FP&Tn{EFikK4%Jfyb#+7sNppGKK z0`FiSgc8I#iQR#4z2$H$;rpvH#*JzQ2g4Nr#&2pzoNppw+!YP{gHAp@vF@^*3-%1D z^$kNsG&JqN3Np5|oZ{Q%Mw`ZEb2xydSMEO?XEzM!ye@*})rq9jC9BLxU* z>V(pqzD&_Ko?p9wlQo8=H=aoDM4vc9@@$p4TO6Uwriqm1p~JMJFnz})231^$&*_l} z^jSP^q8U+Y0?ir9<|6I(H(b~G8u6UF^p}W%9Z6^%c-~jF93e$U{PbDpyQ1yzfV3ly zemn8ma-~_r8(uuC>MYS_mPYrFY!REq!VRn zssRmZ-B@MfjAvN+0m*-3BTSIVysvGFdOfC;3ebkjUAKWIsWAWWWL2|#+$nXyiZfB? z;@@>{g3T0lC{8PFe8;3}QF0YM3f8Wy3U?>>v86{H3Q7@GWEg(P=7R^0O=Ye8k zQj1Ok2nhIz9@&T!0`ST`6utTBUE>xH@K z6+f}d*Fh-~y2OMVgMEps;VQ(K#0Jy?pN|!p=++a^PV#-_dcbZfB*;|pLb$Lw#Ztr~ zoX8>$ONqTQE-SfN|3O)ktiW&M1X`6xdN`8;L{=txOHlJv7|+d}J$v0E-Cyr(hUY&ukNQM-lUd+R1^1hy-WUjGL&IF< z`Wp!6m>U(=0a+TTM91YNR7~tX4pT6nffn#a7=l0|d!>vYb2mMly^;=f8%P*=nQ|Nh zZgUcqBB0LAwRi}QkM^nY()2wel$Y;lH~g3D)X{+CQP+>~+^%Lc7Sy@@w@&AG`83{{ zl&`OBn37MPjBByzF)bn2tf)K<>Pa_}l7n9MWeVSiLr{F+rPit`M5rUD5YQT*f-sj> zO_dVy4jp5tV2rV{+ws$!24#mZ<8MF#w`wTxl}5s2f(DNvy(&IfyWT?`F`;%oPv@>) zlc6t3rb1T95wvo^cN382%e`z8JTLi59%F03qROH~+F#}u4hQdw5R_mseTLqYghaJv zDEj(b38=Nl*-n$*}bOAe*GI7!O~ zpHJ@nl^7XHvju@fSd2f`D6LBd(6O$8b=(a_$(vcG-R}E^j$U6&=E~W32nLrnekYnc zk*3imq(}}2maGk={o>2eF!}~xv-!))?hqZPPXY?l7m%EW-69KCsRuVX8G)YdjG@_( z;e^p93+&6Ne_ou*2TWM`e9Tm`V66=%u)_-^9#x@&AswX5;er;eF%DOUV`Ycb1n zi>)FDPY3rg+7Td~u=c86uPV_#Si$jndkaaWE4?gI1_6Py6 zX`052zWrs@Kt-S`bcN9Y&~7d`-t)=e(WB5e0s3~V0H7sUdLJ3eVM)}fi%WHs)@rTc zu8cTP3x3Bn`+gX1mapG8HVn9%oVo6iDNK{JcNbx*PHoK>KM*LQS#606dfsOZ*9(51A+n9TGmMwFQEur75ZD}+VHR7O0Z zD%T9wqzPZ8aD>kimrU#pQZIZrH(g_BHJ_^^D6*cD3n9y&1Xm%6&%s)6+eX0WLP_&$ zCskuEoA+*210ItBK5_*f*$L||eEQ35kaNy-2NU{`Dpf8hNg5@}9nT_EyuJd!D8Pf7 zXNwjP!1!_%+&JETOHX_Qdl!kEUdTV#@|Dcm($m=myQWw< z7Cw!iR9whBIr7xq$3}^;t2`--TWA+h7Ds_3ufn6KR=qgy?Md?Z208{>iW;}L=J-5= zd+s6+vNK*laqVt$%M{fxq!z{xqb-m3hB4FC37Vx2Q8DHr7CcsS|1K?vIu}@6?4!Da zrmHG>OKYb9!`X@o7}%YWV%ub(IpsHrzVpOZg2$^jHL_UqMf=b7i$P@)dL87-a+-Zu z+$XQ0iu)7KFMpDeNDRd#MDheBukf0iSi!1=zlN<0Z%f1$Dzl}%$>_+4xuc}3|j z5<$y>z@_?E#c{kR=#x#bBUX+zv)jLmd8vV-%wy-(SJ1b%anP+3C0!QTA5mEcy$IlB zq9&aIoD5}m1lP9b+c@_Kk3hP^UGGDEXp4P5XjdwMwO)}u_8+@+=N=gB9x%E?TH(W` zL)}B)8jb>={4bT#Bllgj5C=OMl<461)S6_LT8wmN)RDUX(suNr4tqa{-v!#9yJ6Jb zDB;o4Pei$|8Yjvp1&JC-x9e^%Kl(Da(j%!Mfn8&WQ=9|}XSFb;LW=PErpC_za{&kr zJ^Hln@pRK(@XSl)d-d`KT9hozBp)&SHbfSOj!{&t+^J&WJt)eFfnl~~Vgy$bb)tJ4 ztu-sgwuRdiJQiRINNnp`2J~JuwnUb$fq^}=8e+AHRQKH|Osuo9wqJnpqvloK$(lwI z2SNvFP|_9BD-PiqG*Ny2H2299E&-f;tBY4hl%YlDl{%P{LLuadLEZI^yz%12M9xIU zQ&(qcpM~xKM5=WA6~B>O+HPeOxtIURKsfSl!{7h0{SF7gWGQE4@br_Ro>z5HDsgj-K-SU7uCw}ym=M@fHHoMfe z)l7hvtUsqDBw z$WDrPSXm!Bt_Hv;!atCudre!Dv`2J;$y#-gl@nGBfut!5I$(F!^T5u;peP!IFnWRi z;y|S=0t+ROY=Zq5OW%pRG_^?o3G<(0Z`nb5S}}PaCf1fx z_Sl`$LV_)F#)_{Sjk+&yU+-i-V4+7AeU!@w0Jn4}uHrj&fSBA2dncE9?;ne z2LS|5U9GhlPC}f>S;j$#S0OsymX2KuOkzW`x?_qi11J=zC0aQ}eQ7qXj6fsg5o!Gu ztkY*5G28NMxMZ-VLW;K7Whf@<5QJ@YL_~eNnEX(!iFUiA&R$`u#4*W`sp!>(3C1oQ z08`IMQ2iDQCGkGZf_Nz1ZQM(PN9rMsfoo z&w^oOBemZVyZT*B^%YK@EOihGle@xGbZ`6#JEgdT_B#85sm5MH#3;Rm)>gqE8GQqs zkspB?Lz_l|3fiXkl8@zxJnM`D?l-^-xS zh~CvajLcrz1(JmPOS%AWhOYHP4@nS01VbtY430G5`k{j+3vRyPlwfKF%G!k@skvOQ zX*dbnZgkfwn=X15B~Y0n{y%RMcsBUsf0l$Zl|T5-&-xJl&*KDd`%&tNp473xFp1DK zxX`daIm!=kf%G&j^fbVb#Zdn(z}TOmRK8i@!vAIM|7EAMz;XY}c7L)Kzd2ws5WVvs z`R|8|A1;5m`r+n>#~*HgxclM$hld~De*gmp0($<5FF(Bg@bv@o4^RK;pT~aw@cpBI z{1c!Sp+(?c;FNt}4Z#25rFba~zK=Q{RrO2^!IVc$X~MVE=!bXE+48ENzVZwd8Lg`b zeK!l(VrO|~Y_D9-BJMfg$8Na@+#ismujLOtrQbu44TO9w9i zn=v;M(1DZ;=?wm4oAii{ayO$%l6c zZi0ZDE}0A@Hns;2EE_UsI?DxxgHb}-&s@Ni*f9z{kt%xJaXML?$hcoU;slV3BR02V zfriuoMMmQ%KS}}*`tGK;58=_vtbz-1P~B>KAb0lu^IQG&$4B7w_y8CaA4W#KD-Z=M z;(OlMaYV!;^6Pm>t*LP)J|y#xWar~tTu6SwPWt8^YyyOo7J`+pflA0?_diTb_!&~Y z$jk`cXUnz;l&XT0q#n?2BVmACrM%o@^TB?)H!$Gi&D7>8dJpzR@9bCLk#7$iG{{om zLpWFPI1y~t6-?}b_6x1u#K1s53_304UK6r4{jGe*zETo|1*XM@lN%|+J$mDQ<;=oC zi?c`JHv9`eUlvUoO;Ik8T89H0MMM*eW)jb;2MGT(q4)l?RG|_ zTa2Fc5-mw%(FPERn-`!X6)R)~ zwT{oX*T-}78dYQIN(c0J4HMVrX?lY3Dp z-oe(l+-60?zz-57c4G1(vk6}()hrh-28>f&O+41^$YrpE?&9?6mpU9?y7&#gj8k6m(OgoL! zd!UoRHYVwgaH31T^(e;rpyJ7r)V?KxMaI7h+&3d>#)G8-x?j3)A`F#(-5MFJzzkwR zANj|nFWbGIO>X0l%!gHxQ(1~O+-8VuXHnfyREcTpMkE0PP|dnM`W)W+AOj39H1T;5 z%T3%TPgr9sS&u{hGs-rl<(;?ImLD3Z)x zp!^&dAQ|Sf^teLDjO`&DkQ*f?9PN@q8k_RzG=9^g5Y8QWg}>~K8p)t0LRE}EAUzL3fSKkhI^Aev9*JzYb4w_^;dF)Cl%Uzsj!iIq zy@5nLT?^`>m-U#qV)1QrRD>u5o?5@>l~H&ZPmBPF6g-$VLNmm_ut>NOLvttdI8p9$ zVrZ@ouO)yY_f}|Uz0a0Kr)B%j&RSB!l2W+KBlUmKJ@JCID%_EcBfidt*Z*T}=_kx@ zjw7?9=SK)1wgilf_687jka4p!^OqgE_9B^dFUZ#ZH&#BvK^>Qvsl!x0$H!|uY}43Y zjmZw6PCit0-$PBRC)_x2Rh!(jZOIP+U9~!N`nWh(Yh@v>wJk6%Z+0Z~`E}*oL%bdv zNZ=pQc&s9;(l$-NQtsg)rj5E8y?$fDey-J`?uQ*q^Rx@I2GiwrbV(X6amE^b`i%`# zy-NHtxQG?*SBsum(;9D_7y!ECpQ;T>yHf&yU>hD4oz^j3!ZMc5k3IFIi(xYB8-#Z6 z315K0$j8Dx0X`)%{cFFSP$73NS4|J63kyUE9y-dp;^}Ml!NSPXQ+pwv#X%^91y}0UP=#Dgf2|7W zBb&B1$^bh;dypYL2)DlB0fr!Re;$N=EKV_GLj|RuX)Gg$qh4?UBw-u&F8= zcEmn$8joba5b*6?dm*T3TDfwGxE(VpP+Qwqx)P>^u|DGfQMI@5d(%^HaZQ!Q3AFy> zz16MdhJa#S2w*%JoZNeK^`yk!}NI{%sg_FnA}5o15&Op9IOU}tH)F4-N0(gdV}Wo zhoMFvkgYkMURpCtiPMTJm8LMjDbsp#=LI25KD&hRLNSft!=Z}nDnn!4D%|m*BKnPZ zq1z^K3xaS&%XPt_hw;gQ8?Hwam9$pYU5-`L_ETi{j0a=+tVHrVB5jrv8mC_%pDSu0 zd!i2ewXa2BSEL|+c~k#omaI4$uhGEwj11W)?THRgq#fnG#`!n%IkN$P&)TNl%7{|I z&~K^4FltJ$8oP4wi^Sv!6s~_Oz-DAzX={W<37G{9GJGam@qD?v^4H3#a8OPi|8e}^ z-lf#BCLW=jDm-6w`|GJ7!~RwRUM0e=N|%GUzoh7rW?6H>JJ=rQPFz>8C)4g)Vcm}L zsYp1e!oj5XZ zhzO3uwb;1ZR=(QzhQ$f=Xtd1|4HufbzUu&x(U=)N>3@ybLje(Q{$A6d4QqtlWBm!o z)ZzVhyG_u{{$_j;patKHoW45T`<%vmu4w?nr{2%^)Ub{8gyDJ==;5^KW}bsCls>u<#$X=CT((DaxUpx z?&LC29?z)9pIf5xuy(e4j~kec&3ty+409|x=^Ti>)PlOlw(J7_kn;8^5Zj>qo;CnM zQ_<`iM~j5#DLs8DBxPo91!e-tI|n_QoFCO_@`qE^BUefG`1aT(D`}bVKx-y41(EMV zIvZsh&(Def(x>hr3S8XhWL2vH%4C@@E%Vz$_s_*e%pR6?C8~=-V)M zF!F&5kPB`&O4vlL=i~iyBlmJ(E)0MlliN&o!H_CU@dV0JyVQ+mD2ffbnFhGqRRPLw zGHWK>Ko3rsgu-L=LPy@k62|Q+E5~fnt+c25_+yA4Fejja zw^qZgChEFgn(Vs&DDbdiKM9nqPZ%d2p#lfqk=Gv|YyPX&4YF^g6Us=c+Y<0R(2Zf; zROvLblm^;C;JJU0muvN1M4266rrv+Q=Mk|GV@sIud7@&VP!!g3x7Jq;W|YN+4Fe>> zIUQF5cRQ~Z#;-r{#*2fft@RX^dU45ZSYuf#2%c?pBWdX$I`LBah+&QB%7Z zc{wMFtndhCLVh4U$&+{GU8uuDh+H-E_7)LJ6YTdnWj-1UBZ_7w7BK*}OV0c^J7~#= zb{-?@6>&05OrIYAI;jv;#DR|TN>>nDpIsY5pwYjl^&@b@YU+V8+HtlP{{}a{mV=CX zD!FtSE_e1WDVXb^>KaJw1irO%?mVv`kI#yXe)tHVFd*l^EKxO2*Uo>P@dt|5qC zw4ZI3(5a`0pN9=mxMHx8`6qvspF81=B4=b)j4A6x%Np82(AfbFSG|Hqv76g;q`>cO z!I`S}(DWG=dc7zJlwlCe)S#qq&=lj02;`Ykul=+-4jB7B!e;MyK)qdi;YVWPoF!yT zl_+~C{ZDeUxUX@rUMN$Cqv@VqLLe93#|JmJU-MLA_PIL?v=|Rp(50EFORF_H0y%5t zcR@*)%?SzyaXkQSx=&UqZ7CWwXPhTJ;)V|xU4?Prwse%bi)!v%NNa`K<{l2SX; zLZ(`TAcsU-H5?cTdjqDon#?!!YRy%YTl(KFm=S#%bFmniK;AYfnd_81EiQ z;6es!vYV+p!8zHr!AGlyj%0SZ(nOwZf8L>fEj%4{GSfM{c>N~w*Z$mz{#~H%vClVW znh>XhxmSKmmLx*!D5?`$lN*3eS_(!DP+`TB$Mgkc6IcpDjZ>~3jz^Uhr47OSbJ%H8 z*J_%hBpkNRx6BQL7cwEI(ZYc=*3^P@U+)<3EIo!}fIjaboFX47Uu=5BdY)|BgZ~;$ z(yJWR2G(~Y2H*h8ng*P{w9SJq_B?h5k)9KGn(z|9f2chavQ(3*?qUMnbop9l0}l6X7k3rg1EJkf-;lE6(Xl{m*f2yUSE$Rvd85S zt~u}zq3pAoW>NS?(W;_kR=Pc-Ejau8b{-xJ zCwM`dnXl^kbAw-x9?4kp{SGyz)C@90n$Qcvz}Z#bx$9kg!XSCO;s$U4Vg)Mi;gVEm zAihm8Ab3(71*&Si5!9R}_=79ZxG3k$&KMK42jw$Sfdu`bznFmGs(U=#7HKuha2f$s zZZ;k%#~UkMhKvf5T72teq~6oV&K=~$aJQ0a13dD?yk*6o=?X~3WH!JKZF;mnpFx)z z=rDW1$lnQpEn^ z1m3|l)3GTx{rknhHTKm6=~WA`*{)fJyS+65;>jn{;SZw_+Y1?Sh5KiWN{ z`23P>?z*t(IdYMML1gIZl8=CgrztUn)Fkcr!Dy^^g=Nqo-k;$12dx3UE?chg%qZ= zniJ$XlL{{aJX5}ul1%_gi!~a5X9SDtH?@kqRFPqD@)eB8G7uHf!_Z;|LhpNj4TpH` z&OhGsY15}X<^AA2rCXpudiRs?pEt6^vB%!g08S_h^>Vzh)V@&`omb4L`MEN;3;y_2K z@5Ar?A{Le@(Wg<`bPA$eAY1D4?Dh1*seQ~yh_+Ux_ubBeWaOS7ybespIeCawyAOjU zYiGnT7&C!=S)ek1&q6MloxBAZc+4Kaq8CE&9uh^Zcx}rkp_{AHuhi?^$UH=vC`7+& zP8<1kL2c)n3F`rB<`pI;dii}w8@BXIO?B%{x1Nw@i!wH@e(?le>wpXysw2`h6A#nm z38cUPUNZAkTh^))o^ZBOtATJ8S-wG=q3Ja~TW!uR>GHe_jI3$WhT#r^cJX3BAV}51 zU^E|a^9(d#{iG4821ute4XzJsxISfPVidqdem#Uy64(Olkl9MA_5X2osb#v8)0(zi z!#E_nkWg_N)a0Rlz%ROi71Hr-N)aW(x4_vkn6h`xf_oC@P2HJDZOi+7w!$}PQyx^_ zI^6nDmNzQI&>aMOc(t;5M#68?EV11*wNtS1bDarhI)#{6PWGJ-$B&Ph`b_xHU1lcQ zuXTzcJ#GL#bfFqV<#S)?Eg*?^j)G&$+!L%cERz&fDQ+^H1p|gYZYupihIIo+Qx5Wz z==_g!Y*qs#kiHJyOfUM-=VCd6w=Y&*m$bpk66CAsd6gTvXmZSUnQ*p|eWCwSNr?k> zhq!cT^ZVRgti;C>_I2Y*_OLO)*Mm!$pdbOA&}X)RG0$GEp1o@n@_(U6RUYz$_s z?gBn^u0vLrZMzzf@MD0Xtl!eK-a5U4b5(nI6DC2_i1E5ZXVGFAD=n2OH`YnBW=G&# z>C8j^Ku-;nS1}FtZHjq!+qHMMx@&-AT>wBXx9KFfBL$oE3!%{$&VWqF!Qz*ABU_@@ zD>EFWKYy&JNlT z&1LmpDL+!u6i`<>|7_!f;^TyD)GPp|q5Zt4Eu|~vG`)qU6T8yOc$9|JnzfbExVZ^K zZEXZG7C_IElk4sUT?cuHSq<*-apYhkaSa4ixcYzWY6S#Imso6RNOAHA2Z;cYMb=IE6?V?@9q1)Fj;J zGu0~A+qEIS8Iz&S7!=&f+jb+|wGBcnf0ys?*(jm}3f_6C`m7I-Xk%4lYAf1`h87uK)Gd)=1L>|KrVkSC-FqwZ+n&-V4>*H#y>UBc z6$EOXFxa}5n(>p4Mw-#w&XbKya9Sau! zc{&3-J*exkR+FOO6j}_18w?g|#7l6I4)qsER;Ac~OxK$3@RSl7{kg`Xs|tWT7gEK2 z<`fW3mr6DCEfNOcjM?-A$T1Fel`h<<|J4H~3ntfT)U>Og{fBvxFI5YsW z#aTu_%cfj&oqW22#0IXPvk9)EX3t7%#fyYo%bQhG_@e^|uq;3p6(lC96buohoRZN7 zLizjJxiKT%OqHETrJucM5JQbLq(NiS!=&QuR#CG(uz*jkRg$oQsjY>xd}}*;_yF7k z;RAwP$ZZq%w#E}0$iDeNqGH`0$GyLy`FMOceW-Q#``ppsq1wGY29E%%CAhXM;w{la zY+vxwc`gjlmP69ms8DM5=6`s_Lzd{VVw#1mg;q+C-`PRKse%}5S)ET^Sl6fta*v?) z!dLCQ$LB%Kd9aaX8l%=1s9m{waU(yX!_=iW>8YCn4A0Ed>d014xBb*x&DpC`{Wk_A&+| z&v19q;t<=CP~)}j*4P(sbD^(>AxBPVj5)l!taFzRo|f<9FHvM_e{uLnCv4IniAXG@ z*$s}DVlOXpiAi!N_6q)5gTIZ6i<7Q$(Lw?Q$KbS?mZZRRynUtnX`;V?+MjvXJ^)h`@^aPFC+z)E76CgOO6)WRSoa1JxkuWwCkuQ zIHwpY{ghUL+6UvHkTnS^Vetj22ZIY)_RJB!ahU%M%{+?zw9~NpZ)k@=SLWFGRk#7* ztcB`!WMo-DblJKp_PFzhZfdOp2P#yEMYgS5BI8&{#`7?`=^{c+fHnHbHkFG@ZC|q^ zlJ?LCY%Ck96>P4zf(|9cV86}gxVSeg%K}0UMGg|RN4BR%+6mJD{%WQW=BB!1vg_ICL+mYZn zet0)M=4rN=p!F&5nZ}3hD9|T%8nR{l%e4PGdh&YCrwH96eWYGyd$vP>Y-YynI&HFS z-scTCr{=5Lm)4?M#ypZ&hCBY>3<)aApZdXV`0ZckT>n+X_t~+LcBlcnnCnAH={?9sQ`ai8>5q7#pUC~AoYnyCbih&83=Et4`ULzf4h8pL4Zu&$!Qf!&A|u6O3*ra;rbPi9`)<_e z<$x-Ier>rIhgSD1nD+mv+_ z5rUD`OjYffU1AT`l~`r4jQW+Jv44Qz;y?;_5nAKcb@ry6<5W_;x}M00PV7? zHfztXY!WBkuGierVt0PRDr5k}o2Z+&TzLB@)=3_lI4o=b#39jgSf!voYcoLR*Ubd7 zC+rIAjaWgltx}xOezW0Jz%&-ohj^&ewr3wRlV>rN*Lv(zH4K)Q;%+Q*{Sm}?71Gd? zw(apfWkHGfD%i)Ns-GY9%GpckQU7rt}$+O18dzoI6S+MdY#`mQlcK|Er}YAyrp zh!xyx6vS6R?@6^Y1B?@8QFZ@SFnGtbYdm7GjcbIX<)ge1f<(;ZwdhR+B%iUE(Za-+j8S%%Dqv>Fws|#T4V(= z-bnvSXM{jI88Z?C+pED9h03@MacrE8G_E;eW2-XaL9zdI52{V|mT(mbtM>1SKu7gd zl$MvptzMME!;3eIiEOmv3ZRKc!W6PQTHvDfg{_8qGmAmiR}cAQ@U5*=u}K14-dmR; z6e`bM-q|jA68v=iQHOR7C>H1pazmh$c+si1Ee`%(crUZ4R*V+4={dM4!9qnmQs_|;eu9c{N;dXc&u5&*#1Vz5pTRd2Cc%Auy}%j z&N8^E6F=T3i!P&@q=9K1fU>0DW)}Zi^EjjLkX$yHI?=iM_fRet5Yfg0ZI7GzK^f)Q z@N|IC=AWnjhXe?g{kISHGIu>v*0%p57`-(HJtu=><+71I6Cc-b+XTiRa5ANBP z@_W*&R=|`#&amI2PoK{Ix3lz$0g)M?rv7UQ<^|Xu|=n7yBf+l ze@i-0mFtc{ghpXMK)p!QY7{x@BY7;Khz7Yyc&MbvX0Mbzvpd=DTyN3EU%@-tyxxY% zbq+Fdvmx?5c?AuMGF`^7_tW&ChAWCzh?-$Gp=LXdN?@G?QEBFE?srfF{lS@}7_OUw zx3^i&pbCAcYpp>BuMu=nx}+*bkxk&HtrL&>z+-UKy&(|`KpFYl0Y zM(fKykNeBA0^!=_qFZVu?Eq7OeO6u|RO*hm=O;3@Nq7YQ=g15W!JMHmml&M!$c zcU4=iWFjF8VB<4bwGkB7sP`aClp{pG&jo)|xBdZ$m-!vHsX0iUF{DCkO^6Et%T|zi|H|nk=q_)kk9fu^`=LBaDdeG$o zKOzidF?2g`oGF*fAO5oG=e_VB_FI>@fp!&%hzX1W+H?eU#p3ibztqQFm}W}Wby2a* zzzV1)JrvN4hUU3OsRMR0>E6Q0I^2Sl2A=A6$9tXC_#fj|SDuBHCM!(PuK+~SqE|EG zxxZm6?*9dIY{haV{e!B?!j=u;g)EKM*66mxUES%h^S7&y{tNaxlBq_|6iskmS+d7O zaI^pf&89$#CMSM!VE6>)Us!ZzFE-lD&|>C_MaBDvaYU@1waS-?O>Rr1o$&FulUl1|!<)8W-m_ zqLZSEbEP)(QX>ky^BdXIRy`0n;JS>C@u(Hi@?3h+#5zYcEx6YDTT*RkGPl8Cv%9na zP%BEV$Rvm%q8T+3T$Gth^I&7e-i9J|1C@`tq9`*9ESQ&tsgj_v6wX|x57}al8$6j& zoFwcR^azn`e(I1<7D3lF{C5@Nt>1lYL^W3%5u&bxe$z<;2uXvkiaw^4E@mb<^2zlC zcOcyk#|#$B4V+JPlaFj1;AjgBP{=d_-0zg_*al5{T~yUW81Ou#C!Gou^>QbJw4zbv zk{QPJf_~>=faN>?4f4})X#x6GtlO_6)*=Q@9TC+vq%mIDO8=KPSKdi^S>Anhg*W)b zL305AEzktN{szqV)id(WVndPt^wnDDqk-f6+lNGft?VU`CJphitA z4)th)@#Ls3U;krK+AY>>YkKBc8>n^`AkS5`JW47Q60RQB?y(oEOrCWM&*SU`_M1mV z$fePPX;-n8WhlQIm+$|n`YSPXo#kTki<22#F-ZZq_eJOR9@qIStHf^KPBr`HsbdIj z+hqu6g!(cZCbQno6#H?lldD%25NyQ+1+?DGX=imgUKM`)k^yY#&L`7yc!mn}vaLb~ zW8Wq~V!Aa{!f6@Pqw`KXy`*Q;WFXn|R#2(Ng!a@}o(ogMXAB{IRW2ao(|PAxfh7uG z^#*h{mL&)V|BBJKe~>cMRQH={d^^>)&SS+6T++g^{@twRZ5J1ckfdk^kintQLvruE z92lS^LaKjE8C8nD-I$vORz=)#r*S@{#$ROwE;FJTp*UG=g-zn-oUNUz_FOkockb76 z72|Y+ze>)=FzkRu%f^01BN9-{sVrM#+3K!*{G%s zZmaPktr;IYrio5PKOn^n7?N%CMwI5G@tk^dOnA75rf3TPt73f29(*c7+I=s-gGlPj z$+LPz0Ghnugv!LmIjD<@lCms``R36ISRl4uyxVdLA=S?0Aaz>l`;|G^^^H@bBo>PS zmc&&B!1^fGF4M#v`LMIPW$SMy_^oDwc$~-m2vzZl_ca&b2{^q4)O_;BWQWlg7_9+M z93&4La|Eix{4O2hXygmkX!*#-SaWJ_TsPQ;1WY{0tP`aAnmu+{UGN2TDZje}{|4-+ z2tl)Gsba(^W0QL|wQX*Yv{_u$tG>)G0 z;w`2|3>@Gd7WNuIS~{hP^ne?{9`^ z1DPvs_N(XvP^B4k_Of>Ce{rt(c(;|8UepTfl1PGNolK0hI>y!(B(ME!=&_JtwpWG! zUn_Uf7U!a60T?Yj5Foe*CqaT+a0%`j+}&M1Jh*#scXxO9;DN#&3U}*s`p$aLJ?Y=D zNBdc8z05HMTatqsY2SKZ1!`XiowPXabTl*QV&`el8~E2`@u^gFR)DeAXNk`YsT}?= z*`EXK>?WG_4QLdCxRqNq?SJA4DUzWog#lZ4jrM|(wV98?Mzfb4hiXSZ+MQL95HmD%x0c1Hq}2o zVHiqlPR1l2h3eJC>-pp$!+i%^%;}j_Lp&j*#6a;?}kDkMGz520povu8O=F} zF#6EIqy9%I(-+m(57s~8=>r4>%RMpj^7+0$&}hML!QgYR>_eT*!_+xYH#J}yQNKG9 zdlIcOgN7sI!Quf5I$E@4Z`d`BP4-^PB;}vDMqjZllqaVh@-5R%5D0QTd7Q!+T=jm| zmWS$ObxNK_Mm0o(Nd1b7#Mzd!IV0z7_D)ZMi&Z~bon3-!rj&O6Z>&Aaf8)vO_PhO{ z4f#u}_#Q@9S;f!>6TWFdjTG;$8F}`<<_ugwBIDp@uZ_oIBU;jH%261)6m)`dgnoE` zPM_^IsP8QFh^A7H57pC=sa(hHItpCP9I0~*+4yIm!p97k$1?u0@tCSzwP(>wmNeK6 z=&LC3jBMRjN9)B^k4qn7R)mgZ-&%Bzpt`t}eu5>Tu|}7D3x8aUrWj?(#cHw>CkX68 zwcSI?Ox1wmrg-RVNliMk06St3QF|AC8G>n@x@gewWHqRou{2Pag3#EyLk@@6r>2}M z@G;%ILb>!^T%9pJ0(f-QiN|EQW13Qdm>Xf=DB`*I7^s!rcf(LTnHo{M6s(iViE%&7^Pl? z1#XuOM(i$-?a1RO3lPG1ybwKQ<$OBQ`>q32JLknMgZQ?eQc;LPgE%f2#ldx(WZd^J zw0*2?M$Di$IvzChnQxAL0n!CaHNO7!c?A%raYRI}3=d-= zHyBu4(&}5qYSfbvoknugwJV^JqRZzds}S#}wLt$!Rhpx!`5!Vf3Sk-K>G5G!%PwVV z{^fehB4!S;_d+QUp|~;+`v-aFW8L{;@4^=r8-5)38P~oep@R+rH0YgY^v(WAxev55 zNiM}t4-@cYa~qguckh)0-+xjq9?>~T`$@)N`_{bped0ywi^_%d)&c`D6GRvai{7$V z6HV$N(DXH#nY;j%0(KGSP+7WE6{J@6(UZ2`49DltdwUrT>=aO z=jSBl)QgWQe~>Z1rlVDPi*9HgaY6elzPO{@=)sCUX)Rl(nL)JgfBc@3Xc)hF+Q`O0 zTKdp$?9HVaS#>BI{H3sXU)dz=(T6=q7|UfYiyg~1@AuR!=qph2yiU|`j(&gL#a;*H z`U5j*uNL_*$|`OaT$AC*Jt0e4M2GC&=a^()2JWz)J&WfeQ$cr{<4EiBcUuwC_&Fh_ z*}r8%I|xr?+%>KsaSwYa18I9IXd2oKT>o)ZYE%+!B;u*Q5SxYNSqkcir&Nu?BL3Ln zK(D2$fT?ASb^s6>$;q!^Tp%7+QZL3W_NK5rm%G;c#1-`nPbY9l=&D?D0VyE-R%2@uoA^qvIXU5Tbq@Uy(4z2_ zN6MiSdEPFT&#?0=PhEn`RZx?SLTW>oV~&?7N}CO?I4po}yti)@PuSuNB>;Mg_X(O1 zlS#fBn8p4~=M>UbG*(!p-ph#1Y$2CLX&`Sv<9FQ|kBRoOqSoMN?oGB0s8W(ddg&8Ht;1b?NXl(5WUU6^gX*VM|7ioN~!^^YK z3zu3tAEeKW&{j74XFf&@=3%(fe81P?BXWG$nSGD==&Bci)&6r5DB<8U> zMfhWs7_K3jyupK()Cf!5gSg7cdm$iOmF~t$Xc`5t{6t$c8e>J$Ie4SuC`AvIy&TI$ z)hm`F%pn`7x#>F6Cm;D@y$Vr30X%+5+$9vae;V(Bg6lyMZa`_Y+h`$CwZ@jgZkvnk zHz2^EtO~OKJNSFUph~1v;jd#lrA%Lcm7HQ?bKK8a-+$Jl(+;zT#LY$fwD@9&8+o0e`g842fG=D%JL&sLxBU+X9HDe=eV53KimwwU=TTlPa&a&;hGVE z>BY9m!TXJ^U5^UNDG4}#U$odTdhNyZYye(;HhwILsc-jkmY1k>f7LZ>v)_yg8#ouv zqq?aGl<)^uCT>NNE%FvMe8z824QYdaqO%EN-mfQCfHADEPp95sP^ObtG|0y08fVe_ zi23KJHN0U96k|bKs`^eUf^4`R5a5KHU93s#AoDKq_E_Vl%^DDio=|yv7xK+;i!3d3_+;1IF)ntPKM0SvVxBA-ATWN@Xwv(Pd}u-0SgOd%gB%wyyF2 zNflzJl+e}HhO-g5CfBBZjU&Qw1%$!%*6C##N{>D7<<&t{`_tfe60j|NlglJ?IH z?M{uKzU)>Mq0rGsRrwi|%3;jz$TbifS=@M9H@NZ?syudDE#i_|gcajOy7Z8k27#LV z%E+}@h{)8Kvvzj?biZ$4dy&)we`cL1Ue=7~Gs}Ty%4>+aThi=(0^HFofR;%qKFck- z@QSU>JJklO&b=a2ch7<^gyli2_XIB<|MT^>H0KhgI4Z1Kbr6cxE%+9Rz{^bB2q~}j zG!k9CsVkwXYaQVWAu+o~5N*n*iRC=*6nR+;m@&6@bza0w6=z=d_cgV4pXZDtznfoz zC-_I6OVo$k{0qN!D5{Lk0S`O01YM@(K*B}wCA~`bS^P%BN%zL-T>s^8{tYX7>>qV1 zxGij|mTjAq$k`;HkRTKX4A48TyXlwrUIMF6ZLgCQT4JnOW#r`UEZ{3+I1pLF(- z<6PZsCIQ6F0}#&!tiH?4N7>`vkP%*n;S7NE?3~UjF2mscx%U`b}x;|>Z3TGuQ)n;?=X-)V~J=dDD2^O${QxVf=}|i zEX#Ov(fomn#<-!sLmwxCm+V(p|1Oo7mA#|^0?OjC3H*u>=Og0Fd}kM7OADJ1VNf<@ z(AF@W)-j9zmK1P4luBw!a$X_b z&B@Q41NLM`qI(lk2d|}7bwRg;_LT+V5^J*4ywC&E{IgX<8Bc2wd-xaJcLt8U;a{1m zLdbp($LI6@PT-uzZ*@W1smNOwP!vap;z2T7vn@a&Vf!Q$_6&!d_%%5T-x_zLZkzfL zfeWf~_Y8R{cxNna{B&Xp%zuilgcBcy>h$nDaM|VXd%VLADz+KH`~f@^)I;bEH|a7+ zX8OZv+I=E;_V3_uoy=Nhz;6OFbG{%S*gielA2(&^RAU^W8mq+Szz&?1f|vqt={1r}9e zx9HcJQS*`!=ex7pap{SeulfuwIm~|Xys8sq!oP^6Z&t4nP~9XgE2AOQ|OiNdW-)4ijkBoJQwgAdj-4^kbb{>wR!F*>`0tEx%`v{Dc_Guw$TLt zUZ8Q_EG_IOi=~&orL#pqICR<~hWgu+H}-=O-j5?mr?s0SpV@r+pHuL)ilkSp!=k{2 z;4X?Nm(@>ji#gO|M1_6Ihj*;gQokZ>=&EBp(mc?aSVJ6PS~Kh+J`mTyYrp)Z{#>J}LaVb*7m_sT0hWwH>Bz53?fRZsiV& z!kgmlhVzX-Z!odimRd+r?)*{;CoG`I_%s83orfKx3kq|IF}*#h&$a%;?DpFl&x@be zI}Ji*grILRGfFcT&X>PX{jvLn+Z2!}VI`6-y*9Jn&SpV&U~z6jAraW0Y%|M|q~?Xy z@S8f@2CcH)-aKByei=vqaJ2h-oZgx-8Ej+D!t~ZC1@2Z(KuPPP&0%)fo)^xDxj6j& zA}Y1>umy4DK6=MSf=$`PW=4368k{0inst#nne)quljJk38F7BmW^cX1W(9~Z;z<&% z_DXc-P${8COIJYm=s{{@`{Yx~CE~;vcm0#-sin-c*nP)jFWDGk{WU!G9*jXc>fjzf|_&6_ty zSGRKJ_GO2I;tVJ8!jfU6E08kUL2*=28;^mRRhmRGcL&DRSt zzk4lffOh09yY3;hJ8L!CKgH#X(lYEUdP9m@%cbK`v6BsgK=RR>qA4l2b72hGw6>(g z&wDr*JVMTZ0-k4gK}D92i5-~?vD}@Fb#QB^bL9p_GB?PDMQq&8%EQ1PBOP=Y2-;~Z znYUr1E>fgf$MlXb#qUUojmTk+dUHMu0|BWjv**zq60OK5({wu5vWx|;@38e?MeM3o zGA^A!EoQS*MAnED#^N558JO-hb|V8dUwLJsnN%~2V_!01xuL1w*wP#IvDj2}t55_3 z;o8h9QU~sKV9wEEoKaxL)kPq*fLG>V`aL{QwOo01EEZ0&%yFU;z+DG3RvqG&Fl%t} z$&L2x-+ve8<$Nm$Z<5mqi@8d~Y}H_UXjo9_3i;}xQGG#Uqh5^E8B4`k!L*hE)b8Rw z@3jf-JbOQd>`sDi#7wK=Hh#2c7{0u@YPK|exx4Z5Pz=OyyYUf)l~%!DSTl_6byAj`ZEOK-V;TmNTN`k;-Gi-Gi?3}mBe zs^n9(_74_QwZFd+wlc~-_OQ+1RZOCrN`YBu4;)--JNV&@FKRE> z9@nz8%ZjmK*J0IXfU$p8AV<#U;wfr4fc1G&6I#1TOl2K-A6hVt7_FWg=BI>J1N>$`$Vtd&^`JN7W>)@Qgo&2zb3N;8Yy{a`h89-zk-Xdf0G*MPvSD1!(D?rc1OFBpF?H`bc)? z_3?aDe*elDrLe0&$WTF2BSuRd!Fu(S@DN@s?Q8f*DqX3xAuhLGQPbS?d$3VskZ z^uV}P=s*mrD^FUQj6g(NWOb#h_zVQXY7bzJm6+7gPk+mbkjjfa(kz?3iOSwwpZT8s zuDdYzYund`G5-TAKcUjct7bg~Snpq$`3tWSbQp&*BJ{KwW?l94b(R%^2kuKeT^K>4x7~BESDUSD9af7LKev;Aw|_U00(Ze^i^YjAC512W zMAhz;t?wxKOdl#DzEkXlswDsdy*#0%QEvds8q_l7-trjL+=8_@n>t4RTD5P#Gfoc1 z$d<$HcAlp^M{BT2wGn03+_vn|XQ)=M*41>H)e5*#|2Z2Of{KVYq;M=M47WSx>JD!z zx07lbI5xsQZ?faUe45IY~Q{!O;1^jT(``bwI8Kh*^M;)b{9NM;4;o4qX<* z<$dHw!mEf(SvY^@Vgh6t*=p7%G5gYdxsj^E>=_%gHZ?p~EVIB7>Fu272odqErFayU zCcR&uS()(|u5PiKM#RP*N`fu~!mhGxcMZ?!h+>Q+-gJ zue;k}vm=x!)kiZM()6cFsYQgjO{Rdc{?H=`UHh+&4Et~QMkK}a4%+wMMh*qcJ2YbR z<7b$1*dPBN;K#ql$6fOo4Gba7|3pas5lCP-|6!W{!!!SHgh{i;IB;piP=@Szu6Lp#PIJGz+r9^q~9~u%wi^