diff --git a/arc b/arc
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/submessages.cpp b/src/submessages.cpp
index b25c5255c8ced29f7fb4efdec2533e6f1d05504b..67b5c3c2e17ad4240caa6bac71c5e24e80f9a22b 100644
--- a/src/submessages.cpp
+++ b/src/submessages.cpp
@@ -13,14 +13,8 @@ void SubMessage::setParity(){
   int i, j, bitsParity[8];
 
   // Alocação da matriz de bits
-  bitsMessage = new int*[getSize()+2];
-  bitsMessage[0] = new int[8];
-  bitsMessage[1] = new int[8];
-  for(j = 0 ; j < 8 ; j++){
-    bitsMessage[0][j] = ((((sizSeqTyp >> 8) & 0x00FF) >> (7-j)) & 0x01);
-    bitsMessage[1][j] = ((((sizSeqTyp >> 0) & 0x00FF) >> (7-j)) & 0x01);
-  }
-  for(i = 2 ; i < getSize()+2 ; i++){
+  bitsMessage = new int*[getSize()];
+  for(i = 0 ; i < getSize() ; i++){
     bitsMessage[i] = new int[8];
     // Divide os dados em bits
     for(j = 0 ; j < 8 ; j++){
@@ -31,7 +25,7 @@ void SubMessage::setParity(){
   // Soma os bits verticalmente
   for(j = 0 ; j < 8 ; j++){
     bitsParity[j] = 0;
-    for(i = 0 ; i < getSize()+2 ; i++){
+    for(i = 0 ; i < getSize() ; i++){
       bitsParity[j] = bitsParity[j] + bitsMessage[i][j];
     }
     // Caso a soma vertical de uma coluna for par, bitsParity recebe 1,
@@ -44,7 +38,7 @@ void SubMessage::setParity(){
     // Atribui os bits para parity (variável de paridade do objeto)
     parity = (parity << 1) | bitsParity[j];
   }
-  for(i = 0 ; i < getSize()+2 ; i++){
+  for(i = 0 ; i < getSize() ; i++){
     if(bitsMessage[i]){
       delete(bitsMessage[i]);
     }
@@ -147,26 +141,26 @@ int SubMessage::checkParity(){
   int i, j, bitsParity[8];
   unsigned char parityTest;
 
+cout << "AQUI" << endl;
   // Alocação da matriz de bits
-  bitsMessage = new int*[getSize()+2];
-  bitsMessage[0] = new int[8];
-  bitsMessage[1] = new int[8];
-  for(j = 0 ; j < 8 ; j++){
-    bitsMessage[0][j] = ((((sizSeqTyp >> 8) & 0x00FF) >> (7-j)) & 0x01);
-    bitsMessage[1][j] = ((((sizSeqTyp >> 0) & 0x00FF) >> (7-j)) & 0x01);
-  }
-  for(i = 2 ; i < getSize()+2 ; i++){
+cout << "this-getSize = " << getSize() << endl;
+// bitsMessage = (int**) malloc(sizeof(int*)*getSize());
+  bitsMessage = new int*[getSize()];
+  //bitsMessage = (int**) realloc(bitsMessage,sizeof(int*)*getSize());
+cout << "AQUI2" << endl;
+  for(i = 0 ; i < getSize() ; i++){
     bitsMessage[i] = new int[8];
     // Divide os dados em bits
     for(j = 0 ; j < 8 ; j++){
       bitsMessage[i][j] = ((data[i] >> (7-j)) & 0x01);
     }
   }
+cout << "AQUI 3" << endl;
 
   // Soma os bits verticalmente
   for(j = 0 ; j < 8 ; j++){
     bitsParity[j] = 0;
-    for(i = 0 ; i < getSize()+2 ; i++){
+    for(i = 0 ; i < getSize() ; i++){
       bitsParity[j] = bitsParity[j] + bitsMessage[i][j];
     }
     // Caso a soma vertical de uma coluna for par, bitsParity recebe 1,
@@ -179,13 +173,15 @@ int SubMessage::checkParity(){
     // Atribui os bits para parity (variável de paridade do objeto)
     parityTest = (parityTest << 1) | bitsParity[j];
   }
-  for(i = 0 ; i < getSize()+2 ; i++){
+cout << "AQUI 4" << endl;
+  for(i = 0 ; i < getSize() ; i++){
     if(bitsMessage[i]){
       delete(bitsMessage[i]);
     }
   }
+cout << "AQUI 3" << endl;
   delete(bitsMessage);
-cout << "AQUI 6" << endl;
+cout << "AQUI 3" << endl;
   if (parityTest == parity){
     return 0;
   }else{