Index: ABS_Client_v2/.cproject
===================================================================
diff --git a/ABS_Client_v2/.cproject b/ABS_Client_v2/.cproject
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/.cproject (revision 19)
@@ -0,0 +1,593 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ABS_Client_v2/.project
===================================================================
diff --git a/ABS_Client_v2/.project b/ABS_Client_v2/.project
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/.project (revision 19)
@@ -0,0 +1,81 @@
+
+
+ ABS_Client_v2
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+ ?name?
+
+
+
+ org.eclipse.cdt.make.core.append_environment
+ true
+
+
+ org.eclipse.cdt.make.core.autoBuildTarget
+ all
+
+
+ org.eclipse.cdt.make.core.buildArguments
+
+
+
+ org.eclipse.cdt.make.core.buildCommand
+ make
+
+
+ org.eclipse.cdt.make.core.buildLocation
+ ${workspace_loc:/ABS_Client_v2/Debug}
+
+
+ org.eclipse.cdt.make.core.cleanBuildTarget
+ clean
+
+
+ org.eclipse.cdt.make.core.contents
+ org.eclipse.cdt.make.core.activeConfigSettings
+
+
+ org.eclipse.cdt.make.core.enableAutoBuild
+ false
+
+
+ org.eclipse.cdt.make.core.enableCleanBuild
+ true
+
+
+ org.eclipse.cdt.make.core.enableFullBuild
+ true
+
+
+ org.eclipse.cdt.make.core.fullBuildTarget
+ all
+
+
+ org.eclipse.cdt.make.core.stopOnError
+ true
+
+
+ org.eclipse.cdt.make.core.useDefaultBuildCmd
+ true
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.core.cnature
+
+
Index: ABS_Client_v2/ABS_Client.c
===================================================================
diff --git a/ABS_Client_v2/ABS_Client.c b/ABS_Client_v2/ABS_Client.c
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/ABS_Client.c (revision 19)
@@ -0,0 +1,283 @@
+/*
+ * ABS_Client.c
+ *
+ * Fecha de creacion : Set, 2012
+ * Ultima modificacion : Oct 2012
+ * Autor : Christiane Dietrich.
+ */
+//#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "./Librerias/Mensajes.h"
+
+#define PUERTO_SERVIDOR 7000
+//#define DIR_SERVIDOR "192.168.1.30"
+
+/* Servidor */
+#define TAM_BUFFER 10000
+/* Servidor */
+
+
+int ABS_Client(char *header, char *addrClient, char *addrServer ,char *opcion, char *valor_help){
+
+ int conexion_clienteFD;
+ struct sockaddr_in inf_servidor;
+
+ int broadcast= 1;
+ int resultado;
+ int numbytes_enviados;
+
+ long lSize=0;
+ size_t size_of_filecontent=0;
+
+ char *head= NULL;
+ char *tx= NULL;
+ char *rx= NULL;
+ char *comando= NULL;
+ char *data= NULL;
+ char *helper= ":";
+ char *tx_buff= NULL;
+ unsigned int indicator = 1;
+
+ head = (char*) malloc (sizeof(char)*(strlen(header)+1));
+ if (head == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+ strcpy (head, header);
+
+ tx = (char*) malloc (sizeof(char)*(strlen(addrClient)+1));
+ if (tx == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+ strcpy (tx, addrClient);
+
+ rx = (char*) malloc (sizeof(char)*(strlen(addrServer)+1));
+ if (rx == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+ strcpy (rx, addrServer);
+
+ /* determine comand */
+ if(strcmp(opcion,"-f") == 0){
+ comando= "SNDF";
+ FILE * file_to_send= NULL;
+ file_to_send = fopen(valor_help, "r");
+ if (!file_to_send){
+ printf("The file provided for the Control Modules couldn't be opened!!!\n");
+ return -1;
+ }
+ else{
+ // obtain file size:
+ fseek (file_to_send, 0 , SEEK_END);
+ lSize = ftell (file_to_send);
+ rewind (file_to_send);
+
+ // allocate memory to contain the whole file:
+ data = (char*) malloc (sizeof(char)*(lSize+1));
+ if (data == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+
+ // copy the file into the data:
+ size_of_filecontent = fread (data,1,lSize,file_to_send);
+
+ if (size_of_filecontent != lSize) {
+ printf ("Reading error");
+ return -1;
+ }
+
+ /* the whole file is now loaded in the memory data. */
+ // terminate
+ fclose (file_to_send);
+ }
+ }else if (strcmp(opcion,"-c") == 0){ // Se reconoce el comando que se esta enviando
+ comando= "CHGB";
+ data = (char*) malloc (sizeof(char)*(strlen(valor_help)+1));
+ //data = (char *) malloc(strlen(valor)+1);
+ if (data == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+ strcpy (data, valor_help);
+ }else if(strcmp(opcion,"-a") == 0){
+ comando= "ANST";
+ data = (char*) malloc (sizeof(char)*(strlen(valor_help)+1));
+ //data = (char *) malloc(strlen(valor)+1);
+ if (data == NULL) {
+ printf("Memory error");
+ return -1;
+ }
+ strcpy (data, valor_help);
+ }else {
+ ERROR("OPCION INCORRECTA: {-c|-a|-f}");
+ return -1;
+ }
+
+ //complete tx frame
+ tx_buff= (char *) malloc(strlen(head)+1+strlen(tx)+1+strlen(rx)+1+strlen(comando)+1+strlen(data)+1);
+ // Se arma el buffer a ser enviado.
+ strcpy(tx_buff,head);
+ strcat(tx_buff,helper);
+ strcat(tx_buff,tx);
+ strcat(tx_buff,helper);
+ strcat(tx_buff,rx);
+ strcat(tx_buff,helper);
+ strcat(tx_buff,comando);
+ strcat(tx_buff,helper);
+ strcat(tx_buff,data);
+ strcat(tx_buff,helper);
+
+
+ /* Se establece el socket UDP */
+ conexion_clienteFD= socket(AF_INET,SOCK_DGRAM,0);
+ if (conexion_clienteFD == -1){
+ ERROR("No se pudo establecer el socket: socket()");
+ return -1;
+ }
+
+ /* Se establece el Broadcast con la funcion setsockpt() */
+ resultado= setsockopt(conexion_clienteFD, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast));
+ if (resultado == -1){
+ ERROR("No se pudo establecer la opcion de Broadcast: setsockopt()");
+ return -1;
+ }
+
+ /* Se configura la estructura que contiene la informacion sobre el servidor: inf_servidor */
+ inf_servidor.sin_family= AF_INET;
+ inf_servidor.sin_port= htons(PUERTO_SERVIDOR);
+ inf_servidor.sin_addr.s_addr= inet_addr(addrServer);
+ memset(inf_servidor.sin_zero, '\0', sizeof(inf_servidor.sin_zero));
+
+ /* Se procede a enviar el buffer */
+ numbytes_enviados= sendto(conexion_clienteFD,tx_buff,strlen(tx_buff),0,(struct sockaddr *)&inf_servidor,sizeof(inf_servidor));
+
+ printf ("Frame was sent to Central Control Module with %s IP number\n",addrServer);
+
+ if(numbytes_enviados == -1){
+ ERROR("Error de envio de datos: sendto()");
+ return -1;
+ }
+
+
+ free (head);
+ free (tx);
+ free (rx);
+ free (data);
+ free(tx_buff);
+ close(conexion_clienteFD);
+///*
+// servidor
+ int conexion_servidorFd;
+ struct sockaddr_in inf_servidor2;
+ struct sockaddr_storage inf_cliente;
+ int resultado2;
+ int numbytes_recibidos;
+
+ char *headR;
+ char *txR;
+ char *rxR;
+ char *comandoR;
+ char *valorR;
+ FILE *file_to_wr;
+ char *rx_buff = (char *) malloc(TAM_BUFFER);
+
+// size_t addr_len;
+ socklen_t addr_len;
+
+ memset(&inf_servidor2, 0, sizeof(inf_servidor2));
+ inf_servidor2.sin_family= AF_INET;
+ inf_servidor2.sin_port= htons(PUERTO_SERVIDOR);
+ inf_servidor2.sin_addr.s_addr= INADDR_ANY;
+
+ // Se establece el socket
+ conexion_servidorFd = socket(AF_INET,SOCK_DGRAM,0);
+ if (conexion_servidorFd == -1){
+ ERROR_FATAL("No se establecio correctamente el socket: socket() point1");
+ }
+
+ // Se asocia el socket a un puerto y una IP
+ resultado2 = bind(conexion_servidorFd,(struct sockaddr *)&inf_servidor2,sizeof(inf_servidor2));
+ if (resultado2== -1){
+ ERROR_FATAL("No se establecio correctamente el socket: bind() point2");
+ }
+
+ while(indicator == 1){
+ LOG_SERVIDOR("Waiting for the client...\n");
+
+ // Se espera hasta que un cliente se conecte
+ addr_len = sizeof(inf_cliente);
+ numbytes_recibidos = recvfrom(conexion_servidorFd, rx_buff, TAM_BUFFER-1, 0, (struct sockaddr *)&inf_cliente, &addr_len);
+
+ if (numbytes_recibidos == -1){
+ ERROR_FATAL("Error en la recepcion de datos: recvfrom()");
+ }
+
+ // Se procede a procesar los datos recibidos
+ rx_buff[numbytes_recibidos]= '\0';
+
+ // create a response-file
+ headR = strtok(rx_buff, ":");
+ txR = strtok(NULL, ":");
+ rxR = strtok(NULL, ":");
+ comandoR = strtok(NULL, ":");
+ valorR = strtok(NULL, ":");
+
+
+ if ((headR == NULL) || (txR == NULL) || (rxR == NULL) || (comandoR == NULL) || (valorR == NULL)){
+ ERROR("procesarPeticionClient: formato de mensaje incorrecto");
+ }else{
+
+ if(strcmp(comandoR,"SNDF") == 0){
+ file_to_wr = fopen("report.abs", "w+");
+ if (!file_to_wr){
+ printf("The file, in which the received data should be written, couldn't be opened!!!\n");
+ }else{
+ fprintf(file_to_wr, "%s", valorR);
+ }
+ fclose(file_to_wr);
+ printf("File content was successfully written in\"report.abs\"\n");
+ }else if(strcmp(comandoR,"CHGB") == 0){
+ file_to_wr = fopen("report.ver", "w+");
+ if (!file_to_wr){
+ printf("The file, in which the received data should be written, couldn't be opened!!!\n");
+ }else{
+ fprintf(file_to_wr, "%s", valorR);
+ }
+ fclose(file_to_wr);
+ printf("File content was successfully written in \"report.ver\"\n");
+ }else if(strcmp(comandoR,"ANST") == 0){
+ file_to_wr = fopen("report.net", "w+");
+ if (!file_to_wr){
+ printf("The file, in which the received data should be written, couldn't be opened!!!\n");
+ }else{
+ fprintf(file_to_wr, "%s", valorR);
+ }
+ fclose(file_to_wr);
+ printf("File content was successfully written in \"report.net\"\n");
+ }else{
+ ERROR("procesa_peticion_client: respuesta no reconocido");
+ }
+ }
+ indicator = 0;
+// servidor
+ }
+ free (rx_buff);
+//*/
+ return 0;
+}
+
Index: ABS_Client_v2/ABS_Client_Test.c
===================================================================
diff --git a/ABS_Client_v2/ABS_Client_Test.c b/ABS_Client_v2/ABS_Client_Test.c
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/ABS_Client_Test.c (revision 19)
@@ -0,0 +1,27 @@
+/*
+ * ABS_Client_Test.c
+ *
+ * Created on: Set, 2012
+ * Author: Christiane Dietrich.
+ */
+#include
+#include
+
+#include
+#include
+
+#include "./Librerias/Mensajes.h"
+#include "./Librerias/Funciones_ControlER.h"
+
+int main(int argc, char *argv[]){
+
+ char *header = argv[1];
+ char *tx = argv[2];
+ char *rx = argv[3];
+ char *cmd = argv[4];
+ char *val = argv[5];
+
+ ABS_Client(header, tx, rx, cmd, val);
+
+ return 0;
+}
Index: ABS_Client_v2/Librerias/Funciones_ControlER.h
===================================================================
diff --git a/ABS_Client_v2/Librerias/Funciones_ControlER.h b/ABS_Client_v2/Librerias/Funciones_ControlER.h
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/Librerias/Funciones_ControlER.h (revision 19)
@@ -0,0 +1,13 @@
+/*
+ * Funciones_ControlERs.h
+ *
+ * Created on: Jan 14, 2010
+ * Author: redes
+ */
+
+#ifndef FUNCIONES_CONTROLERS_H_
+#define FUNCIONES_CONTROLERS_H_
+
+int ABS_Client(char *header, char *addrClient, char *addrServer ,char *opcion, char *valor_help);
+
+#endif /* FUNCIONES_CONTROLERS_H_ */
Index: ABS_Client_v2/Librerias/Mensajes.h
===================================================================
diff --git a/ABS_Client_v2/Librerias/Mensajes.h b/ABS_Client_v2/Librerias/Mensajes.h
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/Librerias/Mensajes.h (revision 19)
@@ -0,0 +1,17 @@
+/*
+ * Mensajes.h
+ *
+ * Created on: Nov 12, 2009
+ * Author: redes
+ */
+
+#ifndef MENSAJES_H_
+#define MENSAJES_H_
+
+void LOG_SERVIDOR(char *mensaje);
+void LOG_CLIENTE(char *mensaje);
+void ERROR_FATAL(char *mensaje);
+void ERROR(char *mensaje);
+
+
+#endif /* MENSAJES_H_ */
Index: ABS_Client_v2/Mensajes.c
===================================================================
diff --git a/ABS_Client_v2/Mensajes.c b/ABS_Client_v2/Mensajes.c
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/Mensajes.c (revision 19)
@@ -0,0 +1,39 @@
+/*
+ * Mensajes.c
+ *
+ * Created on: Nov 12, 2009
+ * Author: Jose Francisco Quenta
+ */
+
+#include
+#include
+
+/*
+ * Imprime mensajes del servidor
+ */
+void LOG_SERVIDOR(char *mensaje){
+ printf("SERVER MODE: %s\n",mensaje);
+}
+
+/*
+ * Imprime mensajes del cliente
+ */
+void LOG_CLIENTE(char *mensaje){
+ printf("CLIENTE: %s\n",mensaje);
+}
+
+/*
+ * Error no fatal, permite la continuación del programa
+ */
+void ERROR(char *mensaje){
+ fprintf(stderr, "ERROR. %s\n", mensaje);
+}
+
+/*
+ * Error fatal, aborta la ejecución del programa con código de salida de error
+ */
+void ERROR_FATAL(char *mensaje){
+ fprintf(stderr, "ERROR FATAL. %s\n", mensaje);
+ exit(EXIT_FAILURE);
+}
+
Index: ABS_Client_v2/experimento1.ab1
===================================================================
diff --git a/ABS_Client_v2/experimento1.ab1 b/ABS_Client_v2/experimento1.ab1
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/experimento1.ab1 (revision 19)
@@ -0,0 +1,15 @@
+experimento.abs
+------
+000000
+001001
+010010
+011011
+100100
+101101
+110110
+111111
+000000
+001001
+010010
+011011
+------
Index: ABS_Client_v2/experimento1.abs
===================================================================
diff --git a/ABS_Client_v2/experimento1.abs b/ABS_Client_v2/experimento1.abs
new file mode 10644
--- /dev/null (revision 0)
+++ b/ABS_Client_v2/experimento1.abs (revision 19)
@@ -0,0 +1,231 @@
+ title ='MST-ISR 2009 (NS-Up)'
+
+ #Experiments = 12
+
+1 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
+
+2 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
+
+3 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
+
+4 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
+
+5 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]
+
+6=
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
+ [0.5,0.5,0.5,1.0,1.5,1.5,1.5,1.5],$
+ [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
+ [0.5,0.5,0.5,0.5,1.5,1.5,1.5,1.5]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
+ [0.5,0.5,0.5,1.0,1.5,1.5,1.5,1.5],$
+ [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
+ [0.5,0.5,0.5,0.5,1.5,1.5,1.5,1.5]]
+
+7 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
+ [0.5,0.5,0.5,1.0,2.5,2.5,2.5,2.5],$
+ [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
+ [0.5,0.5,0.5,0.5,2.5,2.5,2.5,2.5]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
+ [0.5,0.5,0.5,1.0,2.5,2.5,2.5,2.5],$
+ [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
+ [0.5,0.5,0.5,0.5,2.5,2.5,2.5,2.5]]
+
\ No newline at end of file
+8 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
+ [0.5,0.5,0.5,1.0,3.5,3.5,3.5,3.5],$
+ [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
+ [0.5,0.5,0.5,0.5,3.5,3.5,3.5,3.5]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
+ [0.5,0.5,0.5,1.0,3.5,3.5,3.5,3.5],$
+ [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
+ [0.5,0.5,0.5,0.5,3.5,3.5,3.5,3.5]]
+
+9 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
+
+10 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
+ [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
+ [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
+
+11 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
+ [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
+ [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
+
+12 =
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
+
+ [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
+ [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
+ [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]