Patch that add the various missing copyright notices in the source files.
This patch will go away as soon as a new version of the library is released.
See debian/changelog for an explanation

diff --git a/MSSingleScan/MSSingleScan.cpp b/MSSingleScan/MSSingleScan.cpp
index 9f2b6f3..6b73152 100644
--- a/MSSingleScan/MSSingleScan.cpp
+++ b/MSSingleScan/MSSingleScan.cpp
@@ -1,70 +1,84 @@
-#include <iostream>
-#include <iomanip>
-#include <cmath>
-#include "MSToolkitTypes.h"
-#include "MSReader.h"
-#include "MSObject.h"
-#include "Spectrum.h"
-
-using namespace std;
-using namespace MSToolkit;
-
-int main(int argc, char *argv[]){
-
-	//Here are all the variable we are going to need
-	MSReader r;
-	Spectrum s;
-  int j;
-
-  if(argc==1){
-    printf("DESCRIPTION: Reads an MS/MS spectrum from any MSToolkit supported file type and outputs to screen in MS2 format.\n\n");
-    printf("USAGE: MSSingleScan [scan number] [file]\n");
-    exit(0);
-  }
-
-
-	r.setFilter(MS1);
-  r.addFilter(MS2);
-	r.addFilter(MSX);
-  r.addFilter(SRM);
-
-  char nativeID[256];
-	r.readFile(argv[2],s,atoi(argv[1]));
-  if(s.getScanNumber()==0) exit(-1);
-
-
-  char szNativeID[128];
-  if (s.getNativeID(szNativeID, 128))
-      printf("success:  scan %d  nativeID: %s\n", s.getScanNumber(), szNativeID);
-  else
-      printf("failure:  scan %d\n", s.getScanNumber());
-
-  printf("size: %d\n", s.sizeMZ());
-
-  s.getNativeID(nativeID, 256);
-  printf("%s\n",nativeID);
-  printf("S\t%d\t%d",s.getScanNumber(),s.getScanNumber());
-	for(j=0;j<s.sizeMZ();j++){
-		printf("\t%.*lf",4,s.getMZ(j));
-	}
-	printf("\n");
-	if(s.getRTime()>0) printf("I\tRTime\t%.*f\n",4,s.getRTime());
-	//printf("I\tConvA\t%.6lf\n",s.getConversionA());
-	//printf("I\tConvB\t%.6lf\n",s.getConversionB());
-	//printf("I\tConvC\t%.6lf\n",s.getConversionC());
-	//printf("I\tConvD\t%.6lf\n",s.getConversionD());
-	//printf("I\tConvE\t%.6lf\n",s.getConversionE());
-	//printf("I\tConvI\t%.6lf\n",s.getConversionI());
-	for(j=0;j<s.sizeZ();j++){
-		printf("Z\t%d\t%.*f\n",s.atZ(j).z,6,s.atZ(j).mh);
-	}
-
-	for(j=0;j<s.size();j++){
-		printf("%.4f %.4f\n",s.at(j).mz,s.at(j).intensity); 
-	}
-
-  return 0;
-
-}
-  
-
+/*
+Copyright 2011, Michael R. Hoopmann, Institute for Systems Biology
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+
+#include <iostream>
+#include <iomanip>
+#include <cmath>
+#include "MSToolkitTypes.h"
+#include "MSReader.h"
+#include "MSObject.h"
+#include "Spectrum.h"
+
+using namespace std;
+using namespace MSToolkit;
+
+int main(int argc, char *argv[]){
+
+	//Here are all the variable we are going to need
+	MSReader r;
+	Spectrum s;
+  int j;
+
+  if(argc==1){
+    printf("DESCRIPTION: Reads an MS/MS spectrum from any MSToolkit supported file type and outputs to screen in MS2 format.\n\n");
+    printf("USAGE: MSSingleScan [scan number] [file]\n");
+    exit(0);
+  }
+
+
+	r.setFilter(MS1);
+  r.addFilter(MS2);
+	r.addFilter(MSX);
+  r.addFilter(SRM);
+
+  char nativeID[256];
+	r.readFile(argv[2],s,atoi(argv[1]));
+  if(s.getScanNumber()==0) exit(-1);
+
+
+  char szNativeID[128];
+  if (s.getNativeID(szNativeID, 128))
+      printf("success:  scan %d  nativeID: %s\n", s.getScanNumber(), szNativeID);
+  else
+      printf("failure:  scan %d\n", s.getScanNumber());
+
+  printf("size: %d\n", s.sizeMZ());
+
+  s.getNativeID(nativeID, 256);
+  printf("%s\n",nativeID);
+  printf("S\t%d\t%d",s.getScanNumber(),s.getScanNumber());
+	for(j=0;j<s.sizeMZ();j++){
+		printf("\t%.*lf",4,s.getMZ(j));
+	}
+	printf("\n");
+	if(s.getRTime()>0) printf("I\tRTime\t%.*f\n",4,s.getRTime());
+	//printf("I\tConvA\t%.6lf\n",s.getConversionA());
+	//printf("I\tConvB\t%.6lf\n",s.getConversionB());
+	//printf("I\tConvC\t%.6lf\n",s.getConversionC());
+	//printf("I\tConvD\t%.6lf\n",s.getConversionD());
+	//printf("I\tConvE\t%.6lf\n",s.getConversionE());
+	//printf("I\tConvI\t%.6lf\n",s.getConversionI());
+	for(j=0;j<s.sizeZ();j++){
+		printf("Z\t%d\t%.*f\n",s.atZ(j).z,6,s.atZ(j).mh);
+	}
+
+	for(j=0;j<s.size();j++){
+		printf("%.4f %.4f\n",s.at(j).mz,s.at(j).intensity); 
+	}
+
+  return 0;
+
+}
+  
+
diff --git a/src/mzParser/BasicChromatogram.cpp b/src/mzParser/BasicChromatogram.cpp
index ac49ad4..284311e 100644
--- a/src/mzParser/BasicChromatogram.cpp
+++ b/src/mzParser/BasicChromatogram.cpp
@@ -1,75 +1,85 @@
-#include "mzParser.h"
-
-BasicChromatogram::BasicChromatogram(){}
-
-BasicChromatogram::BasicChromatogram(const BasicChromatogram& c){
-  vData.clear();
-  charge=c.charge;
-  precursorMZ=c.precursorMZ;
-  precursorOffsetLower=c.precursorOffsetLower;
-  precursorOffsetUpper=c.precursorOffsetUpper;
-  productMZ=c.productMZ;
-  productOffsetLower=c.productOffsetLower;
-  productOffsetUpper=c.productOffsetUpper;
-  for(unsigned int i=0;i<c.vData.size();i++) vData.push_back(c.vData[i]);
-  strcpy(idString,c.idString);
-}
-
-BasicChromatogram::~BasicChromatogram(){}
-
-BasicChromatogram& BasicChromatogram::operator=(const BasicChromatogram& c){
-  if(this != &c){
-    vData.clear();
-    charge = c.charge;
-    precursorMZ = c.precursorMZ;
-    precursorOffsetLower = c.precursorOffsetLower;
-    precursorOffsetUpper = c.precursorOffsetUpper;
-    productMZ = c.productMZ;
-    productOffsetLower = c.productOffsetLower;
-    productOffsetUpper = c.productOffsetUpper;
-    for(unsigned int i=0;i<c.vData.size();i++) vData.push_back(c.vData[i]);
-    strcpy(idString,c.idString);
-  }
-  return *this;
-}
-  
-TimeIntensityPair& BasicChromatogram::operator[ ](const unsigned int index){ return vData[index];  }
-
-void BasicChromatogram::addTIP(TimeIntensityPair tip){ vData.push_back(tip); }
-void BasicChromatogram::clear(){
-  vData.clear();
-  strcpy(idString,"");
-  charge=0;
-  precursorMZ=0;
-  precursorOffsetLower=0;
-  precursorOffsetUpper=0;
-  productMZ=0;
-  productOffsetLower=0;
-  productOffsetUpper=0;
-}
-int BasicChromatogram::getCharge(){return charge;}
-vector<TimeIntensityPair>&  BasicChromatogram::getData() { return vData; }
-int BasicChromatogram::getIDString(char* str){
-  strcpy(str,idString);
-  return (int)strlen(str);
-}
-double BasicChromatogram::getPreMZ(){ return precursorMZ;}
-double BasicChromatogram::getPreOffsetLower(){ return precursorOffsetLower; }
-double BasicChromatogram::getPreOffsetUpper(){ return precursorOffsetUpper; }
-double BasicChromatogram::getProdMZ(){ return productMZ; }
-double BasicChromatogram::getProdOffsetLower(){return productOffsetLower;}
-double BasicChromatogram::getProdOffsetUpper(){ return productOffsetUpper; }
-void BasicChromatogram::setIDString(char* str) { strcpy(idString,str); }
-void BasicChromatogram::setPrecursor(double mz, int z, double offLow, double offHigh){
-  precursorMZ=mz;
-  charge=z;
-  precursorOffsetLower=offLow;
-  precursorOffsetUpper=offHigh;
-}
-void BasicChromatogram::setProduct(double mz, double offLow, double offHigh){
-  productMZ = mz;
-  productOffsetLower = offLow;
-  productOffsetUpper = offHigh;
-}
-size_t BasicChromatogram::size(){  return vData.size(); }
-
+/*
+BasicChromatogram - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+
+
+#include "mzParser.h"
+
+BasicChromatogram::BasicChromatogram(){}
+
+BasicChromatogram::BasicChromatogram(const BasicChromatogram& c){
+  vData.clear();
+  charge=c.charge;
+  precursorMZ=c.precursorMZ;
+  precursorOffsetLower=c.precursorOffsetLower;
+  precursorOffsetUpper=c.precursorOffsetUpper;
+  productMZ=c.productMZ;
+  productOffsetLower=c.productOffsetLower;
+  productOffsetUpper=c.productOffsetUpper;
+  for(unsigned int i=0;i<c.vData.size();i++) vData.push_back(c.vData[i]);
+  strcpy(idString,c.idString);
+}
+
+BasicChromatogram::~BasicChromatogram(){}
+
+BasicChromatogram& BasicChromatogram::operator=(const BasicChromatogram& c){
+  if(this != &c){
+    vData.clear();
+    charge = c.charge;
+    precursorMZ = c.precursorMZ;
+    precursorOffsetLower = c.precursorOffsetLower;
+    precursorOffsetUpper = c.precursorOffsetUpper;
+    productMZ = c.productMZ;
+    productOffsetLower = c.productOffsetLower;
+    productOffsetUpper = c.productOffsetUpper;
+    for(unsigned int i=0;i<c.vData.size();i++) vData.push_back(c.vData[i]);
+    strcpy(idString,c.idString);
+  }
+  return *this;
+}
+  
+TimeIntensityPair& BasicChromatogram::operator[ ](const unsigned int index){ return vData[index];  }
+
+void BasicChromatogram::addTIP(TimeIntensityPair tip){ vData.push_back(tip); }
+void BasicChromatogram::clear(){
+  vData.clear();
+  strcpy(idString,"");
+  charge=0;
+  precursorMZ=0;
+  precursorOffsetLower=0;
+  precursorOffsetUpper=0;
+  productMZ=0;
+  productOffsetLower=0;
+  productOffsetUpper=0;
+}
+int BasicChromatogram::getCharge(){return charge;}
+vector<TimeIntensityPair>&  BasicChromatogram::getData() { return vData; }
+int BasicChromatogram::getIDString(char* str){
+  strcpy(str,idString);
+  return (int)strlen(str);
+}
+double BasicChromatogram::getPreMZ(){ return precursorMZ;}
+double BasicChromatogram::getPreOffsetLower(){ return precursorOffsetLower; }
+double BasicChromatogram::getPreOffsetUpper(){ return precursorOffsetUpper; }
+double BasicChromatogram::getProdMZ(){ return productMZ; }
+double BasicChromatogram::getProdOffsetLower(){return productOffsetLower;}
+double BasicChromatogram::getProdOffsetUpper(){ return productOffsetUpper; }
+void BasicChromatogram::setIDString(char* str) { strcpy(idString,str); }
+void BasicChromatogram::setPrecursor(double mz, int z, double offLow, double offHigh){
+  precursorMZ=mz;
+  charge=z;
+  precursorOffsetLower=offLow;
+  precursorOffsetUpper=offHigh;
+}
+void BasicChromatogram::setProduct(double mz, double offLow, double offHigh){
+  productMZ = mz;
+  productOffsetLower = offLow;
+  productOffsetUpper = offHigh;
+}
+size_t BasicChromatogram::size(){  return vData.size(); }
+
diff --git a/src/mzParser/PWIZface.cpp b/src/mzParser/PWIZface.cpp
index 66ee0d1..7d08035 100644
--- a/src/mzParser/PWIZface.cpp
+++ b/src/mzParser/PWIZface.cpp
@@ -1,3 +1,11 @@
+/*
+PWIZface - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
 #include "mzParser.h"
 
 Chromatogram::Chromatogram(){
diff --git a/src/mzParser/RAMPface.cpp b/src/mzParser/RAMPface.cpp
index c67a77e..51ed7a1 100644
--- a/src/mzParser/RAMPface.cpp
+++ b/src/mzParser/RAMPface.cpp
@@ -1,3 +1,13 @@
+/*
+RAMPface - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+
+
 #include "mzParser.h"
 
 int checkFileType(const char* fname){
diff --git a/src/mzParser/mz5handler.cpp b/src/mzParser/mz5handler.cpp
index a6c590b..32df648 100644
--- a/src/mzParser/mz5handler.cpp
+++ b/src/mzParser/mz5handler.cpp
@@ -1,3 +1,12 @@
+/*
+mz5handler - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+
 #include "mzParser.h"
 #ifdef MZP_MZ5
 
diff --git a/src/mzParser/mzMLReader.cpp b/src/mzParser/mzMLReader.cpp
index c302247..42ef402 100644
--- a/src/mzParser/mzMLReader.cpp
+++ b/src/mzParser/mzMLReader.cpp
@@ -1,102 +1,110 @@
-#include "mzParser.h"
-
-using namespace std;
-
-int main(int argc, char* argv[]){
-
-	if(argc!=2) {
-		cout << "USAGE: mzMLReader <mzML file>" << endl;
-		exit(0);
-	}
-
-	MSDataFile* msd;
-	ChromatogramListPtr sl;
-	ChromatogramPtr s2;
-	string st=argv[1];
-	vector<TimeIntensityPair> pairs;
-
-	msd = new MSDataFile(argv[1]);
-	if(!msd->run.chromatogramListPtr->get()) cout << "WTF" << endl;
-
-	sl = msd->run.chromatogramListPtr;
-	for (int j=1; j<(int)sl->size(); j++) {
-		s2 = sl->chromatogram(j, true);
-		cout << j << "\t" << s2->id << endl;
-		s2->getTimeIntensityPairs(pairs);
-		for(int k=0;k<(int)pairs.size();k++) cout << pairs[k].time << " " << pairs[k].intensity << endl;
-	}
-
-	exit(1);
-
-	BasicSpectrum s;
-	BasicChromatogram chromat;
-	MzParser sax(&s,&chromat);
-	sax.load(argv[1]);
-
-	bool bLastWasSpectrum=true;
-	char c='a';
-	char str[256];
-	int num;
-	while(c!='x'){
-
-		if(bLastWasSpectrum){
-			cout << "\nCurrent spectrum:" << endl;
-			cout << "\tScan number: " << s.getScanNum() << endl;
-			cout << "\tRetention Time: " << s.getRTime() << endl;
-			cout << "\tMS Level: " << s.getMSLevel() << endl;
-			cout << "\tNumber of Peaks: " << s.size() << endl;
-		} else {
-			chromat.getIDString(str);
-			cout << "\nCurrent chromatogram:" << endl;
-			cout << "\tID: " << str << endl;
-			cout << "\tNumber of Peaks: " << chromat.size() << endl;
-		}
-		cout << "\nMenu:\n\t'c' to grab a new chromatogram\n\t's' to grab a new spectrum\n\t'p' to show peaks\n\t'x' to exit" << endl;
-		cout << "Please enter your choice: ";
-		cin >> c;
-
-		switch(c){
-			case 'c':
-				if(sax.highChromat()==0){
-					cout << "No chromatograms in the file." << endl;
-				} else {
-					cout << "Enter a number from 0 to " << sax.highChromat()-1 << ": ";
-					cin >> str;
-					num=(int)atoi(str);
-					if(num<0 || num>sax.highChromat()-1) {
-						cout << "Bad number! BOOOOO!" << endl;
-					} else {
-						if(!sax.readChromatogram(num)) cout << "Chromatogram number not in file." << endl;
-						else bLastWasSpectrum=false;
-					}
-				}
-				break;
-			case 'p':
-				if(bLastWasSpectrum){
-					for(unsigned int i=0;i<s.size();i++) printf("%.6lf\t%.1lf\n",s[i].mz,s[i].intensity);
-				} else {
-					for(unsigned int i=0;i<chromat.size();i++) printf("%.6lf\t%.1lf\n",chromat[i].time,chromat[i].intensity);
-				}
-				break;
-			case 's':
-				cout << "Enter a number from " << sax.lowScan() << " to " << sax.highScan() << ": ";
-				cin >> str;
-				num=(int)atoi(str);
-				if(num<sax.lowScan() || num>sax.highScan()) {
-					cout << "Bad number! BOOOOO!" << endl;
-				} else {
-					if(!sax.readSpectrum(num)) cout << "Spectrum number not in file." << endl;
-					else bLastWasSpectrum=true;
-				}
-				break;
-			case 'x':
-				break;
-			default:
-				cout << "\nInvalid command!" << endl;
-				break;
-		}
-	}
-
-
-	return 0;
-}
\ No newline at end of file
+/*
+mzParser - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+#include "mzParser.h"
+
+using namespace std;
+
+int main(int argc, char* argv[]){
+
+	if(argc!=2) {
+		cout << "USAGE: mzMLReader <mzML file>" << endl;
+		exit(0);
+	}
+
+	MSDataFile* msd;
+	ChromatogramListPtr sl;
+	ChromatogramPtr s2;
+	string st=argv[1];
+	vector<TimeIntensityPair> pairs;
+
+	msd = new MSDataFile(argv[1]);
+	if(!msd->run.chromatogramListPtr->get()) cout << "WTF" << endl;
+
+	sl = msd->run.chromatogramListPtr;
+	for (int j=1; j<(int)sl->size(); j++) {
+		s2 = sl->chromatogram(j, true);
+		cout << j << "\t" << s2->id << endl;
+		s2->getTimeIntensityPairs(pairs);
+		for(int k=0;k<(int)pairs.size();k++) cout << pairs[k].time << " " << pairs[k].intensity << endl;
+	}
+
+	exit(1);
+
+	BasicSpectrum s;
+	BasicChromatogram chromat;
+	MzParser sax(&s,&chromat);
+	sax.load(argv[1]);
+
+	bool bLastWasSpectrum=true;
+	char c='a';
+	char str[256];
+	int num;
+	while(c!='x'){
+
+		if(bLastWasSpectrum){
+			cout << "\nCurrent spectrum:" << endl;
+			cout << "\tScan number: " << s.getScanNum() << endl;
+			cout << "\tRetention Time: " << s.getRTime() << endl;
+			cout << "\tMS Level: " << s.getMSLevel() << endl;
+			cout << "\tNumber of Peaks: " << s.size() << endl;
+		} else {
+			chromat.getIDString(str);
+			cout << "\nCurrent chromatogram:" << endl;
+			cout << "\tID: " << str << endl;
+			cout << "\tNumber of Peaks: " << chromat.size() << endl;
+		}
+		cout << "\nMenu:\n\t'c' to grab a new chromatogram\n\t's' to grab a new spectrum\n\t'p' to show peaks\n\t'x' to exit" << endl;
+		cout << "Please enter your choice: ";
+		cin >> c;
+
+		switch(c){
+			case 'c':
+				if(sax.highChromat()==0){
+					cout << "No chromatograms in the file." << endl;
+				} else {
+					cout << "Enter a number from 0 to " << sax.highChromat()-1 << ": ";
+					cin >> str;
+					num=(int)atoi(str);
+					if(num<0 || num>sax.highChromat()-1) {
+						cout << "Bad number! BOOOOO!" << endl;
+					} else {
+						if(!sax.readChromatogram(num)) cout << "Chromatogram number not in file." << endl;
+						else bLastWasSpectrum=false;
+					}
+				}
+				break;
+			case 'p':
+				if(bLastWasSpectrum){
+					for(unsigned int i=0;i<s.size();i++) printf("%.6lf\t%.1lf\n",s[i].mz,s[i].intensity);
+				} else {
+					for(unsigned int i=0;i<chromat.size();i++) printf("%.6lf\t%.1lf\n",chromat[i].time,chromat[i].intensity);
+				}
+				break;
+			case 's':
+				cout << "Enter a number from " << sax.lowScan() << " to " << sax.highScan() << ": ";
+				cin >> str;
+				num=(int)atoi(str);
+				if(num<sax.lowScan() || num>sax.highScan()) {
+					cout << "Bad number! BOOOOO!" << endl;
+				} else {
+					if(!sax.readSpectrum(num)) cout << "Spectrum number not in file." << endl;
+					else bLastWasSpectrum=true;
+				}
+				break;
+			case 'x':
+				break;
+			default:
+				cout << "\nInvalid command!" << endl;
+				break;
+		}
+	}
+
+
+	return 0;
+}
diff --git a/src/mzParser/mzParser.cpp b/src/mzParser/mzParser.cpp
index 4d45173..e92e927 100644
--- a/src/mzParser/mzParser.cpp
+++ b/src/mzParser/mzParser.cpp
@@ -1,3 +1,11 @@
+/*
+mzParser - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
 #include "mzParser.h"
 
 MzParser::MzParser(BasicSpectrum* s){
diff --git a/src/mzParser/mzpMz5Config.cpp b/src/mzParser/mzpMz5Config.cpp
index 937202d..8dc367f 100644
--- a/src/mzParser/mzpMz5Config.cpp
+++ b/src/mzParser/mzpMz5Config.cpp
@@ -1,3 +1,13 @@
+/*
+mzpMz5Config - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+
+
 #include "mzParser.h"
 #ifdef MZP_MZ5
 mzpMz5Config::mzpMz5Config(){
diff --git a/src/mzParser/mzpMz5Structs.cpp b/src/mzParser/mzpMz5Structs.cpp
index 1f2c451..71e37e3 100644
--- a/src/mzParser/mzpMz5Structs.cpp
+++ b/src/mzParser/mzpMz5Structs.cpp
@@ -1,3 +1,13 @@
+/*
+mzpMz5Structs - The code is
+open source under the FreeBSD License, please see LICENSE file
+for detailed information.
+Copyright (C) 2011, Mike Hoopmann, Institute for Systems Biology
+Version 1.0, January 4, 2011.
+Version 1.1, March 14, 2012.
+*/
+
+
 #include "mzParser.h"
 #ifdef MZP_MZ5
 StrType getStringType() {
diff --git a/src/mzParser/mzp_base64.cpp b/src/mzParser/mzp_base64.cpp
index 678ce1c..3e1e9b8 100644
--- a/src/mzParser/mzp_base64.cpp
+++ b/src/mzParser/mzp_base64.cpp
@@ -1,187 +1,192 @@
-/* downloaded from web */
-//#include <cmath>
-//#include <stdio.h>
-//#include "stdafx.h"
-//#include <cstring>
-
-//#include "base64.h"
-#include "mzParser.h"
-
-inline int getPosition( char buf );
-
-static const unsigned char *b64_tbl = (const unsigned char*) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const unsigned char b64_pad = '=';
-
-/* base64 encode a group of between 1 and 3 input chars into a group of  4 output chars */
-static void encode_group (unsigned char output[],
-						  const unsigned char input[],
-						  int n)
-{
-	unsigned char ingrp[3];
-
-	ingrp[0] = n > 0 ? input[0] : 0;
-	ingrp[1] = n > 1 ? input[1] : 0;
-	ingrp[2] = n > 2 ? input[2] : 0;
-
-	/* upper 6 bits of ingrp[0] */
-	output[0] = n > 0 ? b64_tbl[ingrp[0] >> 2] : b64_pad;
-
-	/* lower 2 bits of ingrp[0] | upper 4 bits of ingrp[1] */
-	output[1] = n > 0 ? b64_tbl[((ingrp[0] & 0x3) << 4) | (ingrp[1] >> 4)] : b64_pad;
-
-	/* lower 4 bits of ingrp[1] | upper 2 bits of ingrp[2] */
-	output[2] = n > 1 ? b64_tbl[((ingrp[1] & 0xf) << 2) | (ingrp[2] >> 6)] : b64_pad;
-
-	/* lower 6 bits of ingrp[2] */
-	output[3] = n > 2 ? b64_tbl[ingrp[2] & 0x3f] : b64_pad;
-
-}
-
-int b64_encode (char *dest,
-                const char *src,
-                int len)
-{
-  int outsz = 0;
-
-  while (len > 0)
-  {
-    encode_group ( (unsigned char*) dest + outsz, (const unsigned char*) src, len > 3 ? 3 : len);
-    len -= 3;
-    src += 3;
-    outsz += 4;
-  }
-
-  return outsz;
-
-}
-
-
-
-/* base64 decode a group of 4 input chars into a group of between 0 and
-* 3 output chars */
-static void decode_group (unsigned char output[],
-						  const unsigned char input[],
-						  int *n)
-{
-	unsigned char *t1, *t2;
-	*n = 0;
-
-	if (input[0] == '=')
-		return;
-
-	t1 = (unsigned char*) strchr ((const char*)b64_tbl, input[0]);
-	t2 = (unsigned char*) strchr ((const char*)b64_tbl, input[1]);
-
-	output[(*n)++] = (unsigned char)(((t1 - b64_tbl) << 2) | ((t2 - b64_tbl) >> 4));
-
-	if (input[2] == '=')
-		return;
-
-	t1 = (unsigned char*) strchr ((const char*)b64_tbl, input[2]);
-
-	output[(*n)++] = (unsigned char)(((t2 - b64_tbl) << 4) | ((t1 - b64_tbl) >> 2));
-
-	if (input[3] == '=')
-		return;
-
-	t2 = (unsigned char*) strchr ((const char*)b64_tbl, input[3]);
-
-	output[(*n)++] = (unsigned char)(((t1 - b64_tbl) << 6) | (t2 - b64_tbl));
-
-	return;
-}
-
-
-
-inline int getPosition( char buf )
-{
-
-	if( buf > 96 )		// [a-z]
-		return (buf - 71);
-	else if( buf > 64 )		// [A-Z]
-		return (buf - 65);
-	else if( buf > 47 )		// [0-9]
-		return (buf + 4);
-	else if( buf == 43 )
-		return 63;
-	else				// buf == '/'
-		return 64;
-}
-
-
-// Returns the total number of bytes decoded
-int b64_decode_mio ( char *dest,  char *src, size_t size )
-{
-	char *temp = dest;
-	char *end = dest + size;
-
-	for (;;)
-	{
-		int register a;
-		int register b;
-		int t1,t2,t3,t4;
-
-		if (!(t1 = *src++) || !(t2 = *src++) || !(t3 = *src++) || !(t4 = *src++))
-			return (int)(temp-dest);
-
-		if (t1 == 61 || temp >= end)		// if == '='
-			return(int)(temp-dest);
-
-		if( t1 > 96 )		// [a-z]
-			a = (t1 - 71);
-		else if( t1 > 64 )		// [A-Z]
-			a = (t1 - 65);
-		else if( t1 > 47 )		// [0-9]
-			a = (t1 + 4);
-		else if( t1 == 43 )
-			a = 62;
-		else				// src[0] == '/'
-			a = 63;     
-
-
-		if( t2 > 96 )		// [a-z]
-			b = (t2 - 71);
-		else if( t2 > 64 )		// [A-Z]
-			b = (t2 - 65);
-		else if( t2 > 47 )		// [0-9]
-			b = (t2 + 4);
-		else if( t2 == 43 )
-			b = 62;
-		else				// src[0] == '/'
-			b = 63;     
-
-		*temp++ = ( a << 2) | ( b >> 4);
-
-		if (t3 == 61 || temp >= end)
-			return (int)(temp-dest);;
-
-		if( t3 > 96 )		// [a-z]
-			a = (t3 - 71);
-		else if( t3 > 64 )		// [A-Z]
-			a = (t3 - 65);
-		else if( t3 > 47 )		// [0-9]
-			a = (t3 + 4);
-		else if( t3 == 43 )
-			a = 62;
-		else				// src[0] == '/'
-			a = 63;     
-
-		*temp++ = ( b << 4) | ( a >> 2);
-
-		if (t4 == 61 || temp >= end)
-			return (int)(temp-dest);;
-
-		if( t4 > 96 )		// [a-z]
-			b = (t4 - 71);
-		else if( t4 > 64 )		// [A-Z]
-			b = (t4 - 65);
-		else if( t4 > 47 )		// [0-9]
-			b = (t4 + 4);
-		else if( t4 == 43 )
-			b = 62;
-		else				// src[0] == '/'
-			b = 63;    
-
-		*temp++ = ( a << 6) | ( b );
-	}
-}
+/* Source code obtained from X!Tandem
+   Copyright, The Global Proteome Machine Organization
+   Under the Artistic License: http://opensource.org/licenses/artistic-license-1.0
+*/
+
+/* downloaded from web */
+//#include <cmath>
+//#include <stdio.h>
+//#include "stdafx.h"
+//#include <cstring>
+
+//#include "base64.h"
+#include "mzParser.h"
+
+inline int getPosition( char buf );
+
+static const unsigned char *b64_tbl = (const unsigned char*) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+static const unsigned char b64_pad = '=';
+
+/* base64 encode a group of between 1 and 3 input chars into a group of  4 output chars */
+static void encode_group (unsigned char output[],
+						  const unsigned char input[],
+						  int n)
+{
+	unsigned char ingrp[3];
+
+	ingrp[0] = n > 0 ? input[0] : 0;
+	ingrp[1] = n > 1 ? input[1] : 0;
+	ingrp[2] = n > 2 ? input[2] : 0;
+
+	/* upper 6 bits of ingrp[0] */
+	output[0] = n > 0 ? b64_tbl[ingrp[0] >> 2] : b64_pad;
+
+	/* lower 2 bits of ingrp[0] | upper 4 bits of ingrp[1] */
+	output[1] = n > 0 ? b64_tbl[((ingrp[0] & 0x3) << 4) | (ingrp[1] >> 4)] : b64_pad;
+
+	/* lower 4 bits of ingrp[1] | upper 2 bits of ingrp[2] */
+	output[2] = n > 1 ? b64_tbl[((ingrp[1] & 0xf) << 2) | (ingrp[2] >> 6)] : b64_pad;
+
+	/* lower 6 bits of ingrp[2] */
+	output[3] = n > 2 ? b64_tbl[ingrp[2] & 0x3f] : b64_pad;
+
+}
+
+int b64_encode (char *dest,
+                const char *src,
+                int len)
+{
+  int outsz = 0;
+
+  while (len > 0)
+  {
+    encode_group ( (unsigned char*) dest + outsz, (const unsigned char*) src, len > 3 ? 3 : len);
+    len -= 3;
+    src += 3;
+    outsz += 4;
+  }
+
+  return outsz;
+
+}
+
+
+
+/* base64 decode a group of 4 input chars into a group of between 0 and
+* 3 output chars */
+static void decode_group (unsigned char output[],
+						  const unsigned char input[],
+						  int *n)
+{
+	unsigned char *t1, *t2;
+	*n = 0;
+
+	if (input[0] == '=')
+		return;
+
+	t1 = (unsigned char*) strchr ((const char*)b64_tbl, input[0]);
+	t2 = (unsigned char*) strchr ((const char*)b64_tbl, input[1]);
+
+	output[(*n)++] = (unsigned char)(((t1 - b64_tbl) << 2) | ((t2 - b64_tbl) >> 4));
+
+	if (input[2] == '=')
+		return;
+
+	t1 = (unsigned char*) strchr ((const char*)b64_tbl, input[2]);
+
+	output[(*n)++] = (unsigned char)(((t2 - b64_tbl) << 4) | ((t1 - b64_tbl) >> 2));
+
+	if (input[3] == '=')
+		return;
+
+	t2 = (unsigned char*) strchr ((const char*)b64_tbl, input[3]);
+
+	output[(*n)++] = (unsigned char)(((t1 - b64_tbl) << 6) | (t2 - b64_tbl));
+
+	return;
+}
+
+
+
+inline int getPosition( char buf )
+{
+
+	if( buf > 96 )		// [a-z]
+		return (buf - 71);
+	else if( buf > 64 )		// [A-Z]
+		return (buf - 65);
+	else if( buf > 47 )		// [0-9]
+		return (buf + 4);
+	else if( buf == 43 )
+		return 63;
+	else				// buf == '/'
+		return 64;
+}
+
+
+// Returns the total number of bytes decoded
+int b64_decode_mio ( char *dest,  char *src, size_t size )
+{
+	char *temp = dest;
+	char *end = dest + size;
+
+	for (;;)
+	{
+		int register a;
+		int register b;
+		int t1,t2,t3,t4;
+
+		if (!(t1 = *src++) || !(t2 = *src++) || !(t3 = *src++) || !(t4 = *src++))
+			return (int)(temp-dest);
+
+		if (t1 == 61 || temp >= end)		// if == '='
+			return(int)(temp-dest);
+
+		if( t1 > 96 )		// [a-z]
+			a = (t1 - 71);
+		else if( t1 > 64 )		// [A-Z]
+			a = (t1 - 65);
+		else if( t1 > 47 )		// [0-9]
+			a = (t1 + 4);
+		else if( t1 == 43 )
+			a = 62;
+		else				// src[0] == '/'
+			a = 63;     
+
+
+		if( t2 > 96 )		// [a-z]
+			b = (t2 - 71);
+		else if( t2 > 64 )		// [A-Z]
+			b = (t2 - 65);
+		else if( t2 > 47 )		// [0-9]
+			b = (t2 + 4);
+		else if( t2 == 43 )
+			b = 62;
+		else				// src[0] == '/'
+			b = 63;     
+
+		*temp++ = ( a << 2) | ( b >> 4);
+
+		if (t3 == 61 || temp >= end)
+			return (int)(temp-dest);;
+
+		if( t3 > 96 )		// [a-z]
+			a = (t3 - 71);
+		else if( t3 > 64 )		// [A-Z]
+			a = (t3 - 65);
+		else if( t3 > 47 )		// [0-9]
+			a = (t3 + 4);
+		else if( t3 == 43 )
+			a = 62;
+		else				// src[0] == '/'
+			a = 63;     
+
+		*temp++ = ( b << 4) | ( a >> 2);
+
+		if (t4 == 61 || temp >= end)
+			return (int)(temp-dest);;
+
+		if( t4 > 96 )		// [a-z]
+			b = (t4 - 71);
+		else if( t4 > 64 )		// [A-Z]
+			b = (t4 - 65);
+		else if( t4 > 47 )		// [0-9]
+			b = (t4 + 4);
+		else if( t4 == 43 )
+			b = 62;
+		else				// src[0] == '/'
+			b = 63;    
+
+		*temp++ = ( a << 6) | ( b );
+	}
+}
