X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/29250339e4e74bacfc1be0a287a5b291e317dfaa..d9a7195317de72589adf4522101eb6b9d7dc5763:/diagramas/clases.dia?ds=inline
diff --git a/diagramas/clases.dia b/diagramas/clases.dia
index 272a0e0..493e917 100644
--- a/diagramas/clases.dia
+++ b/diagramas/clases.dia
@@ -28,7 +28,7 @@
-
+
@@ -71,19 +71,19 @@
-
+
-
+
-
+
-
+
-
+
#Promotor#
@@ -163,54 +163,7 @@
-
-
-
- #cap#
-
-
- #Cap#
-
-
- ##
-
-
- #CAP al que pertenece.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #disponibilidad#
-
-
- #Horario#
-
-
- ##
-
-
- #Horario en que está disponible para atender Solicitantes (un objeto? como lo representamos? texto libre?)#
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -219,19 +172,19 @@
-
+
-
+
-
+
-
+
#Persona#
@@ -385,98 +338,6 @@
#apellido#
-
- ##
-
-
- ##
-
-
- #Apellido completo.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #telefono#
-
-
- #Telefono#
-
-
- ##
-
-
- #Número de teléfono (con código de paÃs? provincia? es una clase?).#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #calle#
-
-
- #string#
-
-
- ##
-
-
- #Calle del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #numero#
-
-
- #int#
-
-
- ##
-
-
- #Número del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #departamento#
-
#string#
@@ -484,53 +345,7 @@
##
- #Piso y departamento del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #codigoPostal#
-
-
- #string(8)#
-
-
- ##
-
-
- #Código postal del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #provincia#
-
-
- #enum([provincias])#
-
-
- ##
-
-
- #Provincia donde se encuentra el domicilio de la persona.#
+ #Apellido completo.#
@@ -576,7 +391,7 @@
##
- #Fecha de nacimiento (es una clase??? Para mà sÃ)#
+ #Fecha de nacimiento#
@@ -590,7 +405,7 @@
- #Sexo#
+ #sexo#
#enum(M,F)#
@@ -599,7 +414,7 @@
##
- ##
+ #Género de la persona#
@@ -620,19 +435,19 @@
-
+
-
+
-
+
-
+
#Afiliado#
@@ -656,7 +471,7 @@
-
+
@@ -715,7 +530,7 @@
- #nroAfiliado#
+ #codigo#
#int#
@@ -724,7 +539,7 @@
##
- #Identificador único de afiliado (con alguna codificación? int?).#
+ #Identificador único de afiliado.#
@@ -761,16 +576,16 @@
- #plan#
+ #fechaBaja#
- #Plan#
+ #Fecha#
##
- #Plan de la obra social al que está adherido.#
+ #Fecha en la que el afiliado solicita la baja#
@@ -784,16 +599,16 @@
- #titular#
+ #moroso#
- #Afiliado#
+ #int#
##
- #Titular del grupo familiar (si pertenece a un grupo familiar). Si no pertenece a un grupo familiar o el afiliado es el titular, es NULL.#
+ #Indica cuantos meses adeuda.#
@@ -805,54 +620,99 @@
-
+
+
+
- #activo#
+ #existe#
-
- #bool#
-
-
+
##
-
- #True si está en actividad (afiliado). (No convendrÃa poner Plan = NULL en caso de no estar más afiliado?)#
+
+ #bool#
+
+ #Devuelve True si el afiliado existe y carga el resto de los datos correspondientes. Si no existe devuelve False. Si existe más de uno, se pueden obtener con getNext().#
+
+
+
+
+
+
+
+
-
+
- #moroso#
+ #getNext#
+
+
+ ##
#bool#
-
- ##
+
+
- #True si está activo pero es moroso (debe más de 3 meses).#
+ #Si encontró uno nuevo, devuelve True y lo carga. Si no devuelve False y queda intacto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
+ ##
+
+
+ #bool#
+
+ #Guarda los datos del afiliado en la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
-
@@ -860,19 +720,19 @@
-
+
-
+
-
+
-
+
-
+
#Prestacion#
@@ -955,16 +815,16 @@
- #nombre#
+ #codigo#
- #string#
+ #int#
##
- #Nombre de la prestación (descripción breve).#
+ #Código de la prestación según el codificador#
@@ -978,16 +838,16 @@
- #codigo#
+ #nombre#
- #int#
+ #string#
##
- #Identificador único de la prestación (esto está por el codificador? o porque nos pintó a nosotros?)#
+ #Nombre de la prestación (descripción breve).#
@@ -999,28 +859,51 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ #fechaBaja#
+
+
+ #Fecha#
+
+
+ ##
+
+
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
#Plan#
@@ -1029,7 +912,7 @@
##
- ##
+ #Plan para los Afiliados de la obra social#
@@ -1038,13 +921,13 @@
-
+
-
+
@@ -1106,13 +989,13 @@
#codigo#
- ##
+ #int#
##
- ##
+ #Código de plan.#
@@ -1126,16 +1009,16 @@
- #precio#
+ #categorÃa#
- ##
+ #float#
##
- ##
+ #CategorÃa del plan. Cuanto más grande es la categorÃa, mejor es el plan#
@@ -1152,13 +1035,13 @@
#descripcion#
- ##
+ #string#
##
- ##
+ #Una breve descripción del plan.#
@@ -1172,16 +1055,16 @@
- #fecha_de_inicio#
+ #permanenciaMinima#
- ##
+ #float#
##
- ##
+ #Permanencia mÃnima (en meses) que debe cumplir en el plan antes de pasarse a otro.#
@@ -1195,29 +1078,90 @@
- #permanencia_minima#
+ #fechaBaja#
- ##
+ #Fecha#
##
+ #Fecha en la que el afiliado solicita la baja#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #borrar#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Cambia fechaBaja a la fecha actual del sistema#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
##
+
+ #bool#
+
+
+ #Registra en la BD todo el esquema del plan#
+
+
+
+
+
+
+
+
-
@@ -1225,19 +1169,19 @@
-
+
-
+
-
+
-
+
-
+
#Prestador#
@@ -1320,53 +1264,7 @@
- #direccion#
-
-
- #Direccion#
-
-
- ##
-
-
- #Domicilio (de nuevo, representación???)#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #zona#
-
-
- #Zona#
-
-
- ##
-
-
- #Zona en la que se encuentra ubicado.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #codigo#
+ #cuit#
#int#
@@ -1375,7 +1273,7 @@
##
- #Identificador único (para nosotros? o por codificador o algo?).#
+ #Número de CUIT.#
@@ -1412,16 +1310,16 @@
- #cuit#
+ #fechaBaja#
- #int#
+ #Fecha#
##
- #Número de CUIT (lo necesitamos!?!?!).#
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
@@ -1442,19 +1340,19 @@
-
+
-
+
-
+
-
+
-
+
#Cap#
@@ -1537,16 +1435,16 @@
- #telefono#
+ #codigo#
- #int#
+ #string#
##
- #Teléfono de contacto (de nuevo, formato???).#
+ #Código único para identificar al Cap (se usa para referirse al Cap en listados, etc)#
@@ -1569,30 +1467,7 @@
##
- #Nombre del responsable (gerente) del CAP (lo usamos para algo!?!?!?!!).#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #direccion#
-
-
- #Direccion#
-
-
- ##
-
-
- #Domicilio fÃsico del CAP (como lo representamos?!?! Objeto? texto libre?)#
+ #Nombre del responsable (gerente) del CAP#
@@ -1609,13 +1484,13 @@
#horario#
- #Horario#
+ #string#
##
- #Horario de atención (representación!?!?!?).#
+ #Horario de atención (texto libre)#
@@ -1636,19 +1511,19 @@
-
+
-
+
-
+
-
+
-
+
#Autorizacion#
@@ -1672,7 +1547,7 @@
-
+
@@ -1754,39 +1629,16 @@
- #tipo#
-
-
- #enum(manual,auto)#
-
-
- ##
-
-
- #Tipo de autorización. (esto si tenemos subclases no deberÃa existir)#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #afiliado#
+ #porcentajeCobertura#
- #Afiliado#
+ #int#
##
- #Afiliado que solicitó la autorización.#
+ #Porcentaje de la prestacion cubierto por la Autorizacion#
@@ -1823,7 +1675,7 @@
- #fechaAprobacion#
+ #fechaRealizacion#
#Fecha#
@@ -1832,7 +1684,7 @@
##
- #Fecha en la que se aprobó la autorización.#
+ #Fecha en que efectivizada la autorización. Es decir el dia en que se rechazo o el dia en que el afiliado la utilizo.#
@@ -1855,7 +1707,7 @@
##
- ##
+ #Fecha en que vence la autorización.#
@@ -1869,16 +1721,16 @@
- #estado#
+ #aprobada#
- #enum(emitida, pendiente, aprobada, rechazada)#
+ #bool#
##
- #True si fue aproba, False si no (no convendrÃa poner NULL en fechaAprobación?)#
+ #Indica si la autorizacion fue aprobada o no.#
@@ -1892,16 +1744,16 @@
- #prestacion#
+ #fundamentosResolucion#
- #Prestacion#
+ #string#
##
- #Prestación (no serÃa Cobertura???) para la cual se pidió autorización.#
+ #Una descripcion coloquial del por qué se aprueba o rechaza la autorización#
@@ -1913,167 +1765,59 @@
-
+
+
+
- #porcentajeCobertura#
-
-
- #int#
+ #getEstado#
-
+
##
-
- ##
+
+ #int#
-
-
-
-
-
-
-
-
-
- #observaciones#
-
-
- #string#
-
-
- ##
-
- #Observaciones sobre la autorización (deberÃa ir sólo en Manual o no?)#
-
-
-
+ ##
-
-
-
-
-
-
- #descripcion_rechazo#
-
-
- #string#
-
-
- ##
-
-
- ##
-
-
-
+
+
-
+
+
-
-
+
-
+
-
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
#Zona#
@@ -2082,7 +1826,7 @@
##
- #Región geográfica, cuya mÃnima unidad es un barrio.#
+ #Región geográfica que cubre un Cap y a la que pertenecen los Prestadores#
@@ -2156,62 +1900,16 @@
- #pais#
-
-
- #enum([paises])#
-
-
- ##
-
-
- #PaÃs en donde se encuentra.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #provincia#
-
-
- #enum(?)#
-
-
- ##
-
-
- #Provincia a la que pertenece, si es NULL la región comprende un paÃs entero.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ciudad#
+ #nombre#
- #enum(?)#
+ #string#
##
- #Ciudad a la que pertenece, si es NULL la región comprende una provincia entera.#
+ #Nombre de la Zona#
@@ -2225,16 +1923,16 @@
- #barrio#
+ #descripcion#
- #enum(?)#
+ #string#
##
- #Barrio al que pertenece, si es NULL la región comprende una ciudad entera.#
+ #Descripción de la Zona#
@@ -2253,21 +1951,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
#Solicitante#
@@ -2291,7 +1989,7 @@
-
+
@@ -2353,13 +2051,13 @@
#disponibilidad#
- #Fecha/Hora#
+ #string#
##
- #Horario en el cual puede ser visitado (de nuevo, representación???).#
+ #Horario en el cual puede ser visitado (como texto libre)#
@@ -2428,84 +2126,170 @@
##
+ #Indica si el solicitante fue visitado o no.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #existe#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Devuelve True si el afiliado existe y carga el resto de los datos correspondientes. Si no existe devuelve False. Si existe más de uno, se pueden obtener con getNext().#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #getNext#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Si encontró uno nuevo, devuelve True y lo carga. Si no devuelve False y queda intacto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Guarda los datos del solicitante en la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #borrar#
+
+
##
+
+ #bool#
+
+
+ #Borra el solicitante de la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
- #PrestacionRealizada#
+ #AutorizacionManual#
##
- #Prestación concretada por el Afiliado.#
+ #Autorización que debe ser aprobada manualmente, a través de un auditor médico.#
@@ -2579,16 +2363,39 @@
- #fecha#
+ #observaciones#
- #Fecha#
+ #string#
##
- #Fecha en la que se hizo efectiva la prestación.#
+ #Una descripcion coloquial del por qué se solicita la autorización#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #fechaResolucion#
+
+
+ #fecha#
+
+
+ ##
+
+
+ #Fecha en la que se aprobo/rechazo la autorizacion.#
@@ -2607,166 +2414,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #AutorizacionManual#
-
-
- ##
-
-
- #Autorización que debe ser aprobada manualmente, a través de un auditor médico.#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
- #Automatica#
+ #AutorizacionAutomatica#
##
- ##
+ #Autorización aprobada o rechazada automáticamente por el sistema#
@@ -2844,50 +2515,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
@@ -2976,16 +2612,16 @@
- #tiempoPermanencia#
+ #carencia#
- #Tiempo#
+ #float#
##
- #Antigüedad que debe tener el afiliado en el plan para ser cubierto. (años? meses?)#
+ #Antigüedad (en meses) que debe tener el afiliado en el plan para ser cubierto.#
@@ -3048,7 +2684,7 @@
#tipoAutorizacion#
- #emun(manual,auto)#
+ #enum(manual,auto)#
##
@@ -3073,49 +2709,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
#Categoria#
@@ -3124,7 +2732,7 @@
##
- #Clasificación de las Prestaciones. (esto lo necesitamos por el codificador, no?)#
+ #Clasificación de las Prestaciones#
@@ -3207,7 +2815,7 @@
##
- #Identificador único (por codificador, no?)#
+ #Código de la categorÃa según el codificador#
@@ -3242,6 +2850,29 @@
+
+
+ #fechaBaja#
+
+
+ #Fecha#
+
+
+ ##
+
+
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
+
+
+
+
+
+
+
+
+
+
+
@@ -3249,772 +2880,178 @@
-
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
+
+
-
-
+
+
-
-
+
+
- ##
+ #HistoriaPlan#
##
-
-
-
-
-
-
-
-
-
-
-
+
+ #Representa el perÃodo de tiempo que un afiliado estuvo en un plan.#
-
-
-
-
-
+
+
-
-
-
-
+
+
-
+
-
- ##
+
+
-
-
+
+
-
-
-
- ##
-
-
- # *#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- # 1#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- #* #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- #*#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- #* #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- # 1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- # *#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- # * #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
+
-
-
-
- #No deberia
-asociarse
-con
-Cobertura?#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
-
- ##
+
+
-
-
+
+
-
-
-
- ##
-
-
- #* #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
+
+
+
+ #fechaIngreso#
-
-
+
+ #Fecha#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
+
##
-
- #* #
-
-
-
+
+ #Fecha en que se dio de alta el plan#
-
+
-
-
-
- ##
-
-
- #*#
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
+
-
-
-
-
-
- ##
+
+
+ #fechaEgreso#
+
+
+ #Fecha#
-
+
##
-
+
+ #Fecha en la que el plan no rige mas para el afiliado (si es el plan actual es NULL)#
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
- #Hoja de Ruta#
+ #Direccion#
##
- ##
+ #Dirección y datos de un domicilio#
@@ -4035,10 +3072,10 @@ Cobertura?#
-
+
-
+
@@ -4088,17 +3125,109 @@ Cobertura?#
- #visitado#
+ #calle#
- #bool#
+ #string#
+
+
+ ##
+
+
+ #Calle del domicilio#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #numero#
+
+
+ #int#
+
+
+ ##
+
+
+ #Número del domicilio#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #piso#
+
+
+ #int#
+
+
+ ##
+
+
+ #Piso del domicilio#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #departamento#
+
+
+ #string#
##
+ #Departamento del domicilio#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #codigoPostal#
+
+
+ #string(8)#
+
+
##
+
+ #Código postal del domicilio#
+
@@ -4111,17 +3240,40 @@ Cobertura?#
- #prioridad#
+ #provincia#
- #enum(ALTA,MEDIANA,BAJA)#
+ #enum([provincias])#
##
+ #Provincia donde se encuentra el domicilio#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #telefono#
+
+
+ #string#
+
+
##
+
+ #Teléfono del domicilio#
+
@@ -4139,18 +3291,18 @@ Cobertura?#
-
+
-
+
-
+
-
-
-
-
+
+
+
+
@@ -4158,7 +3310,42 @@ Cobertura?#
-
+
+
+
+
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4170,66 +3357,113 @@ Cobertura?#
##
-
+
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
##
-
+
+ ##
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ ##
+
+
+ ##
-
-
+
+