|
|
@@ -141,7 +141,7 @@ descargarPDF(id: string) {
|
|
|
}).subscribe(({ dataAc, dataAd }: any) => {
|
|
|
const data = dataAc.registro[0];
|
|
|
const data1 = dataAd.registro[0];
|
|
|
-let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
+ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
|
|
|
const doc = new jsPDF();
|
|
|
var pageHeight = doc.internal.pageSize.height || doc.internal.pageSize.getHeight();
|
|
|
@@ -149,15 +149,15 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
|
|
|
doc.addImage("assets/img/Encabezado-PDF.jpg", "JPEG", 6, 10, pageWidth - 8, 27);
|
|
|
|
|
|
- //TITULO DE LADO
|
|
|
+ // TITULO
|
|
|
doc.setFont("helvetica", "italic");
|
|
|
doc.setFontSize(10);
|
|
|
doc.text(`DATOS GENERALES: ALUMNO`, 10, 43);
|
|
|
|
|
|
- //LADO IZQUIERDO
|
|
|
- //IZQUIERDO NEGRITAS
|
|
|
+ // ENCABEZADOS EN NEGRITA
|
|
|
doc.setFont("helvetica", "bold");
|
|
|
doc.setFontSize(8);
|
|
|
+ // Lado izquierdo
|
|
|
doc.text(`Nombre del Alumno:`, 10, 50);
|
|
|
doc.text(`C.U.R.P.:`, 10, 55);
|
|
|
doc.text(`Lugar de Nacimiento:`, 10, 60);
|
|
|
@@ -165,18 +165,44 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
doc.text(`Teléfono:`, 10, 70);
|
|
|
doc.text(`Institución de Procedencia:`, 10, 75);
|
|
|
doc.text(`Motivo de Cambio:`, 10, 80);
|
|
|
+ // Lado derecho
|
|
|
+ doc.text(`Edad:`, 135, 50);
|
|
|
+ doc.text(`Sexo:`, 162, 50);
|
|
|
+ doc.text(`Fecha de Nacimiento:`, 135, 55);
|
|
|
+ doc.text(`Padre de Familia puede recoger al alumno(a):`, 135, 97);
|
|
|
doc.text(`Madre de Familia puede recoger al alumno (a):`, 135, 105);
|
|
|
+ doc.text(`Autorizo al alumno(a) a retirarse solo(a):`, 135, 112);
|
|
|
+
|
|
|
+ // VALORES EN TEXTO NORMAL
|
|
|
+ doc.setFont("helvetica", "normal");
|
|
|
+ doc.setFontSize(8);
|
|
|
+ // Lado izquierdo
|
|
|
+ doc.text(`${data.FiDI_Nombre1} ${segundoNombre} ${data.FiDI_ApellidoPaterno} ${data.FiDI_ApellidoMaterno}`, 39, 50);
|
|
|
+ doc.text(`${data.FiDI_CURP}`, 23, 55);
|
|
|
+ doc.text(`${data.FiDI_NacCiudad}, ${data.FiDI_NacEstado}`, 41, 60);
|
|
|
+ doc.text(`${data.FiDI_Domicilio}`, 25, 65);
|
|
|
+ doc.text(`${data.FiDI_Telefono}`, 24, 70);
|
|
|
+ doc.text(`${data.FiDI_InstProce}`, 48, 75);
|
|
|
+ doc.text(`${data.FiDI_MotivoCambio}`, 37, 80);
|
|
|
+ // Lado derecho
|
|
|
+ doc.text(`${data.FiDI_Edad} AÑOS`, 145, 50);
|
|
|
+ doc.text(`${data.FiDI_Sexo === 'F' ? 'FEMENINO' : 'MASCULINO'}`, 172, 50);
|
|
|
+ doc.text(`${data.FiDI_NacFechaDia.padStart(2, '0')}/${data.FiDI_NacFechaMes.padStart(2, '0')}/${data.FiDI_NacFechaAnio}`, 166, 55);
|
|
|
+ doc.text(`${data.FiDI_RecogerPadre}`, 198, 97);
|
|
|
+ doc.text(`${data.FiDI_RecogerMadre}`, 198, 105);
|
|
|
+ doc.text(`${data.FiDI_RetirarseSolo}`, 198, 112);
|
|
|
|
|
|
- // Sección dinámica de personas autorizadas
|
|
|
+ // PERSONAS AUTORIZADAS (TÍTULO EN NEGRITA)
|
|
|
+ doc.setFont("helvetica", "bold");
|
|
|
doc.setFontSize(9);
|
|
|
- doc.setTextColor(0);
|
|
|
doc.text("Personas autorizadas para recoger al alumno(a):", 10, 90);
|
|
|
+ doc.setFont("helvetica", "normal");
|
|
|
|
|
|
+ // Lista de personas autorizadas
|
|
|
doc.setFontSize(8);
|
|
|
- let y = 95; // Posición inicial para personas autorizadas
|
|
|
+ let y = 95;
|
|
|
let personas: any[] = [];
|
|
|
|
|
|
- // Parseo de datos
|
|
|
if (typeof data.personasAutorizadas === 'string') {
|
|
|
try {
|
|
|
personas = JSON.parse(data.personasAutorizadas);
|
|
|
@@ -189,7 +215,6 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
personas = data.personasAutorizadas;
|
|
|
}
|
|
|
|
|
|
- // Impresión de personas autorizadas
|
|
|
if (Array.isArray(personas) && personas.length > 0) {
|
|
|
personas.forEach((p: any) => {
|
|
|
const nombre = p.nombre || 'N/A';
|
|
|
@@ -210,16 +235,13 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
y += 5;
|
|
|
}
|
|
|
|
|
|
- // Calcular nueva posición para las secciones siguientes
|
|
|
+ // Ajustar posiciones para secciones siguientes
|
|
|
const nuevaPosicionBase = Math.max(85, y + 7);
|
|
|
-
|
|
|
- // Ajustar posiciones de las siguientes secciones
|
|
|
const sectionPadreY = nuevaPosicionBase;
|
|
|
const sectionMadreY = sectionPadreY + 40;
|
|
|
- const footerY = Math.max(230, sectionMadreY +20);
|
|
|
|
|
|
- // Resto del contenido con posiciones ajustadas
|
|
|
- doc.text(`Autorizo al alumno(a) a retirarse solo(a):`, 135, 112);
|
|
|
+ // SECCIÓN PADRE (ENCABEZADOS EN NEGRITA)
|
|
|
+ doc.setFont("helvetica", "bold");
|
|
|
doc.text(`Nombre del Padre:`, 10, sectionPadreY + 7);
|
|
|
doc.text(`Nacionalidad:`, 10, sectionPadreY + 12);
|
|
|
doc.text(`Estado Civil:`, 55, sectionPadreY + 12);
|
|
|
@@ -232,6 +254,22 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
doc.text(`Celular:`, 63, sectionPadreY + 32);
|
|
|
doc.text(`Correo Electrónico:`, 100, sectionPadreY + 32);
|
|
|
|
|
|
+ // VALORES PADRE
|
|
|
+ doc.setFont("helvetica", "normal");
|
|
|
+ doc.text(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno}`, 37, sectionPadreY + 7);
|
|
|
+ doc.text(`${data.FiDI_PadNacionalidad === 'M' ? 'MEXICANO' : 'EXTRANJERO'}`, 30, sectionPadreY + 12);
|
|
|
+ doc.text(`${data.FiDI_PadEstadoCivil === 'C' ? 'CASADO' : data.FiDI_PadEstadoCivil === 'D' ? 'DIVORCIADO' : data.FiDI_PadEstadoCivil === 'S' ? 'SOLTERO' : data.FiDI_PadEstadoCivil === 'O' ? 'OTRO' : 'SEPARADO'}`, 74, sectionPadreY + 12);
|
|
|
+ doc.text(`${data.FiDI_PadNacFechaDia.padStart(2, '0')}/${data.FiDI_PadNacFechaMes.padStart(2, '0')}/${data.FiDI_PadNacFechaAnio}`, 126, sectionPadreY + 12);
|
|
|
+ doc.text(`${data.FiDI_PadEscolaridad === 'S' ? 'SIN ESTUDIOS' : data.FiDI_PadEscolaridad === 'B' ? 'BACHILLERATO' : data.FiDI_PadEscolaridad === 'L' ? 'LICENCIATURA' : data.FiDI_PadEscolaridad === 'M' ? 'MAESTRÍA' : 'DOCTORADO'}`, 164, sectionPadreY + 12);
|
|
|
+ doc.text(`${data.FiDI_PadDomicilio} (C.P. ${data.FiDI_PadCP})`, 25, sectionPadreY + 17);
|
|
|
+ doc.text(`${data.FiDI_PadOcupacion}`, 27, sectionPadreY + 22);
|
|
|
+ doc.text(`${data.FiDI_PadLugTrabajo}`, 36, sectionPadreY + 27);
|
|
|
+ doc.text(`${data.FiDI_PadTelTrabajo}`, 39, sectionPadreY + 32);
|
|
|
+ doc.text(`${data.FiDI_PadCelular}`, 75, sectionPadreY + 32);
|
|
|
+ doc.text(`${data.FiDI_PadCorreo}`, 129, sectionPadreY + 32);
|
|
|
+
|
|
|
+ // SECCIÓN MADRE (ENCABEZADOS EN NEGRITA)
|
|
|
+ doc.setFont("helvetica", "bold");
|
|
|
doc.text(`Nombre del Madre:`, 10, sectionMadreY + 7);
|
|
|
doc.text(`Nacionalidad:`, 10, sectionMadreY + 12);
|
|
|
doc.text(`Estado Civil:`, 55, sectionMadreY + 12);
|
|
|
@@ -244,37 +282,12 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
doc.text(`Celular:`, 63, sectionMadreY + 32);
|
|
|
doc.text(`Correo Electrónico:`, 100, sectionMadreY + 32);
|
|
|
|
|
|
- //IZQUIERDO NORMALES
|
|
|
+ // VALORES MADRE
|
|
|
doc.setFont("helvetica", "normal");
|
|
|
- doc.setFontSize(8);
|
|
|
- doc.text(`${data.FiDI_Nombre1} ${data.FiDI_Nombre2} ${data.FiDI_ApellidoPaterno} ${data.FiDI_ApellidoMaterno}`, 39, 50);
|
|
|
- doc.text(`${data.FiDI_CURP}`, 23, 55);
|
|
|
- doc.text(`${data.FiDI_NacCiudad}, ${data.FiDI_NacEstado}`, 41, 60);
|
|
|
- doc.text(`${data.FiDI_Domicilio}`, 25, 65);
|
|
|
- doc.text(`${data.FiDI_Telefono}`, 24, 70);
|
|
|
- doc.text(`${data.FiDI_InstProce}`, 48, 75);
|
|
|
- doc.text(`${data.FiDI_MotivoCambio}`, 37, 80);
|
|
|
- doc.text(`${data.FiDI_RecogerMadre}`, 198, 105);
|
|
|
- doc.text(`${data.FiDI_RetirarseSolo}`, 198, 112);
|
|
|
-
|
|
|
- // Datos del padre
|
|
|
- doc.text(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno}`, 37, sectionPadreY + 7);
|
|
|
- doc.text(`${data.FiDI_PadNacionalidad === 'M' ? 'MEXICANO' : 'EXTRANJERO'}`, 30, sectionPadreY + 12);
|
|
|
- doc.text(`${data.FiDI_PadEstadoCivil === 'C' ? 'CASADO' : data.FiDI_PadEstadoCivil === 'D' ? 'DIVORCIADO' : data.FiDI_PadEstadoCivil === 'S' ? 'SOLTERO' : data.FiDI_PadEstadoCivil === 'O' ? 'OTRO' : 'SEPARADO'}`, 74, sectionPadreY + 12);
|
|
|
- doc.text(`${data.FiDI_PadNacFechaDia.padStart(2, '0')}/${data.FiDI_PadNacFechaMes.padStart(2, '0')}/${data.FiDI_PadNacFechaAnio} `, 126, sectionPadreY + 12);
|
|
|
- doc.text(`${data.FiDI_PadEscolaridad === 'S' ? 'SIN ESTUDIOS' : data.FiDI_PadEscolaridad === 'B' ? 'BACHILLERATO' : data.FiDI_PadEscolaridad === 'L' ? 'LICENCIATURA' : data.FiDI_PadEscolaridad === 'M' ? 'MAESTRÍA' : 'DOCTORADO'}`, 164, sectionPadreY + 12);
|
|
|
- doc.text(`${data.FiDI_PadDomicilio} (C.P. ${data.FiDI_PadCP})`, 25, sectionPadreY + 17);
|
|
|
- doc.text(`${data.FiDI_PadOcupacion}`, 27, sectionPadreY + 22);
|
|
|
- doc.text(`${data.FiDI_PadLugTrabajo}`, 36, sectionPadreY + 27);
|
|
|
- doc.text(`${data.FiDI_PadTelTrabajo}`, 39, sectionPadreY + 32);
|
|
|
- doc.text(`${data.FiDI_PadCelular}`, 75, sectionPadreY + 32);
|
|
|
- doc.text(`${data.FiDI_PadCorreo}`, 129, sectionPadreY + 32);
|
|
|
-
|
|
|
- // Datos de la madre
|
|
|
doc.text(`${data.FiDI_MadNombre1} ${data.FiDI_MadNombre2} ${data.FiDI_MadApellidoPaterno} ${data.FiDI_MadApellidoMaterno}`, 37, sectionMadreY + 7);
|
|
|
doc.text(`${data.FiDI_MadNacionalidad === 'M' ? 'MEXICANO' : 'EXTRANJERO'}`, 30, sectionMadreY + 12);
|
|
|
doc.text(`${data.FiDI_MadEstadoCivil === 'C' ? 'CASADO' : data.FiDI_MadEstadoCivil === 'D' ? 'DIVORCIADO' : data.FiDI_MadEstadoCivil === 'S' ? 'SOLTERO' : data.FiDI_MadEstadoCivil === 'O' ? 'OTRO' : 'SEPARADO'}`, 74, sectionMadreY + 12);
|
|
|
- doc.text(`${data.FiDI_MadNacFechaDia.padStart(2, '0')}/${data.FiDI_MadNacFechaMes.padStart(2, '0')}/${data.FiDI_MadNacFechaAnio} `, 126, sectionMadreY + 12);
|
|
|
+ doc.text(`${data.FiDI_MadNacFechaDia.padStart(2, '0')}/${data.FiDI_MadNacFechaMes.padStart(2, '0')}/${data.FiDI_MadNacFechaAnio}`, 126, sectionMadreY + 12);
|
|
|
doc.text(`${data.FiDI_MadEscolaridad === 'S' ? 'SIN ESTUDIOS' : data.FiDI_MadEscolaridad === 'B' ? 'BACHILLERATO' : data.FiDI_MadEscolaridad === 'L' ? 'LICENCIATURA' : data.FiDI_MadEscolaridad === 'M' ? 'MAESTRÍA' : 'DOCTORADO'}`, 164, sectionMadreY + 12);
|
|
|
doc.text(`${data.FiDI_MadDomicilio} (C.P. ${data.FiDI_PadCP})`, 25, sectionMadreY + 17);
|
|
|
doc.text(`${data.FiDI_MadOcupacion}`, 27, sectionMadreY + 22);
|
|
|
@@ -283,46 +296,48 @@ let segundoNombre = data.FiDI_Nombre2 || '';
|
|
|
doc.text(`${data.FiDI_MadCelular}`, 75, sectionMadreY + 32);
|
|
|
doc.text(`${data.FiDI_MadCorreo}`, 129, sectionMadreY + 32);
|
|
|
|
|
|
- // Update the addText helper function to support alignment
|
|
|
-const addText = (text: string, x: number, y: number, font: string = 'normal', size: number = 8, align?: 'left' | 'center' | 'right') => {
|
|
|
- doc.setFont("helvetica", font);
|
|
|
- doc.setFontSize(size);
|
|
|
- if (align) {
|
|
|
- doc.text(text, x, y, { align });
|
|
|
- } else {
|
|
|
- doc.text(text, x, y);
|
|
|
- }
|
|
|
- return y + innerHeight;
|
|
|
-};
|
|
|
-
|
|
|
-// Then update the footer section to match your original implementation:
|
|
|
-// Pie de página
|
|
|
-addText(`La información que contiene esta hoja es verídica y estoy de acuerdo y enterado de los lineamientos y ofrecimientos del CEN.D.I SONRISAS Y COLEGIO`, 10, footerY);
|
|
|
-addText(`ABC, así como del convenio de ley del mismo en cuanto a mis pagos de inscripción y colegiaturas.`, 10, footerY + 5);
|
|
|
-addText(`__________________________________________________`, pageWidth / 2, footerY + 25, 'normal', 9, 'center');
|
|
|
-addText('ACEPTO', pageWidth / 2, footerY + 30, 'normal', 9, 'center');
|
|
|
-addText(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno} Y/0 ${data.FiDI_MadNombre1} ${data.FiDI_MadNombre2} ${data.FiDI_MadApellidoPaterno} ${data.FiDI_MadApellidoMaterno}`, pageWidth / 2, footerY + 35, 'normal', 9, 'center');
|
|
|
-addText('Manifestamos que las firmas aquí mostradas son las autorizadas para firmar la documentación y las boletas del alumno(a).', pageWidth / 2, footerY + 45, 'normal', 9, 'center');
|
|
|
-addText(`____________________________________`, (pageWidth / 5) - 10, footerY + 55);
|
|
|
-addText(`____________________________________`, (pageWidth / 5) * 3, footerY + 55);
|
|
|
-addText(`${data.FiDI_MadNombre1} ${data.FiDI_MadNombre2} ${data.FiDI_MadApellidoPaterno} ${data.FiDI_MadApellidoMaterno}`, ((pageWidth / 5) * 2) - 24, footerY + 60, 'normal', 9, 'center');
|
|
|
-addText(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno}`, ((pageWidth / 5) * 4) - 14, footerY + 60, 'normal', 9, 'center');
|
|
|
-addText(`Página 1 de 5`, pageWidth - 30, pageHeight - 10);
|
|
|
- //LADO DERECHO
|
|
|
+ doc.text(`Página 1 de 1`, pageWidth - 30, pageHeight - 10);
|
|
|
+
|
|
|
+
|
|
|
+ // Añadir nueva página para firmas y leyendas
|
|
|
+ doc.addPage();
|
|
|
+ doc.addImage("assets/img/Encabezado-PDF.jpg", "JPEG", 6, 10, pageWidth - 8, 27);
|
|
|
+
|
|
|
+ // Posiciones iniciales para la nueva página
|
|
|
+ const startY = 50;
|
|
|
+
|
|
|
+ // Pie de página en nueva página
|
|
|
+ doc.setFont("helvetica", "normal");
|
|
|
+ doc.setFontSize(9);
|
|
|
+ doc.text(`La información que contiene esta hoja es verídica y estoy de acuerdo y enterado de los lineamientos y ofrecimientos del CEN.D.I SONRISAS Y COLEGIO`,
|
|
|
+ 10, startY, { maxWidth: pageWidth - 20, align: 'left' });
|
|
|
+ doc.text(`ABC, así como del convenio de ley del mismo en cuanto a mis pagos de inscripción y colegiaturas.`,
|
|
|
+ 10, startY + 10, { maxWidth: pageWidth - 20, align: 'left' });
|
|
|
+
|
|
|
+ // Firma y nombre del padre/madre
|
|
|
+ doc.text(`__________________________________________________`, pageWidth / 2, startY + 40, { align: 'center' });
|
|
|
+ doc.text('ACEPTO', pageWidth / 2, startY + 45, { align: 'center' });
|
|
|
+ doc.text(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno} Y/0 ${data.FiDI_MadNombre1} ${data.FiDI_MadNombre2} ${data.FiDI_MadApellidoPaterno} ${data.FiDI_MadApellidoMaterno}`,
|
|
|
+ pageWidth / 2, startY + 50, { align: 'center' });
|
|
|
+
|
|
|
+ // Nota sobre firmas
|
|
|
+ doc.text('Manifestamos que las firmas aquí mostradas son las autorizadas para firmar la documentación y las boletas del alumno(a).',
|
|
|
+ pageWidth / 2, startY + 60, { align: 'center' });
|
|
|
+
|
|
|
+ // Firmas individuales
|
|
|
+ doc.text(`____________________________________`, (pageWidth / 5) - 10, startY + 80);
|
|
|
+ doc.text(`____________________________________`, (pageWidth / 5) * 3, startY + 80);
|
|
|
+ doc.text(`${data.FiDI_MadNombre1} ${data.FiDI_MadNombre2} ${data.FiDI_MadApellidoPaterno} ${data.FiDI_MadApellidoMaterno}`,
|
|
|
+ ((pageWidth / 5) * 2) - 24, startY + 85, { align: 'center' });
|
|
|
+ doc.text(`${data.FiDI_PadNombre1} ${data.FiDI_PadNombre2} ${data.FiDI_PadApellidoPaterno} ${data.FiDI_PadApellidoMaterno}`,
|
|
|
+ ((pageWidth / 5) * 4) - 14, startY + 85, { align: 'center' });
|
|
|
+
|
|
|
+ // Número de página
|
|
|
+ doc.text(`Página 2 de 2`, pageWidth - 30, pageHeight - 10);
|
|
|
//DERECHO NEGRITAS
|
|
|
- doc.setFont("helvetica", "bold");
|
|
|
- doc.setFontSize(8);
|
|
|
- doc.text(`Edad:`, 135, 50);
|
|
|
- doc.text(`Sexo:`, 162, 50);
|
|
|
- doc.text(`Fecha de Nacimiento:`, 135, 55);
|
|
|
- doc.text(`Padre de Familia puede recoger al alumno(a):`, 135, 97);
|
|
|
+
|
|
|
//DERECHO NORMALES
|
|
|
- doc.setFont("helvetica", "normal");
|
|
|
- doc.setFontSize(8);
|
|
|
- doc.text(`${data.FiDI_Edad} AÑOS`, 145, 50);
|
|
|
- doc.text(`${data.FiDI_Sexo === 'F' ? 'FEMENINO' : 'MASCULINO'}`, 172, 50);
|
|
|
- doc.text(`${data.FiDI_NacFechaDia.padStart(2, '0')}/${data.FiDI_NacFechaMes.padStart(2, '0')}/${data.FiDI_NacFechaAnio} `, 166, 55);
|
|
|
- doc.text(`${data.FiDI_RecogerPadre}`, 198, 97);
|
|
|
+
|
|
|
// -----------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
//segunda página
|
|
|
doc.addPage();
|
|
|
@@ -574,7 +589,7 @@ addText(`Página 1 de 5`, pageWidth - 30, pageHeight - 10);
|
|
|
doc.text(`${data1.RegA_BecaCurso.toUpperCase()}`, 135, 108);
|
|
|
doc.text(`${data1.RegA_BecaCurso.toUpperCase()}`, 179, 108);
|
|
|
doc.text(`${data1.RegA_RequiereFactura.toUpperCase()}`, 54, 128);
|
|
|
-
|
|
|
+ doc.text(`${data1.RegA_MetodoPago}`,56, 133);
|
|
|
doc.text(`${data1.RegA_RfcFactura}`, 46, 138);
|
|
|
doc.text(`${data1.RegA_NombreFactura}`, 68, 143);
|
|
|
const direccionFactura = data1.RegA_DireccionFactura === 'NA' ? 'No Aplica' : data1.RegA_DireccionFactura;
|