This is an autogenerated patch header for a single-debian-patch file. The
delta against upstream is either kept as a single patch, or maintained
in some VCS, and exported as a single patch instead of more manageable
atomic patches.

--- colpack-1.0.10.orig/.travis.yml
+++ colpack-1.0.10/.travis.yml
@@ -1,12 +1,53 @@
 language: cpp
+compiler: g++-4.9
 
-compiler:
-  - gcc
-  - clang
+  
+matrix:
+  include:
+    - env:
+        - MATRIX_EVAL="CC=clang && CXX=clang++ && CXX_FLAG-fopenmp=libomp"
+    - env:
+        - MATRIX_EVAL="CC=gcc && CXX=g++ && CXX_FLAG-fopenmp=libomp"
+        
 
 
-before_script:
-  - autoreconf -fi
+#addons:
+#  apt:
+#    sources:
+#      - george-edison55-precise-backports
+#    packages:
+#      - cmake-data
+#      - cmake
+#
+#addons:
+#  apt:
+#    sources:
+#    - ubuntu-toolchain-r-test
+#    packages:
+#    - gcc-4.9
+#    - g++-4.9
+
+#before_script:
+#  - autoreconf -fi
+
+script:
+  - # try automake #./configure && make && make check
+  - cd build/automake
+  - autoreconf -vif  
+  - mkdir mywork 
+  - cd mywork
+  - fullpath=$(pwd)        # modify fullpath to your destination folder if need
+  - ./configure --prefix=${fullpath}  
+  - make -j 4              # Where "4" is the number of cores on your machine
+  - make install           # install lib and include/ColPack to destination  
 
 script:
-  - ./configure && make && make check
+  - # Now try building with CMake.
+  - cd build/cmake
+  - mkdir mywork
+  - cd mywork
+  - fullpath=$(pwd)
+  - cmake .. -DCMAKE_INSTALL_PREFIX:PATH=${fullpath}
+  - make #; ctest
+  - make install
+
--- colpack-1.0.10.orig/AUTHORS
+++ colpack-1.0.10/AUTHORS
@@ -1,2 +1,7 @@
 COLPACK
 Copyright (C) 2005-2010 Assefaw H. Gebremedhin, Duc Nguyen, Arijit Tarafdar, Md. Mostofa Ali Patwary, Alex Pothen
+
+The following people also help COLPACK works better
+
+Mu Wang
+
--- /dev/null
+++ colpack-1.0.10/Examples/ColPackAll/Main.cpp
@@ -0,0 +1,264 @@
+#include "ColPackHeaders.h"
+#include <cstring>
+#include <unordered_set>
+using namespace ColPack;
+void usage();
+void general_coloring(int argc, char* argv[]);
+void partial_coloring(int argc, char* argv[]);
+void bicoloring(int argc, char* argv[]);
+
+
+const unordered_set<string> GENERAL_COLORING({
+        "DISTANCE_ONE", 
+        "ACYCLIC", 
+        "ACYCLIC_FOR_INDIRECT_RECOVERY", 
+        "STAR", 
+        "RESTRICTED_STAR", 
+        "DISTANCE_TWO"});
+const unordered_set<string> BICOLORING({
+        "IMPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING",
+        "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"});
+const unordered_set<string> PARTIAL_COLORING({
+        "COLUMN_PARTIAL_DISTANCE_TWO",
+        "ROW_PARTIAL_DISTANCE_TWO"});
+
+
+int main(int argc, char* argv[]) {
+    string method="";
+    for(int i=1; i<argc; i++){
+        if( !strcmp(argv[i],"-m")) {
+            method = argv[++i]; break;
+        }
+    }
+    if(      GENERAL_COLORING.count(method) ) 
+        general_coloring(argc, argv);
+    else if( PARTIAL_COLORING.count(method) ) 
+        partial_coloring(argc, argv);
+    else if( BICOLORING.count(method)       ) 
+        bicoloring(argc,argv);
+    else{
+        usage();
+        exit(1);
+    }
+    return 0;
+}
+
+
+
+void general_coloring(int argc, char* argv[]){
+    vector<string> fnames;
+    vector<string> methds;
+    vector<string> orders(1,"RANDOM"); 
+    bool   bVerbose(false);
+    for(int i=1; i<argc; i++){
+        if( !strcmp(argv[i], "-f") ){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                fnames.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-m")){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                if(GENERAL_COLORING.count(argv[j])) 
+                    methds.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "-o")){
+            orders.clear();
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                orders.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-v")){
+            bVerbose=true;
+        }
+        else{
+            printf("\nWarning: unknown input argument\"%s\".\n", argv[i]);
+        }
+    }
+
+    if (fnames.empty()) { usage(); exit(1); }
+    for(auto fname : fnames){
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        for(auto m : methds){
+            for(auto o : orders){
+                if(bVerbose) printf("\ngraph: %s\norder: %s\nmethd: %s\nGeneral Graph Coloring\n",fname.c_str(), o.c_str(), m.c_str());
+                g->Coloring(o.c_str(), m.c_str());
+                if(bVerbose) {
+                    double t1 = g->GetVertexOrderingTime();
+                    double t2 = g->GetVertexColoringTime();
+                    printf("order+color time = %f = %f+%f\n",t1+t2, t1,t2);
+                    printf("number of colors: ");
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+                else {
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+            }
+        }
+        delete g;
+    }
+}
+
+
+void partial_coloring(int argc, char* argv[]){
+    vector<string> fnames;
+    vector<string> methds;
+    vector<string> orders; 
+    bool   bVerbose(false);
+
+    for(int i=1; i<argc; i++){
+        if( !strcmp(argv[i], "-f") ){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                fnames.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-m")){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                if(PARTIAL_COLORING.count(argv[j])) 
+                    methds.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "-o")){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                orders.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-v")){
+            bVerbose=true;
+        }
+        else{
+            printf("\nWarning: unknown input argument\"%s\".\n", argv[i]);
+        }
+    }   
+
+    for(auto fname : fnames){
+        BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        for(auto m : methds){
+            for(auto o : orders){
+                if(bVerbose) printf("\ngraph: %s\norder: %s\nmethd: %s\nPartial Distance Two Bipartite Graph Coloring\n",fname.c_str(), o.c_str(), m.c_str());
+                g->PartialDistanceTwoColoring(o.c_str(), m.c_str());
+                if(bVerbose) {
+                    double t1 = g->GetVertexOrderingTime();
+                    double t2 = g->GetVertexColoringTime();
+                    printf("order+color time = %f = %f+%f\n",t1+t2, t1,t2);
+                    printf("number of colors: ");
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+                else {
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+            }
+        }
+        delete g;
+    }
+    return;
+}
+ 
+
+
+void bicoloring(int argc, char* argv[]){
+    vector<string> fnames;
+    vector<string> methds;
+    vector<string> orders; 
+    bool   bVerbose(false);
+
+    for(int i=1; i<argc; i++){
+        if( !strcmp(argv[i], "-f") ){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                fnames.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-m")){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                if(BICOLORING.count(argv[j])) 
+                    methds.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "-o")){
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                orders.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i],"-v")){
+            bVerbose=true;
+        }
+        else{
+            printf("\nWarning: unknown input argument\"%s\".\n", argv[i]);
+        }
+    }   
+
+    for(auto fname : fnames){
+        BipartiteGraphBicoloringInterface *g = new BipartiteGraphBicoloringInterface(0, fname.c_str(), "AUTO_DETECTED");
+
+        for(auto m : methds){
+            for(auto o : orders){
+                if(bVerbose) printf("\ngraph: %s\norder: %s\nmethd: %s\nBiColoring Bipartite Graph Coloring\n",fname.c_str(), o.c_str(), m.c_str());
+                g->Bicoloring(o.c_str(), m.c_str());
+                if(bVerbose) {
+                    double t1 = g->GetVertexOrderingTime();
+                    double t2 = g->GetVertexColoringTime();
+                    printf("order+color time = %f = %f+%f\n",t1+t2, t1,t2);
+                    printf("number of colors: ");
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+                else {
+                    printf("%d\n",g->GetVertexColorCount());
+                }
+            }
+        }
+        delete g;
+    }
+    return;
+}
+ 
+
+
+void usage(){
+    fprintf(stderr, "\n"
+            "NAME\n"
+            "       ColPack - do graph coloring\n"
+            "\n"
+            "SYNOPISIS\n"
+            "       ColPack [-f <list of graphs>] [-m <list of methods>] [-o <list of orders>] ...\n"
+            "\n"
+            "DESCRIPTION\n"
+            "       the ColPack application shall take a list of commands and do the graph coloring. And display the results to the screen.\n"
+            "       There are some specific commands for different methods. Find more details on 'https://github.com/ProbShin/ColPack'\n"
+            "\n"
+            "OPTIONS\n"
+            "       the following options shall be supported:\n"
+            "\n"
+            "       -f files    Indicates the graph file path name.\n"
+            "       -v          Indicates verbose flag will be truned on and there will display more rich infomration.\n" 
+            "       -o orders   Indicates the orderings. Could be 'RANDOM','NATURAL','LARGEST_FIRST','SMALLEST_LAST','DYNAMIC_LARGEST_FIRST','INCIDENCE_DEGREE'... . There could be some specific ordering for specific methods\n"
+            "       -m methods  Indicates the methods. Could be 'DISTANCE_ONE','ACYCLIC','STAR','DISTNACE_TWO','ROW_PARTIAL_DISTANCE_TWO','D1_OMP_GMMP','PD2_OMP_GMMP',...\n"
+            "       -nT         Indicates number of threads used of parallel graph coloring\n"
+            "       -side       Indiecate Row (L) or Column (R) side of coloring for parallel partial colroing.\n"
+            "\n"
+            "DESCRIPTION\n"
+            "       if the method is one of 'DISTANCE_ONE','ACYCLIC','STAR','DISTANCE_TWO','ROW_PARTIAL_DISTANCE_TWO' The method belongs to gereral coloring on general graphs.\n" 
+            "       if the method is one of 'ROW_PARTIAL_DISTANCE_TWO','COLUMN_PARTIAL_DISTANCE_TWO' The method belongs to partial coloring on bipartite graphs.\n" 
+            "       if the method is one of 'IMPLICIT_COVERING__STAR_BICOLORING','EXPLICIT_COVERING__STAR_BICOLORING',EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING','IMPLICIT_COVERING__GREEDY_STAR_BICOLORING'. The method belongs to bicoloring on bipartite graphs.\n" 
+            "       if the method is one of 'D1_OMP_GM3P, D1_OMP_GM3P_LF, D1_OMP_GMMP, D1_OMP_GMMP_LF,D1_OMP_SERIAL, D1_OMP_SERIAL_LF, D1_OMP_JP, D1_OMP_JP_LF ,D1_OMP_MTJP, D1_OMP_MTJP_LF, D1_OMP_HBJP_GM3P, D1_OMP_HBJP_GM3P_.., D1_OMP_HBJP_GMMP.., D1_OMP_HBJP_.... ,D1_OMP_HBMTP_GM3P, D1_OMP_HBMTJP_GM3P_.., D1_OMP_HBMTJP_GMMP.., D1_OMP_HBMTJP_.... ,D2_OMP_GM3P, D2_OMP_GM3P_LF ,D2_OMP_GMMP, D2_OMP_GMMP_LF ,D2_OMP_SERIAL, D2_OMP_SERIAL_LF' the method belongs to parallel general graph coloring\n"
+            "\n"
+            "EXAMPLE\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o LARGEST_FIRST RANDOM -m DISTANCE_ONE -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o SMALLEST_LAST LARGEST_FIRST -m ACYCLIC -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o RANDOM -m D1_OMP_GMMP -v -np 2\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o RANDOM -m PD2_OMP_GMMP -v -np 4\n"
+            "\n"
+           ); 
+}
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/ColPackAll/Makefile
@@ -0,0 +1,53 @@
+# makefile for non-installed user
+# author: xin cheng
+# usage: change the following variable COLPACK_ROOT accordingly
+#        delete OMP_FLAG=-fopenmp in MAC OS system
+COLPACK_ROOT = ../..
+COLPACK_SRC = $(wildcard ${COLPACK_ROOT}/src/GeneralGraphColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/Utilities/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphBicoloring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphPartialColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/SMPGC/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/PartialD2SMPGC/*.cpp)
+
+COLPACK_OBJ = $(COLPACK_SRC:%.cpp=%.o)
+SRC = $(wildcard *.cpp)
+OBJ = $(SRC:%.cpp=%.o) $(COLPACK_OBJ)
+EXE = ColPack
+
+
+# compiler
+COMPILER = g++      # gnu
+OMP_FLAG = -fopenmp 
+
+#COMPILER = icc      # intel(R)
+#OMP_FLAG = -openmp
+
+# compile flags
+CCFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast #-O3 
+# link flags
+LDFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast #-O3
+
+
+INCLUDES = -I./
+INCLUDES = -I${COLPACK_ROOT}/inc
+INCLUDES+= -I${COLPACK_ROOT}/src/GeneralGraphColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphBicoloring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphPartialColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/Utilities
+INCLUDES+= -I${COLPACK_ROOT}/src/Recovery
+INCLUDES+= -I${COLPACK_ROOT}/src/SMPGC
+INCLUDES+= -I${COLPACK_ROOT}/src/PartialD2SMPGC
+
+
+all: $(EXE)
+
+%.o : %.cpp
+	$(COMPILER) $(INCLUDES) $(CCFLAGS) -c $< -o $@
+
+$(EXE): $(OBJ)
+	$(COMPILER) $^ $(INCLUDES) $(LDFLAGS)  -o $@
+
+clean:
+	rm -f $(OBJ) $(EXE)
+
--- /dev/null
+++ colpack-1.0.10/Examples/GeneralColoring/Main.cpp
@@ -0,0 +1,116 @@
+#include "ColPackHeaders.h"
+#include <cstring>
+#include <unordered_set>
+using namespace ColPack;
+void usage();
+
+int main(int argc, char* argv[]) {
+    string fname;
+    string order("LARGEST_FIRST");
+    string methd("DISTANCE_ONE");
+    bool   bVerbose(false);
+    unordered_set<string> ParaD1Color={"DISTANCE_ONE_OMP"};
+    unordered_set<string> BiColor={ 
+        "IMPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING",
+        "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"
+    };
+    unordered_set<string> PartialColor={ 
+        "COLUMN_PARTIAL_DISTANCE_TWO",
+        "ROW_PARTIAL_DISTANCE_TWO"
+    };
+   
+
+    for(int i=1; i<argc; i++){
+        string cmd = argv[i];
+        if(     cmd == "-f") fname = argv[++i];
+        else if(cmd == "-o") order = argv[++i];
+        else if(cmd == "-m") methd = argv[++i];
+        else if(cmd == "-v") bVerbose = true;
+        else{
+            printf("Warning: unknown input argument\"%s\".\n", argv[i]);
+        }
+    }   
+
+    if(fname.empty()) {usage(); exit(0); }
+    
+    if(BiColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nBiColoring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphBicoloringInterface *p = new BipartiteGraphBicoloringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->Bicoloring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d\n", p->GetVertexColorCount());
+        delete p; p=nullptr;
+    }
+    else if(PartialColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nPartial Distantce Two Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphPartialColoringInterface *p = new BipartiteGraphPartialColoringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->PartialDistanceTwoColoring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d\n", p->GetVertexColorCount());
+        delete p; p=nullptr;   
+    }
+    else if(ParaD1Color.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nShared Memory General Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        delete g; g=nullptr;  
+    }
+    else{
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nGeneral Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        
+        if(bVerbose) {
+            double t1 = g->GetVertexOrderingTime();
+            double t2 = g->GetVertexColoringTime();
+            fprintf(stdout, "order+color time = %f = %f+%f\n",t1+t2, t1,t2);
+            fprintf(stdout, "number of colors: ");
+            fprintf(stdout,"%d\n",g->GetVertexColorCount());
+        }
+        else {
+            fprintf(stdout,"%d\n",g->GetVertexColorCount());
+        }
+        delete g; g=nullptr;
+    }
+    if(bVerbose) fprintf(stdout,"\n"); 
+    return 0;
+}
+
+void usage(){
+    fprintf(stderr, "\nusage: ./ColPack -f <gname> -o <ordering> -m <methods> [-v]\n"
+            "-f <gname>  :  Input file name\n"
+            "-o <order>  :  LARGEST_FIRST\n"
+            "               SMALLEST_LAST,\n"
+            "               DYNAMIC_LARGEST_FIRST,\n"
+            "               INCIDENCE_DEGREE,\n"
+            "               NATURAL,\n"
+            "               RANDOM\n"
+            "-m <methods>:  DISTANCE_ONE\n"
+            "               ACYCLIC\n"
+            "               ACYCLIC_FOR_INDIRECT_RECOVERY\n"
+            "               STAR\n"
+            "               RESTRICTED_STAR\n"
+            "               DISTANCE_TWO\n"
+            "               --------------------\n"
+            "               IMPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING\n"
+            "               IMPLICIT_COVERING__GREEDY_STAR_BICOLORING\n"
+            "               --------------------\n"
+            "               COLUMN_PARTIAL_DISTANCE_TWO\n"
+            "               ROW_PARTIAL_DISTANCE_TWO\n"
+            "\n"
+            "-v          :  verbose infomation\n"
+            "\n"
+            "\n"
+            "Examples:\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o LARGEST_FIRST -m DISTANCE_ONE -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o SMALLEST_LAST -m ACYCLIC -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o DYNAMIC_LARGEST_FIRST -m DISTANCE_ONE_OMP -v\n"
+            "\n"
+           ); 
+}
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/GeneralColoring/Makefile
@@ -0,0 +1,53 @@
+# makefile for non-installed user
+# author: xin cheng
+# usage: change the following variable COLPACK_ROOT accordingly
+#        delete OMP_FLAG=-fopenmp in MAC OS system
+COLPACK_ROOT = ../..
+COLPACK_SRC = $(wildcard ${COLPACK_ROOT}/src/GeneralGraphColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/Utilities/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphBicoloring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphPartialColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/SMPGC/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/PartialD2SMPGC/*.cpp)
+
+COLPACK_OBJ = $(COLPACK_SRC:%.cpp=%.o)
+SRC = $(wildcard *.cpp)
+OBJ = $(SRC:%.cpp=%.o) $(COLPACK_OBJ)
+EXE = ColPack
+
+
+# compiler
+COMPILER = g++      # gnu
+OMP_FLAG = -fopenmp 
+
+#COMPILER = icc      # intel(R)
+#OMP_FLAG = -openmp
+
+# compile flags
+CCFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast #-O3 
+# link flags
+LDFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast #-O3
+
+
+INCLUDES = -I./
+INCLUDES = -I${COLPACK_ROOT}/inc
+INCLUDES+= -I${COLPACK_ROOT}/src/GeneralGraphColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphBicoloring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphPartialColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/Utilities
+INCLUDES+= -I${COLPACK_ROOT}/src/Recovery
+INCLUDES+= -I${COLPACK_ROOT}/src/SMPGC
+INCLUDES+= -I${COLPACK_ROOT}/src/PartialD2SMPGC
+
+
+all: $(EXE)
+
+%.o : %.cpp
+	$(COMPILER) $(INCLUDES) $(CCFLAGS) -c $< -o $@
+
+$(EXE): $(OBJ)
+	$(COMPILER) $^ $(INCLUDES) $(LDFLAGS)  -o $@
+
+clean:
+	rm -f $(OBJ) $(EXE)
+
--- /dev/null
+++ colpack-1.0.10/Examples/README.md
@@ -0,0 +1,211 @@
+
+    ./$
+    |-Example_ColPackAll              # all colpack function tested
+    |-Example_General                 # general graph coloring 
+    |-Example_SMPGC                   # shared memory parallel graph coloring
+    |-Example_PD2SMPGC                # shared memory parallel partial distance two coloring on bipartite graph
+    |-Example_Use_Library             # template demo project of using ColPack after install ColPack as an statistic library.
+    |-Main                            # template demo cpp 
+
+
+### How to use
+
+go into each directory and make will compile the code. The executable file name is always `ColPack` and their synopsis are as follows.
+
+    ColPack [-cmd <lists of arguments>] ...
+    
+For example:
+    
+    cd Example_ColPackAll
+    make
+    ./ColPack -f ../../Graphs/bcsstk01.mtx -m DISTANCE_ONE -o LARGEST_FIRST RANDOM -v
+    ./ColPack -f ../../Graphs/bcsstk01.mtx -m PD2_OMP_GMMP -o RANDOM -v
+
+To get help, just run ColPack
+```
+NAME
+        ColPack - do graph coloring
+SYNOPISIS
+        ColPack [-f <list of graphs>] [-m <list of methods>] [-o <list of orders>] ...
+DESCRIPTION
+        the ColPack application shall take a list of commands and do the relative graph coloring. And display the results to the screen.
+        
+OPTIONS
+        the following options shall be supported:
+        
+        -f files    Indicates the graph file path name.
+        -v          Indicates verbose flag will be truned on and there will display more rich infomration. 
+        -o orders   Indicates the orderings. The following orders are supported:
+                    RANDOM
+                    NATURAL
+                    LARGEST_FIRST
+                    SMALLEST_LAST
+                    DYNAMIC_LARGEST_FIRST
+                    INCIDENCE_DEGREE
+        -m methods  Indicates the methods. The follwoign orders are supported:
+                    DISTANCE_
+                    
+```
+
+
+There are some specific commands may exist for each different methods.
+
+List of available methods
+
+|                |-m|
+|-----|-----|
+|GeneralColoroing|DISTANCE_ONE|
+| | ACYCLIC|
+| | ACYCLIC_FOR_INDIRECT_RECOVERY
+| | STAR|
+| | RESTRICTED_STAR|
+| | DISTANCE_TWO|
+|PartialColoring |COLUMN_PARTIAL_DISTANCE_TWO|
+| | ROW_PARTIAL_DISTANCE_TWO|
+|BiColoring      |IMPLICIT_COVERING__STAR_BICOLORING|
+| | EXPLICIT_COVERING__STAR_BICOLORING,|
+| | EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING|
+| | IMPLICIT_COVERING__GREEDY_STAR_BICOLORING|
+|ParallelGeneralColoring|D1_OMP_GM3P, D1_OMP_GM3P_LF|  
+|| D1_OMP_GMMP,    D1_OMP_GMMP_LF    |
+|| D1_OMP_SERIAL,  D1_OMP_SERIAL_LF  |
+|| D1_OMP_JP,      D1_OMP_JP_LF      |
+|| D1_OMP_MTJP,    D1_OMP_MTJP_LF    |
+|| D1_OMP_HBJP_GM3P,   D1_OMP_HBJP_GM3P_..,  D1_OMP_HBJP_GMMP..,   D1_OMP_HBJP_....  |
+|| D1_OMP_HBMTP_GM3P,  D1_OMP_HBMTJP_GM3P_.., D1_OMP_HBMTJP_GMMP.., D1_OMP_HBMTJP_....|
+|| D2_OMP_GM3P,    D2_OMP_GM3P_LF     |
+|| D2_OMP_GMMP,    D2_OMP_GMMP_LF     |
+|| D2_OMP_SERIAL,  D2_OMP_SERIAL_LF   |
+|ParallelPartialColoring|D2_OMP_SERIAL|
+| | PD2_OMP_GMMP, D2_OMP_GM3P |
+| | PD2_OMP_GMMP_LOLF, D2_OMP_GM3P_LOLF|
+| | PD2_OMP_GMMP_BIT,  D2_OMP_GM3P_BIT |
+| | PD2_OMP_GMMP_BIT_LOLF, D2_OMP_GM3P_BIT_LOLF|
+
+
+
+### general coloring on general graphs
+list of commands
+
+|cmds|possible options|
+|----|----|
+|-f|graph names|
+|-m|DISTANCE_ONE|
+| | ACYCLIC|
+| | ACYCLIC_FOR_INDIRECT_RECOVERY
+| | STAR|
+| | RESTRICTED_STAR|
+| | DISTANCE_TWO|
+|-o|NATURAL|
+||RANDOM|
+||LARGEST_FIRST|
+||SMALLEST_LAST|
+||DYNAMIC_LARGEST_FIRST|
+||INCIDENCE_DEGREE|
+|-v|
+
+Example:
+
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m DISTANCE_ONE -o LARGEST_FIRST RANDOM -v
+
+### partial coloring on bipartite graphs
+list of commands
+
+|cmds|possible options|
+|----|----|
+|-f|graph names|
+|-m|COLUMN_PARTIAL_DISTANCE_TWO|
+| | ROW_PARTIAL_DISTANCE_TWO|
+|-o|NATURAL|
+||RANDOM|
+||LARGEST_FIRST|
+||SMALLEST_LAST|
+||DYNAMIC_LARGEST_FIRST|
+||INCIDENCE_DEGREE|
+|-v|
+
+Example:
+
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m COLUMN_PARTIAL_DISTANCE_TWO -o LARGEST_FIRST RANDOM -v
+
+
+
+### bicoloring on bipartite graphs
+list of commands
+
+|cmds|possible options|
+|----|----|
+|-f|graph names|
+|-m|IMPLICIT_COVERING__STAR_BICOLORING|
+| | EXPLICIT_COVERING__STAR_BICOLORING,|
+| | EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING|
+| | IMPLICIT_COVERING__GREEDY_STAR_BICOLORING|
+|-o|NATURAL|
+||RANDOM|
+||LARGEST_FIRST|
+||SMALLEST_LAST|
+||DYNAMIC_LARGEST_FIRST|
+||INCIDENCE_DEGREE|
+|-v||
+
+Example:
+
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m IMPLICIT_COVERING__STAR_BICOLORING -o LARGEST_FIRST RANDOM -v
+
+    
+
+### Parallel graph coloring for distance one and distance two coloring
+list of commands
+
+|cmds|possible options|
+|----|----|
+|-f|graph names|
+|-m|D1_OMP_SERIAL,D2_OMP_SERIAL|
+| | D1_OMP_GMMP, D1_OMP_GM3P| 
+| | D1_OMP_GMMP_LOLF, D1_OMP_GM3P_LOLF|
+| | D1_OMP_GMMP_HYBIR_SERIAL,  D1_OMP_GM3P_BIT |
+| | D2_OMP_GMMP, D2_OMP_GM3P| 
+| | D2_OMP_GMMP_LOLF, D2_OMP_GM3P_LOLF|
+|-o|NATURAL|
+||RANDOM|
+||LARGEST_FIRST|
+||SMALLEST_LAST|
+|-v||
+|-nT| number of threads|
+
+Example:
+
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m D1_OMP_GMMP D2_OMP_GM3P_LF -o RANDOM -v -nT 1 2 4 8 
+
+
+
+### Parallel graph coloring for partial distance two coloring
+list of commands
+
+|cmds|possible options|
+|----|----|
+|-f|grpah names|
+|-m|D2_OMP_SERIAL|
+| | PD2_OMP_GMMP, D2_OMP_GM3P |
+| | PD2_OMP_GMMP_LOLF, D2_OMP_GM3P_LOLF|
+| | PD2_OMP_GMMP_BIT,  D2_OMP_GM3P_BIT |
+| | PD2_OMP_GMMP_BIT_LOLF, D2_OMP_GM3P_BIT_LOLF|
+|-o|NATURAL|
+||RANDOM|
+||LARGEST_FIRST|
+||SMALLEST_LAST|
+|-v||
+|-nT| number of threads|
+|-fmt| MM, SQRT|
+|-side|L,R|
+|-low|
+
+
+Example:
+
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m PD2_OMP_GMMP -low -v
+     ./ColPack -f ../../Graphs/bcsstk01.mtx -m PD2_OMP_GMMP -o RANDOM -v -nT 1 2 4 8 
+
+
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/SMPGC/Makefile
@@ -0,0 +1,53 @@
+# makefile for non-installed user
+# author: xin cheng
+# usage: change the following variable COLPACK_ROOT accordingly
+#        delete OMP_FLAG=-fopenmp in MAC OS system
+COLPACK_ROOT = ../..
+COLPACK_SRC = $(wildcard ${COLPACK_ROOT}/src/GeneralGraphColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/Utilities/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphBicoloring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/BipartiteGraphPartialColoring/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/SMPGC/*.cpp)
+COLPACK_SRC+= $(wildcard ${COLPACK_ROOT}/src/PartialD2SMPGC/*.cpp)
+
+COLPACK_OBJ = $(COLPACK_SRC:%.cpp=%.o)
+SRC = $(wildcard *.cpp)
+OBJ = $(SRC:%.cpp=%.o) $(COLPACK_OBJ)
+EXE = ColPack
+
+
+# compiler
+COMPILER = g++      # gnu
+OMP_FLAG = -fopenmp 
+
+#COMPILER = icc      # intel(R)
+#OMP_FLAG = -openmp
+
+# compile flags
+CCFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast -m64 # -D DEBUG_JP_PROFILE #-D PRINT_DETAILED_STATS_#-O3 
+# link flags
+LDFLAGS = -Wall -std=c++11 $(OMP_FLAG)  -Ofast -m64 # -D DEBUG_JP_PROFILE #-O3
+
+
+INCLUDES = -I./
+INCLUDES = -I${COLPACK_ROOT}/inc
+INCLUDES+= -I${COLPACK_ROOT}/src/GeneralGraphColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphBicoloring
+INCLUDES+= -I${COLPACK_ROOT}/src/BipartiteGraphPartialColoring
+INCLUDES+= -I${COLPACK_ROOT}/src/Utilities
+INCLUDES+= -I${COLPACK_ROOT}/src/Recovery
+INCLUDES+= -I${COLPACK_ROOT}/src/SMPGC
+INCLUDES+= -I${COLPACK_ROOT}/src/PartialD2SMPGC
+
+
+all: $(EXE)
+
+%.o : %.cpp
+	$(COMPILER) $(INCLUDES) $(CCFLAGS) -c $< -o $@
+
+$(EXE): $(OBJ)
+	$(COMPILER) $^ $(INCLUDES) $(LDFLAGS)  -o $@
+
+clean:
+	rm -f $(OBJ) $(EXE)
+
--- /dev/null
+++ colpack-1.0.10/Examples/SMPGC/main.cpp
@@ -0,0 +1,127 @@
+#include "SMPGCColoring.h"
+#include <cstring>
+using namespace ColPack;
+void usage();
+
+
+int main(int argc, char* argv[]) {
+    vector<string> fnames;
+    vector<string> orders(1,"RANDOM");
+    vector<string> methds(1,"D1_OMP_GM3P");
+    bool   bVerbose(false);
+    vector<int> nTs(1);
+    vector<string> options(1,"GM3P");
+    vector<int>    switch_iters(1,0);
+    vector<string> pf_names(1,".");
+    int   bCheck(0);
+
+    for(int i=1; i<argc; i++){
+        if(     !strcmp(argv[i], "-f")) {
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                fnames.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "-o")) {
+            orders.clear();
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                orders.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "--m")||!strcmp(argv[i],"-m")) {
+            methds.clear();
+            for(int j=i+1; j<argc; j++, i++) {
+                if(argv[j][0]=='-') break;
+                methds.push_back( argv[j]);
+            }
+        }
+        else if(!strcmp(argv[i], "--nT")||!strcmp(argv[i],"-nT")) {
+            nTs.clear(); 
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                nTs.push_back( atoi(argv[j]));
+            }
+        }
+        else if(!strcmp(argv[i], "-v")) bVerbose = true;
+        else if(!strcmp(argv[i], "-sit")||!strcmp(argv[i],"--sit")) {
+            switch_iters.clear(); 
+            for(int j=i+1; j<argc; j++, i++){
+                if(argv[j][0]=='-') break;
+                switch_iters.push_back( atoi(argv[j]));
+            }
+        }
+        else if(!strcmp(argv[i],"-checkd1")||!strcmp(argv[i],"--checkd1")) bCheck|=1;
+        else if(!strcmp(argv[i],"-checkd2")||!strcmp(argv[i],"--checkd2")) bCheck|=2;
+
+        
+        else printf("Waringing, unused argument %s",argv[i]);
+    }   
+
+    if(fnames.empty()) {usage(); exit(0); }
+   
+    for(auto & fname : fnames){
+        double iotime,ordtime;
+        SMPGCColoring *g = new SMPGCColoring(fname,"MM",bVerbose?(&iotime):nullptr, "NATURAL", nullptr);
+        if(bVerbose) {
+                printf("%s\n",fname.c_str());
+                printf("iotime"); if(iotime>60) { printf(" %d min",((int)iotime)/60); iotime= ((int)(iotime)%60)+(iotime- (int)(iotime)); }  printf(" %g sec\n",iotime);  
+        }
+
+        for(auto & o : orders){
+            g->global_ordering(o, bVerbose?(&ordtime):nullptr);
+            if(bVerbose)  {
+                printf("global order %s ordtime",o.c_str()); if(ordtime>60) { printf(" %d min",((int)ordtime)/60); ordtime= ((int)(ordtime)%60)+(ordtime- (int)(ordtime)); }  printf(" %g sec\n",ordtime);  
+            }
+
+            for(auto& m : methds) {
+                for(auto nT : nTs) 
+                    for(auto switch_iter : switch_iters)
+                        g->Coloring(nT, m, switch_iter);
+            }//end for methods
+        }//end for orders
+        delete g;
+    }//end for files
+    return 0;
+}
+
+void usage(){
+    fprintf(stderr, "\n\n\nUSAGE:\n $./ColPack -f <list of gname> -o <list of orderings> -m <list of methods> [-v] --nT <list of number threads>\n"
+            "\n"
+            "-f <gnames>  :  Input file names\n"
+            "-o <orders>  :  NATURAL\n"
+            "                RANDOM\n"
+            "                LARGEST_FIRST\n"
+            "                SMALLEST_LAST\n"
+            "-m <methods> :  D1_OMP_<GM3P/GMMP/SERIAL/JP/MTJP>[_<LF/SL/NT/RD/NONE>]\n" 
+            "                D1_OMP_HB[MT]JP_<GM3P/GMMP/SERIAL>[_<LF/SL/NT/RD/NONE>]\n"
+            "                D2_OMP_<GM3P/GMMP/SERIAL>[_<LF/SL/NT/RD/NONE>]\n"
+            "\n"
+            "-nT <threads>:  list of number threads, --nT is also accept.\n"
+            "-v           :  verbose for debug infomation\n"
+            "(only for HYBRID METHOD)\n"
+            "  -sit <switch at the number of iteration,  0 means direct switch>\n"
+            "\n"
+            "List of Method:\n"
+            " D1_OMP_GM3P    D1_OMP_GM3P_LF     D1_OMP_GM3P_..  \n"
+            " D1_OMP_GMMP    D1_OMP_GMMP_LF     D1_OMP_GMMP_..  \n"
+            " D1_OMP_SERIAL  D1_OMP_SERIAL_LF   D1_OMP_SERIAL_..\n"
+            " D1_OMP_JP      D1_OMP_JP_LF       D1_OMP_JP_..    \n"
+            " D1_OMP_MTJP    D1_OMP_MTJP_LF     D1_OMP_MTJP_..  \n"
+            "\n"
+            " D1_OMP_HBJP_GM3P   D1_OMP_HBJP_GM3P_..   D1_OMP_HBJP_GMMP..   D1_OMP_HBJP_....  \n"
+            " D1_OMP_HBMTP_GM3P  D1_OMP_HBMTJP_GM3P_.. D1_OMP_HBMTJP_GMMP.. D1_OMP_HBMTJP_....\n"
+            "\n"
+            " D2_OMP_GM3P    D2_OMP_GM3P_LF     D2_OMP_GM3P_..  \n"
+            " D2_OMP_GMMP    D2_OMP_GMMP_LF     D2_OMP_GMMP_..  \n"
+            " D2_OMP_SERIAL  D2_OMP_SERIAL_LF   D2_OMP_SERIAL_..\n"
+           "\n"
+            "Example:\n"
+            " $./ColPack -f mc10.mtx mc15.mtx -o RANDOM -m D1_OMP_GM3P D2_OMP_GMMP_LF -v --nT 1 2 4 8\n" 
+            " $./ColPack -f bcsstk01.mtx -o RANDOM -m D1_OMP_HBJP_SERIAL -v -nT 10 -sit 4\n"
+            " $./ColPack -f bcsstk01.mtx mc10.mtx -o RANDOM -m D2_OMP_GMMP D2_OMP_GMMP_LF -v -nT 10\n"
+            "\n\n\n"
+            ); 
+}
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Basic/Generate_seed_matrix_for_Hessian.cpp
@@ -0,0 +1,96 @@
+// An example for using GraphColoringInterface to generate the seed matrix for Hessian
+/* How to compile this driver manually:
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+int main()
+{
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int i_RowCount, i_MaxNonZerosInRows;
+
+	//populate the Hessian. Uncomment one of the 2 matrices below
+
+	/* 1x1 matrix
+	i_RowCount = 1;
+	i_MaxNonZerosInRows = 1;
+	unsigned int **uip2_HessianSparsityPattern = new unsigned int *[i_RowCount];//[1][1]
+	for(int i=0;i<1;i++) uip2_HessianSparsityPattern[i] = new unsigned int[i_MaxNonZerosInRows + 1];
+	uip2_HessianSparsityPattern[0][0] = 1;		uip2_HessianSparsityPattern[0][1] = 0;
+	//*/
+
+	//* 5x5 matrix
+	i_RowCount = 5;
+	i_MaxNonZerosInRows = 2;
+	unsigned int **uip2_HessianSparsityPattern = new unsigned int *[i_RowCount];//[5][5]
+	for(int i=0;i<5;i++) uip2_HessianSparsityPattern[i] = new unsigned int[i_MaxNonZerosInRows + 1];
+	uip2_HessianSparsityPattern[0][0] = 1;		uip2_HessianSparsityPattern[0][1] = 1;
+	uip2_HessianSparsityPattern[1][0] = 2;		uip2_HessianSparsityPattern[1][1] = 0;		uip2_HessianSparsityPattern[1][2] = 2;
+	uip2_HessianSparsityPattern[2][0] = 2;		uip2_HessianSparsityPattern[2][1] = 1;		uip2_HessianSparsityPattern[2][2] = 3;
+	uip2_HessianSparsityPattern[3][0] = 2;		uip2_HessianSparsityPattern[3][1] = 2;		uip2_HessianSparsityPattern[3][2] = 4;
+	uip2_HessianSparsityPattern[4][0] = 1;		uip2_HessianSparsityPattern[4][1] = 3;
+	//*/
+
+
+	//Step 1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface * g = new GraphColoringInterface(SRC_MEM_ADOLC, uip2_HessianSparsityPattern, i_RowCount);
+
+	//Step 2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "STAR");
+
+	//Step 3: From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	In stead of doing step 1-3, you can just call the bellow function:
+		g->GenerateSeedHessian(uip2_HessianSparsityPattern, i_RowCount, dp3_Seed, ip1_SeedRowCount, ip1_SeedColumnCount, "STAR", "SMALLEST_LAST"); // this function is inside GraphColoringInterface class
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+
+	//this SECTION is just for displaying the result
+	g->PrintGraphStructure();
+	g->PrintVertexColors();
+	g->PrintVertexColoringMetrics();
+	double **Seed = *dp3_Seed;
+	int rows = g->GetVertexCount();
+	int cols = g->GetVertexColorCount();
+	cout<<"Seed matrix: ("<<rows<<","<<cols<<")"<<endl;
+	for(int i=0; i<rows; i++) {
+		for(int j=0; j<cols; j++) {
+			cout<<setw(6)<<Seed[i][j];
+		}
+		cout<<endl;
+	}
+	//END SECTION
+
+	//GraphColoringInterface * g = new GraphColoringInterface();
+	delete g;
+	g = NULL;
+
+	//double*** dp3_Seed = new double**;
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+	Seed = NULL;
+
+	//int *ip1_SeedRowCount = new int;
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount = NULL;
+
+	//int *ip1_SeedColumnCount = new int;
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	//unsigned int **uip2_HessianSparsityPattern = new unsigned int *[i_RowCount];//[5][5]
+	free_2DMatrix(uip2_HessianSparsityPattern, i_RowCount);
+	uip2_HessianSparsityPattern = NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Basic/Generate_seed_matrix_for_Jacobian.cpp
@@ -0,0 +1,123 @@
+// An example for using BipartiteGraphPartialColoringInterface to generate the seed matrix for Jacobian
+/* How to compile this driver manually:
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+int main()
+{
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int i_RowCount, i_ColumnCount, i_MaxNonZerosInRows;
+
+	//populate the Jacobian. Uncomment one of the 2 matrices below
+	/* 1x1 matrix
+	i_RowCount = 1;
+	i_ColumnCount = 1;
+	i_MaxNonZerosInRows = 1;
+	unsigned int **uip2_JacobianSparsityPattern = new unsigned int *[i_RowCount];//[1][1]
+	for(int i=0;i<i_RowCount;i++) uip2_JacobianSparsityPattern[i] = new unsigned int[i_MaxNonZerosInRows + 1];
+	uip2_JacobianSparsityPattern[0][0] = 1;		uip2_JacobianSparsityPattern[0][1] = 0;
+	//*/
+
+	//* 32x9 matrix
+	i_RowCount = 32;
+	i_ColumnCount = 9;
+	i_MaxNonZerosInRows = 3;
+	unsigned int **uip2_JacobianSparsityPattern = new unsigned int *[i_RowCount];//[32][9]
+	for(int i=0;i<i_RowCount;i++) uip2_JacobianSparsityPattern[i] = new unsigned int[i_MaxNonZerosInRows + 1];
+	uip2_JacobianSparsityPattern[0][0] = 0;
+	uip2_JacobianSparsityPattern[1][0] = 1;		uip2_JacobianSparsityPattern[1][1] = 0;
+	uip2_JacobianSparsityPattern[2][0] = 1;		uip2_JacobianSparsityPattern[2][1] = 1;
+	uip2_JacobianSparsityPattern[3][0] = 1;		uip2_JacobianSparsityPattern[3][1] = 2;
+	uip2_JacobianSparsityPattern[4][0] = 1;		uip2_JacobianSparsityPattern[4][1] = 0;
+	uip2_JacobianSparsityPattern[5][0] = 3;		uip2_JacobianSparsityPattern[5][1] = 0;		uip2_JacobianSparsityPattern[5][2] = 1;		uip2_JacobianSparsityPattern[5][3] = 3;
+	uip2_JacobianSparsityPattern[6][0] = 3;		uip2_JacobianSparsityPattern[6][1] = 1;		uip2_JacobianSparsityPattern[6][2] = 2;		uip2_JacobianSparsityPattern[6][3] = 4;
+	uip2_JacobianSparsityPattern[7][0] = 2;		uip2_JacobianSparsityPattern[7][1] = 2;		uip2_JacobianSparsityPattern[7][2] = 5;
+	uip2_JacobianSparsityPattern[8][0] = 1;		uip2_JacobianSparsityPattern[8][1] = 3;
+	uip2_JacobianSparsityPattern[9][0] = 3;		uip2_JacobianSparsityPattern[9][1] = 3;		uip2_JacobianSparsityPattern[9][2] = 4;		uip2_JacobianSparsityPattern[9][3] = 6;
+	uip2_JacobianSparsityPattern[10][0] = 3;	uip2_JacobianSparsityPattern[10][1] = 4;		uip2_JacobianSparsityPattern[10][2] = 5;		uip2_JacobianSparsityPattern[10][3] = 7;
+	uip2_JacobianSparsityPattern[11][0] = 2;	uip2_JacobianSparsityPattern[11][1] = 5;		uip2_JacobianSparsityPattern[11][2] = 8;
+	uip2_JacobianSparsityPattern[12][0] = 1;	uip2_JacobianSparsityPattern[12][1] = 6;
+	uip2_JacobianSparsityPattern[13][0] = 2;	uip2_JacobianSparsityPattern[13][1] = 6;		uip2_JacobianSparsityPattern[13][2] = 7;
+	uip2_JacobianSparsityPattern[14][0] = 2;	uip2_JacobianSparsityPattern[14][1] = 7;		uip2_JacobianSparsityPattern[14][2] = 8;
+	uip2_JacobianSparsityPattern[15][0] = 1;	uip2_JacobianSparsityPattern[15][1] = 8;
+	uip2_JacobianSparsityPattern[16][0] = 1;	uip2_JacobianSparsityPattern[16][1] = 0;
+	uip2_JacobianSparsityPattern[17][0] = 2;	uip2_JacobianSparsityPattern[17][1] = 0;		uip2_JacobianSparsityPattern[17][2] = 1;
+	uip2_JacobianSparsityPattern[18][0] = 2;	uip2_JacobianSparsityPattern[18][1] = 1;		uip2_JacobianSparsityPattern[18][2] = 2;
+	uip2_JacobianSparsityPattern[19][0] = 1;	uip2_JacobianSparsityPattern[19][1] = 2;
+	uip2_JacobianSparsityPattern[20][0] = 2;	uip2_JacobianSparsityPattern[20][1] = 0;		uip2_JacobianSparsityPattern[20][2] = 3;
+	uip2_JacobianSparsityPattern[21][0] = 3;	uip2_JacobianSparsityPattern[21][1] = 1;		uip2_JacobianSparsityPattern[21][2] = 3;		uip2_JacobianSparsityPattern[21][3] = 4;
+	uip2_JacobianSparsityPattern[22][0] = 3;	uip2_JacobianSparsityPattern[22][1] = 2;		uip2_JacobianSparsityPattern[22][2] = 4;		uip2_JacobianSparsityPattern[22][3] = 5;
+	uip2_JacobianSparsityPattern[23][0] = 1;	uip2_JacobianSparsityPattern[23][1] = 5;
+	uip2_JacobianSparsityPattern[24][0] = 2;	uip2_JacobianSparsityPattern[24][1] = 3;		uip2_JacobianSparsityPattern[24][2] = 6;
+	uip2_JacobianSparsityPattern[25][0] = 3;	uip2_JacobianSparsityPattern[25][1] = 4;		uip2_JacobianSparsityPattern[25][2] = 6;		uip2_JacobianSparsityPattern[25][3] = 7;
+	uip2_JacobianSparsityPattern[26][0] = 3;	uip2_JacobianSparsityPattern[26][1] = 5;		uip2_JacobianSparsityPattern[26][2] = 7;		uip2_JacobianSparsityPattern[26][3] = 8;
+	uip2_JacobianSparsityPattern[27][0] = 1;	uip2_JacobianSparsityPattern[27][1] = 8;
+	uip2_JacobianSparsityPattern[28][0] = 1;	uip2_JacobianSparsityPattern[28][1] = 6;
+	uip2_JacobianSparsityPattern[29][0] = 1;	uip2_JacobianSparsityPattern[29][1] = 7;
+	uip2_JacobianSparsityPattern[30][0] = 1;	uip2_JacobianSparsityPattern[30][1] = 8;
+	uip2_JacobianSparsityPattern[31][0] = 0;
+	//*/
+
+	//Step 1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface * g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+
+	//Step 2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring( "SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 3: From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	In stead of doing step 1-3, you can just call the bellow function:
+		g->GenerateSeedJacobian(uip2_JacobianSparsityPattern, i_RowCount,i_ColumnCount, dp3_Seed, ip1_SeedRowCount, ip1_SeedColumnCount, "COLUMN_PARTIAL_DISTANCE_TWO", "SMALLEST_LAST"); // compress columns. This function is inside BipartiteGraphPartialColoringInterface class
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+
+	//this SECTION is just for displaying the result
+	g->PrintBipartiteGraph();
+	g->PrintColumnPartialColors();
+	g->PrintColumnPartialColoringMetrics();
+	double **RSeed = *dp3_Seed;
+	int rows = g->GetColumnVertexCount();
+	int cols = g->GetRightVertexColorCount();
+	cout<<"Right Seed matrix: ("<<rows<<","<<cols<<")"<<endl;
+	for(int i=0; i<rows; i++) {
+		for(int j=0; j<cols; j++) {
+			cout<<setw(6)<<RSeed[i][j];
+		}
+		cout<<endl;
+	}
+	//END SECTION
+
+	//GraphColoringInterface * g = new GraphColoringInterface();
+	delete g;
+	g = NULL;
+
+	//double*** dp3_Seed = new double**;
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+	RSeed = NULL;
+
+	//int *ip1_SeedRowCount = new int;
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount = NULL;
+
+	//int *ip1_SeedColumnCount = new int;
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	//unsigned int **uip2_HessianSparsityPattern = new unsigned int *[i_RowCount];//[5][5]
+	free_2DMatrix(uip2_JacobianSparsityPattern, i_RowCount);
+	uip2_JacobianSparsityPattern = NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Basic/color_bipartite_graph_using_BipartiteGraphBicoloringInterface.cpp
@@ -0,0 +1,94 @@
+// An example for using BipartiteGraphBicoloringInterface to color Bipartite Graph
+/*
+How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Any time you have trouble understanding what a routine does, how to use a routine, or what are the accepted values for a parameter,
+please reference the COLPACK's online documentation (temporarily located at
+http://www.cscapes.org/dox/ColPack/html/ ).
+
+For more information, please visit our webpage http://www.cscapes.org/coloringpage/
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+//*	A SHORT VERSION
+int main(int argc, char ** argv)
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	//Generate and color the bipartite graph
+	BipartiteGraphBicoloringInterface *g =	new BipartiteGraphBicoloringInterface(SRC_FILE, s_InputFile.c_str(), "AUTO_DETECTED");
+
+	//Color the graph based on the specified ordering and (Star) Bicoloring
+	g->Bicoloring( "SMALLEST_LAST", "IMPLICIT_COVERING__STAR_BICOLORING");
+
+	/*Done with coloring. Below are possible things that you may
+	want to do after coloring:
+	//*/
+
+	//* 1. Check Star Bicoloring Coloring result
+	cout<<"Check Star Bicoloring Coloring result ... "<<endl;
+	g->CheckStarBicoloring();
+	//*/
+
+	//* 2. Print coloring results
+	g->PrintVertexBicoloringMetrics();
+	//*/
+
+	//* 3. Get the list of colorID of colored vertices (in this case, the left side of the bipartite graph)
+	vector<int> vi_LeftVertexColors;
+	g->GetLeftVertexColors(vi_LeftVertexColors);
+
+	vector<int> vi_RightVertexColors;
+	g->GetRightVertexColors(vi_RightVertexColors);
+
+	//Print Partial Colors
+	g->PrintVertexBicolors();
+	//*/
+
+	//* 4. Get seed matrix
+	int i_LeftSeedRowCount = 0;
+	int i_LeftSeedColumnCount = 0;
+	double** LeftSeed = g->GetLeftSeedMatrix(&i_LeftSeedRowCount, &i_LeftSeedColumnCount);
+
+	int i_RightSeedRowCount = 0;
+	int i_RightSeedColumnCount = 0;
+	double** RightSeed = g->GetRightSeedMatrix(&i_RightSeedRowCount, &i_RightSeedColumnCount);
+
+	//Display Seeds
+	if(i_LeftSeedRowCount>0 && i_LeftSeedColumnCount > 0){
+	  printf("Left Seed matrix %d x %d \n", i_LeftSeedRowCount, i_LeftSeedColumnCount);
+	  displayMatrix(LeftSeed, i_LeftSeedRowCount, i_LeftSeedColumnCount, 1);
+	}
+
+	if(i_RightSeedRowCount>0 && i_RightSeedColumnCount > 0) {
+	  printf("Right Seed matrix %d x %d \n", i_RightSeedRowCount, i_RightSeedColumnCount);
+	  displayMatrix(RightSeed, i_RightSeedRowCount, i_RightSeedColumnCount, 1);
+	}
+	//*/
+
+	delete g;
+	return 0;
+}
+//*/
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Basic/color_bipartite_graph_using_BipartiteGraphPartialColoringInterface.cpp
@@ -0,0 +1,81 @@
+// An example for using BipartiteGraphPartialColoringInterface to color Bipartite Graph
+/*
+How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Any time you have trouble understanding what a routine does, how to use a routine, or what are the accepted values for a parameter,
+please reference the COLPACK's online documentation (temporarily located at
+http://www.cscapes.org/dox/ColPack/html/ ).
+
+For more information, please visit our webpage http://www.cscapes.org/coloringpage/
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+//*	A SHORT VERSION
+int main(int argc, char ** argv)
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	//Generate and color the bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_FILE, s_InputFile.c_str(), "AUTO_DETECTED");
+
+	//Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "ROW_PARTIAL_DISTANCE_TWO");
+
+	/*Done with coloring. Below are possible things that you may
+	want to do after coloring:
+	//*/
+
+	/* 1. Check Partial Distance Two Coloring result
+	cout<<"Check Partial Distance Two coloring result ... "<<endl;
+	if(g->CheckPartialDistanceTwoColoring() == _FALSE) cout<<" FAILED"<<endl;
+	else cout<<" SUCCEEDED"<<endl;
+	//*/
+
+	//* 2. Print coloring results
+	g->PrintPartialColoringMetrics();
+	//*/
+
+	//* 3. Get the list of colorID of colored vertices (in this case, the left side of the bipartite graph)
+	vector<int> vi_VertexPartialColors;
+	g->GetVertexPartialColors(vi_VertexPartialColors);
+
+	//Print Partial Colors
+	g->PrintPartialColors();
+	//*/
+
+	/* 4. Get seed matrix
+	int i_SeedRowCount = 0;
+	int i_SeedColumnCount = 0;
+	double** Seed = g->GetSeedMatrix(&i_SeedRowCount, &i_SeedColumnCount);
+
+	//Display Seed
+	printf("Seed matrix %d x %d \n", i_SeedRowCount, i_SeedColumnCount);
+	displayMatrix(Seed, i_SeedRowCount, i_SeedColumnCount, 1);
+	//*/
+
+	delete g;
+	return 0;
+}
+//*/
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Basic/color_graph_using_GraphColoringInterface.cpp
@@ -0,0 +1,112 @@
+// An example for using GraphColoringInterface to color Graph
+/*
+How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Any time you have trouble understanding what a routine does, how to use a routine, or what are the accepted values for a parameter,
+please reference the COLPACK's online documentation (temporarily located at
+http://www.cscapes.org/dox/ColPack/html/ ).
+
+For more information, please visit our webpage http://www.cscapes.org/coloringpage/
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+//*	A SHORT VERSION
+int main(int argc, char ** argv)
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file. PICK A SYMMETRIC MATRIX!!!
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	//Generate and color the graph
+	GraphColoringInterface * g = new GraphColoringInterface(SRC_FILE, s_InputFile.c_str(), "AUTO_DETECTED");
+
+	//Color the bipartite graph with the specified ordering
+	g->Coloring("LARGEST_FIRST", "DISTANCE_TWO");
+
+	/*Done with coloring. Below are possible things that you may
+	want to do after coloring:
+	//*/
+
+	/* 1. Check DISTANCE_TWO coloring result
+	cout<<"Check DISTANCE_TWO coloring result"<<endl;
+	g->CheckDistanceTwoColoring();
+	//*/
+
+	//* 2. Print coloring results
+	g->PrintVertexColoringMetrics();
+	//*/
+
+	//* 3. Get the list of colorID of vertices
+	vector<int> vi_VertexColors;
+	g->GetVertexColors(vi_VertexColors);
+
+	//Display vector of VertexColors
+	printf("vector of VertexColors (size %d) \n", (int)vi_VertexColors.size());
+	displayVector(&vi_VertexColors[0], vi_VertexColors.size(), 1);
+	//*/
+
+	/* 4. Get seed matrix
+	int i_SeedRowCount = 0;
+	int i_SeedColumnCount = 0;
+	double** Seed = g->GetSeedMatrix(&i_SeedRowCount, &i_SeedColumnCount);
+
+	//Display Seed
+	printf("Seed matrix %d x %d \n", i_SeedRowCount, i_SeedColumnCount);
+	displayMatrix(Seed, i_SeedRowCount, i_SeedColumnCount, 1);
+	//*/
+
+	delete g;
+	return 0;
+}
+//*/
+
+/* A LONGER VERSION showing steps actually executed by the constructor.
+int main(int argc, char ** argv)
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file. PICK A SYMMETRIC MATRIX!!!
+	s_InputFile = baseDir + "bcsstk01_symmetric\\bcsstk01_symmetric.mtx";
+	GraphColoringInterface * g = new GraphColoringInterface();
+
+	//Read a matrix from an input file and generate a corresponding graph.
+	//The input format will be determined based on the file extension and a correct reading routine will be used to read the file.
+	//Note: the input matrix MUST be SYMMETRIC in order for a graph to be generated correctly
+	//		If you are new to COLPACK, pick either a .graph file (MeTiS format) or a symmetric .mtx (Matrix Market format)
+	if ( g->ReadAdjacencyGraph(s_InputFile) == _FALSE) {
+		cout<<"ReadAdjacencyGraph() Failed!!!"<<endl;
+		return _FALSE;
+	}
+	cout<<"Done with ReadAdjacencyGraph()"<<endl;
+
+	//(Distance-2)Color the graph using "LARGEST_FIRST" Ordering. Other coloring and ordering can also be used.
+	g->Coloring("DISTANCE_TWO", "LARGEST_FIRST");
+	cout<<"Done with Coloring()"<<endl;
+
+	//Print coloring results
+	g->PrintVertexColoringMetrics();
+	cout<<"Done with PrintVertexColoringMetrics()"<<endl;
+	delete g;
+
+	return _TRUE;
+}
+//*/
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADIC/01_Column_compression_and_recovery_for_Jacobian_return_ADIC_Format.cpp
@@ -0,0 +1,138 @@
+// An example of Column compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue;
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+	//s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "hess_pat.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format and then ADIC format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<"Matrix rowCount = "<<rowCount<<"; columnCount = "<<columnCount<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount, true);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	std::list<std::set<int> > lsi_SparsityPattern;
+	std::list<std::vector<double> > lvd_Value;
+	ConvertRowCompressedFormat2ADIC( (*uip3_SparsityPattern) , rowCount, (*dp3_Value), lsi_SparsityPattern, lvd_Value);
+
+	cout<<"just for debugging purpose, display the matrix in ADIC format rowCount = "<<rowCount<<endl;
+	cout<<"Display lsi_SparsityPattern"<<endl;
+	DisplayADICFormat_Sparsity(lsi_SparsityPattern);
+	cout<<"Display lvd_Value"<<endl;
+	DisplayADICFormat_Value(lvd_Value);
+	cout<<"Finish ConvertRowCompressedFormat2CSR()"<<endl;
+	Pause();
+
+	//Step 2: Coloring.
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (ADIC format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADIC, &lsi_SparsityPattern, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3: From the coloring information, you can  get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+	vector<int> vi_VertexPartialColors;
+	g->GetVertexPartialColors(vi_VertexPartialColors);
+	*ip1_ColorCount = g->GetRightVertexColorCount();
+	cout<<"Finish GetVertexPartialColors()"<<endl;
+
+	//Display results of step 2
+	printf(" Display vi_VertexPartialColors  *ip1_ColorCount=%d \n",*ip1_ColorCount);
+	displayVector(vi_VertexPartialColors);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S (represented as a vector of colors vi_VertexPartialColors).
+	// The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS__usingVertexPartialColors(lsi_SparsityPattern, lvd_Value, columnCount, vi_VertexPartialColors, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "lvd_NewValue"
+	std::list<std::vector<double> > lvd_NewValue;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Cln_ADICFormat(g, *dp3_CompressedMatrix, lsi_SparsityPattern, lvd_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	DisplayADICFormat_Value(lvd_NewValue);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (ADICMatricesAreEqual(lvd_Value, lvd_NewValue,0)) cout<< "lvd_Value == lvd_NewValue"<<endl;
+	else cout<< "lvd_Value != lvd_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/01_Column_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format.cpp
@@ -0,0 +1,143 @@
+// An example of Column compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue;
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d \n", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Cln_RowCompressedFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/02_Column_compression_and_recovery_for_Jacobian_return_Coordinate_Format.cpp
@@ -0,0 +1,153 @@
+// An example of Column compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+unsigned int** ip2_RowIndex
+unsigned int** ip2_ColumnIndex
+double** dp2_JacobianValue // corresponding non-zero values
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d \n", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp2_JacobianValue"
+	unsigned int** ip2_RowIndex = new unsigned int*;
+	unsigned int** ip2_ColumnIndex = new unsigned int*;
+	double** dp2_JacobianValue = new double*;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Cln_CoordinateFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	cout<<"Finish Recover()"<<endl;
+
+	cout<<endl<<"Display result, the structure and values should be similar to the original one"<<endl;
+	cout<<"Display *ip2_RowIndex"<<endl;
+	displayVector(*ip2_RowIndex,g->GetEdgeCount());
+	cout<<"Display *ip2_ColumnIndex"<<endl;
+	displayVector(*ip2_ColumnIndex, g->GetEdgeCount());
+	cout<<"Display *dp2_JacobianValue"<<endl;
+	displayVector(*dp2_JacobianValue, g->GetEdgeCount());
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete ip2_RowIndex;
+	delete ip2_ColumnIndex;
+	delete dp2_JacobianValue;
+	ip2_RowIndex=NULL;
+	ip2_ColumnIndex=NULL;
+	dp2_JacobianValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/03_Column_compression_and_recovery_for_Jacobian_return_Sparse_Solvers_Format.cpp
@@ -0,0 +1,152 @@
+// An example of Column compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers"
+http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+unsigned int** ip2_RowIndex
+unsigned int** ip2_ColumnIndex
+double** dp2_JacobianValue // corresponding non-zero values
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring( "SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d \n", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp2_JacobianValue"
+	unsigned int** ip2_RowIndex = new unsigned int*;
+	unsigned int** ip2_ColumnIndex = new unsigned int*;
+	double** dp2_JacobianValue = new double*;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Cln_SparseSolversFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	cout<<"Finish Recover()"<<endl;
+
+	cout<<endl<<"Display result, the structure and values should be similar to the original one"<<endl;
+	cout<<"Display *ip2_RowIndex"<<endl;
+	displayVector(*ip2_RowIndex,g->GetRowVertexCount()+1);
+	cout<<"Display *ip2_ColumnIndex"<<endl;
+	displayVector(*ip2_ColumnIndex, (*ip2_RowIndex)[g->GetRowVertexCount()]-1);
+	cout<<"Display *dp2_JacobianValue"<<endl;
+	displayVector(*dp2_JacobianValue, (*ip2_RowIndex)[g->GetRowVertexCount()]-1);
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete ip2_RowIndex;
+	delete ip2_ColumnIndex;
+	delete dp2_JacobianValue;
+	ip2_RowIndex=NULL;
+	ip2_ColumnIndex=NULL;
+	dp2_JacobianValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/04_Row_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format.cpp
@@ -0,0 +1,143 @@
+// An example of Row compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "row-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "ROW_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedRowCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the seed-Jacobian matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the seed matrix S
+	// is multiplied with the orginial matrix V (for Values). The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_SxV(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,*ip1_ColorCount,columnCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Row_RowCompressedFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, *ip1_ColorCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/05_Compression_and_direct_recovery_for_Hessian_return_Row_Compressed_Format.cpp
@@ -0,0 +1,139 @@
+// An example of (Column) compression (by using Star coloring) and direct recovery for Hessian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface *g = new GraphColoringInterface(SRC_MEM_ADOLC,*uip3_SparsityPattern, rowCount);
+
+	//Step 2.2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "STAR");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of vertices
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	displayMatrix(*dp3_Seed,columnCount,*ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Hessian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	HessianRecovery* hr = new HessianRecovery;
+	hr->DirectRecover_RowCompressedFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0,1)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete hr;
+	hr = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/06_Compression_and_direct_recovery_for_Hessian_return_Coordinate_Format.cpp
@@ -0,0 +1,151 @@
+// An example of (Column) compression (by using Star coloring) and direct recovery for Hessian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+unsigned int** ip2_RowIndex
+unsigned int** ip2_ColumnIndex
+double** dp2_JacobianValue // corresponding non-zero values
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface *g = new GraphColoringInterface(SRC_MEM_ADOLC,*uip3_SparsityPattern, rowCount);
+
+	//Step 2.2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "STAR");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of vertices
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	displayMatrix(*dp3_Seed,columnCount,*ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Hessian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp2_HessianValue"
+	unsigned int** ip2_RowIndex = new unsigned int*;
+	unsigned int** ip2_ColumnIndex = new unsigned int*;
+	double** dp2_HessianValue = new double*;
+	HessianRecovery* hr = new HessianRecovery;
+	int i_arraySize = hr->DirectRecover_CoordinateFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue);
+	cout<<"Finish Recover()"<<endl;
+
+	cout<<endl<<"Display result, the structure and values should be similar to the upper half of the original matrix"<<endl;
+	cout<<"Display *ip2_RowIndex"<<endl;
+	displayVector(*ip2_RowIndex,i_arraySize);
+	cout<<"Display *ip2_ColumnIndex"<<endl;
+	displayVector(*ip2_ColumnIndex, i_arraySize);
+	cout<<"Display *dp2_HessianValue"<<endl;
+	displayVector(*dp2_HessianValue, i_arraySize);
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete hr;
+	hr = NULL;
+
+	delete ip2_RowIndex;
+	delete ip2_ColumnIndex;
+	delete dp2_HessianValue;
+	ip2_RowIndex = NULL;
+	ip2_ColumnIndex = NULL;
+	dp2_HessianValue = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/07_Compression_and_direct_recovery_for_Hessian_return_Sparse_Solvers_Format.cpp
@@ -0,0 +1,151 @@
+// An example of (Column) compression (by using Star coloring) and direct recovery for Hessian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers"
+http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+unsigned int** ip2_RowIndex
+unsigned int** ip2_ColumnIndex
+double** dp2_JacobianValue // corresponding non-zero values
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface *g = new GraphColoringInterface(SRC_MEM_ADOLC,*uip3_SparsityPattern, rowCount);
+
+	//Step 2.2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "STAR");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of vertices
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	displayMatrix(*dp3_Seed,columnCount,*ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Hessian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp2_HessianValue"
+	unsigned int** ip2_RowIndex = new unsigned int*;
+	unsigned int** ip2_ColumnIndex = new unsigned int*;
+	double** dp2_HessianValue = new double*;
+	HessianRecovery* hr = new HessianRecovery;
+	int i_arraySize = hr->DirectRecover_SparseSolversFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue);
+	cout<<"Finish Recover()"<<endl;
+
+	cout<<endl<<"Display result, the structure and values should be similar to the upper half of the original matrix"<<endl;
+	cout<<"Display *ip2_RowIndex"<<endl;
+	displayVector(*ip2_RowIndex,rowCount+1);
+	cout<<"Display *ip2_ColumnIndex"<<endl;
+	displayVector(*ip2_ColumnIndex, (*ip2_RowIndex)[rowCount] - 1 );
+	cout<<"Display *dp2_JacobianValue"<<endl;
+	displayVector(*dp2_HessianValue, (*ip2_RowIndex)[rowCount] - 1 );
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete hr;
+	hr = NULL;
+
+	delete ip2_RowIndex;
+	delete ip2_ColumnIndex;
+	delete dp2_HessianValue;
+	ip2_RowIndex = NULL;
+	ip2_ColumnIndex = NULL;
+	dp2_HessianValue = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/08_Compression_and_indirect_recovery_for_Hessian_return_Row_Compressed_Format.cpp
@@ -0,0 +1,142 @@
+// An example of (Column) compression (by using Acyclic coloring) and indirect recovery for Hessian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue;
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int* ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface *g = new GraphColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount);
+
+	//Step 2.2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "ACYCLIC_FOR_INDIRECT_RECOVERY");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of vertices
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Hessian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_SeedColumnCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	HessianRecovery* hr = new HessianRecovery;
+	hr->IndirectRecover_RowCompressedFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Indirect Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0,1)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete hr;
+	hr = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/09_Bidirectional_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format.cpp
@@ -0,0 +1,161 @@
+// An example of Bidirectional compression and recovery for Jacobian using Star Bicoloring
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrices via Star Bicoloring.
+	double*** dp3_LeftSeed = new double**;
+	int *ip1_LeftSeedRowCount = new int;
+	int *ip1_LeftSeedColumnCount = new int;
+	double*** dp3_RightSeed = new double**;
+	int *ip1_RightSeedRowCount = new int;
+	int *ip1_RightSeedColumnCount = new int;
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphBicoloringInterface *g = new BipartiteGraphBicoloringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Color the graph based on the specified ordering and (Star) Bicoloring
+	g->Bicoloring("SMALLEST_LAST", "IMPLICIT_COVERING__STAR_BICOLORING");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the Left and Right seed matrices
+	(*dp3_LeftSeed) = g->GetLeftSeedMatrix(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount );
+	(*dp3_RightSeed) = g->GetRightSeedMatrix(ip1_RightSeedRowCount, ip1_RightSeedColumnCount );
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left and right vertices
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+		vector<int> RightVertexColors;
+		g->GetRightVertexColors_Transformed(RightVertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+
+	//Display results of step 2
+	printf(" dp3_LeftSeed %d x %d", *ip1_LeftSeedRowCount, *ip1_LeftSeedColumnCount);
+	displayMatrix(*dp3_LeftSeed, *ip1_LeftSeedRowCount, *ip1_LeftSeedColumnCount);
+	printf(" dp3_RightSeed %d x %d", *ip1_RightSeedRowCount, *ip1_RightSeedColumnCount);
+	displayMatrix(*dp3_RightSeed, *ip1_RightSeedRowCount, *ip1_RightSeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-RightSeed and LeftSeed-Jacobian matrix products.
+	// This step will also be done by an AD tool. For the purpose of illustration here:
+	// - The left seed matrix LS is multiplied with the orginial matrix V (for Values).
+	//   The resulting matrix is stored in dp3_LeftCompressedMatrix.
+	// - The orginial matrix V (for Values) is multiplied with the right seed matrix RS.
+	//   The resulting matrix is stored in dp3_RightCompressedMatrix.
+	double*** dp3_LeftCompressedMatrix = new double**;
+	double*** dp3_RightCompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication() for both direction (left and right)"<<endl;
+	MatrixMultiplication_SxV(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_LeftSeed, *ip1_LeftSeedRowCount, dp3_LeftCompressedMatrix);
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_RightSeed, *ip1_RightSeedColumnCount, dp3_RightCompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_RightCompressedMatrix,rowCount,*ip1_RightSeedColumnCount);
+	displayMatrix(*dp3_LeftCompressedMatrix,*ip1_LeftSeedRowCount, columnCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery2D* jr2d = new JacobianRecovery2D;
+	jr2d->DirectRecover_RowCompressedFormat(g, *dp3_LeftCompressedMatrix, *dp3_RightCompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	delete jr2d;
+	jr2d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue = NULL;
+
+	free_2DMatrix(dp3_RightCompressedMatrix, rowCount);
+	dp3_RightCompressedMatrix = NULL;
+
+	free_2DMatrix(dp3_LeftCompressedMatrix, *ip1_LeftSeedRowCount);
+	dp3_LeftCompressedMatrix = NULL;
+
+	delete dp3_RightSeed;
+	dp3_RightSeed = NULL;
+
+	delete ip1_RightSeedColumnCount;
+	ip1_RightSeedColumnCount = NULL;
+
+	delete ip1_RightSeedRowCount;
+	ip1_RightSeedRowCount = NULL;
+
+	delete dp3_LeftSeed;
+	dp3_LeftSeed = NULL;
+
+	delete ip1_LeftSeedColumnCount;
+	ip1_LeftSeedColumnCount = NULL;
+
+	delete ip1_LeftSeedRowCount;
+	ip1_LeftSeedRowCount = NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value = NULL;
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	dp3_Value = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/10_Column_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format__unmanaged_usermem.cpp
@@ -0,0 +1,164 @@
+// An example of Column compression and recovery for Jacobian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue;
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d \n", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	int rowCount_for_dp3_NewValue = jr1d->RecoverD2Cln_RowCompressedFormat_unmanaged(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	/* RecoverD2Cln_RowCompressedFormat_unmanaged is called instead of RecoverD2Cln_RowCompressedFormat so that
+	we could manage the memory deallocation for dp3_NewValue by ourselves.
+	This way, we can reuse (*dp3_NewValue) to store new values if RecoverD2Cln_RowCompressedFormat...() need to be called again.
+	//*/
+
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	/* Let say that we have new matrices with the same sparsity structure (only the values changed),
+	 We can take advantage of the memory already allocated to (*dp3_NewValue) and use (*dp3_NewValue) to stored the new values
+	 by calling RecoverD2Cln_RowCompressedFormat_usermem recovery function.
+	 This function works in the same way as RecoverD2Cln_RowCompressedFormat_unmanaged except that the memory for (*dp3_NewValue)
+	 is reused and therefore, takes less time than the _unmanaged counterpart.
+	 //*/
+	for(int i=0; i<3;i++) {
+	  jr1d->RecoverD2Cln_RowCompressedFormat_usermem(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	}
+
+	//Deallocate memory for 2-dimensional array (*dp3_NewValue)
+	for(int i=0; i<rowCount_for_dp3_NewValue;i++) {
+	  free((*dp3_NewValue)[i]);
+	}
+	free(*dp3_NewValue);
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/11_Compression_and_direct_recovery_for_Hessian_return_Row_Compressed_Format__unmanaged_usermem.cpp
@@ -0,0 +1,160 @@
+// An example of (Column) compression (by using Star coloring) and direct recovery for Hessian
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "mtx-spear-head.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;
+	double*** dp3_Value = new double**;
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+	//and create the corresponding graph
+	GraphColoringInterface *g = new GraphColoringInterface(SRC_MEM_ADOLC,*uip3_SparsityPattern, rowCount);
+
+	//Step 2.2: Color the bipartite graph with the specified ordering
+	g->Coloring("SMALLEST_LAST", "STAR");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of vertices
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	displayMatrix(*dp3_Seed,columnCount,*ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Hessian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	HessianRecovery* hr = new HessianRecovery;
+	int rowCount_for_dp3_NewValue = hr->DirectRecover_RowCompressedFormat_unmanaged(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	/* RecoverD2Cln_RowCompressedFormat_unmanaged is called instead of RecoverD2Cln_RowCompressedFormat so that
+	we could manage the memory deallocation for dp3_NewValue by ourselves.
+	This way, we can reuse (*dp3_NewValue) to store new values if RecoverD2Cln_RowCompressedFormat...() need to be called again.
+	//*/
+
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0,1)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	/* Let say that we have new matrices with the same sparsity structure (only the values changed),
+	 We can take advantage of the memory already allocated to (*dp3_NewValue) and use (*dp3_NewValue) to stored the new values
+	 by calling DirectRecover_RowCompressedFormat_usermem recovery function.
+	 This function works in the same way as DirectRecover_RowCompressedFormat_unmanaged except that the memory for (*dp3_NewValue)
+	 is reused and therefore, takes less time than the _unmanaged counterpart.
+	 //*/
+	for(int i=0; i<3;i++) {
+	  hr->DirectRecover_RowCompressedFormat_usermem(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	}
+
+	//Deallocate memory for 2-dimensional array (*dp3_NewValue)
+	for(int i=0; i<rowCount_for_dp3_NewValue;i++) {
+	  free((*dp3_NewValue)[i]);
+	}
+	free(*dp3_NewValue);
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete hr;
+	hr = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/12_Bidirectional_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format__unmanaged_usermem.cpp
@@ -0,0 +1,182 @@
+// An example of Bidirectional compression and recovery for Jacobian using Star Bicoloring
+/* How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means triple pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrices via Star Bicoloring.
+	double*** dp3_LeftSeed = new double**;
+	int *ip1_LeftSeedRowCount = new int;
+	int *ip1_LeftSeedColumnCount = new int;
+	double*** dp3_RightSeed = new double**;
+	int *ip1_RightSeedRowCount = new int;
+	int *ip1_RightSeedColumnCount = new int;
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphBicoloringInterface *g = new BipartiteGraphBicoloringInterface(SRC_MEM_ADOLC, *uip3_SparsityPattern, rowCount, columnCount);
+
+	//Step 2.2: Color the graph based on the specified ordering and (Star) Bicoloring
+	g->Bicoloring("SMALLEST_LAST", "IMPLICIT_COVERING__STAR_BICOLORING");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the Left and Right seed matrices
+	(*dp3_LeftSeed) = g->GetLeftSeedMatrix(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount );
+	(*dp3_RightSeed) = g->GetRightSeedMatrix(ip1_RightSeedRowCount, ip1_RightSeedColumnCount );
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left and right vertices
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+		vector<int> RightVertexColors;
+		g->GetRightVertexColors_Transformed(RightVertexColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+
+	//Display results of step 2
+	printf(" dp3_LeftSeed %d x %d", *ip1_LeftSeedRowCount, *ip1_LeftSeedColumnCount);
+	displayMatrix(*dp3_LeftSeed, *ip1_LeftSeedRowCount, *ip1_LeftSeedColumnCount);
+	printf(" dp3_RightSeed %d x %d", *ip1_RightSeedRowCount, *ip1_RightSeedColumnCount);
+	displayMatrix(*dp3_RightSeed, *ip1_RightSeedRowCount, *ip1_RightSeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-RightSeed and LeftSeed-Jacobian matrix products.
+	// This step will also be done by an AD tool. For the purpose of illustration here:
+	// - The left seed matrix LS is multiplied with the orginial matrix V (for Values).
+	//   The resulting matrix is stored in dp3_LeftCompressedMatrix.
+	// - The orginial matrix V (for Values) is multiplied with the right seed matrix RS.
+	//   The resulting matrix is stored in dp3_RightCompressedMatrix.
+	double*** dp3_LeftCompressedMatrix = new double**;
+	double*** dp3_RightCompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication() for both direction (left and right)"<<endl;
+	MatrixMultiplication_SxV(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_LeftSeed, *ip1_LeftSeedRowCount, dp3_LeftCompressedMatrix);
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_RightSeed, *ip1_RightSeedColumnCount, dp3_RightCompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_RightCompressedMatrix,rowCount,*ip1_RightSeedColumnCount);
+	displayMatrix(*dp3_LeftCompressedMatrix,*ip1_LeftSeedRowCount, columnCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery2D* jr2d = new JacobianRecovery2D;
+	int rowCount_for_dp3_NewValue = jr2d->DirectRecover_RowCompressedFormat_unmanaged(g, *dp3_LeftCompressedMatrix, *dp3_RightCompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	/* RecoverD2Cln_RowCompressedFormat_unmanaged is called instead of RecoverD2Cln_RowCompressedFormat so that
+	we could manage the memory deallocation for dp3_NewValue by ourselves.
+	This way, we can reuse (*dp3_NewValue) to store new values if RecoverD2Cln_RowCompressedFormat...() need to be called again.
+	//*/
+
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	/* Let say that we have new matrices with the same sparsity structure (only the values changed),
+	 We can take advantage of the memory already allocated to (*dp3_NewValue) and use (*dp3_NewValue) to stored the new values
+	 by calling DirectRecover_RowCompressedFormat_usermem recovery function.
+	 This function works in the same way as DirectRecover_RowCompressedFormat_unmanaged except that the memory for (*dp3_NewValue)
+	 is reused and therefore, takes less time than the _unmanaged counterpart.
+	 //*/
+	for(int i=0; i<3;i++) {
+	  jr2d->DirectRecover_RowCompressedFormat_usermem(g, *dp3_LeftCompressedMatrix, *dp3_RightCompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	}
+
+	//Deallocate memory for 2-dimensional array (*dp3_NewValue)
+	for(int i=0; i<rowCount;i++) {
+	  free((*dp3_NewValue)[i]);
+	}
+	free(*dp3_NewValue);
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	delete jr2d;
+	jr2d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue = NULL;
+
+	free_2DMatrix(dp3_RightCompressedMatrix, rowCount);
+	dp3_RightCompressedMatrix = NULL;
+
+	free_2DMatrix(dp3_LeftCompressedMatrix, *ip1_LeftSeedRowCount);
+	dp3_LeftCompressedMatrix = NULL;
+
+	delete dp3_RightSeed;
+	dp3_RightSeed = NULL;
+
+	delete ip1_RightSeedColumnCount;
+	ip1_RightSeedColumnCount = NULL;
+
+	delete ip1_RightSeedRowCount;
+	ip1_RightSeedRowCount = NULL;
+
+	delete dp3_LeftSeed;
+	dp3_LeftSeed = NULL;
+
+	delete ip1_LeftSeedColumnCount;
+	ip1_LeftSeedColumnCount = NULL;
+
+	delete ip1_LeftSeedRowCount;
+	ip1_LeftSeedRowCount = NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value = NULL;
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	dp3_Value = NULL;
+
+	delete g;
+	g=NULL;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/CSR_input/01_Column_compression_and_recovery_for_Jacobian_CSR_input_return_Row_Compressed_Format.cpp
@@ -0,0 +1,165 @@
+// An example of Column compression and recovery for Jacobian
+/*
+This example simulates the situation where the matrix input for BipartiteGraphPartialColoringInterface() constructor in Step 2 is in CSR format
+(in ColPack, we also call this format SSF, Sparse Solvers Format).
+Step 1 in this example is used to build the sparse matrix in CSR format. In reality, the data structure in CSR format is the output of some AD tools.
+
+How to compile this driver manually:
+	Please make sure that "baseDir" point to the directory (folder) containing the input matrix file, and
+		s_InputFile should point to the input file that you want to use
+	To compile the code, replace the Main.cpp file in Main directory with this file
+		and run "make" in ColPack installation directory. Make will generate "ColPack.exe" executable
+	Run "ColPack.exe"
+
+Note: If you got "symbol lookup error ... undefined symbol "
+  Please make sure that your LD_LIBRARY_PATH contains libColPack.so
+
+Return by recovery routine: a matrix
+double*** dp3_NewValue;
+//*/
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+#ifndef TOP_DIR
+#define TOP_DIR "."
+#endif
+
+// baseDir should point to the directory (folder) containing the input file
+string baseDir=TOP_DIR;
+
+#include "extra.h" //This .h file contains functions that are used in the below examples:
+					//ReadMM(), MatrixMultiplication...(), Times2Plus1point5(), displayMatrix() and displayCompressedRowMatrix()
+
+int main()
+{
+	// s_InputFile = baseDir + <name of the input file>
+	string s_InputFile; //path of the input file
+	s_InputFile = baseDir;
+	s_InputFile += DIR_SEPARATOR; s_InputFile += "Graphs"; s_InputFile += DIR_SEPARATOR; s_InputFile += "column-compress.mtx";
+
+	// Step 1: Determine sparsity structure of the Jacobian.
+	// This step is done by an AD tool. For the purpose of illustration here, we read the structure from a file,
+	// and store the structure in a Compressed Row Format and then CSR format.
+	unsigned int *** uip3_SparsityPattern = new unsigned int **;	//uip3_ means triple pointers of type unsigned int
+	double*** dp3_Value = new double**;	//dp3_ means double pointers of type double. Other prefixes follow the same notation
+	int rowCount, columnCount;
+	ConvertMatrixMarketFormat2RowCompressedFormat(s_InputFile, uip3_SparsityPattern, dp3_Value,rowCount, columnCount);
+
+	cout<<"just for debugging purpose, display the 2 matrices: the matrix with SparsityPattern only and the matrix with Value"<<endl;
+	cout<<fixed<<showpoint<<setprecision(2); //formatting output
+	cout<<"(*uip3_SparsityPattern)"<<endl;
+	displayCompressedRowMatrix((*uip3_SparsityPattern),rowCount);
+	cout<<"(*dp3_Value)"<<endl;
+	displayCompressedRowMatrix((*dp3_Value),rowCount);
+	cout<<"Finish ConvertMatrixMarketFormat2RowCompressedFormat()"<<endl;
+	Pause();
+
+	int** ip_RowIndex = new int*;
+	int** ip_ColumnIndex = new int*;
+	ConvertRowCompressedFormat2CSR( (*uip3_SparsityPattern) , rowCount, ip_RowIndex, ip_ColumnIndex);
+
+	cout<<"just for debugging purpose, display the matrix in CSR format rowCount = "<<rowCount<<endl;
+	cout<<"Display *ip_RowIndex"<<endl;
+	displayVector(*ip_RowIndex,rowCount+1);
+	cout<<"Display *ip_ColumnIndex"<<endl;
+	displayVector(*ip_ColumnIndex, (*ip_RowIndex)[rowCount]);
+	cout<<"Finish ConvertRowCompressedFormat2CSR()"<<endl;
+	Pause();
+
+	//Step 2: Obtain the seed matrix via coloring.
+	double*** dp3_Seed = new double**;
+	int *ip1_SeedRowCount = new int;
+	int *ip1_SeedColumnCount = new int;
+	int *ip1_ColorCount = new int; //The number of distinct colors used to color the graph
+
+	//Step 2.1: Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+	//and create the corresponding bipartite graph
+	BipartiteGraphPartialColoringInterface *g = new BipartiteGraphPartialColoringInterface(SRC_MEM_CSR, *ip_RowIndex, rowCount, columnCount, *ip_ColumnIndex);
+
+	//Step 2.2: Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+	g->PartialDistanceTwoColoring("SMALLEST_LAST", "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	//Step 2.3 (Option 1): From the coloring information, create and return the seed matrix
+	(*dp3_Seed) = g->GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	/* Notes:
+	Step 2.3 (Option 2): From the coloring information, you can also get the vector of colorIDs of left or right vertices  (depend on the s_ColoringVariant that you choose)
+		vector<int> vi_VertexPartialColors;
+		g->GetVertexPartialColors(vi_VertexPartialColors);
+	*/
+	cout<<"Finish GenerateSeed()"<<endl;
+	*ip1_ColorCount = *ip1_SeedColumnCount;
+
+	//Display results of step 2
+	printf(" dp3_Seed %d x %d \n", *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	displayMatrix(*dp3_Seed, *ip1_SeedRowCount, *ip1_SeedColumnCount);
+	Pause();
+
+	// Step 3: Obtain the Jacobian-seed matrix product.
+	// This step will also be done by an AD tool. For the purpose of illustration here, the orginial matrix V
+	// (for Values) is multiplied with the seed matrix S. The resulting matrix is stored in dp3_CompressedMatrix.
+	double*** dp3_CompressedMatrix = new double**;
+	cout<<"Start MatrixMultiplication()"<<endl;
+	MatrixMultiplication_VxS(*uip3_SparsityPattern, *dp3_Value, rowCount, columnCount, *dp3_Seed, *ip1_ColorCount, dp3_CompressedMatrix);
+	cout<<"Finish MatrixMultiplication()"<<endl;
+
+	displayMatrix(*dp3_CompressedMatrix,rowCount,*ip1_ColorCount);
+	Pause();
+
+	//Step 4: Recover the numerical values of the original matrix from the compressed representation.
+	// The new values are store in "dp3_NewValue"
+	double*** dp3_NewValue = new double**;
+	JacobianRecovery1D* jr1d = new JacobianRecovery1D;
+	jr1d->RecoverD2Cln_RowCompressedFormat(g, *dp3_CompressedMatrix, *uip3_SparsityPattern, dp3_NewValue);
+	cout<<"Finish Recover()"<<endl;
+
+	displayCompressedRowMatrix(*dp3_NewValue,rowCount);
+	Pause();
+
+	//Check for consistency, make sure the values in the 2 matrices are the same.
+	if (CompressedRowMatricesAreEqual(*dp3_Value, *dp3_NewValue, rowCount,0)) cout<< "*dp3_Value == dp3_NewValue"<<endl;
+	else cout<< "*dp3_Value != dp3_NewValue"<<endl;
+
+	Pause();
+
+	//Deallocate memory using functions in Utilities/MatrixDeallocation.h
+
+	free_2DMatrix(uip3_SparsityPattern, rowCount);
+	uip3_SparsityPattern=NULL;
+
+	free_2DMatrix(dp3_Value, rowCount);
+	dp3_Value=NULL;
+
+	delete dp3_Seed;
+	dp3_Seed = NULL;
+
+	delete ip1_SeedRowCount;
+	ip1_SeedRowCount=NULL;
+
+	delete ip1_SeedColumnCount;
+	ip1_SeedColumnCount = NULL;
+
+	free_2DMatrix(dp3_CompressedMatrix, rowCount);
+	dp3_CompressedMatrix = NULL;
+
+	delete ip1_ColorCount;
+	ip1_ColorCount = NULL;
+
+	delete jr1d;
+	jr1d = NULL;
+
+	delete dp3_NewValue;
+	dp3_NewValue=NULL;
+
+	delete g;
+	g=NULL;
+
+	delete[] (*ip_RowIndex);
+	delete ip_RowIndex;
+	delete[] (*ip_ColumnIndex);
+	delete ip_ColumnIndex;
+
+	return 0;
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/Makefile
@@ -0,0 +1,99 @@
+# Compiler
+CC = g++
+CFLAGS = -O5
+#CFLAGS = -g
+LIBS = -lm -lstdc++
+
+# Definitions for ADOL-C
+# CHANGE THIS TO YOUR ADOL-C BASE DIRECTORY
+ADPATH = $(HOME)/adolc_base/include/adolc
+ADPATHa = $(HOME)/adolc_base/include
+ADLIBDIR = $(HOME)/adolc_base/lib
+ADCFLAGS = -I$(ADPATH) -I$(ADPATHa) -I$(HOME)/Desktop/Working_U/research_Assefaw/svn_projects/projects/src/ColPack/build/include
+ADLIBS = -Wl,--rpath -Wl,$(ADLIBDIR) -L$(ADLIBDIR) -ladolc -lColPack -L$(HOME)/Desktop/Working_U/research_Assefaw/svn_projects/projects/src/ColPack/build/lib
+
+ADPATH1 = $(HOME)/adolc_base/include/adolc
+ADPATH1a = $(HOME)/adolc_base/include
+ADLIBDIR1 = $(HOME)/adolc_base/lib
+ADCFLAGS1 = -I$(ADPATH1)  -I$(ADPATH1a)
+ADLIBS1 = -Wl,--rpath -Wl,$(ADLIBDIR1) -L$(ADLIBDIR1) -ladolc
+
+ADPATH2 = $(HOME)/adolc_base/include/adolc
+ADPATH3 = $(HOME)/adolc_base/include
+ADLIBDIR2 = $(HOME)/adolc_base/lib
+ADCFLAGS2 = -I$(ADPATH2)  -I$(ADPATH3)
+ADLIBS2 = -Wl,--rpath -Wl,$(ADLIBDIR2) -L$(ADLIBDIR2) -ladolc
+
+ADPATH4 = $(HOME)/adolc_base/include/adolc
+ADPATH5 = $(HOME)/adolc_base/include
+ADLIBDIR4 = $(HOME)/adolc_base/lib
+ADCFLAGS4 = -I$(ADPATH4)  -I$(ADPATH5)
+ADLIBS4 = -Wl,--rpath -Wl,$(ADLIBDIR4) -L$(ADLIBDIR4) -ladolc
+
+ADPATH6 = $(HOME)/adolc_base/include/adolc
+ADPATH7 = $(HOME)/adolc_base/include
+ADLIBDIR6 = $(HOME)/adolc_base/lib
+ADCFLAGS6 = -I$(ADPATH6)  -I$(ADPATH7)
+ADLIBS6 = -Wl,--rpath -Wl,$(ADLIBDIR6) -L$(ADLIBDIR6) -ladolc
+
+# Ziele
+all:  sparse_jac_hess
+
+sparse_jac_hess: sparse_jac_hess.o eval_fun_chem.o
+	$(CC) -o sparse_jac_hess  $(ADCFLAGS) sparse_jac_hess.o eval_fun_chem.o \
+	$(LIBS) $(ADLIBS) -lgcc
+
+sparse_jac_hess_fun_a: sparse_jac_hess.o eval_fun_struct.o GraphColoring.o DisjointSets.o
+	$(CC) -o sparse_jac_hess_a  $(ADCFLAGS1) sparse_jac_hess.o eval_fun_struct.o GraphColoring.o DisjointSets.o \
+	$(LIBS) $(ADLIBS1) -lgcc
+
+sparse_jac_hess_fun_b: sparse_jac_hess_b.o eval_fun_struct.o GraphColoring.o DisjointSets.o
+	$(CC) -o sparse_jac_hess_b  $(ADCFLAGS2) sparse_jac_hess_b.o eval_fun_struct.o GraphColoring.o DisjointSets.o \
+	$(LIBS) $(ADLIBS2) -lgcc
+
+sparse_jac_hess_fun_c: sparse_jac_hess_c.o eval_fun_struct.o GraphColoring.o DisjointSets.o
+	$(CC) -o sparse_jac_hess_c  $(ADCFLAGS4) sparse_jac_hess_c.o eval_fun_struct.o GraphColoring.o DisjointSets.o \
+	$(LIBS) $(ADLIBS4) -lgcc
+
+sparse_jac_hess_fun_d: sparse_jac_hess_d.o eval_fun_struct.o GraphColoring.o DisjointSets.o
+	$(CC) -o sparse_jac_hess_d  $(ADCFLAGS6) sparse_jac_hess_c.o eval_fun_struct.o GraphColoring.o DisjointSets.o \
+	$(LIBS) $(ADLIBS6) -lgcc
+
+#-----------------------------------------------------------------------
+#                                                                      #
+
+sparse_jac_hess.o: sparse_jac_hess.cpp
+	$(CC) -c $(CFLAGS) $(ADCFLAGS) sparse_jac_hess.cpp -lm
+
+sparse_jac_hess_b.o: sparse_jac_hess.cpp
+	$(CC) -o sparse_jac_hess_b.o -c $(CFLAGS) $(ADCFLAGS2) sparse_jac_hess.cpp -lm
+
+sparse_jac_hess_c.o: sparse_jac_hess.cpp
+	$(CC) -o sparse_jac_hess_c.o -c $(CFLAGS) $(ADCFLAGS4) sparse_jac_hess.cpp -lm
+
+sparse_jac_hess_d.o: sparse_jac_hess.cpp
+	$(CC) -o sparse_jac_hess_d.o -c $(CFLAGS) $(ADCFLAGS4) sparse_jac_hess.cpp -lm
+
+sparse_jac_hess_chem.o: sparse_jac_hess_chem.cpp
+	$(CC) -c $(CFLAGS) $(ADCFLAGS) sparse_jac_hess_chem.cpp -lm
+
+#-----------------------------------------------------------------------
+#                                                  function evaluation #
+
+eval_fun_chem.o: eval_fun_chem.c
+	$(CC) -c $(CFLAGS) $(ADCFLAGS) eval_fun_chem.c
+
+#-----------------------------------------------------------------------
+#                                                     acyclic coloring #
+
+GraphColoring.o: GraphColoring.cpp
+	$(CC) -c $(CFLAGS) $(ADCFLAGS) GraphColoring.cpp
+
+DisjointSets.o: DisjointSets.cpp
+	$(CC) -c $(CFLAGS) $(ADCFLAGS) DisjointSets.cpp
+
+#-----------------------------------------------------------------------
+#                                                             clean up #
+
+clean:
+	-/bin/rm *.o
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/README
@@ -0,0 +1,11 @@
+Prerequisites:
+- ColPack: http://www.cscapes.org/download/ColPack/
+- ADOL-C: http://www.coin-or.org/download/source/ADOL-C/
+
+To run this example:
+- Compile ColPack and ADOL-C
+- Edit the Makefile, set all the variables (ADPATH, ADLIBDIR, ADCFLAGS, ADLIBS) correctly so that the compiler can find the libraries of ColPack and ADOL-C
+- Run "make"
+
+Notes: The size of the problem can be changed by modifying the variables (nel, ndis and cstr) in eval_func_chem.c approriately.
+
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/eval_fun_chem.c
@@ -0,0 +1,2051 @@
+#include "adolc.h"
+
+// This file implements the dynamic optimization of the simplified SMB
+// process developed in Diehl and Walther (2006). The problem discretizes
+// the column as a set of mixing tanks. 6 columns are used and the two
+// components mix at different rates.
+// AMPL model written by  L. T. Biegler/ CMU, Jan. 9, 2007
+//
+// transferred to C by A. Walther / TU Dresden, Jun 5 2007
+
+//#define nel 2
+//#define ndis  2                     // =>
+//#define cstr 406
+//#define nel 5
+//#define ndis  10                     // =>
+//#define cstr 4375
+//#define ndis  15                     // =>
+//#define cstr 12925
+//#define ndis  20                     // =>
+//#define cstr 8575
+//#define ndis  30                     // =>  n = 12780
+//#define cstr 12775
+//#define ndis  40                     // =>  n = 16980
+//#define cstr 16980
+//#define ndis  50                     // =>  n = 16980
+//#define cstr 21175
+//#define ndis  60                     // =>  n = 25380
+//#define cstr 25380
+
+//#define nel 10
+//#define ndis 10                      // =>  n = 8755
+//#define cstr 8750
+//#define ndis  15                     // =>  n = 12955
+//#define cstr 25845
+//#define ndis  20                     // => n = 17155
+//#define cstr 17150
+//#define ndis  30                     // => n = 25555
+//#define cstr 25550
+//#define ndis  40                     // => n = 33955
+//#define cstr 33950
+//#define ndis  50                     // => n = 42355
+//#define cstr 84645
+//#define ndis  60                     // => n = 50755
+//#define cstr  50750
+
+
+// ad2008:
+#define nel 5
+// 1
+//#define ndis  10                     // =>
+//#define cstr 4375
+// 2
+#define ndis  20                     // =>
+#define cstr 8575
+// 3
+//#define ndis  40                     // =>  n = 16980
+//#define cstr 16975
+// 4
+//#define ndis  60                     // =>  n = 25380
+//#define cstr 25375
+
+//#define nel 10
+// 11 replaces 3
+//#define ndis  20                     // => n = 17155
+//#define cstr 17150
+//12  replaces 4
+//#define ndis  30                     // => n = 25555
+//#define cstr 25550
+// 5
+//#define ndis  60                     // => n = 50755
+//#define cstr  50750
+
+// 6
+//#define nel 15
+//#define ndis 60                        // => n = 76115
+//#define cstr  76120
+
+// 7
+//#define nel 20
+//#define ndis 60                        // => n = 101505
+//#define cstr  101495
+
+// 8
+//#define nel 30
+//#define ndis 60                        // => n = 152255
+//#define cstr  152245
+
+// 9
+//#define nel 40
+//#define ndis 80                        // => n = 270205
+//#define cstr  270195
+
+// 10
+//#define nel 60
+//#define ndis 100                        // => n = 506105
+//#define cstr  506095
+
+#define n1 1
+#define n2 2
+#define n3 2
+#define n4 1
+#define ncol 6
+
+#define nex (ndis * n1)
+#define nfe ((n1 + n2) * ndis)
+#define nra ((n1 + n2 + n3) * ndis)
+#define nde ((n1 + n2 + n3 + n4) * ndis)
+
+#define pex 0.95
+#define pra 0.95
+
+#define kA (2*ndis)
+#define kB  ndis
+
+#define cFEA  0.1
+#define cFEB  0.1
+
+#define qmax 2
+
+
+
+double kk = 0;
+
+double omega[3][3];
+
+double h[nel];
+
+//******************************************************************
+// Initialize dimensions
+
+void init_dim(int *n, int *m)
+{
+
+  //       cA, cB,cAdot, cBdot    cA0 cB0       m*A,m*B,m*Adot,m*Bdot   m*A0,m*B0
+  *n = 5 + 4*(nde*nel*3)        + 2*(nde*nel) + 8*(nel*3)                 + 4*nel
+     + 2*nel*3     + nel;
+  //   mfe,mfedot    mfe0
+  *m = cstr-5;
+
+}
+
+//******************************************************************
+// Initialize starting point x
+
+void init_startpoint(double *x, int n)
+{
+  int i,j,l;
+  int index;
+
+  omega[0][0] = 0.19681547722366;
+  omega[0][1] = 0.39442431473909;
+  omega[0][2] = 0.37640306270047;
+  omega[1][0] =-0.06553542585020;
+  omega[1][1] = 0.29207341166523;
+  omega[1][2] = 0.51248582618842;
+  omega[2][0] = 0.02377097434822;
+  omega[2][1] =-0.04154875212600;
+  omega[2][2] = 0.11111111111111;
+
+  for(i=0;i<nel;i++)
+    h[i] = 1.0/nel;
+
+  x[0] = 2;
+  x[1] = 0.5;
+  x[2] = 0.5;
+  x[3] = 0.5;
+  x[4] = 1;
+
+  index = 5;
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    x[index] = cFEA;
+	    index++;
+	    x[index] = cFEB;
+	    index++;
+	    x[index] = 1;
+	    index++;
+	    x[index] = 1;
+	    index++;
+	  }
+	x[index] = cFEA;
+	index++;
+	x[index] = cFEB;
+	index++;
+      }
+
+  for(i=index;i<n;i++)
+    x[i] = 1;
+}
+
+//******************************************************************
+//***************    Function Evaluation   *************************
+//*************** Lagrange function of optimization ****************
+//******************************************************************
+
+double feval(double *x, int n)
+{
+  double cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3];
+  double cA0[nde][nel],cB0[nde][nel];
+  double mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3];
+  double mexA0[nel],mexB0[nel];
+  double mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3];
+  double mraA0[nel],mraB0[nel];
+  double mfe[nel][3],mfedot[nel][3];
+  double mfe0[nel];
+
+  double q1,qde,qfe,qex,time;
+  double q2,q3,q4,qra;
+
+  double res;
+  double c[cstr],lam[cstr];
+
+  double sum, test;
+
+  int index;
+  int i,j,l,k;
+
+  q1 = x[0]; qde = x[1]; qfe = x[2]; qex = x[3]; time = x[4];
+
+  q2 = q1 - qex;
+  q3 = q1 - qex + qfe;
+  q4 = q1 - qde;
+  qra = qde - qex + qfe;
+
+  index = 5;
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    cA[l][i][j] = x[index];
+	    index++;
+	    cB[l][i][j] = x[index];
+	    index++;
+	    cAdot[l][i][j] = x[index];
+	    index++;
+	    cBdot[l][i][j] = x[index];
+	    index++;
+	  }
+	cA0[l][i] = x[index];
+	index++;
+	cB0[l][i] = x[index];
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  mexA[i][j] = x[index];
+	  index++;
+	  mexB[i][j] = x[index];
+	  index++;
+	  mexAdot[i][j] = x[index];
+	  index++;
+	  mexBdot[i][j] = x[index];
+	  index++;
+	  mraA[i][j] = x[index];
+	  index++;
+	  mraB[i][j] = x[index];
+	  index++;
+	  mraAdot[i][j] = x[index];
+	  index++;
+	  mraBdot[i][j] = x[index];
+	  index++;
+	  mfe[i][j] = x[index];
+	  index++;
+	  mfedot[i][j] = x[index];
+	  index++;
+	}
+      mexA0[i] = x[index];
+      index++;
+      mexB0[i] = x[index];
+      index++;
+      mraA0[i] = x[index];
+      index++;
+      mraB0[i] = x[index];
+      index++;
+      mfe0[i] = x[index];
+      index++;
+    }
+
+  // target function
+
+  res = -mfe[nel-1][2]/time;
+
+  // constraints
+
+  index = 0;
+
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cAdot[l][i][k];
+	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum;
+	    index++;
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cBdot[l][i][k];
+	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum;
+	    index++;
+	  }
+      }
+
+  for(l=0;l<nde;l++)
+    for(i=1;i<nel;i++)
+      {
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cAdot[l][i-1][j];
+	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum;
+	index++;
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cBdot[l][i-1][j];
+	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum;
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexAdot[i][k];
+	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexBdot[i][k];
+	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraAdot[i][k];
+	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraBdot[i][k];
+	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mfedot[i][k];
+	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum;
+	  index++;
+
+	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])*
+                            (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j]));
+	  index++;
+	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])*
+                            (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j]));
+	  index++;
+
+	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -
+                q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/
+	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]));
+	  index++;
+	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -
+                q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/
+	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]));
+	  index++;
+
+	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j];
+	  index++;
+	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j];
+	  index++;
+	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j];
+	  index++;
+	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j];
+	  index++;
+	  c[index] = mfedot[i][j] - qfe;
+	  index++;
+
+	}
+    }
+
+  for(i=1;i<nel;i++)
+    {
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexAdot[i-1][j];
+      c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexBdot[i-1][j];
+      c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraAdot[i-1][j];
+      c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraBdot[i-1][j];
+      c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mfedot[i-1][j];
+      c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum;
+      index++;
+    }
+
+  for(l=1;l<nex-1;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+  for(l=nex-1;l<nfe;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nfe+1;l<nra;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nra;l<nde;l++)
+    {
+      for(i=0;i<nel;i++)
+	{
+	  for(j=0;j<3;j++)
+	    {
+	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	      index++;
+	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	      index++;
+	    }
+	}
+      c[index] = cA0[l][0] - cA[l-nra][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l-nra][nel-1][2];
+      index++;
+    }
+
+  for(l=0;l<nra;l++)
+    {
+      c[index] = cA0[l][0] - cA[l+ndis][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l+ndis][nel-1][2];
+      index++;
+    }
+
+  c[index] = mexA0[0];
+  index++;
+  c[index] = mexB0[0];
+  index++;
+  c[index] = mraA0[0];
+  index++;
+  c[index] = mraB0[0];
+  index++;
+  c[index] = mfe0[0];
+  index++;
+
+  //printf(" f index %d \n",index);
+
+  for(i=0;i<cstr;i++)
+    lam[i] = 1;
+
+  for(i=0;i<cstr;i++)
+    res += lam[i]*c[i];
+
+  return res;
+}
+
+
+//**************       active version      ************************
+
+
+adouble feval_ad(double *x, int n)
+{
+  adouble cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3];
+  adouble cA0[nde][nel],cB0[nde][nel];
+  adouble mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3];
+  adouble mexA0[nel],mexB0[nel];
+  adouble mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3];
+  adouble mraA0[nel],mraB0[nel];
+  adouble mfe[nel][3],mfedot[nel][3];
+  adouble mfe0[nel];
+
+  adouble q1,qde,qfe,qex,time;
+  adouble q2,q3,q4,qra;
+
+  adouble res;
+  adouble c[cstr];
+  double lam[cstr];
+  adouble sum;
+
+  int index;
+  int i,j,l,k;
+
+  q1 <<= x[0]; qde <<= x[1]; qfe <<= x[2]; qex <<= x[3]; time <<= x[4];
+
+  q2 = q1 - qex;
+  q3 = q1 - qex + qfe;
+  q4 = q1 - qde;
+  qra = qde - qex + qfe;
+
+  index = 5;
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    cA[l][i][j] <<= x[index];
+	    index++;
+	    cB[l][i][j] <<= x[index];
+	    index++;
+	    cAdot[l][i][j] <<= x[index];
+	    index++;
+	    cBdot[l][i][j] <<= x[index];
+	    index++;
+	  }
+	cA0[l][i] <<= x[index];
+	index++;
+	cB0[l][i] <<= x[index];
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  mexA[i][j] <<= x[index];
+	  index++;
+	  mexB[i][j] <<= x[index];
+	  index++;
+	  mexAdot[i][j] <<= x[index];
+	  index++;
+	  mexBdot[i][j] <<= x[index];
+	  index++;
+	  mraA[i][j] <<= x[index];
+	  index++;
+	  mraB[i][j] <<= x[index];
+	  index++;
+	  mraAdot[i][j] <<= x[index];
+	  index++;
+	  mraBdot[i][j] <<= x[index];
+	  index++;
+	  mfe[i][j] <<= x[index];
+	  index++;
+	  mfedot[i][j] <<= x[index];
+	  index++;
+	}
+      mexA0[i] <<= x[index];
+      index++;
+      mexB0[i] <<= x[index];
+      index++;
+      mraA0[i] <<= x[index];
+      index++;
+      mraB0[i] <<= x[index];
+      index++;
+      mfe0[i] <<= x[index];
+      index++;
+    }
+
+  res = -mfe[nel-1][2]/time;
+
+  index = 0;
+
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cAdot[l][i][k];
+	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum;
+	    index++;
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cBdot[l][i][k];
+	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum;
+	    index++;
+	  }
+      }
+
+  for(l=0;l<nde;l++)
+    for(i=1;i<nel;i++)
+      {
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cAdot[l][i-1][j];
+	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum;
+	index++;
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cBdot[l][i-1][j];
+	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum;
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexAdot[i][k];
+	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexBdot[i][k];
+	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraAdot[i][k];
+	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraBdot[i][k];
+	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mfedot[i][k];
+	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum;
+	  index++;
+
+	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])*
+	    (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j]));
+	  index++;
+	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])*
+	    (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j]));
+	  index++;
+
+	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -
+                q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/
+	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]));
+	  index++;
+	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -
+                q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/
+	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]));
+	  index++;
+
+	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j];
+	  index++;
+	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j];
+	  index++;
+	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j];
+	  index++;
+	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j];
+	  index++;
+	  c[index] = mfedot[i][j] - qfe;
+	  index++;
+	}
+    }
+
+  for(i=1;i<nel;i++)
+    {
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexAdot[i-1][j];
+      c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexBdot[i-1][j];
+      c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraAdot[i-1][j];
+      c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraBdot[i-1][j];
+      c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mfedot[i-1][j];
+      c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum;
+      index++;
+    }
+
+  for(l=1;l<nex-1;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nex-1;l<nfe;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nfe+1;l<nra;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nra;l<nde;l++)
+    {
+      for(i=0;i<nel;i++)
+	{
+	  for(j=0;j<3;j++)
+	    {
+	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	      index++;
+	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	      index++;
+	    }
+	}
+      c[index] = cA0[l][0] - cA[l-nra][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l-nra][nel-1][2];
+      index++;
+    }
+
+  for(l=0;l<nra;l++)
+    {
+      c[index] = cA0[l][0] - cA[l+ndis][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l+ndis][nel-1][2];
+      index++;
+    }
+
+  c[index] = mexA0[0];
+  index++;
+  c[index] = mexB0[0];
+  index++;
+  c[index] = mraA0[0];
+  index++;
+  c[index] = mraB0[0];
+  index++;
+  c[index] = mfe0[0];
+  index++;
+
+
+  for(i=0;i<cstr;i++)
+    {
+      lam[i] = 1;
+    }
+
+  for(i=0;i<cstr;i++)
+    {
+      res += lam[i]*c[i];
+    }
+
+  return res;
+
+}
+
+//******************************************************************
+//***************    Constraint Evaluation   ***********************
+//*************** constraints of optimization       ****************
+//******************************************************************
+
+void ceval(double *x, double *c, int n)
+{
+  double cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3];
+  double cA0[nde][nel],cB0[nde][nel];
+  double mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3];
+  double mexA0[nel],mexB0[nel];
+  double mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3];
+  double mraA0[nel],mraB0[nel];
+  double mfe[nel][3],mfedot[nel][3];
+  double mfe0[nel];
+
+  double q1,qde,qfe,qex,time;
+  double q2,q3,q4,qra;
+
+  double sum, test;
+
+  int index;
+  int i,j,l,k;
+
+  q1 = x[0]; qde = x[1]; qfe = x[2]; qex = x[3]; time = x[4];
+
+  q2 = q1 - qex;
+  q3 = q1 - qex + qfe;
+  q4 = q1 - qde;
+  qra = qde - qex + qfe;
+
+  index = 5;
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    cA[l][i][j] = x[index];
+	    index++;
+	    cB[l][i][j] = x[index];
+	    index++;
+	    cAdot[l][i][j] = x[index];
+	    index++;
+	    cBdot[l][i][j] = x[index];
+	    index++;
+	  }
+	cA0[l][i] = x[index];
+	index++;
+	cB0[l][i] = x[index];
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  mexA[i][j] = x[index];
+	  index++;
+	  mexB[i][j] = x[index];
+	  index++;
+	  mexAdot[i][j] = x[index];
+	  index++;
+	  mexBdot[i][j] = x[index];
+	  index++;
+	  mraA[i][j] = x[index];
+	  index++;
+	  mraB[i][j] = x[index];
+	  index++;
+	  mraAdot[i][j] = x[index];
+	  index++;
+	  mraBdot[i][j] = x[index];
+	  index++;
+	  mfe[i][j] = x[index];
+	  index++;
+	  mfedot[i][j] = x[index];
+	  index++;
+	}
+      mexA0[i] = x[index];
+      index++;
+      mexB0[i] = x[index];
+      index++;
+      mraA0[i] = x[index];
+      index++;
+      mraB0[i] = x[index];
+      index++;
+      mfe0[i] = x[index];
+      index++;
+    }
+
+  // constraints
+
+  index = 0;
+
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cAdot[l][i][k];
+	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum;
+	    index++;
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cBdot[l][i][k];
+	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum;
+	    index++;
+	  }
+      }
+
+  for(l=0;l<nde;l++)
+    for(i=1;i<nel;i++)
+      {
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cAdot[l][i-1][j];
+	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum;
+	index++;
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cBdot[l][i-1][j];
+	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum;
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexAdot[i][k];
+	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexBdot[i][k];
+	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraAdot[i][k];
+	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraBdot[i][k];
+	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mfedot[i][k];
+	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum;
+	  index++;
+
+	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])*
+                            (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j]));
+	  index++;
+	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])*
+                            (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j]));
+	  index++;
+
+	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -
+                q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/
+	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]));
+	  index++;
+	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -
+                q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/
+	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]));
+	  index++;
+
+	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j];
+	  index++;
+	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j];
+	  index++;
+	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j];
+	  index++;
+	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j];
+	  index++;
+	  c[index] = mfedot[i][j] - qfe;
+	  index++;
+
+	}
+    }
+
+  for(i=1;i<nel;i++)
+    {
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexAdot[i-1][j];
+      c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexBdot[i-1][j];
+      c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraAdot[i-1][j];
+      c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraBdot[i-1][j];
+      c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mfedot[i-1][j];
+      c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum;
+      index++;
+    }
+
+  for(l=1;l<nex-1;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+  for(l=nex-1;l<nfe;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nfe+1;l<nra;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nra;l<nde;l++)
+    {
+      for(i=0;i<nel;i++)
+	{
+	  for(j=0;j<3;j++)
+	    {
+	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	      index++;
+	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	      index++;
+	    }
+	}
+      c[index] = cA0[l][0] - cA[l-nra][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l-nra][nel-1][2];
+      index++;
+    }
+
+  for(l=0;l<nra;l++)
+    {
+      c[index] = cA0[l][0] - cA[l+ndis][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l+ndis][nel-1][2];
+      index++;
+    }
+
+
+}
+
+
+//**************       active version      ************************
+
+
+void ceval_ad(double *x, adouble *c, int n)
+{
+  adouble cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3];
+  adouble cA0[nde][nel],cB0[nde][nel];
+  adouble mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3];
+  adouble mexA0[nel],mexB0[nel];
+  adouble mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3];
+  adouble mraA0[nel],mraB0[nel];
+  adouble mfe[nel][3],mfedot[nel][3];
+  adouble mfe0[nel];
+
+  adouble q1,qde,qfe,qex,time;
+  adouble q2,q3,q4,qra;
+
+  adouble sum;
+
+  int index;
+  int i,j,l,k;
+
+  q1 <<= x[0]; qde <<= x[1]; qfe <<= x[2]; qex <<= x[3]; time <<= x[4];
+
+  q2 = q1 - qex;
+  q3 = q1 - qex + qfe;
+  q4 = q1 - qde;
+  qra = qde - qex + qfe;
+
+  index = 5;
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    cA[l][i][j] <<= x[index];
+	    index++;
+	    cB[l][i][j] <<= x[index];
+	    index++;
+	    cAdot[l][i][j] <<= x[index];
+	    index++;
+	    cBdot[l][i][j] <<= x[index];
+	    index++;
+	  }
+	cA0[l][i] <<= x[index];
+	index++;
+	cB0[l][i] <<= x[index];
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  mexA[i][j] <<= x[index];
+	  index++;
+	  mexB[i][j] <<= x[index];
+	  index++;
+	  mexAdot[i][j] <<= x[index];
+	  index++;
+	  mexBdot[i][j] <<= x[index];
+	  index++;
+	  mraA[i][j] <<= x[index];
+	  index++;
+	  mraB[i][j] <<= x[index];
+	  index++;
+	  mraAdot[i][j] <<= x[index];
+	  index++;
+	  mraBdot[i][j] <<= x[index];
+	  index++;
+	  mfe[i][j] <<= x[index];
+	  index++;
+	  mfedot[i][j] <<= x[index];
+	  index++;
+	}
+      mexA0[i] <<= x[index];
+      index++;
+      mexB0[i] <<= x[index];
+      index++;
+      mraA0[i] <<= x[index];
+      index++;
+      mraB0[i] <<= x[index];
+      index++;
+      mfe0[i] <<= x[index];
+      index++;
+    }
+
+
+  index = 0;
+
+  for(l=0;l<nde;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cAdot[l][i][k];
+	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum;
+	    index++;
+	    sum = 0;
+	    for(k=0;k<3;k++)
+	      sum += omega[k][j]*cBdot[l][i][k];
+	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum;
+	    index++;
+	  }
+      }
+
+  for(l=0;l<nde;l++)
+    for(i=1;i<nel;i++)
+      {
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cAdot[l][i-1][j];
+	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum;
+	index++;
+	sum = 0;
+	for(j=0;j<3;j++)
+	  sum += omega[j][2]*cBdot[l][i-1][j];
+	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum;
+	index++;
+      }
+
+  for(i=0;i<nel;i++)
+    {
+      for(j=0;j<3;j++)
+	{
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexAdot[i][k];
+	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mexBdot[i][k];
+	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraAdot[i][k];
+	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mraBdot[i][k];
+	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum;
+	  index++;
+	  sum = 0;
+	  for(k=0;k<3;k++)
+	    sum += omega[k][j]*mfedot[i][k];
+	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum;
+	  index++;
+
+	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])*
+	    (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j]));
+	  index++;
+	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])*
+	    (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j]));
+	  index++;
+
+	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -
+                q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/
+	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]));
+	  index++;
+	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -
+                q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/
+	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]));
+	  index++;
+
+	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j];
+	  index++;
+	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j];
+	  index++;
+	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j];
+	  index++;
+	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j];
+	  index++;
+	  c[index] = mfedot[i][j] - qfe;
+	  index++;
+	}
+    }
+
+  for(i=1;i<nel;i++)
+    {
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexAdot[i-1][j];
+      c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mexBdot[i-1][j];
+      c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraAdot[i-1][j];
+      c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mraBdot[i-1][j];
+      c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum;
+      index++;
+      sum = 0;
+      for(j=0;j<3;j++)
+	sum += omega[j][2]*mfedot[i-1][j];
+      c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum;
+      index++;
+    }
+
+  for(l=1;l<nex-1;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nex-1;l<nfe;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nfe+1;l<nra;l++)
+    for(i=0;i<nel;i++)
+      {
+	for(j=0;j<3;j++)
+	  {
+	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	    index++;
+	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	    index++;
+	  }
+      }
+
+  for(l=nra;l<nde;l++)
+    {
+      for(i=0;i<nel;i++)
+	{
+	  for(j=0;j<3;j++)
+	    {
+	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/
+		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]));
+	      index++;
+	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/
+		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]));
+	      index++;
+	    }
+	}
+      c[index] = cA0[l][0] - cA[l-nra][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l-nra][nel-1][2];
+      index++;
+    }
+
+  for(l=0;l<nra;l++)
+    {
+      c[index] = cA0[l][0] - cA[l+ndis][nel-1][2];
+      index++;
+      c[index] = cB0[l][0] - cB[l+ndis][nel-1][2];
+      index++;
+    }
+
+  printf(" in ceval_ad index %d \n",index);
+/*   for(i=0;i<cstr-5;i++) */
+/*     { */
+/*       printf("%d %e \n",i,c[i].value()); */
+/*     } */
+}
+
+
+/* //\**************       active version      ************************ */
+
+
+/* adouble feval_ad_mod(double *x, int n) */
+/* { */
+/*   adouble cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3]; */
+/*   adouble cA0[nde][nel],cB0[nde][nel]; */
+/*   adouble mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3]; */
+/*   adouble mexA0[nel],mexB0[nel]; */
+/*   adouble mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3]; */
+/*   adouble mraA0[nel],mraB0[nel]; */
+/*   adouble mfe[nel][3],mfedot[nel][3]; */
+/*   adouble mfe0[nel]; */
+
+/*   adouble q1,qde,qfe,qex,time; */
+/*   adouble q2,q3,q4,qra; */
+
+/*   adouble res; */
+/*   adouble c[cstr]; */
+/*   double lam[cstr]; */
+/*   adouble sum; */
+
+/*   int index; */
+/*   int i,j,l,k; */
+
+/*   q1 = x[0]; qde = x[1]; qfe = x[2]; qex = x[3]; time = x[4]; */
+
+/*   q2 = q1 - qex;  */
+/*   q3 = q1 - qex + qfe;  */
+/*   q4 = q1 - qde;  */
+/*   qra = qde - qex + qfe;  */
+
+/*   index = 5; */
+/*   for(l=0;l<nde;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    cA[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cB[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cAdot[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cBdot[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	  } */
+/* 	cA0[l][i] <<= x[index]; */
+/* 	index++; */
+/* 	cB0[l][i] <<= x[index]; */
+/* 	index++; */
+/*       } */
+
+/*   for(i=0;i<nel;i++) */
+/*     { */
+/*       for(j=0;j<3;j++) */
+/* 	{ */
+/* 	  mexA[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexB[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexAdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexBdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraA[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraB[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraAdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraBdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mfe[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mfedot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	} */
+/*       mexA0[i] <<= x[index]; */
+/*       index++; */
+/*       mexB0[i] <<= x[index]; */
+/*       index++; */
+/*       mraA0[i] <<= x[index]; */
+/*       index++; */
+/*       mraB0[i] <<= x[index]; */
+/*       index++; */
+/*       mfe0[i] <<= x[index]; */
+/*       index++; */
+/*     } */
+
+/*   res = -mfe[nel-1][2]/time; */
+
+/*   index = 0; */
+
+/*   for(l=0;l<nde;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    sum = 0; */
+/* 	    for(k=0;k<3;k++) */
+/* 	      sum += omega[k][j]*cAdot[l][i][k]; */
+/* 	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum; */
+/* 	    index++; */
+/* 	    sum = 0; */
+/* 	    for(k=0;k<3;k++) */
+/* 	      sum += omega[k][j]*cBdot[l][i][k]; */
+/* 	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum; */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=0;l<nde;l++) */
+/*     for(i=1;i<nel;i++) */
+/*       { */
+/* 	sum = 0; */
+/* 	for(j=0;j<3;j++) */
+/* 	  sum += omega[j][2]*cAdot[l][i-1][j]; */
+/* 	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum; */
+/* 	index++; */
+/* 	sum = 0; */
+/* 	for(j=0;j<3;j++) */
+/* 	  sum += omega[j][2]*cBdot[l][i-1][j]; */
+/* 	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum; */
+/* 	index++; */
+/*       } */
+
+/*   for(i=0;i<nel;i++) */
+/*     { */
+/*       for(j=0;j<3;j++) */
+/* 	{ */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mexAdot[i][k]; */
+/* 	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mexBdot[i][k]; */
+/* 	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mraAdot[i][k]; */
+/* 	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mraBdot[i][k]; */
+/* 	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mfedot[i][k]; */
+/* 	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum; */
+/* 	  index++; */
+
+/* 	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])* */
+/* 	    (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j])); */
+/* 	  index++; */
+/* 	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])* */
+/* 	    (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j])); */
+/* 	  index++; */
+
+/* 	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -  */
+/*                 q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/  */
+/* 	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j])); */
+/* 	  index++; */
+/* 	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -  */
+/*                 q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/  */
+/* 	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j])); */
+/* 	  index++; */
+
+/* 	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mfedot[i][j] - qfe; */
+/* 	  index++; */
+/* 	} */
+/*     } */
+
+/*   for(i=1;i<nel;i++) */
+/*     { */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mexAdot[i-1][j]; */
+/*       c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mexBdot[i-1][j]; */
+/*       c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mraAdot[i-1][j]; */
+/*       c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mraBdot[i-1][j]; */
+/*       c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mfedot[i-1][j]; */
+/*       c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*     } */
+
+/*   for(l=1;l<nex-1;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nex-1;l<nfe;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nfe+1;l<nra;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nra;l<nde;l++) */
+/*     { */
+/*       for(i=0;i<nel;i++) */
+/* 	{ */
+/* 	  for(j=0;j<3;j++) */
+/* 	    { */
+/* 	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	      index++; */
+/* 	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	      index++; */
+/* 	    } */
+/* 	} */
+/*       c[index] = cA0[l][0] - cA[l-nra][nel-1][2]; */
+/*       index++;  */
+/*       c[index] = cB0[l][0] - cB[l-nra][nel-1][2]; */
+/*       index++;  */
+/*     } */
+
+/*   for(l=0;l<nra;l++) */
+/*     { */
+/*       c[index] = cA0[l][0] - cA[l+ndis][nel-1][2]; */
+/*       index++;  */
+/*       c[index] = cB0[l][0] - cB[l+ndis][nel-1][2]; */
+/*       index++;  */
+/*     } */
+
+/*   c[index] = mexA0[0]; */
+/*   index++;  */
+/*   c[index] = mexB0[0]; */
+/*   index++;  */
+/*   c[index] = mraA0[0]; */
+/*   index++;  */
+/*   c[index] = mraB0[0]; */
+/*   index++;  */
+/*   c[index] = mfe0[0]; */
+/*   index++;  */
+
+/*   printf(" index = %d\n",index); */
+
+/*   for(i=0;i<cstr;i++) */
+/*     lam[i] = 1; */
+
+/*   for(i=0;i<cstr;i++) */
+/*     { */
+/*       res += lam[i]*c[i]; */
+/*     } */
+
+/*   return res; */
+
+/* } */
+
+
+/* //\**************       active version      ************************ */
+
+
+/* adouble feval_ad_modHP(double *x, int n) */
+/* { */
+/*   adouble cA[nde][nel][3],cB[nde][nel][3],cAdot[nde][nel][3],cBdot[nde][nel][3]; */
+/*   adouble cA0[nde][nel],cB0[nde][nel]; */
+/*   adouble mexA[nel][3],mexB[nel][3],mexAdot[nel][3],mexBdot[nel][3]; */
+/*   adouble mexA0[nel],mexB0[nel]; */
+/*   adouble mraA[nel][3],mraB[nel][3],mraAdot[nel][3],mraBdot[nel][3]; */
+/*   adouble mraA0[nel],mraB0[nel]; */
+/*   adouble mfe[nel][3],mfedot[nel][3]; */
+/*   adouble mfe0[nel]; */
+
+/*   adouble q1,qde,qfe,qex,time; */
+/*   adouble q2,q3,q4,qra; */
+
+/*   adouble res; */
+/*   adouble c[cstr]; */
+/*   double lam[cstr]; */
+/*   adouble sum; */
+
+/*   int index; */
+/*   int i,j,l,k; */
+
+/*   q1 = x[0]; qde = x[1]; qfe = x[2]; qex = x[3]; time = x[4]; */
+
+/*   q2 = q1 - qex;  */
+/*   q3 = q1 - qex + qfe;  */
+/*   q4 = q1 - qde;  */
+/*   qra = qde - qex + qfe;  */
+
+/*   index = 5; */
+/*   for(l=0;l<nde;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    cA[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cB[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cAdot[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	    cBdot[l][i][j] <<= x[index]; */
+/* 	    index++; */
+/* 	  } */
+/* 	cA0[l][i] <<= x[index]; */
+/* 	index++; */
+/* 	cB0[l][i] <<= x[index]; */
+/* 	index++; */
+/*       } */
+
+/*   for(i=0;i<nel;i++) */
+/*     { */
+/*       for(j=0;j<3;j++) */
+/* 	{ */
+/* 	  mexA[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexB[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexAdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mexBdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraA[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraB[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraAdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mraBdot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mfe[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	  mfedot[i][j] <<= x[index]; */
+/* 	  index++; */
+/* 	} */
+/*       mexA0[i] <<= x[index]; */
+/*       index++; */
+/*       mexB0[i] <<= x[index]; */
+/*       index++; */
+/*       mraA0[i] <<= x[index]; */
+/*       index++; */
+/*       mraB0[i] <<= x[index]; */
+/*       index++; */
+/*       mfe0[i] <<= x[index]; */
+/*       index++; */
+/*     } */
+
+/*   res = -mfe[nel-1][2]/time; */
+
+/*   index = 0; */
+
+/*   for(l=0;l<nde;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    sum = 0; */
+/* 	    for(k=0;k<3;k++) */
+/* 	      sum += omega[k][j]*cAdot[l][i][k]; */
+/* 	    c[index] = cA[l][i][j] - cA0[l][i]+time*h[i]*sum; */
+/* 	    index++; */
+/* 	    sum = 0; */
+/* 	    for(k=0;k<3;k++) */
+/* 	      sum += omega[k][j]*cBdot[l][i][k]; */
+/* 	    c[index] = cB[l][i][j] - cB0[l][i]+time*h[i]*sum; */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=0;l<nde;l++) */
+/*     for(i=1;i<nel;i++) */
+/*       { */
+/* 	sum = 0; */
+/* 	for(j=0;j<3;j++) */
+/* 	  sum += omega[j][2]*cAdot[l][i-1][j]; */
+/* 	c[index] = cA0[l][i] - cA0[l][i-1] + time*h[i-1]*sum; */
+/* 	index++; */
+/* 	sum = 0; */
+/* 	for(j=0;j<3;j++) */
+/* 	  sum += omega[j][2]*cBdot[l][i-1][j]; */
+/* 	c[index] = cB0[l][i] - cB0[l][i-1] + time*h[i-1]*sum; */
+/* 	index++; */
+/*       } */
+
+/*   for(i=0;i<nel;i++) */
+/*     { */
+/*       for(j=0;j<3;j++) */
+/* 	{ */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mexAdot[i][k]; */
+/* 	  c[index] = mexA[i][j] - mexA0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mexBdot[i][k]; */
+/* 	  c[index] = mexB[i][j] - mexB0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mraAdot[i][k]; */
+/* 	  c[index] = mraA[i][j] - mraA0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mraBdot[i][k]; */
+/* 	  c[index] = mraB[i][j] - mraB0[i]+time*h[i]*sum; */
+/* 	  index++; */
+/* 	  sum = 0; */
+/* 	  for(k=0;k<3;k++) */
+/* 	    sum += omega[k][j]*mfedot[i][k]; */
+/* 	  c[index] = mfe[i][j]-mfe0[i]+time*h[i]*sum; */
+/* 	  index++; */
+
+/* 	  c[index] = cAdot[0][i][j] - kA*(q4*cA[nde-1][i][j]-q1*cA[0][i][j])* */
+/* 	    (2*(1 + kk*cA[0][ i][ j])*(1 + kk*cA[0][ i][ j]))/ (1+(1 +kk*cA[0][i][j])*(1 +kk*cA[0][i][j])); */
+/* 	  index++; */
+/* 	  c[index] = cBdot[0][i][j] - kB*(q4*cB[nde-1][i][j]-q1*cB[0][i][j])* */
+/* 	    (2*(1 + kk*cB[0][ i][ j])*(1 + kk*cB[0][ i][ j]))/ (1+(1 +kk*cB[0][i][j])*(1 +kk*cB[0][i][j])); */
+/* 	  index++; */
+
+/* 	  c[index] = cAdot[nfe][i][j] - kA*(q2*cA[nfe-1][i][j] + qfe*cFEA -  */
+/*                 q3*cA[nfe][i][j])*(2*(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j]))/  */
+/* 	        (1+(1 + kk*cA[nfe][i][j])*(1 + kk*cA[nfe][i][j])); */
+/* 	  index++; */
+/* 	  c[index] = cBdot[nfe][i][j] - kB*(q2*cB[nfe-1][i][j] + qfe*cFEB -  */
+/*                 q3*cB[nfe][i][j])*(2*(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j]))/  */
+/* 	        (1+(1 + kk*cB[nfe][i][j])*(1 + kk*cB[nfe][i][j])); */
+/* 	  index++; */
+
+/* 	  c[index] = mexAdot[i][j] - qex*cA[nex-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mexBdot[i][j] - qex*cB[nex-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mraAdot[i][j] - qra*cA[nra-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mraBdot[i][j] - qra*cB[nra-1][ i][j]; */
+/* 	  index++; */
+/* 	  c[index] = mfedot[i][j] - qfe; */
+/* 	  index++; */
+/* 	} */
+/*     } */
+
+/*   for(i=1;i<nel;i++) */
+/*     { */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mexAdot[i-1][j]; */
+/*       c[index] = mexA0[i] - mexA0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mexBdot[i-1][j]; */
+/*       c[index] = mexB0[i] - mexB0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mraAdot[i-1][j]; */
+/*       c[index] = mraA0[i] - mraA0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mraBdot[i-1][j]; */
+/*       c[index] = mraB0[i] - mraB0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*       sum = 0; */
+/*       for(j=0;j<3;j++) */
+/* 	sum += omega[j][2]*mfedot[i-1][j]; */
+/*       c[index] = mfe0[i] - mfe0[i-1] + time*h[i-1]*sum; */
+/*       index++; */
+/*     } */
+
+/*   for(l=1;l<nex-1;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q1*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q1*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nex-1;l<nfe;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q2*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q2*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nfe+1;l<nra;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    c[index] = cAdot[l][i][j] - kA*q3*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 	                (1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	    index++; */
+/* 	    c[index] = cBdot[l][i][j] - kB*q3*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 	                (1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	    index++; */
+/* 	  } */
+/*       } */
+
+/*   for(l=nra;l<nde;l++) */
+/*     { */
+/*       for(i=0;i<nel;i++) */
+/* 	{ */
+/* 	  for(j=0;j<3;j++) */
+/* 	    { */
+/* 	      c[index] = cAdot[l][i][j] - kA*q4*(cA[l-1][i][j] - cA[l][i][j])*(2*(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j]))/ */
+/* 		(1+(1 + kk*cA[l][i][j])*(1 + kk*cA[l][i][j])); */
+/* 	      index++; */
+/* 	      c[index] = cBdot[l][i][j] - kB*q4*(cB[l-1][i][j] - cB[l][i][j])*(2*(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j]))/ */
+/* 		(1+(1 + kk*cB[l][i][j])*(1 + kk*cB[l][i][j])); */
+/* 	      index++; */
+/* 	    } */
+/* 	} */
+/*       c[index] = cA0[l][0] - cA[l-nra][nel-1][2]; */
+/*       index++;  */
+/*       c[index] = cB0[l][0] - cB[l-nra][nel-1][2]; */
+/*       index++;  */
+/*     } */
+
+/*   for(l=0;l<nra;l++) */
+/*     { */
+/*       c[index] = cA0[l][0] - cA[l+ndis][nel-1][2]; */
+/*       index++;  */
+/*       c[index] = cB0[l][0] - cB[l+ndis][nel-1][2]; */
+/*       index++;  */
+/*     } */
+
+/*   c[index] = mexA0[0]; */
+/*   index++;  */
+/*   c[index] = mexB0[0]; */
+/*   index++;  */
+/*   c[index] = mraA0[0]; */
+/*   index++;  */
+/*   c[index] = mraB0[0]; */
+/*   index++;  */
+/*   c[index] = mfe0[0]; */
+/*   index++;  */
+
+/*   printf(" index = %d\n",index); */
+
+/*   for(i=0;i<cstr;i++) */
+/*     lam[i] = 1; */
+
+/*   for(i=0;i<cstr;i++) */
+/*     { */
+/*       res += lam[i]*c[i]; */
+/*     } */
+
+/*   for(l=0;l<nde;l++) */
+/*     for(i=0;i<nel;i++) */
+/*       { */
+/* 	for(j=0;j<3;j++) */
+/* 	  { */
+/* 	    res += cA[l][i][j]*cA[l][i][j]; */
+/* 	    res += cB[l][i][j]*cB[l][i][j]; */
+/* 	    res += cAdot[l][i][j]*cAdot[l][i][j]; */
+/* 	    res += cBdot[l][i][j]*cBdot[l][i][j]; */
+/* 	  } */
+/* 	res += cA0[l][i]*cA0[l][i]; */
+/* 	res += cA0[l][i]*cB0[l][i]; */
+/*       } */
+
+/*   for(i=0;i<nel;i++) */
+/*     { */
+/*       for(j=0;j<3;j++) */
+/* 	{ */
+/* 	  res += mexA[i][j]*mexA[i][j]; */
+/* 	  res += mexB[i][j]*mexB[i][j]; */
+/* 	  res += mexAdot[i][j]*mexAdot[i][j]; */
+/* 	  res += mexBdot[i][j]*mexBdot[i][j]; */
+/* 	  res += mraA[i][j]*mraA[i][j]; */
+/* 	  res += mraB[i][j]*mraB[i][j]; */
+/* 	  res += mraAdot[i][j]*mraAdot[i][j]; */
+/* 	  res += mraBdot[i][j]*mraBdot[i][j]; */
+/* 	  res += mfe[i][j]*mfe[i][j]; */
+/* 	  res += mfedot[i][j]*mfedot[i][j]; */
+/* 	} */
+/*       res += mexA0[i]*mexA0[i]; */
+/*       res += mexB0[i]*mexB0[i]; */
+/*       res += mraA0[i]*mraA0[i]; */
+/*       res += mraB0[i]*mraB0[i]; */
+/*       res += mfe0[i]*mfe0[i]; */
+/*     } */
+
+/*   return res; */
+
+/* } */
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/jac_full.mtx
@@ -0,0 +1,39511 @@
+8570 8580
+0 4   0.031010
+0 5   1.000000
+0 7   0.039363
+0 11  -0.013107
+0 15   0.004754
+0 17  -1.000000
+1 4   0.031010
+1 6   1.000000
+1 8   0.039363
+1 12  -0.013107
+1 16   0.004754
+1 18  -1.000000
+2 4   0.128990
+2 7   0.078885
+2 9   1.000000
+2 11   0.058415
+2 15  -0.008310
+2 17  -1.000000
+3 4   0.128990
+3 8   0.078885
+3 10   1.000000
+3 12   0.058415
+3 16  -0.008310
+3 18  -1.000000
+4 4   0.200000
+4 7   0.075281
+4 11   0.102497
+4 13   1.000000
+4 15   0.022222
+4 17  -1.000000
+5 4   0.200000
+5 8   0.075281
+5 12   0.102497
+5 14   1.000000
+5 16   0.022222
+5 18  -1.000000
+6 4   0.031010
+6 19   1.000000
+6 21   0.039363
+6 25  -0.013107
+6 29   0.004754
+6 31  -1.000000
+7 4   0.031010
+7 20   1.000000
+7 22   0.039363
+7 26  -0.013107
+7 30   0.004754
+7 32  -1.000000
+8 4   0.128990
+8 21   0.078885
+8 23   1.000000
+8 25   0.058415
+8 29  -0.008310
+8 31  -1.000000
+9 4   0.128990
+9 22   0.078885
+9 24   1.000000
+9 26   0.058415
+9 30  -0.008310
+9 32  -1.000000
+10 4   0.200000
+10 21   0.075281
+10 25   0.102497
+10 27   1.000000
+10 29   0.022222
+10 31  -1.000000
+11 4   0.200000
+11 22   0.075281
+11 26   0.102497
+11 28   1.000000
+11 30   0.022222
+11 32  -1.000000
+12 4   0.031010
+12 33   1.000000
+12 35   0.039363
+12 39  -0.013107
+12 43   0.004754
+12 45  -1.000000
+13 4   0.031010
+13 34   1.000000
+13 36   0.039363
+13 40  -0.013107
+13 44   0.004754
+13 46  -1.000000
+14 4   0.128990
+14 35   0.078885
+14 37   1.000000
+14 39   0.058415
+14 43  -0.008310
+14 45  -1.000000
+15 4   0.128990
+15 36   0.078885
+15 38   1.000000
+15 40   0.058415
+15 44  -0.008310
+15 46  -1.000000
+16 4   0.200000
+16 35   0.075281
+16 39   0.102497
+16 41   1.000000
+16 43   0.022222
+16 45  -1.000000
+17 4   0.200000
+17 36   0.075281
+17 40   0.102497
+17 42   1.000000
+17 44   0.022222
+17 46  -1.000000
+18 4   0.031010
+18 47   1.000000
+18 49   0.039363
+18 53  -0.013107
+18 57   0.004754
+18 59  -1.000000
+19 4   0.031010
+19 48   1.000000
+19 50   0.039363
+19 54  -0.013107
+19 58   0.004754
+19 60  -1.000000
+20 4   0.128990
+20 49   0.078885
+20 51   1.000000
+20 53   0.058415
+20 57  -0.008310
+20 59  -1.000000
+21 4   0.128990
+21 50   0.078885
+21 52   1.000000
+21 54   0.058415
+21 58  -0.008310
+21 60  -1.000000
+22 4   0.200000
+22 49   0.075281
+22 53   0.102497
+22 55   1.000000
+22 57   0.022222
+22 59  -1.000000
+23 4   0.200000
+23 50   0.075281
+23 54   0.102497
+23 56   1.000000
+23 58   0.022222
+23 60  -1.000000
+24 4   0.031010
+24 61   1.000000
+24 63   0.039363
+24 67  -0.013107
+24 71   0.004754
+24 73  -1.000000
+25 4   0.031010
+25 62   1.000000
+25 64   0.039363
+25 68  -0.013107
+25 72   0.004754
+25 74  -1.000000
+26 4   0.128990
+26 63   0.078885
+26 65   1.000000
+26 67   0.058415
+26 71  -0.008310
+26 73  -1.000000
+27 4   0.128990
+27 64   0.078885
+27 66   1.000000
+27 68   0.058415
+27 72  -0.008310
+27 74  -1.000000
+28 4   0.200000
+28 63   0.075281
+28 67   0.102497
+28 69   1.000000
+28 71   0.022222
+28 73  -1.000000
+29 4   0.200000
+29 64   0.075281
+29 68   0.102497
+29 70   1.000000
+29 72   0.022222
+29 74  -1.000000
+30 4   0.031010
+30 75   1.000000
+30 77   0.039363
+30 81  -0.013107
+30 85   0.004754
+30 87  -1.000000
+31 4   0.031010
+31 76   1.000000
+31 78   0.039363
+31 82  -0.013107
+31 86   0.004754
+31 88  -1.000000
+32 4   0.128990
+32 77   0.078885
+32 79   1.000000
+32 81   0.058415
+32 85  -0.008310
+32 87  -1.000000
+33 4   0.128990
+33 78   0.078885
+33 80   1.000000
+33 82   0.058415
+33 86  -0.008310
+33 88  -1.000000
+34 4   0.200000
+34 77   0.075281
+34 81   0.102497
+34 83   1.000000
+34 85   0.022222
+34 87  -1.000000
+35 4   0.200000
+35 78   0.075281
+35 82   0.102497
+35 84   1.000000
+35 86   0.022222
+35 88  -1.000000
+36 4   0.031010
+36 89   1.000000
+36 91   0.039363
+36 95  -0.013107
+36 99   0.004754
+36 101  -1.000000
+37 4   0.031010
+37 90   1.000000
+37 92   0.039363
+37 96  -0.013107
+37 100   0.004754
+37 102  -1.000000
+38 4   0.128990
+38 91   0.078885
+38 93   1.000000
+38 95   0.058415
+38 99  -0.008310
+38 101  -1.000000
+39 4   0.128990
+39 92   0.078885
+39 94   1.000000
+39 96   0.058415
+39 100  -0.008310
+39 102  -1.000000
+40 4   0.200000
+40 91   0.075281
+40 95   0.102497
+40 97   1.000000
+40 99   0.022222
+40 101  -1.000000
+41 4   0.200000
+41 92   0.075281
+41 96   0.102497
+41 98   1.000000
+41 100   0.022222
+41 102  -1.000000
+42 4   0.031010
+42 103   1.000000
+42 105   0.039363
+42 109  -0.013107
+42 113   0.004754
+42 115  -1.000000
+43 4   0.031010
+43 104   1.000000
+43 106   0.039363
+43 110  -0.013107
+43 114   0.004754
+43 116  -1.000000
+44 4   0.128990
+44 105   0.078885
+44 107   1.000000
+44 109   0.058415
+44 113  -0.008310
+44 115  -1.000000
+45 4   0.128990
+45 106   0.078885
+45 108   1.000000
+45 110   0.058415
+45 114  -0.008310
+45 116  -1.000000
+46 4   0.200000
+46 105   0.075281
+46 109   0.102497
+46 111   1.000000
+46 113   0.022222
+46 115  -1.000000
+47 4   0.200000
+47 106   0.075281
+47 110   0.102497
+47 112   1.000000
+47 114   0.022222
+47 116  -1.000000
+48 4   0.031010
+48 117   1.000000
+48 119   0.039363
+48 123  -0.013107
+48 127   0.004754
+48 129  -1.000000
+49 4   0.031010
+49 118   1.000000
+49 120   0.039363
+49 124  -0.013107
+49 128   0.004754
+49 130  -1.000000
+50 4   0.128990
+50 119   0.078885
+50 121   1.000000
+50 123   0.058415
+50 127  -0.008310
+50 129  -1.000000
+51 4   0.128990
+51 120   0.078885
+51 122   1.000000
+51 124   0.058415
+51 128  -0.008310
+51 130  -1.000000
+52 4   0.200000
+52 119   0.075281
+52 123   0.102497
+52 125   1.000000
+52 127   0.022222
+52 129  -1.000000
+53 4   0.200000
+53 120   0.075281
+53 124   0.102497
+53 126   1.000000
+53 128   0.022222
+53 130  -1.000000
+54 4   0.031010
+54 131   1.000000
+54 133   0.039363
+54 137  -0.013107
+54 141   0.004754
+54 143  -1.000000
+55 4   0.031010
+55 132   1.000000
+55 134   0.039363
+55 138  -0.013107
+55 142   0.004754
+55 144  -1.000000
+56 4   0.128990
+56 133   0.078885
+56 135   1.000000
+56 137   0.058415
+56 141  -0.008310
+56 143  -1.000000
+57 4   0.128990
+57 134   0.078885
+57 136   1.000000
+57 138   0.058415
+57 142  -0.008310
+57 144  -1.000000
+58 4   0.200000
+58 133   0.075281
+58 137   0.102497
+58 139   1.000000
+58 141   0.022222
+58 143  -1.000000
+59 4   0.200000
+59 134   0.075281
+59 138   0.102497
+59 140   1.000000
+59 142   0.022222
+59 144  -1.000000
+60 4   0.031010
+60 145   1.000000
+60 147   0.039363
+60 151  -0.013107
+60 155   0.004754
+60 157  -1.000000
+61 4   0.031010
+61 146   1.000000
+61 148   0.039363
+61 152  -0.013107
+61 156   0.004754
+61 158  -1.000000
+62 4   0.128990
+62 147   0.078885
+62 149   1.000000
+62 151   0.058415
+62 155  -0.008310
+62 157  -1.000000
+63 4   0.128990
+63 148   0.078885
+63 150   1.000000
+63 152   0.058415
+63 156  -0.008310
+63 158  -1.000000
+64 4   0.200000
+64 147   0.075281
+64 151   0.102497
+64 153   1.000000
+64 155   0.022222
+64 157  -1.000000
+65 4   0.200000
+65 148   0.075281
+65 152   0.102497
+65 154   1.000000
+65 156   0.022222
+65 158  -1.000000
+66 4   0.031010
+66 159   1.000000
+66 161   0.039363
+66 165  -0.013107
+66 169   0.004754
+66 171  -1.000000
+67 4   0.031010
+67 160   1.000000
+67 162   0.039363
+67 166  -0.013107
+67 170   0.004754
+67 172  -1.000000
+68 4   0.128990
+68 161   0.078885
+68 163   1.000000
+68 165   0.058415
+68 169  -0.008310
+68 171  -1.000000
+69 4   0.128990
+69 162   0.078885
+69 164   1.000000
+69 166   0.058415
+69 170  -0.008310
+69 172  -1.000000
+70 4   0.200000
+70 161   0.075281
+70 165   0.102497
+70 167   1.000000
+70 169   0.022222
+70 171  -1.000000
+71 4   0.200000
+71 162   0.075281
+71 166   0.102497
+71 168   1.000000
+71 170   0.022222
+71 172  -1.000000
+72 4   0.031010
+72 173   1.000000
+72 175   0.039363
+72 179  -0.013107
+72 183   0.004754
+72 185  -1.000000
+73 4   0.031010
+73 174   1.000000
+73 176   0.039363
+73 180  -0.013107
+73 184   0.004754
+73 186  -1.000000
+74 4   0.128990
+74 175   0.078885
+74 177   1.000000
+74 179   0.058415
+74 183  -0.008310
+74 185  -1.000000
+75 4   0.128990
+75 176   0.078885
+75 178   1.000000
+75 180   0.058415
+75 184  -0.008310
+75 186  -1.000000
+76 4   0.200000
+76 175   0.075281
+76 179   0.102497
+76 181   1.000000
+76 183   0.022222
+76 185  -1.000000
+77 4   0.200000
+77 176   0.075281
+77 180   0.102497
+77 182   1.000000
+77 184   0.022222
+77 186  -1.000000
+78 4   0.031010
+78 187   1.000000
+78 189   0.039363
+78 193  -0.013107
+78 197   0.004754
+78 199  -1.000000
+79 4   0.031010
+79 188   1.000000
+79 190   0.039363
+79 194  -0.013107
+79 198   0.004754
+79 200  -1.000000
+80 4   0.128990
+80 189   0.078885
+80 191   1.000000
+80 193   0.058415
+80 197  -0.008310
+80 199  -1.000000
+81 4   0.128990
+81 190   0.078885
+81 192   1.000000
+81 194   0.058415
+81 198  -0.008310
+81 200  -1.000000
+82 4   0.200000
+82 189   0.075281
+82 193   0.102497
+82 195   1.000000
+82 197   0.022222
+82 199  -1.000000
+83 4   0.200000
+83 190   0.075281
+83 194   0.102497
+83 196   1.000000
+83 198   0.022222
+83 200  -1.000000
+84 4   0.031010
+84 201   1.000000
+84 203   0.039363
+84 207  -0.013107
+84 211   0.004754
+84 213  -1.000000
+85 4   0.031010
+85 202   1.000000
+85 204   0.039363
+85 208  -0.013107
+85 212   0.004754
+85 214  -1.000000
+86 4   0.128990
+86 203   0.078885
+86 205   1.000000
+86 207   0.058415
+86 211  -0.008310
+86 213  -1.000000
+87 4   0.128990
+87 204   0.078885
+87 206   1.000000
+87 208   0.058415
+87 212  -0.008310
+87 214  -1.000000
+88 4   0.200000
+88 203   0.075281
+88 207   0.102497
+88 209   1.000000
+88 211   0.022222
+88 213  -1.000000
+89 4   0.200000
+89 204   0.075281
+89 208   0.102497
+89 210   1.000000
+89 212   0.022222
+89 214  -1.000000
+90 4   0.031010
+90 215   1.000000
+90 217   0.039363
+90 221  -0.013107
+90 225   0.004754
+90 227  -1.000000
+91 4   0.031010
+91 216   1.000000
+91 218   0.039363
+91 222  -0.013107
+91 226   0.004754
+91 228  -1.000000
+92 4   0.128990
+92 217   0.078885
+92 219   1.000000
+92 221   0.058415
+92 225  -0.008310
+92 227  -1.000000
+93 4   0.128990
+93 218   0.078885
+93 220   1.000000
+93 222   0.058415
+93 226  -0.008310
+93 228  -1.000000
+94 4   0.200000
+94 217   0.075281
+94 221   0.102497
+94 223   1.000000
+94 225   0.022222
+94 227  -1.000000
+95 4   0.200000
+95 218   0.075281
+95 222   0.102497
+95 224   1.000000
+95 226   0.022222
+95 228  -1.000000
+96 4   0.031010
+96 229   1.000000
+96 231   0.039363
+96 235  -0.013107
+96 239   0.004754
+96 241  -1.000000
+97 4   0.031010
+97 230   1.000000
+97 232   0.039363
+97 236  -0.013107
+97 240   0.004754
+97 242  -1.000000
+98 4   0.128990
+98 231   0.078885
+98 233   1.000000
+98 235   0.058415
+98 239  -0.008310
+98 241  -1.000000
+99 4   0.128990
+99 232   0.078885
+99 234   1.000000
+99 236   0.058415
+99 240  -0.008310
+99 242  -1.000000
+100 4   0.200000
+100 231   0.075281
+100 235   0.102497
+100 237   1.000000
+100 239   0.022222
+100 241  -1.000000
+101 4   0.200000
+101 232   0.075281
+101 236   0.102497
+101 238   1.000000
+101 240   0.022222
+101 242  -1.000000
+102 4   0.031010
+102 243   1.000000
+102 245   0.039363
+102 249  -0.013107
+102 253   0.004754
+102 255  -1.000000
+103 4   0.031010
+103 244   1.000000
+103 246   0.039363
+103 250  -0.013107
+103 254   0.004754
+103 256  -1.000000
+104 4   0.128990
+104 245   0.078885
+104 247   1.000000
+104 249   0.058415
+104 253  -0.008310
+104 255  -1.000000
+105 4   0.128990
+105 246   0.078885
+105 248   1.000000
+105 250   0.058415
+105 254  -0.008310
+105 256  -1.000000
+106 4   0.200000
+106 245   0.075281
+106 249   0.102497
+106 251   1.000000
+106 253   0.022222
+106 255  -1.000000
+107 4   0.200000
+107 246   0.075281
+107 250   0.102497
+107 252   1.000000
+107 254   0.022222
+107 256  -1.000000
+108 4   0.031010
+108 257   1.000000
+108 259   0.039363
+108 263  -0.013107
+108 267   0.004754
+108 269  -1.000000
+109 4   0.031010
+109 258   1.000000
+109 260   0.039363
+109 264  -0.013107
+109 268   0.004754
+109 270  -1.000000
+110 4   0.128990
+110 259   0.078885
+110 261   1.000000
+110 263   0.058415
+110 267  -0.008310
+110 269  -1.000000
+111 4   0.128990
+111 260   0.078885
+111 262   1.000000
+111 264   0.058415
+111 268  -0.008310
+111 270  -1.000000
+112 4   0.200000
+112 259   0.075281
+112 263   0.102497
+112 265   1.000000
+112 267   0.022222
+112 269  -1.000000
+113 4   0.200000
+113 260   0.075281
+113 264   0.102497
+113 266   1.000000
+113 268   0.022222
+113 270  -1.000000
+114 4   0.031010
+114 271   1.000000
+114 273   0.039363
+114 277  -0.013107
+114 281   0.004754
+114 283  -1.000000
+115 4   0.031010
+115 272   1.000000
+115 274   0.039363
+115 278  -0.013107
+115 282   0.004754
+115 284  -1.000000
+116 4   0.128990
+116 273   0.078885
+116 275   1.000000
+116 277   0.058415
+116 281  -0.008310
+116 283  -1.000000
+117 4   0.128990
+117 274   0.078885
+117 276   1.000000
+117 278   0.058415
+117 282  -0.008310
+117 284  -1.000000
+118 4   0.200000
+118 273   0.075281
+118 277   0.102497
+118 279   1.000000
+118 281   0.022222
+118 283  -1.000000
+119 4   0.200000
+119 274   0.075281
+119 278   0.102497
+119 280   1.000000
+119 282   0.022222
+119 284  -1.000000
+120 4   0.031010
+120 285   1.000000
+120 287   0.039363
+120 291  -0.013107
+120 295   0.004754
+120 297  -1.000000
+121 4   0.031010
+121 286   1.000000
+121 288   0.039363
+121 292  -0.013107
+121 296   0.004754
+121 298  -1.000000
+122 4   0.128990
+122 287   0.078885
+122 289   1.000000
+122 291   0.058415
+122 295  -0.008310
+122 297  -1.000000
+123 4   0.128990
+123 288   0.078885
+123 290   1.000000
+123 292   0.058415
+123 296  -0.008310
+123 298  -1.000000
+124 4   0.200000
+124 287   0.075281
+124 291   0.102497
+124 293   1.000000
+124 295   0.022222
+124 297  -1.000000
+125 4   0.200000
+125 288   0.075281
+125 292   0.102497
+125 294   1.000000
+125 296   0.022222
+125 298  -1.000000
+126 4   0.031010
+126 299   1.000000
+126 301   0.039363
+126 305  -0.013107
+126 309   0.004754
+126 311  -1.000000
+127 4   0.031010
+127 300   1.000000
+127 302   0.039363
+127 306  -0.013107
+127 310   0.004754
+127 312  -1.000000
+128 4   0.128990
+128 301   0.078885
+128 303   1.000000
+128 305   0.058415
+128 309  -0.008310
+128 311  -1.000000
+129 4   0.128990
+129 302   0.078885
+129 304   1.000000
+129 306   0.058415
+129 310  -0.008310
+129 312  -1.000000
+130 4   0.200000
+130 301   0.075281
+130 305   0.102497
+130 307   1.000000
+130 309   0.022222
+130 311  -1.000000
+131 4   0.200000
+131 302   0.075281
+131 306   0.102497
+131 308   1.000000
+131 310   0.022222
+131 312  -1.000000
+132 4   0.031010
+132 313   1.000000
+132 315   0.039363
+132 319  -0.013107
+132 323   0.004754
+132 325  -1.000000
+133 4   0.031010
+133 314   1.000000
+133 316   0.039363
+133 320  -0.013107
+133 324   0.004754
+133 326  -1.000000
+134 4   0.128990
+134 315   0.078885
+134 317   1.000000
+134 319   0.058415
+134 323  -0.008310
+134 325  -1.000000
+135 4   0.128990
+135 316   0.078885
+135 318   1.000000
+135 320   0.058415
+135 324  -0.008310
+135 326  -1.000000
+136 4   0.200000
+136 315   0.075281
+136 319   0.102497
+136 321   1.000000
+136 323   0.022222
+136 325  -1.000000
+137 4   0.200000
+137 316   0.075281
+137 320   0.102497
+137 322   1.000000
+137 324   0.022222
+137 326  -1.000000
+138 4   0.031010
+138 327   1.000000
+138 329   0.039363
+138 333  -0.013107
+138 337   0.004754
+138 339  -1.000000
+139 4   0.031010
+139 328   1.000000
+139 330   0.039363
+139 334  -0.013107
+139 338   0.004754
+139 340  -1.000000
+140 4   0.128990
+140 329   0.078885
+140 331   1.000000
+140 333   0.058415
+140 337  -0.008310
+140 339  -1.000000
+141 4   0.128990
+141 330   0.078885
+141 332   1.000000
+141 334   0.058415
+141 338  -0.008310
+141 340  -1.000000
+142 4   0.200000
+142 329   0.075281
+142 333   0.102497
+142 335   1.000000
+142 337   0.022222
+142 339  -1.000000
+143 4   0.200000
+143 330   0.075281
+143 334   0.102497
+143 336   1.000000
+143 338   0.022222
+143 340  -1.000000
+144 4   0.031010
+144 341   1.000000
+144 343   0.039363
+144 347  -0.013107
+144 351   0.004754
+144 353  -1.000000
+145 4   0.031010
+145 342   1.000000
+145 344   0.039363
+145 348  -0.013107
+145 352   0.004754
+145 354  -1.000000
+146 4   0.128990
+146 343   0.078885
+146 345   1.000000
+146 347   0.058415
+146 351  -0.008310
+146 353  -1.000000
+147 4   0.128990
+147 344   0.078885
+147 346   1.000000
+147 348   0.058415
+147 352  -0.008310
+147 354  -1.000000
+148 4   0.200000
+148 343   0.075281
+148 347   0.102497
+148 349   1.000000
+148 351   0.022222
+148 353  -1.000000
+149 4   0.200000
+149 344   0.075281
+149 348   0.102497
+149 350   1.000000
+149 352   0.022222
+149 354  -1.000000
+150 4   0.031010
+150 355   1.000000
+150 357   0.039363
+150 361  -0.013107
+150 365   0.004754
+150 367  -1.000000
+151 4   0.031010
+151 356   1.000000
+151 358   0.039363
+151 362  -0.013107
+151 366   0.004754
+151 368  -1.000000
+152 4   0.128990
+152 357   0.078885
+152 359   1.000000
+152 361   0.058415
+152 365  -0.008310
+152 367  -1.000000
+153 4   0.128990
+153 358   0.078885
+153 360   1.000000
+153 362   0.058415
+153 366  -0.008310
+153 368  -1.000000
+154 4   0.200000
+154 357   0.075281
+154 361   0.102497
+154 363   1.000000
+154 365   0.022222
+154 367  -1.000000
+155 4   0.200000
+155 358   0.075281
+155 362   0.102497
+155 364   1.000000
+155 366   0.022222
+155 368  -1.000000
+156 4   0.031010
+156 369   1.000000
+156 371   0.039363
+156 375  -0.013107
+156 379   0.004754
+156 381  -1.000000
+157 4   0.031010
+157 370   1.000000
+157 372   0.039363
+157 376  -0.013107
+157 380   0.004754
+157 382  -1.000000
+158 4   0.128990
+158 371   0.078885
+158 373   1.000000
+158 375   0.058415
+158 379  -0.008310
+158 381  -1.000000
+159 4   0.128990
+159 372   0.078885
+159 374   1.000000
+159 376   0.058415
+159 380  -0.008310
+159 382  -1.000000
+160 4   0.200000
+160 371   0.075281
+160 375   0.102497
+160 377   1.000000
+160 379   0.022222
+160 381  -1.000000
+161 4   0.200000
+161 372   0.075281
+161 376   0.102497
+161 378   1.000000
+161 380   0.022222
+161 382  -1.000000
+162 4   0.031010
+162 383   1.000000
+162 385   0.039363
+162 389  -0.013107
+162 393   0.004754
+162 395  -1.000000
+163 4   0.031010
+163 384   1.000000
+163 386   0.039363
+163 390  -0.013107
+163 394   0.004754
+163 396  -1.000000
+164 4   0.128990
+164 385   0.078885
+164 387   1.000000
+164 389   0.058415
+164 393  -0.008310
+164 395  -1.000000
+165 4   0.128990
+165 386   0.078885
+165 388   1.000000
+165 390   0.058415
+165 394  -0.008310
+165 396  -1.000000
+166 4   0.200000
+166 385   0.075281
+166 389   0.102497
+166 391   1.000000
+166 393   0.022222
+166 395  -1.000000
+167 4   0.200000
+167 386   0.075281
+167 390   0.102497
+167 392   1.000000
+167 394   0.022222
+167 396  -1.000000
+168 4   0.031010
+168 397   1.000000
+168 399   0.039363
+168 403  -0.013107
+168 407   0.004754
+168 409  -1.000000
+169 4   0.031010
+169 398   1.000000
+169 400   0.039363
+169 404  -0.013107
+169 408   0.004754
+169 410  -1.000000
+170 4   0.128990
+170 399   0.078885
+170 401   1.000000
+170 403   0.058415
+170 407  -0.008310
+170 409  -1.000000
+171 4   0.128990
+171 400   0.078885
+171 402   1.000000
+171 404   0.058415
+171 408  -0.008310
+171 410  -1.000000
+172 4   0.200000
+172 399   0.075281
+172 403   0.102497
+172 405   1.000000
+172 407   0.022222
+172 409  -1.000000
+173 4   0.200000
+173 400   0.075281
+173 404   0.102497
+173 406   1.000000
+173 408   0.022222
+173 410  -1.000000
+174 4   0.031010
+174 411   1.000000
+174 413   0.039363
+174 417  -0.013107
+174 421   0.004754
+174 423  -1.000000
+175 4   0.031010
+175 412   1.000000
+175 414   0.039363
+175 418  -0.013107
+175 422   0.004754
+175 424  -1.000000
+176 4   0.128990
+176 413   0.078885
+176 415   1.000000
+176 417   0.058415
+176 421  -0.008310
+176 423  -1.000000
+177 4   0.128990
+177 414   0.078885
+177 416   1.000000
+177 418   0.058415
+177 422  -0.008310
+177 424  -1.000000
+178 4   0.200000
+178 413   0.075281
+178 417   0.102497
+178 419   1.000000
+178 421   0.022222
+178 423  -1.000000
+179 4   0.200000
+179 414   0.075281
+179 418   0.102497
+179 420   1.000000
+179 422   0.022222
+179 424  -1.000000
+180 4   0.031010
+180 425   1.000000
+180 427   0.039363
+180 431  -0.013107
+180 435   0.004754
+180 437  -1.000000
+181 4   0.031010
+181 426   1.000000
+181 428   0.039363
+181 432  -0.013107
+181 436   0.004754
+181 438  -1.000000
+182 4   0.128990
+182 427   0.078885
+182 429   1.000000
+182 431   0.058415
+182 435  -0.008310
+182 437  -1.000000
+183 4   0.128990
+183 428   0.078885
+183 430   1.000000
+183 432   0.058415
+183 436  -0.008310
+183 438  -1.000000
+184 4   0.200000
+184 427   0.075281
+184 431   0.102497
+184 433   1.000000
+184 435   0.022222
+184 437  -1.000000
+185 4   0.200000
+185 428   0.075281
+185 432   0.102497
+185 434   1.000000
+185 436   0.022222
+185 438  -1.000000
+186 4   0.031010
+186 439   1.000000
+186 441   0.039363
+186 445  -0.013107
+186 449   0.004754
+186 451  -1.000000
+187 4   0.031010
+187 440   1.000000
+187 442   0.039363
+187 446  -0.013107
+187 450   0.004754
+187 452  -1.000000
+188 4   0.128990
+188 441   0.078885
+188 443   1.000000
+188 445   0.058415
+188 449  -0.008310
+188 451  -1.000000
+189 4   0.128990
+189 442   0.078885
+189 444   1.000000
+189 446   0.058415
+189 450  -0.008310
+189 452  -1.000000
+190 4   0.200000
+190 441   0.075281
+190 445   0.102497
+190 447   1.000000
+190 449   0.022222
+190 451  -1.000000
+191 4   0.200000
+191 442   0.075281
+191 446   0.102497
+191 448   1.000000
+191 450   0.022222
+191 452  -1.000000
+192 4   0.031010
+192 453   1.000000
+192 455   0.039363
+192 459  -0.013107
+192 463   0.004754
+192 465  -1.000000
+193 4   0.031010
+193 454   1.000000
+193 456   0.039363
+193 460  -0.013107
+193 464   0.004754
+193 466  -1.000000
+194 4   0.128990
+194 455   0.078885
+194 457   1.000000
+194 459   0.058415
+194 463  -0.008310
+194 465  -1.000000
+195 4   0.128990
+195 456   0.078885
+195 458   1.000000
+195 460   0.058415
+195 464  -0.008310
+195 466  -1.000000
+196 4   0.200000
+196 455   0.075281
+196 459   0.102497
+196 461   1.000000
+196 463   0.022222
+196 465  -1.000000
+197 4   0.200000
+197 456   0.075281
+197 460   0.102497
+197 462   1.000000
+197 464   0.022222
+197 466  -1.000000
+198 4   0.031010
+198 467   1.000000
+198 469   0.039363
+198 473  -0.013107
+198 477   0.004754
+198 479  -1.000000
+199 4   0.031010
+199 468   1.000000
+199 470   0.039363
+199 474  -0.013107
+199 478   0.004754
+199 480  -1.000000
+200 4   0.128990
+200 469   0.078885
+200 471   1.000000
+200 473   0.058415
+200 477  -0.008310
+200 479  -1.000000
+201 4   0.128990
+201 470   0.078885
+201 472   1.000000
+201 474   0.058415
+201 478  -0.008310
+201 480  -1.000000
+202 4   0.200000
+202 469   0.075281
+202 473   0.102497
+202 475   1.000000
+202 477   0.022222
+202 479  -1.000000
+203 4   0.200000
+203 470   0.075281
+203 474   0.102497
+203 476   1.000000
+203 478   0.022222
+203 480  -1.000000
+204 4   0.031010
+204 481   1.000000
+204 483   0.039363
+204 487  -0.013107
+204 491   0.004754
+204 493  -1.000000
+205 4   0.031010
+205 482   1.000000
+205 484   0.039363
+205 488  -0.013107
+205 492   0.004754
+205 494  -1.000000
+206 4   0.128990
+206 483   0.078885
+206 485   1.000000
+206 487   0.058415
+206 491  -0.008310
+206 493  -1.000000
+207 4   0.128990
+207 484   0.078885
+207 486   1.000000
+207 488   0.058415
+207 492  -0.008310
+207 494  -1.000000
+208 4   0.200000
+208 483   0.075281
+208 487   0.102497
+208 489   1.000000
+208 491   0.022222
+208 493  -1.000000
+209 4   0.200000
+209 484   0.075281
+209 488   0.102497
+209 490   1.000000
+209 492   0.022222
+209 494  -1.000000
+210 4   0.031010
+210 495   1.000000
+210 497   0.039363
+210 501  -0.013107
+210 505   0.004754
+210 507  -1.000000
+211 4   0.031010
+211 496   1.000000
+211 498   0.039363
+211 502  -0.013107
+211 506   0.004754
+211 508  -1.000000
+212 4   0.128990
+212 497   0.078885
+212 499   1.000000
+212 501   0.058415
+212 505  -0.008310
+212 507  -1.000000
+213 4   0.128990
+213 498   0.078885
+213 500   1.000000
+213 502   0.058415
+213 506  -0.008310
+213 508  -1.000000
+214 4   0.200000
+214 497   0.075281
+214 501   0.102497
+214 503   1.000000
+214 505   0.022222
+214 507  -1.000000
+215 4   0.200000
+215 498   0.075281
+215 502   0.102497
+215 504   1.000000
+215 506   0.022222
+215 508  -1.000000
+216 4   0.031010
+216 509   1.000000
+216 511   0.039363
+216 515  -0.013107
+216 519   0.004754
+216 521  -1.000000
+217 4   0.031010
+217 510   1.000000
+217 512   0.039363
+217 516  -0.013107
+217 520   0.004754
+217 522  -1.000000
+218 4   0.128990
+218 511   0.078885
+218 513   1.000000
+218 515   0.058415
+218 519  -0.008310
+218 521  -1.000000
+219 4   0.128990
+219 512   0.078885
+219 514   1.000000
+219 516   0.058415
+219 520  -0.008310
+219 522  -1.000000
+220 4   0.200000
+220 511   0.075281
+220 515   0.102497
+220 517   1.000000
+220 519   0.022222
+220 521  -1.000000
+221 4   0.200000
+221 512   0.075281
+221 516   0.102497
+221 518   1.000000
+221 520   0.022222
+221 522  -1.000000
+222 4   0.031010
+222 523   1.000000
+222 525   0.039363
+222 529  -0.013107
+222 533   0.004754
+222 535  -1.000000
+223 4   0.031010
+223 524   1.000000
+223 526   0.039363
+223 530  -0.013107
+223 534   0.004754
+223 536  -1.000000
+224 4   0.128990
+224 525   0.078885
+224 527   1.000000
+224 529   0.058415
+224 533  -0.008310
+224 535  -1.000000
+225 4   0.128990
+225 526   0.078885
+225 528   1.000000
+225 530   0.058415
+225 534  -0.008310
+225 536  -1.000000
+226 4   0.200000
+226 525   0.075281
+226 529   0.102497
+226 531   1.000000
+226 533   0.022222
+226 535  -1.000000
+227 4   0.200000
+227 526   0.075281
+227 530   0.102497
+227 532   1.000000
+227 534   0.022222
+227 536  -1.000000
+228 4   0.031010
+228 537   1.000000
+228 539   0.039363
+228 543  -0.013107
+228 547   0.004754
+228 549  -1.000000
+229 4   0.031010
+229 538   1.000000
+229 540   0.039363
+229 544  -0.013107
+229 548   0.004754
+229 550  -1.000000
+230 4   0.128990
+230 539   0.078885
+230 541   1.000000
+230 543   0.058415
+230 547  -0.008310
+230 549  -1.000000
+231 4   0.128990
+231 540   0.078885
+231 542   1.000000
+231 544   0.058415
+231 548  -0.008310
+231 550  -1.000000
+232 4   0.200000
+232 539   0.075281
+232 543   0.102497
+232 545   1.000000
+232 547   0.022222
+232 549  -1.000000
+233 4   0.200000
+233 540   0.075281
+233 544   0.102497
+233 546   1.000000
+233 548   0.022222
+233 550  -1.000000
+234 4   0.031010
+234 551   1.000000
+234 553   0.039363
+234 557  -0.013107
+234 561   0.004754
+234 563  -1.000000
+235 4   0.031010
+235 552   1.000000
+235 554   0.039363
+235 558  -0.013107
+235 562   0.004754
+235 564  -1.000000
+236 4   0.128990
+236 553   0.078885
+236 555   1.000000
+236 557   0.058415
+236 561  -0.008310
+236 563  -1.000000
+237 4   0.128990
+237 554   0.078885
+237 556   1.000000
+237 558   0.058415
+237 562  -0.008310
+237 564  -1.000000
+238 4   0.200000
+238 553   0.075281
+238 557   0.102497
+238 559   1.000000
+238 561   0.022222
+238 563  -1.000000
+239 4   0.200000
+239 554   0.075281
+239 558   0.102497
+239 560   1.000000
+239 562   0.022222
+239 564  -1.000000
+240 4   0.031010
+240 565   1.000000
+240 567   0.039363
+240 571  -0.013107
+240 575   0.004754
+240 577  -1.000000
+241 4   0.031010
+241 566   1.000000
+241 568   0.039363
+241 572  -0.013107
+241 576   0.004754
+241 578  -1.000000
+242 4   0.128990
+242 567   0.078885
+242 569   1.000000
+242 571   0.058415
+242 575  -0.008310
+242 577  -1.000000
+243 4   0.128990
+243 568   0.078885
+243 570   1.000000
+243 572   0.058415
+243 576  -0.008310
+243 578  -1.000000
+244 4   0.200000
+244 567   0.075281
+244 571   0.102497
+244 573   1.000000
+244 575   0.022222
+244 577  -1.000000
+245 4   0.200000
+245 568   0.075281
+245 572   0.102497
+245 574   1.000000
+245 576   0.022222
+245 578  -1.000000
+246 4   0.031010
+246 579   1.000000
+246 581   0.039363
+246 585  -0.013107
+246 589   0.004754
+246 591  -1.000000
+247 4   0.031010
+247 580   1.000000
+247 582   0.039363
+247 586  -0.013107
+247 590   0.004754
+247 592  -1.000000
+248 4   0.128990
+248 581   0.078885
+248 583   1.000000
+248 585   0.058415
+248 589  -0.008310
+248 591  -1.000000
+249 4   0.128990
+249 582   0.078885
+249 584   1.000000
+249 586   0.058415
+249 590  -0.008310
+249 592  -1.000000
+250 4   0.200000
+250 581   0.075281
+250 585   0.102497
+250 587   1.000000
+250 589   0.022222
+250 591  -1.000000
+251 4   0.200000
+251 582   0.075281
+251 586   0.102497
+251 588   1.000000
+251 590   0.022222
+251 592  -1.000000
+252 4   0.031010
+252 593   1.000000
+252 595   0.039363
+252 599  -0.013107
+252 603   0.004754
+252 605  -1.000000
+253 4   0.031010
+253 594   1.000000
+253 596   0.039363
+253 600  -0.013107
+253 604   0.004754
+253 606  -1.000000
+254 4   0.128990
+254 595   0.078885
+254 597   1.000000
+254 599   0.058415
+254 603  -0.008310
+254 605  -1.000000
+255 4   0.128990
+255 596   0.078885
+255 598   1.000000
+255 600   0.058415
+255 604  -0.008310
+255 606  -1.000000
+256 4   0.200000
+256 595   0.075281
+256 599   0.102497
+256 601   1.000000
+256 603   0.022222
+256 605  -1.000000
+257 4   0.200000
+257 596   0.075281
+257 600   0.102497
+257 602   1.000000
+257 604   0.022222
+257 606  -1.000000
+258 4   0.031010
+258 607   1.000000
+258 609   0.039363
+258 613  -0.013107
+258 617   0.004754
+258 619  -1.000000
+259 4   0.031010
+259 608   1.000000
+259 610   0.039363
+259 614  -0.013107
+259 618   0.004754
+259 620  -1.000000
+260 4   0.128990
+260 609   0.078885
+260 611   1.000000
+260 613   0.058415
+260 617  -0.008310
+260 619  -1.000000
+261 4   0.128990
+261 610   0.078885
+261 612   1.000000
+261 614   0.058415
+261 618  -0.008310
+261 620  -1.000000
+262 4   0.200000
+262 609   0.075281
+262 613   0.102497
+262 615   1.000000
+262 617   0.022222
+262 619  -1.000000
+263 4   0.200000
+263 610   0.075281
+263 614   0.102497
+263 616   1.000000
+263 618   0.022222
+263 620  -1.000000
+264 4   0.031010
+264 621   1.000000
+264 623   0.039363
+264 627  -0.013107
+264 631   0.004754
+264 633  -1.000000
+265 4   0.031010
+265 622   1.000000
+265 624   0.039363
+265 628  -0.013107
+265 632   0.004754
+265 634  -1.000000
+266 4   0.128990
+266 623   0.078885
+266 625   1.000000
+266 627   0.058415
+266 631  -0.008310
+266 633  -1.000000
+267 4   0.128990
+267 624   0.078885
+267 626   1.000000
+267 628   0.058415
+267 632  -0.008310
+267 634  -1.000000
+268 4   0.200000
+268 623   0.075281
+268 627   0.102497
+268 629   1.000000
+268 631   0.022222
+268 633  -1.000000
+269 4   0.200000
+269 624   0.075281
+269 628   0.102497
+269 630   1.000000
+269 632   0.022222
+269 634  -1.000000
+270 4   0.031010
+270 635   1.000000
+270 637   0.039363
+270 641  -0.013107
+270 645   0.004754
+270 647  -1.000000
+271 4   0.031010
+271 636   1.000000
+271 638   0.039363
+271 642  -0.013107
+271 646   0.004754
+271 648  -1.000000
+272 4   0.128990
+272 637   0.078885
+272 639   1.000000
+272 641   0.058415
+272 645  -0.008310
+272 647  -1.000000
+273 4   0.128990
+273 638   0.078885
+273 640   1.000000
+273 642   0.058415
+273 646  -0.008310
+273 648  -1.000000
+274 4   0.200000
+274 637   0.075281
+274 641   0.102497
+274 643   1.000000
+274 645   0.022222
+274 647  -1.000000
+275 4   0.200000
+275 638   0.075281
+275 642   0.102497
+275 644   1.000000
+275 646   0.022222
+275 648  -1.000000
+276 4   0.031010
+276 649   1.000000
+276 651   0.039363
+276 655  -0.013107
+276 659   0.004754
+276 661  -1.000000
+277 4   0.031010
+277 650   1.000000
+277 652   0.039363
+277 656  -0.013107
+277 660   0.004754
+277 662  -1.000000
+278 4   0.128990
+278 651   0.078885
+278 653   1.000000
+278 655   0.058415
+278 659  -0.008310
+278 661  -1.000000
+279 4   0.128990
+279 652   0.078885
+279 654   1.000000
+279 656   0.058415
+279 660  -0.008310
+279 662  -1.000000
+280 4   0.200000
+280 651   0.075281
+280 655   0.102497
+280 657   1.000000
+280 659   0.022222
+280 661  -1.000000
+281 4   0.200000
+281 652   0.075281
+281 656   0.102497
+281 658   1.000000
+281 660   0.022222
+281 662  -1.000000
+282 4   0.031010
+282 663   1.000000
+282 665   0.039363
+282 669  -0.013107
+282 673   0.004754
+282 675  -1.000000
+283 4   0.031010
+283 664   1.000000
+283 666   0.039363
+283 670  -0.013107
+283 674   0.004754
+283 676  -1.000000
+284 4   0.128990
+284 665   0.078885
+284 667   1.000000
+284 669   0.058415
+284 673  -0.008310
+284 675  -1.000000
+285 4   0.128990
+285 666   0.078885
+285 668   1.000000
+285 670   0.058415
+285 674  -0.008310
+285 676  -1.000000
+286 4   0.200000
+286 665   0.075281
+286 669   0.102497
+286 671   1.000000
+286 673   0.022222
+286 675  -1.000000
+287 4   0.200000
+287 666   0.075281
+287 670   0.102497
+287 672   1.000000
+287 674   0.022222
+287 676  -1.000000
+288 4   0.031010
+288 677   1.000000
+288 679   0.039363
+288 683  -0.013107
+288 687   0.004754
+288 689  -1.000000
+289 4   0.031010
+289 678   1.000000
+289 680   0.039363
+289 684  -0.013107
+289 688   0.004754
+289 690  -1.000000
+290 4   0.128990
+290 679   0.078885
+290 681   1.000000
+290 683   0.058415
+290 687  -0.008310
+290 689  -1.000000
+291 4   0.128990
+291 680   0.078885
+291 682   1.000000
+291 684   0.058415
+291 688  -0.008310
+291 690  -1.000000
+292 4   0.200000
+292 679   0.075281
+292 683   0.102497
+292 685   1.000000
+292 687   0.022222
+292 689  -1.000000
+293 4   0.200000
+293 680   0.075281
+293 684   0.102497
+293 686   1.000000
+293 688   0.022222
+293 690  -1.000000
+294 4   0.031010
+294 691   1.000000
+294 693   0.039363
+294 697  -0.013107
+294 701   0.004754
+294 703  -1.000000
+295 4   0.031010
+295 692   1.000000
+295 694   0.039363
+295 698  -0.013107
+295 702   0.004754
+295 704  -1.000000
+296 4   0.128990
+296 693   0.078885
+296 695   1.000000
+296 697   0.058415
+296 701  -0.008310
+296 703  -1.000000
+297 4   0.128990
+297 694   0.078885
+297 696   1.000000
+297 698   0.058415
+297 702  -0.008310
+297 704  -1.000000
+298 4   0.200000
+298 693   0.075281
+298 697   0.102497
+298 699   1.000000
+298 701   0.022222
+298 703  -1.000000
+299 4   0.200000
+299 694   0.075281
+299 698   0.102497
+299 700   1.000000
+299 702   0.022222
+299 704  -1.000000
+300 4   0.031010
+300 705   1.000000
+300 707   0.039363
+300 711  -0.013107
+300 715   0.004754
+300 717  -1.000000
+301 4   0.031010
+301 706   1.000000
+301 708   0.039363
+301 712  -0.013107
+301 716   0.004754
+301 718  -1.000000
+302 4   0.128990
+302 707   0.078885
+302 709   1.000000
+302 711   0.058415
+302 715  -0.008310
+302 717  -1.000000
+303 4   0.128990
+303 708   0.078885
+303 710   1.000000
+303 712   0.058415
+303 716  -0.008310
+303 718  -1.000000
+304 4   0.200000
+304 707   0.075281
+304 711   0.102497
+304 713   1.000000
+304 715   0.022222
+304 717  -1.000000
+305 4   0.200000
+305 708   0.075281
+305 712   0.102497
+305 714   1.000000
+305 716   0.022222
+305 718  -1.000000
+306 4   0.031010
+306 719   1.000000
+306 721   0.039363
+306 725  -0.013107
+306 729   0.004754
+306 731  -1.000000
+307 4   0.031010
+307 720   1.000000
+307 722   0.039363
+307 726  -0.013107
+307 730   0.004754
+307 732  -1.000000
+308 4   0.128990
+308 721   0.078885
+308 723   1.000000
+308 725   0.058415
+308 729  -0.008310
+308 731  -1.000000
+309 4   0.128990
+309 722   0.078885
+309 724   1.000000
+309 726   0.058415
+309 730  -0.008310
+309 732  -1.000000
+310 4   0.200000
+310 721   0.075281
+310 725   0.102497
+310 727   1.000000
+310 729   0.022222
+310 731  -1.000000
+311 4   0.200000
+311 722   0.075281
+311 726   0.102497
+311 728   1.000000
+311 730   0.022222
+311 732  -1.000000
+312 4   0.031010
+312 733   1.000000
+312 735   0.039363
+312 739  -0.013107
+312 743   0.004754
+312 745  -1.000000
+313 4   0.031010
+313 734   1.000000
+313 736   0.039363
+313 740  -0.013107
+313 744   0.004754
+313 746  -1.000000
+314 4   0.128990
+314 735   0.078885
+314 737   1.000000
+314 739   0.058415
+314 743  -0.008310
+314 745  -1.000000
+315 4   0.128990
+315 736   0.078885
+315 738   1.000000
+315 740   0.058415
+315 744  -0.008310
+315 746  -1.000000
+316 4   0.200000
+316 735   0.075281
+316 739   0.102497
+316 741   1.000000
+316 743   0.022222
+316 745  -1.000000
+317 4   0.200000
+317 736   0.075281
+317 740   0.102497
+317 742   1.000000
+317 744   0.022222
+317 746  -1.000000
+318 4   0.031010
+318 747   1.000000
+318 749   0.039363
+318 753  -0.013107
+318 757   0.004754
+318 759  -1.000000
+319 4   0.031010
+319 748   1.000000
+319 750   0.039363
+319 754  -0.013107
+319 758   0.004754
+319 760  -1.000000
+320 4   0.128990
+320 749   0.078885
+320 751   1.000000
+320 753   0.058415
+320 757  -0.008310
+320 759  -1.000000
+321 4   0.128990
+321 750   0.078885
+321 752   1.000000
+321 754   0.058415
+321 758  -0.008310
+321 760  -1.000000
+322 4   0.200000
+322 749   0.075281
+322 753   0.102497
+322 755   1.000000
+322 757   0.022222
+322 759  -1.000000
+323 4   0.200000
+323 750   0.075281
+323 754   0.102497
+323 756   1.000000
+323 758   0.022222
+323 760  -1.000000
+324 4   0.031010
+324 761   1.000000
+324 763   0.039363
+324 767  -0.013107
+324 771   0.004754
+324 773  -1.000000
+325 4   0.031010
+325 762   1.000000
+325 764   0.039363
+325 768  -0.013107
+325 772   0.004754
+325 774  -1.000000
+326 4   0.128990
+326 763   0.078885
+326 765   1.000000
+326 767   0.058415
+326 771  -0.008310
+326 773  -1.000000
+327 4   0.128990
+327 764   0.078885
+327 766   1.000000
+327 768   0.058415
+327 772  -0.008310
+327 774  -1.000000
+328 4   0.200000
+328 763   0.075281
+328 767   0.102497
+328 769   1.000000
+328 771   0.022222
+328 773  -1.000000
+329 4   0.200000
+329 764   0.075281
+329 768   0.102497
+329 770   1.000000
+329 772   0.022222
+329 774  -1.000000
+330 4   0.031010
+330 775   1.000000
+330 777   0.039363
+330 781  -0.013107
+330 785   0.004754
+330 787  -1.000000
+331 4   0.031010
+331 776   1.000000
+331 778   0.039363
+331 782  -0.013107
+331 786   0.004754
+331 788  -1.000000
+332 4   0.128990
+332 777   0.078885
+332 779   1.000000
+332 781   0.058415
+332 785  -0.008310
+332 787  -1.000000
+333 4   0.128990
+333 778   0.078885
+333 780   1.000000
+333 782   0.058415
+333 786  -0.008310
+333 788  -1.000000
+334 4   0.200000
+334 777   0.075281
+334 781   0.102497
+334 783   1.000000
+334 785   0.022222
+334 787  -1.000000
+335 4   0.200000
+335 778   0.075281
+335 782   0.102497
+335 784   1.000000
+335 786   0.022222
+335 788  -1.000000
+336 4   0.031010
+336 789   1.000000
+336 791   0.039363
+336 795  -0.013107
+336 799   0.004754
+336 801  -1.000000
+337 4   0.031010
+337 790   1.000000
+337 792   0.039363
+337 796  -0.013107
+337 800   0.004754
+337 802  -1.000000
+338 4   0.128990
+338 791   0.078885
+338 793   1.000000
+338 795   0.058415
+338 799  -0.008310
+338 801  -1.000000
+339 4   0.128990
+339 792   0.078885
+339 794   1.000000
+339 796   0.058415
+339 800  -0.008310
+339 802  -1.000000
+340 4   0.200000
+340 791   0.075281
+340 795   0.102497
+340 797   1.000000
+340 799   0.022222
+340 801  -1.000000
+341 4   0.200000
+341 792   0.075281
+341 796   0.102497
+341 798   1.000000
+341 800   0.022222
+341 802  -1.000000
+342 4   0.031010
+342 803   1.000000
+342 805   0.039363
+342 809  -0.013107
+342 813   0.004754
+342 815  -1.000000
+343 4   0.031010
+343 804   1.000000
+343 806   0.039363
+343 810  -0.013107
+343 814   0.004754
+343 816  -1.000000
+344 4   0.128990
+344 805   0.078885
+344 807   1.000000
+344 809   0.058415
+344 813  -0.008310
+344 815  -1.000000
+345 4   0.128990
+345 806   0.078885
+345 808   1.000000
+345 810   0.058415
+345 814  -0.008310
+345 816  -1.000000
+346 4   0.200000
+346 805   0.075281
+346 809   0.102497
+346 811   1.000000
+346 813   0.022222
+346 815  -1.000000
+347 4   0.200000
+347 806   0.075281
+347 810   0.102497
+347 812   1.000000
+347 814   0.022222
+347 816  -1.000000
+348 4   0.031010
+348 817   1.000000
+348 819   0.039363
+348 823  -0.013107
+348 827   0.004754
+348 829  -1.000000
+349 4   0.031010
+349 818   1.000000
+349 820   0.039363
+349 824  -0.013107
+349 828   0.004754
+349 830  -1.000000
+350 4   0.128990
+350 819   0.078885
+350 821   1.000000
+350 823   0.058415
+350 827  -0.008310
+350 829  -1.000000
+351 4   0.128990
+351 820   0.078885
+351 822   1.000000
+351 824   0.058415
+351 828  -0.008310
+351 830  -1.000000
+352 4   0.200000
+352 819   0.075281
+352 823   0.102497
+352 825   1.000000
+352 827   0.022222
+352 829  -1.000000
+353 4   0.200000
+353 820   0.075281
+353 824   0.102497
+353 826   1.000000
+353 828   0.022222
+353 830  -1.000000
+354 4   0.031010
+354 831   1.000000
+354 833   0.039363
+354 837  -0.013107
+354 841   0.004754
+354 843  -1.000000
+355 4   0.031010
+355 832   1.000000
+355 834   0.039363
+355 838  -0.013107
+355 842   0.004754
+355 844  -1.000000
+356 4   0.128990
+356 833   0.078885
+356 835   1.000000
+356 837   0.058415
+356 841  -0.008310
+356 843  -1.000000
+357 4   0.128990
+357 834   0.078885
+357 836   1.000000
+357 838   0.058415
+357 842  -0.008310
+357 844  -1.000000
+358 4   0.200000
+358 833   0.075281
+358 837   0.102497
+358 839   1.000000
+358 841   0.022222
+358 843  -1.000000
+359 4   0.200000
+359 834   0.075281
+359 838   0.102497
+359 840   1.000000
+359 842   0.022222
+359 844  -1.000000
+360 4   0.031010
+360 845   1.000000
+360 847   0.039363
+360 851  -0.013107
+360 855   0.004754
+360 857  -1.000000
+361 4   0.031010
+361 846   1.000000
+361 848   0.039363
+361 852  -0.013107
+361 856   0.004754
+361 858  -1.000000
+362 4   0.128990
+362 847   0.078885
+362 849   1.000000
+362 851   0.058415
+362 855  -0.008310
+362 857  -1.000000
+363 4   0.128990
+363 848   0.078885
+363 850   1.000000
+363 852   0.058415
+363 856  -0.008310
+363 858  -1.000000
+364 4   0.200000
+364 847   0.075281
+364 851   0.102497
+364 853   1.000000
+364 855   0.022222
+364 857  -1.000000
+365 4   0.200000
+365 848   0.075281
+365 852   0.102497
+365 854   1.000000
+365 856   0.022222
+365 858  -1.000000
+366 4   0.031010
+366 859   1.000000
+366 861   0.039363
+366 865  -0.013107
+366 869   0.004754
+366 871  -1.000000
+367 4   0.031010
+367 860   1.000000
+367 862   0.039363
+367 866  -0.013107
+367 870   0.004754
+367 872  -1.000000
+368 4   0.128990
+368 861   0.078885
+368 863   1.000000
+368 865   0.058415
+368 869  -0.008310
+368 871  -1.000000
+369 4   0.128990
+369 862   0.078885
+369 864   1.000000
+369 866   0.058415
+369 870  -0.008310
+369 872  -1.000000
+370 4   0.200000
+370 861   0.075281
+370 865   0.102497
+370 867   1.000000
+370 869   0.022222
+370 871  -1.000000
+371 4   0.200000
+371 862   0.075281
+371 866   0.102497
+371 868   1.000000
+371 870   0.022222
+371 872  -1.000000
+372 4   0.031010
+372 873   1.000000
+372 875   0.039363
+372 879  -0.013107
+372 883   0.004754
+372 885  -1.000000
+373 4   0.031010
+373 874   1.000000
+373 876   0.039363
+373 880  -0.013107
+373 884   0.004754
+373 886  -1.000000
+374 4   0.128990
+374 875   0.078885
+374 877   1.000000
+374 879   0.058415
+374 883  -0.008310
+374 885  -1.000000
+375 4   0.128990
+375 876   0.078885
+375 878   1.000000
+375 880   0.058415
+375 884  -0.008310
+375 886  -1.000000
+376 4   0.200000
+376 875   0.075281
+376 879   0.102497
+376 881   1.000000
+376 883   0.022222
+376 885  -1.000000
+377 4   0.200000
+377 876   0.075281
+377 880   0.102497
+377 882   1.000000
+377 884   0.022222
+377 886  -1.000000
+378 4   0.031010
+378 887   1.000000
+378 889   0.039363
+378 893  -0.013107
+378 897   0.004754
+378 899  -1.000000
+379 4   0.031010
+379 888   1.000000
+379 890   0.039363
+379 894  -0.013107
+379 898   0.004754
+379 900  -1.000000
+380 4   0.128990
+380 889   0.078885
+380 891   1.000000
+380 893   0.058415
+380 897  -0.008310
+380 899  -1.000000
+381 4   0.128990
+381 890   0.078885
+381 892   1.000000
+381 894   0.058415
+381 898  -0.008310
+381 900  -1.000000
+382 4   0.200000
+382 889   0.075281
+382 893   0.102497
+382 895   1.000000
+382 897   0.022222
+382 899  -1.000000
+383 4   0.200000
+383 890   0.075281
+383 894   0.102497
+383 896   1.000000
+383 898   0.022222
+383 900  -1.000000
+384 4   0.031010
+384 901   1.000000
+384 903   0.039363
+384 907  -0.013107
+384 911   0.004754
+384 913  -1.000000
+385 4   0.031010
+385 902   1.000000
+385 904   0.039363
+385 908  -0.013107
+385 912   0.004754
+385 914  -1.000000
+386 4   0.128990
+386 903   0.078885
+386 905   1.000000
+386 907   0.058415
+386 911  -0.008310
+386 913  -1.000000
+387 4   0.128990
+387 904   0.078885
+387 906   1.000000
+387 908   0.058415
+387 912  -0.008310
+387 914  -1.000000
+388 4   0.200000
+388 903   0.075281
+388 907   0.102497
+388 909   1.000000
+388 911   0.022222
+388 913  -1.000000
+389 4   0.200000
+389 904   0.075281
+389 908   0.102497
+389 910   1.000000
+389 912   0.022222
+389 914  -1.000000
+390 4   0.031010
+390 915   1.000000
+390 917   0.039363
+390 921  -0.013107
+390 925   0.004754
+390 927  -1.000000
+391 4   0.031010
+391 916   1.000000
+391 918   0.039363
+391 922  -0.013107
+391 926   0.004754
+391 928  -1.000000
+392 4   0.128990
+392 917   0.078885
+392 919   1.000000
+392 921   0.058415
+392 925  -0.008310
+392 927  -1.000000
+393 4   0.128990
+393 918   0.078885
+393 920   1.000000
+393 922   0.058415
+393 926  -0.008310
+393 928  -1.000000
+394 4   0.200000
+394 917   0.075281
+394 921   0.102497
+394 923   1.000000
+394 925   0.022222
+394 927  -1.000000
+395 4   0.200000
+395 918   0.075281
+395 922   0.102497
+395 924   1.000000
+395 926   0.022222
+395 928  -1.000000
+396 4   0.031010
+396 929   1.000000
+396 931   0.039363
+396 935  -0.013107
+396 939   0.004754
+396 941  -1.000000
+397 4   0.031010
+397 930   1.000000
+397 932   0.039363
+397 936  -0.013107
+397 940   0.004754
+397 942  -1.000000
+398 4   0.128990
+398 931   0.078885
+398 933   1.000000
+398 935   0.058415
+398 939  -0.008310
+398 941  -1.000000
+399 4   0.128990
+399 932   0.078885
+399 934   1.000000
+399 936   0.058415
+399 940  -0.008310
+399 942  -1.000000
+400 4   0.200000
+400 931   0.075281
+400 935   0.102497
+400 937   1.000000
+400 939   0.022222
+400 941  -1.000000
+401 4   0.200000
+401 932   0.075281
+401 936   0.102497
+401 938   1.000000
+401 940   0.022222
+401 942  -1.000000
+402 4   0.031010
+402 943   1.000000
+402 945   0.039363
+402 949  -0.013107
+402 953   0.004754
+402 955  -1.000000
+403 4   0.031010
+403 944   1.000000
+403 946   0.039363
+403 950  -0.013107
+403 954   0.004754
+403 956  -1.000000
+404 4   0.128990
+404 945   0.078885
+404 947   1.000000
+404 949   0.058415
+404 953  -0.008310
+404 955  -1.000000
+405 4   0.128990
+405 946   0.078885
+405 948   1.000000
+405 950   0.058415
+405 954  -0.008310
+405 956  -1.000000
+406 4   0.200000
+406 945   0.075281
+406 949   0.102497
+406 951   1.000000
+406 953   0.022222
+406 955  -1.000000
+407 4   0.200000
+407 946   0.075281
+407 950   0.102497
+407 952   1.000000
+407 954   0.022222
+407 956  -1.000000
+408 4   0.031010
+408 957   1.000000
+408 959   0.039363
+408 963  -0.013107
+408 967   0.004754
+408 969  -1.000000
+409 4   0.031010
+409 958   1.000000
+409 960   0.039363
+409 964  -0.013107
+409 968   0.004754
+409 970  -1.000000
+410 4   0.128990
+410 959   0.078885
+410 961   1.000000
+410 963   0.058415
+410 967  -0.008310
+410 969  -1.000000
+411 4   0.128990
+411 960   0.078885
+411 962   1.000000
+411 964   0.058415
+411 968  -0.008310
+411 970  -1.000000
+412 4   0.200000
+412 959   0.075281
+412 963   0.102497
+412 965   1.000000
+412 967   0.022222
+412 969  -1.000000
+413 4   0.200000
+413 960   0.075281
+413 964   0.102497
+413 966   1.000000
+413 968   0.022222
+413 970  -1.000000
+414 4   0.031010
+414 971   1.000000
+414 973   0.039363
+414 977  -0.013107
+414 981   0.004754
+414 983  -1.000000
+415 4   0.031010
+415 972   1.000000
+415 974   0.039363
+415 978  -0.013107
+415 982   0.004754
+415 984  -1.000000
+416 4   0.128990
+416 973   0.078885
+416 975   1.000000
+416 977   0.058415
+416 981  -0.008310
+416 983  -1.000000
+417 4   0.128990
+417 974   0.078885
+417 976   1.000000
+417 978   0.058415
+417 982  -0.008310
+417 984  -1.000000
+418 4   0.200000
+418 973   0.075281
+418 977   0.102497
+418 979   1.000000
+418 981   0.022222
+418 983  -1.000000
+419 4   0.200000
+419 974   0.075281
+419 978   0.102497
+419 980   1.000000
+419 982   0.022222
+419 984  -1.000000
+420 4   0.031010
+420 985   1.000000
+420 987   0.039363
+420 991  -0.013107
+420 995   0.004754
+420 997  -1.000000
+421 4   0.031010
+421 986   1.000000
+421 988   0.039363
+421 992  -0.013107
+421 996   0.004754
+421 998  -1.000000
+422 4   0.128990
+422 987   0.078885
+422 989   1.000000
+422 991   0.058415
+422 995  -0.008310
+422 997  -1.000000
+423 4   0.128990
+423 988   0.078885
+423 990   1.000000
+423 992   0.058415
+423 996  -0.008310
+423 998  -1.000000
+424 4   0.200000
+424 987   0.075281
+424 991   0.102497
+424 993   1.000000
+424 995   0.022222
+424 997  -1.000000
+425 4   0.200000
+425 988   0.075281
+425 992   0.102497
+425 994   1.000000
+425 996   0.022222
+425 998  -1.000000
+426 4   0.031010
+426 999   1.000000
+426 1001   0.039363
+426 1005  -0.013107
+426 1009   0.004754
+426 1011  -1.000000
+427 4   0.031010
+427 1000   1.000000
+427 1002   0.039363
+427 1006  -0.013107
+427 1010   0.004754
+427 1012  -1.000000
+428 4   0.128990
+428 1001   0.078885
+428 1003   1.000000
+428 1005   0.058415
+428 1009  -0.008310
+428 1011  -1.000000
+429 4   0.128990
+429 1002   0.078885
+429 1004   1.000000
+429 1006   0.058415
+429 1010  -0.008310
+429 1012  -1.000000
+430 4   0.200000
+430 1001   0.075281
+430 1005   0.102497
+430 1007   1.000000
+430 1009   0.022222
+430 1011  -1.000000
+431 4   0.200000
+431 1002   0.075281
+431 1006   0.102497
+431 1008   1.000000
+431 1010   0.022222
+431 1012  -1.000000
+432 4   0.031010
+432 1013   1.000000
+432 1015   0.039363
+432 1019  -0.013107
+432 1023   0.004754
+432 1025  -1.000000
+433 4   0.031010
+433 1014   1.000000
+433 1016   0.039363
+433 1020  -0.013107
+433 1024   0.004754
+433 1026  -1.000000
+434 4   0.128990
+434 1015   0.078885
+434 1017   1.000000
+434 1019   0.058415
+434 1023  -0.008310
+434 1025  -1.000000
+435 4   0.128990
+435 1016   0.078885
+435 1018   1.000000
+435 1020   0.058415
+435 1024  -0.008310
+435 1026  -1.000000
+436 4   0.200000
+436 1015   0.075281
+436 1019   0.102497
+436 1021   1.000000
+436 1023   0.022222
+436 1025  -1.000000
+437 4   0.200000
+437 1016   0.075281
+437 1020   0.102497
+437 1022   1.000000
+437 1024   0.022222
+437 1026  -1.000000
+438 4   0.031010
+438 1027   1.000000
+438 1029   0.039363
+438 1033  -0.013107
+438 1037   0.004754
+438 1039  -1.000000
+439 4   0.031010
+439 1028   1.000000
+439 1030   0.039363
+439 1034  -0.013107
+439 1038   0.004754
+439 1040  -1.000000
+440 4   0.128990
+440 1029   0.078885
+440 1031   1.000000
+440 1033   0.058415
+440 1037  -0.008310
+440 1039  -1.000000
+441 4   0.128990
+441 1030   0.078885
+441 1032   1.000000
+441 1034   0.058415
+441 1038  -0.008310
+441 1040  -1.000000
+442 4   0.200000
+442 1029   0.075281
+442 1033   0.102497
+442 1035   1.000000
+442 1037   0.022222
+442 1039  -1.000000
+443 4   0.200000
+443 1030   0.075281
+443 1034   0.102497
+443 1036   1.000000
+443 1038   0.022222
+443 1040  -1.000000
+444 4   0.031010
+444 1041   1.000000
+444 1043   0.039363
+444 1047  -0.013107
+444 1051   0.004754
+444 1053  -1.000000
+445 4   0.031010
+445 1042   1.000000
+445 1044   0.039363
+445 1048  -0.013107
+445 1052   0.004754
+445 1054  -1.000000
+446 4   0.128990
+446 1043   0.078885
+446 1045   1.000000
+446 1047   0.058415
+446 1051  -0.008310
+446 1053  -1.000000
+447 4   0.128990
+447 1044   0.078885
+447 1046   1.000000
+447 1048   0.058415
+447 1052  -0.008310
+447 1054  -1.000000
+448 4   0.200000
+448 1043   0.075281
+448 1047   0.102497
+448 1049   1.000000
+448 1051   0.022222
+448 1053  -1.000000
+449 4   0.200000
+449 1044   0.075281
+449 1048   0.102497
+449 1050   1.000000
+449 1052   0.022222
+449 1054  -1.000000
+450 4   0.031010
+450 1055   1.000000
+450 1057   0.039363
+450 1061  -0.013107
+450 1065   0.004754
+450 1067  -1.000000
+451 4   0.031010
+451 1056   1.000000
+451 1058   0.039363
+451 1062  -0.013107
+451 1066   0.004754
+451 1068  -1.000000
+452 4   0.128990
+452 1057   0.078885
+452 1059   1.000000
+452 1061   0.058415
+452 1065  -0.008310
+452 1067  -1.000000
+453 4   0.128990
+453 1058   0.078885
+453 1060   1.000000
+453 1062   0.058415
+453 1066  -0.008310
+453 1068  -1.000000
+454 4   0.200000
+454 1057   0.075281
+454 1061   0.102497
+454 1063   1.000000
+454 1065   0.022222
+454 1067  -1.000000
+455 4   0.200000
+455 1058   0.075281
+455 1062   0.102497
+455 1064   1.000000
+455 1066   0.022222
+455 1068  -1.000000
+456 4   0.031010
+456 1069   1.000000
+456 1071   0.039363
+456 1075  -0.013107
+456 1079   0.004754
+456 1081  -1.000000
+457 4   0.031010
+457 1070   1.000000
+457 1072   0.039363
+457 1076  -0.013107
+457 1080   0.004754
+457 1082  -1.000000
+458 4   0.128990
+458 1071   0.078885
+458 1073   1.000000
+458 1075   0.058415
+458 1079  -0.008310
+458 1081  -1.000000
+459 4   0.128990
+459 1072   0.078885
+459 1074   1.000000
+459 1076   0.058415
+459 1080  -0.008310
+459 1082  -1.000000
+460 4   0.200000
+460 1071   0.075281
+460 1075   0.102497
+460 1077   1.000000
+460 1079   0.022222
+460 1081  -1.000000
+461 4   0.200000
+461 1072   0.075281
+461 1076   0.102497
+461 1078   1.000000
+461 1080   0.022222
+461 1082  -1.000000
+462 4   0.031010
+462 1083   1.000000
+462 1085   0.039363
+462 1089  -0.013107
+462 1093   0.004754
+462 1095  -1.000000
+463 4   0.031010
+463 1084   1.000000
+463 1086   0.039363
+463 1090  -0.013107
+463 1094   0.004754
+463 1096  -1.000000
+464 4   0.128990
+464 1085   0.078885
+464 1087   1.000000
+464 1089   0.058415
+464 1093  -0.008310
+464 1095  -1.000000
+465 4   0.128990
+465 1086   0.078885
+465 1088   1.000000
+465 1090   0.058415
+465 1094  -0.008310
+465 1096  -1.000000
+466 4   0.200000
+466 1085   0.075281
+466 1089   0.102497
+466 1091   1.000000
+466 1093   0.022222
+466 1095  -1.000000
+467 4   0.200000
+467 1086   0.075281
+467 1090   0.102497
+467 1092   1.000000
+467 1094   0.022222
+467 1096  -1.000000
+468 4   0.031010
+468 1097   1.000000
+468 1099   0.039363
+468 1103  -0.013107
+468 1107   0.004754
+468 1109  -1.000000
+469 4   0.031010
+469 1098   1.000000
+469 1100   0.039363
+469 1104  -0.013107
+469 1108   0.004754
+469 1110  -1.000000
+470 4   0.128990
+470 1099   0.078885
+470 1101   1.000000
+470 1103   0.058415
+470 1107  -0.008310
+470 1109  -1.000000
+471 4   0.128990
+471 1100   0.078885
+471 1102   1.000000
+471 1104   0.058415
+471 1108  -0.008310
+471 1110  -1.000000
+472 4   0.200000
+472 1099   0.075281
+472 1103   0.102497
+472 1105   1.000000
+472 1107   0.022222
+472 1109  -1.000000
+473 4   0.200000
+473 1100   0.075281
+473 1104   0.102497
+473 1106   1.000000
+473 1108   0.022222
+473 1110  -1.000000
+474 4   0.031010
+474 1111   1.000000
+474 1113   0.039363
+474 1117  -0.013107
+474 1121   0.004754
+474 1123  -1.000000
+475 4   0.031010
+475 1112   1.000000
+475 1114   0.039363
+475 1118  -0.013107
+475 1122   0.004754
+475 1124  -1.000000
+476 4   0.128990
+476 1113   0.078885
+476 1115   1.000000
+476 1117   0.058415
+476 1121  -0.008310
+476 1123  -1.000000
+477 4   0.128990
+477 1114   0.078885
+477 1116   1.000000
+477 1118   0.058415
+477 1122  -0.008310
+477 1124  -1.000000
+478 4   0.200000
+478 1113   0.075281
+478 1117   0.102497
+478 1119   1.000000
+478 1121   0.022222
+478 1123  -1.000000
+479 4   0.200000
+479 1114   0.075281
+479 1118   0.102497
+479 1120   1.000000
+479 1122   0.022222
+479 1124  -1.000000
+480 4   0.031010
+480 1125   1.000000
+480 1127   0.039363
+480 1131  -0.013107
+480 1135   0.004754
+480 1137  -1.000000
+481 4   0.031010
+481 1126   1.000000
+481 1128   0.039363
+481 1132  -0.013107
+481 1136   0.004754
+481 1138  -1.000000
+482 4   0.128990
+482 1127   0.078885
+482 1129   1.000000
+482 1131   0.058415
+482 1135  -0.008310
+482 1137  -1.000000
+483 4   0.128990
+483 1128   0.078885
+483 1130   1.000000
+483 1132   0.058415
+483 1136  -0.008310
+483 1138  -1.000000
+484 4   0.200000
+484 1127   0.075281
+484 1131   0.102497
+484 1133   1.000000
+484 1135   0.022222
+484 1137  -1.000000
+485 4   0.200000
+485 1128   0.075281
+485 1132   0.102497
+485 1134   1.000000
+485 1136   0.022222
+485 1138  -1.000000
+486 4   0.031010
+486 1139   1.000000
+486 1141   0.039363
+486 1145  -0.013107
+486 1149   0.004754
+486 1151  -1.000000
+487 4   0.031010
+487 1140   1.000000
+487 1142   0.039363
+487 1146  -0.013107
+487 1150   0.004754
+487 1152  -1.000000
+488 4   0.128990
+488 1141   0.078885
+488 1143   1.000000
+488 1145   0.058415
+488 1149  -0.008310
+488 1151  -1.000000
+489 4   0.128990
+489 1142   0.078885
+489 1144   1.000000
+489 1146   0.058415
+489 1150  -0.008310
+489 1152  -1.000000
+490 4   0.200000
+490 1141   0.075281
+490 1145   0.102497
+490 1147   1.000000
+490 1149   0.022222
+490 1151  -1.000000
+491 4   0.200000
+491 1142   0.075281
+491 1146   0.102497
+491 1148   1.000000
+491 1150   0.022222
+491 1152  -1.000000
+492 4   0.031010
+492 1153   1.000000
+492 1155   0.039363
+492 1159  -0.013107
+492 1163   0.004754
+492 1165  -1.000000
+493 4   0.031010
+493 1154   1.000000
+493 1156   0.039363
+493 1160  -0.013107
+493 1164   0.004754
+493 1166  -1.000000
+494 4   0.128990
+494 1155   0.078885
+494 1157   1.000000
+494 1159   0.058415
+494 1163  -0.008310
+494 1165  -1.000000
+495 4   0.128990
+495 1156   0.078885
+495 1158   1.000000
+495 1160   0.058415
+495 1164  -0.008310
+495 1166  -1.000000
+496 4   0.200000
+496 1155   0.075281
+496 1159   0.102497
+496 1161   1.000000
+496 1163   0.022222
+496 1165  -1.000000
+497 4   0.200000
+497 1156   0.075281
+497 1160   0.102497
+497 1162   1.000000
+497 1164   0.022222
+497 1166  -1.000000
+498 4   0.031010
+498 1167   1.000000
+498 1169   0.039363
+498 1173  -0.013107
+498 1177   0.004754
+498 1179  -1.000000
+499 4   0.031010
+499 1168   1.000000
+499 1170   0.039363
+499 1174  -0.013107
+499 1178   0.004754
+499 1180  -1.000000
+500 4   0.128990
+500 1169   0.078885
+500 1171   1.000000
+500 1173   0.058415
+500 1177  -0.008310
+500 1179  -1.000000
+501 4   0.128990
+501 1170   0.078885
+501 1172   1.000000
+501 1174   0.058415
+501 1178  -0.008310
+501 1180  -1.000000
+502 4   0.200000
+502 1169   0.075281
+502 1173   0.102497
+502 1175   1.000000
+502 1177   0.022222
+502 1179  -1.000000
+503 4   0.200000
+503 1170   0.075281
+503 1174   0.102497
+503 1176   1.000000
+503 1178   0.022222
+503 1180  -1.000000
+504 4   0.031010
+504 1181   1.000000
+504 1183   0.039363
+504 1187  -0.013107
+504 1191   0.004754
+504 1193  -1.000000
+505 4   0.031010
+505 1182   1.000000
+505 1184   0.039363
+505 1188  -0.013107
+505 1192   0.004754
+505 1194  -1.000000
+506 4   0.128990
+506 1183   0.078885
+506 1185   1.000000
+506 1187   0.058415
+506 1191  -0.008310
+506 1193  -1.000000
+507 4   0.128990
+507 1184   0.078885
+507 1186   1.000000
+507 1188   0.058415
+507 1192  -0.008310
+507 1194  -1.000000
+508 4   0.200000
+508 1183   0.075281
+508 1187   0.102497
+508 1189   1.000000
+508 1191   0.022222
+508 1193  -1.000000
+509 4   0.200000
+509 1184   0.075281
+509 1188   0.102497
+509 1190   1.000000
+509 1192   0.022222
+509 1194  -1.000000
+510 4   0.031010
+510 1195   1.000000
+510 1197   0.039363
+510 1201  -0.013107
+510 1205   0.004754
+510 1207  -1.000000
+511 4   0.031010
+511 1196   1.000000
+511 1198   0.039363
+511 1202  -0.013107
+511 1206   0.004754
+511 1208  -1.000000
+512 4   0.128990
+512 1197   0.078885
+512 1199   1.000000
+512 1201   0.058415
+512 1205  -0.008310
+512 1207  -1.000000
+513 4   0.128990
+513 1198   0.078885
+513 1200   1.000000
+513 1202   0.058415
+513 1206  -0.008310
+513 1208  -1.000000
+514 4   0.200000
+514 1197   0.075281
+514 1201   0.102497
+514 1203   1.000000
+514 1205   0.022222
+514 1207  -1.000000
+515 4   0.200000
+515 1198   0.075281
+515 1202   0.102497
+515 1204   1.000000
+515 1206   0.022222
+515 1208  -1.000000
+516 4   0.031010
+516 1209   1.000000
+516 1211   0.039363
+516 1215  -0.013107
+516 1219   0.004754
+516 1221  -1.000000
+517 4   0.031010
+517 1210   1.000000
+517 1212   0.039363
+517 1216  -0.013107
+517 1220   0.004754
+517 1222  -1.000000
+518 4   0.128990
+518 1211   0.078885
+518 1213   1.000000
+518 1215   0.058415
+518 1219  -0.008310
+518 1221  -1.000000
+519 4   0.128990
+519 1212   0.078885
+519 1214   1.000000
+519 1216   0.058415
+519 1220  -0.008310
+519 1222  -1.000000
+520 4   0.200000
+520 1211   0.075281
+520 1215   0.102497
+520 1217   1.000000
+520 1219   0.022222
+520 1221  -1.000000
+521 4   0.200000
+521 1212   0.075281
+521 1216   0.102497
+521 1218   1.000000
+521 1220   0.022222
+521 1222  -1.000000
+522 4   0.031010
+522 1223   1.000000
+522 1225   0.039363
+522 1229  -0.013107
+522 1233   0.004754
+522 1235  -1.000000
+523 4   0.031010
+523 1224   1.000000
+523 1226   0.039363
+523 1230  -0.013107
+523 1234   0.004754
+523 1236  -1.000000
+524 4   0.128990
+524 1225   0.078885
+524 1227   1.000000
+524 1229   0.058415
+524 1233  -0.008310
+524 1235  -1.000000
+525 4   0.128990
+525 1226   0.078885
+525 1228   1.000000
+525 1230   0.058415
+525 1234  -0.008310
+525 1236  -1.000000
+526 4   0.200000
+526 1225   0.075281
+526 1229   0.102497
+526 1231   1.000000
+526 1233   0.022222
+526 1235  -1.000000
+527 4   0.200000
+527 1226   0.075281
+527 1230   0.102497
+527 1232   1.000000
+527 1234   0.022222
+527 1236  -1.000000
+528 4   0.031010
+528 1237   1.000000
+528 1239   0.039363
+528 1243  -0.013107
+528 1247   0.004754
+528 1249  -1.000000
+529 4   0.031010
+529 1238   1.000000
+529 1240   0.039363
+529 1244  -0.013107
+529 1248   0.004754
+529 1250  -1.000000
+530 4   0.128990
+530 1239   0.078885
+530 1241   1.000000
+530 1243   0.058415
+530 1247  -0.008310
+530 1249  -1.000000
+531 4   0.128990
+531 1240   0.078885
+531 1242   1.000000
+531 1244   0.058415
+531 1248  -0.008310
+531 1250  -1.000000
+532 4   0.200000
+532 1239   0.075281
+532 1243   0.102497
+532 1245   1.000000
+532 1247   0.022222
+532 1249  -1.000000
+533 4   0.200000
+533 1240   0.075281
+533 1244   0.102497
+533 1246   1.000000
+533 1248   0.022222
+533 1250  -1.000000
+534 4   0.031010
+534 1251   1.000000
+534 1253   0.039363
+534 1257  -0.013107
+534 1261   0.004754
+534 1263  -1.000000
+535 4   0.031010
+535 1252   1.000000
+535 1254   0.039363
+535 1258  -0.013107
+535 1262   0.004754
+535 1264  -1.000000
+536 4   0.128990
+536 1253   0.078885
+536 1255   1.000000
+536 1257   0.058415
+536 1261  -0.008310
+536 1263  -1.000000
+537 4   0.128990
+537 1254   0.078885
+537 1256   1.000000
+537 1258   0.058415
+537 1262  -0.008310
+537 1264  -1.000000
+538 4   0.200000
+538 1253   0.075281
+538 1257   0.102497
+538 1259   1.000000
+538 1261   0.022222
+538 1263  -1.000000
+539 4   0.200000
+539 1254   0.075281
+539 1258   0.102497
+539 1260   1.000000
+539 1262   0.022222
+539 1264  -1.000000
+540 4   0.031010
+540 1265   1.000000
+540 1267   0.039363
+540 1271  -0.013107
+540 1275   0.004754
+540 1277  -1.000000
+541 4   0.031010
+541 1266   1.000000
+541 1268   0.039363
+541 1272  -0.013107
+541 1276   0.004754
+541 1278  -1.000000
+542 4   0.128990
+542 1267   0.078885
+542 1269   1.000000
+542 1271   0.058415
+542 1275  -0.008310
+542 1277  -1.000000
+543 4   0.128990
+543 1268   0.078885
+543 1270   1.000000
+543 1272   0.058415
+543 1276  -0.008310
+543 1278  -1.000000
+544 4   0.200000
+544 1267   0.075281
+544 1271   0.102497
+544 1273   1.000000
+544 1275   0.022222
+544 1277  -1.000000
+545 4   0.200000
+545 1268   0.075281
+545 1272   0.102497
+545 1274   1.000000
+545 1276   0.022222
+545 1278  -1.000000
+546 4   0.031010
+546 1279   1.000000
+546 1281   0.039363
+546 1285  -0.013107
+546 1289   0.004754
+546 1291  -1.000000
+547 4   0.031010
+547 1280   1.000000
+547 1282   0.039363
+547 1286  -0.013107
+547 1290   0.004754
+547 1292  -1.000000
+548 4   0.128990
+548 1281   0.078885
+548 1283   1.000000
+548 1285   0.058415
+548 1289  -0.008310
+548 1291  -1.000000
+549 4   0.128990
+549 1282   0.078885
+549 1284   1.000000
+549 1286   0.058415
+549 1290  -0.008310
+549 1292  -1.000000
+550 4   0.200000
+550 1281   0.075281
+550 1285   0.102497
+550 1287   1.000000
+550 1289   0.022222
+550 1291  -1.000000
+551 4   0.200000
+551 1282   0.075281
+551 1286   0.102497
+551 1288   1.000000
+551 1290   0.022222
+551 1292  -1.000000
+552 4   0.031010
+552 1293   1.000000
+552 1295   0.039363
+552 1299  -0.013107
+552 1303   0.004754
+552 1305  -1.000000
+553 4   0.031010
+553 1294   1.000000
+553 1296   0.039363
+553 1300  -0.013107
+553 1304   0.004754
+553 1306  -1.000000
+554 4   0.128990
+554 1295   0.078885
+554 1297   1.000000
+554 1299   0.058415
+554 1303  -0.008310
+554 1305  -1.000000
+555 4   0.128990
+555 1296   0.078885
+555 1298   1.000000
+555 1300   0.058415
+555 1304  -0.008310
+555 1306  -1.000000
+556 4   0.200000
+556 1295   0.075281
+556 1299   0.102497
+556 1301   1.000000
+556 1303   0.022222
+556 1305  -1.000000
+557 4   0.200000
+557 1296   0.075281
+557 1300   0.102497
+557 1302   1.000000
+557 1304   0.022222
+557 1306  -1.000000
+558 4   0.031010
+558 1307   1.000000
+558 1309   0.039363
+558 1313  -0.013107
+558 1317   0.004754
+558 1319  -1.000000
+559 4   0.031010
+559 1308   1.000000
+559 1310   0.039363
+559 1314  -0.013107
+559 1318   0.004754
+559 1320  -1.000000
+560 4   0.128990
+560 1309   0.078885
+560 1311   1.000000
+560 1313   0.058415
+560 1317  -0.008310
+560 1319  -1.000000
+561 4   0.128990
+561 1310   0.078885
+561 1312   1.000000
+561 1314   0.058415
+561 1318  -0.008310
+561 1320  -1.000000
+562 4   0.200000
+562 1309   0.075281
+562 1313   0.102497
+562 1315   1.000000
+562 1317   0.022222
+562 1319  -1.000000
+563 4   0.200000
+563 1310   0.075281
+563 1314   0.102497
+563 1316   1.000000
+563 1318   0.022222
+563 1320  -1.000000
+564 4   0.031010
+564 1321   1.000000
+564 1323   0.039363
+564 1327  -0.013107
+564 1331   0.004754
+564 1333  -1.000000
+565 4   0.031010
+565 1322   1.000000
+565 1324   0.039363
+565 1328  -0.013107
+565 1332   0.004754
+565 1334  -1.000000
+566 4   0.128990
+566 1323   0.078885
+566 1325   1.000000
+566 1327   0.058415
+566 1331  -0.008310
+566 1333  -1.000000
+567 4   0.128990
+567 1324   0.078885
+567 1326   1.000000
+567 1328   0.058415
+567 1332  -0.008310
+567 1334  -1.000000
+568 4   0.200000
+568 1323   0.075281
+568 1327   0.102497
+568 1329   1.000000
+568 1331   0.022222
+568 1333  -1.000000
+569 4   0.200000
+569 1324   0.075281
+569 1328   0.102497
+569 1330   1.000000
+569 1332   0.022222
+569 1334  -1.000000
+570 4   0.031010
+570 1335   1.000000
+570 1337   0.039363
+570 1341  -0.013107
+570 1345   0.004754
+570 1347  -1.000000
+571 4   0.031010
+571 1336   1.000000
+571 1338   0.039363
+571 1342  -0.013107
+571 1346   0.004754
+571 1348  -1.000000
+572 4   0.128990
+572 1337   0.078885
+572 1339   1.000000
+572 1341   0.058415
+572 1345  -0.008310
+572 1347  -1.000000
+573 4   0.128990
+573 1338   0.078885
+573 1340   1.000000
+573 1342   0.058415
+573 1346  -0.008310
+573 1348  -1.000000
+574 4   0.200000
+574 1337   0.075281
+574 1341   0.102497
+574 1343   1.000000
+574 1345   0.022222
+574 1347  -1.000000
+575 4   0.200000
+575 1338   0.075281
+575 1342   0.102497
+575 1344   1.000000
+575 1346   0.022222
+575 1348  -1.000000
+576 4   0.031010
+576 1349   1.000000
+576 1351   0.039363
+576 1355  -0.013107
+576 1359   0.004754
+576 1361  -1.000000
+577 4   0.031010
+577 1350   1.000000
+577 1352   0.039363
+577 1356  -0.013107
+577 1360   0.004754
+577 1362  -1.000000
+578 4   0.128990
+578 1351   0.078885
+578 1353   1.000000
+578 1355   0.058415
+578 1359  -0.008310
+578 1361  -1.000000
+579 4   0.128990
+579 1352   0.078885
+579 1354   1.000000
+579 1356   0.058415
+579 1360  -0.008310
+579 1362  -1.000000
+580 4   0.200000
+580 1351   0.075281
+580 1355   0.102497
+580 1357   1.000000
+580 1359   0.022222
+580 1361  -1.000000
+581 4   0.200000
+581 1352   0.075281
+581 1356   0.102497
+581 1358   1.000000
+581 1360   0.022222
+581 1362  -1.000000
+582 4   0.031010
+582 1363   1.000000
+582 1365   0.039363
+582 1369  -0.013107
+582 1373   0.004754
+582 1375  -1.000000
+583 4   0.031010
+583 1364   1.000000
+583 1366   0.039363
+583 1370  -0.013107
+583 1374   0.004754
+583 1376  -1.000000
+584 4   0.128990
+584 1365   0.078885
+584 1367   1.000000
+584 1369   0.058415
+584 1373  -0.008310
+584 1375  -1.000000
+585 4   0.128990
+585 1366   0.078885
+585 1368   1.000000
+585 1370   0.058415
+585 1374  -0.008310
+585 1376  -1.000000
+586 4   0.200000
+586 1365   0.075281
+586 1369   0.102497
+586 1371   1.000000
+586 1373   0.022222
+586 1375  -1.000000
+587 4   0.200000
+587 1366   0.075281
+587 1370   0.102497
+587 1372   1.000000
+587 1374   0.022222
+587 1376  -1.000000
+588 4   0.031010
+588 1377   1.000000
+588 1379   0.039363
+588 1383  -0.013107
+588 1387   0.004754
+588 1389  -1.000000
+589 4   0.031010
+589 1378   1.000000
+589 1380   0.039363
+589 1384  -0.013107
+589 1388   0.004754
+589 1390  -1.000000
+590 4   0.128990
+590 1379   0.078885
+590 1381   1.000000
+590 1383   0.058415
+590 1387  -0.008310
+590 1389  -1.000000
+591 4   0.128990
+591 1380   0.078885
+591 1382   1.000000
+591 1384   0.058415
+591 1388  -0.008310
+591 1390  -1.000000
+592 4   0.200000
+592 1379   0.075281
+592 1383   0.102497
+592 1385   1.000000
+592 1387   0.022222
+592 1389  -1.000000
+593 4   0.200000
+593 1380   0.075281
+593 1384   0.102497
+593 1386   1.000000
+593 1388   0.022222
+593 1390  -1.000000
+594 4   0.031010
+594 1391   1.000000
+594 1393   0.039363
+594 1397  -0.013107
+594 1401   0.004754
+594 1403  -1.000000
+595 4   0.031010
+595 1392   1.000000
+595 1394   0.039363
+595 1398  -0.013107
+595 1402   0.004754
+595 1404  -1.000000
+596 4   0.128990
+596 1393   0.078885
+596 1395   1.000000
+596 1397   0.058415
+596 1401  -0.008310
+596 1403  -1.000000
+597 4   0.128990
+597 1394   0.078885
+597 1396   1.000000
+597 1398   0.058415
+597 1402  -0.008310
+597 1404  -1.000000
+598 4   0.200000
+598 1393   0.075281
+598 1397   0.102497
+598 1399   1.000000
+598 1401   0.022222
+598 1403  -1.000000
+599 4   0.200000
+599 1394   0.075281
+599 1398   0.102497
+599 1400   1.000000
+599 1402   0.022222
+599 1404  -1.000000
+600 4   0.031010
+600 1405   1.000000
+600 1407   0.039363
+600 1411  -0.013107
+600 1415   0.004754
+600 1417  -1.000000
+601 4   0.031010
+601 1406   1.000000
+601 1408   0.039363
+601 1412  -0.013107
+601 1416   0.004754
+601 1418  -1.000000
+602 4   0.128990
+602 1407   0.078885
+602 1409   1.000000
+602 1411   0.058415
+602 1415  -0.008310
+602 1417  -1.000000
+603 4   0.128990
+603 1408   0.078885
+603 1410   1.000000
+603 1412   0.058415
+603 1416  -0.008310
+603 1418  -1.000000
+604 4   0.200000
+604 1407   0.075281
+604 1411   0.102497
+604 1413   1.000000
+604 1415   0.022222
+604 1417  -1.000000
+605 4   0.200000
+605 1408   0.075281
+605 1412   0.102497
+605 1414   1.000000
+605 1416   0.022222
+605 1418  -1.000000
+606 4   0.031010
+606 1419   1.000000
+606 1421   0.039363
+606 1425  -0.013107
+606 1429   0.004754
+606 1431  -1.000000
+607 4   0.031010
+607 1420   1.000000
+607 1422   0.039363
+607 1426  -0.013107
+607 1430   0.004754
+607 1432  -1.000000
+608 4   0.128990
+608 1421   0.078885
+608 1423   1.000000
+608 1425   0.058415
+608 1429  -0.008310
+608 1431  -1.000000
+609 4   0.128990
+609 1422   0.078885
+609 1424   1.000000
+609 1426   0.058415
+609 1430  -0.008310
+609 1432  -1.000000
+610 4   0.200000
+610 1421   0.075281
+610 1425   0.102497
+610 1427   1.000000
+610 1429   0.022222
+610 1431  -1.000000
+611 4   0.200000
+611 1422   0.075281
+611 1426   0.102497
+611 1428   1.000000
+611 1430   0.022222
+611 1432  -1.000000
+612 4   0.031010
+612 1433   1.000000
+612 1435   0.039363
+612 1439  -0.013107
+612 1443   0.004754
+612 1445  -1.000000
+613 4   0.031010
+613 1434   1.000000
+613 1436   0.039363
+613 1440  -0.013107
+613 1444   0.004754
+613 1446  -1.000000
+614 4   0.128990
+614 1435   0.078885
+614 1437   1.000000
+614 1439   0.058415
+614 1443  -0.008310
+614 1445  -1.000000
+615 4   0.128990
+615 1436   0.078885
+615 1438   1.000000
+615 1440   0.058415
+615 1444  -0.008310
+615 1446  -1.000000
+616 4   0.200000
+616 1435   0.075281
+616 1439   0.102497
+616 1441   1.000000
+616 1443   0.022222
+616 1445  -1.000000
+617 4   0.200000
+617 1436   0.075281
+617 1440   0.102497
+617 1442   1.000000
+617 1444   0.022222
+617 1446  -1.000000
+618 4   0.031010
+618 1447   1.000000
+618 1449   0.039363
+618 1453  -0.013107
+618 1457   0.004754
+618 1459  -1.000000
+619 4   0.031010
+619 1448   1.000000
+619 1450   0.039363
+619 1454  -0.013107
+619 1458   0.004754
+619 1460  -1.000000
+620 4   0.128990
+620 1449   0.078885
+620 1451   1.000000
+620 1453   0.058415
+620 1457  -0.008310
+620 1459  -1.000000
+621 4   0.128990
+621 1450   0.078885
+621 1452   1.000000
+621 1454   0.058415
+621 1458  -0.008310
+621 1460  -1.000000
+622 4   0.200000
+622 1449   0.075281
+622 1453   0.102497
+622 1455   1.000000
+622 1457   0.022222
+622 1459  -1.000000
+623 4   0.200000
+623 1450   0.075281
+623 1454   0.102497
+623 1456   1.000000
+623 1458   0.022222
+623 1460  -1.000000
+624 4   0.031010
+624 1461   1.000000
+624 1463   0.039363
+624 1467  -0.013107
+624 1471   0.004754
+624 1473  -1.000000
+625 4   0.031010
+625 1462   1.000000
+625 1464   0.039363
+625 1468  -0.013107
+625 1472   0.004754
+625 1474  -1.000000
+626 4   0.128990
+626 1463   0.078885
+626 1465   1.000000
+626 1467   0.058415
+626 1471  -0.008310
+626 1473  -1.000000
+627 4   0.128990
+627 1464   0.078885
+627 1466   1.000000
+627 1468   0.058415
+627 1472  -0.008310
+627 1474  -1.000000
+628 4   0.200000
+628 1463   0.075281
+628 1467   0.102497
+628 1469   1.000000
+628 1471   0.022222
+628 1473  -1.000000
+629 4   0.200000
+629 1464   0.075281
+629 1468   0.102497
+629 1470   1.000000
+629 1472   0.022222
+629 1474  -1.000000
+630 4   0.031010
+630 1475   1.000000
+630 1477   0.039363
+630 1481  -0.013107
+630 1485   0.004754
+630 1487  -1.000000
+631 4   0.031010
+631 1476   1.000000
+631 1478   0.039363
+631 1482  -0.013107
+631 1486   0.004754
+631 1488  -1.000000
+632 4   0.128990
+632 1477   0.078885
+632 1479   1.000000
+632 1481   0.058415
+632 1485  -0.008310
+632 1487  -1.000000
+633 4   0.128990
+633 1478   0.078885
+633 1480   1.000000
+633 1482   0.058415
+633 1486  -0.008310
+633 1488  -1.000000
+634 4   0.200000
+634 1477   0.075281
+634 1481   0.102497
+634 1483   1.000000
+634 1485   0.022222
+634 1487  -1.000000
+635 4   0.200000
+635 1478   0.075281
+635 1482   0.102497
+635 1484   1.000000
+635 1486   0.022222
+635 1488  -1.000000
+636 4   0.031010
+636 1489   1.000000
+636 1491   0.039363
+636 1495  -0.013107
+636 1499   0.004754
+636 1501  -1.000000
+637 4   0.031010
+637 1490   1.000000
+637 1492   0.039363
+637 1496  -0.013107
+637 1500   0.004754
+637 1502  -1.000000
+638 4   0.128990
+638 1491   0.078885
+638 1493   1.000000
+638 1495   0.058415
+638 1499  -0.008310
+638 1501  -1.000000
+639 4   0.128990
+639 1492   0.078885
+639 1494   1.000000
+639 1496   0.058415
+639 1500  -0.008310
+639 1502  -1.000000
+640 4   0.200000
+640 1491   0.075281
+640 1495   0.102497
+640 1497   1.000000
+640 1499   0.022222
+640 1501  -1.000000
+641 4   0.200000
+641 1492   0.075281
+641 1496   0.102497
+641 1498   1.000000
+641 1500   0.022222
+641 1502  -1.000000
+642 4   0.031010
+642 1503   1.000000
+642 1505   0.039363
+642 1509  -0.013107
+642 1513   0.004754
+642 1515  -1.000000
+643 4   0.031010
+643 1504   1.000000
+643 1506   0.039363
+643 1510  -0.013107
+643 1514   0.004754
+643 1516  -1.000000
+644 4   0.128990
+644 1505   0.078885
+644 1507   1.000000
+644 1509   0.058415
+644 1513  -0.008310
+644 1515  -1.000000
+645 4   0.128990
+645 1506   0.078885
+645 1508   1.000000
+645 1510   0.058415
+645 1514  -0.008310
+645 1516  -1.000000
+646 4   0.200000
+646 1505   0.075281
+646 1509   0.102497
+646 1511   1.000000
+646 1513   0.022222
+646 1515  -1.000000
+647 4   0.200000
+647 1506   0.075281
+647 1510   0.102497
+647 1512   1.000000
+647 1514   0.022222
+647 1516  -1.000000
+648 4   0.031010
+648 1517   1.000000
+648 1519   0.039363
+648 1523  -0.013107
+648 1527   0.004754
+648 1529  -1.000000
+649 4   0.031010
+649 1518   1.000000
+649 1520   0.039363
+649 1524  -0.013107
+649 1528   0.004754
+649 1530  -1.000000
+650 4   0.128990
+650 1519   0.078885
+650 1521   1.000000
+650 1523   0.058415
+650 1527  -0.008310
+650 1529  -1.000000
+651 4   0.128990
+651 1520   0.078885
+651 1522   1.000000
+651 1524   0.058415
+651 1528  -0.008310
+651 1530  -1.000000
+652 4   0.200000
+652 1519   0.075281
+652 1523   0.102497
+652 1525   1.000000
+652 1527   0.022222
+652 1529  -1.000000
+653 4   0.200000
+653 1520   0.075281
+653 1524   0.102497
+653 1526   1.000000
+653 1528   0.022222
+653 1530  -1.000000
+654 4   0.031010
+654 1531   1.000000
+654 1533   0.039363
+654 1537  -0.013107
+654 1541   0.004754
+654 1543  -1.000000
+655 4   0.031010
+655 1532   1.000000
+655 1534   0.039363
+655 1538  -0.013107
+655 1542   0.004754
+655 1544  -1.000000
+656 4   0.128990
+656 1533   0.078885
+656 1535   1.000000
+656 1537   0.058415
+656 1541  -0.008310
+656 1543  -1.000000
+657 4   0.128990
+657 1534   0.078885
+657 1536   1.000000
+657 1538   0.058415
+657 1542  -0.008310
+657 1544  -1.000000
+658 4   0.200000
+658 1533   0.075281
+658 1537   0.102497
+658 1539   1.000000
+658 1541   0.022222
+658 1543  -1.000000
+659 4   0.200000
+659 1534   0.075281
+659 1538   0.102497
+659 1540   1.000000
+659 1542   0.022222
+659 1544  -1.000000
+660 4   0.031010
+660 1545   1.000000
+660 1547   0.039363
+660 1551  -0.013107
+660 1555   0.004754
+660 1557  -1.000000
+661 4   0.031010
+661 1546   1.000000
+661 1548   0.039363
+661 1552  -0.013107
+661 1556   0.004754
+661 1558  -1.000000
+662 4   0.128990
+662 1547   0.078885
+662 1549   1.000000
+662 1551   0.058415
+662 1555  -0.008310
+662 1557  -1.000000
+663 4   0.128990
+663 1548   0.078885
+663 1550   1.000000
+663 1552   0.058415
+663 1556  -0.008310
+663 1558  -1.000000
+664 4   0.200000
+664 1547   0.075281
+664 1551   0.102497
+664 1553   1.000000
+664 1555   0.022222
+664 1557  -1.000000
+665 4   0.200000
+665 1548   0.075281
+665 1552   0.102497
+665 1554   1.000000
+665 1556   0.022222
+665 1558  -1.000000
+666 4   0.031010
+666 1559   1.000000
+666 1561   0.039363
+666 1565  -0.013107
+666 1569   0.004754
+666 1571  -1.000000
+667 4   0.031010
+667 1560   1.000000
+667 1562   0.039363
+667 1566  -0.013107
+667 1570   0.004754
+667 1572  -1.000000
+668 4   0.128990
+668 1561   0.078885
+668 1563   1.000000
+668 1565   0.058415
+668 1569  -0.008310
+668 1571  -1.000000
+669 4   0.128990
+669 1562   0.078885
+669 1564   1.000000
+669 1566   0.058415
+669 1570  -0.008310
+669 1572  -1.000000
+670 4   0.200000
+670 1561   0.075281
+670 1565   0.102497
+670 1567   1.000000
+670 1569   0.022222
+670 1571  -1.000000
+671 4   0.200000
+671 1562   0.075281
+671 1566   0.102497
+671 1568   1.000000
+671 1570   0.022222
+671 1572  -1.000000
+672 4   0.031010
+672 1573   1.000000
+672 1575   0.039363
+672 1579  -0.013107
+672 1583   0.004754
+672 1585  -1.000000
+673 4   0.031010
+673 1574   1.000000
+673 1576   0.039363
+673 1580  -0.013107
+673 1584   0.004754
+673 1586  -1.000000
+674 4   0.128990
+674 1575   0.078885
+674 1577   1.000000
+674 1579   0.058415
+674 1583  -0.008310
+674 1585  -1.000000
+675 4   0.128990
+675 1576   0.078885
+675 1578   1.000000
+675 1580   0.058415
+675 1584  -0.008310
+675 1586  -1.000000
+676 4   0.200000
+676 1575   0.075281
+676 1579   0.102497
+676 1581   1.000000
+676 1583   0.022222
+676 1585  -1.000000
+677 4   0.200000
+677 1576   0.075281
+677 1580   0.102497
+677 1582   1.000000
+677 1584   0.022222
+677 1586  -1.000000
+678 4   0.031010
+678 1587   1.000000
+678 1589   0.039363
+678 1593  -0.013107
+678 1597   0.004754
+678 1599  -1.000000
+679 4   0.031010
+679 1588   1.000000
+679 1590   0.039363
+679 1594  -0.013107
+679 1598   0.004754
+679 1600  -1.000000
+680 4   0.128990
+680 1589   0.078885
+680 1591   1.000000
+680 1593   0.058415
+680 1597  -0.008310
+680 1599  -1.000000
+681 4   0.128990
+681 1590   0.078885
+681 1592   1.000000
+681 1594   0.058415
+681 1598  -0.008310
+681 1600  -1.000000
+682 4   0.200000
+682 1589   0.075281
+682 1593   0.102497
+682 1595   1.000000
+682 1597   0.022222
+682 1599  -1.000000
+683 4   0.200000
+683 1590   0.075281
+683 1594   0.102497
+683 1596   1.000000
+683 1598   0.022222
+683 1600  -1.000000
+684 4   0.031010
+684 1601   1.000000
+684 1603   0.039363
+684 1607  -0.013107
+684 1611   0.004754
+684 1613  -1.000000
+685 4   0.031010
+685 1602   1.000000
+685 1604   0.039363
+685 1608  -0.013107
+685 1612   0.004754
+685 1614  -1.000000
+686 4   0.128990
+686 1603   0.078885
+686 1605   1.000000
+686 1607   0.058415
+686 1611  -0.008310
+686 1613  -1.000000
+687 4   0.128990
+687 1604   0.078885
+687 1606   1.000000
+687 1608   0.058415
+687 1612  -0.008310
+687 1614  -1.000000
+688 4   0.200000
+688 1603   0.075281
+688 1607   0.102497
+688 1609   1.000000
+688 1611   0.022222
+688 1613  -1.000000
+689 4   0.200000
+689 1604   0.075281
+689 1608   0.102497
+689 1610   1.000000
+689 1612   0.022222
+689 1614  -1.000000
+690 4   0.031010
+690 1615   1.000000
+690 1617   0.039363
+690 1621  -0.013107
+690 1625   0.004754
+690 1627  -1.000000
+691 4   0.031010
+691 1616   1.000000
+691 1618   0.039363
+691 1622  -0.013107
+691 1626   0.004754
+691 1628  -1.000000
+692 4   0.128990
+692 1617   0.078885
+692 1619   1.000000
+692 1621   0.058415
+692 1625  -0.008310
+692 1627  -1.000000
+693 4   0.128990
+693 1618   0.078885
+693 1620   1.000000
+693 1622   0.058415
+693 1626  -0.008310
+693 1628  -1.000000
+694 4   0.200000
+694 1617   0.075281
+694 1621   0.102497
+694 1623   1.000000
+694 1625   0.022222
+694 1627  -1.000000
+695 4   0.200000
+695 1618   0.075281
+695 1622   0.102497
+695 1624   1.000000
+695 1626   0.022222
+695 1628  -1.000000
+696 4   0.031010
+696 1629   1.000000
+696 1631   0.039363
+696 1635  -0.013107
+696 1639   0.004754
+696 1641  -1.000000
+697 4   0.031010
+697 1630   1.000000
+697 1632   0.039363
+697 1636  -0.013107
+697 1640   0.004754
+697 1642  -1.000000
+698 4   0.128990
+698 1631   0.078885
+698 1633   1.000000
+698 1635   0.058415
+698 1639  -0.008310
+698 1641  -1.000000
+699 4   0.128990
+699 1632   0.078885
+699 1634   1.000000
+699 1636   0.058415
+699 1640  -0.008310
+699 1642  -1.000000
+700 4   0.200000
+700 1631   0.075281
+700 1635   0.102497
+700 1637   1.000000
+700 1639   0.022222
+700 1641  -1.000000
+701 4   0.200000
+701 1632   0.075281
+701 1636   0.102497
+701 1638   1.000000
+701 1640   0.022222
+701 1642  -1.000000
+702 4   0.031010
+702 1643   1.000000
+702 1645   0.039363
+702 1649  -0.013107
+702 1653   0.004754
+702 1655  -1.000000
+703 4   0.031010
+703 1644   1.000000
+703 1646   0.039363
+703 1650  -0.013107
+703 1654   0.004754
+703 1656  -1.000000
+704 4   0.128990
+704 1645   0.078885
+704 1647   1.000000
+704 1649   0.058415
+704 1653  -0.008310
+704 1655  -1.000000
+705 4   0.128990
+705 1646   0.078885
+705 1648   1.000000
+705 1650   0.058415
+705 1654  -0.008310
+705 1656  -1.000000
+706 4   0.200000
+706 1645   0.075281
+706 1649   0.102497
+706 1651   1.000000
+706 1653   0.022222
+706 1655  -1.000000
+707 4   0.200000
+707 1646   0.075281
+707 1650   0.102497
+707 1652   1.000000
+707 1654   0.022222
+707 1656  -1.000000
+708 4   0.031010
+708 1657   1.000000
+708 1659   0.039363
+708 1663  -0.013107
+708 1667   0.004754
+708 1669  -1.000000
+709 4   0.031010
+709 1658   1.000000
+709 1660   0.039363
+709 1664  -0.013107
+709 1668   0.004754
+709 1670  -1.000000
+710 4   0.128990
+710 1659   0.078885
+710 1661   1.000000
+710 1663   0.058415
+710 1667  -0.008310
+710 1669  -1.000000
+711 4   0.128990
+711 1660   0.078885
+711 1662   1.000000
+711 1664   0.058415
+711 1668  -0.008310
+711 1670  -1.000000
+712 4   0.200000
+712 1659   0.075281
+712 1663   0.102497
+712 1665   1.000000
+712 1667   0.022222
+712 1669  -1.000000
+713 4   0.200000
+713 1660   0.075281
+713 1664   0.102497
+713 1666   1.000000
+713 1668   0.022222
+713 1670  -1.000000
+714 4   0.031010
+714 1671   1.000000
+714 1673   0.039363
+714 1677  -0.013107
+714 1681   0.004754
+714 1683  -1.000000
+715 4   0.031010
+715 1672   1.000000
+715 1674   0.039363
+715 1678  -0.013107
+715 1682   0.004754
+715 1684  -1.000000
+716 4   0.128990
+716 1673   0.078885
+716 1675   1.000000
+716 1677   0.058415
+716 1681  -0.008310
+716 1683  -1.000000
+717 4   0.128990
+717 1674   0.078885
+717 1676   1.000000
+717 1678   0.058415
+717 1682  -0.008310
+717 1684  -1.000000
+718 4   0.200000
+718 1673   0.075281
+718 1677   0.102497
+718 1679   1.000000
+718 1681   0.022222
+718 1683  -1.000000
+719 4   0.200000
+719 1674   0.075281
+719 1678   0.102497
+719 1680   1.000000
+719 1682   0.022222
+719 1684  -1.000000
+720 4   0.031010
+720 1685   1.000000
+720 1687   0.039363
+720 1691  -0.013107
+720 1695   0.004754
+720 1697  -1.000000
+721 4   0.031010
+721 1686   1.000000
+721 1688   0.039363
+721 1692  -0.013107
+721 1696   0.004754
+721 1698  -1.000000
+722 4   0.128990
+722 1687   0.078885
+722 1689   1.000000
+722 1691   0.058415
+722 1695  -0.008310
+722 1697  -1.000000
+723 4   0.128990
+723 1688   0.078885
+723 1690   1.000000
+723 1692   0.058415
+723 1696  -0.008310
+723 1698  -1.000000
+724 4   0.200000
+724 1687   0.075281
+724 1691   0.102497
+724 1693   1.000000
+724 1695   0.022222
+724 1697  -1.000000
+725 4   0.200000
+725 1688   0.075281
+725 1692   0.102497
+725 1694   1.000000
+725 1696   0.022222
+725 1698  -1.000000
+726 4   0.031010
+726 1699   1.000000
+726 1701   0.039363
+726 1705  -0.013107
+726 1709   0.004754
+726 1711  -1.000000
+727 4   0.031010
+727 1700   1.000000
+727 1702   0.039363
+727 1706  -0.013107
+727 1710   0.004754
+727 1712  -1.000000
+728 4   0.128990
+728 1701   0.078885
+728 1703   1.000000
+728 1705   0.058415
+728 1709  -0.008310
+728 1711  -1.000000
+729 4   0.128990
+729 1702   0.078885
+729 1704   1.000000
+729 1706   0.058415
+729 1710  -0.008310
+729 1712  -1.000000
+730 4   0.200000
+730 1701   0.075281
+730 1705   0.102497
+730 1707   1.000000
+730 1709   0.022222
+730 1711  -1.000000
+731 4   0.200000
+731 1702   0.075281
+731 1706   0.102497
+731 1708   1.000000
+731 1710   0.022222
+731 1712  -1.000000
+732 4   0.031010
+732 1713   1.000000
+732 1715   0.039363
+732 1719  -0.013107
+732 1723   0.004754
+732 1725  -1.000000
+733 4   0.031010
+733 1714   1.000000
+733 1716   0.039363
+733 1720  -0.013107
+733 1724   0.004754
+733 1726  -1.000000
+734 4   0.128990
+734 1715   0.078885
+734 1717   1.000000
+734 1719   0.058415
+734 1723  -0.008310
+734 1725  -1.000000
+735 4   0.128990
+735 1716   0.078885
+735 1718   1.000000
+735 1720   0.058415
+735 1724  -0.008310
+735 1726  -1.000000
+736 4   0.200000
+736 1715   0.075281
+736 1719   0.102497
+736 1721   1.000000
+736 1723   0.022222
+736 1725  -1.000000
+737 4   0.200000
+737 1716   0.075281
+737 1720   0.102497
+737 1722   1.000000
+737 1724   0.022222
+737 1726  -1.000000
+738 4   0.031010
+738 1727   1.000000
+738 1729   0.039363
+738 1733  -0.013107
+738 1737   0.004754
+738 1739  -1.000000
+739 4   0.031010
+739 1728   1.000000
+739 1730   0.039363
+739 1734  -0.013107
+739 1738   0.004754
+739 1740  -1.000000
+740 4   0.128990
+740 1729   0.078885
+740 1731   1.000000
+740 1733   0.058415
+740 1737  -0.008310
+740 1739  -1.000000
+741 4   0.128990
+741 1730   0.078885
+741 1732   1.000000
+741 1734   0.058415
+741 1738  -0.008310
+741 1740  -1.000000
+742 4   0.200000
+742 1729   0.075281
+742 1733   0.102497
+742 1735   1.000000
+742 1737   0.022222
+742 1739  -1.000000
+743 4   0.200000
+743 1730   0.075281
+743 1734   0.102497
+743 1736   1.000000
+743 1738   0.022222
+743 1740  -1.000000
+744 4   0.031010
+744 1741   1.000000
+744 1743   0.039363
+744 1747  -0.013107
+744 1751   0.004754
+744 1753  -1.000000
+745 4   0.031010
+745 1742   1.000000
+745 1744   0.039363
+745 1748  -0.013107
+745 1752   0.004754
+745 1754  -1.000000
+746 4   0.128990
+746 1743   0.078885
+746 1745   1.000000
+746 1747   0.058415
+746 1751  -0.008310
+746 1753  -1.000000
+747 4   0.128990
+747 1744   0.078885
+747 1746   1.000000
+747 1748   0.058415
+747 1752  -0.008310
+747 1754  -1.000000
+748 4   0.200000
+748 1743   0.075281
+748 1747   0.102497
+748 1749   1.000000
+748 1751   0.022222
+748 1753  -1.000000
+749 4   0.200000
+749 1744   0.075281
+749 1748   0.102497
+749 1750   1.000000
+749 1752   0.022222
+749 1754  -1.000000
+750 4   0.031010
+750 1755   1.000000
+750 1757   0.039363
+750 1761  -0.013107
+750 1765   0.004754
+750 1767  -1.000000
+751 4   0.031010
+751 1756   1.000000
+751 1758   0.039363
+751 1762  -0.013107
+751 1766   0.004754
+751 1768  -1.000000
+752 4   0.128990
+752 1757   0.078885
+752 1759   1.000000
+752 1761   0.058415
+752 1765  -0.008310
+752 1767  -1.000000
+753 4   0.128990
+753 1758   0.078885
+753 1760   1.000000
+753 1762   0.058415
+753 1766  -0.008310
+753 1768  -1.000000
+754 4   0.200000
+754 1757   0.075281
+754 1761   0.102497
+754 1763   1.000000
+754 1765   0.022222
+754 1767  -1.000000
+755 4   0.200000
+755 1758   0.075281
+755 1762   0.102497
+755 1764   1.000000
+755 1766   0.022222
+755 1768  -1.000000
+756 4   0.031010
+756 1769   1.000000
+756 1771   0.039363
+756 1775  -0.013107
+756 1779   0.004754
+756 1781  -1.000000
+757 4   0.031010
+757 1770   1.000000
+757 1772   0.039363
+757 1776  -0.013107
+757 1780   0.004754
+757 1782  -1.000000
+758 4   0.128990
+758 1771   0.078885
+758 1773   1.000000
+758 1775   0.058415
+758 1779  -0.008310
+758 1781  -1.000000
+759 4   0.128990
+759 1772   0.078885
+759 1774   1.000000
+759 1776   0.058415
+759 1780  -0.008310
+759 1782  -1.000000
+760 4   0.200000
+760 1771   0.075281
+760 1775   0.102497
+760 1777   1.000000
+760 1779   0.022222
+760 1781  -1.000000
+761 4   0.200000
+761 1772   0.075281
+761 1776   0.102497
+761 1778   1.000000
+761 1780   0.022222
+761 1782  -1.000000
+762 4   0.031010
+762 1783   1.000000
+762 1785   0.039363
+762 1789  -0.013107
+762 1793   0.004754
+762 1795  -1.000000
+763 4   0.031010
+763 1784   1.000000
+763 1786   0.039363
+763 1790  -0.013107
+763 1794   0.004754
+763 1796  -1.000000
+764 4   0.128990
+764 1785   0.078885
+764 1787   1.000000
+764 1789   0.058415
+764 1793  -0.008310
+764 1795  -1.000000
+765 4   0.128990
+765 1786   0.078885
+765 1788   1.000000
+765 1790   0.058415
+765 1794  -0.008310
+765 1796  -1.000000
+766 4   0.200000
+766 1785   0.075281
+766 1789   0.102497
+766 1791   1.000000
+766 1793   0.022222
+766 1795  -1.000000
+767 4   0.200000
+767 1786   0.075281
+767 1790   0.102497
+767 1792   1.000000
+767 1794   0.022222
+767 1796  -1.000000
+768 4   0.031010
+768 1797   1.000000
+768 1799   0.039363
+768 1803  -0.013107
+768 1807   0.004754
+768 1809  -1.000000
+769 4   0.031010
+769 1798   1.000000
+769 1800   0.039363
+769 1804  -0.013107
+769 1808   0.004754
+769 1810  -1.000000
+770 4   0.128990
+770 1799   0.078885
+770 1801   1.000000
+770 1803   0.058415
+770 1807  -0.008310
+770 1809  -1.000000
+771 4   0.128990
+771 1800   0.078885
+771 1802   1.000000
+771 1804   0.058415
+771 1808  -0.008310
+771 1810  -1.000000
+772 4   0.200000
+772 1799   0.075281
+772 1803   0.102497
+772 1805   1.000000
+772 1807   0.022222
+772 1809  -1.000000
+773 4   0.200000
+773 1800   0.075281
+773 1804   0.102497
+773 1806   1.000000
+773 1808   0.022222
+773 1810  -1.000000
+774 4   0.031010
+774 1811   1.000000
+774 1813   0.039363
+774 1817  -0.013107
+774 1821   0.004754
+774 1823  -1.000000
+775 4   0.031010
+775 1812   1.000000
+775 1814   0.039363
+775 1818  -0.013107
+775 1822   0.004754
+775 1824  -1.000000
+776 4   0.128990
+776 1813   0.078885
+776 1815   1.000000
+776 1817   0.058415
+776 1821  -0.008310
+776 1823  -1.000000
+777 4   0.128990
+777 1814   0.078885
+777 1816   1.000000
+777 1818   0.058415
+777 1822  -0.008310
+777 1824  -1.000000
+778 4   0.200000
+778 1813   0.075281
+778 1817   0.102497
+778 1819   1.000000
+778 1821   0.022222
+778 1823  -1.000000
+779 4   0.200000
+779 1814   0.075281
+779 1818   0.102497
+779 1820   1.000000
+779 1822   0.022222
+779 1824  -1.000000
+780 4   0.031010
+780 1825   1.000000
+780 1827   0.039363
+780 1831  -0.013107
+780 1835   0.004754
+780 1837  -1.000000
+781 4   0.031010
+781 1826   1.000000
+781 1828   0.039363
+781 1832  -0.013107
+781 1836   0.004754
+781 1838  -1.000000
+782 4   0.128990
+782 1827   0.078885
+782 1829   1.000000
+782 1831   0.058415
+782 1835  -0.008310
+782 1837  -1.000000
+783 4   0.128990
+783 1828   0.078885
+783 1830   1.000000
+783 1832   0.058415
+783 1836  -0.008310
+783 1838  -1.000000
+784 4   0.200000
+784 1827   0.075281
+784 1831   0.102497
+784 1833   1.000000
+784 1835   0.022222
+784 1837  -1.000000
+785 4   0.200000
+785 1828   0.075281
+785 1832   0.102497
+785 1834   1.000000
+785 1836   0.022222
+785 1838  -1.000000
+786 4   0.031010
+786 1839   1.000000
+786 1841   0.039363
+786 1845  -0.013107
+786 1849   0.004754
+786 1851  -1.000000
+787 4   0.031010
+787 1840   1.000000
+787 1842   0.039363
+787 1846  -0.013107
+787 1850   0.004754
+787 1852  -1.000000
+788 4   0.128990
+788 1841   0.078885
+788 1843   1.000000
+788 1845   0.058415
+788 1849  -0.008310
+788 1851  -1.000000
+789 4   0.128990
+789 1842   0.078885
+789 1844   1.000000
+789 1846   0.058415
+789 1850  -0.008310
+789 1852  -1.000000
+790 4   0.200000
+790 1841   0.075281
+790 1845   0.102497
+790 1847   1.000000
+790 1849   0.022222
+790 1851  -1.000000
+791 4   0.200000
+791 1842   0.075281
+791 1846   0.102497
+791 1848   1.000000
+791 1850   0.022222
+791 1852  -1.000000
+792 4   0.031010
+792 1853   1.000000
+792 1855   0.039363
+792 1859  -0.013107
+792 1863   0.004754
+792 1865  -1.000000
+793 4   0.031010
+793 1854   1.000000
+793 1856   0.039363
+793 1860  -0.013107
+793 1864   0.004754
+793 1866  -1.000000
+794 4   0.128990
+794 1855   0.078885
+794 1857   1.000000
+794 1859   0.058415
+794 1863  -0.008310
+794 1865  -1.000000
+795 4   0.128990
+795 1856   0.078885
+795 1858   1.000000
+795 1860   0.058415
+795 1864  -0.008310
+795 1866  -1.000000
+796 4   0.200000
+796 1855   0.075281
+796 1859   0.102497
+796 1861   1.000000
+796 1863   0.022222
+796 1865  -1.000000
+797 4   0.200000
+797 1856   0.075281
+797 1860   0.102497
+797 1862   1.000000
+797 1864   0.022222
+797 1866  -1.000000
+798 4   0.031010
+798 1867   1.000000
+798 1869   0.039363
+798 1873  -0.013107
+798 1877   0.004754
+798 1879  -1.000000
+799 4   0.031010
+799 1868   1.000000
+799 1870   0.039363
+799 1874  -0.013107
+799 1878   0.004754
+799 1880  -1.000000
+800 4   0.128990
+800 1869   0.078885
+800 1871   1.000000
+800 1873   0.058415
+800 1877  -0.008310
+800 1879  -1.000000
+801 4   0.128990
+801 1870   0.078885
+801 1872   1.000000
+801 1874   0.058415
+801 1878  -0.008310
+801 1880  -1.000000
+802 4   0.200000
+802 1869   0.075281
+802 1873   0.102497
+802 1875   1.000000
+802 1877   0.022222
+802 1879  -1.000000
+803 4   0.200000
+803 1870   0.075281
+803 1874   0.102497
+803 1876   1.000000
+803 1878   0.022222
+803 1880  -1.000000
+804 4   0.031010
+804 1881   1.000000
+804 1883   0.039363
+804 1887  -0.013107
+804 1891   0.004754
+804 1893  -1.000000
+805 4   0.031010
+805 1882   1.000000
+805 1884   0.039363
+805 1888  -0.013107
+805 1892   0.004754
+805 1894  -1.000000
+806 4   0.128990
+806 1883   0.078885
+806 1885   1.000000
+806 1887   0.058415
+806 1891  -0.008310
+806 1893  -1.000000
+807 4   0.128990
+807 1884   0.078885
+807 1886   1.000000
+807 1888   0.058415
+807 1892  -0.008310
+807 1894  -1.000000
+808 4   0.200000
+808 1883   0.075281
+808 1887   0.102497
+808 1889   1.000000
+808 1891   0.022222
+808 1893  -1.000000
+809 4   0.200000
+809 1884   0.075281
+809 1888   0.102497
+809 1890   1.000000
+809 1892   0.022222
+809 1894  -1.000000
+810 4   0.031010
+810 1895   1.000000
+810 1897   0.039363
+810 1901  -0.013107
+810 1905   0.004754
+810 1907  -1.000000
+811 4   0.031010
+811 1896   1.000000
+811 1898   0.039363
+811 1902  -0.013107
+811 1906   0.004754
+811 1908  -1.000000
+812 4   0.128990
+812 1897   0.078885
+812 1899   1.000000
+812 1901   0.058415
+812 1905  -0.008310
+812 1907  -1.000000
+813 4   0.128990
+813 1898   0.078885
+813 1900   1.000000
+813 1902   0.058415
+813 1906  -0.008310
+813 1908  -1.000000
+814 4   0.200000
+814 1897   0.075281
+814 1901   0.102497
+814 1903   1.000000
+814 1905   0.022222
+814 1907  -1.000000
+815 4   0.200000
+815 1898   0.075281
+815 1902   0.102497
+815 1904   1.000000
+815 1906   0.022222
+815 1908  -1.000000
+816 4   0.031010
+816 1909   1.000000
+816 1911   0.039363
+816 1915  -0.013107
+816 1919   0.004754
+816 1921  -1.000000
+817 4   0.031010
+817 1910   1.000000
+817 1912   0.039363
+817 1916  -0.013107
+817 1920   0.004754
+817 1922  -1.000000
+818 4   0.128990
+818 1911   0.078885
+818 1913   1.000000
+818 1915   0.058415
+818 1919  -0.008310
+818 1921  -1.000000
+819 4   0.128990
+819 1912   0.078885
+819 1914   1.000000
+819 1916   0.058415
+819 1920  -0.008310
+819 1922  -1.000000
+820 4   0.200000
+820 1911   0.075281
+820 1915   0.102497
+820 1917   1.000000
+820 1919   0.022222
+820 1921  -1.000000
+821 4   0.200000
+821 1912   0.075281
+821 1916   0.102497
+821 1918   1.000000
+821 1920   0.022222
+821 1922  -1.000000
+822 4   0.031010
+822 1923   1.000000
+822 1925   0.039363
+822 1929  -0.013107
+822 1933   0.004754
+822 1935  -1.000000
+823 4   0.031010
+823 1924   1.000000
+823 1926   0.039363
+823 1930  -0.013107
+823 1934   0.004754
+823 1936  -1.000000
+824 4   0.128990
+824 1925   0.078885
+824 1927   1.000000
+824 1929   0.058415
+824 1933  -0.008310
+824 1935  -1.000000
+825 4   0.128990
+825 1926   0.078885
+825 1928   1.000000
+825 1930   0.058415
+825 1934  -0.008310
+825 1936  -1.000000
+826 4   0.200000
+826 1925   0.075281
+826 1929   0.102497
+826 1931   1.000000
+826 1933   0.022222
+826 1935  -1.000000
+827 4   0.200000
+827 1926   0.075281
+827 1930   0.102497
+827 1932   1.000000
+827 1934   0.022222
+827 1936  -1.000000
+828 4   0.031010
+828 1937   1.000000
+828 1939   0.039363
+828 1943  -0.013107
+828 1947   0.004754
+828 1949  -1.000000
+829 4   0.031010
+829 1938   1.000000
+829 1940   0.039363
+829 1944  -0.013107
+829 1948   0.004754
+829 1950  -1.000000
+830 4   0.128990
+830 1939   0.078885
+830 1941   1.000000
+830 1943   0.058415
+830 1947  -0.008310
+830 1949  -1.000000
+831 4   0.128990
+831 1940   0.078885
+831 1942   1.000000
+831 1944   0.058415
+831 1948  -0.008310
+831 1950  -1.000000
+832 4   0.200000
+832 1939   0.075281
+832 1943   0.102497
+832 1945   1.000000
+832 1947   0.022222
+832 1949  -1.000000
+833 4   0.200000
+833 1940   0.075281
+833 1944   0.102497
+833 1946   1.000000
+833 1948   0.022222
+833 1950  -1.000000
+834 4   0.031010
+834 1951   1.000000
+834 1953   0.039363
+834 1957  -0.013107
+834 1961   0.004754
+834 1963  -1.000000
+835 4   0.031010
+835 1952   1.000000
+835 1954   0.039363
+835 1958  -0.013107
+835 1962   0.004754
+835 1964  -1.000000
+836 4   0.128990
+836 1953   0.078885
+836 1955   1.000000
+836 1957   0.058415
+836 1961  -0.008310
+836 1963  -1.000000
+837 4   0.128990
+837 1954   0.078885
+837 1956   1.000000
+837 1958   0.058415
+837 1962  -0.008310
+837 1964  -1.000000
+838 4   0.200000
+838 1953   0.075281
+838 1957   0.102497
+838 1959   1.000000
+838 1961   0.022222
+838 1963  -1.000000
+839 4   0.200000
+839 1954   0.075281
+839 1958   0.102497
+839 1960   1.000000
+839 1962   0.022222
+839 1964  -1.000000
+840 4   0.031010
+840 1965   1.000000
+840 1967   0.039363
+840 1971  -0.013107
+840 1975   0.004754
+840 1977  -1.000000
+841 4   0.031010
+841 1966   1.000000
+841 1968   0.039363
+841 1972  -0.013107
+841 1976   0.004754
+841 1978  -1.000000
+842 4   0.128990
+842 1967   0.078885
+842 1969   1.000000
+842 1971   0.058415
+842 1975  -0.008310
+842 1977  -1.000000
+843 4   0.128990
+843 1968   0.078885
+843 1970   1.000000
+843 1972   0.058415
+843 1976  -0.008310
+843 1978  -1.000000
+844 4   0.200000
+844 1967   0.075281
+844 1971   0.102497
+844 1973   1.000000
+844 1975   0.022222
+844 1977  -1.000000
+845 4   0.200000
+845 1968   0.075281
+845 1972   0.102497
+845 1974   1.000000
+845 1976   0.022222
+845 1978  -1.000000
+846 4   0.031010
+846 1979   1.000000
+846 1981   0.039363
+846 1985  -0.013107
+846 1989   0.004754
+846 1991  -1.000000
+847 4   0.031010
+847 1980   1.000000
+847 1982   0.039363
+847 1986  -0.013107
+847 1990   0.004754
+847 1992  -1.000000
+848 4   0.128990
+848 1981   0.078885
+848 1983   1.000000
+848 1985   0.058415
+848 1989  -0.008310
+848 1991  -1.000000
+849 4   0.128990
+849 1982   0.078885
+849 1984   1.000000
+849 1986   0.058415
+849 1990  -0.008310
+849 1992  -1.000000
+850 4   0.200000
+850 1981   0.075281
+850 1985   0.102497
+850 1987   1.000000
+850 1989   0.022222
+850 1991  -1.000000
+851 4   0.200000
+851 1982   0.075281
+851 1986   0.102497
+851 1988   1.000000
+851 1990   0.022222
+851 1992  -1.000000
+852 4   0.031010
+852 1993   1.000000
+852 1995   0.039363
+852 1999  -0.013107
+852 2003   0.004754
+852 2005  -1.000000
+853 4   0.031010
+853 1994   1.000000
+853 1996   0.039363
+853 2000  -0.013107
+853 2004   0.004754
+853 2006  -1.000000
+854 4   0.128990
+854 1995   0.078885
+854 1997   1.000000
+854 1999   0.058415
+854 2003  -0.008310
+854 2005  -1.000000
+855 4   0.128990
+855 1996   0.078885
+855 1998   1.000000
+855 2000   0.058415
+855 2004  -0.008310
+855 2006  -1.000000
+856 4   0.200000
+856 1995   0.075281
+856 1999   0.102497
+856 2001   1.000000
+856 2003   0.022222
+856 2005  -1.000000
+857 4   0.200000
+857 1996   0.075281
+857 2000   0.102497
+857 2002   1.000000
+857 2004   0.022222
+857 2006  -1.000000
+858 4   0.031010
+858 2007   1.000000
+858 2009   0.039363
+858 2013  -0.013107
+858 2017   0.004754
+858 2019  -1.000000
+859 4   0.031010
+859 2008   1.000000
+859 2010   0.039363
+859 2014  -0.013107
+859 2018   0.004754
+859 2020  -1.000000
+860 4   0.128990
+860 2009   0.078885
+860 2011   1.000000
+860 2013   0.058415
+860 2017  -0.008310
+860 2019  -1.000000
+861 4   0.128990
+861 2010   0.078885
+861 2012   1.000000
+861 2014   0.058415
+861 2018  -0.008310
+861 2020  -1.000000
+862 4   0.200000
+862 2009   0.075281
+862 2013   0.102497
+862 2015   1.000000
+862 2017   0.022222
+862 2019  -1.000000
+863 4   0.200000
+863 2010   0.075281
+863 2014   0.102497
+863 2016   1.000000
+863 2018   0.022222
+863 2020  -1.000000
+864 4   0.031010
+864 2021   1.000000
+864 2023   0.039363
+864 2027  -0.013107
+864 2031   0.004754
+864 2033  -1.000000
+865 4   0.031010
+865 2022   1.000000
+865 2024   0.039363
+865 2028  -0.013107
+865 2032   0.004754
+865 2034  -1.000000
+866 4   0.128990
+866 2023   0.078885
+866 2025   1.000000
+866 2027   0.058415
+866 2031  -0.008310
+866 2033  -1.000000
+867 4   0.128990
+867 2024   0.078885
+867 2026   1.000000
+867 2028   0.058415
+867 2032  -0.008310
+867 2034  -1.000000
+868 4   0.200000
+868 2023   0.075281
+868 2027   0.102497
+868 2029   1.000000
+868 2031   0.022222
+868 2033  -1.000000
+869 4   0.200000
+869 2024   0.075281
+869 2028   0.102497
+869 2030   1.000000
+869 2032   0.022222
+869 2034  -1.000000
+870 4   0.031010
+870 2035   1.000000
+870 2037   0.039363
+870 2041  -0.013107
+870 2045   0.004754
+870 2047  -1.000000
+871 4   0.031010
+871 2036   1.000000
+871 2038   0.039363
+871 2042  -0.013107
+871 2046   0.004754
+871 2048  -1.000000
+872 4   0.128990
+872 2037   0.078885
+872 2039   1.000000
+872 2041   0.058415
+872 2045  -0.008310
+872 2047  -1.000000
+873 4   0.128990
+873 2038   0.078885
+873 2040   1.000000
+873 2042   0.058415
+873 2046  -0.008310
+873 2048  -1.000000
+874 4   0.200000
+874 2037   0.075281
+874 2041   0.102497
+874 2043   1.000000
+874 2045   0.022222
+874 2047  -1.000000
+875 4   0.200000
+875 2038   0.075281
+875 2042   0.102497
+875 2044   1.000000
+875 2046   0.022222
+875 2048  -1.000000
+876 4   0.031010
+876 2049   1.000000
+876 2051   0.039363
+876 2055  -0.013107
+876 2059   0.004754
+876 2061  -1.000000
+877 4   0.031010
+877 2050   1.000000
+877 2052   0.039363
+877 2056  -0.013107
+877 2060   0.004754
+877 2062  -1.000000
+878 4   0.128990
+878 2051   0.078885
+878 2053   1.000000
+878 2055   0.058415
+878 2059  -0.008310
+878 2061  -1.000000
+879 4   0.128990
+879 2052   0.078885
+879 2054   1.000000
+879 2056   0.058415
+879 2060  -0.008310
+879 2062  -1.000000
+880 4   0.200000
+880 2051   0.075281
+880 2055   0.102497
+880 2057   1.000000
+880 2059   0.022222
+880 2061  -1.000000
+881 4   0.200000
+881 2052   0.075281
+881 2056   0.102497
+881 2058   1.000000
+881 2060   0.022222
+881 2062  -1.000000
+882 4   0.031010
+882 2063   1.000000
+882 2065   0.039363
+882 2069  -0.013107
+882 2073   0.004754
+882 2075  -1.000000
+883 4   0.031010
+883 2064   1.000000
+883 2066   0.039363
+883 2070  -0.013107
+883 2074   0.004754
+883 2076  -1.000000
+884 4   0.128990
+884 2065   0.078885
+884 2067   1.000000
+884 2069   0.058415
+884 2073  -0.008310
+884 2075  -1.000000
+885 4   0.128990
+885 2066   0.078885
+885 2068   1.000000
+885 2070   0.058415
+885 2074  -0.008310
+885 2076  -1.000000
+886 4   0.200000
+886 2065   0.075281
+886 2069   0.102497
+886 2071   1.000000
+886 2073   0.022222
+886 2075  -1.000000
+887 4   0.200000
+887 2066   0.075281
+887 2070   0.102497
+887 2072   1.000000
+887 2074   0.022222
+887 2076  -1.000000
+888 4   0.031010
+888 2077   1.000000
+888 2079   0.039363
+888 2083  -0.013107
+888 2087   0.004754
+888 2089  -1.000000
+889 4   0.031010
+889 2078   1.000000
+889 2080   0.039363
+889 2084  -0.013107
+889 2088   0.004754
+889 2090  -1.000000
+890 4   0.128990
+890 2079   0.078885
+890 2081   1.000000
+890 2083   0.058415
+890 2087  -0.008310
+890 2089  -1.000000
+891 4   0.128990
+891 2080   0.078885
+891 2082   1.000000
+891 2084   0.058415
+891 2088  -0.008310
+891 2090  -1.000000
+892 4   0.200000
+892 2079   0.075281
+892 2083   0.102497
+892 2085   1.000000
+892 2087   0.022222
+892 2089  -1.000000
+893 4   0.200000
+893 2080   0.075281
+893 2084   0.102497
+893 2086   1.000000
+893 2088   0.022222
+893 2090  -1.000000
+894 4   0.031010
+894 2091   1.000000
+894 2093   0.039363
+894 2097  -0.013107
+894 2101   0.004754
+894 2103  -1.000000
+895 4   0.031010
+895 2092   1.000000
+895 2094   0.039363
+895 2098  -0.013107
+895 2102   0.004754
+895 2104  -1.000000
+896 4   0.128990
+896 2093   0.078885
+896 2095   1.000000
+896 2097   0.058415
+896 2101  -0.008310
+896 2103  -1.000000
+897 4   0.128990
+897 2094   0.078885
+897 2096   1.000000
+897 2098   0.058415
+897 2102  -0.008310
+897 2104  -1.000000
+898 4   0.200000
+898 2093   0.075281
+898 2097   0.102497
+898 2099   1.000000
+898 2101   0.022222
+898 2103  -1.000000
+899 4   0.200000
+899 2094   0.075281
+899 2098   0.102497
+899 2100   1.000000
+899 2102   0.022222
+899 2104  -1.000000
+900 4   0.031010
+900 2105   1.000000
+900 2107   0.039363
+900 2111  -0.013107
+900 2115   0.004754
+900 2117  -1.000000
+901 4   0.031010
+901 2106   1.000000
+901 2108   0.039363
+901 2112  -0.013107
+901 2116   0.004754
+901 2118  -1.000000
+902 4   0.128990
+902 2107   0.078885
+902 2109   1.000000
+902 2111   0.058415
+902 2115  -0.008310
+902 2117  -1.000000
+903 4   0.128990
+903 2108   0.078885
+903 2110   1.000000
+903 2112   0.058415
+903 2116  -0.008310
+903 2118  -1.000000
+904 4   0.200000
+904 2107   0.075281
+904 2111   0.102497
+904 2113   1.000000
+904 2115   0.022222
+904 2117  -1.000000
+905 4   0.200000
+905 2108   0.075281
+905 2112   0.102497
+905 2114   1.000000
+905 2116   0.022222
+905 2118  -1.000000
+906 4   0.031010
+906 2119   1.000000
+906 2121   0.039363
+906 2125  -0.013107
+906 2129   0.004754
+906 2131  -1.000000
+907 4   0.031010
+907 2120   1.000000
+907 2122   0.039363
+907 2126  -0.013107
+907 2130   0.004754
+907 2132  -1.000000
+908 4   0.128990
+908 2121   0.078885
+908 2123   1.000000
+908 2125   0.058415
+908 2129  -0.008310
+908 2131  -1.000000
+909 4   0.128990
+909 2122   0.078885
+909 2124   1.000000
+909 2126   0.058415
+909 2130  -0.008310
+909 2132  -1.000000
+910 4   0.200000
+910 2121   0.075281
+910 2125   0.102497
+910 2127   1.000000
+910 2129   0.022222
+910 2131  -1.000000
+911 4   0.200000
+911 2122   0.075281
+911 2126   0.102497
+911 2128   1.000000
+911 2130   0.022222
+911 2132  -1.000000
+912 4   0.031010
+912 2133   1.000000
+912 2135   0.039363
+912 2139  -0.013107
+912 2143   0.004754
+912 2145  -1.000000
+913 4   0.031010
+913 2134   1.000000
+913 2136   0.039363
+913 2140  -0.013107
+913 2144   0.004754
+913 2146  -1.000000
+914 4   0.128990
+914 2135   0.078885
+914 2137   1.000000
+914 2139   0.058415
+914 2143  -0.008310
+914 2145  -1.000000
+915 4   0.128990
+915 2136   0.078885
+915 2138   1.000000
+915 2140   0.058415
+915 2144  -0.008310
+915 2146  -1.000000
+916 4   0.200000
+916 2135   0.075281
+916 2139   0.102497
+916 2141   1.000000
+916 2143   0.022222
+916 2145  -1.000000
+917 4   0.200000
+917 2136   0.075281
+917 2140   0.102497
+917 2142   1.000000
+917 2144   0.022222
+917 2146  -1.000000
+918 4   0.031010
+918 2147   1.000000
+918 2149   0.039363
+918 2153  -0.013107
+918 2157   0.004754
+918 2159  -1.000000
+919 4   0.031010
+919 2148   1.000000
+919 2150   0.039363
+919 2154  -0.013107
+919 2158   0.004754
+919 2160  -1.000000
+920 4   0.128990
+920 2149   0.078885
+920 2151   1.000000
+920 2153   0.058415
+920 2157  -0.008310
+920 2159  -1.000000
+921 4   0.128990
+921 2150   0.078885
+921 2152   1.000000
+921 2154   0.058415
+921 2158  -0.008310
+921 2160  -1.000000
+922 4   0.200000
+922 2149   0.075281
+922 2153   0.102497
+922 2155   1.000000
+922 2157   0.022222
+922 2159  -1.000000
+923 4   0.200000
+923 2150   0.075281
+923 2154   0.102497
+923 2156   1.000000
+923 2158   0.022222
+923 2160  -1.000000
+924 4   0.031010
+924 2161   1.000000
+924 2163   0.039363
+924 2167  -0.013107
+924 2171   0.004754
+924 2173  -1.000000
+925 4   0.031010
+925 2162   1.000000
+925 2164   0.039363
+925 2168  -0.013107
+925 2172   0.004754
+925 2174  -1.000000
+926 4   0.128990
+926 2163   0.078885
+926 2165   1.000000
+926 2167   0.058415
+926 2171  -0.008310
+926 2173  -1.000000
+927 4   0.128990
+927 2164   0.078885
+927 2166   1.000000
+927 2168   0.058415
+927 2172  -0.008310
+927 2174  -1.000000
+928 4   0.200000
+928 2163   0.075281
+928 2167   0.102497
+928 2169   1.000000
+928 2171   0.022222
+928 2173  -1.000000
+929 4   0.200000
+929 2164   0.075281
+929 2168   0.102497
+929 2170   1.000000
+929 2172   0.022222
+929 2174  -1.000000
+930 4   0.031010
+930 2175   1.000000
+930 2177   0.039363
+930 2181  -0.013107
+930 2185   0.004754
+930 2187  -1.000000
+931 4   0.031010
+931 2176   1.000000
+931 2178   0.039363
+931 2182  -0.013107
+931 2186   0.004754
+931 2188  -1.000000
+932 4   0.128990
+932 2177   0.078885
+932 2179   1.000000
+932 2181   0.058415
+932 2185  -0.008310
+932 2187  -1.000000
+933 4   0.128990
+933 2178   0.078885
+933 2180   1.000000
+933 2182   0.058415
+933 2186  -0.008310
+933 2188  -1.000000
+934 4   0.200000
+934 2177   0.075281
+934 2181   0.102497
+934 2183   1.000000
+934 2185   0.022222
+934 2187  -1.000000
+935 4   0.200000
+935 2178   0.075281
+935 2182   0.102497
+935 2184   1.000000
+935 2186   0.022222
+935 2188  -1.000000
+936 4   0.031010
+936 2189   1.000000
+936 2191   0.039363
+936 2195  -0.013107
+936 2199   0.004754
+936 2201  -1.000000
+937 4   0.031010
+937 2190   1.000000
+937 2192   0.039363
+937 2196  -0.013107
+937 2200   0.004754
+937 2202  -1.000000
+938 4   0.128990
+938 2191   0.078885
+938 2193   1.000000
+938 2195   0.058415
+938 2199  -0.008310
+938 2201  -1.000000
+939 4   0.128990
+939 2192   0.078885
+939 2194   1.000000
+939 2196   0.058415
+939 2200  -0.008310
+939 2202  -1.000000
+940 4   0.200000
+940 2191   0.075281
+940 2195   0.102497
+940 2197   1.000000
+940 2199   0.022222
+940 2201  -1.000000
+941 4   0.200000
+941 2192   0.075281
+941 2196   0.102497
+941 2198   1.000000
+941 2200   0.022222
+941 2202  -1.000000
+942 4   0.031010
+942 2203   1.000000
+942 2205   0.039363
+942 2209  -0.013107
+942 2213   0.004754
+942 2215  -1.000000
+943 4   0.031010
+943 2204   1.000000
+943 2206   0.039363
+943 2210  -0.013107
+943 2214   0.004754
+943 2216  -1.000000
+944 4   0.128990
+944 2205   0.078885
+944 2207   1.000000
+944 2209   0.058415
+944 2213  -0.008310
+944 2215  -1.000000
+945 4   0.128990
+945 2206   0.078885
+945 2208   1.000000
+945 2210   0.058415
+945 2214  -0.008310
+945 2216  -1.000000
+946 4   0.200000
+946 2205   0.075281
+946 2209   0.102497
+946 2211   1.000000
+946 2213   0.022222
+946 2215  -1.000000
+947 4   0.200000
+947 2206   0.075281
+947 2210   0.102497
+947 2212   1.000000
+947 2214   0.022222
+947 2216  -1.000000
+948 4   0.031010
+948 2217   1.000000
+948 2219   0.039363
+948 2223  -0.013107
+948 2227   0.004754
+948 2229  -1.000000
+949 4   0.031010
+949 2218   1.000000
+949 2220   0.039363
+949 2224  -0.013107
+949 2228   0.004754
+949 2230  -1.000000
+950 4   0.128990
+950 2219   0.078885
+950 2221   1.000000
+950 2223   0.058415
+950 2227  -0.008310
+950 2229  -1.000000
+951 4   0.128990
+951 2220   0.078885
+951 2222   1.000000
+951 2224   0.058415
+951 2228  -0.008310
+951 2230  -1.000000
+952 4   0.200000
+952 2219   0.075281
+952 2223   0.102497
+952 2225   1.000000
+952 2227   0.022222
+952 2229  -1.000000
+953 4   0.200000
+953 2220   0.075281
+953 2224   0.102497
+953 2226   1.000000
+953 2228   0.022222
+953 2230  -1.000000
+954 4   0.031010
+954 2231   1.000000
+954 2233   0.039363
+954 2237  -0.013107
+954 2241   0.004754
+954 2243  -1.000000
+955 4   0.031010
+955 2232   1.000000
+955 2234   0.039363
+955 2238  -0.013107
+955 2242   0.004754
+955 2244  -1.000000
+956 4   0.128990
+956 2233   0.078885
+956 2235   1.000000
+956 2237   0.058415
+956 2241  -0.008310
+956 2243  -1.000000
+957 4   0.128990
+957 2234   0.078885
+957 2236   1.000000
+957 2238   0.058415
+957 2242  -0.008310
+957 2244  -1.000000
+958 4   0.200000
+958 2233   0.075281
+958 2237   0.102497
+958 2239   1.000000
+958 2241   0.022222
+958 2243  -1.000000
+959 4   0.200000
+959 2234   0.075281
+959 2238   0.102497
+959 2240   1.000000
+959 2242   0.022222
+959 2244  -1.000000
+960 4   0.031010
+960 2245   1.000000
+960 2247   0.039363
+960 2251  -0.013107
+960 2255   0.004754
+960 2257  -1.000000
+961 4   0.031010
+961 2246   1.000000
+961 2248   0.039363
+961 2252  -0.013107
+961 2256   0.004754
+961 2258  -1.000000
+962 4   0.128990
+962 2247   0.078885
+962 2249   1.000000
+962 2251   0.058415
+962 2255  -0.008310
+962 2257  -1.000000
+963 4   0.128990
+963 2248   0.078885
+963 2250   1.000000
+963 2252   0.058415
+963 2256  -0.008310
+963 2258  -1.000000
+964 4   0.200000
+964 2247   0.075281
+964 2251   0.102497
+964 2253   1.000000
+964 2255   0.022222
+964 2257  -1.000000
+965 4   0.200000
+965 2248   0.075281
+965 2252   0.102497
+965 2254   1.000000
+965 2256   0.022222
+965 2258  -1.000000
+966 4   0.031010
+966 2259   1.000000
+966 2261   0.039363
+966 2265  -0.013107
+966 2269   0.004754
+966 2271  -1.000000
+967 4   0.031010
+967 2260   1.000000
+967 2262   0.039363
+967 2266  -0.013107
+967 2270   0.004754
+967 2272  -1.000000
+968 4   0.128990
+968 2261   0.078885
+968 2263   1.000000
+968 2265   0.058415
+968 2269  -0.008310
+968 2271  -1.000000
+969 4   0.128990
+969 2262   0.078885
+969 2264   1.000000
+969 2266   0.058415
+969 2270  -0.008310
+969 2272  -1.000000
+970 4   0.200000
+970 2261   0.075281
+970 2265   0.102497
+970 2267   1.000000
+970 2269   0.022222
+970 2271  -1.000000
+971 4   0.200000
+971 2262   0.075281
+971 2266   0.102497
+971 2268   1.000000
+971 2270   0.022222
+971 2272  -1.000000
+972 4   0.031010
+972 2273   1.000000
+972 2275   0.039363
+972 2279  -0.013107
+972 2283   0.004754
+972 2285  -1.000000
+973 4   0.031010
+973 2274   1.000000
+973 2276   0.039363
+973 2280  -0.013107
+973 2284   0.004754
+973 2286  -1.000000
+974 4   0.128990
+974 2275   0.078885
+974 2277   1.000000
+974 2279   0.058415
+974 2283  -0.008310
+974 2285  -1.000000
+975 4   0.128990
+975 2276   0.078885
+975 2278   1.000000
+975 2280   0.058415
+975 2284  -0.008310
+975 2286  -1.000000
+976 4   0.200000
+976 2275   0.075281
+976 2279   0.102497
+976 2281   1.000000
+976 2283   0.022222
+976 2285  -1.000000
+977 4   0.200000
+977 2276   0.075281
+977 2280   0.102497
+977 2282   1.000000
+977 2284   0.022222
+977 2286  -1.000000
+978 4   0.031010
+978 2287   1.000000
+978 2289   0.039363
+978 2293  -0.013107
+978 2297   0.004754
+978 2299  -1.000000
+979 4   0.031010
+979 2288   1.000000
+979 2290   0.039363
+979 2294  -0.013107
+979 2298   0.004754
+979 2300  -1.000000
+980 4   0.128990
+980 2289   0.078885
+980 2291   1.000000
+980 2293   0.058415
+980 2297  -0.008310
+980 2299  -1.000000
+981 4   0.128990
+981 2290   0.078885
+981 2292   1.000000
+981 2294   0.058415
+981 2298  -0.008310
+981 2300  -1.000000
+982 4   0.200000
+982 2289   0.075281
+982 2293   0.102497
+982 2295   1.000000
+982 2297   0.022222
+982 2299  -1.000000
+983 4   0.200000
+983 2290   0.075281
+983 2294   0.102497
+983 2296   1.000000
+983 2298   0.022222
+983 2300  -1.000000
+984 4   0.031010
+984 2301   1.000000
+984 2303   0.039363
+984 2307  -0.013107
+984 2311   0.004754
+984 2313  -1.000000
+985 4   0.031010
+985 2302   1.000000
+985 2304   0.039363
+985 2308  -0.013107
+985 2312   0.004754
+985 2314  -1.000000
+986 4   0.128990
+986 2303   0.078885
+986 2305   1.000000
+986 2307   0.058415
+986 2311  -0.008310
+986 2313  -1.000000
+987 4   0.128990
+987 2304   0.078885
+987 2306   1.000000
+987 2308   0.058415
+987 2312  -0.008310
+987 2314  -1.000000
+988 4   0.200000
+988 2303   0.075281
+988 2307   0.102497
+988 2309   1.000000
+988 2311   0.022222
+988 2313  -1.000000
+989 4   0.200000
+989 2304   0.075281
+989 2308   0.102497
+989 2310   1.000000
+989 2312   0.022222
+989 2314  -1.000000
+990 4   0.031010
+990 2315   1.000000
+990 2317   0.039363
+990 2321  -0.013107
+990 2325   0.004754
+990 2327  -1.000000
+991 4   0.031010
+991 2316   1.000000
+991 2318   0.039363
+991 2322  -0.013107
+991 2326   0.004754
+991 2328  -1.000000
+992 4   0.128990
+992 2317   0.078885
+992 2319   1.000000
+992 2321   0.058415
+992 2325  -0.008310
+992 2327  -1.000000
+993 4   0.128990
+993 2318   0.078885
+993 2320   1.000000
+993 2322   0.058415
+993 2326  -0.008310
+993 2328  -1.000000
+994 4   0.200000
+994 2317   0.075281
+994 2321   0.102497
+994 2323   1.000000
+994 2325   0.022222
+994 2327  -1.000000
+995 4   0.200000
+995 2318   0.075281
+995 2322   0.102497
+995 2324   1.000000
+995 2326   0.022222
+995 2328  -1.000000
+996 4   0.031010
+996 2329   1.000000
+996 2331   0.039363
+996 2335  -0.013107
+996 2339   0.004754
+996 2341  -1.000000
+997 4   0.031010
+997 2330   1.000000
+997 2332   0.039363
+997 2336  -0.013107
+997 2340   0.004754
+997 2342  -1.000000
+998 4   0.128990
+998 2331   0.078885
+998 2333   1.000000
+998 2335   0.058415
+998 2339  -0.008310
+998 2341  -1.000000
+999 4   0.128990
+999 2332   0.078885
+999 2334   1.000000
+999 2336   0.058415
+999 2340  -0.008310
+999 2342  -1.000000
+1000 4   0.200000
+1000 2331   0.075281
+1000 2335   0.102497
+1000 2337   1.000000
+1000 2339   0.022222
+1000 2341  -1.000000
+1001 4   0.200000
+1001 2332   0.075281
+1001 2336   0.102497
+1001 2338   1.000000
+1001 2340   0.022222
+1001 2342  -1.000000
+1002 4   0.031010
+1002 2343   1.000000
+1002 2345   0.039363
+1002 2349  -0.013107
+1002 2353   0.004754
+1002 2355  -1.000000
+1003 4   0.031010
+1003 2344   1.000000
+1003 2346   0.039363
+1003 2350  -0.013107
+1003 2354   0.004754
+1003 2356  -1.000000
+1004 4   0.128990
+1004 2345   0.078885
+1004 2347   1.000000
+1004 2349   0.058415
+1004 2353  -0.008310
+1004 2355  -1.000000
+1005 4   0.128990
+1005 2346   0.078885
+1005 2348   1.000000
+1005 2350   0.058415
+1005 2354  -0.008310
+1005 2356  -1.000000
+1006 4   0.200000
+1006 2345   0.075281
+1006 2349   0.102497
+1006 2351   1.000000
+1006 2353   0.022222
+1006 2355  -1.000000
+1007 4   0.200000
+1007 2346   0.075281
+1007 2350   0.102497
+1007 2352   1.000000
+1007 2354   0.022222
+1007 2356  -1.000000
+1008 4   0.031010
+1008 2357   1.000000
+1008 2359   0.039363
+1008 2363  -0.013107
+1008 2367   0.004754
+1008 2369  -1.000000
+1009 4   0.031010
+1009 2358   1.000000
+1009 2360   0.039363
+1009 2364  -0.013107
+1009 2368   0.004754
+1009 2370  -1.000000
+1010 4   0.128990
+1010 2359   0.078885
+1010 2361   1.000000
+1010 2363   0.058415
+1010 2367  -0.008310
+1010 2369  -1.000000
+1011 4   0.128990
+1011 2360   0.078885
+1011 2362   1.000000
+1011 2364   0.058415
+1011 2368  -0.008310
+1011 2370  -1.000000
+1012 4   0.200000
+1012 2359   0.075281
+1012 2363   0.102497
+1012 2365   1.000000
+1012 2367   0.022222
+1012 2369  -1.000000
+1013 4   0.200000
+1013 2360   0.075281
+1013 2364   0.102497
+1013 2366   1.000000
+1013 2368   0.022222
+1013 2370  -1.000000
+1014 4   0.031010
+1014 2371   1.000000
+1014 2373   0.039363
+1014 2377  -0.013107
+1014 2381   0.004754
+1014 2383  -1.000000
+1015 4   0.031010
+1015 2372   1.000000
+1015 2374   0.039363
+1015 2378  -0.013107
+1015 2382   0.004754
+1015 2384  -1.000000
+1016 4   0.128990
+1016 2373   0.078885
+1016 2375   1.000000
+1016 2377   0.058415
+1016 2381  -0.008310
+1016 2383  -1.000000
+1017 4   0.128990
+1017 2374   0.078885
+1017 2376   1.000000
+1017 2378   0.058415
+1017 2382  -0.008310
+1017 2384  -1.000000
+1018 4   0.200000
+1018 2373   0.075281
+1018 2377   0.102497
+1018 2379   1.000000
+1018 2381   0.022222
+1018 2383  -1.000000
+1019 4   0.200000
+1019 2374   0.075281
+1019 2378   0.102497
+1019 2380   1.000000
+1019 2382   0.022222
+1019 2384  -1.000000
+1020 4   0.031010
+1020 2385   1.000000
+1020 2387   0.039363
+1020 2391  -0.013107
+1020 2395   0.004754
+1020 2397  -1.000000
+1021 4   0.031010
+1021 2386   1.000000
+1021 2388   0.039363
+1021 2392  -0.013107
+1021 2396   0.004754
+1021 2398  -1.000000
+1022 4   0.128990
+1022 2387   0.078885
+1022 2389   1.000000
+1022 2391   0.058415
+1022 2395  -0.008310
+1022 2397  -1.000000
+1023 4   0.128990
+1023 2388   0.078885
+1023 2390   1.000000
+1023 2392   0.058415
+1023 2396  -0.008310
+1023 2398  -1.000000
+1024 4   0.200000
+1024 2387   0.075281
+1024 2391   0.102497
+1024 2393   1.000000
+1024 2395   0.022222
+1024 2397  -1.000000
+1025 4   0.200000
+1025 2388   0.075281
+1025 2392   0.102497
+1025 2394   1.000000
+1025 2396   0.022222
+1025 2398  -1.000000
+1026 4   0.031010
+1026 2399   1.000000
+1026 2401   0.039363
+1026 2405  -0.013107
+1026 2409   0.004754
+1026 2411  -1.000000
+1027 4   0.031010
+1027 2400   1.000000
+1027 2402   0.039363
+1027 2406  -0.013107
+1027 2410   0.004754
+1027 2412  -1.000000
+1028 4   0.128990
+1028 2401   0.078885
+1028 2403   1.000000
+1028 2405   0.058415
+1028 2409  -0.008310
+1028 2411  -1.000000
+1029 4   0.128990
+1029 2402   0.078885
+1029 2404   1.000000
+1029 2406   0.058415
+1029 2410  -0.008310
+1029 2412  -1.000000
+1030 4   0.200000
+1030 2401   0.075281
+1030 2405   0.102497
+1030 2407   1.000000
+1030 2409   0.022222
+1030 2411  -1.000000
+1031 4   0.200000
+1031 2402   0.075281
+1031 2406   0.102497
+1031 2408   1.000000
+1031 2410   0.022222
+1031 2412  -1.000000
+1032 4   0.031010
+1032 2413   1.000000
+1032 2415   0.039363
+1032 2419  -0.013107
+1032 2423   0.004754
+1032 2425  -1.000000
+1033 4   0.031010
+1033 2414   1.000000
+1033 2416   0.039363
+1033 2420  -0.013107
+1033 2424   0.004754
+1033 2426  -1.000000
+1034 4   0.128990
+1034 2415   0.078885
+1034 2417   1.000000
+1034 2419   0.058415
+1034 2423  -0.008310
+1034 2425  -1.000000
+1035 4   0.128990
+1035 2416   0.078885
+1035 2418   1.000000
+1035 2420   0.058415
+1035 2424  -0.008310
+1035 2426  -1.000000
+1036 4   0.200000
+1036 2415   0.075281
+1036 2419   0.102497
+1036 2421   1.000000
+1036 2423   0.022222
+1036 2425  -1.000000
+1037 4   0.200000
+1037 2416   0.075281
+1037 2420   0.102497
+1037 2422   1.000000
+1037 2424   0.022222
+1037 2426  -1.000000
+1038 4   0.031010
+1038 2427   1.000000
+1038 2429   0.039363
+1038 2433  -0.013107
+1038 2437   0.004754
+1038 2439  -1.000000
+1039 4   0.031010
+1039 2428   1.000000
+1039 2430   0.039363
+1039 2434  -0.013107
+1039 2438   0.004754
+1039 2440  -1.000000
+1040 4   0.128990
+1040 2429   0.078885
+1040 2431   1.000000
+1040 2433   0.058415
+1040 2437  -0.008310
+1040 2439  -1.000000
+1041 4   0.128990
+1041 2430   0.078885
+1041 2432   1.000000
+1041 2434   0.058415
+1041 2438  -0.008310
+1041 2440  -1.000000
+1042 4   0.200000
+1042 2429   0.075281
+1042 2433   0.102497
+1042 2435   1.000000
+1042 2437   0.022222
+1042 2439  -1.000000
+1043 4   0.200000
+1043 2430   0.075281
+1043 2434   0.102497
+1043 2436   1.000000
+1043 2438   0.022222
+1043 2440  -1.000000
+1044 4   0.031010
+1044 2441   1.000000
+1044 2443   0.039363
+1044 2447  -0.013107
+1044 2451   0.004754
+1044 2453  -1.000000
+1045 4   0.031010
+1045 2442   1.000000
+1045 2444   0.039363
+1045 2448  -0.013107
+1045 2452   0.004754
+1045 2454  -1.000000
+1046 4   0.128990
+1046 2443   0.078885
+1046 2445   1.000000
+1046 2447   0.058415
+1046 2451  -0.008310
+1046 2453  -1.000000
+1047 4   0.128990
+1047 2444   0.078885
+1047 2446   1.000000
+1047 2448   0.058415
+1047 2452  -0.008310
+1047 2454  -1.000000
+1048 4   0.200000
+1048 2443   0.075281
+1048 2447   0.102497
+1048 2449   1.000000
+1048 2451   0.022222
+1048 2453  -1.000000
+1049 4   0.200000
+1049 2444   0.075281
+1049 2448   0.102497
+1049 2450   1.000000
+1049 2452   0.022222
+1049 2454  -1.000000
+1050 4   0.031010
+1050 2455   1.000000
+1050 2457   0.039363
+1050 2461  -0.013107
+1050 2465   0.004754
+1050 2467  -1.000000
+1051 4   0.031010
+1051 2456   1.000000
+1051 2458   0.039363
+1051 2462  -0.013107
+1051 2466   0.004754
+1051 2468  -1.000000
+1052 4   0.128990
+1052 2457   0.078885
+1052 2459   1.000000
+1052 2461   0.058415
+1052 2465  -0.008310
+1052 2467  -1.000000
+1053 4   0.128990
+1053 2458   0.078885
+1053 2460   1.000000
+1053 2462   0.058415
+1053 2466  -0.008310
+1053 2468  -1.000000
+1054 4   0.200000
+1054 2457   0.075281
+1054 2461   0.102497
+1054 2463   1.000000
+1054 2465   0.022222
+1054 2467  -1.000000
+1055 4   0.200000
+1055 2458   0.075281
+1055 2462   0.102497
+1055 2464   1.000000
+1055 2466   0.022222
+1055 2468  -1.000000
+1056 4   0.031010
+1056 2469   1.000000
+1056 2471   0.039363
+1056 2475  -0.013107
+1056 2479   0.004754
+1056 2481  -1.000000
+1057 4   0.031010
+1057 2470   1.000000
+1057 2472   0.039363
+1057 2476  -0.013107
+1057 2480   0.004754
+1057 2482  -1.000000
+1058 4   0.128990
+1058 2471   0.078885
+1058 2473   1.000000
+1058 2475   0.058415
+1058 2479  -0.008310
+1058 2481  -1.000000
+1059 4   0.128990
+1059 2472   0.078885
+1059 2474   1.000000
+1059 2476   0.058415
+1059 2480  -0.008310
+1059 2482  -1.000000
+1060 4   0.200000
+1060 2471   0.075281
+1060 2475   0.102497
+1060 2477   1.000000
+1060 2479   0.022222
+1060 2481  -1.000000
+1061 4   0.200000
+1061 2472   0.075281
+1061 2476   0.102497
+1061 2478   1.000000
+1061 2480   0.022222
+1061 2482  -1.000000
+1062 4   0.031010
+1062 2483   1.000000
+1062 2485   0.039363
+1062 2489  -0.013107
+1062 2493   0.004754
+1062 2495  -1.000000
+1063 4   0.031010
+1063 2484   1.000000
+1063 2486   0.039363
+1063 2490  -0.013107
+1063 2494   0.004754
+1063 2496  -1.000000
+1064 4   0.128990
+1064 2485   0.078885
+1064 2487   1.000000
+1064 2489   0.058415
+1064 2493  -0.008310
+1064 2495  -1.000000
+1065 4   0.128990
+1065 2486   0.078885
+1065 2488   1.000000
+1065 2490   0.058415
+1065 2494  -0.008310
+1065 2496  -1.000000
+1066 4   0.200000
+1066 2485   0.075281
+1066 2489   0.102497
+1066 2491   1.000000
+1066 2493   0.022222
+1066 2495  -1.000000
+1067 4   0.200000
+1067 2486   0.075281
+1067 2490   0.102497
+1067 2492   1.000000
+1067 2494   0.022222
+1067 2496  -1.000000
+1068 4   0.031010
+1068 2497   1.000000
+1068 2499   0.039363
+1068 2503  -0.013107
+1068 2507   0.004754
+1068 2509  -1.000000
+1069 4   0.031010
+1069 2498   1.000000
+1069 2500   0.039363
+1069 2504  -0.013107
+1069 2508   0.004754
+1069 2510  -1.000000
+1070 4   0.128990
+1070 2499   0.078885
+1070 2501   1.000000
+1070 2503   0.058415
+1070 2507  -0.008310
+1070 2509  -1.000000
+1071 4   0.128990
+1071 2500   0.078885
+1071 2502   1.000000
+1071 2504   0.058415
+1071 2508  -0.008310
+1071 2510  -1.000000
+1072 4   0.200000
+1072 2499   0.075281
+1072 2503   0.102497
+1072 2505   1.000000
+1072 2507   0.022222
+1072 2509  -1.000000
+1073 4   0.200000
+1073 2500   0.075281
+1073 2504   0.102497
+1073 2506   1.000000
+1073 2508   0.022222
+1073 2510  -1.000000
+1074 4   0.031010
+1074 2511   1.000000
+1074 2513   0.039363
+1074 2517  -0.013107
+1074 2521   0.004754
+1074 2523  -1.000000
+1075 4   0.031010
+1075 2512   1.000000
+1075 2514   0.039363
+1075 2518  -0.013107
+1075 2522   0.004754
+1075 2524  -1.000000
+1076 4   0.128990
+1076 2513   0.078885
+1076 2515   1.000000
+1076 2517   0.058415
+1076 2521  -0.008310
+1076 2523  -1.000000
+1077 4   0.128990
+1077 2514   0.078885
+1077 2516   1.000000
+1077 2518   0.058415
+1077 2522  -0.008310
+1077 2524  -1.000000
+1078 4   0.200000
+1078 2513   0.075281
+1078 2517   0.102497
+1078 2519   1.000000
+1078 2521   0.022222
+1078 2523  -1.000000
+1079 4   0.200000
+1079 2514   0.075281
+1079 2518   0.102497
+1079 2520   1.000000
+1079 2522   0.022222
+1079 2524  -1.000000
+1080 4   0.031010
+1080 2525   1.000000
+1080 2527   0.039363
+1080 2531  -0.013107
+1080 2535   0.004754
+1080 2537  -1.000000
+1081 4   0.031010
+1081 2526   1.000000
+1081 2528   0.039363
+1081 2532  -0.013107
+1081 2536   0.004754
+1081 2538  -1.000000
+1082 4   0.128990
+1082 2527   0.078885
+1082 2529   1.000000
+1082 2531   0.058415
+1082 2535  -0.008310
+1082 2537  -1.000000
+1083 4   0.128990
+1083 2528   0.078885
+1083 2530   1.000000
+1083 2532   0.058415
+1083 2536  -0.008310
+1083 2538  -1.000000
+1084 4   0.200000
+1084 2527   0.075281
+1084 2531   0.102497
+1084 2533   1.000000
+1084 2535   0.022222
+1084 2537  -1.000000
+1085 4   0.200000
+1085 2528   0.075281
+1085 2532   0.102497
+1085 2534   1.000000
+1085 2536   0.022222
+1085 2538  -1.000000
+1086 4   0.031010
+1086 2539   1.000000
+1086 2541   0.039363
+1086 2545  -0.013107
+1086 2549   0.004754
+1086 2551  -1.000000
+1087 4   0.031010
+1087 2540   1.000000
+1087 2542   0.039363
+1087 2546  -0.013107
+1087 2550   0.004754
+1087 2552  -1.000000
+1088 4   0.128990
+1088 2541   0.078885
+1088 2543   1.000000
+1088 2545   0.058415
+1088 2549  -0.008310
+1088 2551  -1.000000
+1089 4   0.128990
+1089 2542   0.078885
+1089 2544   1.000000
+1089 2546   0.058415
+1089 2550  -0.008310
+1089 2552  -1.000000
+1090 4   0.200000
+1090 2541   0.075281
+1090 2545   0.102497
+1090 2547   1.000000
+1090 2549   0.022222
+1090 2551  -1.000000
+1091 4   0.200000
+1091 2542   0.075281
+1091 2546   0.102497
+1091 2548   1.000000
+1091 2550   0.022222
+1091 2552  -1.000000
+1092 4   0.031010
+1092 2553   1.000000
+1092 2555   0.039363
+1092 2559  -0.013107
+1092 2563   0.004754
+1092 2565  -1.000000
+1093 4   0.031010
+1093 2554   1.000000
+1093 2556   0.039363
+1093 2560  -0.013107
+1093 2564   0.004754
+1093 2566  -1.000000
+1094 4   0.128990
+1094 2555   0.078885
+1094 2557   1.000000
+1094 2559   0.058415
+1094 2563  -0.008310
+1094 2565  -1.000000
+1095 4   0.128990
+1095 2556   0.078885
+1095 2558   1.000000
+1095 2560   0.058415
+1095 2564  -0.008310
+1095 2566  -1.000000
+1096 4   0.200000
+1096 2555   0.075281
+1096 2559   0.102497
+1096 2561   1.000000
+1096 2563   0.022222
+1096 2565  -1.000000
+1097 4   0.200000
+1097 2556   0.075281
+1097 2560   0.102497
+1097 2562   1.000000
+1097 2564   0.022222
+1097 2566  -1.000000
+1098 4   0.031010
+1098 2567   1.000000
+1098 2569   0.039363
+1098 2573  -0.013107
+1098 2577   0.004754
+1098 2579  -1.000000
+1099 4   0.031010
+1099 2568   1.000000
+1099 2570   0.039363
+1099 2574  -0.013107
+1099 2578   0.004754
+1099 2580  -1.000000
+1100 4   0.128990
+1100 2569   0.078885
+1100 2571   1.000000
+1100 2573   0.058415
+1100 2577  -0.008310
+1100 2579  -1.000000
+1101 4   0.128990
+1101 2570   0.078885
+1101 2572   1.000000
+1101 2574   0.058415
+1101 2578  -0.008310
+1101 2580  -1.000000
+1102 4   0.200000
+1102 2569   0.075281
+1102 2573   0.102497
+1102 2575   1.000000
+1102 2577   0.022222
+1102 2579  -1.000000
+1103 4   0.200000
+1103 2570   0.075281
+1103 2574   0.102497
+1103 2576   1.000000
+1103 2578   0.022222
+1103 2580  -1.000000
+1104 4   0.031010
+1104 2581   1.000000
+1104 2583   0.039363
+1104 2587  -0.013107
+1104 2591   0.004754
+1104 2593  -1.000000
+1105 4   0.031010
+1105 2582   1.000000
+1105 2584   0.039363
+1105 2588  -0.013107
+1105 2592   0.004754
+1105 2594  -1.000000
+1106 4   0.128990
+1106 2583   0.078885
+1106 2585   1.000000
+1106 2587   0.058415
+1106 2591  -0.008310
+1106 2593  -1.000000
+1107 4   0.128990
+1107 2584   0.078885
+1107 2586   1.000000
+1107 2588   0.058415
+1107 2592  -0.008310
+1107 2594  -1.000000
+1108 4   0.200000
+1108 2583   0.075281
+1108 2587   0.102497
+1108 2589   1.000000
+1108 2591   0.022222
+1108 2593  -1.000000
+1109 4   0.200000
+1109 2584   0.075281
+1109 2588   0.102497
+1109 2590   1.000000
+1109 2592   0.022222
+1109 2594  -1.000000
+1110 4   0.031010
+1110 2595   1.000000
+1110 2597   0.039363
+1110 2601  -0.013107
+1110 2605   0.004754
+1110 2607  -1.000000
+1111 4   0.031010
+1111 2596   1.000000
+1111 2598   0.039363
+1111 2602  -0.013107
+1111 2606   0.004754
+1111 2608  -1.000000
+1112 4   0.128990
+1112 2597   0.078885
+1112 2599   1.000000
+1112 2601   0.058415
+1112 2605  -0.008310
+1112 2607  -1.000000
+1113 4   0.128990
+1113 2598   0.078885
+1113 2600   1.000000
+1113 2602   0.058415
+1113 2606  -0.008310
+1113 2608  -1.000000
+1114 4   0.200000
+1114 2597   0.075281
+1114 2601   0.102497
+1114 2603   1.000000
+1114 2605   0.022222
+1114 2607  -1.000000
+1115 4   0.200000
+1115 2598   0.075281
+1115 2602   0.102497
+1115 2604   1.000000
+1115 2606   0.022222
+1115 2608  -1.000000
+1116 4   0.031010
+1116 2609   1.000000
+1116 2611   0.039363
+1116 2615  -0.013107
+1116 2619   0.004754
+1116 2621  -1.000000
+1117 4   0.031010
+1117 2610   1.000000
+1117 2612   0.039363
+1117 2616  -0.013107
+1117 2620   0.004754
+1117 2622  -1.000000
+1118 4   0.128990
+1118 2611   0.078885
+1118 2613   1.000000
+1118 2615   0.058415
+1118 2619  -0.008310
+1118 2621  -1.000000
+1119 4   0.128990
+1119 2612   0.078885
+1119 2614   1.000000
+1119 2616   0.058415
+1119 2620  -0.008310
+1119 2622  -1.000000
+1120 4   0.200000
+1120 2611   0.075281
+1120 2615   0.102497
+1120 2617   1.000000
+1120 2619   0.022222
+1120 2621  -1.000000
+1121 4   0.200000
+1121 2612   0.075281
+1121 2616   0.102497
+1121 2618   1.000000
+1121 2620   0.022222
+1121 2622  -1.000000
+1122 4   0.031010
+1122 2623   1.000000
+1122 2625   0.039363
+1122 2629  -0.013107
+1122 2633   0.004754
+1122 2635  -1.000000
+1123 4   0.031010
+1123 2624   1.000000
+1123 2626   0.039363
+1123 2630  -0.013107
+1123 2634   0.004754
+1123 2636  -1.000000
+1124 4   0.128990
+1124 2625   0.078885
+1124 2627   1.000000
+1124 2629   0.058415
+1124 2633  -0.008310
+1124 2635  -1.000000
+1125 4   0.128990
+1125 2626   0.078885
+1125 2628   1.000000
+1125 2630   0.058415
+1125 2634  -0.008310
+1125 2636  -1.000000
+1126 4   0.200000
+1126 2625   0.075281
+1126 2629   0.102497
+1126 2631   1.000000
+1126 2633   0.022222
+1126 2635  -1.000000
+1127 4   0.200000
+1127 2626   0.075281
+1127 2630   0.102497
+1127 2632   1.000000
+1127 2634   0.022222
+1127 2636  -1.000000
+1128 4   0.031010
+1128 2637   1.000000
+1128 2639   0.039363
+1128 2643  -0.013107
+1128 2647   0.004754
+1128 2649  -1.000000
+1129 4   0.031010
+1129 2638   1.000000
+1129 2640   0.039363
+1129 2644  -0.013107
+1129 2648   0.004754
+1129 2650  -1.000000
+1130 4   0.128990
+1130 2639   0.078885
+1130 2641   1.000000
+1130 2643   0.058415
+1130 2647  -0.008310
+1130 2649  -1.000000
+1131 4   0.128990
+1131 2640   0.078885
+1131 2642   1.000000
+1131 2644   0.058415
+1131 2648  -0.008310
+1131 2650  -1.000000
+1132 4   0.200000
+1132 2639   0.075281
+1132 2643   0.102497
+1132 2645   1.000000
+1132 2647   0.022222
+1132 2649  -1.000000
+1133 4   0.200000
+1133 2640   0.075281
+1133 2644   0.102497
+1133 2646   1.000000
+1133 2648   0.022222
+1133 2650  -1.000000
+1134 4   0.031010
+1134 2651   1.000000
+1134 2653   0.039363
+1134 2657  -0.013107
+1134 2661   0.004754
+1134 2663  -1.000000
+1135 4   0.031010
+1135 2652   1.000000
+1135 2654   0.039363
+1135 2658  -0.013107
+1135 2662   0.004754
+1135 2664  -1.000000
+1136 4   0.128990
+1136 2653   0.078885
+1136 2655   1.000000
+1136 2657   0.058415
+1136 2661  -0.008310
+1136 2663  -1.000000
+1137 4   0.128990
+1137 2654   0.078885
+1137 2656   1.000000
+1137 2658   0.058415
+1137 2662  -0.008310
+1137 2664  -1.000000
+1138 4   0.200000
+1138 2653   0.075281
+1138 2657   0.102497
+1138 2659   1.000000
+1138 2661   0.022222
+1138 2663  -1.000000
+1139 4   0.200000
+1139 2654   0.075281
+1139 2658   0.102497
+1139 2660   1.000000
+1139 2662   0.022222
+1139 2664  -1.000000
+1140 4   0.031010
+1140 2665   1.000000
+1140 2667   0.039363
+1140 2671  -0.013107
+1140 2675   0.004754
+1140 2677  -1.000000
+1141 4   0.031010
+1141 2666   1.000000
+1141 2668   0.039363
+1141 2672  -0.013107
+1141 2676   0.004754
+1141 2678  -1.000000
+1142 4   0.128990
+1142 2667   0.078885
+1142 2669   1.000000
+1142 2671   0.058415
+1142 2675  -0.008310
+1142 2677  -1.000000
+1143 4   0.128990
+1143 2668   0.078885
+1143 2670   1.000000
+1143 2672   0.058415
+1143 2676  -0.008310
+1143 2678  -1.000000
+1144 4   0.200000
+1144 2667   0.075281
+1144 2671   0.102497
+1144 2673   1.000000
+1144 2675   0.022222
+1144 2677  -1.000000
+1145 4   0.200000
+1145 2668   0.075281
+1145 2672   0.102497
+1145 2674   1.000000
+1145 2676   0.022222
+1145 2678  -1.000000
+1146 4   0.031010
+1146 2679   1.000000
+1146 2681   0.039363
+1146 2685  -0.013107
+1146 2689   0.004754
+1146 2691  -1.000000
+1147 4   0.031010
+1147 2680   1.000000
+1147 2682   0.039363
+1147 2686  -0.013107
+1147 2690   0.004754
+1147 2692  -1.000000
+1148 4   0.128990
+1148 2681   0.078885
+1148 2683   1.000000
+1148 2685   0.058415
+1148 2689  -0.008310
+1148 2691  -1.000000
+1149 4   0.128990
+1149 2682   0.078885
+1149 2684   1.000000
+1149 2686   0.058415
+1149 2690  -0.008310
+1149 2692  -1.000000
+1150 4   0.200000
+1150 2681   0.075281
+1150 2685   0.102497
+1150 2687   1.000000
+1150 2689   0.022222
+1150 2691  -1.000000
+1151 4   0.200000
+1151 2682   0.075281
+1151 2686   0.102497
+1151 2688   1.000000
+1151 2690   0.022222
+1151 2692  -1.000000
+1152 4   0.031010
+1152 2693   1.000000
+1152 2695   0.039363
+1152 2699  -0.013107
+1152 2703   0.004754
+1152 2705  -1.000000
+1153 4   0.031010
+1153 2694   1.000000
+1153 2696   0.039363
+1153 2700  -0.013107
+1153 2704   0.004754
+1153 2706  -1.000000
+1154 4   0.128990
+1154 2695   0.078885
+1154 2697   1.000000
+1154 2699   0.058415
+1154 2703  -0.008310
+1154 2705  -1.000000
+1155 4   0.128990
+1155 2696   0.078885
+1155 2698   1.000000
+1155 2700   0.058415
+1155 2704  -0.008310
+1155 2706  -1.000000
+1156 4   0.200000
+1156 2695   0.075281
+1156 2699   0.102497
+1156 2701   1.000000
+1156 2703   0.022222
+1156 2705  -1.000000
+1157 4   0.200000
+1157 2696   0.075281
+1157 2700   0.102497
+1157 2702   1.000000
+1157 2704   0.022222
+1157 2706  -1.000000
+1158 4   0.031010
+1158 2707   1.000000
+1158 2709   0.039363
+1158 2713  -0.013107
+1158 2717   0.004754
+1158 2719  -1.000000
+1159 4   0.031010
+1159 2708   1.000000
+1159 2710   0.039363
+1159 2714  -0.013107
+1159 2718   0.004754
+1159 2720  -1.000000
+1160 4   0.128990
+1160 2709   0.078885
+1160 2711   1.000000
+1160 2713   0.058415
+1160 2717  -0.008310
+1160 2719  -1.000000
+1161 4   0.128990
+1161 2710   0.078885
+1161 2712   1.000000
+1161 2714   0.058415
+1161 2718  -0.008310
+1161 2720  -1.000000
+1162 4   0.200000
+1162 2709   0.075281
+1162 2713   0.102497
+1162 2715   1.000000
+1162 2717   0.022222
+1162 2719  -1.000000
+1163 4   0.200000
+1163 2710   0.075281
+1163 2714   0.102497
+1163 2716   1.000000
+1163 2718   0.022222
+1163 2720  -1.000000
+1164 4   0.031010
+1164 2721   1.000000
+1164 2723   0.039363
+1164 2727  -0.013107
+1164 2731   0.004754
+1164 2733  -1.000000
+1165 4   0.031010
+1165 2722   1.000000
+1165 2724   0.039363
+1165 2728  -0.013107
+1165 2732   0.004754
+1165 2734  -1.000000
+1166 4   0.128990
+1166 2723   0.078885
+1166 2725   1.000000
+1166 2727   0.058415
+1166 2731  -0.008310
+1166 2733  -1.000000
+1167 4   0.128990
+1167 2724   0.078885
+1167 2726   1.000000
+1167 2728   0.058415
+1167 2732  -0.008310
+1167 2734  -1.000000
+1168 4   0.200000
+1168 2723   0.075281
+1168 2727   0.102497
+1168 2729   1.000000
+1168 2731   0.022222
+1168 2733  -1.000000
+1169 4   0.200000
+1169 2724   0.075281
+1169 2728   0.102497
+1169 2730   1.000000
+1169 2732   0.022222
+1169 2734  -1.000000
+1170 4   0.031010
+1170 2735   1.000000
+1170 2737   0.039363
+1170 2741  -0.013107
+1170 2745   0.004754
+1170 2747  -1.000000
+1171 4   0.031010
+1171 2736   1.000000
+1171 2738   0.039363
+1171 2742  -0.013107
+1171 2746   0.004754
+1171 2748  -1.000000
+1172 4   0.128990
+1172 2737   0.078885
+1172 2739   1.000000
+1172 2741   0.058415
+1172 2745  -0.008310
+1172 2747  -1.000000
+1173 4   0.128990
+1173 2738   0.078885
+1173 2740   1.000000
+1173 2742   0.058415
+1173 2746  -0.008310
+1173 2748  -1.000000
+1174 4   0.200000
+1174 2737   0.075281
+1174 2741   0.102497
+1174 2743   1.000000
+1174 2745   0.022222
+1174 2747  -1.000000
+1175 4   0.200000
+1175 2738   0.075281
+1175 2742   0.102497
+1175 2744   1.000000
+1175 2746   0.022222
+1175 2748  -1.000000
+1176 4   0.031010
+1176 2749   1.000000
+1176 2751   0.039363
+1176 2755  -0.013107
+1176 2759   0.004754
+1176 2761  -1.000000
+1177 4   0.031010
+1177 2750   1.000000
+1177 2752   0.039363
+1177 2756  -0.013107
+1177 2760   0.004754
+1177 2762  -1.000000
+1178 4   0.128990
+1178 2751   0.078885
+1178 2753   1.000000
+1178 2755   0.058415
+1178 2759  -0.008310
+1178 2761  -1.000000
+1179 4   0.128990
+1179 2752   0.078885
+1179 2754   1.000000
+1179 2756   0.058415
+1179 2760  -0.008310
+1179 2762  -1.000000
+1180 4   0.200000
+1180 2751   0.075281
+1180 2755   0.102497
+1180 2757   1.000000
+1180 2759   0.022222
+1180 2761  -1.000000
+1181 4   0.200000
+1181 2752   0.075281
+1181 2756   0.102497
+1181 2758   1.000000
+1181 2760   0.022222
+1181 2762  -1.000000
+1182 4   0.031010
+1182 2763   1.000000
+1182 2765   0.039363
+1182 2769  -0.013107
+1182 2773   0.004754
+1182 2775  -1.000000
+1183 4   0.031010
+1183 2764   1.000000
+1183 2766   0.039363
+1183 2770  -0.013107
+1183 2774   0.004754
+1183 2776  -1.000000
+1184 4   0.128990
+1184 2765   0.078885
+1184 2767   1.000000
+1184 2769   0.058415
+1184 2773  -0.008310
+1184 2775  -1.000000
+1185 4   0.128990
+1185 2766   0.078885
+1185 2768   1.000000
+1185 2770   0.058415
+1185 2774  -0.008310
+1185 2776  -1.000000
+1186 4   0.200000
+1186 2765   0.075281
+1186 2769   0.102497
+1186 2771   1.000000
+1186 2773   0.022222
+1186 2775  -1.000000
+1187 4   0.200000
+1187 2766   0.075281
+1187 2770   0.102497
+1187 2772   1.000000
+1187 2774   0.022222
+1187 2776  -1.000000
+1188 4   0.031010
+1188 2777   1.000000
+1188 2779   0.039363
+1188 2783  -0.013107
+1188 2787   0.004754
+1188 2789  -1.000000
+1189 4   0.031010
+1189 2778   1.000000
+1189 2780   0.039363
+1189 2784  -0.013107
+1189 2788   0.004754
+1189 2790  -1.000000
+1190 4   0.128990
+1190 2779   0.078885
+1190 2781   1.000000
+1190 2783   0.058415
+1190 2787  -0.008310
+1190 2789  -1.000000
+1191 4   0.128990
+1191 2780   0.078885
+1191 2782   1.000000
+1191 2784   0.058415
+1191 2788  -0.008310
+1191 2790  -1.000000
+1192 4   0.200000
+1192 2779   0.075281
+1192 2783   0.102497
+1192 2785   1.000000
+1192 2787   0.022222
+1192 2789  -1.000000
+1193 4   0.200000
+1193 2780   0.075281
+1193 2784   0.102497
+1193 2786   1.000000
+1193 2788   0.022222
+1193 2790  -1.000000
+1194 4   0.031010
+1194 2791   1.000000
+1194 2793   0.039363
+1194 2797  -0.013107
+1194 2801   0.004754
+1194 2803  -1.000000
+1195 4   0.031010
+1195 2792   1.000000
+1195 2794   0.039363
+1195 2798  -0.013107
+1195 2802   0.004754
+1195 2804  -1.000000
+1196 4   0.128990
+1196 2793   0.078885
+1196 2795   1.000000
+1196 2797   0.058415
+1196 2801  -0.008310
+1196 2803  -1.000000
+1197 4   0.128990
+1197 2794   0.078885
+1197 2796   1.000000
+1197 2798   0.058415
+1197 2802  -0.008310
+1197 2804  -1.000000
+1198 4   0.200000
+1198 2793   0.075281
+1198 2797   0.102497
+1198 2799   1.000000
+1198 2801   0.022222
+1198 2803  -1.000000
+1199 4   0.200000
+1199 2794   0.075281
+1199 2798   0.102497
+1199 2800   1.000000
+1199 2802   0.022222
+1199 2804  -1.000000
+1200 4   0.031010
+1200 2805   1.000000
+1200 2807   0.039363
+1200 2811  -0.013107
+1200 2815   0.004754
+1200 2817  -1.000000
+1201 4   0.031010
+1201 2806   1.000000
+1201 2808   0.039363
+1201 2812  -0.013107
+1201 2816   0.004754
+1201 2818  -1.000000
+1202 4   0.128990
+1202 2807   0.078885
+1202 2809   1.000000
+1202 2811   0.058415
+1202 2815  -0.008310
+1202 2817  -1.000000
+1203 4   0.128990
+1203 2808   0.078885
+1203 2810   1.000000
+1203 2812   0.058415
+1203 2816  -0.008310
+1203 2818  -1.000000
+1204 4   0.200000
+1204 2807   0.075281
+1204 2811   0.102497
+1204 2813   1.000000
+1204 2815   0.022222
+1204 2817  -1.000000
+1205 4   0.200000
+1205 2808   0.075281
+1205 2812   0.102497
+1205 2814   1.000000
+1205 2816   0.022222
+1205 2818  -1.000000
+1206 4   0.031010
+1206 2819   1.000000
+1206 2821   0.039363
+1206 2825  -0.013107
+1206 2829   0.004754
+1206 2831  -1.000000
+1207 4   0.031010
+1207 2820   1.000000
+1207 2822   0.039363
+1207 2826  -0.013107
+1207 2830   0.004754
+1207 2832  -1.000000
+1208 4   0.128990
+1208 2821   0.078885
+1208 2823   1.000000
+1208 2825   0.058415
+1208 2829  -0.008310
+1208 2831  -1.000000
+1209 4   0.128990
+1209 2822   0.078885
+1209 2824   1.000000
+1209 2826   0.058415
+1209 2830  -0.008310
+1209 2832  -1.000000
+1210 4   0.200000
+1210 2821   0.075281
+1210 2825   0.102497
+1210 2827   1.000000
+1210 2829   0.022222
+1210 2831  -1.000000
+1211 4   0.200000
+1211 2822   0.075281
+1211 2826   0.102497
+1211 2828   1.000000
+1211 2830   0.022222
+1211 2832  -1.000000
+1212 4   0.031010
+1212 2833   1.000000
+1212 2835   0.039363
+1212 2839  -0.013107
+1212 2843   0.004754
+1212 2845  -1.000000
+1213 4   0.031010
+1213 2834   1.000000
+1213 2836   0.039363
+1213 2840  -0.013107
+1213 2844   0.004754
+1213 2846  -1.000000
+1214 4   0.128990
+1214 2835   0.078885
+1214 2837   1.000000
+1214 2839   0.058415
+1214 2843  -0.008310
+1214 2845  -1.000000
+1215 4   0.128990
+1215 2836   0.078885
+1215 2838   1.000000
+1215 2840   0.058415
+1215 2844  -0.008310
+1215 2846  -1.000000
+1216 4   0.200000
+1216 2835   0.075281
+1216 2839   0.102497
+1216 2841   1.000000
+1216 2843   0.022222
+1216 2845  -1.000000
+1217 4   0.200000
+1217 2836   0.075281
+1217 2840   0.102497
+1217 2842   1.000000
+1217 2844   0.022222
+1217 2846  -1.000000
+1218 4   0.031010
+1218 2847   1.000000
+1218 2849   0.039363
+1218 2853  -0.013107
+1218 2857   0.004754
+1218 2859  -1.000000
+1219 4   0.031010
+1219 2848   1.000000
+1219 2850   0.039363
+1219 2854  -0.013107
+1219 2858   0.004754
+1219 2860  -1.000000
+1220 4   0.128990
+1220 2849   0.078885
+1220 2851   1.000000
+1220 2853   0.058415
+1220 2857  -0.008310
+1220 2859  -1.000000
+1221 4   0.128990
+1221 2850   0.078885
+1221 2852   1.000000
+1221 2854   0.058415
+1221 2858  -0.008310
+1221 2860  -1.000000
+1222 4   0.200000
+1222 2849   0.075281
+1222 2853   0.102497
+1222 2855   1.000000
+1222 2857   0.022222
+1222 2859  -1.000000
+1223 4   0.200000
+1223 2850   0.075281
+1223 2854   0.102497
+1223 2856   1.000000
+1223 2858   0.022222
+1223 2860  -1.000000
+1224 4   0.031010
+1224 2861   1.000000
+1224 2863   0.039363
+1224 2867  -0.013107
+1224 2871   0.004754
+1224 2873  -1.000000
+1225 4   0.031010
+1225 2862   1.000000
+1225 2864   0.039363
+1225 2868  -0.013107
+1225 2872   0.004754
+1225 2874  -1.000000
+1226 4   0.128990
+1226 2863   0.078885
+1226 2865   1.000000
+1226 2867   0.058415
+1226 2871  -0.008310
+1226 2873  -1.000000
+1227 4   0.128990
+1227 2864   0.078885
+1227 2866   1.000000
+1227 2868   0.058415
+1227 2872  -0.008310
+1227 2874  -1.000000
+1228 4   0.200000
+1228 2863   0.075281
+1228 2867   0.102497
+1228 2869   1.000000
+1228 2871   0.022222
+1228 2873  -1.000000
+1229 4   0.200000
+1229 2864   0.075281
+1229 2868   0.102497
+1229 2870   1.000000
+1229 2872   0.022222
+1229 2874  -1.000000
+1230 4   0.031010
+1230 2875   1.000000
+1230 2877   0.039363
+1230 2881  -0.013107
+1230 2885   0.004754
+1230 2887  -1.000000
+1231 4   0.031010
+1231 2876   1.000000
+1231 2878   0.039363
+1231 2882  -0.013107
+1231 2886   0.004754
+1231 2888  -1.000000
+1232 4   0.128990
+1232 2877   0.078885
+1232 2879   1.000000
+1232 2881   0.058415
+1232 2885  -0.008310
+1232 2887  -1.000000
+1233 4   0.128990
+1233 2878   0.078885
+1233 2880   1.000000
+1233 2882   0.058415
+1233 2886  -0.008310
+1233 2888  -1.000000
+1234 4   0.200000
+1234 2877   0.075281
+1234 2881   0.102497
+1234 2883   1.000000
+1234 2885   0.022222
+1234 2887  -1.000000
+1235 4   0.200000
+1235 2878   0.075281
+1235 2882   0.102497
+1235 2884   1.000000
+1235 2886   0.022222
+1235 2888  -1.000000
+1236 4   0.031010
+1236 2889   1.000000
+1236 2891   0.039363
+1236 2895  -0.013107
+1236 2899   0.004754
+1236 2901  -1.000000
+1237 4   0.031010
+1237 2890   1.000000
+1237 2892   0.039363
+1237 2896  -0.013107
+1237 2900   0.004754
+1237 2902  -1.000000
+1238 4   0.128990
+1238 2891   0.078885
+1238 2893   1.000000
+1238 2895   0.058415
+1238 2899  -0.008310
+1238 2901  -1.000000
+1239 4   0.128990
+1239 2892   0.078885
+1239 2894   1.000000
+1239 2896   0.058415
+1239 2900  -0.008310
+1239 2902  -1.000000
+1240 4   0.200000
+1240 2891   0.075281
+1240 2895   0.102497
+1240 2897   1.000000
+1240 2899   0.022222
+1240 2901  -1.000000
+1241 4   0.200000
+1241 2892   0.075281
+1241 2896   0.102497
+1241 2898   1.000000
+1241 2900   0.022222
+1241 2902  -1.000000
+1242 4   0.031010
+1242 2903   1.000000
+1242 2905   0.039363
+1242 2909  -0.013107
+1242 2913   0.004754
+1242 2915  -1.000000
+1243 4   0.031010
+1243 2904   1.000000
+1243 2906   0.039363
+1243 2910  -0.013107
+1243 2914   0.004754
+1243 2916  -1.000000
+1244 4   0.128990
+1244 2905   0.078885
+1244 2907   1.000000
+1244 2909   0.058415
+1244 2913  -0.008310
+1244 2915  -1.000000
+1245 4   0.128990
+1245 2906   0.078885
+1245 2908   1.000000
+1245 2910   0.058415
+1245 2914  -0.008310
+1245 2916  -1.000000
+1246 4   0.200000
+1246 2905   0.075281
+1246 2909   0.102497
+1246 2911   1.000000
+1246 2913   0.022222
+1246 2915  -1.000000
+1247 4   0.200000
+1247 2906   0.075281
+1247 2910   0.102497
+1247 2912   1.000000
+1247 2914   0.022222
+1247 2916  -1.000000
+1248 4   0.031010
+1248 2917   1.000000
+1248 2919   0.039363
+1248 2923  -0.013107
+1248 2927   0.004754
+1248 2929  -1.000000
+1249 4   0.031010
+1249 2918   1.000000
+1249 2920   0.039363
+1249 2924  -0.013107
+1249 2928   0.004754
+1249 2930  -1.000000
+1250 4   0.128990
+1250 2919   0.078885
+1250 2921   1.000000
+1250 2923   0.058415
+1250 2927  -0.008310
+1250 2929  -1.000000
+1251 4   0.128990
+1251 2920   0.078885
+1251 2922   1.000000
+1251 2924   0.058415
+1251 2928  -0.008310
+1251 2930  -1.000000
+1252 4   0.200000
+1252 2919   0.075281
+1252 2923   0.102497
+1252 2925   1.000000
+1252 2927   0.022222
+1252 2929  -1.000000
+1253 4   0.200000
+1253 2920   0.075281
+1253 2924   0.102497
+1253 2926   1.000000
+1253 2928   0.022222
+1253 2930  -1.000000
+1254 4   0.031010
+1254 2931   1.000000
+1254 2933   0.039363
+1254 2937  -0.013107
+1254 2941   0.004754
+1254 2943  -1.000000
+1255 4   0.031010
+1255 2932   1.000000
+1255 2934   0.039363
+1255 2938  -0.013107
+1255 2942   0.004754
+1255 2944  -1.000000
+1256 4   0.128990
+1256 2933   0.078885
+1256 2935   1.000000
+1256 2937   0.058415
+1256 2941  -0.008310
+1256 2943  -1.000000
+1257 4   0.128990
+1257 2934   0.078885
+1257 2936   1.000000
+1257 2938   0.058415
+1257 2942  -0.008310
+1257 2944  -1.000000
+1258 4   0.200000
+1258 2933   0.075281
+1258 2937   0.102497
+1258 2939   1.000000
+1258 2941   0.022222
+1258 2943  -1.000000
+1259 4   0.200000
+1259 2934   0.075281
+1259 2938   0.102497
+1259 2940   1.000000
+1259 2942   0.022222
+1259 2944  -1.000000
+1260 4   0.031010
+1260 2945   1.000000
+1260 2947   0.039363
+1260 2951  -0.013107
+1260 2955   0.004754
+1260 2957  -1.000000
+1261 4   0.031010
+1261 2946   1.000000
+1261 2948   0.039363
+1261 2952  -0.013107
+1261 2956   0.004754
+1261 2958  -1.000000
+1262 4   0.128990
+1262 2947   0.078885
+1262 2949   1.000000
+1262 2951   0.058415
+1262 2955  -0.008310
+1262 2957  -1.000000
+1263 4   0.128990
+1263 2948   0.078885
+1263 2950   1.000000
+1263 2952   0.058415
+1263 2956  -0.008310
+1263 2958  -1.000000
+1264 4   0.200000
+1264 2947   0.075281
+1264 2951   0.102497
+1264 2953   1.000000
+1264 2955   0.022222
+1264 2957  -1.000000
+1265 4   0.200000
+1265 2948   0.075281
+1265 2952   0.102497
+1265 2954   1.000000
+1265 2956   0.022222
+1265 2958  -1.000000
+1266 4   0.031010
+1266 2959   1.000000
+1266 2961   0.039363
+1266 2965  -0.013107
+1266 2969   0.004754
+1266 2971  -1.000000
+1267 4   0.031010
+1267 2960   1.000000
+1267 2962   0.039363
+1267 2966  -0.013107
+1267 2970   0.004754
+1267 2972  -1.000000
+1268 4   0.128990
+1268 2961   0.078885
+1268 2963   1.000000
+1268 2965   0.058415
+1268 2969  -0.008310
+1268 2971  -1.000000
+1269 4   0.128990
+1269 2962   0.078885
+1269 2964   1.000000
+1269 2966   0.058415
+1269 2970  -0.008310
+1269 2972  -1.000000
+1270 4   0.200000
+1270 2961   0.075281
+1270 2965   0.102497
+1270 2967   1.000000
+1270 2969   0.022222
+1270 2971  -1.000000
+1271 4   0.200000
+1271 2962   0.075281
+1271 2966   0.102497
+1271 2968   1.000000
+1271 2970   0.022222
+1271 2972  -1.000000
+1272 4   0.031010
+1272 2973   1.000000
+1272 2975   0.039363
+1272 2979  -0.013107
+1272 2983   0.004754
+1272 2985  -1.000000
+1273 4   0.031010
+1273 2974   1.000000
+1273 2976   0.039363
+1273 2980  -0.013107
+1273 2984   0.004754
+1273 2986  -1.000000
+1274 4   0.128990
+1274 2975   0.078885
+1274 2977   1.000000
+1274 2979   0.058415
+1274 2983  -0.008310
+1274 2985  -1.000000
+1275 4   0.128990
+1275 2976   0.078885
+1275 2978   1.000000
+1275 2980   0.058415
+1275 2984  -0.008310
+1275 2986  -1.000000
+1276 4   0.200000
+1276 2975   0.075281
+1276 2979   0.102497
+1276 2981   1.000000
+1276 2983   0.022222
+1276 2985  -1.000000
+1277 4   0.200000
+1277 2976   0.075281
+1277 2980   0.102497
+1277 2982   1.000000
+1277 2984   0.022222
+1277 2986  -1.000000
+1278 4   0.031010
+1278 2987   1.000000
+1278 2989   0.039363
+1278 2993  -0.013107
+1278 2997   0.004754
+1278 2999  -1.000000
+1279 4   0.031010
+1279 2988   1.000000
+1279 2990   0.039363
+1279 2994  -0.013107
+1279 2998   0.004754
+1279 3000  -1.000000
+1280 4   0.128990
+1280 2989   0.078885
+1280 2991   1.000000
+1280 2993   0.058415
+1280 2997  -0.008310
+1280 2999  -1.000000
+1281 4   0.128990
+1281 2990   0.078885
+1281 2992   1.000000
+1281 2994   0.058415
+1281 2998  -0.008310
+1281 3000  -1.000000
+1282 4   0.200000
+1282 2989   0.075281
+1282 2993   0.102497
+1282 2995   1.000000
+1282 2997   0.022222
+1282 2999  -1.000000
+1283 4   0.200000
+1283 2990   0.075281
+1283 2994   0.102497
+1283 2996   1.000000
+1283 2998   0.022222
+1283 3000  -1.000000
+1284 4   0.031010
+1284 3001   1.000000
+1284 3003   0.039363
+1284 3007  -0.013107
+1284 3011   0.004754
+1284 3013  -1.000000
+1285 4   0.031010
+1285 3002   1.000000
+1285 3004   0.039363
+1285 3008  -0.013107
+1285 3012   0.004754
+1285 3014  -1.000000
+1286 4   0.128990
+1286 3003   0.078885
+1286 3005   1.000000
+1286 3007   0.058415
+1286 3011  -0.008310
+1286 3013  -1.000000
+1287 4   0.128990
+1287 3004   0.078885
+1287 3006   1.000000
+1287 3008   0.058415
+1287 3012  -0.008310
+1287 3014  -1.000000
+1288 4   0.200000
+1288 3003   0.075281
+1288 3007   0.102497
+1288 3009   1.000000
+1288 3011   0.022222
+1288 3013  -1.000000
+1289 4   0.200000
+1289 3004   0.075281
+1289 3008   0.102497
+1289 3010   1.000000
+1289 3012   0.022222
+1289 3014  -1.000000
+1290 4   0.031010
+1290 3015   1.000000
+1290 3017   0.039363
+1290 3021  -0.013107
+1290 3025   0.004754
+1290 3027  -1.000000
+1291 4   0.031010
+1291 3016   1.000000
+1291 3018   0.039363
+1291 3022  -0.013107
+1291 3026   0.004754
+1291 3028  -1.000000
+1292 4   0.128990
+1292 3017   0.078885
+1292 3019   1.000000
+1292 3021   0.058415
+1292 3025  -0.008310
+1292 3027  -1.000000
+1293 4   0.128990
+1293 3018   0.078885
+1293 3020   1.000000
+1293 3022   0.058415
+1293 3026  -0.008310
+1293 3028  -1.000000
+1294 4   0.200000
+1294 3017   0.075281
+1294 3021   0.102497
+1294 3023   1.000000
+1294 3025   0.022222
+1294 3027  -1.000000
+1295 4   0.200000
+1295 3018   0.075281
+1295 3022   0.102497
+1295 3024   1.000000
+1295 3026   0.022222
+1295 3028  -1.000000
+1296 4   0.031010
+1296 3029   1.000000
+1296 3031   0.039363
+1296 3035  -0.013107
+1296 3039   0.004754
+1296 3041  -1.000000
+1297 4   0.031010
+1297 3030   1.000000
+1297 3032   0.039363
+1297 3036  -0.013107
+1297 3040   0.004754
+1297 3042  -1.000000
+1298 4   0.128990
+1298 3031   0.078885
+1298 3033   1.000000
+1298 3035   0.058415
+1298 3039  -0.008310
+1298 3041  -1.000000
+1299 4   0.128990
+1299 3032   0.078885
+1299 3034   1.000000
+1299 3036   0.058415
+1299 3040  -0.008310
+1299 3042  -1.000000
+1300 4   0.200000
+1300 3031   0.075281
+1300 3035   0.102497
+1300 3037   1.000000
+1300 3039   0.022222
+1300 3041  -1.000000
+1301 4   0.200000
+1301 3032   0.075281
+1301 3036   0.102497
+1301 3038   1.000000
+1301 3040   0.022222
+1301 3042  -1.000000
+1302 4   0.031010
+1302 3043   1.000000
+1302 3045   0.039363
+1302 3049  -0.013107
+1302 3053   0.004754
+1302 3055  -1.000000
+1303 4   0.031010
+1303 3044   1.000000
+1303 3046   0.039363
+1303 3050  -0.013107
+1303 3054   0.004754
+1303 3056  -1.000000
+1304 4   0.128990
+1304 3045   0.078885
+1304 3047   1.000000
+1304 3049   0.058415
+1304 3053  -0.008310
+1304 3055  -1.000000
+1305 4   0.128990
+1305 3046   0.078885
+1305 3048   1.000000
+1305 3050   0.058415
+1305 3054  -0.008310
+1305 3056  -1.000000
+1306 4   0.200000
+1306 3045   0.075281
+1306 3049   0.102497
+1306 3051   1.000000
+1306 3053   0.022222
+1306 3055  -1.000000
+1307 4   0.200000
+1307 3046   0.075281
+1307 3050   0.102497
+1307 3052   1.000000
+1307 3054   0.022222
+1307 3056  -1.000000
+1308 4   0.031010
+1308 3057   1.000000
+1308 3059   0.039363
+1308 3063  -0.013107
+1308 3067   0.004754
+1308 3069  -1.000000
+1309 4   0.031010
+1309 3058   1.000000
+1309 3060   0.039363
+1309 3064  -0.013107
+1309 3068   0.004754
+1309 3070  -1.000000
+1310 4   0.128990
+1310 3059   0.078885
+1310 3061   1.000000
+1310 3063   0.058415
+1310 3067  -0.008310
+1310 3069  -1.000000
+1311 4   0.128990
+1311 3060   0.078885
+1311 3062   1.000000
+1311 3064   0.058415
+1311 3068  -0.008310
+1311 3070  -1.000000
+1312 4   0.200000
+1312 3059   0.075281
+1312 3063   0.102497
+1312 3065   1.000000
+1312 3067   0.022222
+1312 3069  -1.000000
+1313 4   0.200000
+1313 3060   0.075281
+1313 3064   0.102497
+1313 3066   1.000000
+1313 3068   0.022222
+1313 3070  -1.000000
+1314 4   0.031010
+1314 3071   1.000000
+1314 3073   0.039363
+1314 3077  -0.013107
+1314 3081   0.004754
+1314 3083  -1.000000
+1315 4   0.031010
+1315 3072   1.000000
+1315 3074   0.039363
+1315 3078  -0.013107
+1315 3082   0.004754
+1315 3084  -1.000000
+1316 4   0.128990
+1316 3073   0.078885
+1316 3075   1.000000
+1316 3077   0.058415
+1316 3081  -0.008310
+1316 3083  -1.000000
+1317 4   0.128990
+1317 3074   0.078885
+1317 3076   1.000000
+1317 3078   0.058415
+1317 3082  -0.008310
+1317 3084  -1.000000
+1318 4   0.200000
+1318 3073   0.075281
+1318 3077   0.102497
+1318 3079   1.000000
+1318 3081   0.022222
+1318 3083  -1.000000
+1319 4   0.200000
+1319 3074   0.075281
+1319 3078   0.102497
+1319 3080   1.000000
+1319 3082   0.022222
+1319 3084  -1.000000
+1320 4   0.031010
+1320 3085   1.000000
+1320 3087   0.039363
+1320 3091  -0.013107
+1320 3095   0.004754
+1320 3097  -1.000000
+1321 4   0.031010
+1321 3086   1.000000
+1321 3088   0.039363
+1321 3092  -0.013107
+1321 3096   0.004754
+1321 3098  -1.000000
+1322 4   0.128990
+1322 3087   0.078885
+1322 3089   1.000000
+1322 3091   0.058415
+1322 3095  -0.008310
+1322 3097  -1.000000
+1323 4   0.128990
+1323 3088   0.078885
+1323 3090   1.000000
+1323 3092   0.058415
+1323 3096  -0.008310
+1323 3098  -1.000000
+1324 4   0.200000
+1324 3087   0.075281
+1324 3091   0.102497
+1324 3093   1.000000
+1324 3095   0.022222
+1324 3097  -1.000000
+1325 4   0.200000
+1325 3088   0.075281
+1325 3092   0.102497
+1325 3094   1.000000
+1325 3096   0.022222
+1325 3098  -1.000000
+1326 4   0.031010
+1326 3099   1.000000
+1326 3101   0.039363
+1326 3105  -0.013107
+1326 3109   0.004754
+1326 3111  -1.000000
+1327 4   0.031010
+1327 3100   1.000000
+1327 3102   0.039363
+1327 3106  -0.013107
+1327 3110   0.004754
+1327 3112  -1.000000
+1328 4   0.128990
+1328 3101   0.078885
+1328 3103   1.000000
+1328 3105   0.058415
+1328 3109  -0.008310
+1328 3111  -1.000000
+1329 4   0.128990
+1329 3102   0.078885
+1329 3104   1.000000
+1329 3106   0.058415
+1329 3110  -0.008310
+1329 3112  -1.000000
+1330 4   0.200000
+1330 3101   0.075281
+1330 3105   0.102497
+1330 3107   1.000000
+1330 3109   0.022222
+1330 3111  -1.000000
+1331 4   0.200000
+1331 3102   0.075281
+1331 3106   0.102497
+1331 3108   1.000000
+1331 3110   0.022222
+1331 3112  -1.000000
+1332 4   0.031010
+1332 3113   1.000000
+1332 3115   0.039363
+1332 3119  -0.013107
+1332 3123   0.004754
+1332 3125  -1.000000
+1333 4   0.031010
+1333 3114   1.000000
+1333 3116   0.039363
+1333 3120  -0.013107
+1333 3124   0.004754
+1333 3126  -1.000000
+1334 4   0.128990
+1334 3115   0.078885
+1334 3117   1.000000
+1334 3119   0.058415
+1334 3123  -0.008310
+1334 3125  -1.000000
+1335 4   0.128990
+1335 3116   0.078885
+1335 3118   1.000000
+1335 3120   0.058415
+1335 3124  -0.008310
+1335 3126  -1.000000
+1336 4   0.200000
+1336 3115   0.075281
+1336 3119   0.102497
+1336 3121   1.000000
+1336 3123   0.022222
+1336 3125  -1.000000
+1337 4   0.200000
+1337 3116   0.075281
+1337 3120   0.102497
+1337 3122   1.000000
+1337 3124   0.022222
+1337 3126  -1.000000
+1338 4   0.031010
+1338 3127   1.000000
+1338 3129   0.039363
+1338 3133  -0.013107
+1338 3137   0.004754
+1338 3139  -1.000000
+1339 4   0.031010
+1339 3128   1.000000
+1339 3130   0.039363
+1339 3134  -0.013107
+1339 3138   0.004754
+1339 3140  -1.000000
+1340 4   0.128990
+1340 3129   0.078885
+1340 3131   1.000000
+1340 3133   0.058415
+1340 3137  -0.008310
+1340 3139  -1.000000
+1341 4   0.128990
+1341 3130   0.078885
+1341 3132   1.000000
+1341 3134   0.058415
+1341 3138  -0.008310
+1341 3140  -1.000000
+1342 4   0.200000
+1342 3129   0.075281
+1342 3133   0.102497
+1342 3135   1.000000
+1342 3137   0.022222
+1342 3139  -1.000000
+1343 4   0.200000
+1343 3130   0.075281
+1343 3134   0.102497
+1343 3136   1.000000
+1343 3138   0.022222
+1343 3140  -1.000000
+1344 4   0.031010
+1344 3141   1.000000
+1344 3143   0.039363
+1344 3147  -0.013107
+1344 3151   0.004754
+1344 3153  -1.000000
+1345 4   0.031010
+1345 3142   1.000000
+1345 3144   0.039363
+1345 3148  -0.013107
+1345 3152   0.004754
+1345 3154  -1.000000
+1346 4   0.128990
+1346 3143   0.078885
+1346 3145   1.000000
+1346 3147   0.058415
+1346 3151  -0.008310
+1346 3153  -1.000000
+1347 4   0.128990
+1347 3144   0.078885
+1347 3146   1.000000
+1347 3148   0.058415
+1347 3152  -0.008310
+1347 3154  -1.000000
+1348 4   0.200000
+1348 3143   0.075281
+1348 3147   0.102497
+1348 3149   1.000000
+1348 3151   0.022222
+1348 3153  -1.000000
+1349 4   0.200000
+1349 3144   0.075281
+1349 3148   0.102497
+1349 3150   1.000000
+1349 3152   0.022222
+1349 3154  -1.000000
+1350 4   0.031010
+1350 3155   1.000000
+1350 3157   0.039363
+1350 3161  -0.013107
+1350 3165   0.004754
+1350 3167  -1.000000
+1351 4   0.031010
+1351 3156   1.000000
+1351 3158   0.039363
+1351 3162  -0.013107
+1351 3166   0.004754
+1351 3168  -1.000000
+1352 4   0.128990
+1352 3157   0.078885
+1352 3159   1.000000
+1352 3161   0.058415
+1352 3165  -0.008310
+1352 3167  -1.000000
+1353 4   0.128990
+1353 3158   0.078885
+1353 3160   1.000000
+1353 3162   0.058415
+1353 3166  -0.008310
+1353 3168  -1.000000
+1354 4   0.200000
+1354 3157   0.075281
+1354 3161   0.102497
+1354 3163   1.000000
+1354 3165   0.022222
+1354 3167  -1.000000
+1355 4   0.200000
+1355 3158   0.075281
+1355 3162   0.102497
+1355 3164   1.000000
+1355 3166   0.022222
+1355 3168  -1.000000
+1356 4   0.031010
+1356 3169   1.000000
+1356 3171   0.039363
+1356 3175  -0.013107
+1356 3179   0.004754
+1356 3181  -1.000000
+1357 4   0.031010
+1357 3170   1.000000
+1357 3172   0.039363
+1357 3176  -0.013107
+1357 3180   0.004754
+1357 3182  -1.000000
+1358 4   0.128990
+1358 3171   0.078885
+1358 3173   1.000000
+1358 3175   0.058415
+1358 3179  -0.008310
+1358 3181  -1.000000
+1359 4   0.128990
+1359 3172   0.078885
+1359 3174   1.000000
+1359 3176   0.058415
+1359 3180  -0.008310
+1359 3182  -1.000000
+1360 4   0.200000
+1360 3171   0.075281
+1360 3175   0.102497
+1360 3177   1.000000
+1360 3179   0.022222
+1360 3181  -1.000000
+1361 4   0.200000
+1361 3172   0.075281
+1361 3176   0.102497
+1361 3178   1.000000
+1361 3180   0.022222
+1361 3182  -1.000000
+1362 4   0.031010
+1362 3183   1.000000
+1362 3185   0.039363
+1362 3189  -0.013107
+1362 3193   0.004754
+1362 3195  -1.000000
+1363 4   0.031010
+1363 3184   1.000000
+1363 3186   0.039363
+1363 3190  -0.013107
+1363 3194   0.004754
+1363 3196  -1.000000
+1364 4   0.128990
+1364 3185   0.078885
+1364 3187   1.000000
+1364 3189   0.058415
+1364 3193  -0.008310
+1364 3195  -1.000000
+1365 4   0.128990
+1365 3186   0.078885
+1365 3188   1.000000
+1365 3190   0.058415
+1365 3194  -0.008310
+1365 3196  -1.000000
+1366 4   0.200000
+1366 3185   0.075281
+1366 3189   0.102497
+1366 3191   1.000000
+1366 3193   0.022222
+1366 3195  -1.000000
+1367 4   0.200000
+1367 3186   0.075281
+1367 3190   0.102497
+1367 3192   1.000000
+1367 3194   0.022222
+1367 3196  -1.000000
+1368 4   0.031010
+1368 3197   1.000000
+1368 3199   0.039363
+1368 3203  -0.013107
+1368 3207   0.004754
+1368 3209  -1.000000
+1369 4   0.031010
+1369 3198   1.000000
+1369 3200   0.039363
+1369 3204  -0.013107
+1369 3208   0.004754
+1369 3210  -1.000000
+1370 4   0.128990
+1370 3199   0.078885
+1370 3201   1.000000
+1370 3203   0.058415
+1370 3207  -0.008310
+1370 3209  -1.000000
+1371 4   0.128990
+1371 3200   0.078885
+1371 3202   1.000000
+1371 3204   0.058415
+1371 3208  -0.008310
+1371 3210  -1.000000
+1372 4   0.200000
+1372 3199   0.075281
+1372 3203   0.102497
+1372 3205   1.000000
+1372 3207   0.022222
+1372 3209  -1.000000
+1373 4   0.200000
+1373 3200   0.075281
+1373 3204   0.102497
+1373 3206   1.000000
+1373 3208   0.022222
+1373 3210  -1.000000
+1374 4   0.031010
+1374 3211   1.000000
+1374 3213   0.039363
+1374 3217  -0.013107
+1374 3221   0.004754
+1374 3223  -1.000000
+1375 4   0.031010
+1375 3212   1.000000
+1375 3214   0.039363
+1375 3218  -0.013107
+1375 3222   0.004754
+1375 3224  -1.000000
+1376 4   0.128990
+1376 3213   0.078885
+1376 3215   1.000000
+1376 3217   0.058415
+1376 3221  -0.008310
+1376 3223  -1.000000
+1377 4   0.128990
+1377 3214   0.078885
+1377 3216   1.000000
+1377 3218   0.058415
+1377 3222  -0.008310
+1377 3224  -1.000000
+1378 4   0.200000
+1378 3213   0.075281
+1378 3217   0.102497
+1378 3219   1.000000
+1378 3221   0.022222
+1378 3223  -1.000000
+1379 4   0.200000
+1379 3214   0.075281
+1379 3218   0.102497
+1379 3220   1.000000
+1379 3222   0.022222
+1379 3224  -1.000000
+1380 4   0.031010
+1380 3225   1.000000
+1380 3227   0.039363
+1380 3231  -0.013107
+1380 3235   0.004754
+1380 3237  -1.000000
+1381 4   0.031010
+1381 3226   1.000000
+1381 3228   0.039363
+1381 3232  -0.013107
+1381 3236   0.004754
+1381 3238  -1.000000
+1382 4   0.128990
+1382 3227   0.078885
+1382 3229   1.000000
+1382 3231   0.058415
+1382 3235  -0.008310
+1382 3237  -1.000000
+1383 4   0.128990
+1383 3228   0.078885
+1383 3230   1.000000
+1383 3232   0.058415
+1383 3236  -0.008310
+1383 3238  -1.000000
+1384 4   0.200000
+1384 3227   0.075281
+1384 3231   0.102497
+1384 3233   1.000000
+1384 3235   0.022222
+1384 3237  -1.000000
+1385 4   0.200000
+1385 3228   0.075281
+1385 3232   0.102497
+1385 3234   1.000000
+1385 3236   0.022222
+1385 3238  -1.000000
+1386 4   0.031010
+1386 3239   1.000000
+1386 3241   0.039363
+1386 3245  -0.013107
+1386 3249   0.004754
+1386 3251  -1.000000
+1387 4   0.031010
+1387 3240   1.000000
+1387 3242   0.039363
+1387 3246  -0.013107
+1387 3250   0.004754
+1387 3252  -1.000000
+1388 4   0.128990
+1388 3241   0.078885
+1388 3243   1.000000
+1388 3245   0.058415
+1388 3249  -0.008310
+1388 3251  -1.000000
+1389 4   0.128990
+1389 3242   0.078885
+1389 3244   1.000000
+1389 3246   0.058415
+1389 3250  -0.008310
+1389 3252  -1.000000
+1390 4   0.200000
+1390 3241   0.075281
+1390 3245   0.102497
+1390 3247   1.000000
+1390 3249   0.022222
+1390 3251  -1.000000
+1391 4   0.200000
+1391 3242   0.075281
+1391 3246   0.102497
+1391 3248   1.000000
+1391 3250   0.022222
+1391 3252  -1.000000
+1392 4   0.031010
+1392 3253   1.000000
+1392 3255   0.039363
+1392 3259  -0.013107
+1392 3263   0.004754
+1392 3265  -1.000000
+1393 4   0.031010
+1393 3254   1.000000
+1393 3256   0.039363
+1393 3260  -0.013107
+1393 3264   0.004754
+1393 3266  -1.000000
+1394 4   0.128990
+1394 3255   0.078885
+1394 3257   1.000000
+1394 3259   0.058415
+1394 3263  -0.008310
+1394 3265  -1.000000
+1395 4   0.128990
+1395 3256   0.078885
+1395 3258   1.000000
+1395 3260   0.058415
+1395 3264  -0.008310
+1395 3266  -1.000000
+1396 4   0.200000
+1396 3255   0.075281
+1396 3259   0.102497
+1396 3261   1.000000
+1396 3263   0.022222
+1396 3265  -1.000000
+1397 4   0.200000
+1397 3256   0.075281
+1397 3260   0.102497
+1397 3262   1.000000
+1397 3264   0.022222
+1397 3266  -1.000000
+1398 4   0.031010
+1398 3267   1.000000
+1398 3269   0.039363
+1398 3273  -0.013107
+1398 3277   0.004754
+1398 3279  -1.000000
+1399 4   0.031010
+1399 3268   1.000000
+1399 3270   0.039363
+1399 3274  -0.013107
+1399 3278   0.004754
+1399 3280  -1.000000
+1400 4   0.128990
+1400 3269   0.078885
+1400 3271   1.000000
+1400 3273   0.058415
+1400 3277  -0.008310
+1400 3279  -1.000000
+1401 4   0.128990
+1401 3270   0.078885
+1401 3272   1.000000
+1401 3274   0.058415
+1401 3278  -0.008310
+1401 3280  -1.000000
+1402 4   0.200000
+1402 3269   0.075281
+1402 3273   0.102497
+1402 3275   1.000000
+1402 3277   0.022222
+1402 3279  -1.000000
+1403 4   0.200000
+1403 3270   0.075281
+1403 3274   0.102497
+1403 3276   1.000000
+1403 3278   0.022222
+1403 3280  -1.000000
+1404 4   0.031010
+1404 3281   1.000000
+1404 3283   0.039363
+1404 3287  -0.013107
+1404 3291   0.004754
+1404 3293  -1.000000
+1405 4   0.031010
+1405 3282   1.000000
+1405 3284   0.039363
+1405 3288  -0.013107
+1405 3292   0.004754
+1405 3294  -1.000000
+1406 4   0.128990
+1406 3283   0.078885
+1406 3285   1.000000
+1406 3287   0.058415
+1406 3291  -0.008310
+1406 3293  -1.000000
+1407 4   0.128990
+1407 3284   0.078885
+1407 3286   1.000000
+1407 3288   0.058415
+1407 3292  -0.008310
+1407 3294  -1.000000
+1408 4   0.200000
+1408 3283   0.075281
+1408 3287   0.102497
+1408 3289   1.000000
+1408 3291   0.022222
+1408 3293  -1.000000
+1409 4   0.200000
+1409 3284   0.075281
+1409 3288   0.102497
+1409 3290   1.000000
+1409 3292   0.022222
+1409 3294  -1.000000
+1410 4   0.031010
+1410 3295   1.000000
+1410 3297   0.039363
+1410 3301  -0.013107
+1410 3305   0.004754
+1410 3307  -1.000000
+1411 4   0.031010
+1411 3296   1.000000
+1411 3298   0.039363
+1411 3302  -0.013107
+1411 3306   0.004754
+1411 3308  -1.000000
+1412 4   0.128990
+1412 3297   0.078885
+1412 3299   1.000000
+1412 3301   0.058415
+1412 3305  -0.008310
+1412 3307  -1.000000
+1413 4   0.128990
+1413 3298   0.078885
+1413 3300   1.000000
+1413 3302   0.058415
+1413 3306  -0.008310
+1413 3308  -1.000000
+1414 4   0.200000
+1414 3297   0.075281
+1414 3301   0.102497
+1414 3303   1.000000
+1414 3305   0.022222
+1414 3307  -1.000000
+1415 4   0.200000
+1415 3298   0.075281
+1415 3302   0.102497
+1415 3304   1.000000
+1415 3306   0.022222
+1415 3308  -1.000000
+1416 4   0.031010
+1416 3309   1.000000
+1416 3311   0.039363
+1416 3315  -0.013107
+1416 3319   0.004754
+1416 3321  -1.000000
+1417 4   0.031010
+1417 3310   1.000000
+1417 3312   0.039363
+1417 3316  -0.013107
+1417 3320   0.004754
+1417 3322  -1.000000
+1418 4   0.128990
+1418 3311   0.078885
+1418 3313   1.000000
+1418 3315   0.058415
+1418 3319  -0.008310
+1418 3321  -1.000000
+1419 4   0.128990
+1419 3312   0.078885
+1419 3314   1.000000
+1419 3316   0.058415
+1419 3320  -0.008310
+1419 3322  -1.000000
+1420 4   0.200000
+1420 3311   0.075281
+1420 3315   0.102497
+1420 3317   1.000000
+1420 3319   0.022222
+1420 3321  -1.000000
+1421 4   0.200000
+1421 3312   0.075281
+1421 3316   0.102497
+1421 3318   1.000000
+1421 3320   0.022222
+1421 3322  -1.000000
+1422 4   0.031010
+1422 3323   1.000000
+1422 3325   0.039363
+1422 3329  -0.013107
+1422 3333   0.004754
+1422 3335  -1.000000
+1423 4   0.031010
+1423 3324   1.000000
+1423 3326   0.039363
+1423 3330  -0.013107
+1423 3334   0.004754
+1423 3336  -1.000000
+1424 4   0.128990
+1424 3325   0.078885
+1424 3327   1.000000
+1424 3329   0.058415
+1424 3333  -0.008310
+1424 3335  -1.000000
+1425 4   0.128990
+1425 3326   0.078885
+1425 3328   1.000000
+1425 3330   0.058415
+1425 3334  -0.008310
+1425 3336  -1.000000
+1426 4   0.200000
+1426 3325   0.075281
+1426 3329   0.102497
+1426 3331   1.000000
+1426 3333   0.022222
+1426 3335  -1.000000
+1427 4   0.200000
+1427 3326   0.075281
+1427 3330   0.102497
+1427 3332   1.000000
+1427 3334   0.022222
+1427 3336  -1.000000
+1428 4   0.031010
+1428 3337   1.000000
+1428 3339   0.039363
+1428 3343  -0.013107
+1428 3347   0.004754
+1428 3349  -1.000000
+1429 4   0.031010
+1429 3338   1.000000
+1429 3340   0.039363
+1429 3344  -0.013107
+1429 3348   0.004754
+1429 3350  -1.000000
+1430 4   0.128990
+1430 3339   0.078885
+1430 3341   1.000000
+1430 3343   0.058415
+1430 3347  -0.008310
+1430 3349  -1.000000
+1431 4   0.128990
+1431 3340   0.078885
+1431 3342   1.000000
+1431 3344   0.058415
+1431 3348  -0.008310
+1431 3350  -1.000000
+1432 4   0.200000
+1432 3339   0.075281
+1432 3343   0.102497
+1432 3345   1.000000
+1432 3347   0.022222
+1432 3349  -1.000000
+1433 4   0.200000
+1433 3340   0.075281
+1433 3344   0.102497
+1433 3346   1.000000
+1433 3348   0.022222
+1433 3350  -1.000000
+1434 4   0.031010
+1434 3351   1.000000
+1434 3353   0.039363
+1434 3357  -0.013107
+1434 3361   0.004754
+1434 3363  -1.000000
+1435 4   0.031010
+1435 3352   1.000000
+1435 3354   0.039363
+1435 3358  -0.013107
+1435 3362   0.004754
+1435 3364  -1.000000
+1436 4   0.128990
+1436 3353   0.078885
+1436 3355   1.000000
+1436 3357   0.058415
+1436 3361  -0.008310
+1436 3363  -1.000000
+1437 4   0.128990
+1437 3354   0.078885
+1437 3356   1.000000
+1437 3358   0.058415
+1437 3362  -0.008310
+1437 3364  -1.000000
+1438 4   0.200000
+1438 3353   0.075281
+1438 3357   0.102497
+1438 3359   1.000000
+1438 3361   0.022222
+1438 3363  -1.000000
+1439 4   0.200000
+1439 3354   0.075281
+1439 3358   0.102497
+1439 3360   1.000000
+1439 3362   0.022222
+1439 3364  -1.000000
+1440 4   0.031010
+1440 3365   1.000000
+1440 3367   0.039363
+1440 3371  -0.013107
+1440 3375   0.004754
+1440 3377  -1.000000
+1441 4   0.031010
+1441 3366   1.000000
+1441 3368   0.039363
+1441 3372  -0.013107
+1441 3376   0.004754
+1441 3378  -1.000000
+1442 4   0.128990
+1442 3367   0.078885
+1442 3369   1.000000
+1442 3371   0.058415
+1442 3375  -0.008310
+1442 3377  -1.000000
+1443 4   0.128990
+1443 3368   0.078885
+1443 3370   1.000000
+1443 3372   0.058415
+1443 3376  -0.008310
+1443 3378  -1.000000
+1444 4   0.200000
+1444 3367   0.075281
+1444 3371   0.102497
+1444 3373   1.000000
+1444 3375   0.022222
+1444 3377  -1.000000
+1445 4   0.200000
+1445 3368   0.075281
+1445 3372   0.102497
+1445 3374   1.000000
+1445 3376   0.022222
+1445 3378  -1.000000
+1446 4   0.031010
+1446 3379   1.000000
+1446 3381   0.039363
+1446 3385  -0.013107
+1446 3389   0.004754
+1446 3391  -1.000000
+1447 4   0.031010
+1447 3380   1.000000
+1447 3382   0.039363
+1447 3386  -0.013107
+1447 3390   0.004754
+1447 3392  -1.000000
+1448 4   0.128990
+1448 3381   0.078885
+1448 3383   1.000000
+1448 3385   0.058415
+1448 3389  -0.008310
+1448 3391  -1.000000
+1449 4   0.128990
+1449 3382   0.078885
+1449 3384   1.000000
+1449 3386   0.058415
+1449 3390  -0.008310
+1449 3392  -1.000000
+1450 4   0.200000
+1450 3381   0.075281
+1450 3385   0.102497
+1450 3387   1.000000
+1450 3389   0.022222
+1450 3391  -1.000000
+1451 4   0.200000
+1451 3382   0.075281
+1451 3386   0.102497
+1451 3388   1.000000
+1451 3390   0.022222
+1451 3392  -1.000000
+1452 4   0.031010
+1452 3393   1.000000
+1452 3395   0.039363
+1452 3399  -0.013107
+1452 3403   0.004754
+1452 3405  -1.000000
+1453 4   0.031010
+1453 3394   1.000000
+1453 3396   0.039363
+1453 3400  -0.013107
+1453 3404   0.004754
+1453 3406  -1.000000
+1454 4   0.128990
+1454 3395   0.078885
+1454 3397   1.000000
+1454 3399   0.058415
+1454 3403  -0.008310
+1454 3405  -1.000000
+1455 4   0.128990
+1455 3396   0.078885
+1455 3398   1.000000
+1455 3400   0.058415
+1455 3404  -0.008310
+1455 3406  -1.000000
+1456 4   0.200000
+1456 3395   0.075281
+1456 3399   0.102497
+1456 3401   1.000000
+1456 3403   0.022222
+1456 3405  -1.000000
+1457 4   0.200000
+1457 3396   0.075281
+1457 3400   0.102497
+1457 3402   1.000000
+1457 3404   0.022222
+1457 3406  -1.000000
+1458 4   0.031010
+1458 3407   1.000000
+1458 3409   0.039363
+1458 3413  -0.013107
+1458 3417   0.004754
+1458 3419  -1.000000
+1459 4   0.031010
+1459 3408   1.000000
+1459 3410   0.039363
+1459 3414  -0.013107
+1459 3418   0.004754
+1459 3420  -1.000000
+1460 4   0.128990
+1460 3409   0.078885
+1460 3411   1.000000
+1460 3413   0.058415
+1460 3417  -0.008310
+1460 3419  -1.000000
+1461 4   0.128990
+1461 3410   0.078885
+1461 3412   1.000000
+1461 3414   0.058415
+1461 3418  -0.008310
+1461 3420  -1.000000
+1462 4   0.200000
+1462 3409   0.075281
+1462 3413   0.102497
+1462 3415   1.000000
+1462 3417   0.022222
+1462 3419  -1.000000
+1463 4   0.200000
+1463 3410   0.075281
+1463 3414   0.102497
+1463 3416   1.000000
+1463 3418   0.022222
+1463 3420  -1.000000
+1464 4   0.031010
+1464 3421   1.000000
+1464 3423   0.039363
+1464 3427  -0.013107
+1464 3431   0.004754
+1464 3433  -1.000000
+1465 4   0.031010
+1465 3422   1.000000
+1465 3424   0.039363
+1465 3428  -0.013107
+1465 3432   0.004754
+1465 3434  -1.000000
+1466 4   0.128990
+1466 3423   0.078885
+1466 3425   1.000000
+1466 3427   0.058415
+1466 3431  -0.008310
+1466 3433  -1.000000
+1467 4   0.128990
+1467 3424   0.078885
+1467 3426   1.000000
+1467 3428   0.058415
+1467 3432  -0.008310
+1467 3434  -1.000000
+1468 4   0.200000
+1468 3423   0.075281
+1468 3427   0.102497
+1468 3429   1.000000
+1468 3431   0.022222
+1468 3433  -1.000000
+1469 4   0.200000
+1469 3424   0.075281
+1469 3428   0.102497
+1469 3430   1.000000
+1469 3432   0.022222
+1469 3434  -1.000000
+1470 4   0.031010
+1470 3435   1.000000
+1470 3437   0.039363
+1470 3441  -0.013107
+1470 3445   0.004754
+1470 3447  -1.000000
+1471 4   0.031010
+1471 3436   1.000000
+1471 3438   0.039363
+1471 3442  -0.013107
+1471 3446   0.004754
+1471 3448  -1.000000
+1472 4   0.128990
+1472 3437   0.078885
+1472 3439   1.000000
+1472 3441   0.058415
+1472 3445  -0.008310
+1472 3447  -1.000000
+1473 4   0.128990
+1473 3438   0.078885
+1473 3440   1.000000
+1473 3442   0.058415
+1473 3446  -0.008310
+1473 3448  -1.000000
+1474 4   0.200000
+1474 3437   0.075281
+1474 3441   0.102497
+1474 3443   1.000000
+1474 3445   0.022222
+1474 3447  -1.000000
+1475 4   0.200000
+1475 3438   0.075281
+1475 3442   0.102497
+1475 3444   1.000000
+1475 3446   0.022222
+1475 3448  -1.000000
+1476 4   0.031010
+1476 3449   1.000000
+1476 3451   0.039363
+1476 3455  -0.013107
+1476 3459   0.004754
+1476 3461  -1.000000
+1477 4   0.031010
+1477 3450   1.000000
+1477 3452   0.039363
+1477 3456  -0.013107
+1477 3460   0.004754
+1477 3462  -1.000000
+1478 4   0.128990
+1478 3451   0.078885
+1478 3453   1.000000
+1478 3455   0.058415
+1478 3459  -0.008310
+1478 3461  -1.000000
+1479 4   0.128990
+1479 3452   0.078885
+1479 3454   1.000000
+1479 3456   0.058415
+1479 3460  -0.008310
+1479 3462  -1.000000
+1480 4   0.200000
+1480 3451   0.075281
+1480 3455   0.102497
+1480 3457   1.000000
+1480 3459   0.022222
+1480 3461  -1.000000
+1481 4   0.200000
+1481 3452   0.075281
+1481 3456   0.102497
+1481 3458   1.000000
+1481 3460   0.022222
+1481 3462  -1.000000
+1482 4   0.031010
+1482 3463   1.000000
+1482 3465   0.039363
+1482 3469  -0.013107
+1482 3473   0.004754
+1482 3475  -1.000000
+1483 4   0.031010
+1483 3464   1.000000
+1483 3466   0.039363
+1483 3470  -0.013107
+1483 3474   0.004754
+1483 3476  -1.000000
+1484 4   0.128990
+1484 3465   0.078885
+1484 3467   1.000000
+1484 3469   0.058415
+1484 3473  -0.008310
+1484 3475  -1.000000
+1485 4   0.128990
+1485 3466   0.078885
+1485 3468   1.000000
+1485 3470   0.058415
+1485 3474  -0.008310
+1485 3476  -1.000000
+1486 4   0.200000
+1486 3465   0.075281
+1486 3469   0.102497
+1486 3471   1.000000
+1486 3473   0.022222
+1486 3475  -1.000000
+1487 4   0.200000
+1487 3466   0.075281
+1487 3470   0.102497
+1487 3472   1.000000
+1487 3474   0.022222
+1487 3476  -1.000000
+1488 4   0.031010
+1488 3477   1.000000
+1488 3479   0.039363
+1488 3483  -0.013107
+1488 3487   0.004754
+1488 3489  -1.000000
+1489 4   0.031010
+1489 3478   1.000000
+1489 3480   0.039363
+1489 3484  -0.013107
+1489 3488   0.004754
+1489 3490  -1.000000
+1490 4   0.128990
+1490 3479   0.078885
+1490 3481   1.000000
+1490 3483   0.058415
+1490 3487  -0.008310
+1490 3489  -1.000000
+1491 4   0.128990
+1491 3480   0.078885
+1491 3482   1.000000
+1491 3484   0.058415
+1491 3488  -0.008310
+1491 3490  -1.000000
+1492 4   0.200000
+1492 3479   0.075281
+1492 3483   0.102497
+1492 3485   1.000000
+1492 3487   0.022222
+1492 3489  -1.000000
+1493 4   0.200000
+1493 3480   0.075281
+1493 3484   0.102497
+1493 3486   1.000000
+1493 3488   0.022222
+1493 3490  -1.000000
+1494 4   0.031010
+1494 3491   1.000000
+1494 3493   0.039363
+1494 3497  -0.013107
+1494 3501   0.004754
+1494 3503  -1.000000
+1495 4   0.031010
+1495 3492   1.000000
+1495 3494   0.039363
+1495 3498  -0.013107
+1495 3502   0.004754
+1495 3504  -1.000000
+1496 4   0.128990
+1496 3493   0.078885
+1496 3495   1.000000
+1496 3497   0.058415
+1496 3501  -0.008310
+1496 3503  -1.000000
+1497 4   0.128990
+1497 3494   0.078885
+1497 3496   1.000000
+1497 3498   0.058415
+1497 3502  -0.008310
+1497 3504  -1.000000
+1498 4   0.200000
+1498 3493   0.075281
+1498 3497   0.102497
+1498 3499   1.000000
+1498 3501   0.022222
+1498 3503  -1.000000
+1499 4   0.200000
+1499 3494   0.075281
+1499 3498   0.102497
+1499 3500   1.000000
+1499 3502   0.022222
+1499 3504  -1.000000
+1500 4   0.031010
+1500 3505   1.000000
+1500 3507   0.039363
+1500 3511  -0.013107
+1500 3515   0.004754
+1500 3517  -1.000000
+1501 4   0.031010
+1501 3506   1.000000
+1501 3508   0.039363
+1501 3512  -0.013107
+1501 3516   0.004754
+1501 3518  -1.000000
+1502 4   0.128990
+1502 3507   0.078885
+1502 3509   1.000000
+1502 3511   0.058415
+1502 3515  -0.008310
+1502 3517  -1.000000
+1503 4   0.128990
+1503 3508   0.078885
+1503 3510   1.000000
+1503 3512   0.058415
+1503 3516  -0.008310
+1503 3518  -1.000000
+1504 4   0.200000
+1504 3507   0.075281
+1504 3511   0.102497
+1504 3513   1.000000
+1504 3515   0.022222
+1504 3517  -1.000000
+1505 4   0.200000
+1505 3508   0.075281
+1505 3512   0.102497
+1505 3514   1.000000
+1505 3516   0.022222
+1505 3518  -1.000000
+1506 4   0.031010
+1506 3519   1.000000
+1506 3521   0.039363
+1506 3525  -0.013107
+1506 3529   0.004754
+1506 3531  -1.000000
+1507 4   0.031010
+1507 3520   1.000000
+1507 3522   0.039363
+1507 3526  -0.013107
+1507 3530   0.004754
+1507 3532  -1.000000
+1508 4   0.128990
+1508 3521   0.078885
+1508 3523   1.000000
+1508 3525   0.058415
+1508 3529  -0.008310
+1508 3531  -1.000000
+1509 4   0.128990
+1509 3522   0.078885
+1509 3524   1.000000
+1509 3526   0.058415
+1509 3530  -0.008310
+1509 3532  -1.000000
+1510 4   0.200000
+1510 3521   0.075281
+1510 3525   0.102497
+1510 3527   1.000000
+1510 3529   0.022222
+1510 3531  -1.000000
+1511 4   0.200000
+1511 3522   0.075281
+1511 3526   0.102497
+1511 3528   1.000000
+1511 3530   0.022222
+1511 3532  -1.000000
+1512 4   0.031010
+1512 3533   1.000000
+1512 3535   0.039363
+1512 3539  -0.013107
+1512 3543   0.004754
+1512 3545  -1.000000
+1513 4   0.031010
+1513 3534   1.000000
+1513 3536   0.039363
+1513 3540  -0.013107
+1513 3544   0.004754
+1513 3546  -1.000000
+1514 4   0.128990
+1514 3535   0.078885
+1514 3537   1.000000
+1514 3539   0.058415
+1514 3543  -0.008310
+1514 3545  -1.000000
+1515 4   0.128990
+1515 3536   0.078885
+1515 3538   1.000000
+1515 3540   0.058415
+1515 3544  -0.008310
+1515 3546  -1.000000
+1516 4   0.200000
+1516 3535   0.075281
+1516 3539   0.102497
+1516 3541   1.000000
+1516 3543   0.022222
+1516 3545  -1.000000
+1517 4   0.200000
+1517 3536   0.075281
+1517 3540   0.102497
+1517 3542   1.000000
+1517 3544   0.022222
+1517 3546  -1.000000
+1518 4   0.031010
+1518 3547   1.000000
+1518 3549   0.039363
+1518 3553  -0.013107
+1518 3557   0.004754
+1518 3559  -1.000000
+1519 4   0.031010
+1519 3548   1.000000
+1519 3550   0.039363
+1519 3554  -0.013107
+1519 3558   0.004754
+1519 3560  -1.000000
+1520 4   0.128990
+1520 3549   0.078885
+1520 3551   1.000000
+1520 3553   0.058415
+1520 3557  -0.008310
+1520 3559  -1.000000
+1521 4   0.128990
+1521 3550   0.078885
+1521 3552   1.000000
+1521 3554   0.058415
+1521 3558  -0.008310
+1521 3560  -1.000000
+1522 4   0.200000
+1522 3549   0.075281
+1522 3553   0.102497
+1522 3555   1.000000
+1522 3557   0.022222
+1522 3559  -1.000000
+1523 4   0.200000
+1523 3550   0.075281
+1523 3554   0.102497
+1523 3556   1.000000
+1523 3558   0.022222
+1523 3560  -1.000000
+1524 4   0.031010
+1524 3561   1.000000
+1524 3563   0.039363
+1524 3567  -0.013107
+1524 3571   0.004754
+1524 3573  -1.000000
+1525 4   0.031010
+1525 3562   1.000000
+1525 3564   0.039363
+1525 3568  -0.013107
+1525 3572   0.004754
+1525 3574  -1.000000
+1526 4   0.128990
+1526 3563   0.078885
+1526 3565   1.000000
+1526 3567   0.058415
+1526 3571  -0.008310
+1526 3573  -1.000000
+1527 4   0.128990
+1527 3564   0.078885
+1527 3566   1.000000
+1527 3568   0.058415
+1527 3572  -0.008310
+1527 3574  -1.000000
+1528 4   0.200000
+1528 3563   0.075281
+1528 3567   0.102497
+1528 3569   1.000000
+1528 3571   0.022222
+1528 3573  -1.000000
+1529 4   0.200000
+1529 3564   0.075281
+1529 3568   0.102497
+1529 3570   1.000000
+1529 3572   0.022222
+1529 3574  -1.000000
+1530 4   0.031010
+1530 3575   1.000000
+1530 3577   0.039363
+1530 3581  -0.013107
+1530 3585   0.004754
+1530 3587  -1.000000
+1531 4   0.031010
+1531 3576   1.000000
+1531 3578   0.039363
+1531 3582  -0.013107
+1531 3586   0.004754
+1531 3588  -1.000000
+1532 4   0.128990
+1532 3577   0.078885
+1532 3579   1.000000
+1532 3581   0.058415
+1532 3585  -0.008310
+1532 3587  -1.000000
+1533 4   0.128990
+1533 3578   0.078885
+1533 3580   1.000000
+1533 3582   0.058415
+1533 3586  -0.008310
+1533 3588  -1.000000
+1534 4   0.200000
+1534 3577   0.075281
+1534 3581   0.102497
+1534 3583   1.000000
+1534 3585   0.022222
+1534 3587  -1.000000
+1535 4   0.200000
+1535 3578   0.075281
+1535 3582   0.102497
+1535 3584   1.000000
+1535 3586   0.022222
+1535 3588  -1.000000
+1536 4   0.031010
+1536 3589   1.000000
+1536 3591   0.039363
+1536 3595  -0.013107
+1536 3599   0.004754
+1536 3601  -1.000000
+1537 4   0.031010
+1537 3590   1.000000
+1537 3592   0.039363
+1537 3596  -0.013107
+1537 3600   0.004754
+1537 3602  -1.000000
+1538 4   0.128990
+1538 3591   0.078885
+1538 3593   1.000000
+1538 3595   0.058415
+1538 3599  -0.008310
+1538 3601  -1.000000
+1539 4   0.128990
+1539 3592   0.078885
+1539 3594   1.000000
+1539 3596   0.058415
+1539 3600  -0.008310
+1539 3602  -1.000000
+1540 4   0.200000
+1540 3591   0.075281
+1540 3595   0.102497
+1540 3597   1.000000
+1540 3599   0.022222
+1540 3601  -1.000000
+1541 4   0.200000
+1541 3592   0.075281
+1541 3596   0.102497
+1541 3598   1.000000
+1541 3600   0.022222
+1541 3602  -1.000000
+1542 4   0.031010
+1542 3603   1.000000
+1542 3605   0.039363
+1542 3609  -0.013107
+1542 3613   0.004754
+1542 3615  -1.000000
+1543 4   0.031010
+1543 3604   1.000000
+1543 3606   0.039363
+1543 3610  -0.013107
+1543 3614   0.004754
+1543 3616  -1.000000
+1544 4   0.128990
+1544 3605   0.078885
+1544 3607   1.000000
+1544 3609   0.058415
+1544 3613  -0.008310
+1544 3615  -1.000000
+1545 4   0.128990
+1545 3606   0.078885
+1545 3608   1.000000
+1545 3610   0.058415
+1545 3614  -0.008310
+1545 3616  -1.000000
+1546 4   0.200000
+1546 3605   0.075281
+1546 3609   0.102497
+1546 3611   1.000000
+1546 3613   0.022222
+1546 3615  -1.000000
+1547 4   0.200000
+1547 3606   0.075281
+1547 3610   0.102497
+1547 3612   1.000000
+1547 3614   0.022222
+1547 3616  -1.000000
+1548 4   0.031010
+1548 3617   1.000000
+1548 3619   0.039363
+1548 3623  -0.013107
+1548 3627   0.004754
+1548 3629  -1.000000
+1549 4   0.031010
+1549 3618   1.000000
+1549 3620   0.039363
+1549 3624  -0.013107
+1549 3628   0.004754
+1549 3630  -1.000000
+1550 4   0.128990
+1550 3619   0.078885
+1550 3621   1.000000
+1550 3623   0.058415
+1550 3627  -0.008310
+1550 3629  -1.000000
+1551 4   0.128990
+1551 3620   0.078885
+1551 3622   1.000000
+1551 3624   0.058415
+1551 3628  -0.008310
+1551 3630  -1.000000
+1552 4   0.200000
+1552 3619   0.075281
+1552 3623   0.102497
+1552 3625   1.000000
+1552 3627   0.022222
+1552 3629  -1.000000
+1553 4   0.200000
+1553 3620   0.075281
+1553 3624   0.102497
+1553 3626   1.000000
+1553 3628   0.022222
+1553 3630  -1.000000
+1554 4   0.031010
+1554 3631   1.000000
+1554 3633   0.039363
+1554 3637  -0.013107
+1554 3641   0.004754
+1554 3643  -1.000000
+1555 4   0.031010
+1555 3632   1.000000
+1555 3634   0.039363
+1555 3638  -0.013107
+1555 3642   0.004754
+1555 3644  -1.000000
+1556 4   0.128990
+1556 3633   0.078885
+1556 3635   1.000000
+1556 3637   0.058415
+1556 3641  -0.008310
+1556 3643  -1.000000
+1557 4   0.128990
+1557 3634   0.078885
+1557 3636   1.000000
+1557 3638   0.058415
+1557 3642  -0.008310
+1557 3644  -1.000000
+1558 4   0.200000
+1558 3633   0.075281
+1558 3637   0.102497
+1558 3639   1.000000
+1558 3641   0.022222
+1558 3643  -1.000000
+1559 4   0.200000
+1559 3634   0.075281
+1559 3638   0.102497
+1559 3640   1.000000
+1559 3642   0.022222
+1559 3644  -1.000000
+1560 4   0.031010
+1560 3645   1.000000
+1560 3647   0.039363
+1560 3651  -0.013107
+1560 3655   0.004754
+1560 3657  -1.000000
+1561 4   0.031010
+1561 3646   1.000000
+1561 3648   0.039363
+1561 3652  -0.013107
+1561 3656   0.004754
+1561 3658  -1.000000
+1562 4   0.128990
+1562 3647   0.078885
+1562 3649   1.000000
+1562 3651   0.058415
+1562 3655  -0.008310
+1562 3657  -1.000000
+1563 4   0.128990
+1563 3648   0.078885
+1563 3650   1.000000
+1563 3652   0.058415
+1563 3656  -0.008310
+1563 3658  -1.000000
+1564 4   0.200000
+1564 3647   0.075281
+1564 3651   0.102497
+1564 3653   1.000000
+1564 3655   0.022222
+1564 3657  -1.000000
+1565 4   0.200000
+1565 3648   0.075281
+1565 3652   0.102497
+1565 3654   1.000000
+1565 3656   0.022222
+1565 3658  -1.000000
+1566 4   0.031010
+1566 3659   1.000000
+1566 3661   0.039363
+1566 3665  -0.013107
+1566 3669   0.004754
+1566 3671  -1.000000
+1567 4   0.031010
+1567 3660   1.000000
+1567 3662   0.039363
+1567 3666  -0.013107
+1567 3670   0.004754
+1567 3672  -1.000000
+1568 4   0.128990
+1568 3661   0.078885
+1568 3663   1.000000
+1568 3665   0.058415
+1568 3669  -0.008310
+1568 3671  -1.000000
+1569 4   0.128990
+1569 3662   0.078885
+1569 3664   1.000000
+1569 3666   0.058415
+1569 3670  -0.008310
+1569 3672  -1.000000
+1570 4   0.200000
+1570 3661   0.075281
+1570 3665   0.102497
+1570 3667   1.000000
+1570 3669   0.022222
+1570 3671  -1.000000
+1571 4   0.200000
+1571 3662   0.075281
+1571 3666   0.102497
+1571 3668   1.000000
+1571 3670   0.022222
+1571 3672  -1.000000
+1572 4   0.031010
+1572 3673   1.000000
+1572 3675   0.039363
+1572 3679  -0.013107
+1572 3683   0.004754
+1572 3685  -1.000000
+1573 4   0.031010
+1573 3674   1.000000
+1573 3676   0.039363
+1573 3680  -0.013107
+1573 3684   0.004754
+1573 3686  -1.000000
+1574 4   0.128990
+1574 3675   0.078885
+1574 3677   1.000000
+1574 3679   0.058415
+1574 3683  -0.008310
+1574 3685  -1.000000
+1575 4   0.128990
+1575 3676   0.078885
+1575 3678   1.000000
+1575 3680   0.058415
+1575 3684  -0.008310
+1575 3686  -1.000000
+1576 4   0.200000
+1576 3675   0.075281
+1576 3679   0.102497
+1576 3681   1.000000
+1576 3683   0.022222
+1576 3685  -1.000000
+1577 4   0.200000
+1577 3676   0.075281
+1577 3680   0.102497
+1577 3682   1.000000
+1577 3684   0.022222
+1577 3686  -1.000000
+1578 4   0.031010
+1578 3687   1.000000
+1578 3689   0.039363
+1578 3693  -0.013107
+1578 3697   0.004754
+1578 3699  -1.000000
+1579 4   0.031010
+1579 3688   1.000000
+1579 3690   0.039363
+1579 3694  -0.013107
+1579 3698   0.004754
+1579 3700  -1.000000
+1580 4   0.128990
+1580 3689   0.078885
+1580 3691   1.000000
+1580 3693   0.058415
+1580 3697  -0.008310
+1580 3699  -1.000000
+1581 4   0.128990
+1581 3690   0.078885
+1581 3692   1.000000
+1581 3694   0.058415
+1581 3698  -0.008310
+1581 3700  -1.000000
+1582 4   0.200000
+1582 3689   0.075281
+1582 3693   0.102497
+1582 3695   1.000000
+1582 3697   0.022222
+1582 3699  -1.000000
+1583 4   0.200000
+1583 3690   0.075281
+1583 3694   0.102497
+1583 3696   1.000000
+1583 3698   0.022222
+1583 3700  -1.000000
+1584 4   0.031010
+1584 3701   1.000000
+1584 3703   0.039363
+1584 3707  -0.013107
+1584 3711   0.004754
+1584 3713  -1.000000
+1585 4   0.031010
+1585 3702   1.000000
+1585 3704   0.039363
+1585 3708  -0.013107
+1585 3712   0.004754
+1585 3714  -1.000000
+1586 4   0.128990
+1586 3703   0.078885
+1586 3705   1.000000
+1586 3707   0.058415
+1586 3711  -0.008310
+1586 3713  -1.000000
+1587 4   0.128990
+1587 3704   0.078885
+1587 3706   1.000000
+1587 3708   0.058415
+1587 3712  -0.008310
+1587 3714  -1.000000
+1588 4   0.200000
+1588 3703   0.075281
+1588 3707   0.102497
+1588 3709   1.000000
+1588 3711   0.022222
+1588 3713  -1.000000
+1589 4   0.200000
+1589 3704   0.075281
+1589 3708   0.102497
+1589 3710   1.000000
+1589 3712   0.022222
+1589 3714  -1.000000
+1590 4   0.031010
+1590 3715   1.000000
+1590 3717   0.039363
+1590 3721  -0.013107
+1590 3725   0.004754
+1590 3727  -1.000000
+1591 4   0.031010
+1591 3716   1.000000
+1591 3718   0.039363
+1591 3722  -0.013107
+1591 3726   0.004754
+1591 3728  -1.000000
+1592 4   0.128990
+1592 3717   0.078885
+1592 3719   1.000000
+1592 3721   0.058415
+1592 3725  -0.008310
+1592 3727  -1.000000
+1593 4   0.128990
+1593 3718   0.078885
+1593 3720   1.000000
+1593 3722   0.058415
+1593 3726  -0.008310
+1593 3728  -1.000000
+1594 4   0.200000
+1594 3717   0.075281
+1594 3721   0.102497
+1594 3723   1.000000
+1594 3725   0.022222
+1594 3727  -1.000000
+1595 4   0.200000
+1595 3718   0.075281
+1595 3722   0.102497
+1595 3724   1.000000
+1595 3726   0.022222
+1595 3728  -1.000000
+1596 4   0.031010
+1596 3729   1.000000
+1596 3731   0.039363
+1596 3735  -0.013107
+1596 3739   0.004754
+1596 3741  -1.000000
+1597 4   0.031010
+1597 3730   1.000000
+1597 3732   0.039363
+1597 3736  -0.013107
+1597 3740   0.004754
+1597 3742  -1.000000
+1598 4   0.128990
+1598 3731   0.078885
+1598 3733   1.000000
+1598 3735   0.058415
+1598 3739  -0.008310
+1598 3741  -1.000000
+1599 4   0.128990
+1599 3732   0.078885
+1599 3734   1.000000
+1599 3736   0.058415
+1599 3740  -0.008310
+1599 3742  -1.000000
+1600 4   0.200000
+1600 3731   0.075281
+1600 3735   0.102497
+1600 3737   1.000000
+1600 3739   0.022222
+1600 3741  -1.000000
+1601 4   0.200000
+1601 3732   0.075281
+1601 3736   0.102497
+1601 3738   1.000000
+1601 3740   0.022222
+1601 3742  -1.000000
+1602 4   0.031010
+1602 3743   1.000000
+1602 3745   0.039363
+1602 3749  -0.013107
+1602 3753   0.004754
+1602 3755  -1.000000
+1603 4   0.031010
+1603 3744   1.000000
+1603 3746   0.039363
+1603 3750  -0.013107
+1603 3754   0.004754
+1603 3756  -1.000000
+1604 4   0.128990
+1604 3745   0.078885
+1604 3747   1.000000
+1604 3749   0.058415
+1604 3753  -0.008310
+1604 3755  -1.000000
+1605 4   0.128990
+1605 3746   0.078885
+1605 3748   1.000000
+1605 3750   0.058415
+1605 3754  -0.008310
+1605 3756  -1.000000
+1606 4   0.200000
+1606 3745   0.075281
+1606 3749   0.102497
+1606 3751   1.000000
+1606 3753   0.022222
+1606 3755  -1.000000
+1607 4   0.200000
+1607 3746   0.075281
+1607 3750   0.102497
+1607 3752   1.000000
+1607 3754   0.022222
+1607 3756  -1.000000
+1608 4   0.031010
+1608 3757   1.000000
+1608 3759   0.039363
+1608 3763  -0.013107
+1608 3767   0.004754
+1608 3769  -1.000000
+1609 4   0.031010
+1609 3758   1.000000
+1609 3760   0.039363
+1609 3764  -0.013107
+1609 3768   0.004754
+1609 3770  -1.000000
+1610 4   0.128990
+1610 3759   0.078885
+1610 3761   1.000000
+1610 3763   0.058415
+1610 3767  -0.008310
+1610 3769  -1.000000
+1611 4   0.128990
+1611 3760   0.078885
+1611 3762   1.000000
+1611 3764   0.058415
+1611 3768  -0.008310
+1611 3770  -1.000000
+1612 4   0.200000
+1612 3759   0.075281
+1612 3763   0.102497
+1612 3765   1.000000
+1612 3767   0.022222
+1612 3769  -1.000000
+1613 4   0.200000
+1613 3760   0.075281
+1613 3764   0.102497
+1613 3766   1.000000
+1613 3768   0.022222
+1613 3770  -1.000000
+1614 4   0.031010
+1614 3771   1.000000
+1614 3773   0.039363
+1614 3777  -0.013107
+1614 3781   0.004754
+1614 3783  -1.000000
+1615 4   0.031010
+1615 3772   1.000000
+1615 3774   0.039363
+1615 3778  -0.013107
+1615 3782   0.004754
+1615 3784  -1.000000
+1616 4   0.128990
+1616 3773   0.078885
+1616 3775   1.000000
+1616 3777   0.058415
+1616 3781  -0.008310
+1616 3783  -1.000000
+1617 4   0.128990
+1617 3774   0.078885
+1617 3776   1.000000
+1617 3778   0.058415
+1617 3782  -0.008310
+1617 3784  -1.000000
+1618 4   0.200000
+1618 3773   0.075281
+1618 3777   0.102497
+1618 3779   1.000000
+1618 3781   0.022222
+1618 3783  -1.000000
+1619 4   0.200000
+1619 3774   0.075281
+1619 3778   0.102497
+1619 3780   1.000000
+1619 3782   0.022222
+1619 3784  -1.000000
+1620 4   0.031010
+1620 3785   1.000000
+1620 3787   0.039363
+1620 3791  -0.013107
+1620 3795   0.004754
+1620 3797  -1.000000
+1621 4   0.031010
+1621 3786   1.000000
+1621 3788   0.039363
+1621 3792  -0.013107
+1621 3796   0.004754
+1621 3798  -1.000000
+1622 4   0.128990
+1622 3787   0.078885
+1622 3789   1.000000
+1622 3791   0.058415
+1622 3795  -0.008310
+1622 3797  -1.000000
+1623 4   0.128990
+1623 3788   0.078885
+1623 3790   1.000000
+1623 3792   0.058415
+1623 3796  -0.008310
+1623 3798  -1.000000
+1624 4   0.200000
+1624 3787   0.075281
+1624 3791   0.102497
+1624 3793   1.000000
+1624 3795   0.022222
+1624 3797  -1.000000
+1625 4   0.200000
+1625 3788   0.075281
+1625 3792   0.102497
+1625 3794   1.000000
+1625 3796   0.022222
+1625 3798  -1.000000
+1626 4   0.031010
+1626 3799   1.000000
+1626 3801   0.039363
+1626 3805  -0.013107
+1626 3809   0.004754
+1626 3811  -1.000000
+1627 4   0.031010
+1627 3800   1.000000
+1627 3802   0.039363
+1627 3806  -0.013107
+1627 3810   0.004754
+1627 3812  -1.000000
+1628 4   0.128990
+1628 3801   0.078885
+1628 3803   1.000000
+1628 3805   0.058415
+1628 3809  -0.008310
+1628 3811  -1.000000
+1629 4   0.128990
+1629 3802   0.078885
+1629 3804   1.000000
+1629 3806   0.058415
+1629 3810  -0.008310
+1629 3812  -1.000000
+1630 4   0.200000
+1630 3801   0.075281
+1630 3805   0.102497
+1630 3807   1.000000
+1630 3809   0.022222
+1630 3811  -1.000000
+1631 4   0.200000
+1631 3802   0.075281
+1631 3806   0.102497
+1631 3808   1.000000
+1631 3810   0.022222
+1631 3812  -1.000000
+1632 4   0.031010
+1632 3813   1.000000
+1632 3815   0.039363
+1632 3819  -0.013107
+1632 3823   0.004754
+1632 3825  -1.000000
+1633 4   0.031010
+1633 3814   1.000000
+1633 3816   0.039363
+1633 3820  -0.013107
+1633 3824   0.004754
+1633 3826  -1.000000
+1634 4   0.128990
+1634 3815   0.078885
+1634 3817   1.000000
+1634 3819   0.058415
+1634 3823  -0.008310
+1634 3825  -1.000000
+1635 4   0.128990
+1635 3816   0.078885
+1635 3818   1.000000
+1635 3820   0.058415
+1635 3824  -0.008310
+1635 3826  -1.000000
+1636 4   0.200000
+1636 3815   0.075281
+1636 3819   0.102497
+1636 3821   1.000000
+1636 3823   0.022222
+1636 3825  -1.000000
+1637 4   0.200000
+1637 3816   0.075281
+1637 3820   0.102497
+1637 3822   1.000000
+1637 3824   0.022222
+1637 3826  -1.000000
+1638 4   0.031010
+1638 3827   1.000000
+1638 3829   0.039363
+1638 3833  -0.013107
+1638 3837   0.004754
+1638 3839  -1.000000
+1639 4   0.031010
+1639 3828   1.000000
+1639 3830   0.039363
+1639 3834  -0.013107
+1639 3838   0.004754
+1639 3840  -1.000000
+1640 4   0.128990
+1640 3829   0.078885
+1640 3831   1.000000
+1640 3833   0.058415
+1640 3837  -0.008310
+1640 3839  -1.000000
+1641 4   0.128990
+1641 3830   0.078885
+1641 3832   1.000000
+1641 3834   0.058415
+1641 3838  -0.008310
+1641 3840  -1.000000
+1642 4   0.200000
+1642 3829   0.075281
+1642 3833   0.102497
+1642 3835   1.000000
+1642 3837   0.022222
+1642 3839  -1.000000
+1643 4   0.200000
+1643 3830   0.075281
+1643 3834   0.102497
+1643 3836   1.000000
+1643 3838   0.022222
+1643 3840  -1.000000
+1644 4   0.031010
+1644 3841   1.000000
+1644 3843   0.039363
+1644 3847  -0.013107
+1644 3851   0.004754
+1644 3853  -1.000000
+1645 4   0.031010
+1645 3842   1.000000
+1645 3844   0.039363
+1645 3848  -0.013107
+1645 3852   0.004754
+1645 3854  -1.000000
+1646 4   0.128990
+1646 3843   0.078885
+1646 3845   1.000000
+1646 3847   0.058415
+1646 3851  -0.008310
+1646 3853  -1.000000
+1647 4   0.128990
+1647 3844   0.078885
+1647 3846   1.000000
+1647 3848   0.058415
+1647 3852  -0.008310
+1647 3854  -1.000000
+1648 4   0.200000
+1648 3843   0.075281
+1648 3847   0.102497
+1648 3849   1.000000
+1648 3851   0.022222
+1648 3853  -1.000000
+1649 4   0.200000
+1649 3844   0.075281
+1649 3848   0.102497
+1649 3850   1.000000
+1649 3852   0.022222
+1649 3854  -1.000000
+1650 4   0.031010
+1650 3855   1.000000
+1650 3857   0.039363
+1650 3861  -0.013107
+1650 3865   0.004754
+1650 3867  -1.000000
+1651 4   0.031010
+1651 3856   1.000000
+1651 3858   0.039363
+1651 3862  -0.013107
+1651 3866   0.004754
+1651 3868  -1.000000
+1652 4   0.128990
+1652 3857   0.078885
+1652 3859   1.000000
+1652 3861   0.058415
+1652 3865  -0.008310
+1652 3867  -1.000000
+1653 4   0.128990
+1653 3858   0.078885
+1653 3860   1.000000
+1653 3862   0.058415
+1653 3866  -0.008310
+1653 3868  -1.000000
+1654 4   0.200000
+1654 3857   0.075281
+1654 3861   0.102497
+1654 3863   1.000000
+1654 3865   0.022222
+1654 3867  -1.000000
+1655 4   0.200000
+1655 3858   0.075281
+1655 3862   0.102497
+1655 3864   1.000000
+1655 3866   0.022222
+1655 3868  -1.000000
+1656 4   0.031010
+1656 3869   1.000000
+1656 3871   0.039363
+1656 3875  -0.013107
+1656 3879   0.004754
+1656 3881  -1.000000
+1657 4   0.031010
+1657 3870   1.000000
+1657 3872   0.039363
+1657 3876  -0.013107
+1657 3880   0.004754
+1657 3882  -1.000000
+1658 4   0.128990
+1658 3871   0.078885
+1658 3873   1.000000
+1658 3875   0.058415
+1658 3879  -0.008310
+1658 3881  -1.000000
+1659 4   0.128990
+1659 3872   0.078885
+1659 3874   1.000000
+1659 3876   0.058415
+1659 3880  -0.008310
+1659 3882  -1.000000
+1660 4   0.200000
+1660 3871   0.075281
+1660 3875   0.102497
+1660 3877   1.000000
+1660 3879   0.022222
+1660 3881  -1.000000
+1661 4   0.200000
+1661 3872   0.075281
+1661 3876   0.102497
+1661 3878   1.000000
+1661 3880   0.022222
+1661 3882  -1.000000
+1662 4   0.031010
+1662 3883   1.000000
+1662 3885   0.039363
+1662 3889  -0.013107
+1662 3893   0.004754
+1662 3895  -1.000000
+1663 4   0.031010
+1663 3884   1.000000
+1663 3886   0.039363
+1663 3890  -0.013107
+1663 3894   0.004754
+1663 3896  -1.000000
+1664 4   0.128990
+1664 3885   0.078885
+1664 3887   1.000000
+1664 3889   0.058415
+1664 3893  -0.008310
+1664 3895  -1.000000
+1665 4   0.128990
+1665 3886   0.078885
+1665 3888   1.000000
+1665 3890   0.058415
+1665 3894  -0.008310
+1665 3896  -1.000000
+1666 4   0.200000
+1666 3885   0.075281
+1666 3889   0.102497
+1666 3891   1.000000
+1666 3893   0.022222
+1666 3895  -1.000000
+1667 4   0.200000
+1667 3886   0.075281
+1667 3890   0.102497
+1667 3892   1.000000
+1667 3894   0.022222
+1667 3896  -1.000000
+1668 4   0.031010
+1668 3897   1.000000
+1668 3899   0.039363
+1668 3903  -0.013107
+1668 3907   0.004754
+1668 3909  -1.000000
+1669 4   0.031010
+1669 3898   1.000000
+1669 3900   0.039363
+1669 3904  -0.013107
+1669 3908   0.004754
+1669 3910  -1.000000
+1670 4   0.128990
+1670 3899   0.078885
+1670 3901   1.000000
+1670 3903   0.058415
+1670 3907  -0.008310
+1670 3909  -1.000000
+1671 4   0.128990
+1671 3900   0.078885
+1671 3902   1.000000
+1671 3904   0.058415
+1671 3908  -0.008310
+1671 3910  -1.000000
+1672 4   0.200000
+1672 3899   0.075281
+1672 3903   0.102497
+1672 3905   1.000000
+1672 3907   0.022222
+1672 3909  -1.000000
+1673 4   0.200000
+1673 3900   0.075281
+1673 3904   0.102497
+1673 3906   1.000000
+1673 3908   0.022222
+1673 3910  -1.000000
+1674 4   0.031010
+1674 3911   1.000000
+1674 3913   0.039363
+1674 3917  -0.013107
+1674 3921   0.004754
+1674 3923  -1.000000
+1675 4   0.031010
+1675 3912   1.000000
+1675 3914   0.039363
+1675 3918  -0.013107
+1675 3922   0.004754
+1675 3924  -1.000000
+1676 4   0.128990
+1676 3913   0.078885
+1676 3915   1.000000
+1676 3917   0.058415
+1676 3921  -0.008310
+1676 3923  -1.000000
+1677 4   0.128990
+1677 3914   0.078885
+1677 3916   1.000000
+1677 3918   0.058415
+1677 3922  -0.008310
+1677 3924  -1.000000
+1678 4   0.200000
+1678 3913   0.075281
+1678 3917   0.102497
+1678 3919   1.000000
+1678 3921   0.022222
+1678 3923  -1.000000
+1679 4   0.200000
+1679 3914   0.075281
+1679 3918   0.102497
+1679 3920   1.000000
+1679 3922   0.022222
+1679 3924  -1.000000
+1680 4   0.031010
+1680 3925   1.000000
+1680 3927   0.039363
+1680 3931  -0.013107
+1680 3935   0.004754
+1680 3937  -1.000000
+1681 4   0.031010
+1681 3926   1.000000
+1681 3928   0.039363
+1681 3932  -0.013107
+1681 3936   0.004754
+1681 3938  -1.000000
+1682 4   0.128990
+1682 3927   0.078885
+1682 3929   1.000000
+1682 3931   0.058415
+1682 3935  -0.008310
+1682 3937  -1.000000
+1683 4   0.128990
+1683 3928   0.078885
+1683 3930   1.000000
+1683 3932   0.058415
+1683 3936  -0.008310
+1683 3938  -1.000000
+1684 4   0.200000
+1684 3927   0.075281
+1684 3931   0.102497
+1684 3933   1.000000
+1684 3935   0.022222
+1684 3937  -1.000000
+1685 4   0.200000
+1685 3928   0.075281
+1685 3932   0.102497
+1685 3934   1.000000
+1685 3936   0.022222
+1685 3938  -1.000000
+1686 4   0.031010
+1686 3939   1.000000
+1686 3941   0.039363
+1686 3945  -0.013107
+1686 3949   0.004754
+1686 3951  -1.000000
+1687 4   0.031010
+1687 3940   1.000000
+1687 3942   0.039363
+1687 3946  -0.013107
+1687 3950   0.004754
+1687 3952  -1.000000
+1688 4   0.128990
+1688 3941   0.078885
+1688 3943   1.000000
+1688 3945   0.058415
+1688 3949  -0.008310
+1688 3951  -1.000000
+1689 4   0.128990
+1689 3942   0.078885
+1689 3944   1.000000
+1689 3946   0.058415
+1689 3950  -0.008310
+1689 3952  -1.000000
+1690 4   0.200000
+1690 3941   0.075281
+1690 3945   0.102497
+1690 3947   1.000000
+1690 3949   0.022222
+1690 3951  -1.000000
+1691 4   0.200000
+1691 3942   0.075281
+1691 3946   0.102497
+1691 3948   1.000000
+1691 3950   0.022222
+1691 3952  -1.000000
+1692 4   0.031010
+1692 3953   1.000000
+1692 3955   0.039363
+1692 3959  -0.013107
+1692 3963   0.004754
+1692 3965  -1.000000
+1693 4   0.031010
+1693 3954   1.000000
+1693 3956   0.039363
+1693 3960  -0.013107
+1693 3964   0.004754
+1693 3966  -1.000000
+1694 4   0.128990
+1694 3955   0.078885
+1694 3957   1.000000
+1694 3959   0.058415
+1694 3963  -0.008310
+1694 3965  -1.000000
+1695 4   0.128990
+1695 3956   0.078885
+1695 3958   1.000000
+1695 3960   0.058415
+1695 3964  -0.008310
+1695 3966  -1.000000
+1696 4   0.200000
+1696 3955   0.075281
+1696 3959   0.102497
+1696 3961   1.000000
+1696 3963   0.022222
+1696 3965  -1.000000
+1697 4   0.200000
+1697 3956   0.075281
+1697 3960   0.102497
+1697 3962   1.000000
+1697 3964   0.022222
+1697 3966  -1.000000
+1698 4   0.031010
+1698 3967   1.000000
+1698 3969   0.039363
+1698 3973  -0.013107
+1698 3977   0.004754
+1698 3979  -1.000000
+1699 4   0.031010
+1699 3968   1.000000
+1699 3970   0.039363
+1699 3974  -0.013107
+1699 3978   0.004754
+1699 3980  -1.000000
+1700 4   0.128990
+1700 3969   0.078885
+1700 3971   1.000000
+1700 3973   0.058415
+1700 3977  -0.008310
+1700 3979  -1.000000
+1701 4   0.128990
+1701 3970   0.078885
+1701 3972   1.000000
+1701 3974   0.058415
+1701 3978  -0.008310
+1701 3980  -1.000000
+1702 4   0.200000
+1702 3969   0.075281
+1702 3973   0.102497
+1702 3975   1.000000
+1702 3977   0.022222
+1702 3979  -1.000000
+1703 4   0.200000
+1703 3970   0.075281
+1703 3974   0.102497
+1703 3976   1.000000
+1703 3978   0.022222
+1703 3980  -1.000000
+1704 4   0.031010
+1704 3981   1.000000
+1704 3983   0.039363
+1704 3987  -0.013107
+1704 3991   0.004754
+1704 3993  -1.000000
+1705 4   0.031010
+1705 3982   1.000000
+1705 3984   0.039363
+1705 3988  -0.013107
+1705 3992   0.004754
+1705 3994  -1.000000
+1706 4   0.128990
+1706 3983   0.078885
+1706 3985   1.000000
+1706 3987   0.058415
+1706 3991  -0.008310
+1706 3993  -1.000000
+1707 4   0.128990
+1707 3984   0.078885
+1707 3986   1.000000
+1707 3988   0.058415
+1707 3992  -0.008310
+1707 3994  -1.000000
+1708 4   0.200000
+1708 3983   0.075281
+1708 3987   0.102497
+1708 3989   1.000000
+1708 3991   0.022222
+1708 3993  -1.000000
+1709 4   0.200000
+1709 3984   0.075281
+1709 3988   0.102497
+1709 3990   1.000000
+1709 3992   0.022222
+1709 3994  -1.000000
+1710 4   0.031010
+1710 3995   1.000000
+1710 3997   0.039363
+1710 4001  -0.013107
+1710 4005   0.004754
+1710 4007  -1.000000
+1711 4   0.031010
+1711 3996   1.000000
+1711 3998   0.039363
+1711 4002  -0.013107
+1711 4006   0.004754
+1711 4008  -1.000000
+1712 4   0.128990
+1712 3997   0.078885
+1712 3999   1.000000
+1712 4001   0.058415
+1712 4005  -0.008310
+1712 4007  -1.000000
+1713 4   0.128990
+1713 3998   0.078885
+1713 4000   1.000000
+1713 4002   0.058415
+1713 4006  -0.008310
+1713 4008  -1.000000
+1714 4   0.200000
+1714 3997   0.075281
+1714 4001   0.102497
+1714 4003   1.000000
+1714 4005   0.022222
+1714 4007  -1.000000
+1715 4   0.200000
+1715 3998   0.075281
+1715 4002   0.102497
+1715 4004   1.000000
+1715 4006   0.022222
+1715 4008  -1.000000
+1716 4   0.031010
+1716 4009   1.000000
+1716 4011   0.039363
+1716 4015  -0.013107
+1716 4019   0.004754
+1716 4021  -1.000000
+1717 4   0.031010
+1717 4010   1.000000
+1717 4012   0.039363
+1717 4016  -0.013107
+1717 4020   0.004754
+1717 4022  -1.000000
+1718 4   0.128990
+1718 4011   0.078885
+1718 4013   1.000000
+1718 4015   0.058415
+1718 4019  -0.008310
+1718 4021  -1.000000
+1719 4   0.128990
+1719 4012   0.078885
+1719 4014   1.000000
+1719 4016   0.058415
+1719 4020  -0.008310
+1719 4022  -1.000000
+1720 4   0.200000
+1720 4011   0.075281
+1720 4015   0.102497
+1720 4017   1.000000
+1720 4019   0.022222
+1720 4021  -1.000000
+1721 4   0.200000
+1721 4012   0.075281
+1721 4016   0.102497
+1721 4018   1.000000
+1721 4020   0.022222
+1721 4022  -1.000000
+1722 4   0.031010
+1722 4023   1.000000
+1722 4025   0.039363
+1722 4029  -0.013107
+1722 4033   0.004754
+1722 4035  -1.000000
+1723 4   0.031010
+1723 4024   1.000000
+1723 4026   0.039363
+1723 4030  -0.013107
+1723 4034   0.004754
+1723 4036  -1.000000
+1724 4   0.128990
+1724 4025   0.078885
+1724 4027   1.000000
+1724 4029   0.058415
+1724 4033  -0.008310
+1724 4035  -1.000000
+1725 4   0.128990
+1725 4026   0.078885
+1725 4028   1.000000
+1725 4030   0.058415
+1725 4034  -0.008310
+1725 4036  -1.000000
+1726 4   0.200000
+1726 4025   0.075281
+1726 4029   0.102497
+1726 4031   1.000000
+1726 4033   0.022222
+1726 4035  -1.000000
+1727 4   0.200000
+1727 4026   0.075281
+1727 4030   0.102497
+1727 4032   1.000000
+1727 4034   0.022222
+1727 4036  -1.000000
+1728 4   0.031010
+1728 4037   1.000000
+1728 4039   0.039363
+1728 4043  -0.013107
+1728 4047   0.004754
+1728 4049  -1.000000
+1729 4   0.031010
+1729 4038   1.000000
+1729 4040   0.039363
+1729 4044  -0.013107
+1729 4048   0.004754
+1729 4050  -1.000000
+1730 4   0.128990
+1730 4039   0.078885
+1730 4041   1.000000
+1730 4043   0.058415
+1730 4047  -0.008310
+1730 4049  -1.000000
+1731 4   0.128990
+1731 4040   0.078885
+1731 4042   1.000000
+1731 4044   0.058415
+1731 4048  -0.008310
+1731 4050  -1.000000
+1732 4   0.200000
+1732 4039   0.075281
+1732 4043   0.102497
+1732 4045   1.000000
+1732 4047   0.022222
+1732 4049  -1.000000
+1733 4   0.200000
+1733 4040   0.075281
+1733 4044   0.102497
+1733 4046   1.000000
+1733 4048   0.022222
+1733 4050  -1.000000
+1734 4   0.031010
+1734 4051   1.000000
+1734 4053   0.039363
+1734 4057  -0.013107
+1734 4061   0.004754
+1734 4063  -1.000000
+1735 4   0.031010
+1735 4052   1.000000
+1735 4054   0.039363
+1735 4058  -0.013107
+1735 4062   0.004754
+1735 4064  -1.000000
+1736 4   0.128990
+1736 4053   0.078885
+1736 4055   1.000000
+1736 4057   0.058415
+1736 4061  -0.008310
+1736 4063  -1.000000
+1737 4   0.128990
+1737 4054   0.078885
+1737 4056   1.000000
+1737 4058   0.058415
+1737 4062  -0.008310
+1737 4064  -1.000000
+1738 4   0.200000
+1738 4053   0.075281
+1738 4057   0.102497
+1738 4059   1.000000
+1738 4061   0.022222
+1738 4063  -1.000000
+1739 4   0.200000
+1739 4054   0.075281
+1739 4058   0.102497
+1739 4060   1.000000
+1739 4062   0.022222
+1739 4064  -1.000000
+1740 4   0.031010
+1740 4065   1.000000
+1740 4067   0.039363
+1740 4071  -0.013107
+1740 4075   0.004754
+1740 4077  -1.000000
+1741 4   0.031010
+1741 4066   1.000000
+1741 4068   0.039363
+1741 4072  -0.013107
+1741 4076   0.004754
+1741 4078  -1.000000
+1742 4   0.128990
+1742 4067   0.078885
+1742 4069   1.000000
+1742 4071   0.058415
+1742 4075  -0.008310
+1742 4077  -1.000000
+1743 4   0.128990
+1743 4068   0.078885
+1743 4070   1.000000
+1743 4072   0.058415
+1743 4076  -0.008310
+1743 4078  -1.000000
+1744 4   0.200000
+1744 4067   0.075281
+1744 4071   0.102497
+1744 4073   1.000000
+1744 4075   0.022222
+1744 4077  -1.000000
+1745 4   0.200000
+1745 4068   0.075281
+1745 4072   0.102497
+1745 4074   1.000000
+1745 4076   0.022222
+1745 4078  -1.000000
+1746 4   0.031010
+1746 4079   1.000000
+1746 4081   0.039363
+1746 4085  -0.013107
+1746 4089   0.004754
+1746 4091  -1.000000
+1747 4   0.031010
+1747 4080   1.000000
+1747 4082   0.039363
+1747 4086  -0.013107
+1747 4090   0.004754
+1747 4092  -1.000000
+1748 4   0.128990
+1748 4081   0.078885
+1748 4083   1.000000
+1748 4085   0.058415
+1748 4089  -0.008310
+1748 4091  -1.000000
+1749 4   0.128990
+1749 4082   0.078885
+1749 4084   1.000000
+1749 4086   0.058415
+1749 4090  -0.008310
+1749 4092  -1.000000
+1750 4   0.200000
+1750 4081   0.075281
+1750 4085   0.102497
+1750 4087   1.000000
+1750 4089   0.022222
+1750 4091  -1.000000
+1751 4   0.200000
+1751 4082   0.075281
+1751 4086   0.102497
+1751 4088   1.000000
+1751 4090   0.022222
+1751 4092  -1.000000
+1752 4   0.031010
+1752 4093   1.000000
+1752 4095   0.039363
+1752 4099  -0.013107
+1752 4103   0.004754
+1752 4105  -1.000000
+1753 4   0.031010
+1753 4094   1.000000
+1753 4096   0.039363
+1753 4100  -0.013107
+1753 4104   0.004754
+1753 4106  -1.000000
+1754 4   0.128990
+1754 4095   0.078885
+1754 4097   1.000000
+1754 4099   0.058415
+1754 4103  -0.008310
+1754 4105  -1.000000
+1755 4   0.128990
+1755 4096   0.078885
+1755 4098   1.000000
+1755 4100   0.058415
+1755 4104  -0.008310
+1755 4106  -1.000000
+1756 4   0.200000
+1756 4095   0.075281
+1756 4099   0.102497
+1756 4101   1.000000
+1756 4103   0.022222
+1756 4105  -1.000000
+1757 4   0.200000
+1757 4096   0.075281
+1757 4100   0.102497
+1757 4102   1.000000
+1757 4104   0.022222
+1757 4106  -1.000000
+1758 4   0.031010
+1758 4107   1.000000
+1758 4109   0.039363
+1758 4113  -0.013107
+1758 4117   0.004754
+1758 4119  -1.000000
+1759 4   0.031010
+1759 4108   1.000000
+1759 4110   0.039363
+1759 4114  -0.013107
+1759 4118   0.004754
+1759 4120  -1.000000
+1760 4   0.128990
+1760 4109   0.078885
+1760 4111   1.000000
+1760 4113   0.058415
+1760 4117  -0.008310
+1760 4119  -1.000000
+1761 4   0.128990
+1761 4110   0.078885
+1761 4112   1.000000
+1761 4114   0.058415
+1761 4118  -0.008310
+1761 4120  -1.000000
+1762 4   0.200000
+1762 4109   0.075281
+1762 4113   0.102497
+1762 4115   1.000000
+1762 4117   0.022222
+1762 4119  -1.000000
+1763 4   0.200000
+1763 4110   0.075281
+1763 4114   0.102497
+1763 4116   1.000000
+1763 4118   0.022222
+1763 4120  -1.000000
+1764 4   0.031010
+1764 4121   1.000000
+1764 4123   0.039363
+1764 4127  -0.013107
+1764 4131   0.004754
+1764 4133  -1.000000
+1765 4   0.031010
+1765 4122   1.000000
+1765 4124   0.039363
+1765 4128  -0.013107
+1765 4132   0.004754
+1765 4134  -1.000000
+1766 4   0.128990
+1766 4123   0.078885
+1766 4125   1.000000
+1766 4127   0.058415
+1766 4131  -0.008310
+1766 4133  -1.000000
+1767 4   0.128990
+1767 4124   0.078885
+1767 4126   1.000000
+1767 4128   0.058415
+1767 4132  -0.008310
+1767 4134  -1.000000
+1768 4   0.200000
+1768 4123   0.075281
+1768 4127   0.102497
+1768 4129   1.000000
+1768 4131   0.022222
+1768 4133  -1.000000
+1769 4   0.200000
+1769 4124   0.075281
+1769 4128   0.102497
+1769 4130   1.000000
+1769 4132   0.022222
+1769 4134  -1.000000
+1770 4   0.031010
+1770 4135   1.000000
+1770 4137   0.039363
+1770 4141  -0.013107
+1770 4145   0.004754
+1770 4147  -1.000000
+1771 4   0.031010
+1771 4136   1.000000
+1771 4138   0.039363
+1771 4142  -0.013107
+1771 4146   0.004754
+1771 4148  -1.000000
+1772 4   0.128990
+1772 4137   0.078885
+1772 4139   1.000000
+1772 4141   0.058415
+1772 4145  -0.008310
+1772 4147  -1.000000
+1773 4   0.128990
+1773 4138   0.078885
+1773 4140   1.000000
+1773 4142   0.058415
+1773 4146  -0.008310
+1773 4148  -1.000000
+1774 4   0.200000
+1774 4137   0.075281
+1774 4141   0.102497
+1774 4143   1.000000
+1774 4145   0.022222
+1774 4147  -1.000000
+1775 4   0.200000
+1775 4138   0.075281
+1775 4142   0.102497
+1775 4144   1.000000
+1775 4146   0.022222
+1775 4148  -1.000000
+1776 4   0.031010
+1776 4149   1.000000
+1776 4151   0.039363
+1776 4155  -0.013107
+1776 4159   0.004754
+1776 4161  -1.000000
+1777 4   0.031010
+1777 4150   1.000000
+1777 4152   0.039363
+1777 4156  -0.013107
+1777 4160   0.004754
+1777 4162  -1.000000
+1778 4   0.128990
+1778 4151   0.078885
+1778 4153   1.000000
+1778 4155   0.058415
+1778 4159  -0.008310
+1778 4161  -1.000000
+1779 4   0.128990
+1779 4152   0.078885
+1779 4154   1.000000
+1779 4156   0.058415
+1779 4160  -0.008310
+1779 4162  -1.000000
+1780 4   0.200000
+1780 4151   0.075281
+1780 4155   0.102497
+1780 4157   1.000000
+1780 4159   0.022222
+1780 4161  -1.000000
+1781 4   0.200000
+1781 4152   0.075281
+1781 4156   0.102497
+1781 4158   1.000000
+1781 4160   0.022222
+1781 4162  -1.000000
+1782 4   0.031010
+1782 4163   1.000000
+1782 4165   0.039363
+1782 4169  -0.013107
+1782 4173   0.004754
+1782 4175  -1.000000
+1783 4   0.031010
+1783 4164   1.000000
+1783 4166   0.039363
+1783 4170  -0.013107
+1783 4174   0.004754
+1783 4176  -1.000000
+1784 4   0.128990
+1784 4165   0.078885
+1784 4167   1.000000
+1784 4169   0.058415
+1784 4173  -0.008310
+1784 4175  -1.000000
+1785 4   0.128990
+1785 4166   0.078885
+1785 4168   1.000000
+1785 4170   0.058415
+1785 4174  -0.008310
+1785 4176  -1.000000
+1786 4   0.200000
+1786 4165   0.075281
+1786 4169   0.102497
+1786 4171   1.000000
+1786 4173   0.022222
+1786 4175  -1.000000
+1787 4   0.200000
+1787 4166   0.075281
+1787 4170   0.102497
+1787 4172   1.000000
+1787 4174   0.022222
+1787 4176  -1.000000
+1788 4   0.031010
+1788 4177   1.000000
+1788 4179   0.039363
+1788 4183  -0.013107
+1788 4187   0.004754
+1788 4189  -1.000000
+1789 4   0.031010
+1789 4178   1.000000
+1789 4180   0.039363
+1789 4184  -0.013107
+1789 4188   0.004754
+1789 4190  -1.000000
+1790 4   0.128990
+1790 4179   0.078885
+1790 4181   1.000000
+1790 4183   0.058415
+1790 4187  -0.008310
+1790 4189  -1.000000
+1791 4   0.128990
+1791 4180   0.078885
+1791 4182   1.000000
+1791 4184   0.058415
+1791 4188  -0.008310
+1791 4190  -1.000000
+1792 4   0.200000
+1792 4179   0.075281
+1792 4183   0.102497
+1792 4185   1.000000
+1792 4187   0.022222
+1792 4189  -1.000000
+1793 4   0.200000
+1793 4180   0.075281
+1793 4184   0.102497
+1793 4186   1.000000
+1793 4188   0.022222
+1793 4190  -1.000000
+1794 4   0.031010
+1794 4191   1.000000
+1794 4193   0.039363
+1794 4197  -0.013107
+1794 4201   0.004754
+1794 4203  -1.000000
+1795 4   0.031010
+1795 4192   1.000000
+1795 4194   0.039363
+1795 4198  -0.013107
+1795 4202   0.004754
+1795 4204  -1.000000
+1796 4   0.128990
+1796 4193   0.078885
+1796 4195   1.000000
+1796 4197   0.058415
+1796 4201  -0.008310
+1796 4203  -1.000000
+1797 4   0.128990
+1797 4194   0.078885
+1797 4196   1.000000
+1797 4198   0.058415
+1797 4202  -0.008310
+1797 4204  -1.000000
+1798 4   0.200000
+1798 4193   0.075281
+1798 4197   0.102497
+1798 4199   1.000000
+1798 4201   0.022222
+1798 4203  -1.000000
+1799 4   0.200000
+1799 4194   0.075281
+1799 4198   0.102497
+1799 4200   1.000000
+1799 4202   0.022222
+1799 4204  -1.000000
+1800 4   0.031010
+1800 4205   1.000000
+1800 4207   0.039363
+1800 4211  -0.013107
+1800 4215   0.004754
+1800 4217  -1.000000
+1801 4   0.031010
+1801 4206   1.000000
+1801 4208   0.039363
+1801 4212  -0.013107
+1801 4216   0.004754
+1801 4218  -1.000000
+1802 4   0.128990
+1802 4207   0.078885
+1802 4209   1.000000
+1802 4211   0.058415
+1802 4215  -0.008310
+1802 4217  -1.000000
+1803 4   0.128990
+1803 4208   0.078885
+1803 4210   1.000000
+1803 4212   0.058415
+1803 4216  -0.008310
+1803 4218  -1.000000
+1804 4   0.200000
+1804 4207   0.075281
+1804 4211   0.102497
+1804 4213   1.000000
+1804 4215   0.022222
+1804 4217  -1.000000
+1805 4   0.200000
+1805 4208   0.075281
+1805 4212   0.102497
+1805 4214   1.000000
+1805 4216   0.022222
+1805 4218  -1.000000
+1806 4   0.031010
+1806 4219   1.000000
+1806 4221   0.039363
+1806 4225  -0.013107
+1806 4229   0.004754
+1806 4231  -1.000000
+1807 4   0.031010
+1807 4220   1.000000
+1807 4222   0.039363
+1807 4226  -0.013107
+1807 4230   0.004754
+1807 4232  -1.000000
+1808 4   0.128990
+1808 4221   0.078885
+1808 4223   1.000000
+1808 4225   0.058415
+1808 4229  -0.008310
+1808 4231  -1.000000
+1809 4   0.128990
+1809 4222   0.078885
+1809 4224   1.000000
+1809 4226   0.058415
+1809 4230  -0.008310
+1809 4232  -1.000000
+1810 4   0.200000
+1810 4221   0.075281
+1810 4225   0.102497
+1810 4227   1.000000
+1810 4229   0.022222
+1810 4231  -1.000000
+1811 4   0.200000
+1811 4222   0.075281
+1811 4226   0.102497
+1811 4228   1.000000
+1811 4230   0.022222
+1811 4232  -1.000000
+1812 4   0.031010
+1812 4233   1.000000
+1812 4235   0.039363
+1812 4239  -0.013107
+1812 4243   0.004754
+1812 4245  -1.000000
+1813 4   0.031010
+1813 4234   1.000000
+1813 4236   0.039363
+1813 4240  -0.013107
+1813 4244   0.004754
+1813 4246  -1.000000
+1814 4   0.128990
+1814 4235   0.078885
+1814 4237   1.000000
+1814 4239   0.058415
+1814 4243  -0.008310
+1814 4245  -1.000000
+1815 4   0.128990
+1815 4236   0.078885
+1815 4238   1.000000
+1815 4240   0.058415
+1815 4244  -0.008310
+1815 4246  -1.000000
+1816 4   0.200000
+1816 4235   0.075281
+1816 4239   0.102497
+1816 4241   1.000000
+1816 4243   0.022222
+1816 4245  -1.000000
+1817 4   0.200000
+1817 4236   0.075281
+1817 4240   0.102497
+1817 4242   1.000000
+1817 4244   0.022222
+1817 4246  -1.000000
+1818 4   0.031010
+1818 4247   1.000000
+1818 4249   0.039363
+1818 4253  -0.013107
+1818 4257   0.004754
+1818 4259  -1.000000
+1819 4   0.031010
+1819 4248   1.000000
+1819 4250   0.039363
+1819 4254  -0.013107
+1819 4258   0.004754
+1819 4260  -1.000000
+1820 4   0.128990
+1820 4249   0.078885
+1820 4251   1.000000
+1820 4253   0.058415
+1820 4257  -0.008310
+1820 4259  -1.000000
+1821 4   0.128990
+1821 4250   0.078885
+1821 4252   1.000000
+1821 4254   0.058415
+1821 4258  -0.008310
+1821 4260  -1.000000
+1822 4   0.200000
+1822 4249   0.075281
+1822 4253   0.102497
+1822 4255   1.000000
+1822 4257   0.022222
+1822 4259  -1.000000
+1823 4   0.200000
+1823 4250   0.075281
+1823 4254   0.102497
+1823 4256   1.000000
+1823 4258   0.022222
+1823 4260  -1.000000
+1824 4   0.031010
+1824 4261   1.000000
+1824 4263   0.039363
+1824 4267  -0.013107
+1824 4271   0.004754
+1824 4273  -1.000000
+1825 4   0.031010
+1825 4262   1.000000
+1825 4264   0.039363
+1825 4268  -0.013107
+1825 4272   0.004754
+1825 4274  -1.000000
+1826 4   0.128990
+1826 4263   0.078885
+1826 4265   1.000000
+1826 4267   0.058415
+1826 4271  -0.008310
+1826 4273  -1.000000
+1827 4   0.128990
+1827 4264   0.078885
+1827 4266   1.000000
+1827 4268   0.058415
+1827 4272  -0.008310
+1827 4274  -1.000000
+1828 4   0.200000
+1828 4263   0.075281
+1828 4267   0.102497
+1828 4269   1.000000
+1828 4271   0.022222
+1828 4273  -1.000000
+1829 4   0.200000
+1829 4264   0.075281
+1829 4268   0.102497
+1829 4270   1.000000
+1829 4272   0.022222
+1829 4274  -1.000000
+1830 4   0.031010
+1830 4275   1.000000
+1830 4277   0.039363
+1830 4281  -0.013107
+1830 4285   0.004754
+1830 4287  -1.000000
+1831 4   0.031010
+1831 4276   1.000000
+1831 4278   0.039363
+1831 4282  -0.013107
+1831 4286   0.004754
+1831 4288  -1.000000
+1832 4   0.128990
+1832 4277   0.078885
+1832 4279   1.000000
+1832 4281   0.058415
+1832 4285  -0.008310
+1832 4287  -1.000000
+1833 4   0.128990
+1833 4278   0.078885
+1833 4280   1.000000
+1833 4282   0.058415
+1833 4286  -0.008310
+1833 4288  -1.000000
+1834 4   0.200000
+1834 4277   0.075281
+1834 4281   0.102497
+1834 4283   1.000000
+1834 4285   0.022222
+1834 4287  -1.000000
+1835 4   0.200000
+1835 4278   0.075281
+1835 4282   0.102497
+1835 4284   1.000000
+1835 4286   0.022222
+1835 4288  -1.000000
+1836 4   0.031010
+1836 4289   1.000000
+1836 4291   0.039363
+1836 4295  -0.013107
+1836 4299   0.004754
+1836 4301  -1.000000
+1837 4   0.031010
+1837 4290   1.000000
+1837 4292   0.039363
+1837 4296  -0.013107
+1837 4300   0.004754
+1837 4302  -1.000000
+1838 4   0.128990
+1838 4291   0.078885
+1838 4293   1.000000
+1838 4295   0.058415
+1838 4299  -0.008310
+1838 4301  -1.000000
+1839 4   0.128990
+1839 4292   0.078885
+1839 4294   1.000000
+1839 4296   0.058415
+1839 4300  -0.008310
+1839 4302  -1.000000
+1840 4   0.200000
+1840 4291   0.075281
+1840 4295   0.102497
+1840 4297   1.000000
+1840 4299   0.022222
+1840 4301  -1.000000
+1841 4   0.200000
+1841 4292   0.075281
+1841 4296   0.102497
+1841 4298   1.000000
+1841 4300   0.022222
+1841 4302  -1.000000
+1842 4   0.031010
+1842 4303   1.000000
+1842 4305   0.039363
+1842 4309  -0.013107
+1842 4313   0.004754
+1842 4315  -1.000000
+1843 4   0.031010
+1843 4304   1.000000
+1843 4306   0.039363
+1843 4310  -0.013107
+1843 4314   0.004754
+1843 4316  -1.000000
+1844 4   0.128990
+1844 4305   0.078885
+1844 4307   1.000000
+1844 4309   0.058415
+1844 4313  -0.008310
+1844 4315  -1.000000
+1845 4   0.128990
+1845 4306   0.078885
+1845 4308   1.000000
+1845 4310   0.058415
+1845 4314  -0.008310
+1845 4316  -1.000000
+1846 4   0.200000
+1846 4305   0.075281
+1846 4309   0.102497
+1846 4311   1.000000
+1846 4313   0.022222
+1846 4315  -1.000000
+1847 4   0.200000
+1847 4306   0.075281
+1847 4310   0.102497
+1847 4312   1.000000
+1847 4314   0.022222
+1847 4316  -1.000000
+1848 4   0.031010
+1848 4317   1.000000
+1848 4319   0.039363
+1848 4323  -0.013107
+1848 4327   0.004754
+1848 4329  -1.000000
+1849 4   0.031010
+1849 4318   1.000000
+1849 4320   0.039363
+1849 4324  -0.013107
+1849 4328   0.004754
+1849 4330  -1.000000
+1850 4   0.128990
+1850 4319   0.078885
+1850 4321   1.000000
+1850 4323   0.058415
+1850 4327  -0.008310
+1850 4329  -1.000000
+1851 4   0.128990
+1851 4320   0.078885
+1851 4322   1.000000
+1851 4324   0.058415
+1851 4328  -0.008310
+1851 4330  -1.000000
+1852 4   0.200000
+1852 4319   0.075281
+1852 4323   0.102497
+1852 4325   1.000000
+1852 4327   0.022222
+1852 4329  -1.000000
+1853 4   0.200000
+1853 4320   0.075281
+1853 4324   0.102497
+1853 4326   1.000000
+1853 4328   0.022222
+1853 4330  -1.000000
+1854 4   0.031010
+1854 4331   1.000000
+1854 4333   0.039363
+1854 4337  -0.013107
+1854 4341   0.004754
+1854 4343  -1.000000
+1855 4   0.031010
+1855 4332   1.000000
+1855 4334   0.039363
+1855 4338  -0.013107
+1855 4342   0.004754
+1855 4344  -1.000000
+1856 4   0.128990
+1856 4333   0.078885
+1856 4335   1.000000
+1856 4337   0.058415
+1856 4341  -0.008310
+1856 4343  -1.000000
+1857 4   0.128990
+1857 4334   0.078885
+1857 4336   1.000000
+1857 4338   0.058415
+1857 4342  -0.008310
+1857 4344  -1.000000
+1858 4   0.200000
+1858 4333   0.075281
+1858 4337   0.102497
+1858 4339   1.000000
+1858 4341   0.022222
+1858 4343  -1.000000
+1859 4   0.200000
+1859 4334   0.075281
+1859 4338   0.102497
+1859 4340   1.000000
+1859 4342   0.022222
+1859 4344  -1.000000
+1860 4   0.031010
+1860 4345   1.000000
+1860 4347   0.039363
+1860 4351  -0.013107
+1860 4355   0.004754
+1860 4357  -1.000000
+1861 4   0.031010
+1861 4346   1.000000
+1861 4348   0.039363
+1861 4352  -0.013107
+1861 4356   0.004754
+1861 4358  -1.000000
+1862 4   0.128990
+1862 4347   0.078885
+1862 4349   1.000000
+1862 4351   0.058415
+1862 4355  -0.008310
+1862 4357  -1.000000
+1863 4   0.128990
+1863 4348   0.078885
+1863 4350   1.000000
+1863 4352   0.058415
+1863 4356  -0.008310
+1863 4358  -1.000000
+1864 4   0.200000
+1864 4347   0.075281
+1864 4351   0.102497
+1864 4353   1.000000
+1864 4355   0.022222
+1864 4357  -1.000000
+1865 4   0.200000
+1865 4348   0.075281
+1865 4352   0.102497
+1865 4354   1.000000
+1865 4356   0.022222
+1865 4358  -1.000000
+1866 4   0.031010
+1866 4359   1.000000
+1866 4361   0.039363
+1866 4365  -0.013107
+1866 4369   0.004754
+1866 4371  -1.000000
+1867 4   0.031010
+1867 4360   1.000000
+1867 4362   0.039363
+1867 4366  -0.013107
+1867 4370   0.004754
+1867 4372  -1.000000
+1868 4   0.128990
+1868 4361   0.078885
+1868 4363   1.000000
+1868 4365   0.058415
+1868 4369  -0.008310
+1868 4371  -1.000000
+1869 4   0.128990
+1869 4362   0.078885
+1869 4364   1.000000
+1869 4366   0.058415
+1869 4370  -0.008310
+1869 4372  -1.000000
+1870 4   0.200000
+1870 4361   0.075281
+1870 4365   0.102497
+1870 4367   1.000000
+1870 4369   0.022222
+1870 4371  -1.000000
+1871 4   0.200000
+1871 4362   0.075281
+1871 4366   0.102497
+1871 4368   1.000000
+1871 4370   0.022222
+1871 4372  -1.000000
+1872 4   0.031010
+1872 4373   1.000000
+1872 4375   0.039363
+1872 4379  -0.013107
+1872 4383   0.004754
+1872 4385  -1.000000
+1873 4   0.031010
+1873 4374   1.000000
+1873 4376   0.039363
+1873 4380  -0.013107
+1873 4384   0.004754
+1873 4386  -1.000000
+1874 4   0.128990
+1874 4375   0.078885
+1874 4377   1.000000
+1874 4379   0.058415
+1874 4383  -0.008310
+1874 4385  -1.000000
+1875 4   0.128990
+1875 4376   0.078885
+1875 4378   1.000000
+1875 4380   0.058415
+1875 4384  -0.008310
+1875 4386  -1.000000
+1876 4   0.200000
+1876 4375   0.075281
+1876 4379   0.102497
+1876 4381   1.000000
+1876 4383   0.022222
+1876 4385  -1.000000
+1877 4   0.200000
+1877 4376   0.075281
+1877 4380   0.102497
+1877 4382   1.000000
+1877 4384   0.022222
+1877 4386  -1.000000
+1878 4   0.031010
+1878 4387   1.000000
+1878 4389   0.039363
+1878 4393  -0.013107
+1878 4397   0.004754
+1878 4399  -1.000000
+1879 4   0.031010
+1879 4388   1.000000
+1879 4390   0.039363
+1879 4394  -0.013107
+1879 4398   0.004754
+1879 4400  -1.000000
+1880 4   0.128990
+1880 4389   0.078885
+1880 4391   1.000000
+1880 4393   0.058415
+1880 4397  -0.008310
+1880 4399  -1.000000
+1881 4   0.128990
+1881 4390   0.078885
+1881 4392   1.000000
+1881 4394   0.058415
+1881 4398  -0.008310
+1881 4400  -1.000000
+1882 4   0.200000
+1882 4389   0.075281
+1882 4393   0.102497
+1882 4395   1.000000
+1882 4397   0.022222
+1882 4399  -1.000000
+1883 4   0.200000
+1883 4390   0.075281
+1883 4394   0.102497
+1883 4396   1.000000
+1883 4398   0.022222
+1883 4400  -1.000000
+1884 4   0.031010
+1884 4401   1.000000
+1884 4403   0.039363
+1884 4407  -0.013107
+1884 4411   0.004754
+1884 4413  -1.000000
+1885 4   0.031010
+1885 4402   1.000000
+1885 4404   0.039363
+1885 4408  -0.013107
+1885 4412   0.004754
+1885 4414  -1.000000
+1886 4   0.128990
+1886 4403   0.078885
+1886 4405   1.000000
+1886 4407   0.058415
+1886 4411  -0.008310
+1886 4413  -1.000000
+1887 4   0.128990
+1887 4404   0.078885
+1887 4406   1.000000
+1887 4408   0.058415
+1887 4412  -0.008310
+1887 4414  -1.000000
+1888 4   0.200000
+1888 4403   0.075281
+1888 4407   0.102497
+1888 4409   1.000000
+1888 4411   0.022222
+1888 4413  -1.000000
+1889 4   0.200000
+1889 4404   0.075281
+1889 4408   0.102497
+1889 4410   1.000000
+1889 4412   0.022222
+1889 4414  -1.000000
+1890 4   0.031010
+1890 4415   1.000000
+1890 4417   0.039363
+1890 4421  -0.013107
+1890 4425   0.004754
+1890 4427  -1.000000
+1891 4   0.031010
+1891 4416   1.000000
+1891 4418   0.039363
+1891 4422  -0.013107
+1891 4426   0.004754
+1891 4428  -1.000000
+1892 4   0.128990
+1892 4417   0.078885
+1892 4419   1.000000
+1892 4421   0.058415
+1892 4425  -0.008310
+1892 4427  -1.000000
+1893 4   0.128990
+1893 4418   0.078885
+1893 4420   1.000000
+1893 4422   0.058415
+1893 4426  -0.008310
+1893 4428  -1.000000
+1894 4   0.200000
+1894 4417   0.075281
+1894 4421   0.102497
+1894 4423   1.000000
+1894 4425   0.022222
+1894 4427  -1.000000
+1895 4   0.200000
+1895 4418   0.075281
+1895 4422   0.102497
+1895 4424   1.000000
+1895 4426   0.022222
+1895 4428  -1.000000
+1896 4   0.031010
+1896 4429   1.000000
+1896 4431   0.039363
+1896 4435  -0.013107
+1896 4439   0.004754
+1896 4441  -1.000000
+1897 4   0.031010
+1897 4430   1.000000
+1897 4432   0.039363
+1897 4436  -0.013107
+1897 4440   0.004754
+1897 4442  -1.000000
+1898 4   0.128990
+1898 4431   0.078885
+1898 4433   1.000000
+1898 4435   0.058415
+1898 4439  -0.008310
+1898 4441  -1.000000
+1899 4   0.128990
+1899 4432   0.078885
+1899 4434   1.000000
+1899 4436   0.058415
+1899 4440  -0.008310
+1899 4442  -1.000000
+1900 4   0.200000
+1900 4431   0.075281
+1900 4435   0.102497
+1900 4437   1.000000
+1900 4439   0.022222
+1900 4441  -1.000000
+1901 4   0.200000
+1901 4432   0.075281
+1901 4436   0.102497
+1901 4438   1.000000
+1901 4440   0.022222
+1901 4442  -1.000000
+1902 4   0.031010
+1902 4443   1.000000
+1902 4445   0.039363
+1902 4449  -0.013107
+1902 4453   0.004754
+1902 4455  -1.000000
+1903 4   0.031010
+1903 4444   1.000000
+1903 4446   0.039363
+1903 4450  -0.013107
+1903 4454   0.004754
+1903 4456  -1.000000
+1904 4   0.128990
+1904 4445   0.078885
+1904 4447   1.000000
+1904 4449   0.058415
+1904 4453  -0.008310
+1904 4455  -1.000000
+1905 4   0.128990
+1905 4446   0.078885
+1905 4448   1.000000
+1905 4450   0.058415
+1905 4454  -0.008310
+1905 4456  -1.000000
+1906 4   0.200000
+1906 4445   0.075281
+1906 4449   0.102497
+1906 4451   1.000000
+1906 4453   0.022222
+1906 4455  -1.000000
+1907 4   0.200000
+1907 4446   0.075281
+1907 4450   0.102497
+1907 4452   1.000000
+1907 4454   0.022222
+1907 4456  -1.000000
+1908 4   0.031010
+1908 4457   1.000000
+1908 4459   0.039363
+1908 4463  -0.013107
+1908 4467   0.004754
+1908 4469  -1.000000
+1909 4   0.031010
+1909 4458   1.000000
+1909 4460   0.039363
+1909 4464  -0.013107
+1909 4468   0.004754
+1909 4470  -1.000000
+1910 4   0.128990
+1910 4459   0.078885
+1910 4461   1.000000
+1910 4463   0.058415
+1910 4467  -0.008310
+1910 4469  -1.000000
+1911 4   0.128990
+1911 4460   0.078885
+1911 4462   1.000000
+1911 4464   0.058415
+1911 4468  -0.008310
+1911 4470  -1.000000
+1912 4   0.200000
+1912 4459   0.075281
+1912 4463   0.102497
+1912 4465   1.000000
+1912 4467   0.022222
+1912 4469  -1.000000
+1913 4   0.200000
+1913 4460   0.075281
+1913 4464   0.102497
+1913 4466   1.000000
+1913 4468   0.022222
+1913 4470  -1.000000
+1914 4   0.031010
+1914 4471   1.000000
+1914 4473   0.039363
+1914 4477  -0.013107
+1914 4481   0.004754
+1914 4483  -1.000000
+1915 4   0.031010
+1915 4472   1.000000
+1915 4474   0.039363
+1915 4478  -0.013107
+1915 4482   0.004754
+1915 4484  -1.000000
+1916 4   0.128990
+1916 4473   0.078885
+1916 4475   1.000000
+1916 4477   0.058415
+1916 4481  -0.008310
+1916 4483  -1.000000
+1917 4   0.128990
+1917 4474   0.078885
+1917 4476   1.000000
+1917 4478   0.058415
+1917 4482  -0.008310
+1917 4484  -1.000000
+1918 4   0.200000
+1918 4473   0.075281
+1918 4477   0.102497
+1918 4479   1.000000
+1918 4481   0.022222
+1918 4483  -1.000000
+1919 4   0.200000
+1919 4474   0.075281
+1919 4478   0.102497
+1919 4480   1.000000
+1919 4482   0.022222
+1919 4484  -1.000000
+1920 4   0.031010
+1920 4485   1.000000
+1920 4487   0.039363
+1920 4491  -0.013107
+1920 4495   0.004754
+1920 4497  -1.000000
+1921 4   0.031010
+1921 4486   1.000000
+1921 4488   0.039363
+1921 4492  -0.013107
+1921 4496   0.004754
+1921 4498  -1.000000
+1922 4   0.128990
+1922 4487   0.078885
+1922 4489   1.000000
+1922 4491   0.058415
+1922 4495  -0.008310
+1922 4497  -1.000000
+1923 4   0.128990
+1923 4488   0.078885
+1923 4490   1.000000
+1923 4492   0.058415
+1923 4496  -0.008310
+1923 4498  -1.000000
+1924 4   0.200000
+1924 4487   0.075281
+1924 4491   0.102497
+1924 4493   1.000000
+1924 4495   0.022222
+1924 4497  -1.000000
+1925 4   0.200000
+1925 4488   0.075281
+1925 4492   0.102497
+1925 4494   1.000000
+1925 4496   0.022222
+1925 4498  -1.000000
+1926 4   0.031010
+1926 4499   1.000000
+1926 4501   0.039363
+1926 4505  -0.013107
+1926 4509   0.004754
+1926 4511  -1.000000
+1927 4   0.031010
+1927 4500   1.000000
+1927 4502   0.039363
+1927 4506  -0.013107
+1927 4510   0.004754
+1927 4512  -1.000000
+1928 4   0.128990
+1928 4501   0.078885
+1928 4503   1.000000
+1928 4505   0.058415
+1928 4509  -0.008310
+1928 4511  -1.000000
+1929 4   0.128990
+1929 4502   0.078885
+1929 4504   1.000000
+1929 4506   0.058415
+1929 4510  -0.008310
+1929 4512  -1.000000
+1930 4   0.200000
+1930 4501   0.075281
+1930 4505   0.102497
+1930 4507   1.000000
+1930 4509   0.022222
+1930 4511  -1.000000
+1931 4   0.200000
+1931 4502   0.075281
+1931 4506   0.102497
+1931 4508   1.000000
+1931 4510   0.022222
+1931 4512  -1.000000
+1932 4   0.031010
+1932 4513   1.000000
+1932 4515   0.039363
+1932 4519  -0.013107
+1932 4523   0.004754
+1932 4525  -1.000000
+1933 4   0.031010
+1933 4514   1.000000
+1933 4516   0.039363
+1933 4520  -0.013107
+1933 4524   0.004754
+1933 4526  -1.000000
+1934 4   0.128990
+1934 4515   0.078885
+1934 4517   1.000000
+1934 4519   0.058415
+1934 4523  -0.008310
+1934 4525  -1.000000
+1935 4   0.128990
+1935 4516   0.078885
+1935 4518   1.000000
+1935 4520   0.058415
+1935 4524  -0.008310
+1935 4526  -1.000000
+1936 4   0.200000
+1936 4515   0.075281
+1936 4519   0.102497
+1936 4521   1.000000
+1936 4523   0.022222
+1936 4525  -1.000000
+1937 4   0.200000
+1937 4516   0.075281
+1937 4520   0.102497
+1937 4522   1.000000
+1937 4524   0.022222
+1937 4526  -1.000000
+1938 4   0.031010
+1938 4527   1.000000
+1938 4529   0.039363
+1938 4533  -0.013107
+1938 4537   0.004754
+1938 4539  -1.000000
+1939 4   0.031010
+1939 4528   1.000000
+1939 4530   0.039363
+1939 4534  -0.013107
+1939 4538   0.004754
+1939 4540  -1.000000
+1940 4   0.128990
+1940 4529   0.078885
+1940 4531   1.000000
+1940 4533   0.058415
+1940 4537  -0.008310
+1940 4539  -1.000000
+1941 4   0.128990
+1941 4530   0.078885
+1941 4532   1.000000
+1941 4534   0.058415
+1941 4538  -0.008310
+1941 4540  -1.000000
+1942 4   0.200000
+1942 4529   0.075281
+1942 4533   0.102497
+1942 4535   1.000000
+1942 4537   0.022222
+1942 4539  -1.000000
+1943 4   0.200000
+1943 4530   0.075281
+1943 4534   0.102497
+1943 4536   1.000000
+1943 4538   0.022222
+1943 4540  -1.000000
+1944 4   0.031010
+1944 4541   1.000000
+1944 4543   0.039363
+1944 4547  -0.013107
+1944 4551   0.004754
+1944 4553  -1.000000
+1945 4   0.031010
+1945 4542   1.000000
+1945 4544   0.039363
+1945 4548  -0.013107
+1945 4552   0.004754
+1945 4554  -1.000000
+1946 4   0.128990
+1946 4543   0.078885
+1946 4545   1.000000
+1946 4547   0.058415
+1946 4551  -0.008310
+1946 4553  -1.000000
+1947 4   0.128990
+1947 4544   0.078885
+1947 4546   1.000000
+1947 4548   0.058415
+1947 4552  -0.008310
+1947 4554  -1.000000
+1948 4   0.200000
+1948 4543   0.075281
+1948 4547   0.102497
+1948 4549   1.000000
+1948 4551   0.022222
+1948 4553  -1.000000
+1949 4   0.200000
+1949 4544   0.075281
+1949 4548   0.102497
+1949 4550   1.000000
+1949 4552   0.022222
+1949 4554  -1.000000
+1950 4   0.031010
+1950 4555   1.000000
+1950 4557   0.039363
+1950 4561  -0.013107
+1950 4565   0.004754
+1950 4567  -1.000000
+1951 4   0.031010
+1951 4556   1.000000
+1951 4558   0.039363
+1951 4562  -0.013107
+1951 4566   0.004754
+1951 4568  -1.000000
+1952 4   0.128990
+1952 4557   0.078885
+1952 4559   1.000000
+1952 4561   0.058415
+1952 4565  -0.008310
+1952 4567  -1.000000
+1953 4   0.128990
+1953 4558   0.078885
+1953 4560   1.000000
+1953 4562   0.058415
+1953 4566  -0.008310
+1953 4568  -1.000000
+1954 4   0.200000
+1954 4557   0.075281
+1954 4561   0.102497
+1954 4563   1.000000
+1954 4565   0.022222
+1954 4567  -1.000000
+1955 4   0.200000
+1955 4558   0.075281
+1955 4562   0.102497
+1955 4564   1.000000
+1955 4566   0.022222
+1955 4568  -1.000000
+1956 4   0.031010
+1956 4569   1.000000
+1956 4571   0.039363
+1956 4575  -0.013107
+1956 4579   0.004754
+1956 4581  -1.000000
+1957 4   0.031010
+1957 4570   1.000000
+1957 4572   0.039363
+1957 4576  -0.013107
+1957 4580   0.004754
+1957 4582  -1.000000
+1958 4   0.128990
+1958 4571   0.078885
+1958 4573   1.000000
+1958 4575   0.058415
+1958 4579  -0.008310
+1958 4581  -1.000000
+1959 4   0.128990
+1959 4572   0.078885
+1959 4574   1.000000
+1959 4576   0.058415
+1959 4580  -0.008310
+1959 4582  -1.000000
+1960 4   0.200000
+1960 4571   0.075281
+1960 4575   0.102497
+1960 4577   1.000000
+1960 4579   0.022222
+1960 4581  -1.000000
+1961 4   0.200000
+1961 4572   0.075281
+1961 4576   0.102497
+1961 4578   1.000000
+1961 4580   0.022222
+1961 4582  -1.000000
+1962 4   0.031010
+1962 4583   1.000000
+1962 4585   0.039363
+1962 4589  -0.013107
+1962 4593   0.004754
+1962 4595  -1.000000
+1963 4   0.031010
+1963 4584   1.000000
+1963 4586   0.039363
+1963 4590  -0.013107
+1963 4594   0.004754
+1963 4596  -1.000000
+1964 4   0.128990
+1964 4585   0.078885
+1964 4587   1.000000
+1964 4589   0.058415
+1964 4593  -0.008310
+1964 4595  -1.000000
+1965 4   0.128990
+1965 4586   0.078885
+1965 4588   1.000000
+1965 4590   0.058415
+1965 4594  -0.008310
+1965 4596  -1.000000
+1966 4   0.200000
+1966 4585   0.075281
+1966 4589   0.102497
+1966 4591   1.000000
+1966 4593   0.022222
+1966 4595  -1.000000
+1967 4   0.200000
+1967 4586   0.075281
+1967 4590   0.102497
+1967 4592   1.000000
+1967 4594   0.022222
+1967 4596  -1.000000
+1968 4   0.031010
+1968 4597   1.000000
+1968 4599   0.039363
+1968 4603  -0.013107
+1968 4607   0.004754
+1968 4609  -1.000000
+1969 4   0.031010
+1969 4598   1.000000
+1969 4600   0.039363
+1969 4604  -0.013107
+1969 4608   0.004754
+1969 4610  -1.000000
+1970 4   0.128990
+1970 4599   0.078885
+1970 4601   1.000000
+1970 4603   0.058415
+1970 4607  -0.008310
+1970 4609  -1.000000
+1971 4   0.128990
+1971 4600   0.078885
+1971 4602   1.000000
+1971 4604   0.058415
+1971 4608  -0.008310
+1971 4610  -1.000000
+1972 4   0.200000
+1972 4599   0.075281
+1972 4603   0.102497
+1972 4605   1.000000
+1972 4607   0.022222
+1972 4609  -1.000000
+1973 4   0.200000
+1973 4600   0.075281
+1973 4604   0.102497
+1973 4606   1.000000
+1973 4608   0.022222
+1973 4610  -1.000000
+1974 4   0.031010
+1974 4611   1.000000
+1974 4613   0.039363
+1974 4617  -0.013107
+1974 4621   0.004754
+1974 4623  -1.000000
+1975 4   0.031010
+1975 4612   1.000000
+1975 4614   0.039363
+1975 4618  -0.013107
+1975 4622   0.004754
+1975 4624  -1.000000
+1976 4   0.128990
+1976 4613   0.078885
+1976 4615   1.000000
+1976 4617   0.058415
+1976 4621  -0.008310
+1976 4623  -1.000000
+1977 4   0.128990
+1977 4614   0.078885
+1977 4616   1.000000
+1977 4618   0.058415
+1977 4622  -0.008310
+1977 4624  -1.000000
+1978 4   0.200000
+1978 4613   0.075281
+1978 4617   0.102497
+1978 4619   1.000000
+1978 4621   0.022222
+1978 4623  -1.000000
+1979 4   0.200000
+1979 4614   0.075281
+1979 4618   0.102497
+1979 4620   1.000000
+1979 4622   0.022222
+1979 4624  -1.000000
+1980 4   0.031010
+1980 4625   1.000000
+1980 4627   0.039363
+1980 4631  -0.013107
+1980 4635   0.004754
+1980 4637  -1.000000
+1981 4   0.031010
+1981 4626   1.000000
+1981 4628   0.039363
+1981 4632  -0.013107
+1981 4636   0.004754
+1981 4638  -1.000000
+1982 4   0.128990
+1982 4627   0.078885
+1982 4629   1.000000
+1982 4631   0.058415
+1982 4635  -0.008310
+1982 4637  -1.000000
+1983 4   0.128990
+1983 4628   0.078885
+1983 4630   1.000000
+1983 4632   0.058415
+1983 4636  -0.008310
+1983 4638  -1.000000
+1984 4   0.200000
+1984 4627   0.075281
+1984 4631   0.102497
+1984 4633   1.000000
+1984 4635   0.022222
+1984 4637  -1.000000
+1985 4   0.200000
+1985 4628   0.075281
+1985 4632   0.102497
+1985 4634   1.000000
+1985 4636   0.022222
+1985 4638  -1.000000
+1986 4   0.031010
+1986 4639   1.000000
+1986 4641   0.039363
+1986 4645  -0.013107
+1986 4649   0.004754
+1986 4651  -1.000000
+1987 4   0.031010
+1987 4640   1.000000
+1987 4642   0.039363
+1987 4646  -0.013107
+1987 4650   0.004754
+1987 4652  -1.000000
+1988 4   0.128990
+1988 4641   0.078885
+1988 4643   1.000000
+1988 4645   0.058415
+1988 4649  -0.008310
+1988 4651  -1.000000
+1989 4   0.128990
+1989 4642   0.078885
+1989 4644   1.000000
+1989 4646   0.058415
+1989 4650  -0.008310
+1989 4652  -1.000000
+1990 4   0.200000
+1990 4641   0.075281
+1990 4645   0.102497
+1990 4647   1.000000
+1990 4649   0.022222
+1990 4651  -1.000000
+1991 4   0.200000
+1991 4642   0.075281
+1991 4646   0.102497
+1991 4648   1.000000
+1991 4650   0.022222
+1991 4652  -1.000000
+1992 4   0.031010
+1992 4653   1.000000
+1992 4655   0.039363
+1992 4659  -0.013107
+1992 4663   0.004754
+1992 4665  -1.000000
+1993 4   0.031010
+1993 4654   1.000000
+1993 4656   0.039363
+1993 4660  -0.013107
+1993 4664   0.004754
+1993 4666  -1.000000
+1994 4   0.128990
+1994 4655   0.078885
+1994 4657   1.000000
+1994 4659   0.058415
+1994 4663  -0.008310
+1994 4665  -1.000000
+1995 4   0.128990
+1995 4656   0.078885
+1995 4658   1.000000
+1995 4660   0.058415
+1995 4664  -0.008310
+1995 4666  -1.000000
+1996 4   0.200000
+1996 4655   0.075281
+1996 4659   0.102497
+1996 4661   1.000000
+1996 4663   0.022222
+1996 4665  -1.000000
+1997 4   0.200000
+1997 4656   0.075281
+1997 4660   0.102497
+1997 4662   1.000000
+1997 4664   0.022222
+1997 4666  -1.000000
+1998 4   0.031010
+1998 4667   1.000000
+1998 4669   0.039363
+1998 4673  -0.013107
+1998 4677   0.004754
+1998 4679  -1.000000
+1999 4   0.031010
+1999 4668   1.000000
+1999 4670   0.039363
+1999 4674  -0.013107
+1999 4678   0.004754
+1999 4680  -1.000000
+2000 4   0.128990
+2000 4669   0.078885
+2000 4671   1.000000
+2000 4673   0.058415
+2000 4677  -0.008310
+2000 4679  -1.000000
+2001 4   0.128990
+2001 4670   0.078885
+2001 4672   1.000000
+2001 4674   0.058415
+2001 4678  -0.008310
+2001 4680  -1.000000
+2002 4   0.200000
+2002 4669   0.075281
+2002 4673   0.102497
+2002 4675   1.000000
+2002 4677   0.022222
+2002 4679  -1.000000
+2003 4   0.200000
+2003 4670   0.075281
+2003 4674   0.102497
+2003 4676   1.000000
+2003 4678   0.022222
+2003 4680  -1.000000
+2004 4   0.031010
+2004 4681   1.000000
+2004 4683   0.039363
+2004 4687  -0.013107
+2004 4691   0.004754
+2004 4693  -1.000000
+2005 4   0.031010
+2005 4682   1.000000
+2005 4684   0.039363
+2005 4688  -0.013107
+2005 4692   0.004754
+2005 4694  -1.000000
+2006 4   0.128990
+2006 4683   0.078885
+2006 4685   1.000000
+2006 4687   0.058415
+2006 4691  -0.008310
+2006 4693  -1.000000
+2007 4   0.128990
+2007 4684   0.078885
+2007 4686   1.000000
+2007 4688   0.058415
+2007 4692  -0.008310
+2007 4694  -1.000000
+2008 4   0.200000
+2008 4683   0.075281
+2008 4687   0.102497
+2008 4689   1.000000
+2008 4691   0.022222
+2008 4693  -1.000000
+2009 4   0.200000
+2009 4684   0.075281
+2009 4688   0.102497
+2009 4690   1.000000
+2009 4692   0.022222
+2009 4694  -1.000000
+2010 4   0.031010
+2010 4695   1.000000
+2010 4697   0.039363
+2010 4701  -0.013107
+2010 4705   0.004754
+2010 4707  -1.000000
+2011 4   0.031010
+2011 4696   1.000000
+2011 4698   0.039363
+2011 4702  -0.013107
+2011 4706   0.004754
+2011 4708  -1.000000
+2012 4   0.128990
+2012 4697   0.078885
+2012 4699   1.000000
+2012 4701   0.058415
+2012 4705  -0.008310
+2012 4707  -1.000000
+2013 4   0.128990
+2013 4698   0.078885
+2013 4700   1.000000
+2013 4702   0.058415
+2013 4706  -0.008310
+2013 4708  -1.000000
+2014 4   0.200000
+2014 4697   0.075281
+2014 4701   0.102497
+2014 4703   1.000000
+2014 4705   0.022222
+2014 4707  -1.000000
+2015 4   0.200000
+2015 4698   0.075281
+2015 4702   0.102497
+2015 4704   1.000000
+2015 4706   0.022222
+2015 4708  -1.000000
+2016 4   0.031010
+2016 4709   1.000000
+2016 4711   0.039363
+2016 4715  -0.013107
+2016 4719   0.004754
+2016 4721  -1.000000
+2017 4   0.031010
+2017 4710   1.000000
+2017 4712   0.039363
+2017 4716  -0.013107
+2017 4720   0.004754
+2017 4722  -1.000000
+2018 4   0.128990
+2018 4711   0.078885
+2018 4713   1.000000
+2018 4715   0.058415
+2018 4719  -0.008310
+2018 4721  -1.000000
+2019 4   0.128990
+2019 4712   0.078885
+2019 4714   1.000000
+2019 4716   0.058415
+2019 4720  -0.008310
+2019 4722  -1.000000
+2020 4   0.200000
+2020 4711   0.075281
+2020 4715   0.102497
+2020 4717   1.000000
+2020 4719   0.022222
+2020 4721  -1.000000
+2021 4   0.200000
+2021 4712   0.075281
+2021 4716   0.102497
+2021 4718   1.000000
+2021 4720   0.022222
+2021 4722  -1.000000
+2022 4   0.031010
+2022 4723   1.000000
+2022 4725   0.039363
+2022 4729  -0.013107
+2022 4733   0.004754
+2022 4735  -1.000000
+2023 4   0.031010
+2023 4724   1.000000
+2023 4726   0.039363
+2023 4730  -0.013107
+2023 4734   0.004754
+2023 4736  -1.000000
+2024 4   0.128990
+2024 4725   0.078885
+2024 4727   1.000000
+2024 4729   0.058415
+2024 4733  -0.008310
+2024 4735  -1.000000
+2025 4   0.128990
+2025 4726   0.078885
+2025 4728   1.000000
+2025 4730   0.058415
+2025 4734  -0.008310
+2025 4736  -1.000000
+2026 4   0.200000
+2026 4725   0.075281
+2026 4729   0.102497
+2026 4731   1.000000
+2026 4733   0.022222
+2026 4735  -1.000000
+2027 4   0.200000
+2027 4726   0.075281
+2027 4730   0.102497
+2027 4732   1.000000
+2027 4734   0.022222
+2027 4736  -1.000000
+2028 4   0.031010
+2028 4737   1.000000
+2028 4739   0.039363
+2028 4743  -0.013107
+2028 4747   0.004754
+2028 4749  -1.000000
+2029 4   0.031010
+2029 4738   1.000000
+2029 4740   0.039363
+2029 4744  -0.013107
+2029 4748   0.004754
+2029 4750  -1.000000
+2030 4   0.128990
+2030 4739   0.078885
+2030 4741   1.000000
+2030 4743   0.058415
+2030 4747  -0.008310
+2030 4749  -1.000000
+2031 4   0.128990
+2031 4740   0.078885
+2031 4742   1.000000
+2031 4744   0.058415
+2031 4748  -0.008310
+2031 4750  -1.000000
+2032 4   0.200000
+2032 4739   0.075281
+2032 4743   0.102497
+2032 4745   1.000000
+2032 4747   0.022222
+2032 4749  -1.000000
+2033 4   0.200000
+2033 4740   0.075281
+2033 4744   0.102497
+2033 4746   1.000000
+2033 4748   0.022222
+2033 4750  -1.000000
+2034 4   0.031010
+2034 4751   1.000000
+2034 4753   0.039363
+2034 4757  -0.013107
+2034 4761   0.004754
+2034 4763  -1.000000
+2035 4   0.031010
+2035 4752   1.000000
+2035 4754   0.039363
+2035 4758  -0.013107
+2035 4762   0.004754
+2035 4764  -1.000000
+2036 4   0.128990
+2036 4753   0.078885
+2036 4755   1.000000
+2036 4757   0.058415
+2036 4761  -0.008310
+2036 4763  -1.000000
+2037 4   0.128990
+2037 4754   0.078885
+2037 4756   1.000000
+2037 4758   0.058415
+2037 4762  -0.008310
+2037 4764  -1.000000
+2038 4   0.200000
+2038 4753   0.075281
+2038 4757   0.102497
+2038 4759   1.000000
+2038 4761   0.022222
+2038 4763  -1.000000
+2039 4   0.200000
+2039 4754   0.075281
+2039 4758   0.102497
+2039 4760   1.000000
+2039 4762   0.022222
+2039 4764  -1.000000
+2040 4   0.031010
+2040 4765   1.000000
+2040 4767   0.039363
+2040 4771  -0.013107
+2040 4775   0.004754
+2040 4777  -1.000000
+2041 4   0.031010
+2041 4766   1.000000
+2041 4768   0.039363
+2041 4772  -0.013107
+2041 4776   0.004754
+2041 4778  -1.000000
+2042 4   0.128990
+2042 4767   0.078885
+2042 4769   1.000000
+2042 4771   0.058415
+2042 4775  -0.008310
+2042 4777  -1.000000
+2043 4   0.128990
+2043 4768   0.078885
+2043 4770   1.000000
+2043 4772   0.058415
+2043 4776  -0.008310
+2043 4778  -1.000000
+2044 4   0.200000
+2044 4767   0.075281
+2044 4771   0.102497
+2044 4773   1.000000
+2044 4775   0.022222
+2044 4777  -1.000000
+2045 4   0.200000
+2045 4768   0.075281
+2045 4772   0.102497
+2045 4774   1.000000
+2045 4776   0.022222
+2045 4778  -1.000000
+2046 4   0.031010
+2046 4779   1.000000
+2046 4781   0.039363
+2046 4785  -0.013107
+2046 4789   0.004754
+2046 4791  -1.000000
+2047 4   0.031010
+2047 4780   1.000000
+2047 4782   0.039363
+2047 4786  -0.013107
+2047 4790   0.004754
+2047 4792  -1.000000
+2048 4   0.128990
+2048 4781   0.078885
+2048 4783   1.000000
+2048 4785   0.058415
+2048 4789  -0.008310
+2048 4791  -1.000000
+2049 4   0.128990
+2049 4782   0.078885
+2049 4784   1.000000
+2049 4786   0.058415
+2049 4790  -0.008310
+2049 4792  -1.000000
+2050 4   0.200000
+2050 4781   0.075281
+2050 4785   0.102497
+2050 4787   1.000000
+2050 4789   0.022222
+2050 4791  -1.000000
+2051 4   0.200000
+2051 4782   0.075281
+2051 4786   0.102497
+2051 4788   1.000000
+2051 4790   0.022222
+2051 4792  -1.000000
+2052 4   0.031010
+2052 4793   1.000000
+2052 4795   0.039363
+2052 4799  -0.013107
+2052 4803   0.004754
+2052 4805  -1.000000
+2053 4   0.031010
+2053 4794   1.000000
+2053 4796   0.039363
+2053 4800  -0.013107
+2053 4804   0.004754
+2053 4806  -1.000000
+2054 4   0.128990
+2054 4795   0.078885
+2054 4797   1.000000
+2054 4799   0.058415
+2054 4803  -0.008310
+2054 4805  -1.000000
+2055 4   0.128990
+2055 4796   0.078885
+2055 4798   1.000000
+2055 4800   0.058415
+2055 4804  -0.008310
+2055 4806  -1.000000
+2056 4   0.200000
+2056 4795   0.075281
+2056 4799   0.102497
+2056 4801   1.000000
+2056 4803   0.022222
+2056 4805  -1.000000
+2057 4   0.200000
+2057 4796   0.075281
+2057 4800   0.102497
+2057 4802   1.000000
+2057 4804   0.022222
+2057 4806  -1.000000
+2058 4   0.031010
+2058 4807   1.000000
+2058 4809   0.039363
+2058 4813  -0.013107
+2058 4817   0.004754
+2058 4819  -1.000000
+2059 4   0.031010
+2059 4808   1.000000
+2059 4810   0.039363
+2059 4814  -0.013107
+2059 4818   0.004754
+2059 4820  -1.000000
+2060 4   0.128990
+2060 4809   0.078885
+2060 4811   1.000000
+2060 4813   0.058415
+2060 4817  -0.008310
+2060 4819  -1.000000
+2061 4   0.128990
+2061 4810   0.078885
+2061 4812   1.000000
+2061 4814   0.058415
+2061 4818  -0.008310
+2061 4820  -1.000000
+2062 4   0.200000
+2062 4809   0.075281
+2062 4813   0.102497
+2062 4815   1.000000
+2062 4817   0.022222
+2062 4819  -1.000000
+2063 4   0.200000
+2063 4810   0.075281
+2063 4814   0.102497
+2063 4816   1.000000
+2063 4818   0.022222
+2063 4820  -1.000000
+2064 4   0.031010
+2064 4821   1.000000
+2064 4823   0.039363
+2064 4827  -0.013107
+2064 4831   0.004754
+2064 4833  -1.000000
+2065 4   0.031010
+2065 4822   1.000000
+2065 4824   0.039363
+2065 4828  -0.013107
+2065 4832   0.004754
+2065 4834  -1.000000
+2066 4   0.128990
+2066 4823   0.078885
+2066 4825   1.000000
+2066 4827   0.058415
+2066 4831  -0.008310
+2066 4833  -1.000000
+2067 4   0.128990
+2067 4824   0.078885
+2067 4826   1.000000
+2067 4828   0.058415
+2067 4832  -0.008310
+2067 4834  -1.000000
+2068 4   0.200000
+2068 4823   0.075281
+2068 4827   0.102497
+2068 4829   1.000000
+2068 4831   0.022222
+2068 4833  -1.000000
+2069 4   0.200000
+2069 4824   0.075281
+2069 4828   0.102497
+2069 4830   1.000000
+2069 4832   0.022222
+2069 4834  -1.000000
+2070 4   0.031010
+2070 4835   1.000000
+2070 4837   0.039363
+2070 4841  -0.013107
+2070 4845   0.004754
+2070 4847  -1.000000
+2071 4   0.031010
+2071 4836   1.000000
+2071 4838   0.039363
+2071 4842  -0.013107
+2071 4846   0.004754
+2071 4848  -1.000000
+2072 4   0.128990
+2072 4837   0.078885
+2072 4839   1.000000
+2072 4841   0.058415
+2072 4845  -0.008310
+2072 4847  -1.000000
+2073 4   0.128990
+2073 4838   0.078885
+2073 4840   1.000000
+2073 4842   0.058415
+2073 4846  -0.008310
+2073 4848  -1.000000
+2074 4   0.200000
+2074 4837   0.075281
+2074 4841   0.102497
+2074 4843   1.000000
+2074 4845   0.022222
+2074 4847  -1.000000
+2075 4   0.200000
+2075 4838   0.075281
+2075 4842   0.102497
+2075 4844   1.000000
+2075 4846   0.022222
+2075 4848  -1.000000
+2076 4   0.031010
+2076 4849   1.000000
+2076 4851   0.039363
+2076 4855  -0.013107
+2076 4859   0.004754
+2076 4861  -1.000000
+2077 4   0.031010
+2077 4850   1.000000
+2077 4852   0.039363
+2077 4856  -0.013107
+2077 4860   0.004754
+2077 4862  -1.000000
+2078 4   0.128990
+2078 4851   0.078885
+2078 4853   1.000000
+2078 4855   0.058415
+2078 4859  -0.008310
+2078 4861  -1.000000
+2079 4   0.128990
+2079 4852   0.078885
+2079 4854   1.000000
+2079 4856   0.058415
+2079 4860  -0.008310
+2079 4862  -1.000000
+2080 4   0.200000
+2080 4851   0.075281
+2080 4855   0.102497
+2080 4857   1.000000
+2080 4859   0.022222
+2080 4861  -1.000000
+2081 4   0.200000
+2081 4852   0.075281
+2081 4856   0.102497
+2081 4858   1.000000
+2081 4860   0.022222
+2081 4862  -1.000000
+2082 4   0.031010
+2082 4863   1.000000
+2082 4865   0.039363
+2082 4869  -0.013107
+2082 4873   0.004754
+2082 4875  -1.000000
+2083 4   0.031010
+2083 4864   1.000000
+2083 4866   0.039363
+2083 4870  -0.013107
+2083 4874   0.004754
+2083 4876  -1.000000
+2084 4   0.128990
+2084 4865   0.078885
+2084 4867   1.000000
+2084 4869   0.058415
+2084 4873  -0.008310
+2084 4875  -1.000000
+2085 4   0.128990
+2085 4866   0.078885
+2085 4868   1.000000
+2085 4870   0.058415
+2085 4874  -0.008310
+2085 4876  -1.000000
+2086 4   0.200000
+2086 4865   0.075281
+2086 4869   0.102497
+2086 4871   1.000000
+2086 4873   0.022222
+2086 4875  -1.000000
+2087 4   0.200000
+2087 4866   0.075281
+2087 4870   0.102497
+2087 4872   1.000000
+2087 4874   0.022222
+2087 4876  -1.000000
+2088 4   0.031010
+2088 4877   1.000000
+2088 4879   0.039363
+2088 4883  -0.013107
+2088 4887   0.004754
+2088 4889  -1.000000
+2089 4   0.031010
+2089 4878   1.000000
+2089 4880   0.039363
+2089 4884  -0.013107
+2089 4888   0.004754
+2089 4890  -1.000000
+2090 4   0.128990
+2090 4879   0.078885
+2090 4881   1.000000
+2090 4883   0.058415
+2090 4887  -0.008310
+2090 4889  -1.000000
+2091 4   0.128990
+2091 4880   0.078885
+2091 4882   1.000000
+2091 4884   0.058415
+2091 4888  -0.008310
+2091 4890  -1.000000
+2092 4   0.200000
+2092 4879   0.075281
+2092 4883   0.102497
+2092 4885   1.000000
+2092 4887   0.022222
+2092 4889  -1.000000
+2093 4   0.200000
+2093 4880   0.075281
+2093 4884   0.102497
+2093 4886   1.000000
+2093 4888   0.022222
+2093 4890  -1.000000
+2094 4   0.031010
+2094 4891   1.000000
+2094 4893   0.039363
+2094 4897  -0.013107
+2094 4901   0.004754
+2094 4903  -1.000000
+2095 4   0.031010
+2095 4892   1.000000
+2095 4894   0.039363
+2095 4898  -0.013107
+2095 4902   0.004754
+2095 4904  -1.000000
+2096 4   0.128990
+2096 4893   0.078885
+2096 4895   1.000000
+2096 4897   0.058415
+2096 4901  -0.008310
+2096 4903  -1.000000
+2097 4   0.128990
+2097 4894   0.078885
+2097 4896   1.000000
+2097 4898   0.058415
+2097 4902  -0.008310
+2097 4904  -1.000000
+2098 4   0.200000
+2098 4893   0.075281
+2098 4897   0.102497
+2098 4899   1.000000
+2098 4901   0.022222
+2098 4903  -1.000000
+2099 4   0.200000
+2099 4894   0.075281
+2099 4898   0.102497
+2099 4900   1.000000
+2099 4902   0.022222
+2099 4904  -1.000000
+2100 4   0.031010
+2100 4905   1.000000
+2100 4907   0.039363
+2100 4911  -0.013107
+2100 4915   0.004754
+2100 4917  -1.000000
+2101 4   0.031010
+2101 4906   1.000000
+2101 4908   0.039363
+2101 4912  -0.013107
+2101 4916   0.004754
+2101 4918  -1.000000
+2102 4   0.128990
+2102 4907   0.078885
+2102 4909   1.000000
+2102 4911   0.058415
+2102 4915  -0.008310
+2102 4917  -1.000000
+2103 4   0.128990
+2103 4908   0.078885
+2103 4910   1.000000
+2103 4912   0.058415
+2103 4916  -0.008310
+2103 4918  -1.000000
+2104 4   0.200000
+2104 4907   0.075281
+2104 4911   0.102497
+2104 4913   1.000000
+2104 4915   0.022222
+2104 4917  -1.000000
+2105 4   0.200000
+2105 4908   0.075281
+2105 4912   0.102497
+2105 4914   1.000000
+2105 4916   0.022222
+2105 4918  -1.000000
+2106 4   0.031010
+2106 4919   1.000000
+2106 4921   0.039363
+2106 4925  -0.013107
+2106 4929   0.004754
+2106 4931  -1.000000
+2107 4   0.031010
+2107 4920   1.000000
+2107 4922   0.039363
+2107 4926  -0.013107
+2107 4930   0.004754
+2107 4932  -1.000000
+2108 4   0.128990
+2108 4921   0.078885
+2108 4923   1.000000
+2108 4925   0.058415
+2108 4929  -0.008310
+2108 4931  -1.000000
+2109 4   0.128990
+2109 4922   0.078885
+2109 4924   1.000000
+2109 4926   0.058415
+2109 4930  -0.008310
+2109 4932  -1.000000
+2110 4   0.200000
+2110 4921   0.075281
+2110 4925   0.102497
+2110 4927   1.000000
+2110 4929   0.022222
+2110 4931  -1.000000
+2111 4   0.200000
+2111 4922   0.075281
+2111 4926   0.102497
+2111 4928   1.000000
+2111 4930   0.022222
+2111 4932  -1.000000
+2112 4   0.031010
+2112 4933   1.000000
+2112 4935   0.039363
+2112 4939  -0.013107
+2112 4943   0.004754
+2112 4945  -1.000000
+2113 4   0.031010
+2113 4934   1.000000
+2113 4936   0.039363
+2113 4940  -0.013107
+2113 4944   0.004754
+2113 4946  -1.000000
+2114 4   0.128990
+2114 4935   0.078885
+2114 4937   1.000000
+2114 4939   0.058415
+2114 4943  -0.008310
+2114 4945  -1.000000
+2115 4   0.128990
+2115 4936   0.078885
+2115 4938   1.000000
+2115 4940   0.058415
+2115 4944  -0.008310
+2115 4946  -1.000000
+2116 4   0.200000
+2116 4935   0.075281
+2116 4939   0.102497
+2116 4941   1.000000
+2116 4943   0.022222
+2116 4945  -1.000000
+2117 4   0.200000
+2117 4936   0.075281
+2117 4940   0.102497
+2117 4942   1.000000
+2117 4944   0.022222
+2117 4946  -1.000000
+2118 4   0.031010
+2118 4947   1.000000
+2118 4949   0.039363
+2118 4953  -0.013107
+2118 4957   0.004754
+2118 4959  -1.000000
+2119 4   0.031010
+2119 4948   1.000000
+2119 4950   0.039363
+2119 4954  -0.013107
+2119 4958   0.004754
+2119 4960  -1.000000
+2120 4   0.128990
+2120 4949   0.078885
+2120 4951   1.000000
+2120 4953   0.058415
+2120 4957  -0.008310
+2120 4959  -1.000000
+2121 4   0.128990
+2121 4950   0.078885
+2121 4952   1.000000
+2121 4954   0.058415
+2121 4958  -0.008310
+2121 4960  -1.000000
+2122 4   0.200000
+2122 4949   0.075281
+2122 4953   0.102497
+2122 4955   1.000000
+2122 4957   0.022222
+2122 4959  -1.000000
+2123 4   0.200000
+2123 4950   0.075281
+2123 4954   0.102497
+2123 4956   1.000000
+2123 4958   0.022222
+2123 4960  -1.000000
+2124 4   0.031010
+2124 4961   1.000000
+2124 4963   0.039363
+2124 4967  -0.013107
+2124 4971   0.004754
+2124 4973  -1.000000
+2125 4   0.031010
+2125 4962   1.000000
+2125 4964   0.039363
+2125 4968  -0.013107
+2125 4972   0.004754
+2125 4974  -1.000000
+2126 4   0.128990
+2126 4963   0.078885
+2126 4965   1.000000
+2126 4967   0.058415
+2126 4971  -0.008310
+2126 4973  -1.000000
+2127 4   0.128990
+2127 4964   0.078885
+2127 4966   1.000000
+2127 4968   0.058415
+2127 4972  -0.008310
+2127 4974  -1.000000
+2128 4   0.200000
+2128 4963   0.075281
+2128 4967   0.102497
+2128 4969   1.000000
+2128 4971   0.022222
+2128 4973  -1.000000
+2129 4   0.200000
+2129 4964   0.075281
+2129 4968   0.102497
+2129 4970   1.000000
+2129 4972   0.022222
+2129 4974  -1.000000
+2130 4   0.031010
+2130 4975   1.000000
+2130 4977   0.039363
+2130 4981  -0.013107
+2130 4985   0.004754
+2130 4987  -1.000000
+2131 4   0.031010
+2131 4976   1.000000
+2131 4978   0.039363
+2131 4982  -0.013107
+2131 4986   0.004754
+2131 4988  -1.000000
+2132 4   0.128990
+2132 4977   0.078885
+2132 4979   1.000000
+2132 4981   0.058415
+2132 4985  -0.008310
+2132 4987  -1.000000
+2133 4   0.128990
+2133 4978   0.078885
+2133 4980   1.000000
+2133 4982   0.058415
+2133 4986  -0.008310
+2133 4988  -1.000000
+2134 4   0.200000
+2134 4977   0.075281
+2134 4981   0.102497
+2134 4983   1.000000
+2134 4985   0.022222
+2134 4987  -1.000000
+2135 4   0.200000
+2135 4978   0.075281
+2135 4982   0.102497
+2135 4984   1.000000
+2135 4986   0.022222
+2135 4988  -1.000000
+2136 4   0.031010
+2136 4989   1.000000
+2136 4991   0.039363
+2136 4995  -0.013107
+2136 4999   0.004754
+2136 5001  -1.000000
+2137 4   0.031010
+2137 4990   1.000000
+2137 4992   0.039363
+2137 4996  -0.013107
+2137 5000   0.004754
+2137 5002  -1.000000
+2138 4   0.128990
+2138 4991   0.078885
+2138 4993   1.000000
+2138 4995   0.058415
+2138 4999  -0.008310
+2138 5001  -1.000000
+2139 4   0.128990
+2139 4992   0.078885
+2139 4994   1.000000
+2139 4996   0.058415
+2139 5000  -0.008310
+2139 5002  -1.000000
+2140 4   0.200000
+2140 4991   0.075281
+2140 4995   0.102497
+2140 4997   1.000000
+2140 4999   0.022222
+2140 5001  -1.000000
+2141 4   0.200000
+2141 4992   0.075281
+2141 4996   0.102497
+2141 4998   1.000000
+2141 5000   0.022222
+2141 5002  -1.000000
+2142 4   0.031010
+2142 5003   1.000000
+2142 5005   0.039363
+2142 5009  -0.013107
+2142 5013   0.004754
+2142 5015  -1.000000
+2143 4   0.031010
+2143 5004   1.000000
+2143 5006   0.039363
+2143 5010  -0.013107
+2143 5014   0.004754
+2143 5016  -1.000000
+2144 4   0.128990
+2144 5005   0.078885
+2144 5007   1.000000
+2144 5009   0.058415
+2144 5013  -0.008310
+2144 5015  -1.000000
+2145 4   0.128990
+2145 5006   0.078885
+2145 5008   1.000000
+2145 5010   0.058415
+2145 5014  -0.008310
+2145 5016  -1.000000
+2146 4   0.200000
+2146 5005   0.075281
+2146 5009   0.102497
+2146 5011   1.000000
+2146 5013   0.022222
+2146 5015  -1.000000
+2147 4   0.200000
+2147 5006   0.075281
+2147 5010   0.102497
+2147 5012   1.000000
+2147 5014   0.022222
+2147 5016  -1.000000
+2148 4   0.031010
+2148 5017   1.000000
+2148 5019   0.039363
+2148 5023  -0.013107
+2148 5027   0.004754
+2148 5029  -1.000000
+2149 4   0.031010
+2149 5018   1.000000
+2149 5020   0.039363
+2149 5024  -0.013107
+2149 5028   0.004754
+2149 5030  -1.000000
+2150 4   0.128990
+2150 5019   0.078885
+2150 5021   1.000000
+2150 5023   0.058415
+2150 5027  -0.008310
+2150 5029  -1.000000
+2151 4   0.128990
+2151 5020   0.078885
+2151 5022   1.000000
+2151 5024   0.058415
+2151 5028  -0.008310
+2151 5030  -1.000000
+2152 4   0.200000
+2152 5019   0.075281
+2152 5023   0.102497
+2152 5025   1.000000
+2152 5027   0.022222
+2152 5029  -1.000000
+2153 4   0.200000
+2153 5020   0.075281
+2153 5024   0.102497
+2153 5026   1.000000
+2153 5028   0.022222
+2153 5030  -1.000000
+2154 4   0.031010
+2154 5031   1.000000
+2154 5033   0.039363
+2154 5037  -0.013107
+2154 5041   0.004754
+2154 5043  -1.000000
+2155 4   0.031010
+2155 5032   1.000000
+2155 5034   0.039363
+2155 5038  -0.013107
+2155 5042   0.004754
+2155 5044  -1.000000
+2156 4   0.128990
+2156 5033   0.078885
+2156 5035   1.000000
+2156 5037   0.058415
+2156 5041  -0.008310
+2156 5043  -1.000000
+2157 4   0.128990
+2157 5034   0.078885
+2157 5036   1.000000
+2157 5038   0.058415
+2157 5042  -0.008310
+2157 5044  -1.000000
+2158 4   0.200000
+2158 5033   0.075281
+2158 5037   0.102497
+2158 5039   1.000000
+2158 5041   0.022222
+2158 5043  -1.000000
+2159 4   0.200000
+2159 5034   0.075281
+2159 5038   0.102497
+2159 5040   1.000000
+2159 5042   0.022222
+2159 5044  -1.000000
+2160 4   0.031010
+2160 5045   1.000000
+2160 5047   0.039363
+2160 5051  -0.013107
+2160 5055   0.004754
+2160 5057  -1.000000
+2161 4   0.031010
+2161 5046   1.000000
+2161 5048   0.039363
+2161 5052  -0.013107
+2161 5056   0.004754
+2161 5058  -1.000000
+2162 4   0.128990
+2162 5047   0.078885
+2162 5049   1.000000
+2162 5051   0.058415
+2162 5055  -0.008310
+2162 5057  -1.000000
+2163 4   0.128990
+2163 5048   0.078885
+2163 5050   1.000000
+2163 5052   0.058415
+2163 5056  -0.008310
+2163 5058  -1.000000
+2164 4   0.200000
+2164 5047   0.075281
+2164 5051   0.102497
+2164 5053   1.000000
+2164 5055   0.022222
+2164 5057  -1.000000
+2165 4   0.200000
+2165 5048   0.075281
+2165 5052   0.102497
+2165 5054   1.000000
+2165 5056   0.022222
+2165 5058  -1.000000
+2166 4   0.031010
+2166 5059   1.000000
+2166 5061   0.039363
+2166 5065  -0.013107
+2166 5069   0.004754
+2166 5071  -1.000000
+2167 4   0.031010
+2167 5060   1.000000
+2167 5062   0.039363
+2167 5066  -0.013107
+2167 5070   0.004754
+2167 5072  -1.000000
+2168 4   0.128990
+2168 5061   0.078885
+2168 5063   1.000000
+2168 5065   0.058415
+2168 5069  -0.008310
+2168 5071  -1.000000
+2169 4   0.128990
+2169 5062   0.078885
+2169 5064   1.000000
+2169 5066   0.058415
+2169 5070  -0.008310
+2169 5072  -1.000000
+2170 4   0.200000
+2170 5061   0.075281
+2170 5065   0.102497
+2170 5067   1.000000
+2170 5069   0.022222
+2170 5071  -1.000000
+2171 4   0.200000
+2171 5062   0.075281
+2171 5066   0.102497
+2171 5068   1.000000
+2171 5070   0.022222
+2171 5072  -1.000000
+2172 4   0.031010
+2172 5073   1.000000
+2172 5075   0.039363
+2172 5079  -0.013107
+2172 5083   0.004754
+2172 5085  -1.000000
+2173 4   0.031010
+2173 5074   1.000000
+2173 5076   0.039363
+2173 5080  -0.013107
+2173 5084   0.004754
+2173 5086  -1.000000
+2174 4   0.128990
+2174 5075   0.078885
+2174 5077   1.000000
+2174 5079   0.058415
+2174 5083  -0.008310
+2174 5085  -1.000000
+2175 4   0.128990
+2175 5076   0.078885
+2175 5078   1.000000
+2175 5080   0.058415
+2175 5084  -0.008310
+2175 5086  -1.000000
+2176 4   0.200000
+2176 5075   0.075281
+2176 5079   0.102497
+2176 5081   1.000000
+2176 5083   0.022222
+2176 5085  -1.000000
+2177 4   0.200000
+2177 5076   0.075281
+2177 5080   0.102497
+2177 5082   1.000000
+2177 5084   0.022222
+2177 5086  -1.000000
+2178 4   0.031010
+2178 5087   1.000000
+2178 5089   0.039363
+2178 5093  -0.013107
+2178 5097   0.004754
+2178 5099  -1.000000
+2179 4   0.031010
+2179 5088   1.000000
+2179 5090   0.039363
+2179 5094  -0.013107
+2179 5098   0.004754
+2179 5100  -1.000000
+2180 4   0.128990
+2180 5089   0.078885
+2180 5091   1.000000
+2180 5093   0.058415
+2180 5097  -0.008310
+2180 5099  -1.000000
+2181 4   0.128990
+2181 5090   0.078885
+2181 5092   1.000000
+2181 5094   0.058415
+2181 5098  -0.008310
+2181 5100  -1.000000
+2182 4   0.200000
+2182 5089   0.075281
+2182 5093   0.102497
+2182 5095   1.000000
+2182 5097   0.022222
+2182 5099  -1.000000
+2183 4   0.200000
+2183 5090   0.075281
+2183 5094   0.102497
+2183 5096   1.000000
+2183 5098   0.022222
+2183 5100  -1.000000
+2184 4   0.031010
+2184 5101   1.000000
+2184 5103   0.039363
+2184 5107  -0.013107
+2184 5111   0.004754
+2184 5113  -1.000000
+2185 4   0.031010
+2185 5102   1.000000
+2185 5104   0.039363
+2185 5108  -0.013107
+2185 5112   0.004754
+2185 5114  -1.000000
+2186 4   0.128990
+2186 5103   0.078885
+2186 5105   1.000000
+2186 5107   0.058415
+2186 5111  -0.008310
+2186 5113  -1.000000
+2187 4   0.128990
+2187 5104   0.078885
+2187 5106   1.000000
+2187 5108   0.058415
+2187 5112  -0.008310
+2187 5114  -1.000000
+2188 4   0.200000
+2188 5103   0.075281
+2188 5107   0.102497
+2188 5109   1.000000
+2188 5111   0.022222
+2188 5113  -1.000000
+2189 4   0.200000
+2189 5104   0.075281
+2189 5108   0.102497
+2189 5110   1.000000
+2189 5112   0.022222
+2189 5114  -1.000000
+2190 4   0.031010
+2190 5115   1.000000
+2190 5117   0.039363
+2190 5121  -0.013107
+2190 5125   0.004754
+2190 5127  -1.000000
+2191 4   0.031010
+2191 5116   1.000000
+2191 5118   0.039363
+2191 5122  -0.013107
+2191 5126   0.004754
+2191 5128  -1.000000
+2192 4   0.128990
+2192 5117   0.078885
+2192 5119   1.000000
+2192 5121   0.058415
+2192 5125  -0.008310
+2192 5127  -1.000000
+2193 4   0.128990
+2193 5118   0.078885
+2193 5120   1.000000
+2193 5122   0.058415
+2193 5126  -0.008310
+2193 5128  -1.000000
+2194 4   0.200000
+2194 5117   0.075281
+2194 5121   0.102497
+2194 5123   1.000000
+2194 5125   0.022222
+2194 5127  -1.000000
+2195 4   0.200000
+2195 5118   0.075281
+2195 5122   0.102497
+2195 5124   1.000000
+2195 5126   0.022222
+2195 5128  -1.000000
+2196 4   0.031010
+2196 5129   1.000000
+2196 5131   0.039363
+2196 5135  -0.013107
+2196 5139   0.004754
+2196 5141  -1.000000
+2197 4   0.031010
+2197 5130   1.000000
+2197 5132   0.039363
+2197 5136  -0.013107
+2197 5140   0.004754
+2197 5142  -1.000000
+2198 4   0.128990
+2198 5131   0.078885
+2198 5133   1.000000
+2198 5135   0.058415
+2198 5139  -0.008310
+2198 5141  -1.000000
+2199 4   0.128990
+2199 5132   0.078885
+2199 5134   1.000000
+2199 5136   0.058415
+2199 5140  -0.008310
+2199 5142  -1.000000
+2200 4   0.200000
+2200 5131   0.075281
+2200 5135   0.102497
+2200 5137   1.000000
+2200 5139   0.022222
+2200 5141  -1.000000
+2201 4   0.200000
+2201 5132   0.075281
+2201 5136   0.102497
+2201 5138   1.000000
+2201 5140   0.022222
+2201 5142  -1.000000
+2202 4   0.031010
+2202 5143   1.000000
+2202 5145   0.039363
+2202 5149  -0.013107
+2202 5153   0.004754
+2202 5155  -1.000000
+2203 4   0.031010
+2203 5144   1.000000
+2203 5146   0.039363
+2203 5150  -0.013107
+2203 5154   0.004754
+2203 5156  -1.000000
+2204 4   0.128990
+2204 5145   0.078885
+2204 5147   1.000000
+2204 5149   0.058415
+2204 5153  -0.008310
+2204 5155  -1.000000
+2205 4   0.128990
+2205 5146   0.078885
+2205 5148   1.000000
+2205 5150   0.058415
+2205 5154  -0.008310
+2205 5156  -1.000000
+2206 4   0.200000
+2206 5145   0.075281
+2206 5149   0.102497
+2206 5151   1.000000
+2206 5153   0.022222
+2206 5155  -1.000000
+2207 4   0.200000
+2207 5146   0.075281
+2207 5150   0.102497
+2207 5152   1.000000
+2207 5154   0.022222
+2207 5156  -1.000000
+2208 4   0.031010
+2208 5157   1.000000
+2208 5159   0.039363
+2208 5163  -0.013107
+2208 5167   0.004754
+2208 5169  -1.000000
+2209 4   0.031010
+2209 5158   1.000000
+2209 5160   0.039363
+2209 5164  -0.013107
+2209 5168   0.004754
+2209 5170  -1.000000
+2210 4   0.128990
+2210 5159   0.078885
+2210 5161   1.000000
+2210 5163   0.058415
+2210 5167  -0.008310
+2210 5169  -1.000000
+2211 4   0.128990
+2211 5160   0.078885
+2211 5162   1.000000
+2211 5164   0.058415
+2211 5168  -0.008310
+2211 5170  -1.000000
+2212 4   0.200000
+2212 5159   0.075281
+2212 5163   0.102497
+2212 5165   1.000000
+2212 5167   0.022222
+2212 5169  -1.000000
+2213 4   0.200000
+2213 5160   0.075281
+2213 5164   0.102497
+2213 5166   1.000000
+2213 5168   0.022222
+2213 5170  -1.000000
+2214 4   0.031010
+2214 5171   1.000000
+2214 5173   0.039363
+2214 5177  -0.013107
+2214 5181   0.004754
+2214 5183  -1.000000
+2215 4   0.031010
+2215 5172   1.000000
+2215 5174   0.039363
+2215 5178  -0.013107
+2215 5182   0.004754
+2215 5184  -1.000000
+2216 4   0.128990
+2216 5173   0.078885
+2216 5175   1.000000
+2216 5177   0.058415
+2216 5181  -0.008310
+2216 5183  -1.000000
+2217 4   0.128990
+2217 5174   0.078885
+2217 5176   1.000000
+2217 5178   0.058415
+2217 5182  -0.008310
+2217 5184  -1.000000
+2218 4   0.200000
+2218 5173   0.075281
+2218 5177   0.102497
+2218 5179   1.000000
+2218 5181   0.022222
+2218 5183  -1.000000
+2219 4   0.200000
+2219 5174   0.075281
+2219 5178   0.102497
+2219 5180   1.000000
+2219 5182   0.022222
+2219 5184  -1.000000
+2220 4   0.031010
+2220 5185   1.000000
+2220 5187   0.039363
+2220 5191  -0.013107
+2220 5195   0.004754
+2220 5197  -1.000000
+2221 4   0.031010
+2221 5186   1.000000
+2221 5188   0.039363
+2221 5192  -0.013107
+2221 5196   0.004754
+2221 5198  -1.000000
+2222 4   0.128990
+2222 5187   0.078885
+2222 5189   1.000000
+2222 5191   0.058415
+2222 5195  -0.008310
+2222 5197  -1.000000
+2223 4   0.128990
+2223 5188   0.078885
+2223 5190   1.000000
+2223 5192   0.058415
+2223 5196  -0.008310
+2223 5198  -1.000000
+2224 4   0.200000
+2224 5187   0.075281
+2224 5191   0.102497
+2224 5193   1.000000
+2224 5195   0.022222
+2224 5197  -1.000000
+2225 4   0.200000
+2225 5188   0.075281
+2225 5192   0.102497
+2225 5194   1.000000
+2225 5196   0.022222
+2225 5198  -1.000000
+2226 4   0.031010
+2226 5199   1.000000
+2226 5201   0.039363
+2226 5205  -0.013107
+2226 5209   0.004754
+2226 5211  -1.000000
+2227 4   0.031010
+2227 5200   1.000000
+2227 5202   0.039363
+2227 5206  -0.013107
+2227 5210   0.004754
+2227 5212  -1.000000
+2228 4   0.128990
+2228 5201   0.078885
+2228 5203   1.000000
+2228 5205   0.058415
+2228 5209  -0.008310
+2228 5211  -1.000000
+2229 4   0.128990
+2229 5202   0.078885
+2229 5204   1.000000
+2229 5206   0.058415
+2229 5210  -0.008310
+2229 5212  -1.000000
+2230 4   0.200000
+2230 5201   0.075281
+2230 5205   0.102497
+2230 5207   1.000000
+2230 5209   0.022222
+2230 5211  -1.000000
+2231 4   0.200000
+2231 5202   0.075281
+2231 5206   0.102497
+2231 5208   1.000000
+2231 5210   0.022222
+2231 5212  -1.000000
+2232 4   0.031010
+2232 5213   1.000000
+2232 5215   0.039363
+2232 5219  -0.013107
+2232 5223   0.004754
+2232 5225  -1.000000
+2233 4   0.031010
+2233 5214   1.000000
+2233 5216   0.039363
+2233 5220  -0.013107
+2233 5224   0.004754
+2233 5226  -1.000000
+2234 4   0.128990
+2234 5215   0.078885
+2234 5217   1.000000
+2234 5219   0.058415
+2234 5223  -0.008310
+2234 5225  -1.000000
+2235 4   0.128990
+2235 5216   0.078885
+2235 5218   1.000000
+2235 5220   0.058415
+2235 5224  -0.008310
+2235 5226  -1.000000
+2236 4   0.200000
+2236 5215   0.075281
+2236 5219   0.102497
+2236 5221   1.000000
+2236 5223   0.022222
+2236 5225  -1.000000
+2237 4   0.200000
+2237 5216   0.075281
+2237 5220   0.102497
+2237 5222   1.000000
+2237 5224   0.022222
+2237 5226  -1.000000
+2238 4   0.031010
+2238 5227   1.000000
+2238 5229   0.039363
+2238 5233  -0.013107
+2238 5237   0.004754
+2238 5239  -1.000000
+2239 4   0.031010
+2239 5228   1.000000
+2239 5230   0.039363
+2239 5234  -0.013107
+2239 5238   0.004754
+2239 5240  -1.000000
+2240 4   0.128990
+2240 5229   0.078885
+2240 5231   1.000000
+2240 5233   0.058415
+2240 5237  -0.008310
+2240 5239  -1.000000
+2241 4   0.128990
+2241 5230   0.078885
+2241 5232   1.000000
+2241 5234   0.058415
+2241 5238  -0.008310
+2241 5240  -1.000000
+2242 4   0.200000
+2242 5229   0.075281
+2242 5233   0.102497
+2242 5235   1.000000
+2242 5237   0.022222
+2242 5239  -1.000000
+2243 4   0.200000
+2243 5230   0.075281
+2243 5234   0.102497
+2243 5236   1.000000
+2243 5238   0.022222
+2243 5240  -1.000000
+2244 4   0.031010
+2244 5241   1.000000
+2244 5243   0.039363
+2244 5247  -0.013107
+2244 5251   0.004754
+2244 5253  -1.000000
+2245 4   0.031010
+2245 5242   1.000000
+2245 5244   0.039363
+2245 5248  -0.013107
+2245 5252   0.004754
+2245 5254  -1.000000
+2246 4   0.128990
+2246 5243   0.078885
+2246 5245   1.000000
+2246 5247   0.058415
+2246 5251  -0.008310
+2246 5253  -1.000000
+2247 4   0.128990
+2247 5244   0.078885
+2247 5246   1.000000
+2247 5248   0.058415
+2247 5252  -0.008310
+2247 5254  -1.000000
+2248 4   0.200000
+2248 5243   0.075281
+2248 5247   0.102497
+2248 5249   1.000000
+2248 5251   0.022222
+2248 5253  -1.000000
+2249 4   0.200000
+2249 5244   0.075281
+2249 5248   0.102497
+2249 5250   1.000000
+2249 5252   0.022222
+2249 5254  -1.000000
+2250 4   0.031010
+2250 5255   1.000000
+2250 5257   0.039363
+2250 5261  -0.013107
+2250 5265   0.004754
+2250 5267  -1.000000
+2251 4   0.031010
+2251 5256   1.000000
+2251 5258   0.039363
+2251 5262  -0.013107
+2251 5266   0.004754
+2251 5268  -1.000000
+2252 4   0.128990
+2252 5257   0.078885
+2252 5259   1.000000
+2252 5261   0.058415
+2252 5265  -0.008310
+2252 5267  -1.000000
+2253 4   0.128990
+2253 5258   0.078885
+2253 5260   1.000000
+2253 5262   0.058415
+2253 5266  -0.008310
+2253 5268  -1.000000
+2254 4   0.200000
+2254 5257   0.075281
+2254 5261   0.102497
+2254 5263   1.000000
+2254 5265   0.022222
+2254 5267  -1.000000
+2255 4   0.200000
+2255 5258   0.075281
+2255 5262   0.102497
+2255 5264   1.000000
+2255 5266   0.022222
+2255 5268  -1.000000
+2256 4   0.031010
+2256 5269   1.000000
+2256 5271   0.039363
+2256 5275  -0.013107
+2256 5279   0.004754
+2256 5281  -1.000000
+2257 4   0.031010
+2257 5270   1.000000
+2257 5272   0.039363
+2257 5276  -0.013107
+2257 5280   0.004754
+2257 5282  -1.000000
+2258 4   0.128990
+2258 5271   0.078885
+2258 5273   1.000000
+2258 5275   0.058415
+2258 5279  -0.008310
+2258 5281  -1.000000
+2259 4   0.128990
+2259 5272   0.078885
+2259 5274   1.000000
+2259 5276   0.058415
+2259 5280  -0.008310
+2259 5282  -1.000000
+2260 4   0.200000
+2260 5271   0.075281
+2260 5275   0.102497
+2260 5277   1.000000
+2260 5279   0.022222
+2260 5281  -1.000000
+2261 4   0.200000
+2261 5272   0.075281
+2261 5276   0.102497
+2261 5278   1.000000
+2261 5280   0.022222
+2261 5282  -1.000000
+2262 4   0.031010
+2262 5283   1.000000
+2262 5285   0.039363
+2262 5289  -0.013107
+2262 5293   0.004754
+2262 5295  -1.000000
+2263 4   0.031010
+2263 5284   1.000000
+2263 5286   0.039363
+2263 5290  -0.013107
+2263 5294   0.004754
+2263 5296  -1.000000
+2264 4   0.128990
+2264 5285   0.078885
+2264 5287   1.000000
+2264 5289   0.058415
+2264 5293  -0.008310
+2264 5295  -1.000000
+2265 4   0.128990
+2265 5286   0.078885
+2265 5288   1.000000
+2265 5290   0.058415
+2265 5294  -0.008310
+2265 5296  -1.000000
+2266 4   0.200000
+2266 5285   0.075281
+2266 5289   0.102497
+2266 5291   1.000000
+2266 5293   0.022222
+2266 5295  -1.000000
+2267 4   0.200000
+2267 5286   0.075281
+2267 5290   0.102497
+2267 5292   1.000000
+2267 5294   0.022222
+2267 5296  -1.000000
+2268 4   0.031010
+2268 5297   1.000000
+2268 5299   0.039363
+2268 5303  -0.013107
+2268 5307   0.004754
+2268 5309  -1.000000
+2269 4   0.031010
+2269 5298   1.000000
+2269 5300   0.039363
+2269 5304  -0.013107
+2269 5308   0.004754
+2269 5310  -1.000000
+2270 4   0.128990
+2270 5299   0.078885
+2270 5301   1.000000
+2270 5303   0.058415
+2270 5307  -0.008310
+2270 5309  -1.000000
+2271 4   0.128990
+2271 5300   0.078885
+2271 5302   1.000000
+2271 5304   0.058415
+2271 5308  -0.008310
+2271 5310  -1.000000
+2272 4   0.200000
+2272 5299   0.075281
+2272 5303   0.102497
+2272 5305   1.000000
+2272 5307   0.022222
+2272 5309  -1.000000
+2273 4   0.200000
+2273 5300   0.075281
+2273 5304   0.102497
+2273 5306   1.000000
+2273 5308   0.022222
+2273 5310  -1.000000
+2274 4   0.031010
+2274 5311   1.000000
+2274 5313   0.039363
+2274 5317  -0.013107
+2274 5321   0.004754
+2274 5323  -1.000000
+2275 4   0.031010
+2275 5312   1.000000
+2275 5314   0.039363
+2275 5318  -0.013107
+2275 5322   0.004754
+2275 5324  -1.000000
+2276 4   0.128990
+2276 5313   0.078885
+2276 5315   1.000000
+2276 5317   0.058415
+2276 5321  -0.008310
+2276 5323  -1.000000
+2277 4   0.128990
+2277 5314   0.078885
+2277 5316   1.000000
+2277 5318   0.058415
+2277 5322  -0.008310
+2277 5324  -1.000000
+2278 4   0.200000
+2278 5313   0.075281
+2278 5317   0.102497
+2278 5319   1.000000
+2278 5321   0.022222
+2278 5323  -1.000000
+2279 4   0.200000
+2279 5314   0.075281
+2279 5318   0.102497
+2279 5320   1.000000
+2279 5322   0.022222
+2279 5324  -1.000000
+2280 4   0.031010
+2280 5325   1.000000
+2280 5327   0.039363
+2280 5331  -0.013107
+2280 5335   0.004754
+2280 5337  -1.000000
+2281 4   0.031010
+2281 5326   1.000000
+2281 5328   0.039363
+2281 5332  -0.013107
+2281 5336   0.004754
+2281 5338  -1.000000
+2282 4   0.128990
+2282 5327   0.078885
+2282 5329   1.000000
+2282 5331   0.058415
+2282 5335  -0.008310
+2282 5337  -1.000000
+2283 4   0.128990
+2283 5328   0.078885
+2283 5330   1.000000
+2283 5332   0.058415
+2283 5336  -0.008310
+2283 5338  -1.000000
+2284 4   0.200000
+2284 5327   0.075281
+2284 5331   0.102497
+2284 5333   1.000000
+2284 5335   0.022222
+2284 5337  -1.000000
+2285 4   0.200000
+2285 5328   0.075281
+2285 5332   0.102497
+2285 5334   1.000000
+2285 5336   0.022222
+2285 5338  -1.000000
+2286 4   0.031010
+2286 5339   1.000000
+2286 5341   0.039363
+2286 5345  -0.013107
+2286 5349   0.004754
+2286 5351  -1.000000
+2287 4   0.031010
+2287 5340   1.000000
+2287 5342   0.039363
+2287 5346  -0.013107
+2287 5350   0.004754
+2287 5352  -1.000000
+2288 4   0.128990
+2288 5341   0.078885
+2288 5343   1.000000
+2288 5345   0.058415
+2288 5349  -0.008310
+2288 5351  -1.000000
+2289 4   0.128990
+2289 5342   0.078885
+2289 5344   1.000000
+2289 5346   0.058415
+2289 5350  -0.008310
+2289 5352  -1.000000
+2290 4   0.200000
+2290 5341   0.075281
+2290 5345   0.102497
+2290 5347   1.000000
+2290 5349   0.022222
+2290 5351  -1.000000
+2291 4   0.200000
+2291 5342   0.075281
+2291 5346   0.102497
+2291 5348   1.000000
+2291 5350   0.022222
+2291 5352  -1.000000
+2292 4   0.031010
+2292 5353   1.000000
+2292 5355   0.039363
+2292 5359  -0.013107
+2292 5363   0.004754
+2292 5365  -1.000000
+2293 4   0.031010
+2293 5354   1.000000
+2293 5356   0.039363
+2293 5360  -0.013107
+2293 5364   0.004754
+2293 5366  -1.000000
+2294 4   0.128990
+2294 5355   0.078885
+2294 5357   1.000000
+2294 5359   0.058415
+2294 5363  -0.008310
+2294 5365  -1.000000
+2295 4   0.128990
+2295 5356   0.078885
+2295 5358   1.000000
+2295 5360   0.058415
+2295 5364  -0.008310
+2295 5366  -1.000000
+2296 4   0.200000
+2296 5355   0.075281
+2296 5359   0.102497
+2296 5361   1.000000
+2296 5363   0.022222
+2296 5365  -1.000000
+2297 4   0.200000
+2297 5356   0.075281
+2297 5360   0.102497
+2297 5362   1.000000
+2297 5364   0.022222
+2297 5366  -1.000000
+2298 4   0.031010
+2298 5367   1.000000
+2298 5369   0.039363
+2298 5373  -0.013107
+2298 5377   0.004754
+2298 5379  -1.000000
+2299 4   0.031010
+2299 5368   1.000000
+2299 5370   0.039363
+2299 5374  -0.013107
+2299 5378   0.004754
+2299 5380  -1.000000
+2300 4   0.128990
+2300 5369   0.078885
+2300 5371   1.000000
+2300 5373   0.058415
+2300 5377  -0.008310
+2300 5379  -1.000000
+2301 4   0.128990
+2301 5370   0.078885
+2301 5372   1.000000
+2301 5374   0.058415
+2301 5378  -0.008310
+2301 5380  -1.000000
+2302 4   0.200000
+2302 5369   0.075281
+2302 5373   0.102497
+2302 5375   1.000000
+2302 5377   0.022222
+2302 5379  -1.000000
+2303 4   0.200000
+2303 5370   0.075281
+2303 5374   0.102497
+2303 5376   1.000000
+2303 5378   0.022222
+2303 5380  -1.000000
+2304 4   0.031010
+2304 5381   1.000000
+2304 5383   0.039363
+2304 5387  -0.013107
+2304 5391   0.004754
+2304 5393  -1.000000
+2305 4   0.031010
+2305 5382   1.000000
+2305 5384   0.039363
+2305 5388  -0.013107
+2305 5392   0.004754
+2305 5394  -1.000000
+2306 4   0.128990
+2306 5383   0.078885
+2306 5385   1.000000
+2306 5387   0.058415
+2306 5391  -0.008310
+2306 5393  -1.000000
+2307 4   0.128990
+2307 5384   0.078885
+2307 5386   1.000000
+2307 5388   0.058415
+2307 5392  -0.008310
+2307 5394  -1.000000
+2308 4   0.200000
+2308 5383   0.075281
+2308 5387   0.102497
+2308 5389   1.000000
+2308 5391   0.022222
+2308 5393  -1.000000
+2309 4   0.200000
+2309 5384   0.075281
+2309 5388   0.102497
+2309 5390   1.000000
+2309 5392   0.022222
+2309 5394  -1.000000
+2310 4   0.031010
+2310 5395   1.000000
+2310 5397   0.039363
+2310 5401  -0.013107
+2310 5405   0.004754
+2310 5407  -1.000000
+2311 4   0.031010
+2311 5396   1.000000
+2311 5398   0.039363
+2311 5402  -0.013107
+2311 5406   0.004754
+2311 5408  -1.000000
+2312 4   0.128990
+2312 5397   0.078885
+2312 5399   1.000000
+2312 5401   0.058415
+2312 5405  -0.008310
+2312 5407  -1.000000
+2313 4   0.128990
+2313 5398   0.078885
+2313 5400   1.000000
+2313 5402   0.058415
+2313 5406  -0.008310
+2313 5408  -1.000000
+2314 4   0.200000
+2314 5397   0.075281
+2314 5401   0.102497
+2314 5403   1.000000
+2314 5405   0.022222
+2314 5407  -1.000000
+2315 4   0.200000
+2315 5398   0.075281
+2315 5402   0.102497
+2315 5404   1.000000
+2315 5406   0.022222
+2315 5408  -1.000000
+2316 4   0.031010
+2316 5409   1.000000
+2316 5411   0.039363
+2316 5415  -0.013107
+2316 5419   0.004754
+2316 5421  -1.000000
+2317 4   0.031010
+2317 5410   1.000000
+2317 5412   0.039363
+2317 5416  -0.013107
+2317 5420   0.004754
+2317 5422  -1.000000
+2318 4   0.128990
+2318 5411   0.078885
+2318 5413   1.000000
+2318 5415   0.058415
+2318 5419  -0.008310
+2318 5421  -1.000000
+2319 4   0.128990
+2319 5412   0.078885
+2319 5414   1.000000
+2319 5416   0.058415
+2319 5420  -0.008310
+2319 5422  -1.000000
+2320 4   0.200000
+2320 5411   0.075281
+2320 5415   0.102497
+2320 5417   1.000000
+2320 5419   0.022222
+2320 5421  -1.000000
+2321 4   0.200000
+2321 5412   0.075281
+2321 5416   0.102497
+2321 5418   1.000000
+2321 5420   0.022222
+2321 5422  -1.000000
+2322 4   0.031010
+2322 5423   1.000000
+2322 5425   0.039363
+2322 5429  -0.013107
+2322 5433   0.004754
+2322 5435  -1.000000
+2323 4   0.031010
+2323 5424   1.000000
+2323 5426   0.039363
+2323 5430  -0.013107
+2323 5434   0.004754
+2323 5436  -1.000000
+2324 4   0.128990
+2324 5425   0.078885
+2324 5427   1.000000
+2324 5429   0.058415
+2324 5433  -0.008310
+2324 5435  -1.000000
+2325 4   0.128990
+2325 5426   0.078885
+2325 5428   1.000000
+2325 5430   0.058415
+2325 5434  -0.008310
+2325 5436  -1.000000
+2326 4   0.200000
+2326 5425   0.075281
+2326 5429   0.102497
+2326 5431   1.000000
+2326 5433   0.022222
+2326 5435  -1.000000
+2327 4   0.200000
+2327 5426   0.075281
+2327 5430   0.102497
+2327 5432   1.000000
+2327 5434   0.022222
+2327 5436  -1.000000
+2328 4   0.031010
+2328 5437   1.000000
+2328 5439   0.039363
+2328 5443  -0.013107
+2328 5447   0.004754
+2328 5449  -1.000000
+2329 4   0.031010
+2329 5438   1.000000
+2329 5440   0.039363
+2329 5444  -0.013107
+2329 5448   0.004754
+2329 5450  -1.000000
+2330 4   0.128990
+2330 5439   0.078885
+2330 5441   1.000000
+2330 5443   0.058415
+2330 5447  -0.008310
+2330 5449  -1.000000
+2331 4   0.128990
+2331 5440   0.078885
+2331 5442   1.000000
+2331 5444   0.058415
+2331 5448  -0.008310
+2331 5450  -1.000000
+2332 4   0.200000
+2332 5439   0.075281
+2332 5443   0.102497
+2332 5445   1.000000
+2332 5447   0.022222
+2332 5449  -1.000000
+2333 4   0.200000
+2333 5440   0.075281
+2333 5444   0.102497
+2333 5446   1.000000
+2333 5448   0.022222
+2333 5450  -1.000000
+2334 4   0.031010
+2334 5451   1.000000
+2334 5453   0.039363
+2334 5457  -0.013107
+2334 5461   0.004754
+2334 5463  -1.000000
+2335 4   0.031010
+2335 5452   1.000000
+2335 5454   0.039363
+2335 5458  -0.013107
+2335 5462   0.004754
+2335 5464  -1.000000
+2336 4   0.128990
+2336 5453   0.078885
+2336 5455   1.000000
+2336 5457   0.058415
+2336 5461  -0.008310
+2336 5463  -1.000000
+2337 4   0.128990
+2337 5454   0.078885
+2337 5456   1.000000
+2337 5458   0.058415
+2337 5462  -0.008310
+2337 5464  -1.000000
+2338 4   0.200000
+2338 5453   0.075281
+2338 5457   0.102497
+2338 5459   1.000000
+2338 5461   0.022222
+2338 5463  -1.000000
+2339 4   0.200000
+2339 5454   0.075281
+2339 5458   0.102497
+2339 5460   1.000000
+2339 5462   0.022222
+2339 5464  -1.000000
+2340 4   0.031010
+2340 5465   1.000000
+2340 5467   0.039363
+2340 5471  -0.013107
+2340 5475   0.004754
+2340 5477  -1.000000
+2341 4   0.031010
+2341 5466   1.000000
+2341 5468   0.039363
+2341 5472  -0.013107
+2341 5476   0.004754
+2341 5478  -1.000000
+2342 4   0.128990
+2342 5467   0.078885
+2342 5469   1.000000
+2342 5471   0.058415
+2342 5475  -0.008310
+2342 5477  -1.000000
+2343 4   0.128990
+2343 5468   0.078885
+2343 5470   1.000000
+2343 5472   0.058415
+2343 5476  -0.008310
+2343 5478  -1.000000
+2344 4   0.200000
+2344 5467   0.075281
+2344 5471   0.102497
+2344 5473   1.000000
+2344 5475   0.022222
+2344 5477  -1.000000
+2345 4   0.200000
+2345 5468   0.075281
+2345 5472   0.102497
+2345 5474   1.000000
+2345 5476   0.022222
+2345 5478  -1.000000
+2346 4   0.031010
+2346 5479   1.000000
+2346 5481   0.039363
+2346 5485  -0.013107
+2346 5489   0.004754
+2346 5491  -1.000000
+2347 4   0.031010
+2347 5480   1.000000
+2347 5482   0.039363
+2347 5486  -0.013107
+2347 5490   0.004754
+2347 5492  -1.000000
+2348 4   0.128990
+2348 5481   0.078885
+2348 5483   1.000000
+2348 5485   0.058415
+2348 5489  -0.008310
+2348 5491  -1.000000
+2349 4   0.128990
+2349 5482   0.078885
+2349 5484   1.000000
+2349 5486   0.058415
+2349 5490  -0.008310
+2349 5492  -1.000000
+2350 4   0.200000
+2350 5481   0.075281
+2350 5485   0.102497
+2350 5487   1.000000
+2350 5489   0.022222
+2350 5491  -1.000000
+2351 4   0.200000
+2351 5482   0.075281
+2351 5486   0.102497
+2351 5488   1.000000
+2351 5490   0.022222
+2351 5492  -1.000000
+2352 4   0.031010
+2352 5493   1.000000
+2352 5495   0.039363
+2352 5499  -0.013107
+2352 5503   0.004754
+2352 5505  -1.000000
+2353 4   0.031010
+2353 5494   1.000000
+2353 5496   0.039363
+2353 5500  -0.013107
+2353 5504   0.004754
+2353 5506  -1.000000
+2354 4   0.128990
+2354 5495   0.078885
+2354 5497   1.000000
+2354 5499   0.058415
+2354 5503  -0.008310
+2354 5505  -1.000000
+2355 4   0.128990
+2355 5496   0.078885
+2355 5498   1.000000
+2355 5500   0.058415
+2355 5504  -0.008310
+2355 5506  -1.000000
+2356 4   0.200000
+2356 5495   0.075281
+2356 5499   0.102497
+2356 5501   1.000000
+2356 5503   0.022222
+2356 5505  -1.000000
+2357 4   0.200000
+2357 5496   0.075281
+2357 5500   0.102497
+2357 5502   1.000000
+2357 5504   0.022222
+2357 5506  -1.000000
+2358 4   0.031010
+2358 5507   1.000000
+2358 5509   0.039363
+2358 5513  -0.013107
+2358 5517   0.004754
+2358 5519  -1.000000
+2359 4   0.031010
+2359 5508   1.000000
+2359 5510   0.039363
+2359 5514  -0.013107
+2359 5518   0.004754
+2359 5520  -1.000000
+2360 4   0.128990
+2360 5509   0.078885
+2360 5511   1.000000
+2360 5513   0.058415
+2360 5517  -0.008310
+2360 5519  -1.000000
+2361 4   0.128990
+2361 5510   0.078885
+2361 5512   1.000000
+2361 5514   0.058415
+2361 5518  -0.008310
+2361 5520  -1.000000
+2362 4   0.200000
+2362 5509   0.075281
+2362 5513   0.102497
+2362 5515   1.000000
+2362 5517   0.022222
+2362 5519  -1.000000
+2363 4   0.200000
+2363 5510   0.075281
+2363 5514   0.102497
+2363 5516   1.000000
+2363 5518   0.022222
+2363 5520  -1.000000
+2364 4   0.031010
+2364 5521   1.000000
+2364 5523   0.039363
+2364 5527  -0.013107
+2364 5531   0.004754
+2364 5533  -1.000000
+2365 4   0.031010
+2365 5522   1.000000
+2365 5524   0.039363
+2365 5528  -0.013107
+2365 5532   0.004754
+2365 5534  -1.000000
+2366 4   0.128990
+2366 5523   0.078885
+2366 5525   1.000000
+2366 5527   0.058415
+2366 5531  -0.008310
+2366 5533  -1.000000
+2367 4   0.128990
+2367 5524   0.078885
+2367 5526   1.000000
+2367 5528   0.058415
+2367 5532  -0.008310
+2367 5534  -1.000000
+2368 4   0.200000
+2368 5523   0.075281
+2368 5527   0.102497
+2368 5529   1.000000
+2368 5531   0.022222
+2368 5533  -1.000000
+2369 4   0.200000
+2369 5524   0.075281
+2369 5528   0.102497
+2369 5530   1.000000
+2369 5532   0.022222
+2369 5534  -1.000000
+2370 4   0.031010
+2370 5535   1.000000
+2370 5537   0.039363
+2370 5541  -0.013107
+2370 5545   0.004754
+2370 5547  -1.000000
+2371 4   0.031010
+2371 5536   1.000000
+2371 5538   0.039363
+2371 5542  -0.013107
+2371 5546   0.004754
+2371 5548  -1.000000
+2372 4   0.128990
+2372 5537   0.078885
+2372 5539   1.000000
+2372 5541   0.058415
+2372 5545  -0.008310
+2372 5547  -1.000000
+2373 4   0.128990
+2373 5538   0.078885
+2373 5540   1.000000
+2373 5542   0.058415
+2373 5546  -0.008310
+2373 5548  -1.000000
+2374 4   0.200000
+2374 5537   0.075281
+2374 5541   0.102497
+2374 5543   1.000000
+2374 5545   0.022222
+2374 5547  -1.000000
+2375 4   0.200000
+2375 5538   0.075281
+2375 5542   0.102497
+2375 5544   1.000000
+2375 5546   0.022222
+2375 5548  -1.000000
+2376 4   0.031010
+2376 5549   1.000000
+2376 5551   0.039363
+2376 5555  -0.013107
+2376 5559   0.004754
+2376 5561  -1.000000
+2377 4   0.031010
+2377 5550   1.000000
+2377 5552   0.039363
+2377 5556  -0.013107
+2377 5560   0.004754
+2377 5562  -1.000000
+2378 4   0.128990
+2378 5551   0.078885
+2378 5553   1.000000
+2378 5555   0.058415
+2378 5559  -0.008310
+2378 5561  -1.000000
+2379 4   0.128990
+2379 5552   0.078885
+2379 5554   1.000000
+2379 5556   0.058415
+2379 5560  -0.008310
+2379 5562  -1.000000
+2380 4   0.200000
+2380 5551   0.075281
+2380 5555   0.102497
+2380 5557   1.000000
+2380 5559   0.022222
+2380 5561  -1.000000
+2381 4   0.200000
+2381 5552   0.075281
+2381 5556   0.102497
+2381 5558   1.000000
+2381 5560   0.022222
+2381 5562  -1.000000
+2382 4   0.031010
+2382 5563   1.000000
+2382 5565   0.039363
+2382 5569  -0.013107
+2382 5573   0.004754
+2382 5575  -1.000000
+2383 4   0.031010
+2383 5564   1.000000
+2383 5566   0.039363
+2383 5570  -0.013107
+2383 5574   0.004754
+2383 5576  -1.000000
+2384 4   0.128990
+2384 5565   0.078885
+2384 5567   1.000000
+2384 5569   0.058415
+2384 5573  -0.008310
+2384 5575  -1.000000
+2385 4   0.128990
+2385 5566   0.078885
+2385 5568   1.000000
+2385 5570   0.058415
+2385 5574  -0.008310
+2385 5576  -1.000000
+2386 4   0.200000
+2386 5565   0.075281
+2386 5569   0.102497
+2386 5571   1.000000
+2386 5573   0.022222
+2386 5575  -1.000000
+2387 4   0.200000
+2387 5566   0.075281
+2387 5570   0.102497
+2387 5572   1.000000
+2387 5574   0.022222
+2387 5576  -1.000000
+2388 4   0.031010
+2388 5577   1.000000
+2388 5579   0.039363
+2388 5583  -0.013107
+2388 5587   0.004754
+2388 5589  -1.000000
+2389 4   0.031010
+2389 5578   1.000000
+2389 5580   0.039363
+2389 5584  -0.013107
+2389 5588   0.004754
+2389 5590  -1.000000
+2390 4   0.128990
+2390 5579   0.078885
+2390 5581   1.000000
+2390 5583   0.058415
+2390 5587  -0.008310
+2390 5589  -1.000000
+2391 4   0.128990
+2391 5580   0.078885
+2391 5582   1.000000
+2391 5584   0.058415
+2391 5588  -0.008310
+2391 5590  -1.000000
+2392 4   0.200000
+2392 5579   0.075281
+2392 5583   0.102497
+2392 5585   1.000000
+2392 5587   0.022222
+2392 5589  -1.000000
+2393 4   0.200000
+2393 5580   0.075281
+2393 5584   0.102497
+2393 5586   1.000000
+2393 5588   0.022222
+2393 5590  -1.000000
+2394 4   0.031010
+2394 5591   1.000000
+2394 5593   0.039363
+2394 5597  -0.013107
+2394 5601   0.004754
+2394 5603  -1.000000
+2395 4   0.031010
+2395 5592   1.000000
+2395 5594   0.039363
+2395 5598  -0.013107
+2395 5602   0.004754
+2395 5604  -1.000000
+2396 4   0.128990
+2396 5593   0.078885
+2396 5595   1.000000
+2396 5597   0.058415
+2396 5601  -0.008310
+2396 5603  -1.000000
+2397 4   0.128990
+2397 5594   0.078885
+2397 5596   1.000000
+2397 5598   0.058415
+2397 5602  -0.008310
+2397 5604  -1.000000
+2398 4   0.200000
+2398 5593   0.075281
+2398 5597   0.102497
+2398 5599   1.000000
+2398 5601   0.022222
+2398 5603  -1.000000
+2399 4   0.200000
+2399 5594   0.075281
+2399 5598   0.102497
+2399 5600   1.000000
+2399 5602   0.022222
+2399 5604  -1.000000
+2400 4   0.031010
+2400 5605   1.000000
+2400 5607   0.039363
+2400 5611  -0.013107
+2400 5615   0.004754
+2400 5617  -1.000000
+2401 4   0.031010
+2401 5606   1.000000
+2401 5608   0.039363
+2401 5612  -0.013107
+2401 5616   0.004754
+2401 5618  -1.000000
+2402 4   0.128990
+2402 5607   0.078885
+2402 5609   1.000000
+2402 5611   0.058415
+2402 5615  -0.008310
+2402 5617  -1.000000
+2403 4   0.128990
+2403 5608   0.078885
+2403 5610   1.000000
+2403 5612   0.058415
+2403 5616  -0.008310
+2403 5618  -1.000000
+2404 4   0.200000
+2404 5607   0.075281
+2404 5611   0.102497
+2404 5613   1.000000
+2404 5615   0.022222
+2404 5617  -1.000000
+2405 4   0.200000
+2405 5608   0.075281
+2405 5612   0.102497
+2405 5614   1.000000
+2405 5616   0.022222
+2405 5618  -1.000000
+2406 4   0.031010
+2406 5619   1.000000
+2406 5621   0.039363
+2406 5625  -0.013107
+2406 5629   0.004754
+2406 5631  -1.000000
+2407 4   0.031010
+2407 5620   1.000000
+2407 5622   0.039363
+2407 5626  -0.013107
+2407 5630   0.004754
+2407 5632  -1.000000
+2408 4   0.128990
+2408 5621   0.078885
+2408 5623   1.000000
+2408 5625   0.058415
+2408 5629  -0.008310
+2408 5631  -1.000000
+2409 4   0.128990
+2409 5622   0.078885
+2409 5624   1.000000
+2409 5626   0.058415
+2409 5630  -0.008310
+2409 5632  -1.000000
+2410 4   0.200000
+2410 5621   0.075281
+2410 5625   0.102497
+2410 5627   1.000000
+2410 5629   0.022222
+2410 5631  -1.000000
+2411 4   0.200000
+2411 5622   0.075281
+2411 5626   0.102497
+2411 5628   1.000000
+2411 5630   0.022222
+2411 5632  -1.000000
+2412 4   0.031010
+2412 5633   1.000000
+2412 5635   0.039363
+2412 5639  -0.013107
+2412 5643   0.004754
+2412 5645  -1.000000
+2413 4   0.031010
+2413 5634   1.000000
+2413 5636   0.039363
+2413 5640  -0.013107
+2413 5644   0.004754
+2413 5646  -1.000000
+2414 4   0.128990
+2414 5635   0.078885
+2414 5637   1.000000
+2414 5639   0.058415
+2414 5643  -0.008310
+2414 5645  -1.000000
+2415 4   0.128990
+2415 5636   0.078885
+2415 5638   1.000000
+2415 5640   0.058415
+2415 5644  -0.008310
+2415 5646  -1.000000
+2416 4   0.200000
+2416 5635   0.075281
+2416 5639   0.102497
+2416 5641   1.000000
+2416 5643   0.022222
+2416 5645  -1.000000
+2417 4   0.200000
+2417 5636   0.075281
+2417 5640   0.102497
+2417 5642   1.000000
+2417 5644   0.022222
+2417 5646  -1.000000
+2418 4   0.031010
+2418 5647   1.000000
+2418 5649   0.039363
+2418 5653  -0.013107
+2418 5657   0.004754
+2418 5659  -1.000000
+2419 4   0.031010
+2419 5648   1.000000
+2419 5650   0.039363
+2419 5654  -0.013107
+2419 5658   0.004754
+2419 5660  -1.000000
+2420 4   0.128990
+2420 5649   0.078885
+2420 5651   1.000000
+2420 5653   0.058415
+2420 5657  -0.008310
+2420 5659  -1.000000
+2421 4   0.128990
+2421 5650   0.078885
+2421 5652   1.000000
+2421 5654   0.058415
+2421 5658  -0.008310
+2421 5660  -1.000000
+2422 4   0.200000
+2422 5649   0.075281
+2422 5653   0.102497
+2422 5655   1.000000
+2422 5657   0.022222
+2422 5659  -1.000000
+2423 4   0.200000
+2423 5650   0.075281
+2423 5654   0.102497
+2423 5656   1.000000
+2423 5658   0.022222
+2423 5660  -1.000000
+2424 4   0.031010
+2424 5661   1.000000
+2424 5663   0.039363
+2424 5667  -0.013107
+2424 5671   0.004754
+2424 5673  -1.000000
+2425 4   0.031010
+2425 5662   1.000000
+2425 5664   0.039363
+2425 5668  -0.013107
+2425 5672   0.004754
+2425 5674  -1.000000
+2426 4   0.128990
+2426 5663   0.078885
+2426 5665   1.000000
+2426 5667   0.058415
+2426 5671  -0.008310
+2426 5673  -1.000000
+2427 4   0.128990
+2427 5664   0.078885
+2427 5666   1.000000
+2427 5668   0.058415
+2427 5672  -0.008310
+2427 5674  -1.000000
+2428 4   0.200000
+2428 5663   0.075281
+2428 5667   0.102497
+2428 5669   1.000000
+2428 5671   0.022222
+2428 5673  -1.000000
+2429 4   0.200000
+2429 5664   0.075281
+2429 5668   0.102497
+2429 5670   1.000000
+2429 5672   0.022222
+2429 5674  -1.000000
+2430 4   0.031010
+2430 5675   1.000000
+2430 5677   0.039363
+2430 5681  -0.013107
+2430 5685   0.004754
+2430 5687  -1.000000
+2431 4   0.031010
+2431 5676   1.000000
+2431 5678   0.039363
+2431 5682  -0.013107
+2431 5686   0.004754
+2431 5688  -1.000000
+2432 4   0.128990
+2432 5677   0.078885
+2432 5679   1.000000
+2432 5681   0.058415
+2432 5685  -0.008310
+2432 5687  -1.000000
+2433 4   0.128990
+2433 5678   0.078885
+2433 5680   1.000000
+2433 5682   0.058415
+2433 5686  -0.008310
+2433 5688  -1.000000
+2434 4   0.200000
+2434 5677   0.075281
+2434 5681   0.102497
+2434 5683   1.000000
+2434 5685   0.022222
+2434 5687  -1.000000
+2435 4   0.200000
+2435 5678   0.075281
+2435 5682   0.102497
+2435 5684   1.000000
+2435 5686   0.022222
+2435 5688  -1.000000
+2436 4   0.031010
+2436 5689   1.000000
+2436 5691   0.039363
+2436 5695  -0.013107
+2436 5699   0.004754
+2436 5701  -1.000000
+2437 4   0.031010
+2437 5690   1.000000
+2437 5692   0.039363
+2437 5696  -0.013107
+2437 5700   0.004754
+2437 5702  -1.000000
+2438 4   0.128990
+2438 5691   0.078885
+2438 5693   1.000000
+2438 5695   0.058415
+2438 5699  -0.008310
+2438 5701  -1.000000
+2439 4   0.128990
+2439 5692   0.078885
+2439 5694   1.000000
+2439 5696   0.058415
+2439 5700  -0.008310
+2439 5702  -1.000000
+2440 4   0.200000
+2440 5691   0.075281
+2440 5695   0.102497
+2440 5697   1.000000
+2440 5699   0.022222
+2440 5701  -1.000000
+2441 4   0.200000
+2441 5692   0.075281
+2441 5696   0.102497
+2441 5698   1.000000
+2441 5700   0.022222
+2441 5702  -1.000000
+2442 4   0.031010
+2442 5703   1.000000
+2442 5705   0.039363
+2442 5709  -0.013107
+2442 5713   0.004754
+2442 5715  -1.000000
+2443 4   0.031010
+2443 5704   1.000000
+2443 5706   0.039363
+2443 5710  -0.013107
+2443 5714   0.004754
+2443 5716  -1.000000
+2444 4   0.128990
+2444 5705   0.078885
+2444 5707   1.000000
+2444 5709   0.058415
+2444 5713  -0.008310
+2444 5715  -1.000000
+2445 4   0.128990
+2445 5706   0.078885
+2445 5708   1.000000
+2445 5710   0.058415
+2445 5714  -0.008310
+2445 5716  -1.000000
+2446 4   0.200000
+2446 5705   0.075281
+2446 5709   0.102497
+2446 5711   1.000000
+2446 5713   0.022222
+2446 5715  -1.000000
+2447 4   0.200000
+2447 5706   0.075281
+2447 5710   0.102497
+2447 5712   1.000000
+2447 5714   0.022222
+2447 5716  -1.000000
+2448 4   0.031010
+2448 5717   1.000000
+2448 5719   0.039363
+2448 5723  -0.013107
+2448 5727   0.004754
+2448 5729  -1.000000
+2449 4   0.031010
+2449 5718   1.000000
+2449 5720   0.039363
+2449 5724  -0.013107
+2449 5728   0.004754
+2449 5730  -1.000000
+2450 4   0.128990
+2450 5719   0.078885
+2450 5721   1.000000
+2450 5723   0.058415
+2450 5727  -0.008310
+2450 5729  -1.000000
+2451 4   0.128990
+2451 5720   0.078885
+2451 5722   1.000000
+2451 5724   0.058415
+2451 5728  -0.008310
+2451 5730  -1.000000
+2452 4   0.200000
+2452 5719   0.075281
+2452 5723   0.102497
+2452 5725   1.000000
+2452 5727   0.022222
+2452 5729  -1.000000
+2453 4   0.200000
+2453 5720   0.075281
+2453 5724   0.102497
+2453 5726   1.000000
+2453 5728   0.022222
+2453 5730  -1.000000
+2454 4   0.031010
+2454 5731   1.000000
+2454 5733   0.039363
+2454 5737  -0.013107
+2454 5741   0.004754
+2454 5743  -1.000000
+2455 4   0.031010
+2455 5732   1.000000
+2455 5734   0.039363
+2455 5738  -0.013107
+2455 5742   0.004754
+2455 5744  -1.000000
+2456 4   0.128990
+2456 5733   0.078885
+2456 5735   1.000000
+2456 5737   0.058415
+2456 5741  -0.008310
+2456 5743  -1.000000
+2457 4   0.128990
+2457 5734   0.078885
+2457 5736   1.000000
+2457 5738   0.058415
+2457 5742  -0.008310
+2457 5744  -1.000000
+2458 4   0.200000
+2458 5733   0.075281
+2458 5737   0.102497
+2458 5739   1.000000
+2458 5741   0.022222
+2458 5743  -1.000000
+2459 4   0.200000
+2459 5734   0.075281
+2459 5738   0.102497
+2459 5740   1.000000
+2459 5742   0.022222
+2459 5744  -1.000000
+2460 4   0.031010
+2460 5745   1.000000
+2460 5747   0.039363
+2460 5751  -0.013107
+2460 5755   0.004754
+2460 5757  -1.000000
+2461 4   0.031010
+2461 5746   1.000000
+2461 5748   0.039363
+2461 5752  -0.013107
+2461 5756   0.004754
+2461 5758  -1.000000
+2462 4   0.128990
+2462 5747   0.078885
+2462 5749   1.000000
+2462 5751   0.058415
+2462 5755  -0.008310
+2462 5757  -1.000000
+2463 4   0.128990
+2463 5748   0.078885
+2463 5750   1.000000
+2463 5752   0.058415
+2463 5756  -0.008310
+2463 5758  -1.000000
+2464 4   0.200000
+2464 5747   0.075281
+2464 5751   0.102497
+2464 5753   1.000000
+2464 5755   0.022222
+2464 5757  -1.000000
+2465 4   0.200000
+2465 5748   0.075281
+2465 5752   0.102497
+2465 5754   1.000000
+2465 5756   0.022222
+2465 5758  -1.000000
+2466 4   0.031010
+2466 5759   1.000000
+2466 5761   0.039363
+2466 5765  -0.013107
+2466 5769   0.004754
+2466 5771  -1.000000
+2467 4   0.031010
+2467 5760   1.000000
+2467 5762   0.039363
+2467 5766  -0.013107
+2467 5770   0.004754
+2467 5772  -1.000000
+2468 4   0.128990
+2468 5761   0.078885
+2468 5763   1.000000
+2468 5765   0.058415
+2468 5769  -0.008310
+2468 5771  -1.000000
+2469 4   0.128990
+2469 5762   0.078885
+2469 5764   1.000000
+2469 5766   0.058415
+2469 5770  -0.008310
+2469 5772  -1.000000
+2470 4   0.200000
+2470 5761   0.075281
+2470 5765   0.102497
+2470 5767   1.000000
+2470 5769   0.022222
+2470 5771  -1.000000
+2471 4   0.200000
+2471 5762   0.075281
+2471 5766   0.102497
+2471 5768   1.000000
+2471 5770   0.022222
+2471 5772  -1.000000
+2472 4   0.031010
+2472 5773   1.000000
+2472 5775   0.039363
+2472 5779  -0.013107
+2472 5783   0.004754
+2472 5785  -1.000000
+2473 4   0.031010
+2473 5774   1.000000
+2473 5776   0.039363
+2473 5780  -0.013107
+2473 5784   0.004754
+2473 5786  -1.000000
+2474 4   0.128990
+2474 5775   0.078885
+2474 5777   1.000000
+2474 5779   0.058415
+2474 5783  -0.008310
+2474 5785  -1.000000
+2475 4   0.128990
+2475 5776   0.078885
+2475 5778   1.000000
+2475 5780   0.058415
+2475 5784  -0.008310
+2475 5786  -1.000000
+2476 4   0.200000
+2476 5775   0.075281
+2476 5779   0.102497
+2476 5781   1.000000
+2476 5783   0.022222
+2476 5785  -1.000000
+2477 4   0.200000
+2477 5776   0.075281
+2477 5780   0.102497
+2477 5782   1.000000
+2477 5784   0.022222
+2477 5786  -1.000000
+2478 4   0.031010
+2478 5787   1.000000
+2478 5789   0.039363
+2478 5793  -0.013107
+2478 5797   0.004754
+2478 5799  -1.000000
+2479 4   0.031010
+2479 5788   1.000000
+2479 5790   0.039363
+2479 5794  -0.013107
+2479 5798   0.004754
+2479 5800  -1.000000
+2480 4   0.128990
+2480 5789   0.078885
+2480 5791   1.000000
+2480 5793   0.058415
+2480 5797  -0.008310
+2480 5799  -1.000000
+2481 4   0.128990
+2481 5790   0.078885
+2481 5792   1.000000
+2481 5794   0.058415
+2481 5798  -0.008310
+2481 5800  -1.000000
+2482 4   0.200000
+2482 5789   0.075281
+2482 5793   0.102497
+2482 5795   1.000000
+2482 5797   0.022222
+2482 5799  -1.000000
+2483 4   0.200000
+2483 5790   0.075281
+2483 5794   0.102497
+2483 5796   1.000000
+2483 5798   0.022222
+2483 5800  -1.000000
+2484 4   0.031010
+2484 5801   1.000000
+2484 5803   0.039363
+2484 5807  -0.013107
+2484 5811   0.004754
+2484 5813  -1.000000
+2485 4   0.031010
+2485 5802   1.000000
+2485 5804   0.039363
+2485 5808  -0.013107
+2485 5812   0.004754
+2485 5814  -1.000000
+2486 4   0.128990
+2486 5803   0.078885
+2486 5805   1.000000
+2486 5807   0.058415
+2486 5811  -0.008310
+2486 5813  -1.000000
+2487 4   0.128990
+2487 5804   0.078885
+2487 5806   1.000000
+2487 5808   0.058415
+2487 5812  -0.008310
+2487 5814  -1.000000
+2488 4   0.200000
+2488 5803   0.075281
+2488 5807   0.102497
+2488 5809   1.000000
+2488 5811   0.022222
+2488 5813  -1.000000
+2489 4   0.200000
+2489 5804   0.075281
+2489 5808   0.102497
+2489 5810   1.000000
+2489 5812   0.022222
+2489 5814  -1.000000
+2490 4   0.031010
+2490 5815   1.000000
+2490 5817   0.039363
+2490 5821  -0.013107
+2490 5825   0.004754
+2490 5827  -1.000000
+2491 4   0.031010
+2491 5816   1.000000
+2491 5818   0.039363
+2491 5822  -0.013107
+2491 5826   0.004754
+2491 5828  -1.000000
+2492 4   0.128990
+2492 5817   0.078885
+2492 5819   1.000000
+2492 5821   0.058415
+2492 5825  -0.008310
+2492 5827  -1.000000
+2493 4   0.128990
+2493 5818   0.078885
+2493 5820   1.000000
+2493 5822   0.058415
+2493 5826  -0.008310
+2493 5828  -1.000000
+2494 4   0.200000
+2494 5817   0.075281
+2494 5821   0.102497
+2494 5823   1.000000
+2494 5825   0.022222
+2494 5827  -1.000000
+2495 4   0.200000
+2495 5818   0.075281
+2495 5822   0.102497
+2495 5824   1.000000
+2495 5826   0.022222
+2495 5828  -1.000000
+2496 4   0.031010
+2496 5829   1.000000
+2496 5831   0.039363
+2496 5835  -0.013107
+2496 5839   0.004754
+2496 5841  -1.000000
+2497 4   0.031010
+2497 5830   1.000000
+2497 5832   0.039363
+2497 5836  -0.013107
+2497 5840   0.004754
+2497 5842  -1.000000
+2498 4   0.128990
+2498 5831   0.078885
+2498 5833   1.000000
+2498 5835   0.058415
+2498 5839  -0.008310
+2498 5841  -1.000000
+2499 4   0.128990
+2499 5832   0.078885
+2499 5834   1.000000
+2499 5836   0.058415
+2499 5840  -0.008310
+2499 5842  -1.000000
+2500 4   0.200000
+2500 5831   0.075281
+2500 5835   0.102497
+2500 5837   1.000000
+2500 5839   0.022222
+2500 5841  -1.000000
+2501 4   0.200000
+2501 5832   0.075281
+2501 5836   0.102497
+2501 5838   1.000000
+2501 5840   0.022222
+2501 5842  -1.000000
+2502 4   0.031010
+2502 5843   1.000000
+2502 5845   0.039363
+2502 5849  -0.013107
+2502 5853   0.004754
+2502 5855  -1.000000
+2503 4   0.031010
+2503 5844   1.000000
+2503 5846   0.039363
+2503 5850  -0.013107
+2503 5854   0.004754
+2503 5856  -1.000000
+2504 4   0.128990
+2504 5845   0.078885
+2504 5847   1.000000
+2504 5849   0.058415
+2504 5853  -0.008310
+2504 5855  -1.000000
+2505 4   0.128990
+2505 5846   0.078885
+2505 5848   1.000000
+2505 5850   0.058415
+2505 5854  -0.008310
+2505 5856  -1.000000
+2506 4   0.200000
+2506 5845   0.075281
+2506 5849   0.102497
+2506 5851   1.000000
+2506 5853   0.022222
+2506 5855  -1.000000
+2507 4   0.200000
+2507 5846   0.075281
+2507 5850   0.102497
+2507 5852   1.000000
+2507 5854   0.022222
+2507 5856  -1.000000
+2508 4   0.031010
+2508 5857   1.000000
+2508 5859   0.039363
+2508 5863  -0.013107
+2508 5867   0.004754
+2508 5869  -1.000000
+2509 4   0.031010
+2509 5858   1.000000
+2509 5860   0.039363
+2509 5864  -0.013107
+2509 5868   0.004754
+2509 5870  -1.000000
+2510 4   0.128990
+2510 5859   0.078885
+2510 5861   1.000000
+2510 5863   0.058415
+2510 5867  -0.008310
+2510 5869  -1.000000
+2511 4   0.128990
+2511 5860   0.078885
+2511 5862   1.000000
+2511 5864   0.058415
+2511 5868  -0.008310
+2511 5870  -1.000000
+2512 4   0.200000
+2512 5859   0.075281
+2512 5863   0.102497
+2512 5865   1.000000
+2512 5867   0.022222
+2512 5869  -1.000000
+2513 4   0.200000
+2513 5860   0.075281
+2513 5864   0.102497
+2513 5866   1.000000
+2513 5868   0.022222
+2513 5870  -1.000000
+2514 4   0.031010
+2514 5871   1.000000
+2514 5873   0.039363
+2514 5877  -0.013107
+2514 5881   0.004754
+2514 5883  -1.000000
+2515 4   0.031010
+2515 5872   1.000000
+2515 5874   0.039363
+2515 5878  -0.013107
+2515 5882   0.004754
+2515 5884  -1.000000
+2516 4   0.128990
+2516 5873   0.078885
+2516 5875   1.000000
+2516 5877   0.058415
+2516 5881  -0.008310
+2516 5883  -1.000000
+2517 4   0.128990
+2517 5874   0.078885
+2517 5876   1.000000
+2517 5878   0.058415
+2517 5882  -0.008310
+2517 5884  -1.000000
+2518 4   0.200000
+2518 5873   0.075281
+2518 5877   0.102497
+2518 5879   1.000000
+2518 5881   0.022222
+2518 5883  -1.000000
+2519 4   0.200000
+2519 5874   0.075281
+2519 5878   0.102497
+2519 5880   1.000000
+2519 5882   0.022222
+2519 5884  -1.000000
+2520 4   0.031010
+2520 5885   1.000000
+2520 5887   0.039363
+2520 5891  -0.013107
+2520 5895   0.004754
+2520 5897  -1.000000
+2521 4   0.031010
+2521 5886   1.000000
+2521 5888   0.039363
+2521 5892  -0.013107
+2521 5896   0.004754
+2521 5898  -1.000000
+2522 4   0.128990
+2522 5887   0.078885
+2522 5889   1.000000
+2522 5891   0.058415
+2522 5895  -0.008310
+2522 5897  -1.000000
+2523 4   0.128990
+2523 5888   0.078885
+2523 5890   1.000000
+2523 5892   0.058415
+2523 5896  -0.008310
+2523 5898  -1.000000
+2524 4   0.200000
+2524 5887   0.075281
+2524 5891   0.102497
+2524 5893   1.000000
+2524 5895   0.022222
+2524 5897  -1.000000
+2525 4   0.200000
+2525 5888   0.075281
+2525 5892   0.102497
+2525 5894   1.000000
+2525 5896   0.022222
+2525 5898  -1.000000
+2526 4   0.031010
+2526 5899   1.000000
+2526 5901   0.039363
+2526 5905  -0.013107
+2526 5909   0.004754
+2526 5911  -1.000000
+2527 4   0.031010
+2527 5900   1.000000
+2527 5902   0.039363
+2527 5906  -0.013107
+2527 5910   0.004754
+2527 5912  -1.000000
+2528 4   0.128990
+2528 5901   0.078885
+2528 5903   1.000000
+2528 5905   0.058415
+2528 5909  -0.008310
+2528 5911  -1.000000
+2529 4   0.128990
+2529 5902   0.078885
+2529 5904   1.000000
+2529 5906   0.058415
+2529 5910  -0.008310
+2529 5912  -1.000000
+2530 4   0.200000
+2530 5901   0.075281
+2530 5905   0.102497
+2530 5907   1.000000
+2530 5909   0.022222
+2530 5911  -1.000000
+2531 4   0.200000
+2531 5902   0.075281
+2531 5906   0.102497
+2531 5908   1.000000
+2531 5910   0.022222
+2531 5912  -1.000000
+2532 4   0.031010
+2532 5913   1.000000
+2532 5915   0.039363
+2532 5919  -0.013107
+2532 5923   0.004754
+2532 5925  -1.000000
+2533 4   0.031010
+2533 5914   1.000000
+2533 5916   0.039363
+2533 5920  -0.013107
+2533 5924   0.004754
+2533 5926  -1.000000
+2534 4   0.128990
+2534 5915   0.078885
+2534 5917   1.000000
+2534 5919   0.058415
+2534 5923  -0.008310
+2534 5925  -1.000000
+2535 4   0.128990
+2535 5916   0.078885
+2535 5918   1.000000
+2535 5920   0.058415
+2535 5924  -0.008310
+2535 5926  -1.000000
+2536 4   0.200000
+2536 5915   0.075281
+2536 5919   0.102497
+2536 5921   1.000000
+2536 5923   0.022222
+2536 5925  -1.000000
+2537 4   0.200000
+2537 5916   0.075281
+2537 5920   0.102497
+2537 5922   1.000000
+2537 5924   0.022222
+2537 5926  -1.000000
+2538 4   0.031010
+2538 5927   1.000000
+2538 5929   0.039363
+2538 5933  -0.013107
+2538 5937   0.004754
+2538 5939  -1.000000
+2539 4   0.031010
+2539 5928   1.000000
+2539 5930   0.039363
+2539 5934  -0.013107
+2539 5938   0.004754
+2539 5940  -1.000000
+2540 4   0.128990
+2540 5929   0.078885
+2540 5931   1.000000
+2540 5933   0.058415
+2540 5937  -0.008310
+2540 5939  -1.000000
+2541 4   0.128990
+2541 5930   0.078885
+2541 5932   1.000000
+2541 5934   0.058415
+2541 5938  -0.008310
+2541 5940  -1.000000
+2542 4   0.200000
+2542 5929   0.075281
+2542 5933   0.102497
+2542 5935   1.000000
+2542 5937   0.022222
+2542 5939  -1.000000
+2543 4   0.200000
+2543 5930   0.075281
+2543 5934   0.102497
+2543 5936   1.000000
+2543 5938   0.022222
+2543 5940  -1.000000
+2544 4   0.031010
+2544 5941   1.000000
+2544 5943   0.039363
+2544 5947  -0.013107
+2544 5951   0.004754
+2544 5953  -1.000000
+2545 4   0.031010
+2545 5942   1.000000
+2545 5944   0.039363
+2545 5948  -0.013107
+2545 5952   0.004754
+2545 5954  -1.000000
+2546 4   0.128990
+2546 5943   0.078885
+2546 5945   1.000000
+2546 5947   0.058415
+2546 5951  -0.008310
+2546 5953  -1.000000
+2547 4   0.128990
+2547 5944   0.078885
+2547 5946   1.000000
+2547 5948   0.058415
+2547 5952  -0.008310
+2547 5954  -1.000000
+2548 4   0.200000
+2548 5943   0.075281
+2548 5947   0.102497
+2548 5949   1.000000
+2548 5951   0.022222
+2548 5953  -1.000000
+2549 4   0.200000
+2549 5944   0.075281
+2549 5948   0.102497
+2549 5950   1.000000
+2549 5952   0.022222
+2549 5954  -1.000000
+2550 4   0.031010
+2550 5955   1.000000
+2550 5957   0.039363
+2550 5961  -0.013107
+2550 5965   0.004754
+2550 5967  -1.000000
+2551 4   0.031010
+2551 5956   1.000000
+2551 5958   0.039363
+2551 5962  -0.013107
+2551 5966   0.004754
+2551 5968  -1.000000
+2552 4   0.128990
+2552 5957   0.078885
+2552 5959   1.000000
+2552 5961   0.058415
+2552 5965  -0.008310
+2552 5967  -1.000000
+2553 4   0.128990
+2553 5958   0.078885
+2553 5960   1.000000
+2553 5962   0.058415
+2553 5966  -0.008310
+2553 5968  -1.000000
+2554 4   0.200000
+2554 5957   0.075281
+2554 5961   0.102497
+2554 5963   1.000000
+2554 5965   0.022222
+2554 5967  -1.000000
+2555 4   0.200000
+2555 5958   0.075281
+2555 5962   0.102497
+2555 5964   1.000000
+2555 5966   0.022222
+2555 5968  -1.000000
+2556 4   0.031010
+2556 5969   1.000000
+2556 5971   0.039363
+2556 5975  -0.013107
+2556 5979   0.004754
+2556 5981  -1.000000
+2557 4   0.031010
+2557 5970   1.000000
+2557 5972   0.039363
+2557 5976  -0.013107
+2557 5980   0.004754
+2557 5982  -1.000000
+2558 4   0.128990
+2558 5971   0.078885
+2558 5973   1.000000
+2558 5975   0.058415
+2558 5979  -0.008310
+2558 5981  -1.000000
+2559 4   0.128990
+2559 5972   0.078885
+2559 5974   1.000000
+2559 5976   0.058415
+2559 5980  -0.008310
+2559 5982  -1.000000
+2560 4   0.200000
+2560 5971   0.075281
+2560 5975   0.102497
+2560 5977   1.000000
+2560 5979   0.022222
+2560 5981  -1.000000
+2561 4   0.200000
+2561 5972   0.075281
+2561 5976   0.102497
+2561 5978   1.000000
+2561 5980   0.022222
+2561 5982  -1.000000
+2562 4   0.031010
+2562 5983   1.000000
+2562 5985   0.039363
+2562 5989  -0.013107
+2562 5993   0.004754
+2562 5995  -1.000000
+2563 4   0.031010
+2563 5984   1.000000
+2563 5986   0.039363
+2563 5990  -0.013107
+2563 5994   0.004754
+2563 5996  -1.000000
+2564 4   0.128990
+2564 5985   0.078885
+2564 5987   1.000000
+2564 5989   0.058415
+2564 5993  -0.008310
+2564 5995  -1.000000
+2565 4   0.128990
+2565 5986   0.078885
+2565 5988   1.000000
+2565 5990   0.058415
+2565 5994  -0.008310
+2565 5996  -1.000000
+2566 4   0.200000
+2566 5985   0.075281
+2566 5989   0.102497
+2566 5991   1.000000
+2566 5993   0.022222
+2566 5995  -1.000000
+2567 4   0.200000
+2567 5986   0.075281
+2567 5990   0.102497
+2567 5992   1.000000
+2567 5994   0.022222
+2567 5996  -1.000000
+2568 4   0.031010
+2568 5997   1.000000
+2568 5999   0.039363
+2568 6003  -0.013107
+2568 6007   0.004754
+2568 6009  -1.000000
+2569 4   0.031010
+2569 5998   1.000000
+2569 6000   0.039363
+2569 6004  -0.013107
+2569 6008   0.004754
+2569 6010  -1.000000
+2570 4   0.128990
+2570 5999   0.078885
+2570 6001   1.000000
+2570 6003   0.058415
+2570 6007  -0.008310
+2570 6009  -1.000000
+2571 4   0.128990
+2571 6000   0.078885
+2571 6002   1.000000
+2571 6004   0.058415
+2571 6008  -0.008310
+2571 6010  -1.000000
+2572 4   0.200000
+2572 5999   0.075281
+2572 6003   0.102497
+2572 6005   1.000000
+2572 6007   0.022222
+2572 6009  -1.000000
+2573 4   0.200000
+2573 6000   0.075281
+2573 6004   0.102497
+2573 6006   1.000000
+2573 6008   0.022222
+2573 6010  -1.000000
+2574 4   0.031010
+2574 6011   1.000000
+2574 6013   0.039363
+2574 6017  -0.013107
+2574 6021   0.004754
+2574 6023  -1.000000
+2575 4   0.031010
+2575 6012   1.000000
+2575 6014   0.039363
+2575 6018  -0.013107
+2575 6022   0.004754
+2575 6024  -1.000000
+2576 4   0.128990
+2576 6013   0.078885
+2576 6015   1.000000
+2576 6017   0.058415
+2576 6021  -0.008310
+2576 6023  -1.000000
+2577 4   0.128990
+2577 6014   0.078885
+2577 6016   1.000000
+2577 6018   0.058415
+2577 6022  -0.008310
+2577 6024  -1.000000
+2578 4   0.200000
+2578 6013   0.075281
+2578 6017   0.102497
+2578 6019   1.000000
+2578 6021   0.022222
+2578 6023  -1.000000
+2579 4   0.200000
+2579 6014   0.075281
+2579 6018   0.102497
+2579 6020   1.000000
+2579 6022   0.022222
+2579 6024  -1.000000
+2580 4   0.031010
+2580 6025   1.000000
+2580 6027   0.039363
+2580 6031  -0.013107
+2580 6035   0.004754
+2580 6037  -1.000000
+2581 4   0.031010
+2581 6026   1.000000
+2581 6028   0.039363
+2581 6032  -0.013107
+2581 6036   0.004754
+2581 6038  -1.000000
+2582 4   0.128990
+2582 6027   0.078885
+2582 6029   1.000000
+2582 6031   0.058415
+2582 6035  -0.008310
+2582 6037  -1.000000
+2583 4   0.128990
+2583 6028   0.078885
+2583 6030   1.000000
+2583 6032   0.058415
+2583 6036  -0.008310
+2583 6038  -1.000000
+2584 4   0.200000
+2584 6027   0.075281
+2584 6031   0.102497
+2584 6033   1.000000
+2584 6035   0.022222
+2584 6037  -1.000000
+2585 4   0.200000
+2585 6028   0.075281
+2585 6032   0.102497
+2585 6034   1.000000
+2585 6036   0.022222
+2585 6038  -1.000000
+2586 4   0.031010
+2586 6039   1.000000
+2586 6041   0.039363
+2586 6045  -0.013107
+2586 6049   0.004754
+2586 6051  -1.000000
+2587 4   0.031010
+2587 6040   1.000000
+2587 6042   0.039363
+2587 6046  -0.013107
+2587 6050   0.004754
+2587 6052  -1.000000
+2588 4   0.128990
+2588 6041   0.078885
+2588 6043   1.000000
+2588 6045   0.058415
+2588 6049  -0.008310
+2588 6051  -1.000000
+2589 4   0.128990
+2589 6042   0.078885
+2589 6044   1.000000
+2589 6046   0.058415
+2589 6050  -0.008310
+2589 6052  -1.000000
+2590 4   0.200000
+2590 6041   0.075281
+2590 6045   0.102497
+2590 6047   1.000000
+2590 6049   0.022222
+2590 6051  -1.000000
+2591 4   0.200000
+2591 6042   0.075281
+2591 6046   0.102497
+2591 6048   1.000000
+2591 6050   0.022222
+2591 6052  -1.000000
+2592 4   0.031010
+2592 6053   1.000000
+2592 6055   0.039363
+2592 6059  -0.013107
+2592 6063   0.004754
+2592 6065  -1.000000
+2593 4   0.031010
+2593 6054   1.000000
+2593 6056   0.039363
+2593 6060  -0.013107
+2593 6064   0.004754
+2593 6066  -1.000000
+2594 4   0.128990
+2594 6055   0.078885
+2594 6057   1.000000
+2594 6059   0.058415
+2594 6063  -0.008310
+2594 6065  -1.000000
+2595 4   0.128990
+2595 6056   0.078885
+2595 6058   1.000000
+2595 6060   0.058415
+2595 6064  -0.008310
+2595 6066  -1.000000
+2596 4   0.200000
+2596 6055   0.075281
+2596 6059   0.102497
+2596 6061   1.000000
+2596 6063   0.022222
+2596 6065  -1.000000
+2597 4   0.200000
+2597 6056   0.075281
+2597 6060   0.102497
+2597 6062   1.000000
+2597 6064   0.022222
+2597 6066  -1.000000
+2598 4   0.031010
+2598 6067   1.000000
+2598 6069   0.039363
+2598 6073  -0.013107
+2598 6077   0.004754
+2598 6079  -1.000000
+2599 4   0.031010
+2599 6068   1.000000
+2599 6070   0.039363
+2599 6074  -0.013107
+2599 6078   0.004754
+2599 6080  -1.000000
+2600 4   0.128990
+2600 6069   0.078885
+2600 6071   1.000000
+2600 6073   0.058415
+2600 6077  -0.008310
+2600 6079  -1.000000
+2601 4   0.128990
+2601 6070   0.078885
+2601 6072   1.000000
+2601 6074   0.058415
+2601 6078  -0.008310
+2601 6080  -1.000000
+2602 4   0.200000
+2602 6069   0.075281
+2602 6073   0.102497
+2602 6075   1.000000
+2602 6077   0.022222
+2602 6079  -1.000000
+2603 4   0.200000
+2603 6070   0.075281
+2603 6074   0.102497
+2603 6076   1.000000
+2603 6078   0.022222
+2603 6080  -1.000000
+2604 4   0.031010
+2604 6081   1.000000
+2604 6083   0.039363
+2604 6087  -0.013107
+2604 6091   0.004754
+2604 6093  -1.000000
+2605 4   0.031010
+2605 6082   1.000000
+2605 6084   0.039363
+2605 6088  -0.013107
+2605 6092   0.004754
+2605 6094  -1.000000
+2606 4   0.128990
+2606 6083   0.078885
+2606 6085   1.000000
+2606 6087   0.058415
+2606 6091  -0.008310
+2606 6093  -1.000000
+2607 4   0.128990
+2607 6084   0.078885
+2607 6086   1.000000
+2607 6088   0.058415
+2607 6092  -0.008310
+2607 6094  -1.000000
+2608 4   0.200000
+2608 6083   0.075281
+2608 6087   0.102497
+2608 6089   1.000000
+2608 6091   0.022222
+2608 6093  -1.000000
+2609 4   0.200000
+2609 6084   0.075281
+2609 6088   0.102497
+2609 6090   1.000000
+2609 6092   0.022222
+2609 6094  -1.000000
+2610 4   0.031010
+2610 6095   1.000000
+2610 6097   0.039363
+2610 6101  -0.013107
+2610 6105   0.004754
+2610 6107  -1.000000
+2611 4   0.031010
+2611 6096   1.000000
+2611 6098   0.039363
+2611 6102  -0.013107
+2611 6106   0.004754
+2611 6108  -1.000000
+2612 4   0.128990
+2612 6097   0.078885
+2612 6099   1.000000
+2612 6101   0.058415
+2612 6105  -0.008310
+2612 6107  -1.000000
+2613 4   0.128990
+2613 6098   0.078885
+2613 6100   1.000000
+2613 6102   0.058415
+2613 6106  -0.008310
+2613 6108  -1.000000
+2614 4   0.200000
+2614 6097   0.075281
+2614 6101   0.102497
+2614 6103   1.000000
+2614 6105   0.022222
+2614 6107  -1.000000
+2615 4   0.200000
+2615 6098   0.075281
+2615 6102   0.102497
+2615 6104   1.000000
+2615 6106   0.022222
+2615 6108  -1.000000
+2616 4   0.031010
+2616 6109   1.000000
+2616 6111   0.039363
+2616 6115  -0.013107
+2616 6119   0.004754
+2616 6121  -1.000000
+2617 4   0.031010
+2617 6110   1.000000
+2617 6112   0.039363
+2617 6116  -0.013107
+2617 6120   0.004754
+2617 6122  -1.000000
+2618 4   0.128990
+2618 6111   0.078885
+2618 6113   1.000000
+2618 6115   0.058415
+2618 6119  -0.008310
+2618 6121  -1.000000
+2619 4   0.128990
+2619 6112   0.078885
+2619 6114   1.000000
+2619 6116   0.058415
+2619 6120  -0.008310
+2619 6122  -1.000000
+2620 4   0.200000
+2620 6111   0.075281
+2620 6115   0.102497
+2620 6117   1.000000
+2620 6119   0.022222
+2620 6121  -1.000000
+2621 4   0.200000
+2621 6112   0.075281
+2621 6116   0.102497
+2621 6118   1.000000
+2621 6120   0.022222
+2621 6122  -1.000000
+2622 4   0.031010
+2622 6123   1.000000
+2622 6125   0.039363
+2622 6129  -0.013107
+2622 6133   0.004754
+2622 6135  -1.000000
+2623 4   0.031010
+2623 6124   1.000000
+2623 6126   0.039363
+2623 6130  -0.013107
+2623 6134   0.004754
+2623 6136  -1.000000
+2624 4   0.128990
+2624 6125   0.078885
+2624 6127   1.000000
+2624 6129   0.058415
+2624 6133  -0.008310
+2624 6135  -1.000000
+2625 4   0.128990
+2625 6126   0.078885
+2625 6128   1.000000
+2625 6130   0.058415
+2625 6134  -0.008310
+2625 6136  -1.000000
+2626 4   0.200000
+2626 6125   0.075281
+2626 6129   0.102497
+2626 6131   1.000000
+2626 6133   0.022222
+2626 6135  -1.000000
+2627 4   0.200000
+2627 6126   0.075281
+2627 6130   0.102497
+2627 6132   1.000000
+2627 6134   0.022222
+2627 6136  -1.000000
+2628 4   0.031010
+2628 6137   1.000000
+2628 6139   0.039363
+2628 6143  -0.013107
+2628 6147   0.004754
+2628 6149  -1.000000
+2629 4   0.031010
+2629 6138   1.000000
+2629 6140   0.039363
+2629 6144  -0.013107
+2629 6148   0.004754
+2629 6150  -1.000000
+2630 4   0.128990
+2630 6139   0.078885
+2630 6141   1.000000
+2630 6143   0.058415
+2630 6147  -0.008310
+2630 6149  -1.000000
+2631 4   0.128990
+2631 6140   0.078885
+2631 6142   1.000000
+2631 6144   0.058415
+2631 6148  -0.008310
+2631 6150  -1.000000
+2632 4   0.200000
+2632 6139   0.075281
+2632 6143   0.102497
+2632 6145   1.000000
+2632 6147   0.022222
+2632 6149  -1.000000
+2633 4   0.200000
+2633 6140   0.075281
+2633 6144   0.102497
+2633 6146   1.000000
+2633 6148   0.022222
+2633 6150  -1.000000
+2634 4   0.031010
+2634 6151   1.000000
+2634 6153   0.039363
+2634 6157  -0.013107
+2634 6161   0.004754
+2634 6163  -1.000000
+2635 4   0.031010
+2635 6152   1.000000
+2635 6154   0.039363
+2635 6158  -0.013107
+2635 6162   0.004754
+2635 6164  -1.000000
+2636 4   0.128990
+2636 6153   0.078885
+2636 6155   1.000000
+2636 6157   0.058415
+2636 6161  -0.008310
+2636 6163  -1.000000
+2637 4   0.128990
+2637 6154   0.078885
+2637 6156   1.000000
+2637 6158   0.058415
+2637 6162  -0.008310
+2637 6164  -1.000000
+2638 4   0.200000
+2638 6153   0.075281
+2638 6157   0.102497
+2638 6159   1.000000
+2638 6161   0.022222
+2638 6163  -1.000000
+2639 4   0.200000
+2639 6154   0.075281
+2639 6158   0.102497
+2639 6160   1.000000
+2639 6162   0.022222
+2639 6164  -1.000000
+2640 4   0.031010
+2640 6165   1.000000
+2640 6167   0.039363
+2640 6171  -0.013107
+2640 6175   0.004754
+2640 6177  -1.000000
+2641 4   0.031010
+2641 6166   1.000000
+2641 6168   0.039363
+2641 6172  -0.013107
+2641 6176   0.004754
+2641 6178  -1.000000
+2642 4   0.128990
+2642 6167   0.078885
+2642 6169   1.000000
+2642 6171   0.058415
+2642 6175  -0.008310
+2642 6177  -1.000000
+2643 4   0.128990
+2643 6168   0.078885
+2643 6170   1.000000
+2643 6172   0.058415
+2643 6176  -0.008310
+2643 6178  -1.000000
+2644 4   0.200000
+2644 6167   0.075281
+2644 6171   0.102497
+2644 6173   1.000000
+2644 6175   0.022222
+2644 6177  -1.000000
+2645 4   0.200000
+2645 6168   0.075281
+2645 6172   0.102497
+2645 6174   1.000000
+2645 6176   0.022222
+2645 6178  -1.000000
+2646 4   0.031010
+2646 6179   1.000000
+2646 6181   0.039363
+2646 6185  -0.013107
+2646 6189   0.004754
+2646 6191  -1.000000
+2647 4   0.031010
+2647 6180   1.000000
+2647 6182   0.039363
+2647 6186  -0.013107
+2647 6190   0.004754
+2647 6192  -1.000000
+2648 4   0.128990
+2648 6181   0.078885
+2648 6183   1.000000
+2648 6185   0.058415
+2648 6189  -0.008310
+2648 6191  -1.000000
+2649 4   0.128990
+2649 6182   0.078885
+2649 6184   1.000000
+2649 6186   0.058415
+2649 6190  -0.008310
+2649 6192  -1.000000
+2650 4   0.200000
+2650 6181   0.075281
+2650 6185   0.102497
+2650 6187   1.000000
+2650 6189   0.022222
+2650 6191  -1.000000
+2651 4   0.200000
+2651 6182   0.075281
+2651 6186   0.102497
+2651 6188   1.000000
+2651 6190   0.022222
+2651 6192  -1.000000
+2652 4   0.031010
+2652 6193   1.000000
+2652 6195   0.039363
+2652 6199  -0.013107
+2652 6203   0.004754
+2652 6205  -1.000000
+2653 4   0.031010
+2653 6194   1.000000
+2653 6196   0.039363
+2653 6200  -0.013107
+2653 6204   0.004754
+2653 6206  -1.000000
+2654 4   0.128990
+2654 6195   0.078885
+2654 6197   1.000000
+2654 6199   0.058415
+2654 6203  -0.008310
+2654 6205  -1.000000
+2655 4   0.128990
+2655 6196   0.078885
+2655 6198   1.000000
+2655 6200   0.058415
+2655 6204  -0.008310
+2655 6206  -1.000000
+2656 4   0.200000
+2656 6195   0.075281
+2656 6199   0.102497
+2656 6201   1.000000
+2656 6203   0.022222
+2656 6205  -1.000000
+2657 4   0.200000
+2657 6196   0.075281
+2657 6200   0.102497
+2657 6202   1.000000
+2657 6204   0.022222
+2657 6206  -1.000000
+2658 4   0.031010
+2658 6207   1.000000
+2658 6209   0.039363
+2658 6213  -0.013107
+2658 6217   0.004754
+2658 6219  -1.000000
+2659 4   0.031010
+2659 6208   1.000000
+2659 6210   0.039363
+2659 6214  -0.013107
+2659 6218   0.004754
+2659 6220  -1.000000
+2660 4   0.128990
+2660 6209   0.078885
+2660 6211   1.000000
+2660 6213   0.058415
+2660 6217  -0.008310
+2660 6219  -1.000000
+2661 4   0.128990
+2661 6210   0.078885
+2661 6212   1.000000
+2661 6214   0.058415
+2661 6218  -0.008310
+2661 6220  -1.000000
+2662 4   0.200000
+2662 6209   0.075281
+2662 6213   0.102497
+2662 6215   1.000000
+2662 6217   0.022222
+2662 6219  -1.000000
+2663 4   0.200000
+2663 6210   0.075281
+2663 6214   0.102497
+2663 6216   1.000000
+2663 6218   0.022222
+2663 6220  -1.000000
+2664 4   0.031010
+2664 6221   1.000000
+2664 6223   0.039363
+2664 6227  -0.013107
+2664 6231   0.004754
+2664 6233  -1.000000
+2665 4   0.031010
+2665 6222   1.000000
+2665 6224   0.039363
+2665 6228  -0.013107
+2665 6232   0.004754
+2665 6234  -1.000000
+2666 4   0.128990
+2666 6223   0.078885
+2666 6225   1.000000
+2666 6227   0.058415
+2666 6231  -0.008310
+2666 6233  -1.000000
+2667 4   0.128990
+2667 6224   0.078885
+2667 6226   1.000000
+2667 6228   0.058415
+2667 6232  -0.008310
+2667 6234  -1.000000
+2668 4   0.200000
+2668 6223   0.075281
+2668 6227   0.102497
+2668 6229   1.000000
+2668 6231   0.022222
+2668 6233  -1.000000
+2669 4   0.200000
+2669 6224   0.075281
+2669 6228   0.102497
+2669 6230   1.000000
+2669 6232   0.022222
+2669 6234  -1.000000
+2670 4   0.031010
+2670 6235   1.000000
+2670 6237   0.039363
+2670 6241  -0.013107
+2670 6245   0.004754
+2670 6247  -1.000000
+2671 4   0.031010
+2671 6236   1.000000
+2671 6238   0.039363
+2671 6242  -0.013107
+2671 6246   0.004754
+2671 6248  -1.000000
+2672 4   0.128990
+2672 6237   0.078885
+2672 6239   1.000000
+2672 6241   0.058415
+2672 6245  -0.008310
+2672 6247  -1.000000
+2673 4   0.128990
+2673 6238   0.078885
+2673 6240   1.000000
+2673 6242   0.058415
+2673 6246  -0.008310
+2673 6248  -1.000000
+2674 4   0.200000
+2674 6237   0.075281
+2674 6241   0.102497
+2674 6243   1.000000
+2674 6245   0.022222
+2674 6247  -1.000000
+2675 4   0.200000
+2675 6238   0.075281
+2675 6242   0.102497
+2675 6244   1.000000
+2675 6246   0.022222
+2675 6248  -1.000000
+2676 4   0.031010
+2676 6249   1.000000
+2676 6251   0.039363
+2676 6255  -0.013107
+2676 6259   0.004754
+2676 6261  -1.000000
+2677 4   0.031010
+2677 6250   1.000000
+2677 6252   0.039363
+2677 6256  -0.013107
+2677 6260   0.004754
+2677 6262  -1.000000
+2678 4   0.128990
+2678 6251   0.078885
+2678 6253   1.000000
+2678 6255   0.058415
+2678 6259  -0.008310
+2678 6261  -1.000000
+2679 4   0.128990
+2679 6252   0.078885
+2679 6254   1.000000
+2679 6256   0.058415
+2679 6260  -0.008310
+2679 6262  -1.000000
+2680 4   0.200000
+2680 6251   0.075281
+2680 6255   0.102497
+2680 6257   1.000000
+2680 6259   0.022222
+2680 6261  -1.000000
+2681 4   0.200000
+2681 6252   0.075281
+2681 6256   0.102497
+2681 6258   1.000000
+2681 6260   0.022222
+2681 6262  -1.000000
+2682 4   0.031010
+2682 6263   1.000000
+2682 6265   0.039363
+2682 6269  -0.013107
+2682 6273   0.004754
+2682 6275  -1.000000
+2683 4   0.031010
+2683 6264   1.000000
+2683 6266   0.039363
+2683 6270  -0.013107
+2683 6274   0.004754
+2683 6276  -1.000000
+2684 4   0.128990
+2684 6265   0.078885
+2684 6267   1.000000
+2684 6269   0.058415
+2684 6273  -0.008310
+2684 6275  -1.000000
+2685 4   0.128990
+2685 6266   0.078885
+2685 6268   1.000000
+2685 6270   0.058415
+2685 6274  -0.008310
+2685 6276  -1.000000
+2686 4   0.200000
+2686 6265   0.075281
+2686 6269   0.102497
+2686 6271   1.000000
+2686 6273   0.022222
+2686 6275  -1.000000
+2687 4   0.200000
+2687 6266   0.075281
+2687 6270   0.102497
+2687 6272   1.000000
+2687 6274   0.022222
+2687 6276  -1.000000
+2688 4   0.031010
+2688 6277   1.000000
+2688 6279   0.039363
+2688 6283  -0.013107
+2688 6287   0.004754
+2688 6289  -1.000000
+2689 4   0.031010
+2689 6278   1.000000
+2689 6280   0.039363
+2689 6284  -0.013107
+2689 6288   0.004754
+2689 6290  -1.000000
+2690 4   0.128990
+2690 6279   0.078885
+2690 6281   1.000000
+2690 6283   0.058415
+2690 6287  -0.008310
+2690 6289  -1.000000
+2691 4   0.128990
+2691 6280   0.078885
+2691 6282   1.000000
+2691 6284   0.058415
+2691 6288  -0.008310
+2691 6290  -1.000000
+2692 4   0.200000
+2692 6279   0.075281
+2692 6283   0.102497
+2692 6285   1.000000
+2692 6287   0.022222
+2692 6289  -1.000000
+2693 4   0.200000
+2693 6280   0.075281
+2693 6284   0.102497
+2693 6286   1.000000
+2693 6288   0.022222
+2693 6290  -1.000000
+2694 4   0.031010
+2694 6291   1.000000
+2694 6293   0.039363
+2694 6297  -0.013107
+2694 6301   0.004754
+2694 6303  -1.000000
+2695 4   0.031010
+2695 6292   1.000000
+2695 6294   0.039363
+2695 6298  -0.013107
+2695 6302   0.004754
+2695 6304  -1.000000
+2696 4   0.128990
+2696 6293   0.078885
+2696 6295   1.000000
+2696 6297   0.058415
+2696 6301  -0.008310
+2696 6303  -1.000000
+2697 4   0.128990
+2697 6294   0.078885
+2697 6296   1.000000
+2697 6298   0.058415
+2697 6302  -0.008310
+2697 6304  -1.000000
+2698 4   0.200000
+2698 6293   0.075281
+2698 6297   0.102497
+2698 6299   1.000000
+2698 6301   0.022222
+2698 6303  -1.000000
+2699 4   0.200000
+2699 6294   0.075281
+2699 6298   0.102497
+2699 6300   1.000000
+2699 6302   0.022222
+2699 6304  -1.000000
+2700 4   0.031010
+2700 6305   1.000000
+2700 6307   0.039363
+2700 6311  -0.013107
+2700 6315   0.004754
+2700 6317  -1.000000
+2701 4   0.031010
+2701 6306   1.000000
+2701 6308   0.039363
+2701 6312  -0.013107
+2701 6316   0.004754
+2701 6318  -1.000000
+2702 4   0.128990
+2702 6307   0.078885
+2702 6309   1.000000
+2702 6311   0.058415
+2702 6315  -0.008310
+2702 6317  -1.000000
+2703 4   0.128990
+2703 6308   0.078885
+2703 6310   1.000000
+2703 6312   0.058415
+2703 6316  -0.008310
+2703 6318  -1.000000
+2704 4   0.200000
+2704 6307   0.075281
+2704 6311   0.102497
+2704 6313   1.000000
+2704 6315   0.022222
+2704 6317  -1.000000
+2705 4   0.200000
+2705 6308   0.075281
+2705 6312   0.102497
+2705 6314   1.000000
+2705 6316   0.022222
+2705 6318  -1.000000
+2706 4   0.031010
+2706 6319   1.000000
+2706 6321   0.039363
+2706 6325  -0.013107
+2706 6329   0.004754
+2706 6331  -1.000000
+2707 4   0.031010
+2707 6320   1.000000
+2707 6322   0.039363
+2707 6326  -0.013107
+2707 6330   0.004754
+2707 6332  -1.000000
+2708 4   0.128990
+2708 6321   0.078885
+2708 6323   1.000000
+2708 6325   0.058415
+2708 6329  -0.008310
+2708 6331  -1.000000
+2709 4   0.128990
+2709 6322   0.078885
+2709 6324   1.000000
+2709 6326   0.058415
+2709 6330  -0.008310
+2709 6332  -1.000000
+2710 4   0.200000
+2710 6321   0.075281
+2710 6325   0.102497
+2710 6327   1.000000
+2710 6329   0.022222
+2710 6331  -1.000000
+2711 4   0.200000
+2711 6322   0.075281
+2711 6326   0.102497
+2711 6328   1.000000
+2711 6330   0.022222
+2711 6332  -1.000000
+2712 4   0.031010
+2712 6333   1.000000
+2712 6335   0.039363
+2712 6339  -0.013107
+2712 6343   0.004754
+2712 6345  -1.000000
+2713 4   0.031010
+2713 6334   1.000000
+2713 6336   0.039363
+2713 6340  -0.013107
+2713 6344   0.004754
+2713 6346  -1.000000
+2714 4   0.128990
+2714 6335   0.078885
+2714 6337   1.000000
+2714 6339   0.058415
+2714 6343  -0.008310
+2714 6345  -1.000000
+2715 4   0.128990
+2715 6336   0.078885
+2715 6338   1.000000
+2715 6340   0.058415
+2715 6344  -0.008310
+2715 6346  -1.000000
+2716 4   0.200000
+2716 6335   0.075281
+2716 6339   0.102497
+2716 6341   1.000000
+2716 6343   0.022222
+2716 6345  -1.000000
+2717 4   0.200000
+2717 6336   0.075281
+2717 6340   0.102497
+2717 6342   1.000000
+2717 6344   0.022222
+2717 6346  -1.000000
+2718 4   0.031010
+2718 6347   1.000000
+2718 6349   0.039363
+2718 6353  -0.013107
+2718 6357   0.004754
+2718 6359  -1.000000
+2719 4   0.031010
+2719 6348   1.000000
+2719 6350   0.039363
+2719 6354  -0.013107
+2719 6358   0.004754
+2719 6360  -1.000000
+2720 4   0.128990
+2720 6349   0.078885
+2720 6351   1.000000
+2720 6353   0.058415
+2720 6357  -0.008310
+2720 6359  -1.000000
+2721 4   0.128990
+2721 6350   0.078885
+2721 6352   1.000000
+2721 6354   0.058415
+2721 6358  -0.008310
+2721 6360  -1.000000
+2722 4   0.200000
+2722 6349   0.075281
+2722 6353   0.102497
+2722 6355   1.000000
+2722 6357   0.022222
+2722 6359  -1.000000
+2723 4   0.200000
+2723 6350   0.075281
+2723 6354   0.102497
+2723 6356   1.000000
+2723 6358   0.022222
+2723 6360  -1.000000
+2724 4   0.031010
+2724 6361   1.000000
+2724 6363   0.039363
+2724 6367  -0.013107
+2724 6371   0.004754
+2724 6373  -1.000000
+2725 4   0.031010
+2725 6362   1.000000
+2725 6364   0.039363
+2725 6368  -0.013107
+2725 6372   0.004754
+2725 6374  -1.000000
+2726 4   0.128990
+2726 6363   0.078885
+2726 6365   1.000000
+2726 6367   0.058415
+2726 6371  -0.008310
+2726 6373  -1.000000
+2727 4   0.128990
+2727 6364   0.078885
+2727 6366   1.000000
+2727 6368   0.058415
+2727 6372  -0.008310
+2727 6374  -1.000000
+2728 4   0.200000
+2728 6363   0.075281
+2728 6367   0.102497
+2728 6369   1.000000
+2728 6371   0.022222
+2728 6373  -1.000000
+2729 4   0.200000
+2729 6364   0.075281
+2729 6368   0.102497
+2729 6370   1.000000
+2729 6372   0.022222
+2729 6374  -1.000000
+2730 4   0.031010
+2730 6375   1.000000
+2730 6377   0.039363
+2730 6381  -0.013107
+2730 6385   0.004754
+2730 6387  -1.000000
+2731 4   0.031010
+2731 6376   1.000000
+2731 6378   0.039363
+2731 6382  -0.013107
+2731 6386   0.004754
+2731 6388  -1.000000
+2732 4   0.128990
+2732 6377   0.078885
+2732 6379   1.000000
+2732 6381   0.058415
+2732 6385  -0.008310
+2732 6387  -1.000000
+2733 4   0.128990
+2733 6378   0.078885
+2733 6380   1.000000
+2733 6382   0.058415
+2733 6386  -0.008310
+2733 6388  -1.000000
+2734 4   0.200000
+2734 6377   0.075281
+2734 6381   0.102497
+2734 6383   1.000000
+2734 6385   0.022222
+2734 6387  -1.000000
+2735 4   0.200000
+2735 6378   0.075281
+2735 6382   0.102497
+2735 6384   1.000000
+2735 6386   0.022222
+2735 6388  -1.000000
+2736 4   0.031010
+2736 6389   1.000000
+2736 6391   0.039363
+2736 6395  -0.013107
+2736 6399   0.004754
+2736 6401  -1.000000
+2737 4   0.031010
+2737 6390   1.000000
+2737 6392   0.039363
+2737 6396  -0.013107
+2737 6400   0.004754
+2737 6402  -1.000000
+2738 4   0.128990
+2738 6391   0.078885
+2738 6393   1.000000
+2738 6395   0.058415
+2738 6399  -0.008310
+2738 6401  -1.000000
+2739 4   0.128990
+2739 6392   0.078885
+2739 6394   1.000000
+2739 6396   0.058415
+2739 6400  -0.008310
+2739 6402  -1.000000
+2740 4   0.200000
+2740 6391   0.075281
+2740 6395   0.102497
+2740 6397   1.000000
+2740 6399   0.022222
+2740 6401  -1.000000
+2741 4   0.200000
+2741 6392   0.075281
+2741 6396   0.102497
+2741 6398   1.000000
+2741 6400   0.022222
+2741 6402  -1.000000
+2742 4   0.031010
+2742 6403   1.000000
+2742 6405   0.039363
+2742 6409  -0.013107
+2742 6413   0.004754
+2742 6415  -1.000000
+2743 4   0.031010
+2743 6404   1.000000
+2743 6406   0.039363
+2743 6410  -0.013107
+2743 6414   0.004754
+2743 6416  -1.000000
+2744 4   0.128990
+2744 6405   0.078885
+2744 6407   1.000000
+2744 6409   0.058415
+2744 6413  -0.008310
+2744 6415  -1.000000
+2745 4   0.128990
+2745 6406   0.078885
+2745 6408   1.000000
+2745 6410   0.058415
+2745 6414  -0.008310
+2745 6416  -1.000000
+2746 4   0.200000
+2746 6405   0.075281
+2746 6409   0.102497
+2746 6411   1.000000
+2746 6413   0.022222
+2746 6415  -1.000000
+2747 4   0.200000
+2747 6406   0.075281
+2747 6410   0.102497
+2747 6412   1.000000
+2747 6414   0.022222
+2747 6416  -1.000000
+2748 4   0.031010
+2748 6417   1.000000
+2748 6419   0.039363
+2748 6423  -0.013107
+2748 6427   0.004754
+2748 6429  -1.000000
+2749 4   0.031010
+2749 6418   1.000000
+2749 6420   0.039363
+2749 6424  -0.013107
+2749 6428   0.004754
+2749 6430  -1.000000
+2750 4   0.128990
+2750 6419   0.078885
+2750 6421   1.000000
+2750 6423   0.058415
+2750 6427  -0.008310
+2750 6429  -1.000000
+2751 4   0.128990
+2751 6420   0.078885
+2751 6422   1.000000
+2751 6424   0.058415
+2751 6428  -0.008310
+2751 6430  -1.000000
+2752 4   0.200000
+2752 6419   0.075281
+2752 6423   0.102497
+2752 6425   1.000000
+2752 6427   0.022222
+2752 6429  -1.000000
+2753 4   0.200000
+2753 6420   0.075281
+2753 6424   0.102497
+2753 6426   1.000000
+2753 6428   0.022222
+2753 6430  -1.000000
+2754 4   0.031010
+2754 6431   1.000000
+2754 6433   0.039363
+2754 6437  -0.013107
+2754 6441   0.004754
+2754 6443  -1.000000
+2755 4   0.031010
+2755 6432   1.000000
+2755 6434   0.039363
+2755 6438  -0.013107
+2755 6442   0.004754
+2755 6444  -1.000000
+2756 4   0.128990
+2756 6433   0.078885
+2756 6435   1.000000
+2756 6437   0.058415
+2756 6441  -0.008310
+2756 6443  -1.000000
+2757 4   0.128990
+2757 6434   0.078885
+2757 6436   1.000000
+2757 6438   0.058415
+2757 6442  -0.008310
+2757 6444  -1.000000
+2758 4   0.200000
+2758 6433   0.075281
+2758 6437   0.102497
+2758 6439   1.000000
+2758 6441   0.022222
+2758 6443  -1.000000
+2759 4   0.200000
+2759 6434   0.075281
+2759 6438   0.102497
+2759 6440   1.000000
+2759 6442   0.022222
+2759 6444  -1.000000
+2760 4   0.031010
+2760 6445   1.000000
+2760 6447   0.039363
+2760 6451  -0.013107
+2760 6455   0.004754
+2760 6457  -1.000000
+2761 4   0.031010
+2761 6446   1.000000
+2761 6448   0.039363
+2761 6452  -0.013107
+2761 6456   0.004754
+2761 6458  -1.000000
+2762 4   0.128990
+2762 6447   0.078885
+2762 6449   1.000000
+2762 6451   0.058415
+2762 6455  -0.008310
+2762 6457  -1.000000
+2763 4   0.128990
+2763 6448   0.078885
+2763 6450   1.000000
+2763 6452   0.058415
+2763 6456  -0.008310
+2763 6458  -1.000000
+2764 4   0.200000
+2764 6447   0.075281
+2764 6451   0.102497
+2764 6453   1.000000
+2764 6455   0.022222
+2764 6457  -1.000000
+2765 4   0.200000
+2765 6448   0.075281
+2765 6452   0.102497
+2765 6454   1.000000
+2765 6456   0.022222
+2765 6458  -1.000000
+2766 4   0.031010
+2766 6459   1.000000
+2766 6461   0.039363
+2766 6465  -0.013107
+2766 6469   0.004754
+2766 6471  -1.000000
+2767 4   0.031010
+2767 6460   1.000000
+2767 6462   0.039363
+2767 6466  -0.013107
+2767 6470   0.004754
+2767 6472  -1.000000
+2768 4   0.128990
+2768 6461   0.078885
+2768 6463   1.000000
+2768 6465   0.058415
+2768 6469  -0.008310
+2768 6471  -1.000000
+2769 4   0.128990
+2769 6462   0.078885
+2769 6464   1.000000
+2769 6466   0.058415
+2769 6470  -0.008310
+2769 6472  -1.000000
+2770 4   0.200000
+2770 6461   0.075281
+2770 6465   0.102497
+2770 6467   1.000000
+2770 6469   0.022222
+2770 6471  -1.000000
+2771 4   0.200000
+2771 6462   0.075281
+2771 6466   0.102497
+2771 6468   1.000000
+2771 6470   0.022222
+2771 6472  -1.000000
+2772 4   0.031010
+2772 6473   1.000000
+2772 6475   0.039363
+2772 6479  -0.013107
+2772 6483   0.004754
+2772 6485  -1.000000
+2773 4   0.031010
+2773 6474   1.000000
+2773 6476   0.039363
+2773 6480  -0.013107
+2773 6484   0.004754
+2773 6486  -1.000000
+2774 4   0.128990
+2774 6475   0.078885
+2774 6477   1.000000
+2774 6479   0.058415
+2774 6483  -0.008310
+2774 6485  -1.000000
+2775 4   0.128990
+2775 6476   0.078885
+2775 6478   1.000000
+2775 6480   0.058415
+2775 6484  -0.008310
+2775 6486  -1.000000
+2776 4   0.200000
+2776 6475   0.075281
+2776 6479   0.102497
+2776 6481   1.000000
+2776 6483   0.022222
+2776 6485  -1.000000
+2777 4   0.200000
+2777 6476   0.075281
+2777 6480   0.102497
+2777 6482   1.000000
+2777 6484   0.022222
+2777 6486  -1.000000
+2778 4   0.031010
+2778 6487   1.000000
+2778 6489   0.039363
+2778 6493  -0.013107
+2778 6497   0.004754
+2778 6499  -1.000000
+2779 4   0.031010
+2779 6488   1.000000
+2779 6490   0.039363
+2779 6494  -0.013107
+2779 6498   0.004754
+2779 6500  -1.000000
+2780 4   0.128990
+2780 6489   0.078885
+2780 6491   1.000000
+2780 6493   0.058415
+2780 6497  -0.008310
+2780 6499  -1.000000
+2781 4   0.128990
+2781 6490   0.078885
+2781 6492   1.000000
+2781 6494   0.058415
+2781 6498  -0.008310
+2781 6500  -1.000000
+2782 4   0.200000
+2782 6489   0.075281
+2782 6493   0.102497
+2782 6495   1.000000
+2782 6497   0.022222
+2782 6499  -1.000000
+2783 4   0.200000
+2783 6490   0.075281
+2783 6494   0.102497
+2783 6496   1.000000
+2783 6498   0.022222
+2783 6500  -1.000000
+2784 4   0.031010
+2784 6501   1.000000
+2784 6503   0.039363
+2784 6507  -0.013107
+2784 6511   0.004754
+2784 6513  -1.000000
+2785 4   0.031010
+2785 6502   1.000000
+2785 6504   0.039363
+2785 6508  -0.013107
+2785 6512   0.004754
+2785 6514  -1.000000
+2786 4   0.128990
+2786 6503   0.078885
+2786 6505   1.000000
+2786 6507   0.058415
+2786 6511  -0.008310
+2786 6513  -1.000000
+2787 4   0.128990
+2787 6504   0.078885
+2787 6506   1.000000
+2787 6508   0.058415
+2787 6512  -0.008310
+2787 6514  -1.000000
+2788 4   0.200000
+2788 6503   0.075281
+2788 6507   0.102497
+2788 6509   1.000000
+2788 6511   0.022222
+2788 6513  -1.000000
+2789 4   0.200000
+2789 6504   0.075281
+2789 6508   0.102497
+2789 6510   1.000000
+2789 6512   0.022222
+2789 6514  -1.000000
+2790 4   0.031010
+2790 6515   1.000000
+2790 6517   0.039363
+2790 6521  -0.013107
+2790 6525   0.004754
+2790 6527  -1.000000
+2791 4   0.031010
+2791 6516   1.000000
+2791 6518   0.039363
+2791 6522  -0.013107
+2791 6526   0.004754
+2791 6528  -1.000000
+2792 4   0.128990
+2792 6517   0.078885
+2792 6519   1.000000
+2792 6521   0.058415
+2792 6525  -0.008310
+2792 6527  -1.000000
+2793 4   0.128990
+2793 6518   0.078885
+2793 6520   1.000000
+2793 6522   0.058415
+2793 6526  -0.008310
+2793 6528  -1.000000
+2794 4   0.200000
+2794 6517   0.075281
+2794 6521   0.102497
+2794 6523   1.000000
+2794 6525   0.022222
+2794 6527  -1.000000
+2795 4   0.200000
+2795 6518   0.075281
+2795 6522   0.102497
+2795 6524   1.000000
+2795 6526   0.022222
+2795 6528  -1.000000
+2796 4   0.031010
+2796 6529   1.000000
+2796 6531   0.039363
+2796 6535  -0.013107
+2796 6539   0.004754
+2796 6541  -1.000000
+2797 4   0.031010
+2797 6530   1.000000
+2797 6532   0.039363
+2797 6536  -0.013107
+2797 6540   0.004754
+2797 6542  -1.000000
+2798 4   0.128990
+2798 6531   0.078885
+2798 6533   1.000000
+2798 6535   0.058415
+2798 6539  -0.008310
+2798 6541  -1.000000
+2799 4   0.128990
+2799 6532   0.078885
+2799 6534   1.000000
+2799 6536   0.058415
+2799 6540  -0.008310
+2799 6542  -1.000000
+2800 4   0.200000
+2800 6531   0.075281
+2800 6535   0.102497
+2800 6537   1.000000
+2800 6539   0.022222
+2800 6541  -1.000000
+2801 4   0.200000
+2801 6532   0.075281
+2801 6536   0.102497
+2801 6538   1.000000
+2801 6540   0.022222
+2801 6542  -1.000000
+2802 4   0.031010
+2802 6543   1.000000
+2802 6545   0.039363
+2802 6549  -0.013107
+2802 6553   0.004754
+2802 6555  -1.000000
+2803 4   0.031010
+2803 6544   1.000000
+2803 6546   0.039363
+2803 6550  -0.013107
+2803 6554   0.004754
+2803 6556  -1.000000
+2804 4   0.128990
+2804 6545   0.078885
+2804 6547   1.000000
+2804 6549   0.058415
+2804 6553  -0.008310
+2804 6555  -1.000000
+2805 4   0.128990
+2805 6546   0.078885
+2805 6548   1.000000
+2805 6550   0.058415
+2805 6554  -0.008310
+2805 6556  -1.000000
+2806 4   0.200000
+2806 6545   0.075281
+2806 6549   0.102497
+2806 6551   1.000000
+2806 6553   0.022222
+2806 6555  -1.000000
+2807 4   0.200000
+2807 6546   0.075281
+2807 6550   0.102497
+2807 6552   1.000000
+2807 6554   0.022222
+2807 6556  -1.000000
+2808 4   0.031010
+2808 6557   1.000000
+2808 6559   0.039363
+2808 6563  -0.013107
+2808 6567   0.004754
+2808 6569  -1.000000
+2809 4   0.031010
+2809 6558   1.000000
+2809 6560   0.039363
+2809 6564  -0.013107
+2809 6568   0.004754
+2809 6570  -1.000000
+2810 4   0.128990
+2810 6559   0.078885
+2810 6561   1.000000
+2810 6563   0.058415
+2810 6567  -0.008310
+2810 6569  -1.000000
+2811 4   0.128990
+2811 6560   0.078885
+2811 6562   1.000000
+2811 6564   0.058415
+2811 6568  -0.008310
+2811 6570  -1.000000
+2812 4   0.200000
+2812 6559   0.075281
+2812 6563   0.102497
+2812 6565   1.000000
+2812 6567   0.022222
+2812 6569  -1.000000
+2813 4   0.200000
+2813 6560   0.075281
+2813 6564   0.102497
+2813 6566   1.000000
+2813 6568   0.022222
+2813 6570  -1.000000
+2814 4   0.031010
+2814 6571   1.000000
+2814 6573   0.039363
+2814 6577  -0.013107
+2814 6581   0.004754
+2814 6583  -1.000000
+2815 4   0.031010
+2815 6572   1.000000
+2815 6574   0.039363
+2815 6578  -0.013107
+2815 6582   0.004754
+2815 6584  -1.000000
+2816 4   0.128990
+2816 6573   0.078885
+2816 6575   1.000000
+2816 6577   0.058415
+2816 6581  -0.008310
+2816 6583  -1.000000
+2817 4   0.128990
+2817 6574   0.078885
+2817 6576   1.000000
+2817 6578   0.058415
+2817 6582  -0.008310
+2817 6584  -1.000000
+2818 4   0.200000
+2818 6573   0.075281
+2818 6577   0.102497
+2818 6579   1.000000
+2818 6581   0.022222
+2818 6583  -1.000000
+2819 4   0.200000
+2819 6574   0.075281
+2819 6578   0.102497
+2819 6580   1.000000
+2819 6582   0.022222
+2819 6584  -1.000000
+2820 4   0.031010
+2820 6585   1.000000
+2820 6587   0.039363
+2820 6591  -0.013107
+2820 6595   0.004754
+2820 6597  -1.000000
+2821 4   0.031010
+2821 6586   1.000000
+2821 6588   0.039363
+2821 6592  -0.013107
+2821 6596   0.004754
+2821 6598  -1.000000
+2822 4   0.128990
+2822 6587   0.078885
+2822 6589   1.000000
+2822 6591   0.058415
+2822 6595  -0.008310
+2822 6597  -1.000000
+2823 4   0.128990
+2823 6588   0.078885
+2823 6590   1.000000
+2823 6592   0.058415
+2823 6596  -0.008310
+2823 6598  -1.000000
+2824 4   0.200000
+2824 6587   0.075281
+2824 6591   0.102497
+2824 6593   1.000000
+2824 6595   0.022222
+2824 6597  -1.000000
+2825 4   0.200000
+2825 6588   0.075281
+2825 6592   0.102497
+2825 6594   1.000000
+2825 6596   0.022222
+2825 6598  -1.000000
+2826 4   0.031010
+2826 6599   1.000000
+2826 6601   0.039363
+2826 6605  -0.013107
+2826 6609   0.004754
+2826 6611  -1.000000
+2827 4   0.031010
+2827 6600   1.000000
+2827 6602   0.039363
+2827 6606  -0.013107
+2827 6610   0.004754
+2827 6612  -1.000000
+2828 4   0.128990
+2828 6601   0.078885
+2828 6603   1.000000
+2828 6605   0.058415
+2828 6609  -0.008310
+2828 6611  -1.000000
+2829 4   0.128990
+2829 6602   0.078885
+2829 6604   1.000000
+2829 6606   0.058415
+2829 6610  -0.008310
+2829 6612  -1.000000
+2830 4   0.200000
+2830 6601   0.075281
+2830 6605   0.102497
+2830 6607   1.000000
+2830 6609   0.022222
+2830 6611  -1.000000
+2831 4   0.200000
+2831 6602   0.075281
+2831 6606   0.102497
+2831 6608   1.000000
+2831 6610   0.022222
+2831 6612  -1.000000
+2832 4   0.031010
+2832 6613   1.000000
+2832 6615   0.039363
+2832 6619  -0.013107
+2832 6623   0.004754
+2832 6625  -1.000000
+2833 4   0.031010
+2833 6614   1.000000
+2833 6616   0.039363
+2833 6620  -0.013107
+2833 6624   0.004754
+2833 6626  -1.000000
+2834 4   0.128990
+2834 6615   0.078885
+2834 6617   1.000000
+2834 6619   0.058415
+2834 6623  -0.008310
+2834 6625  -1.000000
+2835 4   0.128990
+2835 6616   0.078885
+2835 6618   1.000000
+2835 6620   0.058415
+2835 6624  -0.008310
+2835 6626  -1.000000
+2836 4   0.200000
+2836 6615   0.075281
+2836 6619   0.102497
+2836 6621   1.000000
+2836 6623   0.022222
+2836 6625  -1.000000
+2837 4   0.200000
+2837 6616   0.075281
+2837 6620   0.102497
+2837 6622   1.000000
+2837 6624   0.022222
+2837 6626  -1.000000
+2838 4   0.031010
+2838 6627   1.000000
+2838 6629   0.039363
+2838 6633  -0.013107
+2838 6637   0.004754
+2838 6639  -1.000000
+2839 4   0.031010
+2839 6628   1.000000
+2839 6630   0.039363
+2839 6634  -0.013107
+2839 6638   0.004754
+2839 6640  -1.000000
+2840 4   0.128990
+2840 6629   0.078885
+2840 6631   1.000000
+2840 6633   0.058415
+2840 6637  -0.008310
+2840 6639  -1.000000
+2841 4   0.128990
+2841 6630   0.078885
+2841 6632   1.000000
+2841 6634   0.058415
+2841 6638  -0.008310
+2841 6640  -1.000000
+2842 4   0.200000
+2842 6629   0.075281
+2842 6633   0.102497
+2842 6635   1.000000
+2842 6637   0.022222
+2842 6639  -1.000000
+2843 4   0.200000
+2843 6630   0.075281
+2843 6634   0.102497
+2843 6636   1.000000
+2843 6638   0.022222
+2843 6640  -1.000000
+2844 4   0.031010
+2844 6641   1.000000
+2844 6643   0.039363
+2844 6647  -0.013107
+2844 6651   0.004754
+2844 6653  -1.000000
+2845 4   0.031010
+2845 6642   1.000000
+2845 6644   0.039363
+2845 6648  -0.013107
+2845 6652   0.004754
+2845 6654  -1.000000
+2846 4   0.128990
+2846 6643   0.078885
+2846 6645   1.000000
+2846 6647   0.058415
+2846 6651  -0.008310
+2846 6653  -1.000000
+2847 4   0.128990
+2847 6644   0.078885
+2847 6646   1.000000
+2847 6648   0.058415
+2847 6652  -0.008310
+2847 6654  -1.000000
+2848 4   0.200000
+2848 6643   0.075281
+2848 6647   0.102497
+2848 6649   1.000000
+2848 6651   0.022222
+2848 6653  -1.000000
+2849 4   0.200000
+2849 6644   0.075281
+2849 6648   0.102497
+2849 6650   1.000000
+2849 6652   0.022222
+2849 6654  -1.000000
+2850 4   0.031010
+2850 6655   1.000000
+2850 6657   0.039363
+2850 6661  -0.013107
+2850 6665   0.004754
+2850 6667  -1.000000
+2851 4   0.031010
+2851 6656   1.000000
+2851 6658   0.039363
+2851 6662  -0.013107
+2851 6666   0.004754
+2851 6668  -1.000000
+2852 4   0.128990
+2852 6657   0.078885
+2852 6659   1.000000
+2852 6661   0.058415
+2852 6665  -0.008310
+2852 6667  -1.000000
+2853 4   0.128990
+2853 6658   0.078885
+2853 6660   1.000000
+2853 6662   0.058415
+2853 6666  -0.008310
+2853 6668  -1.000000
+2854 4   0.200000
+2854 6657   0.075281
+2854 6661   0.102497
+2854 6663   1.000000
+2854 6665   0.022222
+2854 6667  -1.000000
+2855 4   0.200000
+2855 6658   0.075281
+2855 6662   0.102497
+2855 6664   1.000000
+2855 6666   0.022222
+2855 6668  -1.000000
+2856 4   0.031010
+2856 6669   1.000000
+2856 6671   0.039363
+2856 6675  -0.013107
+2856 6679   0.004754
+2856 6681  -1.000000
+2857 4   0.031010
+2857 6670   1.000000
+2857 6672   0.039363
+2857 6676  -0.013107
+2857 6680   0.004754
+2857 6682  -1.000000
+2858 4   0.128990
+2858 6671   0.078885
+2858 6673   1.000000
+2858 6675   0.058415
+2858 6679  -0.008310
+2858 6681  -1.000000
+2859 4   0.128990
+2859 6672   0.078885
+2859 6674   1.000000
+2859 6676   0.058415
+2859 6680  -0.008310
+2859 6682  -1.000000
+2860 4   0.200000
+2860 6671   0.075281
+2860 6675   0.102497
+2860 6677   1.000000
+2860 6679   0.022222
+2860 6681  -1.000000
+2861 4   0.200000
+2861 6672   0.075281
+2861 6676   0.102497
+2861 6678   1.000000
+2861 6680   0.022222
+2861 6682  -1.000000
+2862 4   0.031010
+2862 6683   1.000000
+2862 6685   0.039363
+2862 6689  -0.013107
+2862 6693   0.004754
+2862 6695  -1.000000
+2863 4   0.031010
+2863 6684   1.000000
+2863 6686   0.039363
+2863 6690  -0.013107
+2863 6694   0.004754
+2863 6696  -1.000000
+2864 4   0.128990
+2864 6685   0.078885
+2864 6687   1.000000
+2864 6689   0.058415
+2864 6693  -0.008310
+2864 6695  -1.000000
+2865 4   0.128990
+2865 6686   0.078885
+2865 6688   1.000000
+2865 6690   0.058415
+2865 6694  -0.008310
+2865 6696  -1.000000
+2866 4   0.200000
+2866 6685   0.075281
+2866 6689   0.102497
+2866 6691   1.000000
+2866 6693   0.022222
+2866 6695  -1.000000
+2867 4   0.200000
+2867 6686   0.075281
+2867 6690   0.102497
+2867 6692   1.000000
+2867 6694   0.022222
+2867 6696  -1.000000
+2868 4   0.031010
+2868 6697   1.000000
+2868 6699   0.039363
+2868 6703  -0.013107
+2868 6707   0.004754
+2868 6709  -1.000000
+2869 4   0.031010
+2869 6698   1.000000
+2869 6700   0.039363
+2869 6704  -0.013107
+2869 6708   0.004754
+2869 6710  -1.000000
+2870 4   0.128990
+2870 6699   0.078885
+2870 6701   1.000000
+2870 6703   0.058415
+2870 6707  -0.008310
+2870 6709  -1.000000
+2871 4   0.128990
+2871 6700   0.078885
+2871 6702   1.000000
+2871 6704   0.058415
+2871 6708  -0.008310
+2871 6710  -1.000000
+2872 4   0.200000
+2872 6699   0.075281
+2872 6703   0.102497
+2872 6705   1.000000
+2872 6707   0.022222
+2872 6709  -1.000000
+2873 4   0.200000
+2873 6700   0.075281
+2873 6704   0.102497
+2873 6706   1.000000
+2873 6708   0.022222
+2873 6710  -1.000000
+2874 4   0.031010
+2874 6711   1.000000
+2874 6713   0.039363
+2874 6717  -0.013107
+2874 6721   0.004754
+2874 6723  -1.000000
+2875 4   0.031010
+2875 6712   1.000000
+2875 6714   0.039363
+2875 6718  -0.013107
+2875 6722   0.004754
+2875 6724  -1.000000
+2876 4   0.128990
+2876 6713   0.078885
+2876 6715   1.000000
+2876 6717   0.058415
+2876 6721  -0.008310
+2876 6723  -1.000000
+2877 4   0.128990
+2877 6714   0.078885
+2877 6716   1.000000
+2877 6718   0.058415
+2877 6722  -0.008310
+2877 6724  -1.000000
+2878 4   0.200000
+2878 6713   0.075281
+2878 6717   0.102497
+2878 6719   1.000000
+2878 6721   0.022222
+2878 6723  -1.000000
+2879 4   0.200000
+2879 6714   0.075281
+2879 6718   0.102497
+2879 6720   1.000000
+2879 6722   0.022222
+2879 6724  -1.000000
+2880 4   0.031010
+2880 6725   1.000000
+2880 6727   0.039363
+2880 6731  -0.013107
+2880 6735   0.004754
+2880 6737  -1.000000
+2881 4   0.031010
+2881 6726   1.000000
+2881 6728   0.039363
+2881 6732  -0.013107
+2881 6736   0.004754
+2881 6738  -1.000000
+2882 4   0.128990
+2882 6727   0.078885
+2882 6729   1.000000
+2882 6731   0.058415
+2882 6735  -0.008310
+2882 6737  -1.000000
+2883 4   0.128990
+2883 6728   0.078885
+2883 6730   1.000000
+2883 6732   0.058415
+2883 6736  -0.008310
+2883 6738  -1.000000
+2884 4   0.200000
+2884 6727   0.075281
+2884 6731   0.102497
+2884 6733   1.000000
+2884 6735   0.022222
+2884 6737  -1.000000
+2885 4   0.200000
+2885 6728   0.075281
+2885 6732   0.102497
+2885 6734   1.000000
+2885 6736   0.022222
+2885 6738  -1.000000
+2886 4   0.031010
+2886 6739   1.000000
+2886 6741   0.039363
+2886 6745  -0.013107
+2886 6749   0.004754
+2886 6751  -1.000000
+2887 4   0.031010
+2887 6740   1.000000
+2887 6742   0.039363
+2887 6746  -0.013107
+2887 6750   0.004754
+2887 6752  -1.000000
+2888 4   0.128990
+2888 6741   0.078885
+2888 6743   1.000000
+2888 6745   0.058415
+2888 6749  -0.008310
+2888 6751  -1.000000
+2889 4   0.128990
+2889 6742   0.078885
+2889 6744   1.000000
+2889 6746   0.058415
+2889 6750  -0.008310
+2889 6752  -1.000000
+2890 4   0.200000
+2890 6741   0.075281
+2890 6745   0.102497
+2890 6747   1.000000
+2890 6749   0.022222
+2890 6751  -1.000000
+2891 4   0.200000
+2891 6742   0.075281
+2891 6746   0.102497
+2891 6748   1.000000
+2891 6750   0.022222
+2891 6752  -1.000000
+2892 4   0.031010
+2892 6753   1.000000
+2892 6755   0.039363
+2892 6759  -0.013107
+2892 6763   0.004754
+2892 6765  -1.000000
+2893 4   0.031010
+2893 6754   1.000000
+2893 6756   0.039363
+2893 6760  -0.013107
+2893 6764   0.004754
+2893 6766  -1.000000
+2894 4   0.128990
+2894 6755   0.078885
+2894 6757   1.000000
+2894 6759   0.058415
+2894 6763  -0.008310
+2894 6765  -1.000000
+2895 4   0.128990
+2895 6756   0.078885
+2895 6758   1.000000
+2895 6760   0.058415
+2895 6764  -0.008310
+2895 6766  -1.000000
+2896 4   0.200000
+2896 6755   0.075281
+2896 6759   0.102497
+2896 6761   1.000000
+2896 6763   0.022222
+2896 6765  -1.000000
+2897 4   0.200000
+2897 6756   0.075281
+2897 6760   0.102497
+2897 6762   1.000000
+2897 6764   0.022222
+2897 6766  -1.000000
+2898 4   0.031010
+2898 6767   1.000000
+2898 6769   0.039363
+2898 6773  -0.013107
+2898 6777   0.004754
+2898 6779  -1.000000
+2899 4   0.031010
+2899 6768   1.000000
+2899 6770   0.039363
+2899 6774  -0.013107
+2899 6778   0.004754
+2899 6780  -1.000000
+2900 4   0.128990
+2900 6769   0.078885
+2900 6771   1.000000
+2900 6773   0.058415
+2900 6777  -0.008310
+2900 6779  -1.000000
+2901 4   0.128990
+2901 6770   0.078885
+2901 6772   1.000000
+2901 6774   0.058415
+2901 6778  -0.008310
+2901 6780  -1.000000
+2902 4   0.200000
+2902 6769   0.075281
+2902 6773   0.102497
+2902 6775   1.000000
+2902 6777   0.022222
+2902 6779  -1.000000
+2903 4   0.200000
+2903 6770   0.075281
+2903 6774   0.102497
+2903 6776   1.000000
+2903 6778   0.022222
+2903 6780  -1.000000
+2904 4   0.031010
+2904 6781   1.000000
+2904 6783   0.039363
+2904 6787  -0.013107
+2904 6791   0.004754
+2904 6793  -1.000000
+2905 4   0.031010
+2905 6782   1.000000
+2905 6784   0.039363
+2905 6788  -0.013107
+2905 6792   0.004754
+2905 6794  -1.000000
+2906 4   0.128990
+2906 6783   0.078885
+2906 6785   1.000000
+2906 6787   0.058415
+2906 6791  -0.008310
+2906 6793  -1.000000
+2907 4   0.128990
+2907 6784   0.078885
+2907 6786   1.000000
+2907 6788   0.058415
+2907 6792  -0.008310
+2907 6794  -1.000000
+2908 4   0.200000
+2908 6783   0.075281
+2908 6787   0.102497
+2908 6789   1.000000
+2908 6791   0.022222
+2908 6793  -1.000000
+2909 4   0.200000
+2909 6784   0.075281
+2909 6788   0.102497
+2909 6790   1.000000
+2909 6792   0.022222
+2909 6794  -1.000000
+2910 4   0.031010
+2910 6795   1.000000
+2910 6797   0.039363
+2910 6801  -0.013107
+2910 6805   0.004754
+2910 6807  -1.000000
+2911 4   0.031010
+2911 6796   1.000000
+2911 6798   0.039363
+2911 6802  -0.013107
+2911 6806   0.004754
+2911 6808  -1.000000
+2912 4   0.128990
+2912 6797   0.078885
+2912 6799   1.000000
+2912 6801   0.058415
+2912 6805  -0.008310
+2912 6807  -1.000000
+2913 4   0.128990
+2913 6798   0.078885
+2913 6800   1.000000
+2913 6802   0.058415
+2913 6806  -0.008310
+2913 6808  -1.000000
+2914 4   0.200000
+2914 6797   0.075281
+2914 6801   0.102497
+2914 6803   1.000000
+2914 6805   0.022222
+2914 6807  -1.000000
+2915 4   0.200000
+2915 6798   0.075281
+2915 6802   0.102497
+2915 6804   1.000000
+2915 6806   0.022222
+2915 6808  -1.000000
+2916 4   0.031010
+2916 6809   1.000000
+2916 6811   0.039363
+2916 6815  -0.013107
+2916 6819   0.004754
+2916 6821  -1.000000
+2917 4   0.031010
+2917 6810   1.000000
+2917 6812   0.039363
+2917 6816  -0.013107
+2917 6820   0.004754
+2917 6822  -1.000000
+2918 4   0.128990
+2918 6811   0.078885
+2918 6813   1.000000
+2918 6815   0.058415
+2918 6819  -0.008310
+2918 6821  -1.000000
+2919 4   0.128990
+2919 6812   0.078885
+2919 6814   1.000000
+2919 6816   0.058415
+2919 6820  -0.008310
+2919 6822  -1.000000
+2920 4   0.200000
+2920 6811   0.075281
+2920 6815   0.102497
+2920 6817   1.000000
+2920 6819   0.022222
+2920 6821  -1.000000
+2921 4   0.200000
+2921 6812   0.075281
+2921 6816   0.102497
+2921 6818   1.000000
+2921 6820   0.022222
+2921 6822  -1.000000
+2922 4   0.031010
+2922 6823   1.000000
+2922 6825   0.039363
+2922 6829  -0.013107
+2922 6833   0.004754
+2922 6835  -1.000000
+2923 4   0.031010
+2923 6824   1.000000
+2923 6826   0.039363
+2923 6830  -0.013107
+2923 6834   0.004754
+2923 6836  -1.000000
+2924 4   0.128990
+2924 6825   0.078885
+2924 6827   1.000000
+2924 6829   0.058415
+2924 6833  -0.008310
+2924 6835  -1.000000
+2925 4   0.128990
+2925 6826   0.078885
+2925 6828   1.000000
+2925 6830   0.058415
+2925 6834  -0.008310
+2925 6836  -1.000000
+2926 4   0.200000
+2926 6825   0.075281
+2926 6829   0.102497
+2926 6831   1.000000
+2926 6833   0.022222
+2926 6835  -1.000000
+2927 4   0.200000
+2927 6826   0.075281
+2927 6830   0.102497
+2927 6832   1.000000
+2927 6834   0.022222
+2927 6836  -1.000000
+2928 4   0.031010
+2928 6837   1.000000
+2928 6839   0.039363
+2928 6843  -0.013107
+2928 6847   0.004754
+2928 6849  -1.000000
+2929 4   0.031010
+2929 6838   1.000000
+2929 6840   0.039363
+2929 6844  -0.013107
+2929 6848   0.004754
+2929 6850  -1.000000
+2930 4   0.128990
+2930 6839   0.078885
+2930 6841   1.000000
+2930 6843   0.058415
+2930 6847  -0.008310
+2930 6849  -1.000000
+2931 4   0.128990
+2931 6840   0.078885
+2931 6842   1.000000
+2931 6844   0.058415
+2931 6848  -0.008310
+2931 6850  -1.000000
+2932 4   0.200000
+2932 6839   0.075281
+2932 6843   0.102497
+2932 6845   1.000000
+2932 6847   0.022222
+2932 6849  -1.000000
+2933 4   0.200000
+2933 6840   0.075281
+2933 6844   0.102497
+2933 6846   1.000000
+2933 6848   0.022222
+2933 6850  -1.000000
+2934 4   0.031010
+2934 6851   1.000000
+2934 6853   0.039363
+2934 6857  -0.013107
+2934 6861   0.004754
+2934 6863  -1.000000
+2935 4   0.031010
+2935 6852   1.000000
+2935 6854   0.039363
+2935 6858  -0.013107
+2935 6862   0.004754
+2935 6864  -1.000000
+2936 4   0.128990
+2936 6853   0.078885
+2936 6855   1.000000
+2936 6857   0.058415
+2936 6861  -0.008310
+2936 6863  -1.000000
+2937 4   0.128990
+2937 6854   0.078885
+2937 6856   1.000000
+2937 6858   0.058415
+2937 6862  -0.008310
+2937 6864  -1.000000
+2938 4   0.200000
+2938 6853   0.075281
+2938 6857   0.102497
+2938 6859   1.000000
+2938 6861   0.022222
+2938 6863  -1.000000
+2939 4   0.200000
+2939 6854   0.075281
+2939 6858   0.102497
+2939 6860   1.000000
+2939 6862   0.022222
+2939 6864  -1.000000
+2940 4   0.031010
+2940 6865   1.000000
+2940 6867   0.039363
+2940 6871  -0.013107
+2940 6875   0.004754
+2940 6877  -1.000000
+2941 4   0.031010
+2941 6866   1.000000
+2941 6868   0.039363
+2941 6872  -0.013107
+2941 6876   0.004754
+2941 6878  -1.000000
+2942 4   0.128990
+2942 6867   0.078885
+2942 6869   1.000000
+2942 6871   0.058415
+2942 6875  -0.008310
+2942 6877  -1.000000
+2943 4   0.128990
+2943 6868   0.078885
+2943 6870   1.000000
+2943 6872   0.058415
+2943 6876  -0.008310
+2943 6878  -1.000000
+2944 4   0.200000
+2944 6867   0.075281
+2944 6871   0.102497
+2944 6873   1.000000
+2944 6875   0.022222
+2944 6877  -1.000000
+2945 4   0.200000
+2945 6868   0.075281
+2945 6872   0.102497
+2945 6874   1.000000
+2945 6876   0.022222
+2945 6878  -1.000000
+2946 4   0.031010
+2946 6879   1.000000
+2946 6881   0.039363
+2946 6885  -0.013107
+2946 6889   0.004754
+2946 6891  -1.000000
+2947 4   0.031010
+2947 6880   1.000000
+2947 6882   0.039363
+2947 6886  -0.013107
+2947 6890   0.004754
+2947 6892  -1.000000
+2948 4   0.128990
+2948 6881   0.078885
+2948 6883   1.000000
+2948 6885   0.058415
+2948 6889  -0.008310
+2948 6891  -1.000000
+2949 4   0.128990
+2949 6882   0.078885
+2949 6884   1.000000
+2949 6886   0.058415
+2949 6890  -0.008310
+2949 6892  -1.000000
+2950 4   0.200000
+2950 6881   0.075281
+2950 6885   0.102497
+2950 6887   1.000000
+2950 6889   0.022222
+2950 6891  -1.000000
+2951 4   0.200000
+2951 6882   0.075281
+2951 6886   0.102497
+2951 6888   1.000000
+2951 6890   0.022222
+2951 6892  -1.000000
+2952 4   0.031010
+2952 6893   1.000000
+2952 6895   0.039363
+2952 6899  -0.013107
+2952 6903   0.004754
+2952 6905  -1.000000
+2953 4   0.031010
+2953 6894   1.000000
+2953 6896   0.039363
+2953 6900  -0.013107
+2953 6904   0.004754
+2953 6906  -1.000000
+2954 4   0.128990
+2954 6895   0.078885
+2954 6897   1.000000
+2954 6899   0.058415
+2954 6903  -0.008310
+2954 6905  -1.000000
+2955 4   0.128990
+2955 6896   0.078885
+2955 6898   1.000000
+2955 6900   0.058415
+2955 6904  -0.008310
+2955 6906  -1.000000
+2956 4   0.200000
+2956 6895   0.075281
+2956 6899   0.102497
+2956 6901   1.000000
+2956 6903   0.022222
+2956 6905  -1.000000
+2957 4   0.200000
+2957 6896   0.075281
+2957 6900   0.102497
+2957 6902   1.000000
+2957 6904   0.022222
+2957 6906  -1.000000
+2958 4   0.031010
+2958 6907   1.000000
+2958 6909   0.039363
+2958 6913  -0.013107
+2958 6917   0.004754
+2958 6919  -1.000000
+2959 4   0.031010
+2959 6908   1.000000
+2959 6910   0.039363
+2959 6914  -0.013107
+2959 6918   0.004754
+2959 6920  -1.000000
+2960 4   0.128990
+2960 6909   0.078885
+2960 6911   1.000000
+2960 6913   0.058415
+2960 6917  -0.008310
+2960 6919  -1.000000
+2961 4   0.128990
+2961 6910   0.078885
+2961 6912   1.000000
+2961 6914   0.058415
+2961 6918  -0.008310
+2961 6920  -1.000000
+2962 4   0.200000
+2962 6909   0.075281
+2962 6913   0.102497
+2962 6915   1.000000
+2962 6917   0.022222
+2962 6919  -1.000000
+2963 4   0.200000
+2963 6910   0.075281
+2963 6914   0.102497
+2963 6916   1.000000
+2963 6918   0.022222
+2963 6920  -1.000000
+2964 4   0.031010
+2964 6921   1.000000
+2964 6923   0.039363
+2964 6927  -0.013107
+2964 6931   0.004754
+2964 6933  -1.000000
+2965 4   0.031010
+2965 6922   1.000000
+2965 6924   0.039363
+2965 6928  -0.013107
+2965 6932   0.004754
+2965 6934  -1.000000
+2966 4   0.128990
+2966 6923   0.078885
+2966 6925   1.000000
+2966 6927   0.058415
+2966 6931  -0.008310
+2966 6933  -1.000000
+2967 4   0.128990
+2967 6924   0.078885
+2967 6926   1.000000
+2967 6928   0.058415
+2967 6932  -0.008310
+2967 6934  -1.000000
+2968 4   0.200000
+2968 6923   0.075281
+2968 6927   0.102497
+2968 6929   1.000000
+2968 6931   0.022222
+2968 6933  -1.000000
+2969 4   0.200000
+2969 6924   0.075281
+2969 6928   0.102497
+2969 6930   1.000000
+2969 6932   0.022222
+2969 6934  -1.000000
+2970 4   0.031010
+2970 6935   1.000000
+2970 6937   0.039363
+2970 6941  -0.013107
+2970 6945   0.004754
+2970 6947  -1.000000
+2971 4   0.031010
+2971 6936   1.000000
+2971 6938   0.039363
+2971 6942  -0.013107
+2971 6946   0.004754
+2971 6948  -1.000000
+2972 4   0.128990
+2972 6937   0.078885
+2972 6939   1.000000
+2972 6941   0.058415
+2972 6945  -0.008310
+2972 6947  -1.000000
+2973 4   0.128990
+2973 6938   0.078885
+2973 6940   1.000000
+2973 6942   0.058415
+2973 6946  -0.008310
+2973 6948  -1.000000
+2974 4   0.200000
+2974 6937   0.075281
+2974 6941   0.102497
+2974 6943   1.000000
+2974 6945   0.022222
+2974 6947  -1.000000
+2975 4   0.200000
+2975 6938   0.075281
+2975 6942   0.102497
+2975 6944   1.000000
+2975 6946   0.022222
+2975 6948  -1.000000
+2976 4   0.031010
+2976 6949   1.000000
+2976 6951   0.039363
+2976 6955  -0.013107
+2976 6959   0.004754
+2976 6961  -1.000000
+2977 4   0.031010
+2977 6950   1.000000
+2977 6952   0.039363
+2977 6956  -0.013107
+2977 6960   0.004754
+2977 6962  -1.000000
+2978 4   0.128990
+2978 6951   0.078885
+2978 6953   1.000000
+2978 6955   0.058415
+2978 6959  -0.008310
+2978 6961  -1.000000
+2979 4   0.128990
+2979 6952   0.078885
+2979 6954   1.000000
+2979 6956   0.058415
+2979 6960  -0.008310
+2979 6962  -1.000000
+2980 4   0.200000
+2980 6951   0.075281
+2980 6955   0.102497
+2980 6957   1.000000
+2980 6959   0.022222
+2980 6961  -1.000000
+2981 4   0.200000
+2981 6952   0.075281
+2981 6956   0.102497
+2981 6958   1.000000
+2981 6960   0.022222
+2981 6962  -1.000000
+2982 4   0.031010
+2982 6963   1.000000
+2982 6965   0.039363
+2982 6969  -0.013107
+2982 6973   0.004754
+2982 6975  -1.000000
+2983 4   0.031010
+2983 6964   1.000000
+2983 6966   0.039363
+2983 6970  -0.013107
+2983 6974   0.004754
+2983 6976  -1.000000
+2984 4   0.128990
+2984 6965   0.078885
+2984 6967   1.000000
+2984 6969   0.058415
+2984 6973  -0.008310
+2984 6975  -1.000000
+2985 4   0.128990
+2985 6966   0.078885
+2985 6968   1.000000
+2985 6970   0.058415
+2985 6974  -0.008310
+2985 6976  -1.000000
+2986 4   0.200000
+2986 6965   0.075281
+2986 6969   0.102497
+2986 6971   1.000000
+2986 6973   0.022222
+2986 6975  -1.000000
+2987 4   0.200000
+2987 6966   0.075281
+2987 6970   0.102497
+2987 6972   1.000000
+2987 6974   0.022222
+2987 6976  -1.000000
+2988 4   0.031010
+2988 6977   1.000000
+2988 6979   0.039363
+2988 6983  -0.013107
+2988 6987   0.004754
+2988 6989  -1.000000
+2989 4   0.031010
+2989 6978   1.000000
+2989 6980   0.039363
+2989 6984  -0.013107
+2989 6988   0.004754
+2989 6990  -1.000000
+2990 4   0.128990
+2990 6979   0.078885
+2990 6981   1.000000
+2990 6983   0.058415
+2990 6987  -0.008310
+2990 6989  -1.000000
+2991 4   0.128990
+2991 6980   0.078885
+2991 6982   1.000000
+2991 6984   0.058415
+2991 6988  -0.008310
+2991 6990  -1.000000
+2992 4   0.200000
+2992 6979   0.075281
+2992 6983   0.102497
+2992 6985   1.000000
+2992 6987   0.022222
+2992 6989  -1.000000
+2993 4   0.200000
+2993 6980   0.075281
+2993 6984   0.102497
+2993 6986   1.000000
+2993 6988   0.022222
+2993 6990  -1.000000
+2994 4   0.031010
+2994 6991   1.000000
+2994 6993   0.039363
+2994 6997  -0.013107
+2994 7001   0.004754
+2994 7003  -1.000000
+2995 4   0.031010
+2995 6992   1.000000
+2995 6994   0.039363
+2995 6998  -0.013107
+2995 7002   0.004754
+2995 7004  -1.000000
+2996 4   0.128990
+2996 6993   0.078885
+2996 6995   1.000000
+2996 6997   0.058415
+2996 7001  -0.008310
+2996 7003  -1.000000
+2997 4   0.128990
+2997 6994   0.078885
+2997 6996   1.000000
+2997 6998   0.058415
+2997 7002  -0.008310
+2997 7004  -1.000000
+2998 4   0.200000
+2998 6993   0.075281
+2998 6997   0.102497
+2998 6999   1.000000
+2998 7001   0.022222
+2998 7003  -1.000000
+2999 4   0.200000
+2999 6994   0.075281
+2999 6998   0.102497
+2999 7000   1.000000
+2999 7002   0.022222
+2999 7004  -1.000000
+3000 4   0.031010
+3000 7005   1.000000
+3000 7007   0.039363
+3000 7011  -0.013107
+3000 7015   0.004754
+3000 7017  -1.000000
+3001 4   0.031010
+3001 7006   1.000000
+3001 7008   0.039363
+3001 7012  -0.013107
+3001 7016   0.004754
+3001 7018  -1.000000
+3002 4   0.128990
+3002 7007   0.078885
+3002 7009   1.000000
+3002 7011   0.058415
+3002 7015  -0.008310
+3002 7017  -1.000000
+3003 4   0.128990
+3003 7008   0.078885
+3003 7010   1.000000
+3003 7012   0.058415
+3003 7016  -0.008310
+3003 7018  -1.000000
+3004 4   0.200000
+3004 7007   0.075281
+3004 7011   0.102497
+3004 7013   1.000000
+3004 7015   0.022222
+3004 7017  -1.000000
+3005 4   0.200000
+3005 7008   0.075281
+3005 7012   0.102497
+3005 7014   1.000000
+3005 7016   0.022222
+3005 7018  -1.000000
+3006 4   0.031010
+3006 7019   1.000000
+3006 7021   0.039363
+3006 7025  -0.013107
+3006 7029   0.004754
+3006 7031  -1.000000
+3007 4   0.031010
+3007 7020   1.000000
+3007 7022   0.039363
+3007 7026  -0.013107
+3007 7030   0.004754
+3007 7032  -1.000000
+3008 4   0.128990
+3008 7021   0.078885
+3008 7023   1.000000
+3008 7025   0.058415
+3008 7029  -0.008310
+3008 7031  -1.000000
+3009 4   0.128990
+3009 7022   0.078885
+3009 7024   1.000000
+3009 7026   0.058415
+3009 7030  -0.008310
+3009 7032  -1.000000
+3010 4   0.200000
+3010 7021   0.075281
+3010 7025   0.102497
+3010 7027   1.000000
+3010 7029   0.022222
+3010 7031  -1.000000
+3011 4   0.200000
+3011 7022   0.075281
+3011 7026   0.102497
+3011 7028   1.000000
+3011 7030   0.022222
+3011 7032  -1.000000
+3012 4   0.031010
+3012 7033   1.000000
+3012 7035   0.039363
+3012 7039  -0.013107
+3012 7043   0.004754
+3012 7045  -1.000000
+3013 4   0.031010
+3013 7034   1.000000
+3013 7036   0.039363
+3013 7040  -0.013107
+3013 7044   0.004754
+3013 7046  -1.000000
+3014 4   0.128990
+3014 7035   0.078885
+3014 7037   1.000000
+3014 7039   0.058415
+3014 7043  -0.008310
+3014 7045  -1.000000
+3015 4   0.128990
+3015 7036   0.078885
+3015 7038   1.000000
+3015 7040   0.058415
+3015 7044  -0.008310
+3015 7046  -1.000000
+3016 4   0.200000
+3016 7035   0.075281
+3016 7039   0.102497
+3016 7041   1.000000
+3016 7043   0.022222
+3016 7045  -1.000000
+3017 4   0.200000
+3017 7036   0.075281
+3017 7040   0.102497
+3017 7042   1.000000
+3017 7044   0.022222
+3017 7046  -1.000000
+3018 4   0.031010
+3018 7047   1.000000
+3018 7049   0.039363
+3018 7053  -0.013107
+3018 7057   0.004754
+3018 7059  -1.000000
+3019 4   0.031010
+3019 7048   1.000000
+3019 7050   0.039363
+3019 7054  -0.013107
+3019 7058   0.004754
+3019 7060  -1.000000
+3020 4   0.128990
+3020 7049   0.078885
+3020 7051   1.000000
+3020 7053   0.058415
+3020 7057  -0.008310
+3020 7059  -1.000000
+3021 4   0.128990
+3021 7050   0.078885
+3021 7052   1.000000
+3021 7054   0.058415
+3021 7058  -0.008310
+3021 7060  -1.000000
+3022 4   0.200000
+3022 7049   0.075281
+3022 7053   0.102497
+3022 7055   1.000000
+3022 7057   0.022222
+3022 7059  -1.000000
+3023 4   0.200000
+3023 7050   0.075281
+3023 7054   0.102497
+3023 7056   1.000000
+3023 7058   0.022222
+3023 7060  -1.000000
+3024 4   0.031010
+3024 7061   1.000000
+3024 7063   0.039363
+3024 7067  -0.013107
+3024 7071   0.004754
+3024 7073  -1.000000
+3025 4   0.031010
+3025 7062   1.000000
+3025 7064   0.039363
+3025 7068  -0.013107
+3025 7072   0.004754
+3025 7074  -1.000000
+3026 4   0.128990
+3026 7063   0.078885
+3026 7065   1.000000
+3026 7067   0.058415
+3026 7071  -0.008310
+3026 7073  -1.000000
+3027 4   0.128990
+3027 7064   0.078885
+3027 7066   1.000000
+3027 7068   0.058415
+3027 7072  -0.008310
+3027 7074  -1.000000
+3028 4   0.200000
+3028 7063   0.075281
+3028 7067   0.102497
+3028 7069   1.000000
+3028 7071   0.022222
+3028 7073  -1.000000
+3029 4   0.200000
+3029 7064   0.075281
+3029 7068   0.102497
+3029 7070   1.000000
+3029 7072   0.022222
+3029 7074  -1.000000
+3030 4   0.031010
+3030 7075   1.000000
+3030 7077   0.039363
+3030 7081  -0.013107
+3030 7085   0.004754
+3030 7087  -1.000000
+3031 4   0.031010
+3031 7076   1.000000
+3031 7078   0.039363
+3031 7082  -0.013107
+3031 7086   0.004754
+3031 7088  -1.000000
+3032 4   0.128990
+3032 7077   0.078885
+3032 7079   1.000000
+3032 7081   0.058415
+3032 7085  -0.008310
+3032 7087  -1.000000
+3033 4   0.128990
+3033 7078   0.078885
+3033 7080   1.000000
+3033 7082   0.058415
+3033 7086  -0.008310
+3033 7088  -1.000000
+3034 4   0.200000
+3034 7077   0.075281
+3034 7081   0.102497
+3034 7083   1.000000
+3034 7085   0.022222
+3034 7087  -1.000000
+3035 4   0.200000
+3035 7078   0.075281
+3035 7082   0.102497
+3035 7084   1.000000
+3035 7086   0.022222
+3035 7088  -1.000000
+3036 4   0.031010
+3036 7089   1.000000
+3036 7091   0.039363
+3036 7095  -0.013107
+3036 7099   0.004754
+3036 7101  -1.000000
+3037 4   0.031010
+3037 7090   1.000000
+3037 7092   0.039363
+3037 7096  -0.013107
+3037 7100   0.004754
+3037 7102  -1.000000
+3038 4   0.128990
+3038 7091   0.078885
+3038 7093   1.000000
+3038 7095   0.058415
+3038 7099  -0.008310
+3038 7101  -1.000000
+3039 4   0.128990
+3039 7092   0.078885
+3039 7094   1.000000
+3039 7096   0.058415
+3039 7100  -0.008310
+3039 7102  -1.000000
+3040 4   0.200000
+3040 7091   0.075281
+3040 7095   0.102497
+3040 7097   1.000000
+3040 7099   0.022222
+3040 7101  -1.000000
+3041 4   0.200000
+3041 7092   0.075281
+3041 7096   0.102497
+3041 7098   1.000000
+3041 7100   0.022222
+3041 7102  -1.000000
+3042 4   0.031010
+3042 7103   1.000000
+3042 7105   0.039363
+3042 7109  -0.013107
+3042 7113   0.004754
+3042 7115  -1.000000
+3043 4   0.031010
+3043 7104   1.000000
+3043 7106   0.039363
+3043 7110  -0.013107
+3043 7114   0.004754
+3043 7116  -1.000000
+3044 4   0.128990
+3044 7105   0.078885
+3044 7107   1.000000
+3044 7109   0.058415
+3044 7113  -0.008310
+3044 7115  -1.000000
+3045 4   0.128990
+3045 7106   0.078885
+3045 7108   1.000000
+3045 7110   0.058415
+3045 7114  -0.008310
+3045 7116  -1.000000
+3046 4   0.200000
+3046 7105   0.075281
+3046 7109   0.102497
+3046 7111   1.000000
+3046 7113   0.022222
+3046 7115  -1.000000
+3047 4   0.200000
+3047 7106   0.075281
+3047 7110   0.102497
+3047 7112   1.000000
+3047 7114   0.022222
+3047 7116  -1.000000
+3048 4   0.031010
+3048 7117   1.000000
+3048 7119   0.039363
+3048 7123  -0.013107
+3048 7127   0.004754
+3048 7129  -1.000000
+3049 4   0.031010
+3049 7118   1.000000
+3049 7120   0.039363
+3049 7124  -0.013107
+3049 7128   0.004754
+3049 7130  -1.000000
+3050 4   0.128990
+3050 7119   0.078885
+3050 7121   1.000000
+3050 7123   0.058415
+3050 7127  -0.008310
+3050 7129  -1.000000
+3051 4   0.128990
+3051 7120   0.078885
+3051 7122   1.000000
+3051 7124   0.058415
+3051 7128  -0.008310
+3051 7130  -1.000000
+3052 4   0.200000
+3052 7119   0.075281
+3052 7123   0.102497
+3052 7125   1.000000
+3052 7127   0.022222
+3052 7129  -1.000000
+3053 4   0.200000
+3053 7120   0.075281
+3053 7124   0.102497
+3053 7126   1.000000
+3053 7128   0.022222
+3053 7130  -1.000000
+3054 4   0.031010
+3054 7131   1.000000
+3054 7133   0.039363
+3054 7137  -0.013107
+3054 7141   0.004754
+3054 7143  -1.000000
+3055 4   0.031010
+3055 7132   1.000000
+3055 7134   0.039363
+3055 7138  -0.013107
+3055 7142   0.004754
+3055 7144  -1.000000
+3056 4   0.128990
+3056 7133   0.078885
+3056 7135   1.000000
+3056 7137   0.058415
+3056 7141  -0.008310
+3056 7143  -1.000000
+3057 4   0.128990
+3057 7134   0.078885
+3057 7136   1.000000
+3057 7138   0.058415
+3057 7142  -0.008310
+3057 7144  -1.000000
+3058 4   0.200000
+3058 7133   0.075281
+3058 7137   0.102497
+3058 7139   1.000000
+3058 7141   0.022222
+3058 7143  -1.000000
+3059 4   0.200000
+3059 7134   0.075281
+3059 7138   0.102497
+3059 7140   1.000000
+3059 7142   0.022222
+3059 7144  -1.000000
+3060 4   0.031010
+3060 7145   1.000000
+3060 7147   0.039363
+3060 7151  -0.013107
+3060 7155   0.004754
+3060 7157  -1.000000
+3061 4   0.031010
+3061 7146   1.000000
+3061 7148   0.039363
+3061 7152  -0.013107
+3061 7156   0.004754
+3061 7158  -1.000000
+3062 4   0.128990
+3062 7147   0.078885
+3062 7149   1.000000
+3062 7151   0.058415
+3062 7155  -0.008310
+3062 7157  -1.000000
+3063 4   0.128990
+3063 7148   0.078885
+3063 7150   1.000000
+3063 7152   0.058415
+3063 7156  -0.008310
+3063 7158  -1.000000
+3064 4   0.200000
+3064 7147   0.075281
+3064 7151   0.102497
+3064 7153   1.000000
+3064 7155   0.022222
+3064 7157  -1.000000
+3065 4   0.200000
+3065 7148   0.075281
+3065 7152   0.102497
+3065 7154   1.000000
+3065 7156   0.022222
+3065 7158  -1.000000
+3066 4   0.031010
+3066 7159   1.000000
+3066 7161   0.039363
+3066 7165  -0.013107
+3066 7169   0.004754
+3066 7171  -1.000000
+3067 4   0.031010
+3067 7160   1.000000
+3067 7162   0.039363
+3067 7166  -0.013107
+3067 7170   0.004754
+3067 7172  -1.000000
+3068 4   0.128990
+3068 7161   0.078885
+3068 7163   1.000000
+3068 7165   0.058415
+3068 7169  -0.008310
+3068 7171  -1.000000
+3069 4   0.128990
+3069 7162   0.078885
+3069 7164   1.000000
+3069 7166   0.058415
+3069 7170  -0.008310
+3069 7172  -1.000000
+3070 4   0.200000
+3070 7161   0.075281
+3070 7165   0.102497
+3070 7167   1.000000
+3070 7169   0.022222
+3070 7171  -1.000000
+3071 4   0.200000
+3071 7162   0.075281
+3071 7166   0.102497
+3071 7168   1.000000
+3071 7170   0.022222
+3071 7172  -1.000000
+3072 4   0.031010
+3072 7173   1.000000
+3072 7175   0.039363
+3072 7179  -0.013107
+3072 7183   0.004754
+3072 7185  -1.000000
+3073 4   0.031010
+3073 7174   1.000000
+3073 7176   0.039363
+3073 7180  -0.013107
+3073 7184   0.004754
+3073 7186  -1.000000
+3074 4   0.128990
+3074 7175   0.078885
+3074 7177   1.000000
+3074 7179   0.058415
+3074 7183  -0.008310
+3074 7185  -1.000000
+3075 4   0.128990
+3075 7176   0.078885
+3075 7178   1.000000
+3075 7180   0.058415
+3075 7184  -0.008310
+3075 7186  -1.000000
+3076 4   0.200000
+3076 7175   0.075281
+3076 7179   0.102497
+3076 7181   1.000000
+3076 7183   0.022222
+3076 7185  -1.000000
+3077 4   0.200000
+3077 7176   0.075281
+3077 7180   0.102497
+3077 7182   1.000000
+3077 7184   0.022222
+3077 7186  -1.000000
+3078 4   0.031010
+3078 7187   1.000000
+3078 7189   0.039363
+3078 7193  -0.013107
+3078 7197   0.004754
+3078 7199  -1.000000
+3079 4   0.031010
+3079 7188   1.000000
+3079 7190   0.039363
+3079 7194  -0.013107
+3079 7198   0.004754
+3079 7200  -1.000000
+3080 4   0.128990
+3080 7189   0.078885
+3080 7191   1.000000
+3080 7193   0.058415
+3080 7197  -0.008310
+3080 7199  -1.000000
+3081 4   0.128990
+3081 7190   0.078885
+3081 7192   1.000000
+3081 7194   0.058415
+3081 7198  -0.008310
+3081 7200  -1.000000
+3082 4   0.200000
+3082 7189   0.075281
+3082 7193   0.102497
+3082 7195   1.000000
+3082 7197   0.022222
+3082 7199  -1.000000
+3083 4   0.200000
+3083 7190   0.075281
+3083 7194   0.102497
+3083 7196   1.000000
+3083 7198   0.022222
+3083 7200  -1.000000
+3084 4   0.031010
+3084 7201   1.000000
+3084 7203   0.039363
+3084 7207  -0.013107
+3084 7211   0.004754
+3084 7213  -1.000000
+3085 4   0.031010
+3085 7202   1.000000
+3085 7204   0.039363
+3085 7208  -0.013107
+3085 7212   0.004754
+3085 7214  -1.000000
+3086 4   0.128990
+3086 7203   0.078885
+3086 7205   1.000000
+3086 7207   0.058415
+3086 7211  -0.008310
+3086 7213  -1.000000
+3087 4   0.128990
+3087 7204   0.078885
+3087 7206   1.000000
+3087 7208   0.058415
+3087 7212  -0.008310
+3087 7214  -1.000000
+3088 4   0.200000
+3088 7203   0.075281
+3088 7207   0.102497
+3088 7209   1.000000
+3088 7211   0.022222
+3088 7213  -1.000000
+3089 4   0.200000
+3089 7204   0.075281
+3089 7208   0.102497
+3089 7210   1.000000
+3089 7212   0.022222
+3089 7214  -1.000000
+3090 4   0.031010
+3090 7215   1.000000
+3090 7217   0.039363
+3090 7221  -0.013107
+3090 7225   0.004754
+3090 7227  -1.000000
+3091 4   0.031010
+3091 7216   1.000000
+3091 7218   0.039363
+3091 7222  -0.013107
+3091 7226   0.004754
+3091 7228  -1.000000
+3092 4   0.128990
+3092 7217   0.078885
+3092 7219   1.000000
+3092 7221   0.058415
+3092 7225  -0.008310
+3092 7227  -1.000000
+3093 4   0.128990
+3093 7218   0.078885
+3093 7220   1.000000
+3093 7222   0.058415
+3093 7226  -0.008310
+3093 7228  -1.000000
+3094 4   0.200000
+3094 7217   0.075281
+3094 7221   0.102497
+3094 7223   1.000000
+3094 7225   0.022222
+3094 7227  -1.000000
+3095 4   0.200000
+3095 7218   0.075281
+3095 7222   0.102497
+3095 7224   1.000000
+3095 7226   0.022222
+3095 7228  -1.000000
+3096 4   0.031010
+3096 7229   1.000000
+3096 7231   0.039363
+3096 7235  -0.013107
+3096 7239   0.004754
+3096 7241  -1.000000
+3097 4   0.031010
+3097 7230   1.000000
+3097 7232   0.039363
+3097 7236  -0.013107
+3097 7240   0.004754
+3097 7242  -1.000000
+3098 4   0.128990
+3098 7231   0.078885
+3098 7233   1.000000
+3098 7235   0.058415
+3098 7239  -0.008310
+3098 7241  -1.000000
+3099 4   0.128990
+3099 7232   0.078885
+3099 7234   1.000000
+3099 7236   0.058415
+3099 7240  -0.008310
+3099 7242  -1.000000
+3100 4   0.200000
+3100 7231   0.075281
+3100 7235   0.102497
+3100 7237   1.000000
+3100 7239   0.022222
+3100 7241  -1.000000
+3101 4   0.200000
+3101 7232   0.075281
+3101 7236   0.102497
+3101 7238   1.000000
+3101 7240   0.022222
+3101 7242  -1.000000
+3102 4   0.031010
+3102 7243   1.000000
+3102 7245   0.039363
+3102 7249  -0.013107
+3102 7253   0.004754
+3102 7255  -1.000000
+3103 4   0.031010
+3103 7244   1.000000
+3103 7246   0.039363
+3103 7250  -0.013107
+3103 7254   0.004754
+3103 7256  -1.000000
+3104 4   0.128990
+3104 7245   0.078885
+3104 7247   1.000000
+3104 7249   0.058415
+3104 7253  -0.008310
+3104 7255  -1.000000
+3105 4   0.128990
+3105 7246   0.078885
+3105 7248   1.000000
+3105 7250   0.058415
+3105 7254  -0.008310
+3105 7256  -1.000000
+3106 4   0.200000
+3106 7245   0.075281
+3106 7249   0.102497
+3106 7251   1.000000
+3106 7253   0.022222
+3106 7255  -1.000000
+3107 4   0.200000
+3107 7246   0.075281
+3107 7250   0.102497
+3107 7252   1.000000
+3107 7254   0.022222
+3107 7256  -1.000000
+3108 4   0.031010
+3108 7257   1.000000
+3108 7259   0.039363
+3108 7263  -0.013107
+3108 7267   0.004754
+3108 7269  -1.000000
+3109 4   0.031010
+3109 7258   1.000000
+3109 7260   0.039363
+3109 7264  -0.013107
+3109 7268   0.004754
+3109 7270  -1.000000
+3110 4   0.128990
+3110 7259   0.078885
+3110 7261   1.000000
+3110 7263   0.058415
+3110 7267  -0.008310
+3110 7269  -1.000000
+3111 4   0.128990
+3111 7260   0.078885
+3111 7262   1.000000
+3111 7264   0.058415
+3111 7268  -0.008310
+3111 7270  -1.000000
+3112 4   0.200000
+3112 7259   0.075281
+3112 7263   0.102497
+3112 7265   1.000000
+3112 7267   0.022222
+3112 7269  -1.000000
+3113 4   0.200000
+3113 7260   0.075281
+3113 7264   0.102497
+3113 7266   1.000000
+3113 7268   0.022222
+3113 7270  -1.000000
+3114 4   0.031010
+3114 7271   1.000000
+3114 7273   0.039363
+3114 7277  -0.013107
+3114 7281   0.004754
+3114 7283  -1.000000
+3115 4   0.031010
+3115 7272   1.000000
+3115 7274   0.039363
+3115 7278  -0.013107
+3115 7282   0.004754
+3115 7284  -1.000000
+3116 4   0.128990
+3116 7273   0.078885
+3116 7275   1.000000
+3116 7277   0.058415
+3116 7281  -0.008310
+3116 7283  -1.000000
+3117 4   0.128990
+3117 7274   0.078885
+3117 7276   1.000000
+3117 7278   0.058415
+3117 7282  -0.008310
+3117 7284  -1.000000
+3118 4   0.200000
+3118 7273   0.075281
+3118 7277   0.102497
+3118 7279   1.000000
+3118 7281   0.022222
+3118 7283  -1.000000
+3119 4   0.200000
+3119 7274   0.075281
+3119 7278   0.102497
+3119 7280   1.000000
+3119 7282   0.022222
+3119 7284  -1.000000
+3120 4   0.031010
+3120 7285   1.000000
+3120 7287   0.039363
+3120 7291  -0.013107
+3120 7295   0.004754
+3120 7297  -1.000000
+3121 4   0.031010
+3121 7286   1.000000
+3121 7288   0.039363
+3121 7292  -0.013107
+3121 7296   0.004754
+3121 7298  -1.000000
+3122 4   0.128990
+3122 7287   0.078885
+3122 7289   1.000000
+3122 7291   0.058415
+3122 7295  -0.008310
+3122 7297  -1.000000
+3123 4   0.128990
+3123 7288   0.078885
+3123 7290   1.000000
+3123 7292   0.058415
+3123 7296  -0.008310
+3123 7298  -1.000000
+3124 4   0.200000
+3124 7287   0.075281
+3124 7291   0.102497
+3124 7293   1.000000
+3124 7295   0.022222
+3124 7297  -1.000000
+3125 4   0.200000
+3125 7288   0.075281
+3125 7292   0.102497
+3125 7294   1.000000
+3125 7296   0.022222
+3125 7298  -1.000000
+3126 4   0.031010
+3126 7299   1.000000
+3126 7301   0.039363
+3126 7305  -0.013107
+3126 7309   0.004754
+3126 7311  -1.000000
+3127 4   0.031010
+3127 7300   1.000000
+3127 7302   0.039363
+3127 7306  -0.013107
+3127 7310   0.004754
+3127 7312  -1.000000
+3128 4   0.128990
+3128 7301   0.078885
+3128 7303   1.000000
+3128 7305   0.058415
+3128 7309  -0.008310
+3128 7311  -1.000000
+3129 4   0.128990
+3129 7302   0.078885
+3129 7304   1.000000
+3129 7306   0.058415
+3129 7310  -0.008310
+3129 7312  -1.000000
+3130 4   0.200000
+3130 7301   0.075281
+3130 7305   0.102497
+3130 7307   1.000000
+3130 7309   0.022222
+3130 7311  -1.000000
+3131 4   0.200000
+3131 7302   0.075281
+3131 7306   0.102497
+3131 7308   1.000000
+3131 7310   0.022222
+3131 7312  -1.000000
+3132 4   0.031010
+3132 7313   1.000000
+3132 7315   0.039363
+3132 7319  -0.013107
+3132 7323   0.004754
+3132 7325  -1.000000
+3133 4   0.031010
+3133 7314   1.000000
+3133 7316   0.039363
+3133 7320  -0.013107
+3133 7324   0.004754
+3133 7326  -1.000000
+3134 4   0.128990
+3134 7315   0.078885
+3134 7317   1.000000
+3134 7319   0.058415
+3134 7323  -0.008310
+3134 7325  -1.000000
+3135 4   0.128990
+3135 7316   0.078885
+3135 7318   1.000000
+3135 7320   0.058415
+3135 7324  -0.008310
+3135 7326  -1.000000
+3136 4   0.200000
+3136 7315   0.075281
+3136 7319   0.102497
+3136 7321   1.000000
+3136 7323   0.022222
+3136 7325  -1.000000
+3137 4   0.200000
+3137 7316   0.075281
+3137 7320   0.102497
+3137 7322   1.000000
+3137 7324   0.022222
+3137 7326  -1.000000
+3138 4   0.031010
+3138 7327   1.000000
+3138 7329   0.039363
+3138 7333  -0.013107
+3138 7337   0.004754
+3138 7339  -1.000000
+3139 4   0.031010
+3139 7328   1.000000
+3139 7330   0.039363
+3139 7334  -0.013107
+3139 7338   0.004754
+3139 7340  -1.000000
+3140 4   0.128990
+3140 7329   0.078885
+3140 7331   1.000000
+3140 7333   0.058415
+3140 7337  -0.008310
+3140 7339  -1.000000
+3141 4   0.128990
+3141 7330   0.078885
+3141 7332   1.000000
+3141 7334   0.058415
+3141 7338  -0.008310
+3141 7340  -1.000000
+3142 4   0.200000
+3142 7329   0.075281
+3142 7333   0.102497
+3142 7335   1.000000
+3142 7337   0.022222
+3142 7339  -1.000000
+3143 4   0.200000
+3143 7330   0.075281
+3143 7334   0.102497
+3143 7336   1.000000
+3143 7338   0.022222
+3143 7340  -1.000000
+3144 4   0.031010
+3144 7341   1.000000
+3144 7343   0.039363
+3144 7347  -0.013107
+3144 7351   0.004754
+3144 7353  -1.000000
+3145 4   0.031010
+3145 7342   1.000000
+3145 7344   0.039363
+3145 7348  -0.013107
+3145 7352   0.004754
+3145 7354  -1.000000
+3146 4   0.128990
+3146 7343   0.078885
+3146 7345   1.000000
+3146 7347   0.058415
+3146 7351  -0.008310
+3146 7353  -1.000000
+3147 4   0.128990
+3147 7344   0.078885
+3147 7346   1.000000
+3147 7348   0.058415
+3147 7352  -0.008310
+3147 7354  -1.000000
+3148 4   0.200000
+3148 7343   0.075281
+3148 7347   0.102497
+3148 7349   1.000000
+3148 7351   0.022222
+3148 7353  -1.000000
+3149 4   0.200000
+3149 7344   0.075281
+3149 7348   0.102497
+3149 7350   1.000000
+3149 7352   0.022222
+3149 7354  -1.000000
+3150 4   0.031010
+3150 7355   1.000000
+3150 7357   0.039363
+3150 7361  -0.013107
+3150 7365   0.004754
+3150 7367  -1.000000
+3151 4   0.031010
+3151 7356   1.000000
+3151 7358   0.039363
+3151 7362  -0.013107
+3151 7366   0.004754
+3151 7368  -1.000000
+3152 4   0.128990
+3152 7357   0.078885
+3152 7359   1.000000
+3152 7361   0.058415
+3152 7365  -0.008310
+3152 7367  -1.000000
+3153 4   0.128990
+3153 7358   0.078885
+3153 7360   1.000000
+3153 7362   0.058415
+3153 7366  -0.008310
+3153 7368  -1.000000
+3154 4   0.200000
+3154 7357   0.075281
+3154 7361   0.102497
+3154 7363   1.000000
+3154 7365   0.022222
+3154 7367  -1.000000
+3155 4   0.200000
+3155 7358   0.075281
+3155 7362   0.102497
+3155 7364   1.000000
+3155 7366   0.022222
+3155 7368  -1.000000
+3156 4   0.031010
+3156 7369   1.000000
+3156 7371   0.039363
+3156 7375  -0.013107
+3156 7379   0.004754
+3156 7381  -1.000000
+3157 4   0.031010
+3157 7370   1.000000
+3157 7372   0.039363
+3157 7376  -0.013107
+3157 7380   0.004754
+3157 7382  -1.000000
+3158 4   0.128990
+3158 7371   0.078885
+3158 7373   1.000000
+3158 7375   0.058415
+3158 7379  -0.008310
+3158 7381  -1.000000
+3159 4   0.128990
+3159 7372   0.078885
+3159 7374   1.000000
+3159 7376   0.058415
+3159 7380  -0.008310
+3159 7382  -1.000000
+3160 4   0.200000
+3160 7371   0.075281
+3160 7375   0.102497
+3160 7377   1.000000
+3160 7379   0.022222
+3160 7381  -1.000000
+3161 4   0.200000
+3161 7372   0.075281
+3161 7376   0.102497
+3161 7378   1.000000
+3161 7380   0.022222
+3161 7382  -1.000000
+3162 4   0.031010
+3162 7383   1.000000
+3162 7385   0.039363
+3162 7389  -0.013107
+3162 7393   0.004754
+3162 7395  -1.000000
+3163 4   0.031010
+3163 7384   1.000000
+3163 7386   0.039363
+3163 7390  -0.013107
+3163 7394   0.004754
+3163 7396  -1.000000
+3164 4   0.128990
+3164 7385   0.078885
+3164 7387   1.000000
+3164 7389   0.058415
+3164 7393  -0.008310
+3164 7395  -1.000000
+3165 4   0.128990
+3165 7386   0.078885
+3165 7388   1.000000
+3165 7390   0.058415
+3165 7394  -0.008310
+3165 7396  -1.000000
+3166 4   0.200000
+3166 7385   0.075281
+3166 7389   0.102497
+3166 7391   1.000000
+3166 7393   0.022222
+3166 7395  -1.000000
+3167 4   0.200000
+3167 7386   0.075281
+3167 7390   0.102497
+3167 7392   1.000000
+3167 7394   0.022222
+3167 7396  -1.000000
+3168 4   0.031010
+3168 7397   1.000000
+3168 7399   0.039363
+3168 7403  -0.013107
+3168 7407   0.004754
+3168 7409  -1.000000
+3169 4   0.031010
+3169 7398   1.000000
+3169 7400   0.039363
+3169 7404  -0.013107
+3169 7408   0.004754
+3169 7410  -1.000000
+3170 4   0.128990
+3170 7399   0.078885
+3170 7401   1.000000
+3170 7403   0.058415
+3170 7407  -0.008310
+3170 7409  -1.000000
+3171 4   0.128990
+3171 7400   0.078885
+3171 7402   1.000000
+3171 7404   0.058415
+3171 7408  -0.008310
+3171 7410  -1.000000
+3172 4   0.200000
+3172 7399   0.075281
+3172 7403   0.102497
+3172 7405   1.000000
+3172 7407   0.022222
+3172 7409  -1.000000
+3173 4   0.200000
+3173 7400   0.075281
+3173 7404   0.102497
+3173 7406   1.000000
+3173 7408   0.022222
+3173 7410  -1.000000
+3174 4   0.031010
+3174 7411   1.000000
+3174 7413   0.039363
+3174 7417  -0.013107
+3174 7421   0.004754
+3174 7423  -1.000000
+3175 4   0.031010
+3175 7412   1.000000
+3175 7414   0.039363
+3175 7418  -0.013107
+3175 7422   0.004754
+3175 7424  -1.000000
+3176 4   0.128990
+3176 7413   0.078885
+3176 7415   1.000000
+3176 7417   0.058415
+3176 7421  -0.008310
+3176 7423  -1.000000
+3177 4   0.128990
+3177 7414   0.078885
+3177 7416   1.000000
+3177 7418   0.058415
+3177 7422  -0.008310
+3177 7424  -1.000000
+3178 4   0.200000
+3178 7413   0.075281
+3178 7417   0.102497
+3178 7419   1.000000
+3178 7421   0.022222
+3178 7423  -1.000000
+3179 4   0.200000
+3179 7414   0.075281
+3179 7418   0.102497
+3179 7420   1.000000
+3179 7422   0.022222
+3179 7424  -1.000000
+3180 4   0.031010
+3180 7425   1.000000
+3180 7427   0.039363
+3180 7431  -0.013107
+3180 7435   0.004754
+3180 7437  -1.000000
+3181 4   0.031010
+3181 7426   1.000000
+3181 7428   0.039363
+3181 7432  -0.013107
+3181 7436   0.004754
+3181 7438  -1.000000
+3182 4   0.128990
+3182 7427   0.078885
+3182 7429   1.000000
+3182 7431   0.058415
+3182 7435  -0.008310
+3182 7437  -1.000000
+3183 4   0.128990
+3183 7428   0.078885
+3183 7430   1.000000
+3183 7432   0.058415
+3183 7436  -0.008310
+3183 7438  -1.000000
+3184 4   0.200000
+3184 7427   0.075281
+3184 7431   0.102497
+3184 7433   1.000000
+3184 7435   0.022222
+3184 7437  -1.000000
+3185 4   0.200000
+3185 7428   0.075281
+3185 7432   0.102497
+3185 7434   1.000000
+3185 7436   0.022222
+3185 7438  -1.000000
+3186 4   0.031010
+3186 7439   1.000000
+3186 7441   0.039363
+3186 7445  -0.013107
+3186 7449   0.004754
+3186 7451  -1.000000
+3187 4   0.031010
+3187 7440   1.000000
+3187 7442   0.039363
+3187 7446  -0.013107
+3187 7450   0.004754
+3187 7452  -1.000000
+3188 4   0.128990
+3188 7441   0.078885
+3188 7443   1.000000
+3188 7445   0.058415
+3188 7449  -0.008310
+3188 7451  -1.000000
+3189 4   0.128990
+3189 7442   0.078885
+3189 7444   1.000000
+3189 7446   0.058415
+3189 7450  -0.008310
+3189 7452  -1.000000
+3190 4   0.200000
+3190 7441   0.075281
+3190 7445   0.102497
+3190 7447   1.000000
+3190 7449   0.022222
+3190 7451  -1.000000
+3191 4   0.200000
+3191 7442   0.075281
+3191 7446   0.102497
+3191 7448   1.000000
+3191 7450   0.022222
+3191 7452  -1.000000
+3192 4   0.031010
+3192 7453   1.000000
+3192 7455   0.039363
+3192 7459  -0.013107
+3192 7463   0.004754
+3192 7465  -1.000000
+3193 4   0.031010
+3193 7454   1.000000
+3193 7456   0.039363
+3193 7460  -0.013107
+3193 7464   0.004754
+3193 7466  -1.000000
+3194 4   0.128990
+3194 7455   0.078885
+3194 7457   1.000000
+3194 7459   0.058415
+3194 7463  -0.008310
+3194 7465  -1.000000
+3195 4   0.128990
+3195 7456   0.078885
+3195 7458   1.000000
+3195 7460   0.058415
+3195 7464  -0.008310
+3195 7466  -1.000000
+3196 4   0.200000
+3196 7455   0.075281
+3196 7459   0.102497
+3196 7461   1.000000
+3196 7463   0.022222
+3196 7465  -1.000000
+3197 4   0.200000
+3197 7456   0.075281
+3197 7460   0.102497
+3197 7462   1.000000
+3197 7464   0.022222
+3197 7466  -1.000000
+3198 4   0.031010
+3198 7467   1.000000
+3198 7469   0.039363
+3198 7473  -0.013107
+3198 7477   0.004754
+3198 7479  -1.000000
+3199 4   0.031010
+3199 7468   1.000000
+3199 7470   0.039363
+3199 7474  -0.013107
+3199 7478   0.004754
+3199 7480  -1.000000
+3200 4   0.128990
+3200 7469   0.078885
+3200 7471   1.000000
+3200 7473   0.058415
+3200 7477  -0.008310
+3200 7479  -1.000000
+3201 4   0.128990
+3201 7470   0.078885
+3201 7472   1.000000
+3201 7474   0.058415
+3201 7478  -0.008310
+3201 7480  -1.000000
+3202 4   0.200000
+3202 7469   0.075281
+3202 7473   0.102497
+3202 7475   1.000000
+3202 7477   0.022222
+3202 7479  -1.000000
+3203 4   0.200000
+3203 7470   0.075281
+3203 7474   0.102497
+3203 7476   1.000000
+3203 7478   0.022222
+3203 7480  -1.000000
+3204 4   0.031010
+3204 7481   1.000000
+3204 7483   0.039363
+3204 7487  -0.013107
+3204 7491   0.004754
+3204 7493  -1.000000
+3205 4   0.031010
+3205 7482   1.000000
+3205 7484   0.039363
+3205 7488  -0.013107
+3205 7492   0.004754
+3205 7494  -1.000000
+3206 4   0.128990
+3206 7483   0.078885
+3206 7485   1.000000
+3206 7487   0.058415
+3206 7491  -0.008310
+3206 7493  -1.000000
+3207 4   0.128990
+3207 7484   0.078885
+3207 7486   1.000000
+3207 7488   0.058415
+3207 7492  -0.008310
+3207 7494  -1.000000
+3208 4   0.200000
+3208 7483   0.075281
+3208 7487   0.102497
+3208 7489   1.000000
+3208 7491   0.022222
+3208 7493  -1.000000
+3209 4   0.200000
+3209 7484   0.075281
+3209 7488   0.102497
+3209 7490   1.000000
+3209 7492   0.022222
+3209 7494  -1.000000
+3210 4   0.031010
+3210 7495   1.000000
+3210 7497   0.039363
+3210 7501  -0.013107
+3210 7505   0.004754
+3210 7507  -1.000000
+3211 4   0.031010
+3211 7496   1.000000
+3211 7498   0.039363
+3211 7502  -0.013107
+3211 7506   0.004754
+3211 7508  -1.000000
+3212 4   0.128990
+3212 7497   0.078885
+3212 7499   1.000000
+3212 7501   0.058415
+3212 7505  -0.008310
+3212 7507  -1.000000
+3213 4   0.128990
+3213 7498   0.078885
+3213 7500   1.000000
+3213 7502   0.058415
+3213 7506  -0.008310
+3213 7508  -1.000000
+3214 4   0.200000
+3214 7497   0.075281
+3214 7501   0.102497
+3214 7503   1.000000
+3214 7505   0.022222
+3214 7507  -1.000000
+3215 4   0.200000
+3215 7498   0.075281
+3215 7502   0.102497
+3215 7504   1.000000
+3215 7506   0.022222
+3215 7508  -1.000000
+3216 4   0.031010
+3216 7509   1.000000
+3216 7511   0.039363
+3216 7515  -0.013107
+3216 7519   0.004754
+3216 7521  -1.000000
+3217 4   0.031010
+3217 7510   1.000000
+3217 7512   0.039363
+3217 7516  -0.013107
+3217 7520   0.004754
+3217 7522  -1.000000
+3218 4   0.128990
+3218 7511   0.078885
+3218 7513   1.000000
+3218 7515   0.058415
+3218 7519  -0.008310
+3218 7521  -1.000000
+3219 4   0.128990
+3219 7512   0.078885
+3219 7514   1.000000
+3219 7516   0.058415
+3219 7520  -0.008310
+3219 7522  -1.000000
+3220 4   0.200000
+3220 7511   0.075281
+3220 7515   0.102497
+3220 7517   1.000000
+3220 7519   0.022222
+3220 7521  -1.000000
+3221 4   0.200000
+3221 7512   0.075281
+3221 7516   0.102497
+3221 7518   1.000000
+3221 7520   0.022222
+3221 7522  -1.000000
+3222 4   0.031010
+3222 7523   1.000000
+3222 7525   0.039363
+3222 7529  -0.013107
+3222 7533   0.004754
+3222 7535  -1.000000
+3223 4   0.031010
+3223 7524   1.000000
+3223 7526   0.039363
+3223 7530  -0.013107
+3223 7534   0.004754
+3223 7536  -1.000000
+3224 4   0.128990
+3224 7525   0.078885
+3224 7527   1.000000
+3224 7529   0.058415
+3224 7533  -0.008310
+3224 7535  -1.000000
+3225 4   0.128990
+3225 7526   0.078885
+3225 7528   1.000000
+3225 7530   0.058415
+3225 7534  -0.008310
+3225 7536  -1.000000
+3226 4   0.200000
+3226 7525   0.075281
+3226 7529   0.102497
+3226 7531   1.000000
+3226 7533   0.022222
+3226 7535  -1.000000
+3227 4   0.200000
+3227 7526   0.075281
+3227 7530   0.102497
+3227 7532   1.000000
+3227 7534   0.022222
+3227 7536  -1.000000
+3228 4   0.031010
+3228 7537   1.000000
+3228 7539   0.039363
+3228 7543  -0.013107
+3228 7547   0.004754
+3228 7549  -1.000000
+3229 4   0.031010
+3229 7538   1.000000
+3229 7540   0.039363
+3229 7544  -0.013107
+3229 7548   0.004754
+3229 7550  -1.000000
+3230 4   0.128990
+3230 7539   0.078885
+3230 7541   1.000000
+3230 7543   0.058415
+3230 7547  -0.008310
+3230 7549  -1.000000
+3231 4   0.128990
+3231 7540   0.078885
+3231 7542   1.000000
+3231 7544   0.058415
+3231 7548  -0.008310
+3231 7550  -1.000000
+3232 4   0.200000
+3232 7539   0.075281
+3232 7543   0.102497
+3232 7545   1.000000
+3232 7547   0.022222
+3232 7549  -1.000000
+3233 4   0.200000
+3233 7540   0.075281
+3233 7544   0.102497
+3233 7546   1.000000
+3233 7548   0.022222
+3233 7550  -1.000000
+3234 4   0.031010
+3234 7551   1.000000
+3234 7553   0.039363
+3234 7557  -0.013107
+3234 7561   0.004754
+3234 7563  -1.000000
+3235 4   0.031010
+3235 7552   1.000000
+3235 7554   0.039363
+3235 7558  -0.013107
+3235 7562   0.004754
+3235 7564  -1.000000
+3236 4   0.128990
+3236 7553   0.078885
+3236 7555   1.000000
+3236 7557   0.058415
+3236 7561  -0.008310
+3236 7563  -1.000000
+3237 4   0.128990
+3237 7554   0.078885
+3237 7556   1.000000
+3237 7558   0.058415
+3237 7562  -0.008310
+3237 7564  -1.000000
+3238 4   0.200000
+3238 7553   0.075281
+3238 7557   0.102497
+3238 7559   1.000000
+3238 7561   0.022222
+3238 7563  -1.000000
+3239 4   0.200000
+3239 7554   0.075281
+3239 7558   0.102497
+3239 7560   1.000000
+3239 7562   0.022222
+3239 7564  -1.000000
+3240 4   0.031010
+3240 7565   1.000000
+3240 7567   0.039363
+3240 7571  -0.013107
+3240 7575   0.004754
+3240 7577  -1.000000
+3241 4   0.031010
+3241 7566   1.000000
+3241 7568   0.039363
+3241 7572  -0.013107
+3241 7576   0.004754
+3241 7578  -1.000000
+3242 4   0.128990
+3242 7567   0.078885
+3242 7569   1.000000
+3242 7571   0.058415
+3242 7575  -0.008310
+3242 7577  -1.000000
+3243 4   0.128990
+3243 7568   0.078885
+3243 7570   1.000000
+3243 7572   0.058415
+3243 7576  -0.008310
+3243 7578  -1.000000
+3244 4   0.200000
+3244 7567   0.075281
+3244 7571   0.102497
+3244 7573   1.000000
+3244 7575   0.022222
+3244 7577  -1.000000
+3245 4   0.200000
+3245 7568   0.075281
+3245 7572   0.102497
+3245 7574   1.000000
+3245 7576   0.022222
+3245 7578  -1.000000
+3246 4   0.031010
+3246 7579   1.000000
+3246 7581   0.039363
+3246 7585  -0.013107
+3246 7589   0.004754
+3246 7591  -1.000000
+3247 4   0.031010
+3247 7580   1.000000
+3247 7582   0.039363
+3247 7586  -0.013107
+3247 7590   0.004754
+3247 7592  -1.000000
+3248 4   0.128990
+3248 7581   0.078885
+3248 7583   1.000000
+3248 7585   0.058415
+3248 7589  -0.008310
+3248 7591  -1.000000
+3249 4   0.128990
+3249 7582   0.078885
+3249 7584   1.000000
+3249 7586   0.058415
+3249 7590  -0.008310
+3249 7592  -1.000000
+3250 4   0.200000
+3250 7581   0.075281
+3250 7585   0.102497
+3250 7587   1.000000
+3250 7589   0.022222
+3250 7591  -1.000000
+3251 4   0.200000
+3251 7582   0.075281
+3251 7586   0.102497
+3251 7588   1.000000
+3251 7590   0.022222
+3251 7592  -1.000000
+3252 4   0.031010
+3252 7593   1.000000
+3252 7595   0.039363
+3252 7599  -0.013107
+3252 7603   0.004754
+3252 7605  -1.000000
+3253 4   0.031010
+3253 7594   1.000000
+3253 7596   0.039363
+3253 7600  -0.013107
+3253 7604   0.004754
+3253 7606  -1.000000
+3254 4   0.128990
+3254 7595   0.078885
+3254 7597   1.000000
+3254 7599   0.058415
+3254 7603  -0.008310
+3254 7605  -1.000000
+3255 4   0.128990
+3255 7596   0.078885
+3255 7598   1.000000
+3255 7600   0.058415
+3255 7604  -0.008310
+3255 7606  -1.000000
+3256 4   0.200000
+3256 7595   0.075281
+3256 7599   0.102497
+3256 7601   1.000000
+3256 7603   0.022222
+3256 7605  -1.000000
+3257 4   0.200000
+3257 7596   0.075281
+3257 7600   0.102497
+3257 7602   1.000000
+3257 7604   0.022222
+3257 7606  -1.000000
+3258 4   0.031010
+3258 7607   1.000000
+3258 7609   0.039363
+3258 7613  -0.013107
+3258 7617   0.004754
+3258 7619  -1.000000
+3259 4   0.031010
+3259 7608   1.000000
+3259 7610   0.039363
+3259 7614  -0.013107
+3259 7618   0.004754
+3259 7620  -1.000000
+3260 4   0.128990
+3260 7609   0.078885
+3260 7611   1.000000
+3260 7613   0.058415
+3260 7617  -0.008310
+3260 7619  -1.000000
+3261 4   0.128990
+3261 7610   0.078885
+3261 7612   1.000000
+3261 7614   0.058415
+3261 7618  -0.008310
+3261 7620  -1.000000
+3262 4   0.200000
+3262 7609   0.075281
+3262 7613   0.102497
+3262 7615   1.000000
+3262 7617   0.022222
+3262 7619  -1.000000
+3263 4   0.200000
+3263 7610   0.075281
+3263 7614   0.102497
+3263 7616   1.000000
+3263 7618   0.022222
+3263 7620  -1.000000
+3264 4   0.031010
+3264 7621   1.000000
+3264 7623   0.039363
+3264 7627  -0.013107
+3264 7631   0.004754
+3264 7633  -1.000000
+3265 4   0.031010
+3265 7622   1.000000
+3265 7624   0.039363
+3265 7628  -0.013107
+3265 7632   0.004754
+3265 7634  -1.000000
+3266 4   0.128990
+3266 7623   0.078885
+3266 7625   1.000000
+3266 7627   0.058415
+3266 7631  -0.008310
+3266 7633  -1.000000
+3267 4   0.128990
+3267 7624   0.078885
+3267 7626   1.000000
+3267 7628   0.058415
+3267 7632  -0.008310
+3267 7634  -1.000000
+3268 4   0.200000
+3268 7623   0.075281
+3268 7627   0.102497
+3268 7629   1.000000
+3268 7631   0.022222
+3268 7633  -1.000000
+3269 4   0.200000
+3269 7624   0.075281
+3269 7628   0.102497
+3269 7630   1.000000
+3269 7632   0.022222
+3269 7634  -1.000000
+3270 4   0.031010
+3270 7635   1.000000
+3270 7637   0.039363
+3270 7641  -0.013107
+3270 7645   0.004754
+3270 7647  -1.000000
+3271 4   0.031010
+3271 7636   1.000000
+3271 7638   0.039363
+3271 7642  -0.013107
+3271 7646   0.004754
+3271 7648  -1.000000
+3272 4   0.128990
+3272 7637   0.078885
+3272 7639   1.000000
+3272 7641   0.058415
+3272 7645  -0.008310
+3272 7647  -1.000000
+3273 4   0.128990
+3273 7638   0.078885
+3273 7640   1.000000
+3273 7642   0.058415
+3273 7646  -0.008310
+3273 7648  -1.000000
+3274 4   0.200000
+3274 7637   0.075281
+3274 7641   0.102497
+3274 7643   1.000000
+3274 7645   0.022222
+3274 7647  -1.000000
+3275 4   0.200000
+3275 7638   0.075281
+3275 7642   0.102497
+3275 7644   1.000000
+3275 7646   0.022222
+3275 7648  -1.000000
+3276 4   0.031010
+3276 7649   1.000000
+3276 7651   0.039363
+3276 7655  -0.013107
+3276 7659   0.004754
+3276 7661  -1.000000
+3277 4   0.031010
+3277 7650   1.000000
+3277 7652   0.039363
+3277 7656  -0.013107
+3277 7660   0.004754
+3277 7662  -1.000000
+3278 4   0.128990
+3278 7651   0.078885
+3278 7653   1.000000
+3278 7655   0.058415
+3278 7659  -0.008310
+3278 7661  -1.000000
+3279 4   0.128990
+3279 7652   0.078885
+3279 7654   1.000000
+3279 7656   0.058415
+3279 7660  -0.008310
+3279 7662  -1.000000
+3280 4   0.200000
+3280 7651   0.075281
+3280 7655   0.102497
+3280 7657   1.000000
+3280 7659   0.022222
+3280 7661  -1.000000
+3281 4   0.200000
+3281 7652   0.075281
+3281 7656   0.102497
+3281 7658   1.000000
+3281 7660   0.022222
+3281 7662  -1.000000
+3282 4   0.031010
+3282 7663   1.000000
+3282 7665   0.039363
+3282 7669  -0.013107
+3282 7673   0.004754
+3282 7675  -1.000000
+3283 4   0.031010
+3283 7664   1.000000
+3283 7666   0.039363
+3283 7670  -0.013107
+3283 7674   0.004754
+3283 7676  -1.000000
+3284 4   0.128990
+3284 7665   0.078885
+3284 7667   1.000000
+3284 7669   0.058415
+3284 7673  -0.008310
+3284 7675  -1.000000
+3285 4   0.128990
+3285 7666   0.078885
+3285 7668   1.000000
+3285 7670   0.058415
+3285 7674  -0.008310
+3285 7676  -1.000000
+3286 4   0.200000
+3286 7665   0.075281
+3286 7669   0.102497
+3286 7671   1.000000
+3286 7673   0.022222
+3286 7675  -1.000000
+3287 4   0.200000
+3287 7666   0.075281
+3287 7670   0.102497
+3287 7672   1.000000
+3287 7674   0.022222
+3287 7676  -1.000000
+3288 4   0.031010
+3288 7677   1.000000
+3288 7679   0.039363
+3288 7683  -0.013107
+3288 7687   0.004754
+3288 7689  -1.000000
+3289 4   0.031010
+3289 7678   1.000000
+3289 7680   0.039363
+3289 7684  -0.013107
+3289 7688   0.004754
+3289 7690  -1.000000
+3290 4   0.128990
+3290 7679   0.078885
+3290 7681   1.000000
+3290 7683   0.058415
+3290 7687  -0.008310
+3290 7689  -1.000000
+3291 4   0.128990
+3291 7680   0.078885
+3291 7682   1.000000
+3291 7684   0.058415
+3291 7688  -0.008310
+3291 7690  -1.000000
+3292 4   0.200000
+3292 7679   0.075281
+3292 7683   0.102497
+3292 7685   1.000000
+3292 7687   0.022222
+3292 7689  -1.000000
+3293 4   0.200000
+3293 7680   0.075281
+3293 7684   0.102497
+3293 7686   1.000000
+3293 7688   0.022222
+3293 7690  -1.000000
+3294 4   0.031010
+3294 7691   1.000000
+3294 7693   0.039363
+3294 7697  -0.013107
+3294 7701   0.004754
+3294 7703  -1.000000
+3295 4   0.031010
+3295 7692   1.000000
+3295 7694   0.039363
+3295 7698  -0.013107
+3295 7702   0.004754
+3295 7704  -1.000000
+3296 4   0.128990
+3296 7693   0.078885
+3296 7695   1.000000
+3296 7697   0.058415
+3296 7701  -0.008310
+3296 7703  -1.000000
+3297 4   0.128990
+3297 7694   0.078885
+3297 7696   1.000000
+3297 7698   0.058415
+3297 7702  -0.008310
+3297 7704  -1.000000
+3298 4   0.200000
+3298 7693   0.075281
+3298 7697   0.102497
+3298 7699   1.000000
+3298 7701   0.022222
+3298 7703  -1.000000
+3299 4   0.200000
+3299 7694   0.075281
+3299 7698   0.102497
+3299 7700   1.000000
+3299 7702   0.022222
+3299 7704  -1.000000
+3300 4   0.031010
+3300 7705   1.000000
+3300 7707   0.039363
+3300 7711  -0.013107
+3300 7715   0.004754
+3300 7717  -1.000000
+3301 4   0.031010
+3301 7706   1.000000
+3301 7708   0.039363
+3301 7712  -0.013107
+3301 7716   0.004754
+3301 7718  -1.000000
+3302 4   0.128990
+3302 7707   0.078885
+3302 7709   1.000000
+3302 7711   0.058415
+3302 7715  -0.008310
+3302 7717  -1.000000
+3303 4   0.128990
+3303 7708   0.078885
+3303 7710   1.000000
+3303 7712   0.058415
+3303 7716  -0.008310
+3303 7718  -1.000000
+3304 4   0.200000
+3304 7707   0.075281
+3304 7711   0.102497
+3304 7713   1.000000
+3304 7715   0.022222
+3304 7717  -1.000000
+3305 4   0.200000
+3305 7708   0.075281
+3305 7712   0.102497
+3305 7714   1.000000
+3305 7716   0.022222
+3305 7718  -1.000000
+3306 4   0.031010
+3306 7719   1.000000
+3306 7721   0.039363
+3306 7725  -0.013107
+3306 7729   0.004754
+3306 7731  -1.000000
+3307 4   0.031010
+3307 7720   1.000000
+3307 7722   0.039363
+3307 7726  -0.013107
+3307 7730   0.004754
+3307 7732  -1.000000
+3308 4   0.128990
+3308 7721   0.078885
+3308 7723   1.000000
+3308 7725   0.058415
+3308 7729  -0.008310
+3308 7731  -1.000000
+3309 4   0.128990
+3309 7722   0.078885
+3309 7724   1.000000
+3309 7726   0.058415
+3309 7730  -0.008310
+3309 7732  -1.000000
+3310 4   0.200000
+3310 7721   0.075281
+3310 7725   0.102497
+3310 7727   1.000000
+3310 7729   0.022222
+3310 7731  -1.000000
+3311 4   0.200000
+3311 7722   0.075281
+3311 7726   0.102497
+3311 7728   1.000000
+3311 7730   0.022222
+3311 7732  -1.000000
+3312 4   0.031010
+3312 7733   1.000000
+3312 7735   0.039363
+3312 7739  -0.013107
+3312 7743   0.004754
+3312 7745  -1.000000
+3313 4   0.031010
+3313 7734   1.000000
+3313 7736   0.039363
+3313 7740  -0.013107
+3313 7744   0.004754
+3313 7746  -1.000000
+3314 4   0.128990
+3314 7735   0.078885
+3314 7737   1.000000
+3314 7739   0.058415
+3314 7743  -0.008310
+3314 7745  -1.000000
+3315 4   0.128990
+3315 7736   0.078885
+3315 7738   1.000000
+3315 7740   0.058415
+3315 7744  -0.008310
+3315 7746  -1.000000
+3316 4   0.200000
+3316 7735   0.075281
+3316 7739   0.102497
+3316 7741   1.000000
+3316 7743   0.022222
+3316 7745  -1.000000
+3317 4   0.200000
+3317 7736   0.075281
+3317 7740   0.102497
+3317 7742   1.000000
+3317 7744   0.022222
+3317 7746  -1.000000
+3318 4   0.031010
+3318 7747   1.000000
+3318 7749   0.039363
+3318 7753  -0.013107
+3318 7757   0.004754
+3318 7759  -1.000000
+3319 4   0.031010
+3319 7748   1.000000
+3319 7750   0.039363
+3319 7754  -0.013107
+3319 7758   0.004754
+3319 7760  -1.000000
+3320 4   0.128990
+3320 7749   0.078885
+3320 7751   1.000000
+3320 7753   0.058415
+3320 7757  -0.008310
+3320 7759  -1.000000
+3321 4   0.128990
+3321 7750   0.078885
+3321 7752   1.000000
+3321 7754   0.058415
+3321 7758  -0.008310
+3321 7760  -1.000000
+3322 4   0.200000
+3322 7749   0.075281
+3322 7753   0.102497
+3322 7755   1.000000
+3322 7757   0.022222
+3322 7759  -1.000000
+3323 4   0.200000
+3323 7750   0.075281
+3323 7754   0.102497
+3323 7756   1.000000
+3323 7758   0.022222
+3323 7760  -1.000000
+3324 4   0.031010
+3324 7761   1.000000
+3324 7763   0.039363
+3324 7767  -0.013107
+3324 7771   0.004754
+3324 7773  -1.000000
+3325 4   0.031010
+3325 7762   1.000000
+3325 7764   0.039363
+3325 7768  -0.013107
+3325 7772   0.004754
+3325 7774  -1.000000
+3326 4   0.128990
+3326 7763   0.078885
+3326 7765   1.000000
+3326 7767   0.058415
+3326 7771  -0.008310
+3326 7773  -1.000000
+3327 4   0.128990
+3327 7764   0.078885
+3327 7766   1.000000
+3327 7768   0.058415
+3327 7772  -0.008310
+3327 7774  -1.000000
+3328 4   0.200000
+3328 7763   0.075281
+3328 7767   0.102497
+3328 7769   1.000000
+3328 7771   0.022222
+3328 7773  -1.000000
+3329 4   0.200000
+3329 7764   0.075281
+3329 7768   0.102497
+3329 7770   1.000000
+3329 7772   0.022222
+3329 7774  -1.000000
+3330 4   0.031010
+3330 7775   1.000000
+3330 7777   0.039363
+3330 7781  -0.013107
+3330 7785   0.004754
+3330 7787  -1.000000
+3331 4   0.031010
+3331 7776   1.000000
+3331 7778   0.039363
+3331 7782  -0.013107
+3331 7786   0.004754
+3331 7788  -1.000000
+3332 4   0.128990
+3332 7777   0.078885
+3332 7779   1.000000
+3332 7781   0.058415
+3332 7785  -0.008310
+3332 7787  -1.000000
+3333 4   0.128990
+3333 7778   0.078885
+3333 7780   1.000000
+3333 7782   0.058415
+3333 7786  -0.008310
+3333 7788  -1.000000
+3334 4   0.200000
+3334 7777   0.075281
+3334 7781   0.102497
+3334 7783   1.000000
+3334 7785   0.022222
+3334 7787  -1.000000
+3335 4   0.200000
+3335 7778   0.075281
+3335 7782   0.102497
+3335 7784   1.000000
+3335 7786   0.022222
+3335 7788  -1.000000
+3336 4   0.031010
+3336 7789   1.000000
+3336 7791   0.039363
+3336 7795  -0.013107
+3336 7799   0.004754
+3336 7801  -1.000000
+3337 4   0.031010
+3337 7790   1.000000
+3337 7792   0.039363
+3337 7796  -0.013107
+3337 7800   0.004754
+3337 7802  -1.000000
+3338 4   0.128990
+3338 7791   0.078885
+3338 7793   1.000000
+3338 7795   0.058415
+3338 7799  -0.008310
+3338 7801  -1.000000
+3339 4   0.128990
+3339 7792   0.078885
+3339 7794   1.000000
+3339 7796   0.058415
+3339 7800  -0.008310
+3339 7802  -1.000000
+3340 4   0.200000
+3340 7791   0.075281
+3340 7795   0.102497
+3340 7797   1.000000
+3340 7799   0.022222
+3340 7801  -1.000000
+3341 4   0.200000
+3341 7792   0.075281
+3341 7796   0.102497
+3341 7798   1.000000
+3341 7800   0.022222
+3341 7802  -1.000000
+3342 4   0.031010
+3342 7803   1.000000
+3342 7805   0.039363
+3342 7809  -0.013107
+3342 7813   0.004754
+3342 7815  -1.000000
+3343 4   0.031010
+3343 7804   1.000000
+3343 7806   0.039363
+3343 7810  -0.013107
+3343 7814   0.004754
+3343 7816  -1.000000
+3344 4   0.128990
+3344 7805   0.078885
+3344 7807   1.000000
+3344 7809   0.058415
+3344 7813  -0.008310
+3344 7815  -1.000000
+3345 4   0.128990
+3345 7806   0.078885
+3345 7808   1.000000
+3345 7810   0.058415
+3345 7814  -0.008310
+3345 7816  -1.000000
+3346 4   0.200000
+3346 7805   0.075281
+3346 7809   0.102497
+3346 7811   1.000000
+3346 7813   0.022222
+3346 7815  -1.000000
+3347 4   0.200000
+3347 7806   0.075281
+3347 7810   0.102497
+3347 7812   1.000000
+3347 7814   0.022222
+3347 7816  -1.000000
+3348 4   0.031010
+3348 7817   1.000000
+3348 7819   0.039363
+3348 7823  -0.013107
+3348 7827   0.004754
+3348 7829  -1.000000
+3349 4   0.031010
+3349 7818   1.000000
+3349 7820   0.039363
+3349 7824  -0.013107
+3349 7828   0.004754
+3349 7830  -1.000000
+3350 4   0.128990
+3350 7819   0.078885
+3350 7821   1.000000
+3350 7823   0.058415
+3350 7827  -0.008310
+3350 7829  -1.000000
+3351 4   0.128990
+3351 7820   0.078885
+3351 7822   1.000000
+3351 7824   0.058415
+3351 7828  -0.008310
+3351 7830  -1.000000
+3352 4   0.200000
+3352 7819   0.075281
+3352 7823   0.102497
+3352 7825   1.000000
+3352 7827   0.022222
+3352 7829  -1.000000
+3353 4   0.200000
+3353 7820   0.075281
+3353 7824   0.102497
+3353 7826   1.000000
+3353 7828   0.022222
+3353 7830  -1.000000
+3354 4   0.031010
+3354 7831   1.000000
+3354 7833   0.039363
+3354 7837  -0.013107
+3354 7841   0.004754
+3354 7843  -1.000000
+3355 4   0.031010
+3355 7832   1.000000
+3355 7834   0.039363
+3355 7838  -0.013107
+3355 7842   0.004754
+3355 7844  -1.000000
+3356 4   0.128990
+3356 7833   0.078885
+3356 7835   1.000000
+3356 7837   0.058415
+3356 7841  -0.008310
+3356 7843  -1.000000
+3357 4   0.128990
+3357 7834   0.078885
+3357 7836   1.000000
+3357 7838   0.058415
+3357 7842  -0.008310
+3357 7844  -1.000000
+3358 4   0.200000
+3358 7833   0.075281
+3358 7837   0.102497
+3358 7839   1.000000
+3358 7841   0.022222
+3358 7843  -1.000000
+3359 4   0.200000
+3359 7834   0.075281
+3359 7838   0.102497
+3359 7840   1.000000
+3359 7842   0.022222
+3359 7844  -1.000000
+3360 4   0.031010
+3360 7845   1.000000
+3360 7847   0.039363
+3360 7851  -0.013107
+3360 7855   0.004754
+3360 7857  -1.000000
+3361 4   0.031010
+3361 7846   1.000000
+3361 7848   0.039363
+3361 7852  -0.013107
+3361 7856   0.004754
+3361 7858  -1.000000
+3362 4   0.128990
+3362 7847   0.078885
+3362 7849   1.000000
+3362 7851   0.058415
+3362 7855  -0.008310
+3362 7857  -1.000000
+3363 4   0.128990
+3363 7848   0.078885
+3363 7850   1.000000
+3363 7852   0.058415
+3363 7856  -0.008310
+3363 7858  -1.000000
+3364 4   0.200000
+3364 7847   0.075281
+3364 7851   0.102497
+3364 7853   1.000000
+3364 7855   0.022222
+3364 7857  -1.000000
+3365 4   0.200000
+3365 7848   0.075281
+3365 7852   0.102497
+3365 7854   1.000000
+3365 7856   0.022222
+3365 7858  -1.000000
+3366 4   0.031010
+3366 7859   1.000000
+3366 7861   0.039363
+3366 7865  -0.013107
+3366 7869   0.004754
+3366 7871  -1.000000
+3367 4   0.031010
+3367 7860   1.000000
+3367 7862   0.039363
+3367 7866  -0.013107
+3367 7870   0.004754
+3367 7872  -1.000000
+3368 4   0.128990
+3368 7861   0.078885
+3368 7863   1.000000
+3368 7865   0.058415
+3368 7869  -0.008310
+3368 7871  -1.000000
+3369 4   0.128990
+3369 7862   0.078885
+3369 7864   1.000000
+3369 7866   0.058415
+3369 7870  -0.008310
+3369 7872  -1.000000
+3370 4   0.200000
+3370 7861   0.075281
+3370 7865   0.102497
+3370 7867   1.000000
+3370 7869   0.022222
+3370 7871  -1.000000
+3371 4   0.200000
+3371 7862   0.075281
+3371 7866   0.102497
+3371 7868   1.000000
+3371 7870   0.022222
+3371 7872  -1.000000
+3372 4   0.031010
+3372 7873   1.000000
+3372 7875   0.039363
+3372 7879  -0.013107
+3372 7883   0.004754
+3372 7885  -1.000000
+3373 4   0.031010
+3373 7874   1.000000
+3373 7876   0.039363
+3373 7880  -0.013107
+3373 7884   0.004754
+3373 7886  -1.000000
+3374 4   0.128990
+3374 7875   0.078885
+3374 7877   1.000000
+3374 7879   0.058415
+3374 7883  -0.008310
+3374 7885  -1.000000
+3375 4   0.128990
+3375 7876   0.078885
+3375 7878   1.000000
+3375 7880   0.058415
+3375 7884  -0.008310
+3375 7886  -1.000000
+3376 4   0.200000
+3376 7875   0.075281
+3376 7879   0.102497
+3376 7881   1.000000
+3376 7883   0.022222
+3376 7885  -1.000000
+3377 4   0.200000
+3377 7876   0.075281
+3377 7880   0.102497
+3377 7882   1.000000
+3377 7884   0.022222
+3377 7886  -1.000000
+3378 4   0.031010
+3378 7887   1.000000
+3378 7889   0.039363
+3378 7893  -0.013107
+3378 7897   0.004754
+3378 7899  -1.000000
+3379 4   0.031010
+3379 7888   1.000000
+3379 7890   0.039363
+3379 7894  -0.013107
+3379 7898   0.004754
+3379 7900  -1.000000
+3380 4   0.128990
+3380 7889   0.078885
+3380 7891   1.000000
+3380 7893   0.058415
+3380 7897  -0.008310
+3380 7899  -1.000000
+3381 4   0.128990
+3381 7890   0.078885
+3381 7892   1.000000
+3381 7894   0.058415
+3381 7898  -0.008310
+3381 7900  -1.000000
+3382 4   0.200000
+3382 7889   0.075281
+3382 7893   0.102497
+3382 7895   1.000000
+3382 7897   0.022222
+3382 7899  -1.000000
+3383 4   0.200000
+3383 7890   0.075281
+3383 7894   0.102497
+3383 7896   1.000000
+3383 7898   0.022222
+3383 7900  -1.000000
+3384 4   0.031010
+3384 7901   1.000000
+3384 7903   0.039363
+3384 7907  -0.013107
+3384 7911   0.004754
+3384 7913  -1.000000
+3385 4   0.031010
+3385 7902   1.000000
+3385 7904   0.039363
+3385 7908  -0.013107
+3385 7912   0.004754
+3385 7914  -1.000000
+3386 4   0.128990
+3386 7903   0.078885
+3386 7905   1.000000
+3386 7907   0.058415
+3386 7911  -0.008310
+3386 7913  -1.000000
+3387 4   0.128990
+3387 7904   0.078885
+3387 7906   1.000000
+3387 7908   0.058415
+3387 7912  -0.008310
+3387 7914  -1.000000
+3388 4   0.200000
+3388 7903   0.075281
+3388 7907   0.102497
+3388 7909   1.000000
+3388 7911   0.022222
+3388 7913  -1.000000
+3389 4   0.200000
+3389 7904   0.075281
+3389 7908   0.102497
+3389 7910   1.000000
+3389 7912   0.022222
+3389 7914  -1.000000
+3390 4   0.031010
+3390 7915   1.000000
+3390 7917   0.039363
+3390 7921  -0.013107
+3390 7925   0.004754
+3390 7927  -1.000000
+3391 4   0.031010
+3391 7916   1.000000
+3391 7918   0.039363
+3391 7922  -0.013107
+3391 7926   0.004754
+3391 7928  -1.000000
+3392 4   0.128990
+3392 7917   0.078885
+3392 7919   1.000000
+3392 7921   0.058415
+3392 7925  -0.008310
+3392 7927  -1.000000
+3393 4   0.128990
+3393 7918   0.078885
+3393 7920   1.000000
+3393 7922   0.058415
+3393 7926  -0.008310
+3393 7928  -1.000000
+3394 4   0.200000
+3394 7917   0.075281
+3394 7921   0.102497
+3394 7923   1.000000
+3394 7925   0.022222
+3394 7927  -1.000000
+3395 4   0.200000
+3395 7918   0.075281
+3395 7922   0.102497
+3395 7924   1.000000
+3395 7926   0.022222
+3395 7928  -1.000000
+3396 4   0.031010
+3396 7929   1.000000
+3396 7931   0.039363
+3396 7935  -0.013107
+3396 7939   0.004754
+3396 7941  -1.000000
+3397 4   0.031010
+3397 7930   1.000000
+3397 7932   0.039363
+3397 7936  -0.013107
+3397 7940   0.004754
+3397 7942  -1.000000
+3398 4   0.128990
+3398 7931   0.078885
+3398 7933   1.000000
+3398 7935   0.058415
+3398 7939  -0.008310
+3398 7941  -1.000000
+3399 4   0.128990
+3399 7932   0.078885
+3399 7934   1.000000
+3399 7936   0.058415
+3399 7940  -0.008310
+3399 7942  -1.000000
+3400 4   0.200000
+3400 7931   0.075281
+3400 7935   0.102497
+3400 7937   1.000000
+3400 7939   0.022222
+3400 7941  -1.000000
+3401 4   0.200000
+3401 7932   0.075281
+3401 7936   0.102497
+3401 7938   1.000000
+3401 7940   0.022222
+3401 7942  -1.000000
+3402 4   0.031010
+3402 7943   1.000000
+3402 7945   0.039363
+3402 7949  -0.013107
+3402 7953   0.004754
+3402 7955  -1.000000
+3403 4   0.031010
+3403 7944   1.000000
+3403 7946   0.039363
+3403 7950  -0.013107
+3403 7954   0.004754
+3403 7956  -1.000000
+3404 4   0.128990
+3404 7945   0.078885
+3404 7947   1.000000
+3404 7949   0.058415
+3404 7953  -0.008310
+3404 7955  -1.000000
+3405 4   0.128990
+3405 7946   0.078885
+3405 7948   1.000000
+3405 7950   0.058415
+3405 7954  -0.008310
+3405 7956  -1.000000
+3406 4   0.200000
+3406 7945   0.075281
+3406 7949   0.102497
+3406 7951   1.000000
+3406 7953   0.022222
+3406 7955  -1.000000
+3407 4   0.200000
+3407 7946   0.075281
+3407 7950   0.102497
+3407 7952   1.000000
+3407 7954   0.022222
+3407 7956  -1.000000
+3408 4   0.031010
+3408 7957   1.000000
+3408 7959   0.039363
+3408 7963  -0.013107
+3408 7967   0.004754
+3408 7969  -1.000000
+3409 4   0.031010
+3409 7958   1.000000
+3409 7960   0.039363
+3409 7964  -0.013107
+3409 7968   0.004754
+3409 7970  -1.000000
+3410 4   0.128990
+3410 7959   0.078885
+3410 7961   1.000000
+3410 7963   0.058415
+3410 7967  -0.008310
+3410 7969  -1.000000
+3411 4   0.128990
+3411 7960   0.078885
+3411 7962   1.000000
+3411 7964   0.058415
+3411 7968  -0.008310
+3411 7970  -1.000000
+3412 4   0.200000
+3412 7959   0.075281
+3412 7963   0.102497
+3412 7965   1.000000
+3412 7967   0.022222
+3412 7969  -1.000000
+3413 4   0.200000
+3413 7960   0.075281
+3413 7964   0.102497
+3413 7966   1.000000
+3413 7968   0.022222
+3413 7970  -1.000000
+3414 4   0.031010
+3414 7971   1.000000
+3414 7973   0.039363
+3414 7977  -0.013107
+3414 7981   0.004754
+3414 7983  -1.000000
+3415 4   0.031010
+3415 7972   1.000000
+3415 7974   0.039363
+3415 7978  -0.013107
+3415 7982   0.004754
+3415 7984  -1.000000
+3416 4   0.128990
+3416 7973   0.078885
+3416 7975   1.000000
+3416 7977   0.058415
+3416 7981  -0.008310
+3416 7983  -1.000000
+3417 4   0.128990
+3417 7974   0.078885
+3417 7976   1.000000
+3417 7978   0.058415
+3417 7982  -0.008310
+3417 7984  -1.000000
+3418 4   0.200000
+3418 7973   0.075281
+3418 7977   0.102497
+3418 7979   1.000000
+3418 7981   0.022222
+3418 7983  -1.000000
+3419 4   0.200000
+3419 7974   0.075281
+3419 7978   0.102497
+3419 7980   1.000000
+3419 7982   0.022222
+3419 7984  -1.000000
+3420 4   0.031010
+3420 7985   1.000000
+3420 7987   0.039363
+3420 7991  -0.013107
+3420 7995   0.004754
+3420 7997  -1.000000
+3421 4   0.031010
+3421 7986   1.000000
+3421 7988   0.039363
+3421 7992  -0.013107
+3421 7996   0.004754
+3421 7998  -1.000000
+3422 4   0.128990
+3422 7987   0.078885
+3422 7989   1.000000
+3422 7991   0.058415
+3422 7995  -0.008310
+3422 7997  -1.000000
+3423 4   0.128990
+3423 7988   0.078885
+3423 7990   1.000000
+3423 7992   0.058415
+3423 7996  -0.008310
+3423 7998  -1.000000
+3424 4   0.200000
+3424 7987   0.075281
+3424 7991   0.102497
+3424 7993   1.000000
+3424 7995   0.022222
+3424 7997  -1.000000
+3425 4   0.200000
+3425 7988   0.075281
+3425 7992   0.102497
+3425 7994   1.000000
+3425 7996   0.022222
+3425 7998  -1.000000
+3426 4   0.031010
+3426 7999   1.000000
+3426 8001   0.039363
+3426 8005  -0.013107
+3426 8009   0.004754
+3426 8011  -1.000000
+3427 4   0.031010
+3427 8000   1.000000
+3427 8002   0.039363
+3427 8006  -0.013107
+3427 8010   0.004754
+3427 8012  -1.000000
+3428 4   0.128990
+3428 8001   0.078885
+3428 8003   1.000000
+3428 8005   0.058415
+3428 8009  -0.008310
+3428 8011  -1.000000
+3429 4   0.128990
+3429 8002   0.078885
+3429 8004   1.000000
+3429 8006   0.058415
+3429 8010  -0.008310
+3429 8012  -1.000000
+3430 4   0.200000
+3430 8001   0.075281
+3430 8005   0.102497
+3430 8007   1.000000
+3430 8009   0.022222
+3430 8011  -1.000000
+3431 4   0.200000
+3431 8002   0.075281
+3431 8006   0.102497
+3431 8008   1.000000
+3431 8010   0.022222
+3431 8012  -1.000000
+3432 4   0.031010
+3432 8013   1.000000
+3432 8015   0.039363
+3432 8019  -0.013107
+3432 8023   0.004754
+3432 8025  -1.000000
+3433 4   0.031010
+3433 8014   1.000000
+3433 8016   0.039363
+3433 8020  -0.013107
+3433 8024   0.004754
+3433 8026  -1.000000
+3434 4   0.128990
+3434 8015   0.078885
+3434 8017   1.000000
+3434 8019   0.058415
+3434 8023  -0.008310
+3434 8025  -1.000000
+3435 4   0.128990
+3435 8016   0.078885
+3435 8018   1.000000
+3435 8020   0.058415
+3435 8024  -0.008310
+3435 8026  -1.000000
+3436 4   0.200000
+3436 8015   0.075281
+3436 8019   0.102497
+3436 8021   1.000000
+3436 8023   0.022222
+3436 8025  -1.000000
+3437 4   0.200000
+3437 8016   0.075281
+3437 8020   0.102497
+3437 8022   1.000000
+3437 8024   0.022222
+3437 8026  -1.000000
+3438 4   0.031010
+3438 8027   1.000000
+3438 8029   0.039363
+3438 8033  -0.013107
+3438 8037   0.004754
+3438 8039  -1.000000
+3439 4   0.031010
+3439 8028   1.000000
+3439 8030   0.039363
+3439 8034  -0.013107
+3439 8038   0.004754
+3439 8040  -1.000000
+3440 4   0.128990
+3440 8029   0.078885
+3440 8031   1.000000
+3440 8033   0.058415
+3440 8037  -0.008310
+3440 8039  -1.000000
+3441 4   0.128990
+3441 8030   0.078885
+3441 8032   1.000000
+3441 8034   0.058415
+3441 8038  -0.008310
+3441 8040  -1.000000
+3442 4   0.200000
+3442 8029   0.075281
+3442 8033   0.102497
+3442 8035   1.000000
+3442 8037   0.022222
+3442 8039  -1.000000
+3443 4   0.200000
+3443 8030   0.075281
+3443 8034   0.102497
+3443 8036   1.000000
+3443 8038   0.022222
+3443 8040  -1.000000
+3444 4   0.031010
+3444 8041   1.000000
+3444 8043   0.039363
+3444 8047  -0.013107
+3444 8051   0.004754
+3444 8053  -1.000000
+3445 4   0.031010
+3445 8042   1.000000
+3445 8044   0.039363
+3445 8048  -0.013107
+3445 8052   0.004754
+3445 8054  -1.000000
+3446 4   0.128990
+3446 8043   0.078885
+3446 8045   1.000000
+3446 8047   0.058415
+3446 8051  -0.008310
+3446 8053  -1.000000
+3447 4   0.128990
+3447 8044   0.078885
+3447 8046   1.000000
+3447 8048   0.058415
+3447 8052  -0.008310
+3447 8054  -1.000000
+3448 4   0.200000
+3448 8043   0.075281
+3448 8047   0.102497
+3448 8049   1.000000
+3448 8051   0.022222
+3448 8053  -1.000000
+3449 4   0.200000
+3449 8044   0.075281
+3449 8048   0.102497
+3449 8050   1.000000
+3449 8052   0.022222
+3449 8054  -1.000000
+3450 4   0.031010
+3450 8055   1.000000
+3450 8057   0.039363
+3450 8061  -0.013107
+3450 8065   0.004754
+3450 8067  -1.000000
+3451 4   0.031010
+3451 8056   1.000000
+3451 8058   0.039363
+3451 8062  -0.013107
+3451 8066   0.004754
+3451 8068  -1.000000
+3452 4   0.128990
+3452 8057   0.078885
+3452 8059   1.000000
+3452 8061   0.058415
+3452 8065  -0.008310
+3452 8067  -1.000000
+3453 4   0.128990
+3453 8058   0.078885
+3453 8060   1.000000
+3453 8062   0.058415
+3453 8066  -0.008310
+3453 8068  -1.000000
+3454 4   0.200000
+3454 8057   0.075281
+3454 8061   0.102497
+3454 8063   1.000000
+3454 8065   0.022222
+3454 8067  -1.000000
+3455 4   0.200000
+3455 8058   0.075281
+3455 8062   0.102497
+3455 8064   1.000000
+3455 8066   0.022222
+3455 8068  -1.000000
+3456 4   0.031010
+3456 8069   1.000000
+3456 8071   0.039363
+3456 8075  -0.013107
+3456 8079   0.004754
+3456 8081  -1.000000
+3457 4   0.031010
+3457 8070   1.000000
+3457 8072   0.039363
+3457 8076  -0.013107
+3457 8080   0.004754
+3457 8082  -1.000000
+3458 4   0.128990
+3458 8071   0.078885
+3458 8073   1.000000
+3458 8075   0.058415
+3458 8079  -0.008310
+3458 8081  -1.000000
+3459 4   0.128990
+3459 8072   0.078885
+3459 8074   1.000000
+3459 8076   0.058415
+3459 8080  -0.008310
+3459 8082  -1.000000
+3460 4   0.200000
+3460 8071   0.075281
+3460 8075   0.102497
+3460 8077   1.000000
+3460 8079   0.022222
+3460 8081  -1.000000
+3461 4   0.200000
+3461 8072   0.075281
+3461 8076   0.102497
+3461 8078   1.000000
+3461 8080   0.022222
+3461 8082  -1.000000
+3462 4   0.031010
+3462 8083   1.000000
+3462 8085   0.039363
+3462 8089  -0.013107
+3462 8093   0.004754
+3462 8095  -1.000000
+3463 4   0.031010
+3463 8084   1.000000
+3463 8086   0.039363
+3463 8090  -0.013107
+3463 8094   0.004754
+3463 8096  -1.000000
+3464 4   0.128990
+3464 8085   0.078885
+3464 8087   1.000000
+3464 8089   0.058415
+3464 8093  -0.008310
+3464 8095  -1.000000
+3465 4   0.128990
+3465 8086   0.078885
+3465 8088   1.000000
+3465 8090   0.058415
+3465 8094  -0.008310
+3465 8096  -1.000000
+3466 4   0.200000
+3466 8085   0.075281
+3466 8089   0.102497
+3466 8091   1.000000
+3466 8093   0.022222
+3466 8095  -1.000000
+3467 4   0.200000
+3467 8086   0.075281
+3467 8090   0.102497
+3467 8092   1.000000
+3467 8094   0.022222
+3467 8096  -1.000000
+3468 4   0.031010
+3468 8097   1.000000
+3468 8099   0.039363
+3468 8103  -0.013107
+3468 8107   0.004754
+3468 8109  -1.000000
+3469 4   0.031010
+3469 8098   1.000000
+3469 8100   0.039363
+3469 8104  -0.013107
+3469 8108   0.004754
+3469 8110  -1.000000
+3470 4   0.128990
+3470 8099   0.078885
+3470 8101   1.000000
+3470 8103   0.058415
+3470 8107  -0.008310
+3470 8109  -1.000000
+3471 4   0.128990
+3471 8100   0.078885
+3471 8102   1.000000
+3471 8104   0.058415
+3471 8108  -0.008310
+3471 8110  -1.000000
+3472 4   0.200000
+3472 8099   0.075281
+3472 8103   0.102497
+3472 8105   1.000000
+3472 8107   0.022222
+3472 8109  -1.000000
+3473 4   0.200000
+3473 8100   0.075281
+3473 8104   0.102497
+3473 8106   1.000000
+3473 8108   0.022222
+3473 8110  -1.000000
+3474 4   0.031010
+3474 8111   1.000000
+3474 8113   0.039363
+3474 8117  -0.013107
+3474 8121   0.004754
+3474 8123  -1.000000
+3475 4   0.031010
+3475 8112   1.000000
+3475 8114   0.039363
+3475 8118  -0.013107
+3475 8122   0.004754
+3475 8124  -1.000000
+3476 4   0.128990
+3476 8113   0.078885
+3476 8115   1.000000
+3476 8117   0.058415
+3476 8121  -0.008310
+3476 8123  -1.000000
+3477 4   0.128990
+3477 8114   0.078885
+3477 8116   1.000000
+3477 8118   0.058415
+3477 8122  -0.008310
+3477 8124  -1.000000
+3478 4   0.200000
+3478 8113   0.075281
+3478 8117   0.102497
+3478 8119   1.000000
+3478 8121   0.022222
+3478 8123  -1.000000
+3479 4   0.200000
+3479 8114   0.075281
+3479 8118   0.102497
+3479 8120   1.000000
+3479 8122   0.022222
+3479 8124  -1.000000
+3480 4   0.031010
+3480 8125   1.000000
+3480 8127   0.039363
+3480 8131  -0.013107
+3480 8135   0.004754
+3480 8137  -1.000000
+3481 4   0.031010
+3481 8126   1.000000
+3481 8128   0.039363
+3481 8132  -0.013107
+3481 8136   0.004754
+3481 8138  -1.000000
+3482 4   0.128990
+3482 8127   0.078885
+3482 8129   1.000000
+3482 8131   0.058415
+3482 8135  -0.008310
+3482 8137  -1.000000
+3483 4   0.128990
+3483 8128   0.078885
+3483 8130   1.000000
+3483 8132   0.058415
+3483 8136  -0.008310
+3483 8138  -1.000000
+3484 4   0.200000
+3484 8127   0.075281
+3484 8131   0.102497
+3484 8133   1.000000
+3484 8135   0.022222
+3484 8137  -1.000000
+3485 4   0.200000
+3485 8128   0.075281
+3485 8132   0.102497
+3485 8134   1.000000
+3485 8136   0.022222
+3485 8138  -1.000000
+3486 4   0.031010
+3486 8139   1.000000
+3486 8141   0.039363
+3486 8145  -0.013107
+3486 8149   0.004754
+3486 8151  -1.000000
+3487 4   0.031010
+3487 8140   1.000000
+3487 8142   0.039363
+3487 8146  -0.013107
+3487 8150   0.004754
+3487 8152  -1.000000
+3488 4   0.128990
+3488 8141   0.078885
+3488 8143   1.000000
+3488 8145   0.058415
+3488 8149  -0.008310
+3488 8151  -1.000000
+3489 4   0.128990
+3489 8142   0.078885
+3489 8144   1.000000
+3489 8146   0.058415
+3489 8150  -0.008310
+3489 8152  -1.000000
+3490 4   0.200000
+3490 8141   0.075281
+3490 8145   0.102497
+3490 8147   1.000000
+3490 8149   0.022222
+3490 8151  -1.000000
+3491 4   0.200000
+3491 8142   0.075281
+3491 8146   0.102497
+3491 8148   1.000000
+3491 8150   0.022222
+3491 8152  -1.000000
+3492 4   0.031010
+3492 8153   1.000000
+3492 8155   0.039363
+3492 8159  -0.013107
+3492 8163   0.004754
+3492 8165  -1.000000
+3493 4   0.031010
+3493 8154   1.000000
+3493 8156   0.039363
+3493 8160  -0.013107
+3493 8164   0.004754
+3493 8166  -1.000000
+3494 4   0.128990
+3494 8155   0.078885
+3494 8157   1.000000
+3494 8159   0.058415
+3494 8163  -0.008310
+3494 8165  -1.000000
+3495 4   0.128990
+3495 8156   0.078885
+3495 8158   1.000000
+3495 8160   0.058415
+3495 8164  -0.008310
+3495 8166  -1.000000
+3496 4   0.200000
+3496 8155   0.075281
+3496 8159   0.102497
+3496 8161   1.000000
+3496 8163   0.022222
+3496 8165  -1.000000
+3497 4   0.200000
+3497 8156   0.075281
+3497 8160   0.102497
+3497 8162   1.000000
+3497 8164   0.022222
+3497 8166  -1.000000
+3498 4   0.031010
+3498 8167   1.000000
+3498 8169   0.039363
+3498 8173  -0.013107
+3498 8177   0.004754
+3498 8179  -1.000000
+3499 4   0.031010
+3499 8168   1.000000
+3499 8170   0.039363
+3499 8174  -0.013107
+3499 8178   0.004754
+3499 8180  -1.000000
+3500 4   0.128990
+3500 8169   0.078885
+3500 8171   1.000000
+3500 8173   0.058415
+3500 8177  -0.008310
+3500 8179  -1.000000
+3501 4   0.128990
+3501 8170   0.078885
+3501 8172   1.000000
+3501 8174   0.058415
+3501 8178  -0.008310
+3501 8180  -1.000000
+3502 4   0.200000
+3502 8169   0.075281
+3502 8173   0.102497
+3502 8175   1.000000
+3502 8177   0.022222
+3502 8179  -1.000000
+3503 4   0.200000
+3503 8170   0.075281
+3503 8174   0.102497
+3503 8176   1.000000
+3503 8178   0.022222
+3503 8180  -1.000000
+3504 4   0.031010
+3504 8181   1.000000
+3504 8183   0.039363
+3504 8187  -0.013107
+3504 8191   0.004754
+3504 8193  -1.000000
+3505 4   0.031010
+3505 8182   1.000000
+3505 8184   0.039363
+3505 8188  -0.013107
+3505 8192   0.004754
+3505 8194  -1.000000
+3506 4   0.128990
+3506 8183   0.078885
+3506 8185   1.000000
+3506 8187   0.058415
+3506 8191  -0.008310
+3506 8193  -1.000000
+3507 4   0.128990
+3507 8184   0.078885
+3507 8186   1.000000
+3507 8188   0.058415
+3507 8192  -0.008310
+3507 8194  -1.000000
+3508 4   0.200000
+3508 8183   0.075281
+3508 8187   0.102497
+3508 8189   1.000000
+3508 8191   0.022222
+3508 8193  -1.000000
+3509 4   0.200000
+3509 8184   0.075281
+3509 8188   0.102497
+3509 8190   1.000000
+3509 8192   0.022222
+3509 8194  -1.000000
+3510 4   0.031010
+3510 8195   1.000000
+3510 8197   0.039363
+3510 8201  -0.013107
+3510 8205   0.004754
+3510 8207  -1.000000
+3511 4   0.031010
+3511 8196   1.000000
+3511 8198   0.039363
+3511 8202  -0.013107
+3511 8206   0.004754
+3511 8208  -1.000000
+3512 4   0.128990
+3512 8197   0.078885
+3512 8199   1.000000
+3512 8201   0.058415
+3512 8205  -0.008310
+3512 8207  -1.000000
+3513 4   0.128990
+3513 8198   0.078885
+3513 8200   1.000000
+3513 8202   0.058415
+3513 8206  -0.008310
+3513 8208  -1.000000
+3514 4   0.200000
+3514 8197   0.075281
+3514 8201   0.102497
+3514 8203   1.000000
+3514 8205   0.022222
+3514 8207  -1.000000
+3515 4   0.200000
+3515 8198   0.075281
+3515 8202   0.102497
+3515 8204   1.000000
+3515 8206   0.022222
+3515 8208  -1.000000
+3516 4   0.031010
+3516 8209   1.000000
+3516 8211   0.039363
+3516 8215  -0.013107
+3516 8219   0.004754
+3516 8221  -1.000000
+3517 4   0.031010
+3517 8210   1.000000
+3517 8212   0.039363
+3517 8216  -0.013107
+3517 8220   0.004754
+3517 8222  -1.000000
+3518 4   0.128990
+3518 8211   0.078885
+3518 8213   1.000000
+3518 8215   0.058415
+3518 8219  -0.008310
+3518 8221  -1.000000
+3519 4   0.128990
+3519 8212   0.078885
+3519 8214   1.000000
+3519 8216   0.058415
+3519 8220  -0.008310
+3519 8222  -1.000000
+3520 4   0.200000
+3520 8211   0.075281
+3520 8215   0.102497
+3520 8217   1.000000
+3520 8219   0.022222
+3520 8221  -1.000000
+3521 4   0.200000
+3521 8212   0.075281
+3521 8216   0.102497
+3521 8218   1.000000
+3521 8220   0.022222
+3521 8222  -1.000000
+3522 4   0.031010
+3522 8223   1.000000
+3522 8225   0.039363
+3522 8229  -0.013107
+3522 8233   0.004754
+3522 8235  -1.000000
+3523 4   0.031010
+3523 8224   1.000000
+3523 8226   0.039363
+3523 8230  -0.013107
+3523 8234   0.004754
+3523 8236  -1.000000
+3524 4   0.128990
+3524 8225   0.078885
+3524 8227   1.000000
+3524 8229   0.058415
+3524 8233  -0.008310
+3524 8235  -1.000000
+3525 4   0.128990
+3525 8226   0.078885
+3525 8228   1.000000
+3525 8230   0.058415
+3525 8234  -0.008310
+3525 8236  -1.000000
+3526 4   0.200000
+3526 8225   0.075281
+3526 8229   0.102497
+3526 8231   1.000000
+3526 8233   0.022222
+3526 8235  -1.000000
+3527 4   0.200000
+3527 8226   0.075281
+3527 8230   0.102497
+3527 8232   1.000000
+3527 8234   0.022222
+3527 8236  -1.000000
+3528 4   0.031010
+3528 8237   1.000000
+3528 8239   0.039363
+3528 8243  -0.013107
+3528 8247   0.004754
+3528 8249  -1.000000
+3529 4   0.031010
+3529 8238   1.000000
+3529 8240   0.039363
+3529 8244  -0.013107
+3529 8248   0.004754
+3529 8250  -1.000000
+3530 4   0.128990
+3530 8239   0.078885
+3530 8241   1.000000
+3530 8243   0.058415
+3530 8247  -0.008310
+3530 8249  -1.000000
+3531 4   0.128990
+3531 8240   0.078885
+3531 8242   1.000000
+3531 8244   0.058415
+3531 8248  -0.008310
+3531 8250  -1.000000
+3532 4   0.200000
+3532 8239   0.075281
+3532 8243   0.102497
+3532 8245   1.000000
+3532 8247   0.022222
+3532 8249  -1.000000
+3533 4   0.200000
+3533 8240   0.075281
+3533 8244   0.102497
+3533 8246   1.000000
+3533 8248   0.022222
+3533 8250  -1.000000
+3534 4   0.031010
+3534 8251   1.000000
+3534 8253   0.039363
+3534 8257  -0.013107
+3534 8261   0.004754
+3534 8263  -1.000000
+3535 4   0.031010
+3535 8252   1.000000
+3535 8254   0.039363
+3535 8258  -0.013107
+3535 8262   0.004754
+3535 8264  -1.000000
+3536 4   0.128990
+3536 8253   0.078885
+3536 8255   1.000000
+3536 8257   0.058415
+3536 8261  -0.008310
+3536 8263  -1.000000
+3537 4   0.128990
+3537 8254   0.078885
+3537 8256   1.000000
+3537 8258   0.058415
+3537 8262  -0.008310
+3537 8264  -1.000000
+3538 4   0.200000
+3538 8253   0.075281
+3538 8257   0.102497
+3538 8259   1.000000
+3538 8261   0.022222
+3538 8263  -1.000000
+3539 4   0.200000
+3539 8254   0.075281
+3539 8258   0.102497
+3539 8260   1.000000
+3539 8262   0.022222
+3539 8264  -1.000000
+3540 4   0.031010
+3540 8265   1.000000
+3540 8267   0.039363
+3540 8271  -0.013107
+3540 8275   0.004754
+3540 8277  -1.000000
+3541 4   0.031010
+3541 8266   1.000000
+3541 8268   0.039363
+3541 8272  -0.013107
+3541 8276   0.004754
+3541 8278  -1.000000
+3542 4   0.128990
+3542 8267   0.078885
+3542 8269   1.000000
+3542 8271   0.058415
+3542 8275  -0.008310
+3542 8277  -1.000000
+3543 4   0.128990
+3543 8268   0.078885
+3543 8270   1.000000
+3543 8272   0.058415
+3543 8276  -0.008310
+3543 8278  -1.000000
+3544 4   0.200000
+3544 8267   0.075281
+3544 8271   0.102497
+3544 8273   1.000000
+3544 8275   0.022222
+3544 8277  -1.000000
+3545 4   0.200000
+3545 8268   0.075281
+3545 8272   0.102497
+3545 8274   1.000000
+3545 8276   0.022222
+3545 8278  -1.000000
+3546 4   0.031010
+3546 8279   1.000000
+3546 8281   0.039363
+3546 8285  -0.013107
+3546 8289   0.004754
+3546 8291  -1.000000
+3547 4   0.031010
+3547 8280   1.000000
+3547 8282   0.039363
+3547 8286  -0.013107
+3547 8290   0.004754
+3547 8292  -1.000000
+3548 4   0.128990
+3548 8281   0.078885
+3548 8283   1.000000
+3548 8285   0.058415
+3548 8289  -0.008310
+3548 8291  -1.000000
+3549 4   0.128990
+3549 8282   0.078885
+3549 8284   1.000000
+3549 8286   0.058415
+3549 8290  -0.008310
+3549 8292  -1.000000
+3550 4   0.200000
+3550 8281   0.075281
+3550 8285   0.102497
+3550 8287   1.000000
+3550 8289   0.022222
+3550 8291  -1.000000
+3551 4   0.200000
+3551 8282   0.075281
+3551 8286   0.102497
+3551 8288   1.000000
+3551 8290   0.022222
+3551 8292  -1.000000
+3552 4   0.031010
+3552 8293   1.000000
+3552 8295   0.039363
+3552 8299  -0.013107
+3552 8303   0.004754
+3552 8305  -1.000000
+3553 4   0.031010
+3553 8294   1.000000
+3553 8296   0.039363
+3553 8300  -0.013107
+3553 8304   0.004754
+3553 8306  -1.000000
+3554 4   0.128990
+3554 8295   0.078885
+3554 8297   1.000000
+3554 8299   0.058415
+3554 8303  -0.008310
+3554 8305  -1.000000
+3555 4   0.128990
+3555 8296   0.078885
+3555 8298   1.000000
+3555 8300   0.058415
+3555 8304  -0.008310
+3555 8306  -1.000000
+3556 4   0.200000
+3556 8295   0.075281
+3556 8299   0.102497
+3556 8301   1.000000
+3556 8303   0.022222
+3556 8305  -1.000000
+3557 4   0.200000
+3557 8296   0.075281
+3557 8300   0.102497
+3557 8302   1.000000
+3557 8304   0.022222
+3557 8306  -1.000000
+3558 4   0.031010
+3558 8307   1.000000
+3558 8309   0.039363
+3558 8313  -0.013107
+3558 8317   0.004754
+3558 8319  -1.000000
+3559 4   0.031010
+3559 8308   1.000000
+3559 8310   0.039363
+3559 8314  -0.013107
+3559 8318   0.004754
+3559 8320  -1.000000
+3560 4   0.128990
+3560 8309   0.078885
+3560 8311   1.000000
+3560 8313   0.058415
+3560 8317  -0.008310
+3560 8319  -1.000000
+3561 4   0.128990
+3561 8310   0.078885
+3561 8312   1.000000
+3561 8314   0.058415
+3561 8318  -0.008310
+3561 8320  -1.000000
+3562 4   0.200000
+3562 8309   0.075281
+3562 8313   0.102497
+3562 8315   1.000000
+3562 8317   0.022222
+3562 8319  -1.000000
+3563 4   0.200000
+3563 8310   0.075281
+3563 8314   0.102497
+3563 8316   1.000000
+3563 8318   0.022222
+3563 8320  -1.000000
+3564 4   0.031010
+3564 8321   1.000000
+3564 8323   0.039363
+3564 8327  -0.013107
+3564 8331   0.004754
+3564 8333  -1.000000
+3565 4   0.031010
+3565 8322   1.000000
+3565 8324   0.039363
+3565 8328  -0.013107
+3565 8332   0.004754
+3565 8334  -1.000000
+3566 4   0.128990
+3566 8323   0.078885
+3566 8325   1.000000
+3566 8327   0.058415
+3566 8331  -0.008310
+3566 8333  -1.000000
+3567 4   0.128990
+3567 8324   0.078885
+3567 8326   1.000000
+3567 8328   0.058415
+3567 8332  -0.008310
+3567 8334  -1.000000
+3568 4   0.200000
+3568 8323   0.075281
+3568 8327   0.102497
+3568 8329   1.000000
+3568 8331   0.022222
+3568 8333  -1.000000
+3569 4   0.200000
+3569 8324   0.075281
+3569 8328   0.102497
+3569 8330   1.000000
+3569 8332   0.022222
+3569 8334  -1.000000
+3570 4   0.031010
+3570 8335   1.000000
+3570 8337   0.039363
+3570 8341  -0.013107
+3570 8345   0.004754
+3570 8347  -1.000000
+3571 4   0.031010
+3571 8336   1.000000
+3571 8338   0.039363
+3571 8342  -0.013107
+3571 8346   0.004754
+3571 8348  -1.000000
+3572 4   0.128990
+3572 8337   0.078885
+3572 8339   1.000000
+3572 8341   0.058415
+3572 8345  -0.008310
+3572 8347  -1.000000
+3573 4   0.128990
+3573 8338   0.078885
+3573 8340   1.000000
+3573 8342   0.058415
+3573 8346  -0.008310
+3573 8348  -1.000000
+3574 4   0.200000
+3574 8337   0.075281
+3574 8341   0.102497
+3574 8343   1.000000
+3574 8345   0.022222
+3574 8347  -1.000000
+3575 4   0.200000
+3575 8338   0.075281
+3575 8342   0.102497
+3575 8344   1.000000
+3575 8346   0.022222
+3575 8348  -1.000000
+3576 4   0.031010
+3576 8349   1.000000
+3576 8351   0.039363
+3576 8355  -0.013107
+3576 8359   0.004754
+3576 8361  -1.000000
+3577 4   0.031010
+3577 8350   1.000000
+3577 8352   0.039363
+3577 8356  -0.013107
+3577 8360   0.004754
+3577 8362  -1.000000
+3578 4   0.128990
+3578 8351   0.078885
+3578 8353   1.000000
+3578 8355   0.058415
+3578 8359  -0.008310
+3578 8361  -1.000000
+3579 4   0.128990
+3579 8352   0.078885
+3579 8354   1.000000
+3579 8356   0.058415
+3579 8360  -0.008310
+3579 8362  -1.000000
+3580 4   0.200000
+3580 8351   0.075281
+3580 8355   0.102497
+3580 8357   1.000000
+3580 8359   0.022222
+3580 8361  -1.000000
+3581 4   0.200000
+3581 8352   0.075281
+3581 8356   0.102497
+3581 8358   1.000000
+3581 8360   0.022222
+3581 8362  -1.000000
+3582 4   0.031010
+3582 8363   1.000000
+3582 8365   0.039363
+3582 8369  -0.013107
+3582 8373   0.004754
+3582 8375  -1.000000
+3583 4   0.031010
+3583 8364   1.000000
+3583 8366   0.039363
+3583 8370  -0.013107
+3583 8374   0.004754
+3583 8376  -1.000000
+3584 4   0.128990
+3584 8365   0.078885
+3584 8367   1.000000
+3584 8369   0.058415
+3584 8373  -0.008310
+3584 8375  -1.000000
+3585 4   0.128990
+3585 8366   0.078885
+3585 8368   1.000000
+3585 8370   0.058415
+3585 8374  -0.008310
+3585 8376  -1.000000
+3586 4   0.200000
+3586 8365   0.075281
+3586 8369   0.102497
+3586 8371   1.000000
+3586 8373   0.022222
+3586 8375  -1.000000
+3587 4   0.200000
+3587 8366   0.075281
+3587 8370   0.102497
+3587 8372   1.000000
+3587 8374   0.022222
+3587 8376  -1.000000
+3588 4   0.031010
+3588 8377   1.000000
+3588 8379   0.039363
+3588 8383  -0.013107
+3588 8387   0.004754
+3588 8389  -1.000000
+3589 4   0.031010
+3589 8378   1.000000
+3589 8380   0.039363
+3589 8384  -0.013107
+3589 8388   0.004754
+3589 8390  -1.000000
+3590 4   0.128990
+3590 8379   0.078885
+3590 8381   1.000000
+3590 8383   0.058415
+3590 8387  -0.008310
+3590 8389  -1.000000
+3591 4   0.128990
+3591 8380   0.078885
+3591 8382   1.000000
+3591 8384   0.058415
+3591 8388  -0.008310
+3591 8390  -1.000000
+3592 4   0.200000
+3592 8379   0.075281
+3592 8383   0.102497
+3592 8385   1.000000
+3592 8387   0.022222
+3592 8389  -1.000000
+3593 4   0.200000
+3593 8380   0.075281
+3593 8384   0.102497
+3593 8386   1.000000
+3593 8388   0.022222
+3593 8390  -1.000000
+3594 4   0.031010
+3594 8391   1.000000
+3594 8393   0.039363
+3594 8397  -0.013107
+3594 8401   0.004754
+3594 8403  -1.000000
+3595 4   0.031010
+3595 8392   1.000000
+3595 8394   0.039363
+3595 8398  -0.013107
+3595 8402   0.004754
+3595 8404  -1.000000
+3596 4   0.128990
+3596 8393   0.078885
+3596 8395   1.000000
+3596 8397   0.058415
+3596 8401  -0.008310
+3596 8403  -1.000000
+3597 4   0.128990
+3597 8394   0.078885
+3597 8396   1.000000
+3597 8398   0.058415
+3597 8402  -0.008310
+3597 8404  -1.000000
+3598 4   0.200000
+3598 8393   0.075281
+3598 8397   0.102497
+3598 8399   1.000000
+3598 8401   0.022222
+3598 8403  -1.000000
+3599 4   0.200000
+3599 8394   0.075281
+3599 8398   0.102497
+3599 8400   1.000000
+3599 8402   0.022222
+3599 8404  -1.000000
+3600 4   0.200000
+3600 7   0.075281
+3600 11   0.102497
+3600 15   0.022222
+3600 17  -1.000000
+3600 31   1.000000
+3601 4   0.200000
+3601 8   0.075281
+3601 12   0.102497
+3601 16   0.022222
+3601 18  -1.000000
+3601 32   1.000000
+3602 4   0.200000
+3602 21   0.075281
+3602 25   0.102497
+3602 29   0.022222
+3602 31  -1.000000
+3602 45   1.000000
+3603 4   0.200000
+3603 22   0.075281
+3603 26   0.102497
+3603 30   0.022222
+3603 32  -1.000000
+3603 46   1.000000
+3604 4   0.200000
+3604 35   0.075281
+3604 39   0.102497
+3604 43   0.022222
+3604 45  -1.000000
+3604 59   1.000000
+3605 4   0.200000
+3605 36   0.075281
+3605 40   0.102497
+3605 44   0.022222
+3605 46  -1.000000
+3605 60   1.000000
+3606 4   0.200000
+3606 49   0.075281
+3606 53   0.102497
+3606 57   0.022222
+3606 59  -1.000000
+3606 73   1.000000
+3607 4   0.200000
+3607 50   0.075281
+3607 54   0.102497
+3607 58   0.022222
+3607 60  -1.000000
+3607 74   1.000000
+3608 4   0.200000
+3608 77   0.075281
+3608 81   0.102497
+3608 85   0.022222
+3608 87  -1.000000
+3608 101   1.000000
+3609 4   0.200000
+3609 78   0.075281
+3609 82   0.102497
+3609 86   0.022222
+3609 88  -1.000000
+3609 102   1.000000
+3610 4   0.200000
+3610 91   0.075281
+3610 95   0.102497
+3610 99   0.022222
+3610 101  -1.000000
+3610 115   1.000000
+3611 4   0.200000
+3611 92   0.075281
+3611 96   0.102497
+3611 100   0.022222
+3611 102  -1.000000
+3611 116   1.000000
+3612 4   0.200000
+3612 105   0.075281
+3612 109   0.102497
+3612 113   0.022222
+3612 115  -1.000000
+3612 129   1.000000
+3613 4   0.200000
+3613 106   0.075281
+3613 110   0.102497
+3613 114   0.022222
+3613 116  -1.000000
+3613 130   1.000000
+3614 4   0.200000
+3614 119   0.075281
+3614 123   0.102497
+3614 127   0.022222
+3614 129  -1.000000
+3614 143   1.000000
+3615 4   0.200000
+3615 120   0.075281
+3615 124   0.102497
+3615 128   0.022222
+3615 130  -1.000000
+3615 144   1.000000
+3616 4   0.200000
+3616 147   0.075281
+3616 151   0.102497
+3616 155   0.022222
+3616 157  -1.000000
+3616 171   1.000000
+3617 4   0.200000
+3617 148   0.075281
+3617 152   0.102497
+3617 156   0.022222
+3617 158  -1.000000
+3617 172   1.000000
+3618 4   0.200000
+3618 161   0.075281
+3618 165   0.102497
+3618 169   0.022222
+3618 171  -1.000000
+3618 185   1.000000
+3619 4   0.200000
+3619 162   0.075281
+3619 166   0.102497
+3619 170   0.022222
+3619 172  -1.000000
+3619 186   1.000000
+3620 4   0.200000
+3620 175   0.075281
+3620 179   0.102497
+3620 183   0.022222
+3620 185  -1.000000
+3620 199   1.000000
+3621 4   0.200000
+3621 176   0.075281
+3621 180   0.102497
+3621 184   0.022222
+3621 186  -1.000000
+3621 200   1.000000
+3622 4   0.200000
+3622 189   0.075281
+3622 193   0.102497
+3622 197   0.022222
+3622 199  -1.000000
+3622 213   1.000000
+3623 4   0.200000
+3623 190   0.075281
+3623 194   0.102497
+3623 198   0.022222
+3623 200  -1.000000
+3623 214   1.000000
+3624 4   0.200000
+3624 217   0.075281
+3624 221   0.102497
+3624 225   0.022222
+3624 227  -1.000000
+3624 241   1.000000
+3625 4   0.200000
+3625 218   0.075281
+3625 222   0.102497
+3625 226   0.022222
+3625 228  -1.000000
+3625 242   1.000000
+3626 4   0.200000
+3626 231   0.075281
+3626 235   0.102497
+3626 239   0.022222
+3626 241  -1.000000
+3626 255   1.000000
+3627 4   0.200000
+3627 232   0.075281
+3627 236   0.102497
+3627 240   0.022222
+3627 242  -1.000000
+3627 256   1.000000
+3628 4   0.200000
+3628 245   0.075281
+3628 249   0.102497
+3628 253   0.022222
+3628 255  -1.000000
+3628 269   1.000000
+3629 4   0.200000
+3629 246   0.075281
+3629 250   0.102497
+3629 254   0.022222
+3629 256  -1.000000
+3629 270   1.000000
+3630 4   0.200000
+3630 259   0.075281
+3630 263   0.102497
+3630 267   0.022222
+3630 269  -1.000000
+3630 283   1.000000
+3631 4   0.200000
+3631 260   0.075281
+3631 264   0.102497
+3631 268   0.022222
+3631 270  -1.000000
+3631 284   1.000000
+3632 4   0.200000
+3632 287   0.075281
+3632 291   0.102497
+3632 295   0.022222
+3632 297  -1.000000
+3632 311   1.000000
+3633 4   0.200000
+3633 288   0.075281
+3633 292   0.102497
+3633 296   0.022222
+3633 298  -1.000000
+3633 312   1.000000
+3634 4   0.200000
+3634 301   0.075281
+3634 305   0.102497
+3634 309   0.022222
+3634 311  -1.000000
+3634 325   1.000000
+3635 4   0.200000
+3635 302   0.075281
+3635 306   0.102497
+3635 310   0.022222
+3635 312  -1.000000
+3635 326   1.000000
+3636 4   0.200000
+3636 315   0.075281
+3636 319   0.102497
+3636 323   0.022222
+3636 325  -1.000000
+3636 339   1.000000
+3637 4   0.200000
+3637 316   0.075281
+3637 320   0.102497
+3637 324   0.022222
+3637 326  -1.000000
+3637 340   1.000000
+3638 4   0.200000
+3638 329   0.075281
+3638 333   0.102497
+3638 337   0.022222
+3638 339  -1.000000
+3638 353   1.000000
+3639 4   0.200000
+3639 330   0.075281
+3639 334   0.102497
+3639 338   0.022222
+3639 340  -1.000000
+3639 354   1.000000
+3640 4   0.200000
+3640 357   0.075281
+3640 361   0.102497
+3640 365   0.022222
+3640 367  -1.000000
+3640 381   1.000000
+3641 4   0.200000
+3641 358   0.075281
+3641 362   0.102497
+3641 366   0.022222
+3641 368  -1.000000
+3641 382   1.000000
+3642 4   0.200000
+3642 371   0.075281
+3642 375   0.102497
+3642 379   0.022222
+3642 381  -1.000000
+3642 395   1.000000
+3643 4   0.200000
+3643 372   0.075281
+3643 376   0.102497
+3643 380   0.022222
+3643 382  -1.000000
+3643 396   1.000000
+3644 4   0.200000
+3644 385   0.075281
+3644 389   0.102497
+3644 393   0.022222
+3644 395  -1.000000
+3644 409   1.000000
+3645 4   0.200000
+3645 386   0.075281
+3645 390   0.102497
+3645 394   0.022222
+3645 396  -1.000000
+3645 410   1.000000
+3646 4   0.200000
+3646 399   0.075281
+3646 403   0.102497
+3646 407   0.022222
+3646 409  -1.000000
+3646 423   1.000000
+3647 4   0.200000
+3647 400   0.075281
+3647 404   0.102497
+3647 408   0.022222
+3647 410  -1.000000
+3647 424   1.000000
+3648 4   0.200000
+3648 427   0.075281
+3648 431   0.102497
+3648 435   0.022222
+3648 437  -1.000000
+3648 451   1.000000
+3649 4   0.200000
+3649 428   0.075281
+3649 432   0.102497
+3649 436   0.022222
+3649 438  -1.000000
+3649 452   1.000000
+3650 4   0.200000
+3650 441   0.075281
+3650 445   0.102497
+3650 449   0.022222
+3650 451  -1.000000
+3650 465   1.000000
+3651 4   0.200000
+3651 442   0.075281
+3651 446   0.102497
+3651 450   0.022222
+3651 452  -1.000000
+3651 466   1.000000
+3652 4   0.200000
+3652 455   0.075281
+3652 459   0.102497
+3652 463   0.022222
+3652 465  -1.000000
+3652 479   1.000000
+3653 4   0.200000
+3653 456   0.075281
+3653 460   0.102497
+3653 464   0.022222
+3653 466  -1.000000
+3653 480   1.000000
+3654 4   0.200000
+3654 469   0.075281
+3654 473   0.102497
+3654 477   0.022222
+3654 479  -1.000000
+3654 493   1.000000
+3655 4   0.200000
+3655 470   0.075281
+3655 474   0.102497
+3655 478   0.022222
+3655 480  -1.000000
+3655 494   1.000000
+3656 4   0.200000
+3656 497   0.075281
+3656 501   0.102497
+3656 505   0.022222
+3656 507  -1.000000
+3656 521   1.000000
+3657 4   0.200000
+3657 498   0.075281
+3657 502   0.102497
+3657 506   0.022222
+3657 508  -1.000000
+3657 522   1.000000
+3658 4   0.200000
+3658 511   0.075281
+3658 515   0.102497
+3658 519   0.022222
+3658 521  -1.000000
+3658 535   1.000000
+3659 4   0.200000
+3659 512   0.075281
+3659 516   0.102497
+3659 520   0.022222
+3659 522  -1.000000
+3659 536   1.000000
+3660 4   0.200000
+3660 525   0.075281
+3660 529   0.102497
+3660 533   0.022222
+3660 535  -1.000000
+3660 549   1.000000
+3661 4   0.200000
+3661 526   0.075281
+3661 530   0.102497
+3661 534   0.022222
+3661 536  -1.000000
+3661 550   1.000000
+3662 4   0.200000
+3662 539   0.075281
+3662 543   0.102497
+3662 547   0.022222
+3662 549  -1.000000
+3662 563   1.000000
+3663 4   0.200000
+3663 540   0.075281
+3663 544   0.102497
+3663 548   0.022222
+3663 550  -1.000000
+3663 564   1.000000
+3664 4   0.200000
+3664 567   0.075281
+3664 571   0.102497
+3664 575   0.022222
+3664 577  -1.000000
+3664 591   1.000000
+3665 4   0.200000
+3665 568   0.075281
+3665 572   0.102497
+3665 576   0.022222
+3665 578  -1.000000
+3665 592   1.000000
+3666 4   0.200000
+3666 581   0.075281
+3666 585   0.102497
+3666 589   0.022222
+3666 591  -1.000000
+3666 605   1.000000
+3667 4   0.200000
+3667 582   0.075281
+3667 586   0.102497
+3667 590   0.022222
+3667 592  -1.000000
+3667 606   1.000000
+3668 4   0.200000
+3668 595   0.075281
+3668 599   0.102497
+3668 603   0.022222
+3668 605  -1.000000
+3668 619   1.000000
+3669 4   0.200000
+3669 596   0.075281
+3669 600   0.102497
+3669 604   0.022222
+3669 606  -1.000000
+3669 620   1.000000
+3670 4   0.200000
+3670 609   0.075281
+3670 613   0.102497
+3670 617   0.022222
+3670 619  -1.000000
+3670 633   1.000000
+3671 4   0.200000
+3671 610   0.075281
+3671 614   0.102497
+3671 618   0.022222
+3671 620  -1.000000
+3671 634   1.000000
+3672 4   0.200000
+3672 637   0.075281
+3672 641   0.102497
+3672 645   0.022222
+3672 647  -1.000000
+3672 661   1.000000
+3673 4   0.200000
+3673 638   0.075281
+3673 642   0.102497
+3673 646   0.022222
+3673 648  -1.000000
+3673 662   1.000000
+3674 4   0.200000
+3674 651   0.075281
+3674 655   0.102497
+3674 659   0.022222
+3674 661  -1.000000
+3674 675   1.000000
+3675 4   0.200000
+3675 652   0.075281
+3675 656   0.102497
+3675 660   0.022222
+3675 662  -1.000000
+3675 676   1.000000
+3676 4   0.200000
+3676 665   0.075281
+3676 669   0.102497
+3676 673   0.022222
+3676 675  -1.000000
+3676 689   1.000000
+3677 4   0.200000
+3677 666   0.075281
+3677 670   0.102497
+3677 674   0.022222
+3677 676  -1.000000
+3677 690   1.000000
+3678 4   0.200000
+3678 679   0.075281
+3678 683   0.102497
+3678 687   0.022222
+3678 689  -1.000000
+3678 703   1.000000
+3679 4   0.200000
+3679 680   0.075281
+3679 684   0.102497
+3679 688   0.022222
+3679 690  -1.000000
+3679 704   1.000000
+3680 4   0.200000
+3680 707   0.075281
+3680 711   0.102497
+3680 715   0.022222
+3680 717  -1.000000
+3680 731   1.000000
+3681 4   0.200000
+3681 708   0.075281
+3681 712   0.102497
+3681 716   0.022222
+3681 718  -1.000000
+3681 732   1.000000
+3682 4   0.200000
+3682 721   0.075281
+3682 725   0.102497
+3682 729   0.022222
+3682 731  -1.000000
+3682 745   1.000000
+3683 4   0.200000
+3683 722   0.075281
+3683 726   0.102497
+3683 730   0.022222
+3683 732  -1.000000
+3683 746   1.000000
+3684 4   0.200000
+3684 735   0.075281
+3684 739   0.102497
+3684 743   0.022222
+3684 745  -1.000000
+3684 759   1.000000
+3685 4   0.200000
+3685 736   0.075281
+3685 740   0.102497
+3685 744   0.022222
+3685 746  -1.000000
+3685 760   1.000000
+3686 4   0.200000
+3686 749   0.075281
+3686 753   0.102497
+3686 757   0.022222
+3686 759  -1.000000
+3686 773   1.000000
+3687 4   0.200000
+3687 750   0.075281
+3687 754   0.102497
+3687 758   0.022222
+3687 760  -1.000000
+3687 774   1.000000
+3688 4   0.200000
+3688 777   0.075281
+3688 781   0.102497
+3688 785   0.022222
+3688 787  -1.000000
+3688 801   1.000000
+3689 4   0.200000
+3689 778   0.075281
+3689 782   0.102497
+3689 786   0.022222
+3689 788  -1.000000
+3689 802   1.000000
+3690 4   0.200000
+3690 791   0.075281
+3690 795   0.102497
+3690 799   0.022222
+3690 801  -1.000000
+3690 815   1.000000
+3691 4   0.200000
+3691 792   0.075281
+3691 796   0.102497
+3691 800   0.022222
+3691 802  -1.000000
+3691 816   1.000000
+3692 4   0.200000
+3692 805   0.075281
+3692 809   0.102497
+3692 813   0.022222
+3692 815  -1.000000
+3692 829   1.000000
+3693 4   0.200000
+3693 806   0.075281
+3693 810   0.102497
+3693 814   0.022222
+3693 816  -1.000000
+3693 830   1.000000
+3694 4   0.200000
+3694 819   0.075281
+3694 823   0.102497
+3694 827   0.022222
+3694 829  -1.000000
+3694 843   1.000000
+3695 4   0.200000
+3695 820   0.075281
+3695 824   0.102497
+3695 828   0.022222
+3695 830  -1.000000
+3695 844   1.000000
+3696 4   0.200000
+3696 847   0.075281
+3696 851   0.102497
+3696 855   0.022222
+3696 857  -1.000000
+3696 871   1.000000
+3697 4   0.200000
+3697 848   0.075281
+3697 852   0.102497
+3697 856   0.022222
+3697 858  -1.000000
+3697 872   1.000000
+3698 4   0.200000
+3698 861   0.075281
+3698 865   0.102497
+3698 869   0.022222
+3698 871  -1.000000
+3698 885   1.000000
+3699 4   0.200000
+3699 862   0.075281
+3699 866   0.102497
+3699 870   0.022222
+3699 872  -1.000000
+3699 886   1.000000
+3700 4   0.200000
+3700 875   0.075281
+3700 879   0.102497
+3700 883   0.022222
+3700 885  -1.000000
+3700 899   1.000000
+3701 4   0.200000
+3701 876   0.075281
+3701 880   0.102497
+3701 884   0.022222
+3701 886  -1.000000
+3701 900   1.000000
+3702 4   0.200000
+3702 889   0.075281
+3702 893   0.102497
+3702 897   0.022222
+3702 899  -1.000000
+3702 913   1.000000
+3703 4   0.200000
+3703 890   0.075281
+3703 894   0.102497
+3703 898   0.022222
+3703 900  -1.000000
+3703 914   1.000000
+3704 4   0.200000
+3704 917   0.075281
+3704 921   0.102497
+3704 925   0.022222
+3704 927  -1.000000
+3704 941   1.000000
+3705 4   0.200000
+3705 918   0.075281
+3705 922   0.102497
+3705 926   0.022222
+3705 928  -1.000000
+3705 942   1.000000
+3706 4   0.200000
+3706 931   0.075281
+3706 935   0.102497
+3706 939   0.022222
+3706 941  -1.000000
+3706 955   1.000000
+3707 4   0.200000
+3707 932   0.075281
+3707 936   0.102497
+3707 940   0.022222
+3707 942  -1.000000
+3707 956   1.000000
+3708 4   0.200000
+3708 945   0.075281
+3708 949   0.102497
+3708 953   0.022222
+3708 955  -1.000000
+3708 969   1.000000
+3709 4   0.200000
+3709 946   0.075281
+3709 950   0.102497
+3709 954   0.022222
+3709 956  -1.000000
+3709 970   1.000000
+3710 4   0.200000
+3710 959   0.075281
+3710 963   0.102497
+3710 967   0.022222
+3710 969  -1.000000
+3710 983   1.000000
+3711 4   0.200000
+3711 960   0.075281
+3711 964   0.102497
+3711 968   0.022222
+3711 970  -1.000000
+3711 984   1.000000
+3712 4   0.200000
+3712 987   0.075281
+3712 991   0.102497
+3712 995   0.022222
+3712 997  -1.000000
+3712 1011   1.000000
+3713 4   0.200000
+3713 988   0.075281
+3713 992   0.102497
+3713 996   0.022222
+3713 998  -1.000000
+3713 1012   1.000000
+3714 4   0.200000
+3714 1001   0.075281
+3714 1005   0.102497
+3714 1009   0.022222
+3714 1011  -1.000000
+3714 1025   1.000000
+3715 4   0.200000
+3715 1002   0.075281
+3715 1006   0.102497
+3715 1010   0.022222
+3715 1012  -1.000000
+3715 1026   1.000000
+3716 4   0.200000
+3716 1015   0.075281
+3716 1019   0.102497
+3716 1023   0.022222
+3716 1025  -1.000000
+3716 1039   1.000000
+3717 4   0.200000
+3717 1016   0.075281
+3717 1020   0.102497
+3717 1024   0.022222
+3717 1026  -1.000000
+3717 1040   1.000000
+3718 4   0.200000
+3718 1029   0.075281
+3718 1033   0.102497
+3718 1037   0.022222
+3718 1039  -1.000000
+3718 1053   1.000000
+3719 4   0.200000
+3719 1030   0.075281
+3719 1034   0.102497
+3719 1038   0.022222
+3719 1040  -1.000000
+3719 1054   1.000000
+3720 4   0.200000
+3720 1057   0.075281
+3720 1061   0.102497
+3720 1065   0.022222
+3720 1067  -1.000000
+3720 1081   1.000000
+3721 4   0.200000
+3721 1058   0.075281
+3721 1062   0.102497
+3721 1066   0.022222
+3721 1068  -1.000000
+3721 1082   1.000000
+3722 4   0.200000
+3722 1071   0.075281
+3722 1075   0.102497
+3722 1079   0.022222
+3722 1081  -1.000000
+3722 1095   1.000000
+3723 4   0.200000
+3723 1072   0.075281
+3723 1076   0.102497
+3723 1080   0.022222
+3723 1082  -1.000000
+3723 1096   1.000000
+3724 4   0.200000
+3724 1085   0.075281
+3724 1089   0.102497
+3724 1093   0.022222
+3724 1095  -1.000000
+3724 1109   1.000000
+3725 4   0.200000
+3725 1086   0.075281
+3725 1090   0.102497
+3725 1094   0.022222
+3725 1096  -1.000000
+3725 1110   1.000000
+3726 4   0.200000
+3726 1099   0.075281
+3726 1103   0.102497
+3726 1107   0.022222
+3726 1109  -1.000000
+3726 1123   1.000000
+3727 4   0.200000
+3727 1100   0.075281
+3727 1104   0.102497
+3727 1108   0.022222
+3727 1110  -1.000000
+3727 1124   1.000000
+3728 4   0.200000
+3728 1127   0.075281
+3728 1131   0.102497
+3728 1135   0.022222
+3728 1137  -1.000000
+3728 1151   1.000000
+3729 4   0.200000
+3729 1128   0.075281
+3729 1132   0.102497
+3729 1136   0.022222
+3729 1138  -1.000000
+3729 1152   1.000000
+3730 4   0.200000
+3730 1141   0.075281
+3730 1145   0.102497
+3730 1149   0.022222
+3730 1151  -1.000000
+3730 1165   1.000000
+3731 4   0.200000
+3731 1142   0.075281
+3731 1146   0.102497
+3731 1150   0.022222
+3731 1152  -1.000000
+3731 1166   1.000000
+3732 4   0.200000
+3732 1155   0.075281
+3732 1159   0.102497
+3732 1163   0.022222
+3732 1165  -1.000000
+3732 1179   1.000000
+3733 4   0.200000
+3733 1156   0.075281
+3733 1160   0.102497
+3733 1164   0.022222
+3733 1166  -1.000000
+3733 1180   1.000000
+3734 4   0.200000
+3734 1169   0.075281
+3734 1173   0.102497
+3734 1177   0.022222
+3734 1179  -1.000000
+3734 1193   1.000000
+3735 4   0.200000
+3735 1170   0.075281
+3735 1174   0.102497
+3735 1178   0.022222
+3735 1180  -1.000000
+3735 1194   1.000000
+3736 4   0.200000
+3736 1197   0.075281
+3736 1201   0.102497
+3736 1205   0.022222
+3736 1207  -1.000000
+3736 1221   1.000000
+3737 4   0.200000
+3737 1198   0.075281
+3737 1202   0.102497
+3737 1206   0.022222
+3737 1208  -1.000000
+3737 1222   1.000000
+3738 4   0.200000
+3738 1211   0.075281
+3738 1215   0.102497
+3738 1219   0.022222
+3738 1221  -1.000000
+3738 1235   1.000000
+3739 4   0.200000
+3739 1212   0.075281
+3739 1216   0.102497
+3739 1220   0.022222
+3739 1222  -1.000000
+3739 1236   1.000000
+3740 4   0.200000
+3740 1225   0.075281
+3740 1229   0.102497
+3740 1233   0.022222
+3740 1235  -1.000000
+3740 1249   1.000000
+3741 4   0.200000
+3741 1226   0.075281
+3741 1230   0.102497
+3741 1234   0.022222
+3741 1236  -1.000000
+3741 1250   1.000000
+3742 4   0.200000
+3742 1239   0.075281
+3742 1243   0.102497
+3742 1247   0.022222
+3742 1249  -1.000000
+3742 1263   1.000000
+3743 4   0.200000
+3743 1240   0.075281
+3743 1244   0.102497
+3743 1248   0.022222
+3743 1250  -1.000000
+3743 1264   1.000000
+3744 4   0.200000
+3744 1267   0.075281
+3744 1271   0.102497
+3744 1275   0.022222
+3744 1277  -1.000000
+3744 1291   1.000000
+3745 4   0.200000
+3745 1268   0.075281
+3745 1272   0.102497
+3745 1276   0.022222
+3745 1278  -1.000000
+3745 1292   1.000000
+3746 4   0.200000
+3746 1281   0.075281
+3746 1285   0.102497
+3746 1289   0.022222
+3746 1291  -1.000000
+3746 1305   1.000000
+3747 4   0.200000
+3747 1282   0.075281
+3747 1286   0.102497
+3747 1290   0.022222
+3747 1292  -1.000000
+3747 1306   1.000000
+3748 4   0.200000
+3748 1295   0.075281
+3748 1299   0.102497
+3748 1303   0.022222
+3748 1305  -1.000000
+3748 1319   1.000000
+3749 4   0.200000
+3749 1296   0.075281
+3749 1300   0.102497
+3749 1304   0.022222
+3749 1306  -1.000000
+3749 1320   1.000000
+3750 4   0.200000
+3750 1309   0.075281
+3750 1313   0.102497
+3750 1317   0.022222
+3750 1319  -1.000000
+3750 1333   1.000000
+3751 4   0.200000
+3751 1310   0.075281
+3751 1314   0.102497
+3751 1318   0.022222
+3751 1320  -1.000000
+3751 1334   1.000000
+3752 4   0.200000
+3752 1337   0.075281
+3752 1341   0.102497
+3752 1345   0.022222
+3752 1347  -1.000000
+3752 1361   1.000000
+3753 4   0.200000
+3753 1338   0.075281
+3753 1342   0.102497
+3753 1346   0.022222
+3753 1348  -1.000000
+3753 1362   1.000000
+3754 4   0.200000
+3754 1351   0.075281
+3754 1355   0.102497
+3754 1359   0.022222
+3754 1361  -1.000000
+3754 1375   1.000000
+3755 4   0.200000
+3755 1352   0.075281
+3755 1356   0.102497
+3755 1360   0.022222
+3755 1362  -1.000000
+3755 1376   1.000000
+3756 4   0.200000
+3756 1365   0.075281
+3756 1369   0.102497
+3756 1373   0.022222
+3756 1375  -1.000000
+3756 1389   1.000000
+3757 4   0.200000
+3757 1366   0.075281
+3757 1370   0.102497
+3757 1374   0.022222
+3757 1376  -1.000000
+3757 1390   1.000000
+3758 4   0.200000
+3758 1379   0.075281
+3758 1383   0.102497
+3758 1387   0.022222
+3758 1389  -1.000000
+3758 1403   1.000000
+3759 4   0.200000
+3759 1380   0.075281
+3759 1384   0.102497
+3759 1388   0.022222
+3759 1390  -1.000000
+3759 1404   1.000000
+3760 4   0.200000
+3760 1407   0.075281
+3760 1411   0.102497
+3760 1415   0.022222
+3760 1417  -1.000000
+3760 1431   1.000000
+3761 4   0.200000
+3761 1408   0.075281
+3761 1412   0.102497
+3761 1416   0.022222
+3761 1418  -1.000000
+3761 1432   1.000000
+3762 4   0.200000
+3762 1421   0.075281
+3762 1425   0.102497
+3762 1429   0.022222
+3762 1431  -1.000000
+3762 1445   1.000000
+3763 4   0.200000
+3763 1422   0.075281
+3763 1426   0.102497
+3763 1430   0.022222
+3763 1432  -1.000000
+3763 1446   1.000000
+3764 4   0.200000
+3764 1435   0.075281
+3764 1439   0.102497
+3764 1443   0.022222
+3764 1445  -1.000000
+3764 1459   1.000000
+3765 4   0.200000
+3765 1436   0.075281
+3765 1440   0.102497
+3765 1444   0.022222
+3765 1446  -1.000000
+3765 1460   1.000000
+3766 4   0.200000
+3766 1449   0.075281
+3766 1453   0.102497
+3766 1457   0.022222
+3766 1459  -1.000000
+3766 1473   1.000000
+3767 4   0.200000
+3767 1450   0.075281
+3767 1454   0.102497
+3767 1458   0.022222
+3767 1460  -1.000000
+3767 1474   1.000000
+3768 4   0.200000
+3768 1477   0.075281
+3768 1481   0.102497
+3768 1485   0.022222
+3768 1487  -1.000000
+3768 1501   1.000000
+3769 4   0.200000
+3769 1478   0.075281
+3769 1482   0.102497
+3769 1486   0.022222
+3769 1488  -1.000000
+3769 1502   1.000000
+3770 4   0.200000
+3770 1491   0.075281
+3770 1495   0.102497
+3770 1499   0.022222
+3770 1501  -1.000000
+3770 1515   1.000000
+3771 4   0.200000
+3771 1492   0.075281
+3771 1496   0.102497
+3771 1500   0.022222
+3771 1502  -1.000000
+3771 1516   1.000000
+3772 4   0.200000
+3772 1505   0.075281
+3772 1509   0.102497
+3772 1513   0.022222
+3772 1515  -1.000000
+3772 1529   1.000000
+3773 4   0.200000
+3773 1506   0.075281
+3773 1510   0.102497
+3773 1514   0.022222
+3773 1516  -1.000000
+3773 1530   1.000000
+3774 4   0.200000
+3774 1519   0.075281
+3774 1523   0.102497
+3774 1527   0.022222
+3774 1529  -1.000000
+3774 1543   1.000000
+3775 4   0.200000
+3775 1520   0.075281
+3775 1524   0.102497
+3775 1528   0.022222
+3775 1530  -1.000000
+3775 1544   1.000000
+3776 4   0.200000
+3776 1547   0.075281
+3776 1551   0.102497
+3776 1555   0.022222
+3776 1557  -1.000000
+3776 1571   1.000000
+3777 4   0.200000
+3777 1548   0.075281
+3777 1552   0.102497
+3777 1556   0.022222
+3777 1558  -1.000000
+3777 1572   1.000000
+3778 4   0.200000
+3778 1561   0.075281
+3778 1565   0.102497
+3778 1569   0.022222
+3778 1571  -1.000000
+3778 1585   1.000000
+3779 4   0.200000
+3779 1562   0.075281
+3779 1566   0.102497
+3779 1570   0.022222
+3779 1572  -1.000000
+3779 1586   1.000000
+3780 4   0.200000
+3780 1575   0.075281
+3780 1579   0.102497
+3780 1583   0.022222
+3780 1585  -1.000000
+3780 1599   1.000000
+3781 4   0.200000
+3781 1576   0.075281
+3781 1580   0.102497
+3781 1584   0.022222
+3781 1586  -1.000000
+3781 1600   1.000000
+3782 4   0.200000
+3782 1589   0.075281
+3782 1593   0.102497
+3782 1597   0.022222
+3782 1599  -1.000000
+3782 1613   1.000000
+3783 4   0.200000
+3783 1590   0.075281
+3783 1594   0.102497
+3783 1598   0.022222
+3783 1600  -1.000000
+3783 1614   1.000000
+3784 4   0.200000
+3784 1617   0.075281
+3784 1621   0.102497
+3784 1625   0.022222
+3784 1627  -1.000000
+3784 1641   1.000000
+3785 4   0.200000
+3785 1618   0.075281
+3785 1622   0.102497
+3785 1626   0.022222
+3785 1628  -1.000000
+3785 1642   1.000000
+3786 4   0.200000
+3786 1631   0.075281
+3786 1635   0.102497
+3786 1639   0.022222
+3786 1641  -1.000000
+3786 1655   1.000000
+3787 4   0.200000
+3787 1632   0.075281
+3787 1636   0.102497
+3787 1640   0.022222
+3787 1642  -1.000000
+3787 1656   1.000000
+3788 4   0.200000
+3788 1645   0.075281
+3788 1649   0.102497
+3788 1653   0.022222
+3788 1655  -1.000000
+3788 1669   1.000000
+3789 4   0.200000
+3789 1646   0.075281
+3789 1650   0.102497
+3789 1654   0.022222
+3789 1656  -1.000000
+3789 1670   1.000000
+3790 4   0.200000
+3790 1659   0.075281
+3790 1663   0.102497
+3790 1667   0.022222
+3790 1669  -1.000000
+3790 1683   1.000000
+3791 4   0.200000
+3791 1660   0.075281
+3791 1664   0.102497
+3791 1668   0.022222
+3791 1670  -1.000000
+3791 1684   1.000000
+3792 4   0.200000
+3792 1687   0.075281
+3792 1691   0.102497
+3792 1695   0.022222
+3792 1697  -1.000000
+3792 1711   1.000000
+3793 4   0.200000
+3793 1688   0.075281
+3793 1692   0.102497
+3793 1696   0.022222
+3793 1698  -1.000000
+3793 1712   1.000000
+3794 4   0.200000
+3794 1701   0.075281
+3794 1705   0.102497
+3794 1709   0.022222
+3794 1711  -1.000000
+3794 1725   1.000000
+3795 4   0.200000
+3795 1702   0.075281
+3795 1706   0.102497
+3795 1710   0.022222
+3795 1712  -1.000000
+3795 1726   1.000000
+3796 4   0.200000
+3796 1715   0.075281
+3796 1719   0.102497
+3796 1723   0.022222
+3796 1725  -1.000000
+3796 1739   1.000000
+3797 4   0.200000
+3797 1716   0.075281
+3797 1720   0.102497
+3797 1724   0.022222
+3797 1726  -1.000000
+3797 1740   1.000000
+3798 4   0.200000
+3798 1729   0.075281
+3798 1733   0.102497
+3798 1737   0.022222
+3798 1739  -1.000000
+3798 1753   1.000000
+3799 4   0.200000
+3799 1730   0.075281
+3799 1734   0.102497
+3799 1738   0.022222
+3799 1740  -1.000000
+3799 1754   1.000000
+3800 4   0.200000
+3800 1757   0.075281
+3800 1761   0.102497
+3800 1765   0.022222
+3800 1767  -1.000000
+3800 1781   1.000000
+3801 4   0.200000
+3801 1758   0.075281
+3801 1762   0.102497
+3801 1766   0.022222
+3801 1768  -1.000000
+3801 1782   1.000000
+3802 4   0.200000
+3802 1771   0.075281
+3802 1775   0.102497
+3802 1779   0.022222
+3802 1781  -1.000000
+3802 1795   1.000000
+3803 4   0.200000
+3803 1772   0.075281
+3803 1776   0.102497
+3803 1780   0.022222
+3803 1782  -1.000000
+3803 1796   1.000000
+3804 4   0.200000
+3804 1785   0.075281
+3804 1789   0.102497
+3804 1793   0.022222
+3804 1795  -1.000000
+3804 1809   1.000000
+3805 4   0.200000
+3805 1786   0.075281
+3805 1790   0.102497
+3805 1794   0.022222
+3805 1796  -1.000000
+3805 1810   1.000000
+3806 4   0.200000
+3806 1799   0.075281
+3806 1803   0.102497
+3806 1807   0.022222
+3806 1809  -1.000000
+3806 1823   1.000000
+3807 4   0.200000
+3807 1800   0.075281
+3807 1804   0.102497
+3807 1808   0.022222
+3807 1810  -1.000000
+3807 1824   1.000000
+3808 4   0.200000
+3808 1827   0.075281
+3808 1831   0.102497
+3808 1835   0.022222
+3808 1837  -1.000000
+3808 1851   1.000000
+3809 4   0.200000
+3809 1828   0.075281
+3809 1832   0.102497
+3809 1836   0.022222
+3809 1838  -1.000000
+3809 1852   1.000000
+3810 4   0.200000
+3810 1841   0.075281
+3810 1845   0.102497
+3810 1849   0.022222
+3810 1851  -1.000000
+3810 1865   1.000000
+3811 4   0.200000
+3811 1842   0.075281
+3811 1846   0.102497
+3811 1850   0.022222
+3811 1852  -1.000000
+3811 1866   1.000000
+3812 4   0.200000
+3812 1855   0.075281
+3812 1859   0.102497
+3812 1863   0.022222
+3812 1865  -1.000000
+3812 1879   1.000000
+3813 4   0.200000
+3813 1856   0.075281
+3813 1860   0.102497
+3813 1864   0.022222
+3813 1866  -1.000000
+3813 1880   1.000000
+3814 4   0.200000
+3814 1869   0.075281
+3814 1873   0.102497
+3814 1877   0.022222
+3814 1879  -1.000000
+3814 1893   1.000000
+3815 4   0.200000
+3815 1870   0.075281
+3815 1874   0.102497
+3815 1878   0.022222
+3815 1880  -1.000000
+3815 1894   1.000000
+3816 4   0.200000
+3816 1897   0.075281
+3816 1901   0.102497
+3816 1905   0.022222
+3816 1907  -1.000000
+3816 1921   1.000000
+3817 4   0.200000
+3817 1898   0.075281
+3817 1902   0.102497
+3817 1906   0.022222
+3817 1908  -1.000000
+3817 1922   1.000000
+3818 4   0.200000
+3818 1911   0.075281
+3818 1915   0.102497
+3818 1919   0.022222
+3818 1921  -1.000000
+3818 1935   1.000000
+3819 4   0.200000
+3819 1912   0.075281
+3819 1916   0.102497
+3819 1920   0.022222
+3819 1922  -1.000000
+3819 1936   1.000000
+3820 4   0.200000
+3820 1925   0.075281
+3820 1929   0.102497
+3820 1933   0.022222
+3820 1935  -1.000000
+3820 1949   1.000000
+3821 4   0.200000
+3821 1926   0.075281
+3821 1930   0.102497
+3821 1934   0.022222
+3821 1936  -1.000000
+3821 1950   1.000000
+3822 4   0.200000
+3822 1939   0.075281
+3822 1943   0.102497
+3822 1947   0.022222
+3822 1949  -1.000000
+3822 1963   1.000000
+3823 4   0.200000
+3823 1940   0.075281
+3823 1944   0.102497
+3823 1948   0.022222
+3823 1950  -1.000000
+3823 1964   1.000000
+3824 4   0.200000
+3824 1967   0.075281
+3824 1971   0.102497
+3824 1975   0.022222
+3824 1977  -1.000000
+3824 1991   1.000000
+3825 4   0.200000
+3825 1968   0.075281
+3825 1972   0.102497
+3825 1976   0.022222
+3825 1978  -1.000000
+3825 1992   1.000000
+3826 4   0.200000
+3826 1981   0.075281
+3826 1985   0.102497
+3826 1989   0.022222
+3826 1991  -1.000000
+3826 2005   1.000000
+3827 4   0.200000
+3827 1982   0.075281
+3827 1986   0.102497
+3827 1990   0.022222
+3827 1992  -1.000000
+3827 2006   1.000000
+3828 4   0.200000
+3828 1995   0.075281
+3828 1999   0.102497
+3828 2003   0.022222
+3828 2005  -1.000000
+3828 2019   1.000000
+3829 4   0.200000
+3829 1996   0.075281
+3829 2000   0.102497
+3829 2004   0.022222
+3829 2006  -1.000000
+3829 2020   1.000000
+3830 4   0.200000
+3830 2009   0.075281
+3830 2013   0.102497
+3830 2017   0.022222
+3830 2019  -1.000000
+3830 2033   1.000000
+3831 4   0.200000
+3831 2010   0.075281
+3831 2014   0.102497
+3831 2018   0.022222
+3831 2020  -1.000000
+3831 2034   1.000000
+3832 4   0.200000
+3832 2037   0.075281
+3832 2041   0.102497
+3832 2045   0.022222
+3832 2047  -1.000000
+3832 2061   1.000000
+3833 4   0.200000
+3833 2038   0.075281
+3833 2042   0.102497
+3833 2046   0.022222
+3833 2048  -1.000000
+3833 2062   1.000000
+3834 4   0.200000
+3834 2051   0.075281
+3834 2055   0.102497
+3834 2059   0.022222
+3834 2061  -1.000000
+3834 2075   1.000000
+3835 4   0.200000
+3835 2052   0.075281
+3835 2056   0.102497
+3835 2060   0.022222
+3835 2062  -1.000000
+3835 2076   1.000000
+3836 4   0.200000
+3836 2065   0.075281
+3836 2069   0.102497
+3836 2073   0.022222
+3836 2075  -1.000000
+3836 2089   1.000000
+3837 4   0.200000
+3837 2066   0.075281
+3837 2070   0.102497
+3837 2074   0.022222
+3837 2076  -1.000000
+3837 2090   1.000000
+3838 4   0.200000
+3838 2079   0.075281
+3838 2083   0.102497
+3838 2087   0.022222
+3838 2089  -1.000000
+3838 2103   1.000000
+3839 4   0.200000
+3839 2080   0.075281
+3839 2084   0.102497
+3839 2088   0.022222
+3839 2090  -1.000000
+3839 2104   1.000000
+3840 4   0.200000
+3840 2107   0.075281
+3840 2111   0.102497
+3840 2115   0.022222
+3840 2117  -1.000000
+3840 2131   1.000000
+3841 4   0.200000
+3841 2108   0.075281
+3841 2112   0.102497
+3841 2116   0.022222
+3841 2118  -1.000000
+3841 2132   1.000000
+3842 4   0.200000
+3842 2121   0.075281
+3842 2125   0.102497
+3842 2129   0.022222
+3842 2131  -1.000000
+3842 2145   1.000000
+3843 4   0.200000
+3843 2122   0.075281
+3843 2126   0.102497
+3843 2130   0.022222
+3843 2132  -1.000000
+3843 2146   1.000000
+3844 4   0.200000
+3844 2135   0.075281
+3844 2139   0.102497
+3844 2143   0.022222
+3844 2145  -1.000000
+3844 2159   1.000000
+3845 4   0.200000
+3845 2136   0.075281
+3845 2140   0.102497
+3845 2144   0.022222
+3845 2146  -1.000000
+3845 2160   1.000000
+3846 4   0.200000
+3846 2149   0.075281
+3846 2153   0.102497
+3846 2157   0.022222
+3846 2159  -1.000000
+3846 2173   1.000000
+3847 4   0.200000
+3847 2150   0.075281
+3847 2154   0.102497
+3847 2158   0.022222
+3847 2160  -1.000000
+3847 2174   1.000000
+3848 4   0.200000
+3848 2177   0.075281
+3848 2181   0.102497
+3848 2185   0.022222
+3848 2187  -1.000000
+3848 2201   1.000000
+3849 4   0.200000
+3849 2178   0.075281
+3849 2182   0.102497
+3849 2186   0.022222
+3849 2188  -1.000000
+3849 2202   1.000000
+3850 4   0.200000
+3850 2191   0.075281
+3850 2195   0.102497
+3850 2199   0.022222
+3850 2201  -1.000000
+3850 2215   1.000000
+3851 4   0.200000
+3851 2192   0.075281
+3851 2196   0.102497
+3851 2200   0.022222
+3851 2202  -1.000000
+3851 2216   1.000000
+3852 4   0.200000
+3852 2205   0.075281
+3852 2209   0.102497
+3852 2213   0.022222
+3852 2215  -1.000000
+3852 2229   1.000000
+3853 4   0.200000
+3853 2206   0.075281
+3853 2210   0.102497
+3853 2214   0.022222
+3853 2216  -1.000000
+3853 2230   1.000000
+3854 4   0.200000
+3854 2219   0.075281
+3854 2223   0.102497
+3854 2227   0.022222
+3854 2229  -1.000000
+3854 2243   1.000000
+3855 4   0.200000
+3855 2220   0.075281
+3855 2224   0.102497
+3855 2228   0.022222
+3855 2230  -1.000000
+3855 2244   1.000000
+3856 4   0.200000
+3856 2247   0.075281
+3856 2251   0.102497
+3856 2255   0.022222
+3856 2257  -1.000000
+3856 2271   1.000000
+3857 4   0.200000
+3857 2248   0.075281
+3857 2252   0.102497
+3857 2256   0.022222
+3857 2258  -1.000000
+3857 2272   1.000000
+3858 4   0.200000
+3858 2261   0.075281
+3858 2265   0.102497
+3858 2269   0.022222
+3858 2271  -1.000000
+3858 2285   1.000000
+3859 4   0.200000
+3859 2262   0.075281
+3859 2266   0.102497
+3859 2270   0.022222
+3859 2272  -1.000000
+3859 2286   1.000000
+3860 4   0.200000
+3860 2275   0.075281
+3860 2279   0.102497
+3860 2283   0.022222
+3860 2285  -1.000000
+3860 2299   1.000000
+3861 4   0.200000
+3861 2276   0.075281
+3861 2280   0.102497
+3861 2284   0.022222
+3861 2286  -1.000000
+3861 2300   1.000000
+3862 4   0.200000
+3862 2289   0.075281
+3862 2293   0.102497
+3862 2297   0.022222
+3862 2299  -1.000000
+3862 2313   1.000000
+3863 4   0.200000
+3863 2290   0.075281
+3863 2294   0.102497
+3863 2298   0.022222
+3863 2300  -1.000000
+3863 2314   1.000000
+3864 4   0.200000
+3864 2317   0.075281
+3864 2321   0.102497
+3864 2325   0.022222
+3864 2327  -1.000000
+3864 2341   1.000000
+3865 4   0.200000
+3865 2318   0.075281
+3865 2322   0.102497
+3865 2326   0.022222
+3865 2328  -1.000000
+3865 2342   1.000000
+3866 4   0.200000
+3866 2331   0.075281
+3866 2335   0.102497
+3866 2339   0.022222
+3866 2341  -1.000000
+3866 2355   1.000000
+3867 4   0.200000
+3867 2332   0.075281
+3867 2336   0.102497
+3867 2340   0.022222
+3867 2342  -1.000000
+3867 2356   1.000000
+3868 4   0.200000
+3868 2345   0.075281
+3868 2349   0.102497
+3868 2353   0.022222
+3868 2355  -1.000000
+3868 2369   1.000000
+3869 4   0.200000
+3869 2346   0.075281
+3869 2350   0.102497
+3869 2354   0.022222
+3869 2356  -1.000000
+3869 2370   1.000000
+3870 4   0.200000
+3870 2359   0.075281
+3870 2363   0.102497
+3870 2367   0.022222
+3870 2369  -1.000000
+3870 2383   1.000000
+3871 4   0.200000
+3871 2360   0.075281
+3871 2364   0.102497
+3871 2368   0.022222
+3871 2370  -1.000000
+3871 2384   1.000000
+3872 4   0.200000
+3872 2387   0.075281
+3872 2391   0.102497
+3872 2395   0.022222
+3872 2397  -1.000000
+3872 2411   1.000000
+3873 4   0.200000
+3873 2388   0.075281
+3873 2392   0.102497
+3873 2396   0.022222
+3873 2398  -1.000000
+3873 2412   1.000000
+3874 4   0.200000
+3874 2401   0.075281
+3874 2405   0.102497
+3874 2409   0.022222
+3874 2411  -1.000000
+3874 2425   1.000000
+3875 4   0.200000
+3875 2402   0.075281
+3875 2406   0.102497
+3875 2410   0.022222
+3875 2412  -1.000000
+3875 2426   1.000000
+3876 4   0.200000
+3876 2415   0.075281
+3876 2419   0.102497
+3876 2423   0.022222
+3876 2425  -1.000000
+3876 2439   1.000000
+3877 4   0.200000
+3877 2416   0.075281
+3877 2420   0.102497
+3877 2424   0.022222
+3877 2426  -1.000000
+3877 2440   1.000000
+3878 4   0.200000
+3878 2429   0.075281
+3878 2433   0.102497
+3878 2437   0.022222
+3878 2439  -1.000000
+3878 2453   1.000000
+3879 4   0.200000
+3879 2430   0.075281
+3879 2434   0.102497
+3879 2438   0.022222
+3879 2440  -1.000000
+3879 2454   1.000000
+3880 4   0.200000
+3880 2457   0.075281
+3880 2461   0.102497
+3880 2465   0.022222
+3880 2467  -1.000000
+3880 2481   1.000000
+3881 4   0.200000
+3881 2458   0.075281
+3881 2462   0.102497
+3881 2466   0.022222
+3881 2468  -1.000000
+3881 2482   1.000000
+3882 4   0.200000
+3882 2471   0.075281
+3882 2475   0.102497
+3882 2479   0.022222
+3882 2481  -1.000000
+3882 2495   1.000000
+3883 4   0.200000
+3883 2472   0.075281
+3883 2476   0.102497
+3883 2480   0.022222
+3883 2482  -1.000000
+3883 2496   1.000000
+3884 4   0.200000
+3884 2485   0.075281
+3884 2489   0.102497
+3884 2493   0.022222
+3884 2495  -1.000000
+3884 2509   1.000000
+3885 4   0.200000
+3885 2486   0.075281
+3885 2490   0.102497
+3885 2494   0.022222
+3885 2496  -1.000000
+3885 2510   1.000000
+3886 4   0.200000
+3886 2499   0.075281
+3886 2503   0.102497
+3886 2507   0.022222
+3886 2509  -1.000000
+3886 2523   1.000000
+3887 4   0.200000
+3887 2500   0.075281
+3887 2504   0.102497
+3887 2508   0.022222
+3887 2510  -1.000000
+3887 2524   1.000000
+3888 4   0.200000
+3888 2527   0.075281
+3888 2531   0.102497
+3888 2535   0.022222
+3888 2537  -1.000000
+3888 2551   1.000000
+3889 4   0.200000
+3889 2528   0.075281
+3889 2532   0.102497
+3889 2536   0.022222
+3889 2538  -1.000000
+3889 2552   1.000000
+3890 4   0.200000
+3890 2541   0.075281
+3890 2545   0.102497
+3890 2549   0.022222
+3890 2551  -1.000000
+3890 2565   1.000000
+3891 4   0.200000
+3891 2542   0.075281
+3891 2546   0.102497
+3891 2550   0.022222
+3891 2552  -1.000000
+3891 2566   1.000000
+3892 4   0.200000
+3892 2555   0.075281
+3892 2559   0.102497
+3892 2563   0.022222
+3892 2565  -1.000000
+3892 2579   1.000000
+3893 4   0.200000
+3893 2556   0.075281
+3893 2560   0.102497
+3893 2564   0.022222
+3893 2566  -1.000000
+3893 2580   1.000000
+3894 4   0.200000
+3894 2569   0.075281
+3894 2573   0.102497
+3894 2577   0.022222
+3894 2579  -1.000000
+3894 2593   1.000000
+3895 4   0.200000
+3895 2570   0.075281
+3895 2574   0.102497
+3895 2578   0.022222
+3895 2580  -1.000000
+3895 2594   1.000000
+3896 4   0.200000
+3896 2597   0.075281
+3896 2601   0.102497
+3896 2605   0.022222
+3896 2607  -1.000000
+3896 2621   1.000000
+3897 4   0.200000
+3897 2598   0.075281
+3897 2602   0.102497
+3897 2606   0.022222
+3897 2608  -1.000000
+3897 2622   1.000000
+3898 4   0.200000
+3898 2611   0.075281
+3898 2615   0.102497
+3898 2619   0.022222
+3898 2621  -1.000000
+3898 2635   1.000000
+3899 4   0.200000
+3899 2612   0.075281
+3899 2616   0.102497
+3899 2620   0.022222
+3899 2622  -1.000000
+3899 2636   1.000000
+3900 4   0.200000
+3900 2625   0.075281
+3900 2629   0.102497
+3900 2633   0.022222
+3900 2635  -1.000000
+3900 2649   1.000000
+3901 4   0.200000
+3901 2626   0.075281
+3901 2630   0.102497
+3901 2634   0.022222
+3901 2636  -1.000000
+3901 2650   1.000000
+3902 4   0.200000
+3902 2639   0.075281
+3902 2643   0.102497
+3902 2647   0.022222
+3902 2649  -1.000000
+3902 2663   1.000000
+3903 4   0.200000
+3903 2640   0.075281
+3903 2644   0.102497
+3903 2648   0.022222
+3903 2650  -1.000000
+3903 2664   1.000000
+3904 4   0.200000
+3904 2667   0.075281
+3904 2671   0.102497
+3904 2675   0.022222
+3904 2677  -1.000000
+3904 2691   1.000000
+3905 4   0.200000
+3905 2668   0.075281
+3905 2672   0.102497
+3905 2676   0.022222
+3905 2678  -1.000000
+3905 2692   1.000000
+3906 4   0.200000
+3906 2681   0.075281
+3906 2685   0.102497
+3906 2689   0.022222
+3906 2691  -1.000000
+3906 2705   1.000000
+3907 4   0.200000
+3907 2682   0.075281
+3907 2686   0.102497
+3907 2690   0.022222
+3907 2692  -1.000000
+3907 2706   1.000000
+3908 4   0.200000
+3908 2695   0.075281
+3908 2699   0.102497
+3908 2703   0.022222
+3908 2705  -1.000000
+3908 2719   1.000000
+3909 4   0.200000
+3909 2696   0.075281
+3909 2700   0.102497
+3909 2704   0.022222
+3909 2706  -1.000000
+3909 2720   1.000000
+3910 4   0.200000
+3910 2709   0.075281
+3910 2713   0.102497
+3910 2717   0.022222
+3910 2719  -1.000000
+3910 2733   1.000000
+3911 4   0.200000
+3911 2710   0.075281
+3911 2714   0.102497
+3911 2718   0.022222
+3911 2720  -1.000000
+3911 2734   1.000000
+3912 4   0.200000
+3912 2737   0.075281
+3912 2741   0.102497
+3912 2745   0.022222
+3912 2747  -1.000000
+3912 2761   1.000000
+3913 4   0.200000
+3913 2738   0.075281
+3913 2742   0.102497
+3913 2746   0.022222
+3913 2748  -1.000000
+3913 2762   1.000000
+3914 4   0.200000
+3914 2751   0.075281
+3914 2755   0.102497
+3914 2759   0.022222
+3914 2761  -1.000000
+3914 2775   1.000000
+3915 4   0.200000
+3915 2752   0.075281
+3915 2756   0.102497
+3915 2760   0.022222
+3915 2762  -1.000000
+3915 2776   1.000000
+3916 4   0.200000
+3916 2765   0.075281
+3916 2769   0.102497
+3916 2773   0.022222
+3916 2775  -1.000000
+3916 2789   1.000000
+3917 4   0.200000
+3917 2766   0.075281
+3917 2770   0.102497
+3917 2774   0.022222
+3917 2776  -1.000000
+3917 2790   1.000000
+3918 4   0.200000
+3918 2779   0.075281
+3918 2783   0.102497
+3918 2787   0.022222
+3918 2789  -1.000000
+3918 2803   1.000000
+3919 4   0.200000
+3919 2780   0.075281
+3919 2784   0.102497
+3919 2788   0.022222
+3919 2790  -1.000000
+3919 2804   1.000000
+3920 4   0.200000
+3920 2807   0.075281
+3920 2811   0.102497
+3920 2815   0.022222
+3920 2817  -1.000000
+3920 2831   1.000000
+3921 4   0.200000
+3921 2808   0.075281
+3921 2812   0.102497
+3921 2816   0.022222
+3921 2818  -1.000000
+3921 2832   1.000000
+3922 4   0.200000
+3922 2821   0.075281
+3922 2825   0.102497
+3922 2829   0.022222
+3922 2831  -1.000000
+3922 2845   1.000000
+3923 4   0.200000
+3923 2822   0.075281
+3923 2826   0.102497
+3923 2830   0.022222
+3923 2832  -1.000000
+3923 2846   1.000000
+3924 4   0.200000
+3924 2835   0.075281
+3924 2839   0.102497
+3924 2843   0.022222
+3924 2845  -1.000000
+3924 2859   1.000000
+3925 4   0.200000
+3925 2836   0.075281
+3925 2840   0.102497
+3925 2844   0.022222
+3925 2846  -1.000000
+3925 2860   1.000000
+3926 4   0.200000
+3926 2849   0.075281
+3926 2853   0.102497
+3926 2857   0.022222
+3926 2859  -1.000000
+3926 2873   1.000000
+3927 4   0.200000
+3927 2850   0.075281
+3927 2854   0.102497
+3927 2858   0.022222
+3927 2860  -1.000000
+3927 2874   1.000000
+3928 4   0.200000
+3928 2877   0.075281
+3928 2881   0.102497
+3928 2885   0.022222
+3928 2887  -1.000000
+3928 2901   1.000000
+3929 4   0.200000
+3929 2878   0.075281
+3929 2882   0.102497
+3929 2886   0.022222
+3929 2888  -1.000000
+3929 2902   1.000000
+3930 4   0.200000
+3930 2891   0.075281
+3930 2895   0.102497
+3930 2899   0.022222
+3930 2901  -1.000000
+3930 2915   1.000000
+3931 4   0.200000
+3931 2892   0.075281
+3931 2896   0.102497
+3931 2900   0.022222
+3931 2902  -1.000000
+3931 2916   1.000000
+3932 4   0.200000
+3932 2905   0.075281
+3932 2909   0.102497
+3932 2913   0.022222
+3932 2915  -1.000000
+3932 2929   1.000000
+3933 4   0.200000
+3933 2906   0.075281
+3933 2910   0.102497
+3933 2914   0.022222
+3933 2916  -1.000000
+3933 2930   1.000000
+3934 4   0.200000
+3934 2919   0.075281
+3934 2923   0.102497
+3934 2927   0.022222
+3934 2929  -1.000000
+3934 2943   1.000000
+3935 4   0.200000
+3935 2920   0.075281
+3935 2924   0.102497
+3935 2928   0.022222
+3935 2930  -1.000000
+3935 2944   1.000000
+3936 4   0.200000
+3936 2947   0.075281
+3936 2951   0.102497
+3936 2955   0.022222
+3936 2957  -1.000000
+3936 2971   1.000000
+3937 4   0.200000
+3937 2948   0.075281
+3937 2952   0.102497
+3937 2956   0.022222
+3937 2958  -1.000000
+3937 2972   1.000000
+3938 4   0.200000
+3938 2961   0.075281
+3938 2965   0.102497
+3938 2969   0.022222
+3938 2971  -1.000000
+3938 2985   1.000000
+3939 4   0.200000
+3939 2962   0.075281
+3939 2966   0.102497
+3939 2970   0.022222
+3939 2972  -1.000000
+3939 2986   1.000000
+3940 4   0.200000
+3940 2975   0.075281
+3940 2979   0.102497
+3940 2983   0.022222
+3940 2985  -1.000000
+3940 2999   1.000000
+3941 4   0.200000
+3941 2976   0.075281
+3941 2980   0.102497
+3941 2984   0.022222
+3941 2986  -1.000000
+3941 3000   1.000000
+3942 4   0.200000
+3942 2989   0.075281
+3942 2993   0.102497
+3942 2997   0.022222
+3942 2999  -1.000000
+3942 3013   1.000000
+3943 4   0.200000
+3943 2990   0.075281
+3943 2994   0.102497
+3943 2998   0.022222
+3943 3000  -1.000000
+3943 3014   1.000000
+3944 4   0.200000
+3944 3017   0.075281
+3944 3021   0.102497
+3944 3025   0.022222
+3944 3027  -1.000000
+3944 3041   1.000000
+3945 4   0.200000
+3945 3018   0.075281
+3945 3022   0.102497
+3945 3026   0.022222
+3945 3028  -1.000000
+3945 3042   1.000000
+3946 4   0.200000
+3946 3031   0.075281
+3946 3035   0.102497
+3946 3039   0.022222
+3946 3041  -1.000000
+3946 3055   1.000000
+3947 4   0.200000
+3947 3032   0.075281
+3947 3036   0.102497
+3947 3040   0.022222
+3947 3042  -1.000000
+3947 3056   1.000000
+3948 4   0.200000
+3948 3045   0.075281
+3948 3049   0.102497
+3948 3053   0.022222
+3948 3055  -1.000000
+3948 3069   1.000000
+3949 4   0.200000
+3949 3046   0.075281
+3949 3050   0.102497
+3949 3054   0.022222
+3949 3056  -1.000000
+3949 3070   1.000000
+3950 4   0.200000
+3950 3059   0.075281
+3950 3063   0.102497
+3950 3067   0.022222
+3950 3069  -1.000000
+3950 3083   1.000000
+3951 4   0.200000
+3951 3060   0.075281
+3951 3064   0.102497
+3951 3068   0.022222
+3951 3070  -1.000000
+3951 3084   1.000000
+3952 4   0.200000
+3952 3087   0.075281
+3952 3091   0.102497
+3952 3095   0.022222
+3952 3097  -1.000000
+3952 3111   1.000000
+3953 4   0.200000
+3953 3088   0.075281
+3953 3092   0.102497
+3953 3096   0.022222
+3953 3098  -1.000000
+3953 3112   1.000000
+3954 4   0.200000
+3954 3101   0.075281
+3954 3105   0.102497
+3954 3109   0.022222
+3954 3111  -1.000000
+3954 3125   1.000000
+3955 4   0.200000
+3955 3102   0.075281
+3955 3106   0.102497
+3955 3110   0.022222
+3955 3112  -1.000000
+3955 3126   1.000000
+3956 4   0.200000
+3956 3115   0.075281
+3956 3119   0.102497
+3956 3123   0.022222
+3956 3125  -1.000000
+3956 3139   1.000000
+3957 4   0.200000
+3957 3116   0.075281
+3957 3120   0.102497
+3957 3124   0.022222
+3957 3126  -1.000000
+3957 3140   1.000000
+3958 4   0.200000
+3958 3129   0.075281
+3958 3133   0.102497
+3958 3137   0.022222
+3958 3139  -1.000000
+3958 3153   1.000000
+3959 4   0.200000
+3959 3130   0.075281
+3959 3134   0.102497
+3959 3138   0.022222
+3959 3140  -1.000000
+3959 3154   1.000000
+3960 4   0.200000
+3960 3157   0.075281
+3960 3161   0.102497
+3960 3165   0.022222
+3960 3167  -1.000000
+3960 3181   1.000000
+3961 4   0.200000
+3961 3158   0.075281
+3961 3162   0.102497
+3961 3166   0.022222
+3961 3168  -1.000000
+3961 3182   1.000000
+3962 4   0.200000
+3962 3171   0.075281
+3962 3175   0.102497
+3962 3179   0.022222
+3962 3181  -1.000000
+3962 3195   1.000000
+3963 4   0.200000
+3963 3172   0.075281
+3963 3176   0.102497
+3963 3180   0.022222
+3963 3182  -1.000000
+3963 3196   1.000000
+3964 4   0.200000
+3964 3185   0.075281
+3964 3189   0.102497
+3964 3193   0.022222
+3964 3195  -1.000000
+3964 3209   1.000000
+3965 4   0.200000
+3965 3186   0.075281
+3965 3190   0.102497
+3965 3194   0.022222
+3965 3196  -1.000000
+3965 3210   1.000000
+3966 4   0.200000
+3966 3199   0.075281
+3966 3203   0.102497
+3966 3207   0.022222
+3966 3209  -1.000000
+3966 3223   1.000000
+3967 4   0.200000
+3967 3200   0.075281
+3967 3204   0.102497
+3967 3208   0.022222
+3967 3210  -1.000000
+3967 3224   1.000000
+3968 4   0.200000
+3968 3227   0.075281
+3968 3231   0.102497
+3968 3235   0.022222
+3968 3237  -1.000000
+3968 3251   1.000000
+3969 4   0.200000
+3969 3228   0.075281
+3969 3232   0.102497
+3969 3236   0.022222
+3969 3238  -1.000000
+3969 3252   1.000000
+3970 4   0.200000
+3970 3241   0.075281
+3970 3245   0.102497
+3970 3249   0.022222
+3970 3251  -1.000000
+3970 3265   1.000000
+3971 4   0.200000
+3971 3242   0.075281
+3971 3246   0.102497
+3971 3250   0.022222
+3971 3252  -1.000000
+3971 3266   1.000000
+3972 4   0.200000
+3972 3255   0.075281
+3972 3259   0.102497
+3972 3263   0.022222
+3972 3265  -1.000000
+3972 3279   1.000000
+3973 4   0.200000
+3973 3256   0.075281
+3973 3260   0.102497
+3973 3264   0.022222
+3973 3266  -1.000000
+3973 3280   1.000000
+3974 4   0.200000
+3974 3269   0.075281
+3974 3273   0.102497
+3974 3277   0.022222
+3974 3279  -1.000000
+3974 3293   1.000000
+3975 4   0.200000
+3975 3270   0.075281
+3975 3274   0.102497
+3975 3278   0.022222
+3975 3280  -1.000000
+3975 3294   1.000000
+3976 4   0.200000
+3976 3297   0.075281
+3976 3301   0.102497
+3976 3305   0.022222
+3976 3307  -1.000000
+3976 3321   1.000000
+3977 4   0.200000
+3977 3298   0.075281
+3977 3302   0.102497
+3977 3306   0.022222
+3977 3308  -1.000000
+3977 3322   1.000000
+3978 4   0.200000
+3978 3311   0.075281
+3978 3315   0.102497
+3978 3319   0.022222
+3978 3321  -1.000000
+3978 3335   1.000000
+3979 4   0.200000
+3979 3312   0.075281
+3979 3316   0.102497
+3979 3320   0.022222
+3979 3322  -1.000000
+3979 3336   1.000000
+3980 4   0.200000
+3980 3325   0.075281
+3980 3329   0.102497
+3980 3333   0.022222
+3980 3335  -1.000000
+3980 3349   1.000000
+3981 4   0.200000
+3981 3326   0.075281
+3981 3330   0.102497
+3981 3334   0.022222
+3981 3336  -1.000000
+3981 3350   1.000000
+3982 4   0.200000
+3982 3339   0.075281
+3982 3343   0.102497
+3982 3347   0.022222
+3982 3349  -1.000000
+3982 3363   1.000000
+3983 4   0.200000
+3983 3340   0.075281
+3983 3344   0.102497
+3983 3348   0.022222
+3983 3350  -1.000000
+3983 3364   1.000000
+3984 4   0.200000
+3984 3367   0.075281
+3984 3371   0.102497
+3984 3375   0.022222
+3984 3377  -1.000000
+3984 3391   1.000000
+3985 4   0.200000
+3985 3368   0.075281
+3985 3372   0.102497
+3985 3376   0.022222
+3985 3378  -1.000000
+3985 3392   1.000000
+3986 4   0.200000
+3986 3381   0.075281
+3986 3385   0.102497
+3986 3389   0.022222
+3986 3391  -1.000000
+3986 3405   1.000000
+3987 4   0.200000
+3987 3382   0.075281
+3987 3386   0.102497
+3987 3390   0.022222
+3987 3392  -1.000000
+3987 3406   1.000000
+3988 4   0.200000
+3988 3395   0.075281
+3988 3399   0.102497
+3988 3403   0.022222
+3988 3405  -1.000000
+3988 3419   1.000000
+3989 4   0.200000
+3989 3396   0.075281
+3989 3400   0.102497
+3989 3404   0.022222
+3989 3406  -1.000000
+3989 3420   1.000000
+3990 4   0.200000
+3990 3409   0.075281
+3990 3413   0.102497
+3990 3417   0.022222
+3990 3419  -1.000000
+3990 3433   1.000000
+3991 4   0.200000
+3991 3410   0.075281
+3991 3414   0.102497
+3991 3418   0.022222
+3991 3420  -1.000000
+3991 3434   1.000000
+3992 4   0.200000
+3992 3437   0.075281
+3992 3441   0.102497
+3992 3445   0.022222
+3992 3447  -1.000000
+3992 3461   1.000000
+3993 4   0.200000
+3993 3438   0.075281
+3993 3442   0.102497
+3993 3446   0.022222
+3993 3448  -1.000000
+3993 3462   1.000000
+3994 4   0.200000
+3994 3451   0.075281
+3994 3455   0.102497
+3994 3459   0.022222
+3994 3461  -1.000000
+3994 3475   1.000000
+3995 4   0.200000
+3995 3452   0.075281
+3995 3456   0.102497
+3995 3460   0.022222
+3995 3462  -1.000000
+3995 3476   1.000000
+3996 4   0.200000
+3996 3465   0.075281
+3996 3469   0.102497
+3996 3473   0.022222
+3996 3475  -1.000000
+3996 3489   1.000000
+3997 4   0.200000
+3997 3466   0.075281
+3997 3470   0.102497
+3997 3474   0.022222
+3997 3476  -1.000000
+3997 3490   1.000000
+3998 4   0.200000
+3998 3479   0.075281
+3998 3483   0.102497
+3998 3487   0.022222
+3998 3489  -1.000000
+3998 3503   1.000000
+3999 4   0.200000
+3999 3480   0.075281
+3999 3484   0.102497
+3999 3488   0.022222
+3999 3490  -1.000000
+3999 3504   1.000000
+4000 4   0.200000
+4000 3507   0.075281
+4000 3511   0.102497
+4000 3515   0.022222
+4000 3517  -1.000000
+4000 3531   1.000000
+4001 4   0.200000
+4001 3508   0.075281
+4001 3512   0.102497
+4001 3516   0.022222
+4001 3518  -1.000000
+4001 3532   1.000000
+4002 4   0.200000
+4002 3521   0.075281
+4002 3525   0.102497
+4002 3529   0.022222
+4002 3531  -1.000000
+4002 3545   1.000000
+4003 4   0.200000
+4003 3522   0.075281
+4003 3526   0.102497
+4003 3530   0.022222
+4003 3532  -1.000000
+4003 3546   1.000000
+4004 4   0.200000
+4004 3535   0.075281
+4004 3539   0.102497
+4004 3543   0.022222
+4004 3545  -1.000000
+4004 3559   1.000000
+4005 4   0.200000
+4005 3536   0.075281
+4005 3540   0.102497
+4005 3544   0.022222
+4005 3546  -1.000000
+4005 3560   1.000000
+4006 4   0.200000
+4006 3549   0.075281
+4006 3553   0.102497
+4006 3557   0.022222
+4006 3559  -1.000000
+4006 3573   1.000000
+4007 4   0.200000
+4007 3550   0.075281
+4007 3554   0.102497
+4007 3558   0.022222
+4007 3560  -1.000000
+4007 3574   1.000000
+4008 4   0.200000
+4008 3577   0.075281
+4008 3581   0.102497
+4008 3585   0.022222
+4008 3587  -1.000000
+4008 3601   1.000000
+4009 4   0.200000
+4009 3578   0.075281
+4009 3582   0.102497
+4009 3586   0.022222
+4009 3588  -1.000000
+4009 3602   1.000000
+4010 4   0.200000
+4010 3591   0.075281
+4010 3595   0.102497
+4010 3599   0.022222
+4010 3601  -1.000000
+4010 3615   1.000000
+4011 4   0.200000
+4011 3592   0.075281
+4011 3596   0.102497
+4011 3600   0.022222
+4011 3602  -1.000000
+4011 3616   1.000000
+4012 4   0.200000
+4012 3605   0.075281
+4012 3609   0.102497
+4012 3613   0.022222
+4012 3615  -1.000000
+4012 3629   1.000000
+4013 4   0.200000
+4013 3606   0.075281
+4013 3610   0.102497
+4013 3614   0.022222
+4013 3616  -1.000000
+4013 3630   1.000000
+4014 4   0.200000
+4014 3619   0.075281
+4014 3623   0.102497
+4014 3627   0.022222
+4014 3629  -1.000000
+4014 3643   1.000000
+4015 4   0.200000
+4015 3620   0.075281
+4015 3624   0.102497
+4015 3628   0.022222
+4015 3630  -1.000000
+4015 3644   1.000000
+4016 4   0.200000
+4016 3647   0.075281
+4016 3651   0.102497
+4016 3655   0.022222
+4016 3657  -1.000000
+4016 3671   1.000000
+4017 4   0.200000
+4017 3648   0.075281
+4017 3652   0.102497
+4017 3656   0.022222
+4017 3658  -1.000000
+4017 3672   1.000000
+4018 4   0.200000
+4018 3661   0.075281
+4018 3665   0.102497
+4018 3669   0.022222
+4018 3671  -1.000000
+4018 3685   1.000000
+4019 4   0.200000
+4019 3662   0.075281
+4019 3666   0.102497
+4019 3670   0.022222
+4019 3672  -1.000000
+4019 3686   1.000000
+4020 4   0.200000
+4020 3675   0.075281
+4020 3679   0.102497
+4020 3683   0.022222
+4020 3685  -1.000000
+4020 3699   1.000000
+4021 4   0.200000
+4021 3676   0.075281
+4021 3680   0.102497
+4021 3684   0.022222
+4021 3686  -1.000000
+4021 3700   1.000000
+4022 4   0.200000
+4022 3689   0.075281
+4022 3693   0.102497
+4022 3697   0.022222
+4022 3699  -1.000000
+4022 3713   1.000000
+4023 4   0.200000
+4023 3690   0.075281
+4023 3694   0.102497
+4023 3698   0.022222
+4023 3700  -1.000000
+4023 3714   1.000000
+4024 4   0.200000
+4024 3717   0.075281
+4024 3721   0.102497
+4024 3725   0.022222
+4024 3727  -1.000000
+4024 3741   1.000000
+4025 4   0.200000
+4025 3718   0.075281
+4025 3722   0.102497
+4025 3726   0.022222
+4025 3728  -1.000000
+4025 3742   1.000000
+4026 4   0.200000
+4026 3731   0.075281
+4026 3735   0.102497
+4026 3739   0.022222
+4026 3741  -1.000000
+4026 3755   1.000000
+4027 4   0.200000
+4027 3732   0.075281
+4027 3736   0.102497
+4027 3740   0.022222
+4027 3742  -1.000000
+4027 3756   1.000000
+4028 4   0.200000
+4028 3745   0.075281
+4028 3749   0.102497
+4028 3753   0.022222
+4028 3755  -1.000000
+4028 3769   1.000000
+4029 4   0.200000
+4029 3746   0.075281
+4029 3750   0.102497
+4029 3754   0.022222
+4029 3756  -1.000000
+4029 3770   1.000000
+4030 4   0.200000
+4030 3759   0.075281
+4030 3763   0.102497
+4030 3767   0.022222
+4030 3769  -1.000000
+4030 3783   1.000000
+4031 4   0.200000
+4031 3760   0.075281
+4031 3764   0.102497
+4031 3768   0.022222
+4031 3770  -1.000000
+4031 3784   1.000000
+4032 4   0.200000
+4032 3787   0.075281
+4032 3791   0.102497
+4032 3795   0.022222
+4032 3797  -1.000000
+4032 3811   1.000000
+4033 4   0.200000
+4033 3788   0.075281
+4033 3792   0.102497
+4033 3796   0.022222
+4033 3798  -1.000000
+4033 3812   1.000000
+4034 4   0.200000
+4034 3801   0.075281
+4034 3805   0.102497
+4034 3809   0.022222
+4034 3811  -1.000000
+4034 3825   1.000000
+4035 4   0.200000
+4035 3802   0.075281
+4035 3806   0.102497
+4035 3810   0.022222
+4035 3812  -1.000000
+4035 3826   1.000000
+4036 4   0.200000
+4036 3815   0.075281
+4036 3819   0.102497
+4036 3823   0.022222
+4036 3825  -1.000000
+4036 3839   1.000000
+4037 4   0.200000
+4037 3816   0.075281
+4037 3820   0.102497
+4037 3824   0.022222
+4037 3826  -1.000000
+4037 3840   1.000000
+4038 4   0.200000
+4038 3829   0.075281
+4038 3833   0.102497
+4038 3837   0.022222
+4038 3839  -1.000000
+4038 3853   1.000000
+4039 4   0.200000
+4039 3830   0.075281
+4039 3834   0.102497
+4039 3838   0.022222
+4039 3840  -1.000000
+4039 3854   1.000000
+4040 4   0.200000
+4040 3857   0.075281
+4040 3861   0.102497
+4040 3865   0.022222
+4040 3867  -1.000000
+4040 3881   1.000000
+4041 4   0.200000
+4041 3858   0.075281
+4041 3862   0.102497
+4041 3866   0.022222
+4041 3868  -1.000000
+4041 3882   1.000000
+4042 4   0.200000
+4042 3871   0.075281
+4042 3875   0.102497
+4042 3879   0.022222
+4042 3881  -1.000000
+4042 3895   1.000000
+4043 4   0.200000
+4043 3872   0.075281
+4043 3876   0.102497
+4043 3880   0.022222
+4043 3882  -1.000000
+4043 3896   1.000000
+4044 4   0.200000
+4044 3885   0.075281
+4044 3889   0.102497
+4044 3893   0.022222
+4044 3895  -1.000000
+4044 3909   1.000000
+4045 4   0.200000
+4045 3886   0.075281
+4045 3890   0.102497
+4045 3894   0.022222
+4045 3896  -1.000000
+4045 3910   1.000000
+4046 4   0.200000
+4046 3899   0.075281
+4046 3903   0.102497
+4046 3907   0.022222
+4046 3909  -1.000000
+4046 3923   1.000000
+4047 4   0.200000
+4047 3900   0.075281
+4047 3904   0.102497
+4047 3908   0.022222
+4047 3910  -1.000000
+4047 3924   1.000000
+4048 4   0.200000
+4048 3927   0.075281
+4048 3931   0.102497
+4048 3935   0.022222
+4048 3937  -1.000000
+4048 3951   1.000000
+4049 4   0.200000
+4049 3928   0.075281
+4049 3932   0.102497
+4049 3936   0.022222
+4049 3938  -1.000000
+4049 3952   1.000000
+4050 4   0.200000
+4050 3941   0.075281
+4050 3945   0.102497
+4050 3949   0.022222
+4050 3951  -1.000000
+4050 3965   1.000000
+4051 4   0.200000
+4051 3942   0.075281
+4051 3946   0.102497
+4051 3950   0.022222
+4051 3952  -1.000000
+4051 3966   1.000000
+4052 4   0.200000
+4052 3955   0.075281
+4052 3959   0.102497
+4052 3963   0.022222
+4052 3965  -1.000000
+4052 3979   1.000000
+4053 4   0.200000
+4053 3956   0.075281
+4053 3960   0.102497
+4053 3964   0.022222
+4053 3966  -1.000000
+4053 3980   1.000000
+4054 4   0.200000
+4054 3969   0.075281
+4054 3973   0.102497
+4054 3977   0.022222
+4054 3979  -1.000000
+4054 3993   1.000000
+4055 4   0.200000
+4055 3970   0.075281
+4055 3974   0.102497
+4055 3978   0.022222
+4055 3980  -1.000000
+4055 3994   1.000000
+4056 4   0.200000
+4056 3997   0.075281
+4056 4001   0.102497
+4056 4005   0.022222
+4056 4007  -1.000000
+4056 4021   1.000000
+4057 4   0.200000
+4057 3998   0.075281
+4057 4002   0.102497
+4057 4006   0.022222
+4057 4008  -1.000000
+4057 4022   1.000000
+4058 4   0.200000
+4058 4011   0.075281
+4058 4015   0.102497
+4058 4019   0.022222
+4058 4021  -1.000000
+4058 4035   1.000000
+4059 4   0.200000
+4059 4012   0.075281
+4059 4016   0.102497
+4059 4020   0.022222
+4059 4022  -1.000000
+4059 4036   1.000000
+4060 4   0.200000
+4060 4025   0.075281
+4060 4029   0.102497
+4060 4033   0.022222
+4060 4035  -1.000000
+4060 4049   1.000000
+4061 4   0.200000
+4061 4026   0.075281
+4061 4030   0.102497
+4061 4034   0.022222
+4061 4036  -1.000000
+4061 4050   1.000000
+4062 4   0.200000
+4062 4039   0.075281
+4062 4043   0.102497
+4062 4047   0.022222
+4062 4049  -1.000000
+4062 4063   1.000000
+4063 4   0.200000
+4063 4040   0.075281
+4063 4044   0.102497
+4063 4048   0.022222
+4063 4050  -1.000000
+4063 4064   1.000000
+4064 4   0.200000
+4064 4067   0.075281
+4064 4071   0.102497
+4064 4075   0.022222
+4064 4077  -1.000000
+4064 4091   1.000000
+4065 4   0.200000
+4065 4068   0.075281
+4065 4072   0.102497
+4065 4076   0.022222
+4065 4078  -1.000000
+4065 4092   1.000000
+4066 4   0.200000
+4066 4081   0.075281
+4066 4085   0.102497
+4066 4089   0.022222
+4066 4091  -1.000000
+4066 4105   1.000000
+4067 4   0.200000
+4067 4082   0.075281
+4067 4086   0.102497
+4067 4090   0.022222
+4067 4092  -1.000000
+4067 4106   1.000000
+4068 4   0.200000
+4068 4095   0.075281
+4068 4099   0.102497
+4068 4103   0.022222
+4068 4105  -1.000000
+4068 4119   1.000000
+4069 4   0.200000
+4069 4096   0.075281
+4069 4100   0.102497
+4069 4104   0.022222
+4069 4106  -1.000000
+4069 4120   1.000000
+4070 4   0.200000
+4070 4109   0.075281
+4070 4113   0.102497
+4070 4117   0.022222
+4070 4119  -1.000000
+4070 4133   1.000000
+4071 4   0.200000
+4071 4110   0.075281
+4071 4114   0.102497
+4071 4118   0.022222
+4071 4120  -1.000000
+4071 4134   1.000000
+4072 4   0.200000
+4072 4137   0.075281
+4072 4141   0.102497
+4072 4145   0.022222
+4072 4147  -1.000000
+4072 4161   1.000000
+4073 4   0.200000
+4073 4138   0.075281
+4073 4142   0.102497
+4073 4146   0.022222
+4073 4148  -1.000000
+4073 4162   1.000000
+4074 4   0.200000
+4074 4151   0.075281
+4074 4155   0.102497
+4074 4159   0.022222
+4074 4161  -1.000000
+4074 4175   1.000000
+4075 4   0.200000
+4075 4152   0.075281
+4075 4156   0.102497
+4075 4160   0.022222
+4075 4162  -1.000000
+4075 4176   1.000000
+4076 4   0.200000
+4076 4165   0.075281
+4076 4169   0.102497
+4076 4173   0.022222
+4076 4175  -1.000000
+4076 4189   1.000000
+4077 4   0.200000
+4077 4166   0.075281
+4077 4170   0.102497
+4077 4174   0.022222
+4077 4176  -1.000000
+4077 4190   1.000000
+4078 4   0.200000
+4078 4179   0.075281
+4078 4183   0.102497
+4078 4187   0.022222
+4078 4189  -1.000000
+4078 4203   1.000000
+4079 4   0.200000
+4079 4180   0.075281
+4079 4184   0.102497
+4079 4188   0.022222
+4079 4190  -1.000000
+4079 4204   1.000000
+4080 4   0.200000
+4080 4207   0.075281
+4080 4211   0.102497
+4080 4215   0.022222
+4080 4217  -1.000000
+4080 4231   1.000000
+4081 4   0.200000
+4081 4208   0.075281
+4081 4212   0.102497
+4081 4216   0.022222
+4081 4218  -1.000000
+4081 4232   1.000000
+4082 4   0.200000
+4082 4221   0.075281
+4082 4225   0.102497
+4082 4229   0.022222
+4082 4231  -1.000000
+4082 4245   1.000000
+4083 4   0.200000
+4083 4222   0.075281
+4083 4226   0.102497
+4083 4230   0.022222
+4083 4232  -1.000000
+4083 4246   1.000000
+4084 4   0.200000
+4084 4235   0.075281
+4084 4239   0.102497
+4084 4243   0.022222
+4084 4245  -1.000000
+4084 4259   1.000000
+4085 4   0.200000
+4085 4236   0.075281
+4085 4240   0.102497
+4085 4244   0.022222
+4085 4246  -1.000000
+4085 4260   1.000000
+4086 4   0.200000
+4086 4249   0.075281
+4086 4253   0.102497
+4086 4257   0.022222
+4086 4259  -1.000000
+4086 4273   1.000000
+4087 4   0.200000
+4087 4250   0.075281
+4087 4254   0.102497
+4087 4258   0.022222
+4087 4260  -1.000000
+4087 4274   1.000000
+4088 4   0.200000
+4088 4277   0.075281
+4088 4281   0.102497
+4088 4285   0.022222
+4088 4287  -1.000000
+4088 4301   1.000000
+4089 4   0.200000
+4089 4278   0.075281
+4089 4282   0.102497
+4089 4286   0.022222
+4089 4288  -1.000000
+4089 4302   1.000000
+4090 4   0.200000
+4090 4291   0.075281
+4090 4295   0.102497
+4090 4299   0.022222
+4090 4301  -1.000000
+4090 4315   1.000000
+4091 4   0.200000
+4091 4292   0.075281
+4091 4296   0.102497
+4091 4300   0.022222
+4091 4302  -1.000000
+4091 4316   1.000000
+4092 4   0.200000
+4092 4305   0.075281
+4092 4309   0.102497
+4092 4313   0.022222
+4092 4315  -1.000000
+4092 4329   1.000000
+4093 4   0.200000
+4093 4306   0.075281
+4093 4310   0.102497
+4093 4314   0.022222
+4093 4316  -1.000000
+4093 4330   1.000000
+4094 4   0.200000
+4094 4319   0.075281
+4094 4323   0.102497
+4094 4327   0.022222
+4094 4329  -1.000000
+4094 4343   1.000000
+4095 4   0.200000
+4095 4320   0.075281
+4095 4324   0.102497
+4095 4328   0.022222
+4095 4330  -1.000000
+4095 4344   1.000000
+4096 4   0.200000
+4096 4347   0.075281
+4096 4351   0.102497
+4096 4355   0.022222
+4096 4357  -1.000000
+4096 4371   1.000000
+4097 4   0.200000
+4097 4348   0.075281
+4097 4352   0.102497
+4097 4356   0.022222
+4097 4358  -1.000000
+4097 4372   1.000000
+4098 4   0.200000
+4098 4361   0.075281
+4098 4365   0.102497
+4098 4369   0.022222
+4098 4371  -1.000000
+4098 4385   1.000000
+4099 4   0.200000
+4099 4362   0.075281
+4099 4366   0.102497
+4099 4370   0.022222
+4099 4372  -1.000000
+4099 4386   1.000000
+4100 4   0.200000
+4100 4375   0.075281
+4100 4379   0.102497
+4100 4383   0.022222
+4100 4385  -1.000000
+4100 4399   1.000000
+4101 4   0.200000
+4101 4376   0.075281
+4101 4380   0.102497
+4101 4384   0.022222
+4101 4386  -1.000000
+4101 4400   1.000000
+4102 4   0.200000
+4102 4389   0.075281
+4102 4393   0.102497
+4102 4397   0.022222
+4102 4399  -1.000000
+4102 4413   1.000000
+4103 4   0.200000
+4103 4390   0.075281
+4103 4394   0.102497
+4103 4398   0.022222
+4103 4400  -1.000000
+4103 4414   1.000000
+4104 4   0.200000
+4104 4417   0.075281
+4104 4421   0.102497
+4104 4425   0.022222
+4104 4427  -1.000000
+4104 4441   1.000000
+4105 4   0.200000
+4105 4418   0.075281
+4105 4422   0.102497
+4105 4426   0.022222
+4105 4428  -1.000000
+4105 4442   1.000000
+4106 4   0.200000
+4106 4431   0.075281
+4106 4435   0.102497
+4106 4439   0.022222
+4106 4441  -1.000000
+4106 4455   1.000000
+4107 4   0.200000
+4107 4432   0.075281
+4107 4436   0.102497
+4107 4440   0.022222
+4107 4442  -1.000000
+4107 4456   1.000000
+4108 4   0.200000
+4108 4445   0.075281
+4108 4449   0.102497
+4108 4453   0.022222
+4108 4455  -1.000000
+4108 4469   1.000000
+4109 4   0.200000
+4109 4446   0.075281
+4109 4450   0.102497
+4109 4454   0.022222
+4109 4456  -1.000000
+4109 4470   1.000000
+4110 4   0.200000
+4110 4459   0.075281
+4110 4463   0.102497
+4110 4467   0.022222
+4110 4469  -1.000000
+4110 4483   1.000000
+4111 4   0.200000
+4111 4460   0.075281
+4111 4464   0.102497
+4111 4468   0.022222
+4111 4470  -1.000000
+4111 4484   1.000000
+4112 4   0.200000
+4112 4487   0.075281
+4112 4491   0.102497
+4112 4495   0.022222
+4112 4497  -1.000000
+4112 4511   1.000000
+4113 4   0.200000
+4113 4488   0.075281
+4113 4492   0.102497
+4113 4496   0.022222
+4113 4498  -1.000000
+4113 4512   1.000000
+4114 4   0.200000
+4114 4501   0.075281
+4114 4505   0.102497
+4114 4509   0.022222
+4114 4511  -1.000000
+4114 4525   1.000000
+4115 4   0.200000
+4115 4502   0.075281
+4115 4506   0.102497
+4115 4510   0.022222
+4115 4512  -1.000000
+4115 4526   1.000000
+4116 4   0.200000
+4116 4515   0.075281
+4116 4519   0.102497
+4116 4523   0.022222
+4116 4525  -1.000000
+4116 4539   1.000000
+4117 4   0.200000
+4117 4516   0.075281
+4117 4520   0.102497
+4117 4524   0.022222
+4117 4526  -1.000000
+4117 4540   1.000000
+4118 4   0.200000
+4118 4529   0.075281
+4118 4533   0.102497
+4118 4537   0.022222
+4118 4539  -1.000000
+4118 4553   1.000000
+4119 4   0.200000
+4119 4530   0.075281
+4119 4534   0.102497
+4119 4538   0.022222
+4119 4540  -1.000000
+4119 4554   1.000000
+4120 4   0.200000
+4120 4557   0.075281
+4120 4561   0.102497
+4120 4565   0.022222
+4120 4567  -1.000000
+4120 4581   1.000000
+4121 4   0.200000
+4121 4558   0.075281
+4121 4562   0.102497
+4121 4566   0.022222
+4121 4568  -1.000000
+4121 4582   1.000000
+4122 4   0.200000
+4122 4571   0.075281
+4122 4575   0.102497
+4122 4579   0.022222
+4122 4581  -1.000000
+4122 4595   1.000000
+4123 4   0.200000
+4123 4572   0.075281
+4123 4576   0.102497
+4123 4580   0.022222
+4123 4582  -1.000000
+4123 4596   1.000000
+4124 4   0.200000
+4124 4585   0.075281
+4124 4589   0.102497
+4124 4593   0.022222
+4124 4595  -1.000000
+4124 4609   1.000000
+4125 4   0.200000
+4125 4586   0.075281
+4125 4590   0.102497
+4125 4594   0.022222
+4125 4596  -1.000000
+4125 4610   1.000000
+4126 4   0.200000
+4126 4599   0.075281
+4126 4603   0.102497
+4126 4607   0.022222
+4126 4609  -1.000000
+4126 4623   1.000000
+4127 4   0.200000
+4127 4600   0.075281
+4127 4604   0.102497
+4127 4608   0.022222
+4127 4610  -1.000000
+4127 4624   1.000000
+4128 4   0.200000
+4128 4627   0.075281
+4128 4631   0.102497
+4128 4635   0.022222
+4128 4637  -1.000000
+4128 4651   1.000000
+4129 4   0.200000
+4129 4628   0.075281
+4129 4632   0.102497
+4129 4636   0.022222
+4129 4638  -1.000000
+4129 4652   1.000000
+4130 4   0.200000
+4130 4641   0.075281
+4130 4645   0.102497
+4130 4649   0.022222
+4130 4651  -1.000000
+4130 4665   1.000000
+4131 4   0.200000
+4131 4642   0.075281
+4131 4646   0.102497
+4131 4650   0.022222
+4131 4652  -1.000000
+4131 4666   1.000000
+4132 4   0.200000
+4132 4655   0.075281
+4132 4659   0.102497
+4132 4663   0.022222
+4132 4665  -1.000000
+4132 4679   1.000000
+4133 4   0.200000
+4133 4656   0.075281
+4133 4660   0.102497
+4133 4664   0.022222
+4133 4666  -1.000000
+4133 4680   1.000000
+4134 4   0.200000
+4134 4669   0.075281
+4134 4673   0.102497
+4134 4677   0.022222
+4134 4679  -1.000000
+4134 4693   1.000000
+4135 4   0.200000
+4135 4670   0.075281
+4135 4674   0.102497
+4135 4678   0.022222
+4135 4680  -1.000000
+4135 4694   1.000000
+4136 4   0.200000
+4136 4697   0.075281
+4136 4701   0.102497
+4136 4705   0.022222
+4136 4707  -1.000000
+4136 4721   1.000000
+4137 4   0.200000
+4137 4698   0.075281
+4137 4702   0.102497
+4137 4706   0.022222
+4137 4708  -1.000000
+4137 4722   1.000000
+4138 4   0.200000
+4138 4711   0.075281
+4138 4715   0.102497
+4138 4719   0.022222
+4138 4721  -1.000000
+4138 4735   1.000000
+4139 4   0.200000
+4139 4712   0.075281
+4139 4716   0.102497
+4139 4720   0.022222
+4139 4722  -1.000000
+4139 4736   1.000000
+4140 4   0.200000
+4140 4725   0.075281
+4140 4729   0.102497
+4140 4733   0.022222
+4140 4735  -1.000000
+4140 4749   1.000000
+4141 4   0.200000
+4141 4726   0.075281
+4141 4730   0.102497
+4141 4734   0.022222
+4141 4736  -1.000000
+4141 4750   1.000000
+4142 4   0.200000
+4142 4739   0.075281
+4142 4743   0.102497
+4142 4747   0.022222
+4142 4749  -1.000000
+4142 4763   1.000000
+4143 4   0.200000
+4143 4740   0.075281
+4143 4744   0.102497
+4143 4748   0.022222
+4143 4750  -1.000000
+4143 4764   1.000000
+4144 4   0.200000
+4144 4767   0.075281
+4144 4771   0.102497
+4144 4775   0.022222
+4144 4777  -1.000000
+4144 4791   1.000000
+4145 4   0.200000
+4145 4768   0.075281
+4145 4772   0.102497
+4145 4776   0.022222
+4145 4778  -1.000000
+4145 4792   1.000000
+4146 4   0.200000
+4146 4781   0.075281
+4146 4785   0.102497
+4146 4789   0.022222
+4146 4791  -1.000000
+4146 4805   1.000000
+4147 4   0.200000
+4147 4782   0.075281
+4147 4786   0.102497
+4147 4790   0.022222
+4147 4792  -1.000000
+4147 4806   1.000000
+4148 4   0.200000
+4148 4795   0.075281
+4148 4799   0.102497
+4148 4803   0.022222
+4148 4805  -1.000000
+4148 4819   1.000000
+4149 4   0.200000
+4149 4796   0.075281
+4149 4800   0.102497
+4149 4804   0.022222
+4149 4806  -1.000000
+4149 4820   1.000000
+4150 4   0.200000
+4150 4809   0.075281
+4150 4813   0.102497
+4150 4817   0.022222
+4150 4819  -1.000000
+4150 4833   1.000000
+4151 4   0.200000
+4151 4810   0.075281
+4151 4814   0.102497
+4151 4818   0.022222
+4151 4820  -1.000000
+4151 4834   1.000000
+4152 4   0.200000
+4152 4837   0.075281
+4152 4841   0.102497
+4152 4845   0.022222
+4152 4847  -1.000000
+4152 4861   1.000000
+4153 4   0.200000
+4153 4838   0.075281
+4153 4842   0.102497
+4153 4846   0.022222
+4153 4848  -1.000000
+4153 4862   1.000000
+4154 4   0.200000
+4154 4851   0.075281
+4154 4855   0.102497
+4154 4859   0.022222
+4154 4861  -1.000000
+4154 4875   1.000000
+4155 4   0.200000
+4155 4852   0.075281
+4155 4856   0.102497
+4155 4860   0.022222
+4155 4862  -1.000000
+4155 4876   1.000000
+4156 4   0.200000
+4156 4865   0.075281
+4156 4869   0.102497
+4156 4873   0.022222
+4156 4875  -1.000000
+4156 4889   1.000000
+4157 4   0.200000
+4157 4866   0.075281
+4157 4870   0.102497
+4157 4874   0.022222
+4157 4876  -1.000000
+4157 4890   1.000000
+4158 4   0.200000
+4158 4879   0.075281
+4158 4883   0.102497
+4158 4887   0.022222
+4158 4889  -1.000000
+4158 4903   1.000000
+4159 4   0.200000
+4159 4880   0.075281
+4159 4884   0.102497
+4159 4888   0.022222
+4159 4890  -1.000000
+4159 4904   1.000000
+4160 4   0.200000
+4160 4907   0.075281
+4160 4911   0.102497
+4160 4915   0.022222
+4160 4917  -1.000000
+4160 4931   1.000000
+4161 4   0.200000
+4161 4908   0.075281
+4161 4912   0.102497
+4161 4916   0.022222
+4161 4918  -1.000000
+4161 4932   1.000000
+4162 4   0.200000
+4162 4921   0.075281
+4162 4925   0.102497
+4162 4929   0.022222
+4162 4931  -1.000000
+4162 4945   1.000000
+4163 4   0.200000
+4163 4922   0.075281
+4163 4926   0.102497
+4163 4930   0.022222
+4163 4932  -1.000000
+4163 4946   1.000000
+4164 4   0.200000
+4164 4935   0.075281
+4164 4939   0.102497
+4164 4943   0.022222
+4164 4945  -1.000000
+4164 4959   1.000000
+4165 4   0.200000
+4165 4936   0.075281
+4165 4940   0.102497
+4165 4944   0.022222
+4165 4946  -1.000000
+4165 4960   1.000000
+4166 4   0.200000
+4166 4949   0.075281
+4166 4953   0.102497
+4166 4957   0.022222
+4166 4959  -1.000000
+4166 4973   1.000000
+4167 4   0.200000
+4167 4950   0.075281
+4167 4954   0.102497
+4167 4958   0.022222
+4167 4960  -1.000000
+4167 4974   1.000000
+4168 4   0.200000
+4168 4977   0.075281
+4168 4981   0.102497
+4168 4985   0.022222
+4168 4987  -1.000000
+4168 5001   1.000000
+4169 4   0.200000
+4169 4978   0.075281
+4169 4982   0.102497
+4169 4986   0.022222
+4169 4988  -1.000000
+4169 5002   1.000000
+4170 4   0.200000
+4170 4991   0.075281
+4170 4995   0.102497
+4170 4999   0.022222
+4170 5001  -1.000000
+4170 5015   1.000000
+4171 4   0.200000
+4171 4992   0.075281
+4171 4996   0.102497
+4171 5000   0.022222
+4171 5002  -1.000000
+4171 5016   1.000000
+4172 4   0.200000
+4172 5005   0.075281
+4172 5009   0.102497
+4172 5013   0.022222
+4172 5015  -1.000000
+4172 5029   1.000000
+4173 4   0.200000
+4173 5006   0.075281
+4173 5010   0.102497
+4173 5014   0.022222
+4173 5016  -1.000000
+4173 5030   1.000000
+4174 4   0.200000
+4174 5019   0.075281
+4174 5023   0.102497
+4174 5027   0.022222
+4174 5029  -1.000000
+4174 5043   1.000000
+4175 4   0.200000
+4175 5020   0.075281
+4175 5024   0.102497
+4175 5028   0.022222
+4175 5030  -1.000000
+4175 5044   1.000000
+4176 4   0.200000
+4176 5047   0.075281
+4176 5051   0.102497
+4176 5055   0.022222
+4176 5057  -1.000000
+4176 5071   1.000000
+4177 4   0.200000
+4177 5048   0.075281
+4177 5052   0.102497
+4177 5056   0.022222
+4177 5058  -1.000000
+4177 5072   1.000000
+4178 4   0.200000
+4178 5061   0.075281
+4178 5065   0.102497
+4178 5069   0.022222
+4178 5071  -1.000000
+4178 5085   1.000000
+4179 4   0.200000
+4179 5062   0.075281
+4179 5066   0.102497
+4179 5070   0.022222
+4179 5072  -1.000000
+4179 5086   1.000000
+4180 4   0.200000
+4180 5075   0.075281
+4180 5079   0.102497
+4180 5083   0.022222
+4180 5085  -1.000000
+4180 5099   1.000000
+4181 4   0.200000
+4181 5076   0.075281
+4181 5080   0.102497
+4181 5084   0.022222
+4181 5086  -1.000000
+4181 5100   1.000000
+4182 4   0.200000
+4182 5089   0.075281
+4182 5093   0.102497
+4182 5097   0.022222
+4182 5099  -1.000000
+4182 5113   1.000000
+4183 4   0.200000
+4183 5090   0.075281
+4183 5094   0.102497
+4183 5098   0.022222
+4183 5100  -1.000000
+4183 5114   1.000000
+4184 4   0.200000
+4184 5117   0.075281
+4184 5121   0.102497
+4184 5125   0.022222
+4184 5127  -1.000000
+4184 5141   1.000000
+4185 4   0.200000
+4185 5118   0.075281
+4185 5122   0.102497
+4185 5126   0.022222
+4185 5128  -1.000000
+4185 5142   1.000000
+4186 4   0.200000
+4186 5131   0.075281
+4186 5135   0.102497
+4186 5139   0.022222
+4186 5141  -1.000000
+4186 5155   1.000000
+4187 4   0.200000
+4187 5132   0.075281
+4187 5136   0.102497
+4187 5140   0.022222
+4187 5142  -1.000000
+4187 5156   1.000000
+4188 4   0.200000
+4188 5145   0.075281
+4188 5149   0.102497
+4188 5153   0.022222
+4188 5155  -1.000000
+4188 5169   1.000000
+4189 4   0.200000
+4189 5146   0.075281
+4189 5150   0.102497
+4189 5154   0.022222
+4189 5156  -1.000000
+4189 5170   1.000000
+4190 4   0.200000
+4190 5159   0.075281
+4190 5163   0.102497
+4190 5167   0.022222
+4190 5169  -1.000000
+4190 5183   1.000000
+4191 4   0.200000
+4191 5160   0.075281
+4191 5164   0.102497
+4191 5168   0.022222
+4191 5170  -1.000000
+4191 5184   1.000000
+4192 4   0.200000
+4192 5187   0.075281
+4192 5191   0.102497
+4192 5195   0.022222
+4192 5197  -1.000000
+4192 5211   1.000000
+4193 4   0.200000
+4193 5188   0.075281
+4193 5192   0.102497
+4193 5196   0.022222
+4193 5198  -1.000000
+4193 5212   1.000000
+4194 4   0.200000
+4194 5201   0.075281
+4194 5205   0.102497
+4194 5209   0.022222
+4194 5211  -1.000000
+4194 5225   1.000000
+4195 4   0.200000
+4195 5202   0.075281
+4195 5206   0.102497
+4195 5210   0.022222
+4195 5212  -1.000000
+4195 5226   1.000000
+4196 4   0.200000
+4196 5215   0.075281
+4196 5219   0.102497
+4196 5223   0.022222
+4196 5225  -1.000000
+4196 5239   1.000000
+4197 4   0.200000
+4197 5216   0.075281
+4197 5220   0.102497
+4197 5224   0.022222
+4197 5226  -1.000000
+4197 5240   1.000000
+4198 4   0.200000
+4198 5229   0.075281
+4198 5233   0.102497
+4198 5237   0.022222
+4198 5239  -1.000000
+4198 5253   1.000000
+4199 4   0.200000
+4199 5230   0.075281
+4199 5234   0.102497
+4199 5238   0.022222
+4199 5240  -1.000000
+4199 5254   1.000000
+4200 4   0.200000
+4200 5257   0.075281
+4200 5261   0.102497
+4200 5265   0.022222
+4200 5267  -1.000000
+4200 5281   1.000000
+4201 4   0.200000
+4201 5258   0.075281
+4201 5262   0.102497
+4201 5266   0.022222
+4201 5268  -1.000000
+4201 5282   1.000000
+4202 4   0.200000
+4202 5271   0.075281
+4202 5275   0.102497
+4202 5279   0.022222
+4202 5281  -1.000000
+4202 5295   1.000000
+4203 4   0.200000
+4203 5272   0.075281
+4203 5276   0.102497
+4203 5280   0.022222
+4203 5282  -1.000000
+4203 5296   1.000000
+4204 4   0.200000
+4204 5285   0.075281
+4204 5289   0.102497
+4204 5293   0.022222
+4204 5295  -1.000000
+4204 5309   1.000000
+4205 4   0.200000
+4205 5286   0.075281
+4205 5290   0.102497
+4205 5294   0.022222
+4205 5296  -1.000000
+4205 5310   1.000000
+4206 4   0.200000
+4206 5299   0.075281
+4206 5303   0.102497
+4206 5307   0.022222
+4206 5309  -1.000000
+4206 5323   1.000000
+4207 4   0.200000
+4207 5300   0.075281
+4207 5304   0.102497
+4207 5308   0.022222
+4207 5310  -1.000000
+4207 5324   1.000000
+4208 4   0.200000
+4208 5327   0.075281
+4208 5331   0.102497
+4208 5335   0.022222
+4208 5337  -1.000000
+4208 5351   1.000000
+4209 4   0.200000
+4209 5328   0.075281
+4209 5332   0.102497
+4209 5336   0.022222
+4209 5338  -1.000000
+4209 5352   1.000000
+4210 4   0.200000
+4210 5341   0.075281
+4210 5345   0.102497
+4210 5349   0.022222
+4210 5351  -1.000000
+4210 5365   1.000000
+4211 4   0.200000
+4211 5342   0.075281
+4211 5346   0.102497
+4211 5350   0.022222
+4211 5352  -1.000000
+4211 5366   1.000000
+4212 4   0.200000
+4212 5355   0.075281
+4212 5359   0.102497
+4212 5363   0.022222
+4212 5365  -1.000000
+4212 5379   1.000000
+4213 4   0.200000
+4213 5356   0.075281
+4213 5360   0.102497
+4213 5364   0.022222
+4213 5366  -1.000000
+4213 5380   1.000000
+4214 4   0.200000
+4214 5369   0.075281
+4214 5373   0.102497
+4214 5377   0.022222
+4214 5379  -1.000000
+4214 5393   1.000000
+4215 4   0.200000
+4215 5370   0.075281
+4215 5374   0.102497
+4215 5378   0.022222
+4215 5380  -1.000000
+4215 5394   1.000000
+4216 4   0.200000
+4216 5397   0.075281
+4216 5401   0.102497
+4216 5405   0.022222
+4216 5407  -1.000000
+4216 5421   1.000000
+4217 4   0.200000
+4217 5398   0.075281
+4217 5402   0.102497
+4217 5406   0.022222
+4217 5408  -1.000000
+4217 5422   1.000000
+4218 4   0.200000
+4218 5411   0.075281
+4218 5415   0.102497
+4218 5419   0.022222
+4218 5421  -1.000000
+4218 5435   1.000000
+4219 4   0.200000
+4219 5412   0.075281
+4219 5416   0.102497
+4219 5420   0.022222
+4219 5422  -1.000000
+4219 5436   1.000000
+4220 4   0.200000
+4220 5425   0.075281
+4220 5429   0.102497
+4220 5433   0.022222
+4220 5435  -1.000000
+4220 5449   1.000000
+4221 4   0.200000
+4221 5426   0.075281
+4221 5430   0.102497
+4221 5434   0.022222
+4221 5436  -1.000000
+4221 5450   1.000000
+4222 4   0.200000
+4222 5439   0.075281
+4222 5443   0.102497
+4222 5447   0.022222
+4222 5449  -1.000000
+4222 5463   1.000000
+4223 4   0.200000
+4223 5440   0.075281
+4223 5444   0.102497
+4223 5448   0.022222
+4223 5450  -1.000000
+4223 5464   1.000000
+4224 4   0.200000
+4224 5467   0.075281
+4224 5471   0.102497
+4224 5475   0.022222
+4224 5477  -1.000000
+4224 5491   1.000000
+4225 4   0.200000
+4225 5468   0.075281
+4225 5472   0.102497
+4225 5476   0.022222
+4225 5478  -1.000000
+4225 5492   1.000000
+4226 4   0.200000
+4226 5481   0.075281
+4226 5485   0.102497
+4226 5489   0.022222
+4226 5491  -1.000000
+4226 5505   1.000000
+4227 4   0.200000
+4227 5482   0.075281
+4227 5486   0.102497
+4227 5490   0.022222
+4227 5492  -1.000000
+4227 5506   1.000000
+4228 4   0.200000
+4228 5495   0.075281
+4228 5499   0.102497
+4228 5503   0.022222
+4228 5505  -1.000000
+4228 5519   1.000000
+4229 4   0.200000
+4229 5496   0.075281
+4229 5500   0.102497
+4229 5504   0.022222
+4229 5506  -1.000000
+4229 5520   1.000000
+4230 4   0.200000
+4230 5509   0.075281
+4230 5513   0.102497
+4230 5517   0.022222
+4230 5519  -1.000000
+4230 5533   1.000000
+4231 4   0.200000
+4231 5510   0.075281
+4231 5514   0.102497
+4231 5518   0.022222
+4231 5520  -1.000000
+4231 5534   1.000000
+4232 4   0.200000
+4232 5537   0.075281
+4232 5541   0.102497
+4232 5545   0.022222
+4232 5547  -1.000000
+4232 5561   1.000000
+4233 4   0.200000
+4233 5538   0.075281
+4233 5542   0.102497
+4233 5546   0.022222
+4233 5548  -1.000000
+4233 5562   1.000000
+4234 4   0.200000
+4234 5551   0.075281
+4234 5555   0.102497
+4234 5559   0.022222
+4234 5561  -1.000000
+4234 5575   1.000000
+4235 4   0.200000
+4235 5552   0.075281
+4235 5556   0.102497
+4235 5560   0.022222
+4235 5562  -1.000000
+4235 5576   1.000000
+4236 4   0.200000
+4236 5565   0.075281
+4236 5569   0.102497
+4236 5573   0.022222
+4236 5575  -1.000000
+4236 5589   1.000000
+4237 4   0.200000
+4237 5566   0.075281
+4237 5570   0.102497
+4237 5574   0.022222
+4237 5576  -1.000000
+4237 5590   1.000000
+4238 4   0.200000
+4238 5579   0.075281
+4238 5583   0.102497
+4238 5587   0.022222
+4238 5589  -1.000000
+4238 5603   1.000000
+4239 4   0.200000
+4239 5580   0.075281
+4239 5584   0.102497
+4239 5588   0.022222
+4239 5590  -1.000000
+4239 5604   1.000000
+4240 4   0.200000
+4240 5607   0.075281
+4240 5611   0.102497
+4240 5615   0.022222
+4240 5617  -1.000000
+4240 5631   1.000000
+4241 4   0.200000
+4241 5608   0.075281
+4241 5612   0.102497
+4241 5616   0.022222
+4241 5618  -1.000000
+4241 5632   1.000000
+4242 4   0.200000
+4242 5621   0.075281
+4242 5625   0.102497
+4242 5629   0.022222
+4242 5631  -1.000000
+4242 5645   1.000000
+4243 4   0.200000
+4243 5622   0.075281
+4243 5626   0.102497
+4243 5630   0.022222
+4243 5632  -1.000000
+4243 5646   1.000000
+4244 4   0.200000
+4244 5635   0.075281
+4244 5639   0.102497
+4244 5643   0.022222
+4244 5645  -1.000000
+4244 5659   1.000000
+4245 4   0.200000
+4245 5636   0.075281
+4245 5640   0.102497
+4245 5644   0.022222
+4245 5646  -1.000000
+4245 5660   1.000000
+4246 4   0.200000
+4246 5649   0.075281
+4246 5653   0.102497
+4246 5657   0.022222
+4246 5659  -1.000000
+4246 5673   1.000000
+4247 4   0.200000
+4247 5650   0.075281
+4247 5654   0.102497
+4247 5658   0.022222
+4247 5660  -1.000000
+4247 5674   1.000000
+4248 4   0.200000
+4248 5677   0.075281
+4248 5681   0.102497
+4248 5685   0.022222
+4248 5687  -1.000000
+4248 5701   1.000000
+4249 4   0.200000
+4249 5678   0.075281
+4249 5682   0.102497
+4249 5686   0.022222
+4249 5688  -1.000000
+4249 5702   1.000000
+4250 4   0.200000
+4250 5691   0.075281
+4250 5695   0.102497
+4250 5699   0.022222
+4250 5701  -1.000000
+4250 5715   1.000000
+4251 4   0.200000
+4251 5692   0.075281
+4251 5696   0.102497
+4251 5700   0.022222
+4251 5702  -1.000000
+4251 5716   1.000000
+4252 4   0.200000
+4252 5705   0.075281
+4252 5709   0.102497
+4252 5713   0.022222
+4252 5715  -1.000000
+4252 5729   1.000000
+4253 4   0.200000
+4253 5706   0.075281
+4253 5710   0.102497
+4253 5714   0.022222
+4253 5716  -1.000000
+4253 5730   1.000000
+4254 4   0.200000
+4254 5719   0.075281
+4254 5723   0.102497
+4254 5727   0.022222
+4254 5729  -1.000000
+4254 5743   1.000000
+4255 4   0.200000
+4255 5720   0.075281
+4255 5724   0.102497
+4255 5728   0.022222
+4255 5730  -1.000000
+4255 5744   1.000000
+4256 4   0.200000
+4256 5747   0.075281
+4256 5751   0.102497
+4256 5755   0.022222
+4256 5757  -1.000000
+4256 5771   1.000000
+4257 4   0.200000
+4257 5748   0.075281
+4257 5752   0.102497
+4257 5756   0.022222
+4257 5758  -1.000000
+4257 5772   1.000000
+4258 4   0.200000
+4258 5761   0.075281
+4258 5765   0.102497
+4258 5769   0.022222
+4258 5771  -1.000000
+4258 5785   1.000000
+4259 4   0.200000
+4259 5762   0.075281
+4259 5766   0.102497
+4259 5770   0.022222
+4259 5772  -1.000000
+4259 5786   1.000000
+4260 4   0.200000
+4260 5775   0.075281
+4260 5779   0.102497
+4260 5783   0.022222
+4260 5785  -1.000000
+4260 5799   1.000000
+4261 4   0.200000
+4261 5776   0.075281
+4261 5780   0.102497
+4261 5784   0.022222
+4261 5786  -1.000000
+4261 5800   1.000000
+4262 4   0.200000
+4262 5789   0.075281
+4262 5793   0.102497
+4262 5797   0.022222
+4262 5799  -1.000000
+4262 5813   1.000000
+4263 4   0.200000
+4263 5790   0.075281
+4263 5794   0.102497
+4263 5798   0.022222
+4263 5800  -1.000000
+4263 5814   1.000000
+4264 4   0.200000
+4264 5817   0.075281
+4264 5821   0.102497
+4264 5825   0.022222
+4264 5827  -1.000000
+4264 5841   1.000000
+4265 4   0.200000
+4265 5818   0.075281
+4265 5822   0.102497
+4265 5826   0.022222
+4265 5828  -1.000000
+4265 5842   1.000000
+4266 4   0.200000
+4266 5831   0.075281
+4266 5835   0.102497
+4266 5839   0.022222
+4266 5841  -1.000000
+4266 5855   1.000000
+4267 4   0.200000
+4267 5832   0.075281
+4267 5836   0.102497
+4267 5840   0.022222
+4267 5842  -1.000000
+4267 5856   1.000000
+4268 4   0.200000
+4268 5845   0.075281
+4268 5849   0.102497
+4268 5853   0.022222
+4268 5855  -1.000000
+4268 5869   1.000000
+4269 4   0.200000
+4269 5846   0.075281
+4269 5850   0.102497
+4269 5854   0.022222
+4269 5856  -1.000000
+4269 5870   1.000000
+4270 4   0.200000
+4270 5859   0.075281
+4270 5863   0.102497
+4270 5867   0.022222
+4270 5869  -1.000000
+4270 5883   1.000000
+4271 4   0.200000
+4271 5860   0.075281
+4271 5864   0.102497
+4271 5868   0.022222
+4271 5870  -1.000000
+4271 5884   1.000000
+4272 4   0.200000
+4272 5887   0.075281
+4272 5891   0.102497
+4272 5895   0.022222
+4272 5897  -1.000000
+4272 5911   1.000000
+4273 4   0.200000
+4273 5888   0.075281
+4273 5892   0.102497
+4273 5896   0.022222
+4273 5898  -1.000000
+4273 5912   1.000000
+4274 4   0.200000
+4274 5901   0.075281
+4274 5905   0.102497
+4274 5909   0.022222
+4274 5911  -1.000000
+4274 5925   1.000000
+4275 4   0.200000
+4275 5902   0.075281
+4275 5906   0.102497
+4275 5910   0.022222
+4275 5912  -1.000000
+4275 5926   1.000000
+4276 4   0.200000
+4276 5915   0.075281
+4276 5919   0.102497
+4276 5923   0.022222
+4276 5925  -1.000000
+4276 5939   1.000000
+4277 4   0.200000
+4277 5916   0.075281
+4277 5920   0.102497
+4277 5924   0.022222
+4277 5926  -1.000000
+4277 5940   1.000000
+4278 4   0.200000
+4278 5929   0.075281
+4278 5933   0.102497
+4278 5937   0.022222
+4278 5939  -1.000000
+4278 5953   1.000000
+4279 4   0.200000
+4279 5930   0.075281
+4279 5934   0.102497
+4279 5938   0.022222
+4279 5940  -1.000000
+4279 5954   1.000000
+4280 4   0.200000
+4280 5957   0.075281
+4280 5961   0.102497
+4280 5965   0.022222
+4280 5967  -1.000000
+4280 5981   1.000000
+4281 4   0.200000
+4281 5958   0.075281
+4281 5962   0.102497
+4281 5966   0.022222
+4281 5968  -1.000000
+4281 5982   1.000000
+4282 4   0.200000
+4282 5971   0.075281
+4282 5975   0.102497
+4282 5979   0.022222
+4282 5981  -1.000000
+4282 5995   1.000000
+4283 4   0.200000
+4283 5972   0.075281
+4283 5976   0.102497
+4283 5980   0.022222
+4283 5982  -1.000000
+4283 5996   1.000000
+4284 4   0.200000
+4284 5985   0.075281
+4284 5989   0.102497
+4284 5993   0.022222
+4284 5995  -1.000000
+4284 6009   1.000000
+4285 4   0.200000
+4285 5986   0.075281
+4285 5990   0.102497
+4285 5994   0.022222
+4285 5996  -1.000000
+4285 6010   1.000000
+4286 4   0.200000
+4286 5999   0.075281
+4286 6003   0.102497
+4286 6007   0.022222
+4286 6009  -1.000000
+4286 6023   1.000000
+4287 4   0.200000
+4287 6000   0.075281
+4287 6004   0.102497
+4287 6008   0.022222
+4287 6010  -1.000000
+4287 6024   1.000000
+4288 4   0.200000
+4288 6027   0.075281
+4288 6031   0.102497
+4288 6035   0.022222
+4288 6037  -1.000000
+4288 6051   1.000000
+4289 4   0.200000
+4289 6028   0.075281
+4289 6032   0.102497
+4289 6036   0.022222
+4289 6038  -1.000000
+4289 6052   1.000000
+4290 4   0.200000
+4290 6041   0.075281
+4290 6045   0.102497
+4290 6049   0.022222
+4290 6051  -1.000000
+4290 6065   1.000000
+4291 4   0.200000
+4291 6042   0.075281
+4291 6046   0.102497
+4291 6050   0.022222
+4291 6052  -1.000000
+4291 6066   1.000000
+4292 4   0.200000
+4292 6055   0.075281
+4292 6059   0.102497
+4292 6063   0.022222
+4292 6065  -1.000000
+4292 6079   1.000000
+4293 4   0.200000
+4293 6056   0.075281
+4293 6060   0.102497
+4293 6064   0.022222
+4293 6066  -1.000000
+4293 6080   1.000000
+4294 4   0.200000
+4294 6069   0.075281
+4294 6073   0.102497
+4294 6077   0.022222
+4294 6079  -1.000000
+4294 6093   1.000000
+4295 4   0.200000
+4295 6070   0.075281
+4295 6074   0.102497
+4295 6078   0.022222
+4295 6080  -1.000000
+4295 6094   1.000000
+4296 4   0.200000
+4296 6097   0.075281
+4296 6101   0.102497
+4296 6105   0.022222
+4296 6107  -1.000000
+4296 6121   1.000000
+4297 4   0.200000
+4297 6098   0.075281
+4297 6102   0.102497
+4297 6106   0.022222
+4297 6108  -1.000000
+4297 6122   1.000000
+4298 4   0.200000
+4298 6111   0.075281
+4298 6115   0.102497
+4298 6119   0.022222
+4298 6121  -1.000000
+4298 6135   1.000000
+4299 4   0.200000
+4299 6112   0.075281
+4299 6116   0.102497
+4299 6120   0.022222
+4299 6122  -1.000000
+4299 6136   1.000000
+4300 4   0.200000
+4300 6125   0.075281
+4300 6129   0.102497
+4300 6133   0.022222
+4300 6135  -1.000000
+4300 6149   1.000000
+4301 4   0.200000
+4301 6126   0.075281
+4301 6130   0.102497
+4301 6134   0.022222
+4301 6136  -1.000000
+4301 6150   1.000000
+4302 4   0.200000
+4302 6139   0.075281
+4302 6143   0.102497
+4302 6147   0.022222
+4302 6149  -1.000000
+4302 6163   1.000000
+4303 4   0.200000
+4303 6140   0.075281
+4303 6144   0.102497
+4303 6148   0.022222
+4303 6150  -1.000000
+4303 6164   1.000000
+4304 4   0.200000
+4304 6167   0.075281
+4304 6171   0.102497
+4304 6175   0.022222
+4304 6177  -1.000000
+4304 6191   1.000000
+4305 4   0.200000
+4305 6168   0.075281
+4305 6172   0.102497
+4305 6176   0.022222
+4305 6178  -1.000000
+4305 6192   1.000000
+4306 4   0.200000
+4306 6181   0.075281
+4306 6185   0.102497
+4306 6189   0.022222
+4306 6191  -1.000000
+4306 6205   1.000000
+4307 4   0.200000
+4307 6182   0.075281
+4307 6186   0.102497
+4307 6190   0.022222
+4307 6192  -1.000000
+4307 6206   1.000000
+4308 4   0.200000
+4308 6195   0.075281
+4308 6199   0.102497
+4308 6203   0.022222
+4308 6205  -1.000000
+4308 6219   1.000000
+4309 4   0.200000
+4309 6196   0.075281
+4309 6200   0.102497
+4309 6204   0.022222
+4309 6206  -1.000000
+4309 6220   1.000000
+4310 4   0.200000
+4310 6209   0.075281
+4310 6213   0.102497
+4310 6217   0.022222
+4310 6219  -1.000000
+4310 6233   1.000000
+4311 4   0.200000
+4311 6210   0.075281
+4311 6214   0.102497
+4311 6218   0.022222
+4311 6220  -1.000000
+4311 6234   1.000000
+4312 4   0.200000
+4312 6237   0.075281
+4312 6241   0.102497
+4312 6245   0.022222
+4312 6247  -1.000000
+4312 6261   1.000000
+4313 4   0.200000
+4313 6238   0.075281
+4313 6242   0.102497
+4313 6246   0.022222
+4313 6248  -1.000000
+4313 6262   1.000000
+4314 4   0.200000
+4314 6251   0.075281
+4314 6255   0.102497
+4314 6259   0.022222
+4314 6261  -1.000000
+4314 6275   1.000000
+4315 4   0.200000
+4315 6252   0.075281
+4315 6256   0.102497
+4315 6260   0.022222
+4315 6262  -1.000000
+4315 6276   1.000000
+4316 4   0.200000
+4316 6265   0.075281
+4316 6269   0.102497
+4316 6273   0.022222
+4316 6275  -1.000000
+4316 6289   1.000000
+4317 4   0.200000
+4317 6266   0.075281
+4317 6270   0.102497
+4317 6274   0.022222
+4317 6276  -1.000000
+4317 6290   1.000000
+4318 4   0.200000
+4318 6279   0.075281
+4318 6283   0.102497
+4318 6287   0.022222
+4318 6289  -1.000000
+4318 6303   1.000000
+4319 4   0.200000
+4319 6280   0.075281
+4319 6284   0.102497
+4319 6288   0.022222
+4319 6290  -1.000000
+4319 6304   1.000000
+4320 4   0.200000
+4320 6307   0.075281
+4320 6311   0.102497
+4320 6315   0.022222
+4320 6317  -1.000000
+4320 6331   1.000000
+4321 4   0.200000
+4321 6308   0.075281
+4321 6312   0.102497
+4321 6316   0.022222
+4321 6318  -1.000000
+4321 6332   1.000000
+4322 4   0.200000
+4322 6321   0.075281
+4322 6325   0.102497
+4322 6329   0.022222
+4322 6331  -1.000000
+4322 6345   1.000000
+4323 4   0.200000
+4323 6322   0.075281
+4323 6326   0.102497
+4323 6330   0.022222
+4323 6332  -1.000000
+4323 6346   1.000000
+4324 4   0.200000
+4324 6335   0.075281
+4324 6339   0.102497
+4324 6343   0.022222
+4324 6345  -1.000000
+4324 6359   1.000000
+4325 4   0.200000
+4325 6336   0.075281
+4325 6340   0.102497
+4325 6344   0.022222
+4325 6346  -1.000000
+4325 6360   1.000000
+4326 4   0.200000
+4326 6349   0.075281
+4326 6353   0.102497
+4326 6357   0.022222
+4326 6359  -1.000000
+4326 6373   1.000000
+4327 4   0.200000
+4327 6350   0.075281
+4327 6354   0.102497
+4327 6358   0.022222
+4327 6360  -1.000000
+4327 6374   1.000000
+4328 4   0.200000
+4328 6377   0.075281
+4328 6381   0.102497
+4328 6385   0.022222
+4328 6387  -1.000000
+4328 6401   1.000000
+4329 4   0.200000
+4329 6378   0.075281
+4329 6382   0.102497
+4329 6386   0.022222
+4329 6388  -1.000000
+4329 6402   1.000000
+4330 4   0.200000
+4330 6391   0.075281
+4330 6395   0.102497
+4330 6399   0.022222
+4330 6401  -1.000000
+4330 6415   1.000000
+4331 4   0.200000
+4331 6392   0.075281
+4331 6396   0.102497
+4331 6400   0.022222
+4331 6402  -1.000000
+4331 6416   1.000000
+4332 4   0.200000
+4332 6405   0.075281
+4332 6409   0.102497
+4332 6413   0.022222
+4332 6415  -1.000000
+4332 6429   1.000000
+4333 4   0.200000
+4333 6406   0.075281
+4333 6410   0.102497
+4333 6414   0.022222
+4333 6416  -1.000000
+4333 6430   1.000000
+4334 4   0.200000
+4334 6419   0.075281
+4334 6423   0.102497
+4334 6427   0.022222
+4334 6429  -1.000000
+4334 6443   1.000000
+4335 4   0.200000
+4335 6420   0.075281
+4335 6424   0.102497
+4335 6428   0.022222
+4335 6430  -1.000000
+4335 6444   1.000000
+4336 4   0.200000
+4336 6447   0.075281
+4336 6451   0.102497
+4336 6455   0.022222
+4336 6457  -1.000000
+4336 6471   1.000000
+4337 4   0.200000
+4337 6448   0.075281
+4337 6452   0.102497
+4337 6456   0.022222
+4337 6458  -1.000000
+4337 6472   1.000000
+4338 4   0.200000
+4338 6461   0.075281
+4338 6465   0.102497
+4338 6469   0.022222
+4338 6471  -1.000000
+4338 6485   1.000000
+4339 4   0.200000
+4339 6462   0.075281
+4339 6466   0.102497
+4339 6470   0.022222
+4339 6472  -1.000000
+4339 6486   1.000000
+4340 4   0.200000
+4340 6475   0.075281
+4340 6479   0.102497
+4340 6483   0.022222
+4340 6485  -1.000000
+4340 6499   1.000000
+4341 4   0.200000
+4341 6476   0.075281
+4341 6480   0.102497
+4341 6484   0.022222
+4341 6486  -1.000000
+4341 6500   1.000000
+4342 4   0.200000
+4342 6489   0.075281
+4342 6493   0.102497
+4342 6497   0.022222
+4342 6499  -1.000000
+4342 6513   1.000000
+4343 4   0.200000
+4343 6490   0.075281
+4343 6494   0.102497
+4343 6498   0.022222
+4343 6500  -1.000000
+4343 6514   1.000000
+4344 4   0.200000
+4344 6517   0.075281
+4344 6521   0.102497
+4344 6525   0.022222
+4344 6527  -1.000000
+4344 6541   1.000000
+4345 4   0.200000
+4345 6518   0.075281
+4345 6522   0.102497
+4345 6526   0.022222
+4345 6528  -1.000000
+4345 6542   1.000000
+4346 4   0.200000
+4346 6531   0.075281
+4346 6535   0.102497
+4346 6539   0.022222
+4346 6541  -1.000000
+4346 6555   1.000000
+4347 4   0.200000
+4347 6532   0.075281
+4347 6536   0.102497
+4347 6540   0.022222
+4347 6542  -1.000000
+4347 6556   1.000000
+4348 4   0.200000
+4348 6545   0.075281
+4348 6549   0.102497
+4348 6553   0.022222
+4348 6555  -1.000000
+4348 6569   1.000000
+4349 4   0.200000
+4349 6546   0.075281
+4349 6550   0.102497
+4349 6554   0.022222
+4349 6556  -1.000000
+4349 6570   1.000000
+4350 4   0.200000
+4350 6559   0.075281
+4350 6563   0.102497
+4350 6567   0.022222
+4350 6569  -1.000000
+4350 6583   1.000000
+4351 4   0.200000
+4351 6560   0.075281
+4351 6564   0.102497
+4351 6568   0.022222
+4351 6570  -1.000000
+4351 6584   1.000000
+4352 4   0.200000
+4352 6587   0.075281
+4352 6591   0.102497
+4352 6595   0.022222
+4352 6597  -1.000000
+4352 6611   1.000000
+4353 4   0.200000
+4353 6588   0.075281
+4353 6592   0.102497
+4353 6596   0.022222
+4353 6598  -1.000000
+4353 6612   1.000000
+4354 4   0.200000
+4354 6601   0.075281
+4354 6605   0.102497
+4354 6609   0.022222
+4354 6611  -1.000000
+4354 6625   1.000000
+4355 4   0.200000
+4355 6602   0.075281
+4355 6606   0.102497
+4355 6610   0.022222
+4355 6612  -1.000000
+4355 6626   1.000000
+4356 4   0.200000
+4356 6615   0.075281
+4356 6619   0.102497
+4356 6623   0.022222
+4356 6625  -1.000000
+4356 6639   1.000000
+4357 4   0.200000
+4357 6616   0.075281
+4357 6620   0.102497
+4357 6624   0.022222
+4357 6626  -1.000000
+4357 6640   1.000000
+4358 4   0.200000
+4358 6629   0.075281
+4358 6633   0.102497
+4358 6637   0.022222
+4358 6639  -1.000000
+4358 6653   1.000000
+4359 4   0.200000
+4359 6630   0.075281
+4359 6634   0.102497
+4359 6638   0.022222
+4359 6640  -1.000000
+4359 6654   1.000000
+4360 4   0.200000
+4360 6657   0.075281
+4360 6661   0.102497
+4360 6665   0.022222
+4360 6667  -1.000000
+4360 6681   1.000000
+4361 4   0.200000
+4361 6658   0.075281
+4361 6662   0.102497
+4361 6666   0.022222
+4361 6668  -1.000000
+4361 6682   1.000000
+4362 4   0.200000
+4362 6671   0.075281
+4362 6675   0.102497
+4362 6679   0.022222
+4362 6681  -1.000000
+4362 6695   1.000000
+4363 4   0.200000
+4363 6672   0.075281
+4363 6676   0.102497
+4363 6680   0.022222
+4363 6682  -1.000000
+4363 6696   1.000000
+4364 4   0.200000
+4364 6685   0.075281
+4364 6689   0.102497
+4364 6693   0.022222
+4364 6695  -1.000000
+4364 6709   1.000000
+4365 4   0.200000
+4365 6686   0.075281
+4365 6690   0.102497
+4365 6694   0.022222
+4365 6696  -1.000000
+4365 6710   1.000000
+4366 4   0.200000
+4366 6699   0.075281
+4366 6703   0.102497
+4366 6707   0.022222
+4366 6709  -1.000000
+4366 6723   1.000000
+4367 4   0.200000
+4367 6700   0.075281
+4367 6704   0.102497
+4367 6708   0.022222
+4367 6710  -1.000000
+4367 6724   1.000000
+4368 4   0.200000
+4368 6727   0.075281
+4368 6731   0.102497
+4368 6735   0.022222
+4368 6737  -1.000000
+4368 6751   1.000000
+4369 4   0.200000
+4369 6728   0.075281
+4369 6732   0.102497
+4369 6736   0.022222
+4369 6738  -1.000000
+4369 6752   1.000000
+4370 4   0.200000
+4370 6741   0.075281
+4370 6745   0.102497
+4370 6749   0.022222
+4370 6751  -1.000000
+4370 6765   1.000000
+4371 4   0.200000
+4371 6742   0.075281
+4371 6746   0.102497
+4371 6750   0.022222
+4371 6752  -1.000000
+4371 6766   1.000000
+4372 4   0.200000
+4372 6755   0.075281
+4372 6759   0.102497
+4372 6763   0.022222
+4372 6765  -1.000000
+4372 6779   1.000000
+4373 4   0.200000
+4373 6756   0.075281
+4373 6760   0.102497
+4373 6764   0.022222
+4373 6766  -1.000000
+4373 6780   1.000000
+4374 4   0.200000
+4374 6769   0.075281
+4374 6773   0.102497
+4374 6777   0.022222
+4374 6779  -1.000000
+4374 6793   1.000000
+4375 4   0.200000
+4375 6770   0.075281
+4375 6774   0.102497
+4375 6778   0.022222
+4375 6780  -1.000000
+4375 6794   1.000000
+4376 4   0.200000
+4376 6797   0.075281
+4376 6801   0.102497
+4376 6805   0.022222
+4376 6807  -1.000000
+4376 6821   1.000000
+4377 4   0.200000
+4377 6798   0.075281
+4377 6802   0.102497
+4377 6806   0.022222
+4377 6808  -1.000000
+4377 6822   1.000000
+4378 4   0.200000
+4378 6811   0.075281
+4378 6815   0.102497
+4378 6819   0.022222
+4378 6821  -1.000000
+4378 6835   1.000000
+4379 4   0.200000
+4379 6812   0.075281
+4379 6816   0.102497
+4379 6820   0.022222
+4379 6822  -1.000000
+4379 6836   1.000000
+4380 4   0.200000
+4380 6825   0.075281
+4380 6829   0.102497
+4380 6833   0.022222
+4380 6835  -1.000000
+4380 6849   1.000000
+4381 4   0.200000
+4381 6826   0.075281
+4381 6830   0.102497
+4381 6834   0.022222
+4381 6836  -1.000000
+4381 6850   1.000000
+4382 4   0.200000
+4382 6839   0.075281
+4382 6843   0.102497
+4382 6847   0.022222
+4382 6849  -1.000000
+4382 6863   1.000000
+4383 4   0.200000
+4383 6840   0.075281
+4383 6844   0.102497
+4383 6848   0.022222
+4383 6850  -1.000000
+4383 6864   1.000000
+4384 4   0.200000
+4384 6867   0.075281
+4384 6871   0.102497
+4384 6875   0.022222
+4384 6877  -1.000000
+4384 6891   1.000000
+4385 4   0.200000
+4385 6868   0.075281
+4385 6872   0.102497
+4385 6876   0.022222
+4385 6878  -1.000000
+4385 6892   1.000000
+4386 4   0.200000
+4386 6881   0.075281
+4386 6885   0.102497
+4386 6889   0.022222
+4386 6891  -1.000000
+4386 6905   1.000000
+4387 4   0.200000
+4387 6882   0.075281
+4387 6886   0.102497
+4387 6890   0.022222
+4387 6892  -1.000000
+4387 6906   1.000000
+4388 4   0.200000
+4388 6895   0.075281
+4388 6899   0.102497
+4388 6903   0.022222
+4388 6905  -1.000000
+4388 6919   1.000000
+4389 4   0.200000
+4389 6896   0.075281
+4389 6900   0.102497
+4389 6904   0.022222
+4389 6906  -1.000000
+4389 6920   1.000000
+4390 4   0.200000
+4390 6909   0.075281
+4390 6913   0.102497
+4390 6917   0.022222
+4390 6919  -1.000000
+4390 6933   1.000000
+4391 4   0.200000
+4391 6910   0.075281
+4391 6914   0.102497
+4391 6918   0.022222
+4391 6920  -1.000000
+4391 6934   1.000000
+4392 4   0.200000
+4392 6937   0.075281
+4392 6941   0.102497
+4392 6945   0.022222
+4392 6947  -1.000000
+4392 6961   1.000000
+4393 4   0.200000
+4393 6938   0.075281
+4393 6942   0.102497
+4393 6946   0.022222
+4393 6948  -1.000000
+4393 6962   1.000000
+4394 4   0.200000
+4394 6951   0.075281
+4394 6955   0.102497
+4394 6959   0.022222
+4394 6961  -1.000000
+4394 6975   1.000000
+4395 4   0.200000
+4395 6952   0.075281
+4395 6956   0.102497
+4395 6960   0.022222
+4395 6962  -1.000000
+4395 6976   1.000000
+4396 4   0.200000
+4396 6965   0.075281
+4396 6969   0.102497
+4396 6973   0.022222
+4396 6975  -1.000000
+4396 6989   1.000000
+4397 4   0.200000
+4397 6966   0.075281
+4397 6970   0.102497
+4397 6974   0.022222
+4397 6976  -1.000000
+4397 6990   1.000000
+4398 4   0.200000
+4398 6979   0.075281
+4398 6983   0.102497
+4398 6987   0.022222
+4398 6989  -1.000000
+4398 7003   1.000000
+4399 4   0.200000
+4399 6980   0.075281
+4399 6984   0.102497
+4399 6988   0.022222
+4399 6990  -1.000000
+4399 7004   1.000000
+4400 4   0.200000
+4400 7007   0.075281
+4400 7011   0.102497
+4400 7015   0.022222
+4400 7017  -1.000000
+4400 7031   1.000000
+4401 4   0.200000
+4401 7008   0.075281
+4401 7012   0.102497
+4401 7016   0.022222
+4401 7018  -1.000000
+4401 7032   1.000000
+4402 4   0.200000
+4402 7021   0.075281
+4402 7025   0.102497
+4402 7029   0.022222
+4402 7031  -1.000000
+4402 7045   1.000000
+4403 4   0.200000
+4403 7022   0.075281
+4403 7026   0.102497
+4403 7030   0.022222
+4403 7032  -1.000000
+4403 7046   1.000000
+4404 4   0.200000
+4404 7035   0.075281
+4404 7039   0.102497
+4404 7043   0.022222
+4404 7045  -1.000000
+4404 7059   1.000000
+4405 4   0.200000
+4405 7036   0.075281
+4405 7040   0.102497
+4405 7044   0.022222
+4405 7046  -1.000000
+4405 7060   1.000000
+4406 4   0.200000
+4406 7049   0.075281
+4406 7053   0.102497
+4406 7057   0.022222
+4406 7059  -1.000000
+4406 7073   1.000000
+4407 4   0.200000
+4407 7050   0.075281
+4407 7054   0.102497
+4407 7058   0.022222
+4407 7060  -1.000000
+4407 7074   1.000000
+4408 4   0.200000
+4408 7077   0.075281
+4408 7081   0.102497
+4408 7085   0.022222
+4408 7087  -1.000000
+4408 7101   1.000000
+4409 4   0.200000
+4409 7078   0.075281
+4409 7082   0.102497
+4409 7086   0.022222
+4409 7088  -1.000000
+4409 7102   1.000000
+4410 4   0.200000
+4410 7091   0.075281
+4410 7095   0.102497
+4410 7099   0.022222
+4410 7101  -1.000000
+4410 7115   1.000000
+4411 4   0.200000
+4411 7092   0.075281
+4411 7096   0.102497
+4411 7100   0.022222
+4411 7102  -1.000000
+4411 7116   1.000000
+4412 4   0.200000
+4412 7105   0.075281
+4412 7109   0.102497
+4412 7113   0.022222
+4412 7115  -1.000000
+4412 7129   1.000000
+4413 4   0.200000
+4413 7106   0.075281
+4413 7110   0.102497
+4413 7114   0.022222
+4413 7116  -1.000000
+4413 7130   1.000000
+4414 4   0.200000
+4414 7119   0.075281
+4414 7123   0.102497
+4414 7127   0.022222
+4414 7129  -1.000000
+4414 7143   1.000000
+4415 4   0.200000
+4415 7120   0.075281
+4415 7124   0.102497
+4415 7128   0.022222
+4415 7130  -1.000000
+4415 7144   1.000000
+4416 4   0.200000
+4416 7147   0.075281
+4416 7151   0.102497
+4416 7155   0.022222
+4416 7157  -1.000000
+4416 7171   1.000000
+4417 4   0.200000
+4417 7148   0.075281
+4417 7152   0.102497
+4417 7156   0.022222
+4417 7158  -1.000000
+4417 7172   1.000000
+4418 4   0.200000
+4418 7161   0.075281
+4418 7165   0.102497
+4418 7169   0.022222
+4418 7171  -1.000000
+4418 7185   1.000000
+4419 4   0.200000
+4419 7162   0.075281
+4419 7166   0.102497
+4419 7170   0.022222
+4419 7172  -1.000000
+4419 7186   1.000000
+4420 4   0.200000
+4420 7175   0.075281
+4420 7179   0.102497
+4420 7183   0.022222
+4420 7185  -1.000000
+4420 7199   1.000000
+4421 4   0.200000
+4421 7176   0.075281
+4421 7180   0.102497
+4421 7184   0.022222
+4421 7186  -1.000000
+4421 7200   1.000000
+4422 4   0.200000
+4422 7189   0.075281
+4422 7193   0.102497
+4422 7197   0.022222
+4422 7199  -1.000000
+4422 7213   1.000000
+4423 4   0.200000
+4423 7190   0.075281
+4423 7194   0.102497
+4423 7198   0.022222
+4423 7200  -1.000000
+4423 7214   1.000000
+4424 4   0.200000
+4424 7217   0.075281
+4424 7221   0.102497
+4424 7225   0.022222
+4424 7227  -1.000000
+4424 7241   1.000000
+4425 4   0.200000
+4425 7218   0.075281
+4425 7222   0.102497
+4425 7226   0.022222
+4425 7228  -1.000000
+4425 7242   1.000000
+4426 4   0.200000
+4426 7231   0.075281
+4426 7235   0.102497
+4426 7239   0.022222
+4426 7241  -1.000000
+4426 7255   1.000000
+4427 4   0.200000
+4427 7232   0.075281
+4427 7236   0.102497
+4427 7240   0.022222
+4427 7242  -1.000000
+4427 7256   1.000000
+4428 4   0.200000
+4428 7245   0.075281
+4428 7249   0.102497
+4428 7253   0.022222
+4428 7255  -1.000000
+4428 7269   1.000000
+4429 4   0.200000
+4429 7246   0.075281
+4429 7250   0.102497
+4429 7254   0.022222
+4429 7256  -1.000000
+4429 7270   1.000000
+4430 4   0.200000
+4430 7259   0.075281
+4430 7263   0.102497
+4430 7267   0.022222
+4430 7269  -1.000000
+4430 7283   1.000000
+4431 4   0.200000
+4431 7260   0.075281
+4431 7264   0.102497
+4431 7268   0.022222
+4431 7270  -1.000000
+4431 7284   1.000000
+4432 4   0.200000
+4432 7287   0.075281
+4432 7291   0.102497
+4432 7295   0.022222
+4432 7297  -1.000000
+4432 7311   1.000000
+4433 4   0.200000
+4433 7288   0.075281
+4433 7292   0.102497
+4433 7296   0.022222
+4433 7298  -1.000000
+4433 7312   1.000000
+4434 4   0.200000
+4434 7301   0.075281
+4434 7305   0.102497
+4434 7309   0.022222
+4434 7311  -1.000000
+4434 7325   1.000000
+4435 4   0.200000
+4435 7302   0.075281
+4435 7306   0.102497
+4435 7310   0.022222
+4435 7312  -1.000000
+4435 7326   1.000000
+4436 4   0.200000
+4436 7315   0.075281
+4436 7319   0.102497
+4436 7323   0.022222
+4436 7325  -1.000000
+4436 7339   1.000000
+4437 4   0.200000
+4437 7316   0.075281
+4437 7320   0.102497
+4437 7324   0.022222
+4437 7326  -1.000000
+4437 7340   1.000000
+4438 4   0.200000
+4438 7329   0.075281
+4438 7333   0.102497
+4438 7337   0.022222
+4438 7339  -1.000000
+4438 7353   1.000000
+4439 4   0.200000
+4439 7330   0.075281
+4439 7334   0.102497
+4439 7338   0.022222
+4439 7340  -1.000000
+4439 7354   1.000000
+4440 4   0.200000
+4440 7357   0.075281
+4440 7361   0.102497
+4440 7365   0.022222
+4440 7367  -1.000000
+4440 7381   1.000000
+4441 4   0.200000
+4441 7358   0.075281
+4441 7362   0.102497
+4441 7366   0.022222
+4441 7368  -1.000000
+4441 7382   1.000000
+4442 4   0.200000
+4442 7371   0.075281
+4442 7375   0.102497
+4442 7379   0.022222
+4442 7381  -1.000000
+4442 7395   1.000000
+4443 4   0.200000
+4443 7372   0.075281
+4443 7376   0.102497
+4443 7380   0.022222
+4443 7382  -1.000000
+4443 7396   1.000000
+4444 4   0.200000
+4444 7385   0.075281
+4444 7389   0.102497
+4444 7393   0.022222
+4444 7395  -1.000000
+4444 7409   1.000000
+4445 4   0.200000
+4445 7386   0.075281
+4445 7390   0.102497
+4445 7394   0.022222
+4445 7396  -1.000000
+4445 7410   1.000000
+4446 4   0.200000
+4446 7399   0.075281
+4446 7403   0.102497
+4446 7407   0.022222
+4446 7409  -1.000000
+4446 7423   1.000000
+4447 4   0.200000
+4447 7400   0.075281
+4447 7404   0.102497
+4447 7408   0.022222
+4447 7410  -1.000000
+4447 7424   1.000000
+4448 4   0.200000
+4448 7427   0.075281
+4448 7431   0.102497
+4448 7435   0.022222
+4448 7437  -1.000000
+4448 7451   1.000000
+4449 4   0.200000
+4449 7428   0.075281
+4449 7432   0.102497
+4449 7436   0.022222
+4449 7438  -1.000000
+4449 7452   1.000000
+4450 4   0.200000
+4450 7441   0.075281
+4450 7445   0.102497
+4450 7449   0.022222
+4450 7451  -1.000000
+4450 7465   1.000000
+4451 4   0.200000
+4451 7442   0.075281
+4451 7446   0.102497
+4451 7450   0.022222
+4451 7452  -1.000000
+4451 7466   1.000000
+4452 4   0.200000
+4452 7455   0.075281
+4452 7459   0.102497
+4452 7463   0.022222
+4452 7465  -1.000000
+4452 7479   1.000000
+4453 4   0.200000
+4453 7456   0.075281
+4453 7460   0.102497
+4453 7464   0.022222
+4453 7466  -1.000000
+4453 7480   1.000000
+4454 4   0.200000
+4454 7469   0.075281
+4454 7473   0.102497
+4454 7477   0.022222
+4454 7479  -1.000000
+4454 7493   1.000000
+4455 4   0.200000
+4455 7470   0.075281
+4455 7474   0.102497
+4455 7478   0.022222
+4455 7480  -1.000000
+4455 7494   1.000000
+4456 4   0.200000
+4456 7497   0.075281
+4456 7501   0.102497
+4456 7505   0.022222
+4456 7507  -1.000000
+4456 7521   1.000000
+4457 4   0.200000
+4457 7498   0.075281
+4457 7502   0.102497
+4457 7506   0.022222
+4457 7508  -1.000000
+4457 7522   1.000000
+4458 4   0.200000
+4458 7511   0.075281
+4458 7515   0.102497
+4458 7519   0.022222
+4458 7521  -1.000000
+4458 7535   1.000000
+4459 4   0.200000
+4459 7512   0.075281
+4459 7516   0.102497
+4459 7520   0.022222
+4459 7522  -1.000000
+4459 7536   1.000000
+4460 4   0.200000
+4460 7525   0.075281
+4460 7529   0.102497
+4460 7533   0.022222
+4460 7535  -1.000000
+4460 7549   1.000000
+4461 4   0.200000
+4461 7526   0.075281
+4461 7530   0.102497
+4461 7534   0.022222
+4461 7536  -1.000000
+4461 7550   1.000000
+4462 4   0.200000
+4462 7539   0.075281
+4462 7543   0.102497
+4462 7547   0.022222
+4462 7549  -1.000000
+4462 7563   1.000000
+4463 4   0.200000
+4463 7540   0.075281
+4463 7544   0.102497
+4463 7548   0.022222
+4463 7550  -1.000000
+4463 7564   1.000000
+4464 4   0.200000
+4464 7567   0.075281
+4464 7571   0.102497
+4464 7575   0.022222
+4464 7577  -1.000000
+4464 7591   1.000000
+4465 4   0.200000
+4465 7568   0.075281
+4465 7572   0.102497
+4465 7576   0.022222
+4465 7578  -1.000000
+4465 7592   1.000000
+4466 4   0.200000
+4466 7581   0.075281
+4466 7585   0.102497
+4466 7589   0.022222
+4466 7591  -1.000000
+4466 7605   1.000000
+4467 4   0.200000
+4467 7582   0.075281
+4467 7586   0.102497
+4467 7590   0.022222
+4467 7592  -1.000000
+4467 7606   1.000000
+4468 4   0.200000
+4468 7595   0.075281
+4468 7599   0.102497
+4468 7603   0.022222
+4468 7605  -1.000000
+4468 7619   1.000000
+4469 4   0.200000
+4469 7596   0.075281
+4469 7600   0.102497
+4469 7604   0.022222
+4469 7606  -1.000000
+4469 7620   1.000000
+4470 4   0.200000
+4470 7609   0.075281
+4470 7613   0.102497
+4470 7617   0.022222
+4470 7619  -1.000000
+4470 7633   1.000000
+4471 4   0.200000
+4471 7610   0.075281
+4471 7614   0.102497
+4471 7618   0.022222
+4471 7620  -1.000000
+4471 7634   1.000000
+4472 4   0.200000
+4472 7637   0.075281
+4472 7641   0.102497
+4472 7645   0.022222
+4472 7647  -1.000000
+4472 7661   1.000000
+4473 4   0.200000
+4473 7638   0.075281
+4473 7642   0.102497
+4473 7646   0.022222
+4473 7648  -1.000000
+4473 7662   1.000000
+4474 4   0.200000
+4474 7651   0.075281
+4474 7655   0.102497
+4474 7659   0.022222
+4474 7661  -1.000000
+4474 7675   1.000000
+4475 4   0.200000
+4475 7652   0.075281
+4475 7656   0.102497
+4475 7660   0.022222
+4475 7662  -1.000000
+4475 7676   1.000000
+4476 4   0.200000
+4476 7665   0.075281
+4476 7669   0.102497
+4476 7673   0.022222
+4476 7675  -1.000000
+4476 7689   1.000000
+4477 4   0.200000
+4477 7666   0.075281
+4477 7670   0.102497
+4477 7674   0.022222
+4477 7676  -1.000000
+4477 7690   1.000000
+4478 4   0.200000
+4478 7679   0.075281
+4478 7683   0.102497
+4478 7687   0.022222
+4478 7689  -1.000000
+4478 7703   1.000000
+4479 4   0.200000
+4479 7680   0.075281
+4479 7684   0.102497
+4479 7688   0.022222
+4479 7690  -1.000000
+4479 7704   1.000000
+4480 4   0.200000
+4480 7707   0.075281
+4480 7711   0.102497
+4480 7715   0.022222
+4480 7717  -1.000000
+4480 7731   1.000000
+4481 4   0.200000
+4481 7708   0.075281
+4481 7712   0.102497
+4481 7716   0.022222
+4481 7718  -1.000000
+4481 7732   1.000000
+4482 4   0.200000
+4482 7721   0.075281
+4482 7725   0.102497
+4482 7729   0.022222
+4482 7731  -1.000000
+4482 7745   1.000000
+4483 4   0.200000
+4483 7722   0.075281
+4483 7726   0.102497
+4483 7730   0.022222
+4483 7732  -1.000000
+4483 7746   1.000000
+4484 4   0.200000
+4484 7735   0.075281
+4484 7739   0.102497
+4484 7743   0.022222
+4484 7745  -1.000000
+4484 7759   1.000000
+4485 4   0.200000
+4485 7736   0.075281
+4485 7740   0.102497
+4485 7744   0.022222
+4485 7746  -1.000000
+4485 7760   1.000000
+4486 4   0.200000
+4486 7749   0.075281
+4486 7753   0.102497
+4486 7757   0.022222
+4486 7759  -1.000000
+4486 7773   1.000000
+4487 4   0.200000
+4487 7750   0.075281
+4487 7754   0.102497
+4487 7758   0.022222
+4487 7760  -1.000000
+4487 7774   1.000000
+4488 4   0.200000
+4488 7777   0.075281
+4488 7781   0.102497
+4488 7785   0.022222
+4488 7787  -1.000000
+4488 7801   1.000000
+4489 4   0.200000
+4489 7778   0.075281
+4489 7782   0.102497
+4489 7786   0.022222
+4489 7788  -1.000000
+4489 7802   1.000000
+4490 4   0.200000
+4490 7791   0.075281
+4490 7795   0.102497
+4490 7799   0.022222
+4490 7801  -1.000000
+4490 7815   1.000000
+4491 4   0.200000
+4491 7792   0.075281
+4491 7796   0.102497
+4491 7800   0.022222
+4491 7802  -1.000000
+4491 7816   1.000000
+4492 4   0.200000
+4492 7805   0.075281
+4492 7809   0.102497
+4492 7813   0.022222
+4492 7815  -1.000000
+4492 7829   1.000000
+4493 4   0.200000
+4493 7806   0.075281
+4493 7810   0.102497
+4493 7814   0.022222
+4493 7816  -1.000000
+4493 7830   1.000000
+4494 4   0.200000
+4494 7819   0.075281
+4494 7823   0.102497
+4494 7827   0.022222
+4494 7829  -1.000000
+4494 7843   1.000000
+4495 4   0.200000
+4495 7820   0.075281
+4495 7824   0.102497
+4495 7828   0.022222
+4495 7830  -1.000000
+4495 7844   1.000000
+4496 4   0.200000
+4496 7847   0.075281
+4496 7851   0.102497
+4496 7855   0.022222
+4496 7857  -1.000000
+4496 7871   1.000000
+4497 4   0.200000
+4497 7848   0.075281
+4497 7852   0.102497
+4497 7856   0.022222
+4497 7858  -1.000000
+4497 7872   1.000000
+4498 4   0.200000
+4498 7861   0.075281
+4498 7865   0.102497
+4498 7869   0.022222
+4498 7871  -1.000000
+4498 7885   1.000000
+4499 4   0.200000
+4499 7862   0.075281
+4499 7866   0.102497
+4499 7870   0.022222
+4499 7872  -1.000000
+4499 7886   1.000000
+4500 4   0.200000
+4500 7875   0.075281
+4500 7879   0.102497
+4500 7883   0.022222
+4500 7885  -1.000000
+4500 7899   1.000000
+4501 4   0.200000
+4501 7876   0.075281
+4501 7880   0.102497
+4501 7884   0.022222
+4501 7886  -1.000000
+4501 7900   1.000000
+4502 4   0.200000
+4502 7889   0.075281
+4502 7893   0.102497
+4502 7897   0.022222
+4502 7899  -1.000000
+4502 7913   1.000000
+4503 4   0.200000
+4503 7890   0.075281
+4503 7894   0.102497
+4503 7898   0.022222
+4503 7900  -1.000000
+4503 7914   1.000000
+4504 4   0.200000
+4504 7917   0.075281
+4504 7921   0.102497
+4504 7925   0.022222
+4504 7927  -1.000000
+4504 7941   1.000000
+4505 4   0.200000
+4505 7918   0.075281
+4505 7922   0.102497
+4505 7926   0.022222
+4505 7928  -1.000000
+4505 7942   1.000000
+4506 4   0.200000
+4506 7931   0.075281
+4506 7935   0.102497
+4506 7939   0.022222
+4506 7941  -1.000000
+4506 7955   1.000000
+4507 4   0.200000
+4507 7932   0.075281
+4507 7936   0.102497
+4507 7940   0.022222
+4507 7942  -1.000000
+4507 7956   1.000000
+4508 4   0.200000
+4508 7945   0.075281
+4508 7949   0.102497
+4508 7953   0.022222
+4508 7955  -1.000000
+4508 7969   1.000000
+4509 4   0.200000
+4509 7946   0.075281
+4509 7950   0.102497
+4509 7954   0.022222
+4509 7956  -1.000000
+4509 7970   1.000000
+4510 4   0.200000
+4510 7959   0.075281
+4510 7963   0.102497
+4510 7967   0.022222
+4510 7969  -1.000000
+4510 7983   1.000000
+4511 4   0.200000
+4511 7960   0.075281
+4511 7964   0.102497
+4511 7968   0.022222
+4511 7970  -1.000000
+4511 7984   1.000000
+4512 4   0.200000
+4512 7987   0.075281
+4512 7991   0.102497
+4512 7995   0.022222
+4512 7997  -1.000000
+4512 8011   1.000000
+4513 4   0.200000
+4513 7988   0.075281
+4513 7992   0.102497
+4513 7996   0.022222
+4513 7998  -1.000000
+4513 8012   1.000000
+4514 4   0.200000
+4514 8001   0.075281
+4514 8005   0.102497
+4514 8009   0.022222
+4514 8011  -1.000000
+4514 8025   1.000000
+4515 4   0.200000
+4515 8002   0.075281
+4515 8006   0.102497
+4515 8010   0.022222
+4515 8012  -1.000000
+4515 8026   1.000000
+4516 4   0.200000
+4516 8015   0.075281
+4516 8019   0.102497
+4516 8023   0.022222
+4516 8025  -1.000000
+4516 8039   1.000000
+4517 4   0.200000
+4517 8016   0.075281
+4517 8020   0.102497
+4517 8024   0.022222
+4517 8026  -1.000000
+4517 8040   1.000000
+4518 4   0.200000
+4518 8029   0.075281
+4518 8033   0.102497
+4518 8037   0.022222
+4518 8039  -1.000000
+4518 8053   1.000000
+4519 4   0.200000
+4519 8030   0.075281
+4519 8034   0.102497
+4519 8038   0.022222
+4519 8040  -1.000000
+4519 8054   1.000000
+4520 4   0.200000
+4520 8057   0.075281
+4520 8061   0.102497
+4520 8065   0.022222
+4520 8067  -1.000000
+4520 8081   1.000000
+4521 4   0.200000
+4521 8058   0.075281
+4521 8062   0.102497
+4521 8066   0.022222
+4521 8068  -1.000000
+4521 8082   1.000000
+4522 4   0.200000
+4522 8071   0.075281
+4522 8075   0.102497
+4522 8079   0.022222
+4522 8081  -1.000000
+4522 8095   1.000000
+4523 4   0.200000
+4523 8072   0.075281
+4523 8076   0.102497
+4523 8080   0.022222
+4523 8082  -1.000000
+4523 8096   1.000000
+4524 4   0.200000
+4524 8085   0.075281
+4524 8089   0.102497
+4524 8093   0.022222
+4524 8095  -1.000000
+4524 8109   1.000000
+4525 4   0.200000
+4525 8086   0.075281
+4525 8090   0.102497
+4525 8094   0.022222
+4525 8096  -1.000000
+4525 8110   1.000000
+4526 4   0.200000
+4526 8099   0.075281
+4526 8103   0.102497
+4526 8107   0.022222
+4526 8109  -1.000000
+4526 8123   1.000000
+4527 4   0.200000
+4527 8100   0.075281
+4527 8104   0.102497
+4527 8108   0.022222
+4527 8110  -1.000000
+4527 8124   1.000000
+4528 4   0.200000
+4528 8127   0.075281
+4528 8131   0.102497
+4528 8135   0.022222
+4528 8137  -1.000000
+4528 8151   1.000000
+4529 4   0.200000
+4529 8128   0.075281
+4529 8132   0.102497
+4529 8136   0.022222
+4529 8138  -1.000000
+4529 8152   1.000000
+4530 4   0.200000
+4530 8141   0.075281
+4530 8145   0.102497
+4530 8149   0.022222
+4530 8151  -1.000000
+4530 8165   1.000000
+4531 4   0.200000
+4531 8142   0.075281
+4531 8146   0.102497
+4531 8150   0.022222
+4531 8152  -1.000000
+4531 8166   1.000000
+4532 4   0.200000
+4532 8155   0.075281
+4532 8159   0.102497
+4532 8163   0.022222
+4532 8165  -1.000000
+4532 8179   1.000000
+4533 4   0.200000
+4533 8156   0.075281
+4533 8160   0.102497
+4533 8164   0.022222
+4533 8166  -1.000000
+4533 8180   1.000000
+4534 4   0.200000
+4534 8169   0.075281
+4534 8173   0.102497
+4534 8177   0.022222
+4534 8179  -1.000000
+4534 8193   1.000000
+4535 4   0.200000
+4535 8170   0.075281
+4535 8174   0.102497
+4535 8178   0.022222
+4535 8180  -1.000000
+4535 8194   1.000000
+4536 4   0.200000
+4536 8197   0.075281
+4536 8201   0.102497
+4536 8205   0.022222
+4536 8207  -1.000000
+4536 8221   1.000000
+4537 4   0.200000
+4537 8198   0.075281
+4537 8202   0.102497
+4537 8206   0.022222
+4537 8208  -1.000000
+4537 8222   1.000000
+4538 4   0.200000
+4538 8211   0.075281
+4538 8215   0.102497
+4538 8219   0.022222
+4538 8221  -1.000000
+4538 8235   1.000000
+4539 4   0.200000
+4539 8212   0.075281
+4539 8216   0.102497
+4539 8220   0.022222
+4539 8222  -1.000000
+4539 8236   1.000000
+4540 4   0.200000
+4540 8225   0.075281
+4540 8229   0.102497
+4540 8233   0.022222
+4540 8235  -1.000000
+4540 8249   1.000000
+4541 4   0.200000
+4541 8226   0.075281
+4541 8230   0.102497
+4541 8234   0.022222
+4541 8236  -1.000000
+4541 8250   1.000000
+4542 4   0.200000
+4542 8239   0.075281
+4542 8243   0.102497
+4542 8247   0.022222
+4542 8249  -1.000000
+4542 8263   1.000000
+4543 4   0.200000
+4543 8240   0.075281
+4543 8244   0.102497
+4543 8248   0.022222
+4543 8250  -1.000000
+4543 8264   1.000000
+4544 4   0.200000
+4544 8267   0.075281
+4544 8271   0.102497
+4544 8275   0.022222
+4544 8277  -1.000000
+4544 8291   1.000000
+4545 4   0.200000
+4545 8268   0.075281
+4545 8272   0.102497
+4545 8276   0.022222
+4545 8278  -1.000000
+4545 8292   1.000000
+4546 4   0.200000
+4546 8281   0.075281
+4546 8285   0.102497
+4546 8289   0.022222
+4546 8291  -1.000000
+4546 8305   1.000000
+4547 4   0.200000
+4547 8282   0.075281
+4547 8286   0.102497
+4547 8290   0.022222
+4547 8292  -1.000000
+4547 8306   1.000000
+4548 4   0.200000
+4548 8295   0.075281
+4548 8299   0.102497
+4548 8303   0.022222
+4548 8305  -1.000000
+4548 8319   1.000000
+4549 4   0.200000
+4549 8296   0.075281
+4549 8300   0.102497
+4549 8304   0.022222
+4549 8306  -1.000000
+4549 8320   1.000000
+4550 4   0.200000
+4550 8309   0.075281
+4550 8313   0.102497
+4550 8317   0.022222
+4550 8319  -1.000000
+4550 8333   1.000000
+4551 4   0.200000
+4551 8310   0.075281
+4551 8314   0.102497
+4551 8318   0.022222
+4551 8320  -1.000000
+4551 8334   1.000000
+4552 4   0.200000
+4552 8337   0.075281
+4552 8341   0.102497
+4552 8345   0.022222
+4552 8347  -1.000000
+4552 8361   1.000000
+4553 4   0.200000
+4553 8338   0.075281
+4553 8342   0.102497
+4553 8346   0.022222
+4553 8348  -1.000000
+4553 8362   1.000000
+4554 4   0.200000
+4554 8351   0.075281
+4554 8355   0.102497
+4554 8359   0.022222
+4554 8361  -1.000000
+4554 8375   1.000000
+4555 4   0.200000
+4555 8352   0.075281
+4555 8356   0.102497
+4555 8360   0.022222
+4555 8362  -1.000000
+4555 8376   1.000000
+4556 4   0.200000
+4556 8365   0.075281
+4556 8369   0.102497
+4556 8373   0.022222
+4556 8375  -1.000000
+4556 8389   1.000000
+4557 4   0.200000
+4557 8366   0.075281
+4557 8370   0.102497
+4557 8374   0.022222
+4557 8376  -1.000000
+4557 8390   1.000000
+4558 4   0.200000
+4558 8379   0.075281
+4558 8383   0.102497
+4558 8387   0.022222
+4558 8389  -1.000000
+4558 8403   1.000000
+4559 4   0.200000
+4559 8380   0.075281
+4559 8384   0.102497
+4559 8388   0.022222
+4559 8390  -1.000000
+4559 8404   1.000000
+4560 4   0.031010
+4560 8405   1.000000
+4560 8407   0.039363
+4560 8417  -0.013107
+4560 8427   0.004754
+4560 8435  -1.000000
+4561 4   0.031010
+4561 8406   1.000000
+4561 8408   0.039363
+4561 8418  -0.013107
+4561 8428   0.004754
+4561 8436  -1.000000
+4562 4   0.031010
+4562 8409   1.000000
+4562 8411   0.039363
+4562 8421  -0.013107
+4562 8431   0.004754
+4562 8437  -1.000000
+4563 4   0.031010
+4563 8410   1.000000
+4563 8412   0.039363
+4563 8422  -0.013107
+4563 8432   0.004754
+4563 8438  -1.000000
+4564 4   0.031010
+4564 8413   1.000000
+4564 8414   0.039363
+4564 8424  -0.013107
+4564 8434   0.004754
+4564 8439  -1.000000
+4565 1   4.000000
+4565 5  80.000000
+4565 7   1.000000
+4565 8335 -60.000000
+4566 1   2.000000
+4566 6  40.000000
+4566 8   1.000000
+4566 8336 -30.000000
+4567 4135 -60.000000
+4567 4205  80.000000
+4567 4207   1.000000
+4568 4136 -30.000000
+4568 4206  40.000000
+4568 4208   1.000000
+4569 3  -0.100000
+4569 1335  -0.500000
+4569 8407   1.000000
+4570 3  -0.100000
+4570 1336  -0.500000
+4570 8408   1.000000
+4571 1  -0.100000
+4571 2  -0.100000
+4571 3   0.100000
+4571 6935  -0.500000
+4571 8411   1.000000
+4572 1  -0.100000
+4572 2  -0.100000
+4572 3   0.100000
+4572 6936  -0.500000
+4572 8412   1.000000
+4573 2  -1.000000
+4573 8414   1.000000
+4574 4   0.128990
+4574 8407   0.078885
+4574 8415   1.000000
+4574 8417   0.058415
+4574 8427  -0.008310
+4574 8435  -1.000000
+4575 4   0.128990
+4575 8408   0.078885
+4575 8416   1.000000
+4575 8418   0.058415
+4575 8428  -0.008310
+4575 8436  -1.000000
+4576 4   0.128990
+4576 8411   0.078885
+4576 8419   1.000000
+4576 8421   0.058415
+4576 8431  -0.008310
+4576 8437  -1.000000
+4577 4   0.128990
+4577 8412   0.078885
+4577 8420   1.000000
+4577 8422   0.058415
+4577 8432  -0.008310
+4577 8438  -1.000000
+4578 4   0.128990
+4578 8414   0.078885
+4578 8423   1.000000
+4578 8424   0.058415
+4578 8434  -0.008310
+4578 8439  -1.000000
+4579 1   4.000000
+4579 9  80.000000
+4579 11   1.000000
+4579 8339 -60.000000
+4580 1   2.000000
+4580 10  40.000000
+4580 12   1.000000
+4580 8340 -30.000000
+4581 4139 -60.000000
+4581 4209  80.000000
+4581 4211   1.000000
+4582 4140 -30.000000
+4582 4210  40.000000
+4582 4212   1.000000
+4583 3  -0.100000
+4583 1339  -0.500000
+4583 8417   1.000000
+4584 3  -0.100000
+4584 1340  -0.500000
+4584 8418   1.000000
+4585 1  -0.100000
+4585 2  -0.100000
+4585 3   0.100000
+4585 6939  -0.500000
+4585 8421   1.000000
+4586 1  -0.100000
+4586 2  -0.100000
+4586 3   0.100000
+4586 6940  -0.500000
+4586 8422   1.000000
+4587 2  -1.000000
+4587 8424   1.000000
+4588 4   0.200000
+4588 8407   0.075281
+4588 8417   0.102497
+4588 8425   1.000000
+4588 8427   0.022222
+4588 8435  -1.000000
+4589 4   0.200000
+4589 8408   0.075281
+4589 8418   0.102497
+4589 8426   1.000000
+4589 8428   0.022222
+4589 8436  -1.000000
+4590 4   0.200000
+4590 8411   0.075281
+4590 8421   0.102497
+4590 8429   1.000000
+4590 8431   0.022222
+4590 8437  -1.000000
+4591 4   0.200000
+4591 8412   0.075281
+4591 8422   0.102497
+4591 8430   1.000000
+4591 8432   0.022222
+4591 8438  -1.000000
+4592 4   0.200000
+4592 8414   0.075281
+4592 8424   0.102497
+4592 8433   1.000000
+4592 8434   0.022222
+4592 8439  -1.000000
+4593 1   4.000000
+4593 13  80.000000
+4593 15   1.000000
+4593 8343 -60.000000
+4594 1   2.000000
+4594 14  40.000000
+4594 16   1.000000
+4594 8344 -30.000000
+4595 4143 -60.000000
+4595 4213  80.000000
+4595 4215   1.000000
+4596 4144 -30.000000
+4596 4214  40.000000
+4596 4216   1.000000
+4597 3  -0.100000
+4597 1343  -0.500000
+4597 8427   1.000000
+4598 3  -0.100000
+4598 1344  -0.500000
+4598 8428   1.000000
+4599 1  -0.100000
+4599 2  -0.100000
+4599 3   0.100000
+4599 6943  -0.500000
+4599 8431   1.000000
+4600 1  -0.100000
+4600 2  -0.100000
+4600 3   0.100000
+4600 6944  -0.500000
+4600 8432   1.000000
+4601 2  -1.000000
+4601 8434   1.000000
+4602 4   0.031010
+4602 8440   1.000000
+4602 8442   0.039363
+4602 8452  -0.013107
+4602 8462   0.004754
+4602 8470  -1.000000
+4603 4   0.031010
+4603 8441   1.000000
+4603 8443   0.039363
+4603 8453  -0.013107
+4603 8463   0.004754
+4603 8471  -1.000000
+4604 4   0.031010
+4604 8444   1.000000
+4604 8446   0.039363
+4604 8456  -0.013107
+4604 8466   0.004754
+4604 8472  -1.000000
+4605 4   0.031010
+4605 8445   1.000000
+4605 8447   0.039363
+4605 8457  -0.013107
+4605 8467   0.004754
+4605 8473  -1.000000
+4606 4   0.031010
+4606 8448   1.000000
+4606 8449   0.039363
+4606 8459  -0.013107
+4606 8469   0.004754
+4606 8474  -1.000000
+4607 1   4.000000
+4607 19  80.000000
+4607 21   1.000000
+4607 8349 -60.000000
+4608 1   2.000000
+4608 20  40.000000
+4608 22   1.000000
+4608 8350 -30.000000
+4609 4149 -60.000000
+4609 4219  80.000000
+4609 4221   1.000000
+4610 4150 -30.000000
+4610 4220  40.000000
+4610 4222   1.000000
+4611 3  -0.100000
+4611 1349  -0.500000
+4611 8442   1.000000
+4612 3  -0.100000
+4612 1350  -0.500000
+4612 8443   1.000000
+4613 1  -0.100000
+4613 2  -0.100000
+4613 3   0.100000
+4613 6949  -0.500000
+4613 8446   1.000000
+4614 1  -0.100000
+4614 2  -0.100000
+4614 3   0.100000
+4614 6950  -0.500000
+4614 8447   1.000000
+4615 2  -1.000000
+4615 8449   1.000000
+4616 4   0.128990
+4616 8442   0.078885
+4616 8450   1.000000
+4616 8452   0.058415
+4616 8462  -0.008310
+4616 8470  -1.000000
+4617 4   0.128990
+4617 8443   0.078885
+4617 8451   1.000000
+4617 8453   0.058415
+4617 8463  -0.008310
+4617 8471  -1.000000
+4618 4   0.128990
+4618 8446   0.078885
+4618 8454   1.000000
+4618 8456   0.058415
+4618 8466  -0.008310
+4618 8472  -1.000000
+4619 4   0.128990
+4619 8447   0.078885
+4619 8455   1.000000
+4619 8457   0.058415
+4619 8467  -0.008310
+4619 8473  -1.000000
+4620 4   0.128990
+4620 8449   0.078885
+4620 8458   1.000000
+4620 8459   0.058415
+4620 8469  -0.008310
+4620 8474  -1.000000
+4621 1   4.000000
+4621 23  80.000000
+4621 25   1.000000
+4621 8353 -60.000000
+4622 1   2.000000
+4622 24  40.000000
+4622 26   1.000000
+4622 8354 -30.000000
+4623 4153 -60.000000
+4623 4223  80.000000
+4623 4225   1.000000
+4624 4154 -30.000000
+4624 4224  40.000000
+4624 4226   1.000000
+4625 3  -0.100000
+4625 1353  -0.500000
+4625 8452   1.000000
+4626 3  -0.100000
+4626 1354  -0.500000
+4626 8453   1.000000
+4627 1  -0.100000
+4627 2  -0.100000
+4627 3   0.100000
+4627 6953  -0.500000
+4627 8456   1.000000
+4628 1  -0.100000
+4628 2  -0.100000
+4628 3   0.100000
+4628 6954  -0.500000
+4628 8457   1.000000
+4629 2  -1.000000
+4629 8459   1.000000
+4630 4   0.200000
+4630 8442   0.075281
+4630 8452   0.102497
+4630 8460   1.000000
+4630 8462   0.022222
+4630 8470  -1.000000
+4631 4   0.200000
+4631 8443   0.075281
+4631 8453   0.102497
+4631 8461   1.000000
+4631 8463   0.022222
+4631 8471  -1.000000
+4632 4   0.200000
+4632 8446   0.075281
+4632 8456   0.102497
+4632 8464   1.000000
+4632 8466   0.022222
+4632 8472  -1.000000
+4633 4   0.200000
+4633 8447   0.075281
+4633 8457   0.102497
+4633 8465   1.000000
+4633 8467   0.022222
+4633 8473  -1.000000
+4634 4   0.200000
+4634 8449   0.075281
+4634 8459   0.102497
+4634 8468   1.000000
+4634 8469   0.022222
+4634 8474  -1.000000
+4635 1   4.000000
+4635 27  80.000000
+4635 29   1.000000
+4635 8357 -60.000000
+4636 1   2.000000
+4636 28  40.000000
+4636 30   1.000000
+4636 8358 -30.000000
+4637 4157 -60.000000
+4637 4227  80.000000
+4637 4229   1.000000
+4638 4158 -30.000000
+4638 4228  40.000000
+4638 4230   1.000000
+4639 3  -0.100000
+4639 1357  -0.500000
+4639 8462   1.000000
+4640 3  -0.100000
+4640 1358  -0.500000
+4640 8463   1.000000
+4641 1  -0.100000
+4641 2  -0.100000
+4641 3   0.100000
+4641 6957  -0.500000
+4641 8466   1.000000
+4642 1  -0.100000
+4642 2  -0.100000
+4642 3   0.100000
+4642 6958  -0.500000
+4642 8467   1.000000
+4643 2  -1.000000
+4643 8469   1.000000
+4644 4   0.031010
+4644 8475   1.000000
+4644 8477   0.039363
+4644 8487  -0.013107
+4644 8497   0.004754
+4644 8505  -1.000000
+4645 4   0.031010
+4645 8476   1.000000
+4645 8478   0.039363
+4645 8488  -0.013107
+4645 8498   0.004754
+4645 8506  -1.000000
+4646 4   0.031010
+4646 8479   1.000000
+4646 8481   0.039363
+4646 8491  -0.013107
+4646 8501   0.004754
+4646 8507  -1.000000
+4647 4   0.031010
+4647 8480   1.000000
+4647 8482   0.039363
+4647 8492  -0.013107
+4647 8502   0.004754
+4647 8508  -1.000000
+4648 4   0.031010
+4648 8483   1.000000
+4648 8484   0.039363
+4648 8494  -0.013107
+4648 8504   0.004754
+4648 8509  -1.000000
+4649 1   4.000000
+4649 33  80.000000
+4649 35   1.000000
+4649 8363 -60.000000
+4650 1   2.000000
+4650 34  40.000000
+4650 36   1.000000
+4650 8364 -30.000000
+4651 4163 -60.000000
+4651 4233  80.000000
+4651 4235   1.000000
+4652 4164 -30.000000
+4652 4234  40.000000
+4652 4236   1.000000
+4653 3  -0.100000
+4653 1363  -0.500000
+4653 8477   1.000000
+4654 3  -0.100000
+4654 1364  -0.500000
+4654 8478   1.000000
+4655 1  -0.100000
+4655 2  -0.100000
+4655 3   0.100000
+4655 6963  -0.500000
+4655 8481   1.000000
+4656 1  -0.100000
+4656 2  -0.100000
+4656 3   0.100000
+4656 6964  -0.500000
+4656 8482   1.000000
+4657 2  -1.000000
+4657 8484   1.000000
+4658 4   0.128990
+4658 8477   0.078885
+4658 8485   1.000000
+4658 8487   0.058415
+4658 8497  -0.008310
+4658 8505  -1.000000
+4659 4   0.128990
+4659 8478   0.078885
+4659 8486   1.000000
+4659 8488   0.058415
+4659 8498  -0.008310
+4659 8506  -1.000000
+4660 4   0.128990
+4660 8481   0.078885
+4660 8489   1.000000
+4660 8491   0.058415
+4660 8501  -0.008310
+4660 8507  -1.000000
+4661 4   0.128990
+4661 8482   0.078885
+4661 8490   1.000000
+4661 8492   0.058415
+4661 8502  -0.008310
+4661 8508  -1.000000
+4662 4   0.128990
+4662 8484   0.078885
+4662 8493   1.000000
+4662 8494   0.058415
+4662 8504  -0.008310
+4662 8509  -1.000000
+4663 1   4.000000
+4663 37  80.000000
+4663 39   1.000000
+4663 8367 -60.000000
+4664 1   2.000000
+4664 38  40.000000
+4664 40   1.000000
+4664 8368 -30.000000
+4665 4167 -60.000000
+4665 4237  80.000000
+4665 4239   1.000000
+4666 4168 -30.000000
+4666 4238  40.000000
+4666 4240   1.000000
+4667 3  -0.100000
+4667 1367  -0.500000
+4667 8487   1.000000
+4668 3  -0.100000
+4668 1368  -0.500000
+4668 8488   1.000000
+4669 1  -0.100000
+4669 2  -0.100000
+4669 3   0.100000
+4669 6967  -0.500000
+4669 8491   1.000000
+4670 1  -0.100000
+4670 2  -0.100000
+4670 3   0.100000
+4670 6968  -0.500000
+4670 8492   1.000000
+4671 2  -1.000000
+4671 8494   1.000000
+4672 4   0.200000
+4672 8477   0.075281
+4672 8487   0.102497
+4672 8495   1.000000
+4672 8497   0.022222
+4672 8505  -1.000000
+4673 4   0.200000
+4673 8478   0.075281
+4673 8488   0.102497
+4673 8496   1.000000
+4673 8498   0.022222
+4673 8506  -1.000000
+4674 4   0.200000
+4674 8481   0.075281
+4674 8491   0.102497
+4674 8499   1.000000
+4674 8501   0.022222
+4674 8507  -1.000000
+4675 4   0.200000
+4675 8482   0.075281
+4675 8492   0.102497
+4675 8500   1.000000
+4675 8502   0.022222
+4675 8508  -1.000000
+4676 4   0.200000
+4676 8484   0.075281
+4676 8494   0.102497
+4676 8503   1.000000
+4676 8504   0.022222
+4676 8509  -1.000000
+4677 1   4.000000
+4677 41  80.000000
+4677 43   1.000000
+4677 8371 -60.000000
+4678 1   2.000000
+4678 42  40.000000
+4678 44   1.000000
+4678 8372 -30.000000
+4679 4171 -60.000000
+4679 4241  80.000000
+4679 4243   1.000000
+4680 4172 -30.000000
+4680 4242  40.000000
+4680 4244   1.000000
+4681 3  -0.100000
+4681 1371  -0.500000
+4681 8497   1.000000
+4682 3  -0.100000
+4682 1372  -0.500000
+4682 8498   1.000000
+4683 1  -0.100000
+4683 2  -0.100000
+4683 3   0.100000
+4683 6971  -0.500000
+4683 8501   1.000000
+4684 1  -0.100000
+4684 2  -0.100000
+4684 3   0.100000
+4684 6972  -0.500000
+4684 8502   1.000000
+4685 2  -1.000000
+4685 8504   1.000000
+4686 4   0.031010
+4686 8510   1.000000
+4686 8512   0.039363
+4686 8522  -0.013107
+4686 8532   0.004754
+4686 8540  -1.000000
+4687 4   0.031010
+4687 8511   1.000000
+4687 8513   0.039363
+4687 8523  -0.013107
+4687 8533   0.004754
+4687 8541  -1.000000
+4688 4   0.031010
+4688 8514   1.000000
+4688 8516   0.039363
+4688 8526  -0.013107
+4688 8536   0.004754
+4688 8542  -1.000000
+4689 4   0.031010
+4689 8515   1.000000
+4689 8517   0.039363
+4689 8527  -0.013107
+4689 8537   0.004754
+4689 8543  -1.000000
+4690 4   0.031010
+4690 8518   1.000000
+4690 8519   0.039363
+4690 8529  -0.013107
+4690 8539   0.004754
+4690 8544  -1.000000
+4691 1   4.000000
+4691 47  80.000000
+4691 49   1.000000
+4691 8377 -60.000000
+4692 1   2.000000
+4692 48  40.000000
+4692 50   1.000000
+4692 8378 -30.000000
+4693 4177 -60.000000
+4693 4247  80.000000
+4693 4249   1.000000
+4694 4178 -30.000000
+4694 4248  40.000000
+4694 4250   1.000000
+4695 3  -0.100000
+4695 1377  -0.500000
+4695 8512   1.000000
+4696 3  -0.100000
+4696 1378  -0.500000
+4696 8513   1.000000
+4697 1  -0.100000
+4697 2  -0.100000
+4697 3   0.100000
+4697 6977  -0.500000
+4697 8516   1.000000
+4698 1  -0.100000
+4698 2  -0.100000
+4698 3   0.100000
+4698 6978  -0.500000
+4698 8517   1.000000
+4699 2  -1.000000
+4699 8519   1.000000
+4700 4   0.128990
+4700 8512   0.078885
+4700 8520   1.000000
+4700 8522   0.058415
+4700 8532  -0.008310
+4700 8540  -1.000000
+4701 4   0.128990
+4701 8513   0.078885
+4701 8521   1.000000
+4701 8523   0.058415
+4701 8533  -0.008310
+4701 8541  -1.000000
+4702 4   0.128990
+4702 8516   0.078885
+4702 8524   1.000000
+4702 8526   0.058415
+4702 8536  -0.008310
+4702 8542  -1.000000
+4703 4   0.128990
+4703 8517   0.078885
+4703 8525   1.000000
+4703 8527   0.058415
+4703 8537  -0.008310
+4703 8543  -1.000000
+4704 4   0.128990
+4704 8519   0.078885
+4704 8528   1.000000
+4704 8529   0.058415
+4704 8539  -0.008310
+4704 8544  -1.000000
+4705 1   4.000000
+4705 51  80.000000
+4705 53   1.000000
+4705 8381 -60.000000
+4706 1   2.000000
+4706 52  40.000000
+4706 54   1.000000
+4706 8382 -30.000000
+4707 4181 -60.000000
+4707 4251  80.000000
+4707 4253   1.000000
+4708 4182 -30.000000
+4708 4252  40.000000
+4708 4254   1.000000
+4709 3  -0.100000
+4709 1381  -0.500000
+4709 8522   1.000000
+4710 3  -0.100000
+4710 1382  -0.500000
+4710 8523   1.000000
+4711 1  -0.100000
+4711 2  -0.100000
+4711 3   0.100000
+4711 6981  -0.500000
+4711 8526   1.000000
+4712 1  -0.100000
+4712 2  -0.100000
+4712 3   0.100000
+4712 6982  -0.500000
+4712 8527   1.000000
+4713 2  -1.000000
+4713 8529   1.000000
+4714 4   0.200000
+4714 8512   0.075281
+4714 8522   0.102497
+4714 8530   1.000000
+4714 8532   0.022222
+4714 8540  -1.000000
+4715 4   0.200000
+4715 8513   0.075281
+4715 8523   0.102497
+4715 8531   1.000000
+4715 8533   0.022222
+4715 8541  -1.000000
+4716 4   0.200000
+4716 8516   0.075281
+4716 8526   0.102497
+4716 8534   1.000000
+4716 8536   0.022222
+4716 8542  -1.000000
+4717 4   0.200000
+4717 8517   0.075281
+4717 8527   0.102497
+4717 8535   1.000000
+4717 8537   0.022222
+4717 8543  -1.000000
+4718 4   0.200000
+4718 8519   0.075281
+4718 8529   0.102497
+4718 8538   1.000000
+4718 8539   0.022222
+4718 8544  -1.000000
+4719 1   4.000000
+4719 55  80.000000
+4719 57   1.000000
+4719 8385 -60.000000
+4720 1   2.000000
+4720 56  40.000000
+4720 58   1.000000
+4720 8386 -30.000000
+4721 4185 -60.000000
+4721 4255  80.000000
+4721 4257   1.000000
+4722 4186 -30.000000
+4722 4256  40.000000
+4722 4258   1.000000
+4723 3  -0.100000
+4723 1385  -0.500000
+4723 8532   1.000000
+4724 3  -0.100000
+4724 1386  -0.500000
+4724 8533   1.000000
+4725 1  -0.100000
+4725 2  -0.100000
+4725 3   0.100000
+4725 6985  -0.500000
+4725 8536   1.000000
+4726 1  -0.100000
+4726 2  -0.100000
+4726 3   0.100000
+4726 6986  -0.500000
+4726 8537   1.000000
+4727 2  -1.000000
+4727 8539   1.000000
+4728 4   0.031010
+4728 8545   1.000000
+4728 8547   0.039363
+4728 8557  -0.013107
+4728 8567   0.004754
+4728 8575  -1.000000
+4729 4   0.031010
+4729 8546   1.000000
+4729 8548   0.039363
+4729 8558  -0.013107
+4729 8568   0.004754
+4729 8576  -1.000000
+4730 4   0.031010
+4730 8549   1.000000
+4730 8551   0.039363
+4730 8561  -0.013107
+4730 8571   0.004754
+4730 8577  -1.000000
+4731 4   0.031010
+4731 8550   1.000000
+4731 8552   0.039363
+4731 8562  -0.013107
+4731 8572   0.004754
+4731 8578  -1.000000
+4732 4   0.031010
+4732 8553   1.000000
+4732 8554   0.039363
+4732 8564  -0.013107
+4732 8574   0.004754
+4732 8579  -1.000000
+4733 1   4.000000
+4733 61  80.000000
+4733 63   1.000000
+4733 8391 -60.000000
+4734 1   2.000000
+4734 62  40.000000
+4734 64   1.000000
+4734 8392 -30.000000
+4735 4191 -60.000000
+4735 4261  80.000000
+4735 4263   1.000000
+4736 4192 -30.000000
+4736 4262  40.000000
+4736 4264   1.000000
+4737 3  -0.100000
+4737 1391  -0.500000
+4737 8547   1.000000
+4738 3  -0.100000
+4738 1392  -0.500000
+4738 8548   1.000000
+4739 1  -0.100000
+4739 2  -0.100000
+4739 3   0.100000
+4739 6991  -0.500000
+4739 8551   1.000000
+4740 1  -0.100000
+4740 2  -0.100000
+4740 3   0.100000
+4740 6992  -0.500000
+4740 8552   1.000000
+4741 2  -1.000000
+4741 8554   1.000000
+4742 4   0.128990
+4742 8547   0.078885
+4742 8555   1.000000
+4742 8557   0.058415
+4742 8567  -0.008310
+4742 8575  -1.000000
+4743 4   0.128990
+4743 8548   0.078885
+4743 8556   1.000000
+4743 8558   0.058415
+4743 8568  -0.008310
+4743 8576  -1.000000
+4744 4   0.128990
+4744 8551   0.078885
+4744 8559   1.000000
+4744 8561   0.058415
+4744 8571  -0.008310
+4744 8577  -1.000000
+4745 4   0.128990
+4745 8552   0.078885
+4745 8560   1.000000
+4745 8562   0.058415
+4745 8572  -0.008310
+4745 8578  -1.000000
+4746 4   0.128990
+4746 8554   0.078885
+4746 8563   1.000000
+4746 8564   0.058415
+4746 8574  -0.008310
+4746 8579  -1.000000
+4747 1   4.000000
+4747 65  80.000000
+4747 67   1.000000
+4747 8395 -60.000000
+4748 1   2.000000
+4748 66  40.000000
+4748 68   1.000000
+4748 8396 -30.000000
+4749 4195 -60.000000
+4749 4265  80.000000
+4749 4267   1.000000
+4750 4196 -30.000000
+4750 4266  40.000000
+4750 4268   1.000000
+4751 3  -0.100000
+4751 1395  -0.500000
+4751 8557   1.000000
+4752 3  -0.100000
+4752 1396  -0.500000
+4752 8558   1.000000
+4753 1  -0.100000
+4753 2  -0.100000
+4753 3   0.100000
+4753 6995  -0.500000
+4753 8561   1.000000
+4754 1  -0.100000
+4754 2  -0.100000
+4754 3   0.100000
+4754 6996  -0.500000
+4754 8562   1.000000
+4755 2  -1.000000
+4755 8564   1.000000
+4756 4   0.200000
+4756 8547   0.075281
+4756 8557   0.102497
+4756 8565   1.000000
+4756 8567   0.022222
+4756 8575  -1.000000
+4757 4   0.200000
+4757 8548   0.075281
+4757 8558   0.102497
+4757 8566   1.000000
+4757 8568   0.022222
+4757 8576  -1.000000
+4758 4   0.200000
+4758 8551   0.075281
+4758 8561   0.102497
+4758 8569   1.000000
+4758 8571   0.022222
+4758 8577  -1.000000
+4759 4   0.200000
+4759 8552   0.075281
+4759 8562   0.102497
+4759 8570   1.000000
+4759 8572   0.022222
+4759 8578  -1.000000
+4760 4   0.200000
+4760 8554   0.075281
+4760 8564   0.102497
+4760 8573   1.000000
+4760 8574   0.022222
+4760 8579  -1.000000
+4761 1   4.000000
+4761 69  80.000000
+4761 71   1.000000
+4761 8399 -60.000000
+4762 1   2.000000
+4762 70  40.000000
+4762 72   1.000000
+4762 8400 -30.000000
+4763 4199 -60.000000
+4763 4269  80.000000
+4763 4271   1.000000
+4764 4200 -30.000000
+4764 4270  40.000000
+4764 4272   1.000000
+4765 3  -0.100000
+4765 1399  -0.500000
+4765 8567   1.000000
+4766 3  -0.100000
+4766 1400  -0.500000
+4766 8568   1.000000
+4767 1  -0.100000
+4767 2  -0.100000
+4767 3   0.100000
+4767 6999  -0.500000
+4767 8571   1.000000
+4768 1  -0.100000
+4768 2  -0.100000
+4768 3   0.100000
+4768 7000  -0.500000
+4768 8572   1.000000
+4769 2  -1.000000
+4769 8574   1.000000
+4770 4   0.200000
+4770 8407   0.075281
+4770 8417   0.102497
+4770 8427   0.022222
+4770 8435  -1.000000
+4770 8470   1.000000
+4771 4   0.200000
+4771 8408   0.075281
+4771 8418   0.102497
+4771 8428   0.022222
+4771 8436  -1.000000
+4771 8471   1.000000
+4772 4   0.200000
+4772 8411   0.075281
+4772 8421   0.102497
+4772 8431   0.022222
+4772 8437  -1.000000
+4772 8472   1.000000
+4773 4   0.200000
+4773 8412   0.075281
+4773 8422   0.102497
+4773 8432   0.022222
+4773 8438  -1.000000
+4773 8473   1.000000
+4774 4   0.200000
+4774 8414   0.075281
+4774 8424   0.102497
+4774 8434   0.022222
+4774 8439  -1.000000
+4774 8474   1.000000
+4775 4   0.200000
+4775 8442   0.075281
+4775 8452   0.102497
+4775 8462   0.022222
+4775 8470  -1.000000
+4775 8505   1.000000
+4776 4   0.200000
+4776 8443   0.075281
+4776 8453   0.102497
+4776 8463   0.022222
+4776 8471  -1.000000
+4776 8506   1.000000
+4777 4   0.200000
+4777 8446   0.075281
+4777 8456   0.102497
+4777 8466   0.022222
+4777 8472  -1.000000
+4777 8507   1.000000
+4778 4   0.200000
+4778 8447   0.075281
+4778 8457   0.102497
+4778 8467   0.022222
+4778 8473  -1.000000
+4778 8508   1.000000
+4779 4   0.200000
+4779 8449   0.075281
+4779 8459   0.102497
+4779 8469   0.022222
+4779 8474  -1.000000
+4779 8509   1.000000
+4780 4   0.200000
+4780 8477   0.075281
+4780 8487   0.102497
+4780 8497   0.022222
+4780 8505  -1.000000
+4780 8540   1.000000
+4781 4   0.200000
+4781 8478   0.075281
+4781 8488   0.102497
+4781 8498   0.022222
+4781 8506  -1.000000
+4781 8541   1.000000
+4782 4   0.200000
+4782 8481   0.075281
+4782 8491   0.102497
+4782 8501   0.022222
+4782 8507  -1.000000
+4782 8542   1.000000
+4783 4   0.200000
+4783 8482   0.075281
+4783 8492   0.102497
+4783 8502   0.022222
+4783 8508  -1.000000
+4783 8543   1.000000
+4784 4   0.200000
+4784 8484   0.075281
+4784 8494   0.102497
+4784 8504   0.022222
+4784 8509  -1.000000
+4784 8544   1.000000
+4785 4   0.200000
+4785 8512   0.075281
+4785 8522   0.102497
+4785 8532   0.022222
+4785 8540  -1.000000
+4785 8575   1.000000
+4786 4   0.200000
+4786 8513   0.075281
+4786 8523   0.102497
+4786 8533   0.022222
+4786 8541  -1.000000
+4786 8576   1.000000
+4787 4   0.200000
+4787 8516   0.075281
+4787 8526   0.102497
+4787 8536   0.022222
+4787 8542  -1.000000
+4787 8577   1.000000
+4788 4   0.200000
+4788 8517   0.075281
+4788 8527   0.102497
+4788 8537   0.022222
+4788 8543  -1.000000
+4788 8578   1.000000
+4789 4   0.200000
+4789 8519   0.075281
+4789 8529   0.102497
+4789 8539   0.022222
+4789 8544  -1.000000
+4789 8579   1.000000
+4790 5 -80.000000
+4790 75  80.000000
+4790 77   1.000000
+4791 6 -40.000000
+4791 76  40.000000
+4791 78   1.000000
+4792 9 -80.000000
+4792 79  80.000000
+4792 81   1.000000
+4793 10 -40.000000
+4793 80  40.000000
+4793 82   1.000000
+4794 13 -80.000000
+4794 83  80.000000
+4794 85   1.000000
+4795 14 -40.000000
+4795 84  40.000000
+4795 86   1.000000
+4796 19 -80.000000
+4796 89  80.000000
+4796 91   1.000000
+4797 20 -40.000000
+4797 90  40.000000
+4797 92   1.000000
+4798 23 -80.000000
+4798 93  80.000000
+4798 95   1.000000
+4799 24 -40.000000
+4799 94  40.000000
+4799 96   1.000000
+4800 27 -80.000000
+4800 97  80.000000
+4800 99   1.000000
+4801 28 -40.000000
+4801 98  40.000000
+4801 100   1.000000
+4802 33 -80.000000
+4802 103  80.000000
+4802 105   1.000000
+4803 34 -40.000000
+4803 104  40.000000
+4803 106   1.000000
+4804 37 -80.000000
+4804 107  80.000000
+4804 109   1.000000
+4805 38 -40.000000
+4805 108  40.000000
+4805 110   1.000000
+4806 41 -80.000000
+4806 111  80.000000
+4806 113   1.000000
+4807 42 -40.000000
+4807 112  40.000000
+4807 114   1.000000
+4808 47 -80.000000
+4808 117  80.000000
+4808 119   1.000000
+4809 48 -40.000000
+4809 118  40.000000
+4809 120   1.000000
+4810 51 -80.000000
+4810 121  80.000000
+4810 123   1.000000
+4811 52 -40.000000
+4811 122  40.000000
+4811 124   1.000000
+4812 55 -80.000000
+4812 125  80.000000
+4812 127   1.000000
+4813 56 -40.000000
+4813 126  40.000000
+4813 128   1.000000
+4814 61 -80.000000
+4814 131  80.000000
+4814 133   1.000000
+4815 62 -40.000000
+4815 132  40.000000
+4815 134   1.000000
+4816 65 -80.000000
+4816 135  80.000000
+4816 137   1.000000
+4817 66 -40.000000
+4817 136  40.000000
+4817 138   1.000000
+4818 69 -80.000000
+4818 139  80.000000
+4818 141   1.000000
+4819 70 -40.000000
+4819 140  40.000000
+4819 142   1.000000
+4820 75 -80.000000
+4820 145  80.000000
+4820 147   1.000000
+4821 76 -40.000000
+4821 146  40.000000
+4821 148   1.000000
+4822 79 -80.000000
+4822 149  80.000000
+4822 151   1.000000
+4823 80 -40.000000
+4823 150  40.000000
+4823 152   1.000000
+4824 83 -80.000000
+4824 153  80.000000
+4824 155   1.000000
+4825 84 -40.000000
+4825 154  40.000000
+4825 156   1.000000
+4826 89 -80.000000
+4826 159  80.000000
+4826 161   1.000000
+4827 90 -40.000000
+4827 160  40.000000
+4827 162   1.000000
+4828 93 -80.000000
+4828 163  80.000000
+4828 165   1.000000
+4829 94 -40.000000
+4829 164  40.000000
+4829 166   1.000000
+4830 97 -80.000000
+4830 167  80.000000
+4830 169   1.000000
+4831 98 -40.000000
+4831 168  40.000000
+4831 170   1.000000
+4832 103 -80.000000
+4832 173  80.000000
+4832 175   1.000000
+4833 104 -40.000000
+4833 174  40.000000
+4833 176   1.000000
+4834 107 -80.000000
+4834 177  80.000000
+4834 179   1.000000
+4835 108 -40.000000
+4835 178  40.000000
+4835 180   1.000000
+4836 111 -80.000000
+4836 181  80.000000
+4836 183   1.000000
+4837 112 -40.000000
+4837 182  40.000000
+4837 184   1.000000
+4838 117 -80.000000
+4838 187  80.000000
+4838 189   1.000000
+4839 118 -40.000000
+4839 188  40.000000
+4839 190   1.000000
+4840 121 -80.000000
+4840 191  80.000000
+4840 193   1.000000
+4841 122 -40.000000
+4841 192  40.000000
+4841 194   1.000000
+4842 125 -80.000000
+4842 195  80.000000
+4842 197   1.000000
+4843 126 -40.000000
+4843 196  40.000000
+4843 198   1.000000
+4844 131 -80.000000
+4844 201  80.000000
+4844 203   1.000000
+4845 132 -40.000000
+4845 202  40.000000
+4845 204   1.000000
+4846 135 -80.000000
+4846 205  80.000000
+4846 207   1.000000
+4847 136 -40.000000
+4847 206  40.000000
+4847 208   1.000000
+4848 139 -80.000000
+4848 209  80.000000
+4848 211   1.000000
+4849 140 -40.000000
+4849 210  40.000000
+4849 212   1.000000
+4850 145 -80.000000
+4850 215  80.000000
+4850 217   1.000000
+4851 146 -40.000000
+4851 216  40.000000
+4851 218   1.000000
+4852 149 -80.000000
+4852 219  80.000000
+4852 221   1.000000
+4853 150 -40.000000
+4853 220  40.000000
+4853 222   1.000000
+4854 153 -80.000000
+4854 223  80.000000
+4854 225   1.000000
+4855 154 -40.000000
+4855 224  40.000000
+4855 226   1.000000
+4856 159 -80.000000
+4856 229  80.000000
+4856 231   1.000000
+4857 160 -40.000000
+4857 230  40.000000
+4857 232   1.000000
+4858 163 -80.000000
+4858 233  80.000000
+4858 235   1.000000
+4859 164 -40.000000
+4859 234  40.000000
+4859 236   1.000000
+4860 167 -80.000000
+4860 237  80.000000
+4860 239   1.000000
+4861 168 -40.000000
+4861 238  40.000000
+4861 240   1.000000
+4862 173 -80.000000
+4862 243  80.000000
+4862 245   1.000000
+4863 174 -40.000000
+4863 244  40.000000
+4863 246   1.000000
+4864 177 -80.000000
+4864 247  80.000000
+4864 249   1.000000
+4865 178 -40.000000
+4865 248  40.000000
+4865 250   1.000000
+4866 181 -80.000000
+4866 251  80.000000
+4866 253   1.000000
+4867 182 -40.000000
+4867 252  40.000000
+4867 254   1.000000
+4868 187 -80.000000
+4868 257  80.000000
+4868 259   1.000000
+4869 188 -40.000000
+4869 258  40.000000
+4869 260   1.000000
+4870 191 -80.000000
+4870 261  80.000000
+4870 263   1.000000
+4871 192 -40.000000
+4871 262  40.000000
+4871 264   1.000000
+4872 195 -80.000000
+4872 265  80.000000
+4872 267   1.000000
+4873 196 -40.000000
+4873 266  40.000000
+4873 268   1.000000
+4874 201 -80.000000
+4874 271  80.000000
+4874 273   1.000000
+4875 202 -40.000000
+4875 272  40.000000
+4875 274   1.000000
+4876 205 -80.000000
+4876 275  80.000000
+4876 277   1.000000
+4877 206 -40.000000
+4877 276  40.000000
+4877 278   1.000000
+4878 209 -80.000000
+4878 279  80.000000
+4878 281   1.000000
+4879 210 -40.000000
+4879 280  40.000000
+4879 282   1.000000
+4880 215 -80.000000
+4880 285  80.000000
+4880 287   1.000000
+4881 216 -40.000000
+4881 286  40.000000
+4881 288   1.000000
+4882 219 -80.000000
+4882 289  80.000000
+4882 291   1.000000
+4883 220 -40.000000
+4883 290  40.000000
+4883 292   1.000000
+4884 223 -80.000000
+4884 293  80.000000
+4884 295   1.000000
+4885 224 -40.000000
+4885 294  40.000000
+4885 296   1.000000
+4886 229 -80.000000
+4886 299  80.000000
+4886 301   1.000000
+4887 230 -40.000000
+4887 300  40.000000
+4887 302   1.000000
+4888 233 -80.000000
+4888 303  80.000000
+4888 305   1.000000
+4889 234 -40.000000
+4889 304  40.000000
+4889 306   1.000000
+4890 237 -80.000000
+4890 307  80.000000
+4890 309   1.000000
+4891 238 -40.000000
+4891 308  40.000000
+4891 310   1.000000
+4892 243 -80.000000
+4892 313  80.000000
+4892 315   1.000000
+4893 244 -40.000000
+4893 314  40.000000
+4893 316   1.000000
+4894 247 -80.000000
+4894 317  80.000000
+4894 319   1.000000
+4895 248 -40.000000
+4895 318  40.000000
+4895 320   1.000000
+4896 251 -80.000000
+4896 321  80.000000
+4896 323   1.000000
+4897 252 -40.000000
+4897 322  40.000000
+4897 324   1.000000
+4898 257 -80.000000
+4898 327  80.000000
+4898 329   1.000000
+4899 258 -40.000000
+4899 328  40.000000
+4899 330   1.000000
+4900 261 -80.000000
+4900 331  80.000000
+4900 333   1.000000
+4901 262 -40.000000
+4901 332  40.000000
+4901 334   1.000000
+4902 265 -80.000000
+4902 335  80.000000
+4902 337   1.000000
+4903 266 -40.000000
+4903 336  40.000000
+4903 338   1.000000
+4904 271 -80.000000
+4904 341  80.000000
+4904 343   1.000000
+4905 272 -40.000000
+4905 342  40.000000
+4905 344   1.000000
+4906 275 -80.000000
+4906 345  80.000000
+4906 347   1.000000
+4907 276 -40.000000
+4907 346  40.000000
+4907 348   1.000000
+4908 279 -80.000000
+4908 349  80.000000
+4908 351   1.000000
+4909 280 -40.000000
+4909 350  40.000000
+4909 352   1.000000
+4910 285 -80.000000
+4910 355  80.000000
+4910 357   1.000000
+4911 286 -40.000000
+4911 356  40.000000
+4911 358   1.000000
+4912 289 -80.000000
+4912 359  80.000000
+4912 361   1.000000
+4913 290 -40.000000
+4913 360  40.000000
+4913 362   1.000000
+4914 293 -80.000000
+4914 363  80.000000
+4914 365   1.000000
+4915 294 -40.000000
+4915 364  40.000000
+4915 366   1.000000
+4916 299 -80.000000
+4916 369  80.000000
+4916 371   1.000000
+4917 300 -40.000000
+4917 370  40.000000
+4917 372   1.000000
+4918 303 -80.000000
+4918 373  80.000000
+4918 375   1.000000
+4919 304 -40.000000
+4919 374  40.000000
+4919 376   1.000000
+4920 307 -80.000000
+4920 377  80.000000
+4920 379   1.000000
+4921 308 -40.000000
+4921 378  40.000000
+4921 380   1.000000
+4922 313 -80.000000
+4922 383  80.000000
+4922 385   1.000000
+4923 314 -40.000000
+4923 384  40.000000
+4923 386   1.000000
+4924 317 -80.000000
+4924 387  80.000000
+4924 389   1.000000
+4925 318 -40.000000
+4925 388  40.000000
+4925 390   1.000000
+4926 321 -80.000000
+4926 391  80.000000
+4926 393   1.000000
+4927 322 -40.000000
+4927 392  40.000000
+4927 394   1.000000
+4928 327 -80.000000
+4928 397  80.000000
+4928 399   1.000000
+4929 328 -40.000000
+4929 398  40.000000
+4929 400   1.000000
+4930 331 -80.000000
+4930 401  80.000000
+4930 403   1.000000
+4931 332 -40.000000
+4931 402  40.000000
+4931 404   1.000000
+4932 335 -80.000000
+4932 405  80.000000
+4932 407   1.000000
+4933 336 -40.000000
+4933 406  40.000000
+4933 408   1.000000
+4934 341 -80.000000
+4934 411  80.000000
+4934 413   1.000000
+4935 342 -40.000000
+4935 412  40.000000
+4935 414   1.000000
+4936 345 -80.000000
+4936 415  80.000000
+4936 417   1.000000
+4937 346 -40.000000
+4937 416  40.000000
+4937 418   1.000000
+4938 349 -80.000000
+4938 419  80.000000
+4938 421   1.000000
+4939 350 -40.000000
+4939 420  40.000000
+4939 422   1.000000
+4940 355 -80.000000
+4940 425  80.000000
+4940 427   1.000000
+4941 356 -40.000000
+4941 426  40.000000
+4941 428   1.000000
+4942 359 -80.000000
+4942 429  80.000000
+4942 431   1.000000
+4943 360 -40.000000
+4943 430  40.000000
+4943 432   1.000000
+4944 363 -80.000000
+4944 433  80.000000
+4944 435   1.000000
+4945 364 -40.000000
+4945 434  40.000000
+4945 436   1.000000
+4946 369 -80.000000
+4946 439  80.000000
+4946 441   1.000000
+4947 370 -40.000000
+4947 440  40.000000
+4947 442   1.000000
+4948 373 -80.000000
+4948 443  80.000000
+4948 445   1.000000
+4949 374 -40.000000
+4949 444  40.000000
+4949 446   1.000000
+4950 377 -80.000000
+4950 447  80.000000
+4950 449   1.000000
+4951 378 -40.000000
+4951 448  40.000000
+4951 450   1.000000
+4952 383 -80.000000
+4952 453  80.000000
+4952 455   1.000000
+4953 384 -40.000000
+4953 454  40.000000
+4953 456   1.000000
+4954 387 -80.000000
+4954 457  80.000000
+4954 459   1.000000
+4955 388 -40.000000
+4955 458  40.000000
+4955 460   1.000000
+4956 391 -80.000000
+4956 461  80.000000
+4956 463   1.000000
+4957 392 -40.000000
+4957 462  40.000000
+4957 464   1.000000
+4958 397 -80.000000
+4958 467  80.000000
+4958 469   1.000000
+4959 398 -40.000000
+4959 468  40.000000
+4959 470   1.000000
+4960 401 -80.000000
+4960 471  80.000000
+4960 473   1.000000
+4961 402 -40.000000
+4961 472  40.000000
+4961 474   1.000000
+4962 405 -80.000000
+4962 475  80.000000
+4962 477   1.000000
+4963 406 -40.000000
+4963 476  40.000000
+4963 478   1.000000
+4964 411 -80.000000
+4964 481  80.000000
+4964 483   1.000000
+4965 412 -40.000000
+4965 482  40.000000
+4965 484   1.000000
+4966 415 -80.000000
+4966 485  80.000000
+4966 487   1.000000
+4967 416 -40.000000
+4967 486  40.000000
+4967 488   1.000000
+4968 419 -80.000000
+4968 489  80.000000
+4968 491   1.000000
+4969 420 -40.000000
+4969 490  40.000000
+4969 492   1.000000
+4970 425 -80.000000
+4970 495  80.000000
+4970 497   1.000000
+4971 426 -40.000000
+4971 496  40.000000
+4971 498   1.000000
+4972 429 -80.000000
+4972 499  80.000000
+4972 501   1.000000
+4973 430 -40.000000
+4973 500  40.000000
+4973 502   1.000000
+4974 433 -80.000000
+4974 503  80.000000
+4974 505   1.000000
+4975 434 -40.000000
+4975 504  40.000000
+4975 506   1.000000
+4976 439 -80.000000
+4976 509  80.000000
+4976 511   1.000000
+4977 440 -40.000000
+4977 510  40.000000
+4977 512   1.000000
+4978 443 -80.000000
+4978 513  80.000000
+4978 515   1.000000
+4979 444 -40.000000
+4979 514  40.000000
+4979 516   1.000000
+4980 447 -80.000000
+4980 517  80.000000
+4980 519   1.000000
+4981 448 -40.000000
+4981 518  40.000000
+4981 520   1.000000
+4982 453 -80.000000
+4982 523  80.000000
+4982 525   1.000000
+4983 454 -40.000000
+4983 524  40.000000
+4983 526   1.000000
+4984 457 -80.000000
+4984 527  80.000000
+4984 529   1.000000
+4985 458 -40.000000
+4985 528  40.000000
+4985 530   1.000000
+4986 461 -80.000000
+4986 531  80.000000
+4986 533   1.000000
+4987 462 -40.000000
+4987 532  40.000000
+4987 534   1.000000
+4988 467 -80.000000
+4988 537  80.000000
+4988 539   1.000000
+4989 468 -40.000000
+4989 538  40.000000
+4989 540   1.000000
+4990 471 -80.000000
+4990 541  80.000000
+4990 543   1.000000
+4991 472 -40.000000
+4991 542  40.000000
+4991 544   1.000000
+4992 475 -80.000000
+4992 545  80.000000
+4992 547   1.000000
+4993 476 -40.000000
+4993 546  40.000000
+4993 548   1.000000
+4994 481 -80.000000
+4994 551  80.000000
+4994 553   1.000000
+4995 482 -40.000000
+4995 552  40.000000
+4995 554   1.000000
+4996 485 -80.000000
+4996 555  80.000000
+4996 557   1.000000
+4997 486 -40.000000
+4997 556  40.000000
+4997 558   1.000000
+4998 489 -80.000000
+4998 559  80.000000
+4998 561   1.000000
+4999 490 -40.000000
+4999 560  40.000000
+4999 562   1.000000
+5000 495 -80.000000
+5000 565  80.000000
+5000 567   1.000000
+5001 496 -40.000000
+5001 566  40.000000
+5001 568   1.000000
+5002 499 -80.000000
+5002 569  80.000000
+5002 571   1.000000
+5003 500 -40.000000
+5003 570  40.000000
+5003 572   1.000000
+5004 503 -80.000000
+5004 573  80.000000
+5004 575   1.000000
+5005 504 -40.000000
+5005 574  40.000000
+5005 576   1.000000
+5006 509 -80.000000
+5006 579  80.000000
+5006 581   1.000000
+5007 510 -40.000000
+5007 580  40.000000
+5007 582   1.000000
+5008 513 -80.000000
+5008 583  80.000000
+5008 585   1.000000
+5009 514 -40.000000
+5009 584  40.000000
+5009 586   1.000000
+5010 517 -80.000000
+5010 587  80.000000
+5010 589   1.000000
+5011 518 -40.000000
+5011 588  40.000000
+5011 590   1.000000
+5012 523 -80.000000
+5012 593  80.000000
+5012 595   1.000000
+5013 524 -40.000000
+5013 594  40.000000
+5013 596   1.000000
+5014 527 -80.000000
+5014 597  80.000000
+5014 599   1.000000
+5015 528 -40.000000
+5015 598  40.000000
+5015 600   1.000000
+5016 531 -80.000000
+5016 601  80.000000
+5016 603   1.000000
+5017 532 -40.000000
+5017 602  40.000000
+5017 604   1.000000
+5018 537 -80.000000
+5018 607  80.000000
+5018 609   1.000000
+5019 538 -40.000000
+5019 608  40.000000
+5019 610   1.000000
+5020 541 -80.000000
+5020 611  80.000000
+5020 613   1.000000
+5021 542 -40.000000
+5021 612  40.000000
+5021 614   1.000000
+5022 545 -80.000000
+5022 615  80.000000
+5022 617   1.000000
+5023 546 -40.000000
+5023 616  40.000000
+5023 618   1.000000
+5024 551 -80.000000
+5024 621  80.000000
+5024 623   1.000000
+5025 552 -40.000000
+5025 622  40.000000
+5025 624   1.000000
+5026 555 -80.000000
+5026 625  80.000000
+5026 627   1.000000
+5027 556 -40.000000
+5027 626  40.000000
+5027 628   1.000000
+5028 559 -80.000000
+5028 629  80.000000
+5028 631   1.000000
+5029 560 -40.000000
+5029 630  40.000000
+5029 632   1.000000
+5030 565 -80.000000
+5030 635  80.000000
+5030 637   1.000000
+5031 566 -40.000000
+5031 636  40.000000
+5031 638   1.000000
+5032 569 -80.000000
+5032 639  80.000000
+5032 641   1.000000
+5033 570 -40.000000
+5033 640  40.000000
+5033 642   1.000000
+5034 573 -80.000000
+5034 643  80.000000
+5034 645   1.000000
+5035 574 -40.000000
+5035 644  40.000000
+5035 646   1.000000
+5036 579 -80.000000
+5036 649  80.000000
+5036 651   1.000000
+5037 580 -40.000000
+5037 650  40.000000
+5037 652   1.000000
+5038 583 -80.000000
+5038 653  80.000000
+5038 655   1.000000
+5039 584 -40.000000
+5039 654  40.000000
+5039 656   1.000000
+5040 587 -80.000000
+5040 657  80.000000
+5040 659   1.000000
+5041 588 -40.000000
+5041 658  40.000000
+5041 660   1.000000
+5042 593 -80.000000
+5042 663  80.000000
+5042 665   1.000000
+5043 594 -40.000000
+5043 664  40.000000
+5043 666   1.000000
+5044 597 -80.000000
+5044 667  80.000000
+5044 669   1.000000
+5045 598 -40.000000
+5045 668  40.000000
+5045 670   1.000000
+5046 601 -80.000000
+5046 671  80.000000
+5046 673   1.000000
+5047 602 -40.000000
+5047 672  40.000000
+5047 674   1.000000
+5048 607 -80.000000
+5048 677  80.000000
+5048 679   1.000000
+5049 608 -40.000000
+5049 678  40.000000
+5049 680   1.000000
+5050 611 -80.000000
+5050 681  80.000000
+5050 683   1.000000
+5051 612 -40.000000
+5051 682  40.000000
+5051 684   1.000000
+5052 615 -80.000000
+5052 685  80.000000
+5052 687   1.000000
+5053 616 -40.000000
+5053 686  40.000000
+5053 688   1.000000
+5054 621 -80.000000
+5054 691  80.000000
+5054 693   1.000000
+5055 622 -40.000000
+5055 692  40.000000
+5055 694   1.000000
+5056 625 -80.000000
+5056 695  80.000000
+5056 697   1.000000
+5057 626 -40.000000
+5057 696  40.000000
+5057 698   1.000000
+5058 629 -80.000000
+5058 699  80.000000
+5058 701   1.000000
+5059 630 -40.000000
+5059 700  40.000000
+5059 702   1.000000
+5060 635 -80.000000
+5060 705  80.000000
+5060 707   1.000000
+5061 636 -40.000000
+5061 706  40.000000
+5061 708   1.000000
+5062 639 -80.000000
+5062 709  80.000000
+5062 711   1.000000
+5063 640 -40.000000
+5063 710  40.000000
+5063 712   1.000000
+5064 643 -80.000000
+5064 713  80.000000
+5064 715   1.000000
+5065 644 -40.000000
+5065 714  40.000000
+5065 716   1.000000
+5066 649 -80.000000
+5066 719  80.000000
+5066 721   1.000000
+5067 650 -40.000000
+5067 720  40.000000
+5067 722   1.000000
+5068 653 -80.000000
+5068 723  80.000000
+5068 725   1.000000
+5069 654 -40.000000
+5069 724  40.000000
+5069 726   1.000000
+5070 657 -80.000000
+5070 727  80.000000
+5070 729   1.000000
+5071 658 -40.000000
+5071 728  40.000000
+5071 730   1.000000
+5072 663 -80.000000
+5072 733  80.000000
+5072 735   1.000000
+5073 664 -40.000000
+5073 734  40.000000
+5073 736   1.000000
+5074 667 -80.000000
+5074 737  80.000000
+5074 739   1.000000
+5075 668 -40.000000
+5075 738  40.000000
+5075 740   1.000000
+5076 671 -80.000000
+5076 741  80.000000
+5076 743   1.000000
+5077 672 -40.000000
+5077 742  40.000000
+5077 744   1.000000
+5078 677 -80.000000
+5078 747  80.000000
+5078 749   1.000000
+5079 678 -40.000000
+5079 748  40.000000
+5079 750   1.000000
+5080 681 -80.000000
+5080 751  80.000000
+5080 753   1.000000
+5081 682 -40.000000
+5081 752  40.000000
+5081 754   1.000000
+5082 685 -80.000000
+5082 755  80.000000
+5082 757   1.000000
+5083 686 -40.000000
+5083 756  40.000000
+5083 758   1.000000
+5084 691 -80.000000
+5084 761  80.000000
+5084 763   1.000000
+5085 692 -40.000000
+5085 762  40.000000
+5085 764   1.000000
+5086 695 -80.000000
+5086 765  80.000000
+5086 767   1.000000
+5087 696 -40.000000
+5087 766  40.000000
+5087 768   1.000000
+5088 699 -80.000000
+5088 769  80.000000
+5088 771   1.000000
+5089 700 -40.000000
+5089 770  40.000000
+5089 772   1.000000
+5090 705 -80.000000
+5090 775  80.000000
+5090 777   1.000000
+5091 706 -40.000000
+5091 776  40.000000
+5091 778   1.000000
+5092 709 -80.000000
+5092 779  80.000000
+5092 781   1.000000
+5093 710 -40.000000
+5093 780  40.000000
+5093 782   1.000000
+5094 713 -80.000000
+5094 783  80.000000
+5094 785   1.000000
+5095 714 -40.000000
+5095 784  40.000000
+5095 786   1.000000
+5096 719 -80.000000
+5096 789  80.000000
+5096 791   1.000000
+5097 720 -40.000000
+5097 790  40.000000
+5097 792   1.000000
+5098 723 -80.000000
+5098 793  80.000000
+5098 795   1.000000
+5099 724 -40.000000
+5099 794  40.000000
+5099 796   1.000000
+5100 727 -80.000000
+5100 797  80.000000
+5100 799   1.000000
+5101 728 -40.000000
+5101 798  40.000000
+5101 800   1.000000
+5102 733 -80.000000
+5102 803  80.000000
+5102 805   1.000000
+5103 734 -40.000000
+5103 804  40.000000
+5103 806   1.000000
+5104 737 -80.000000
+5104 807  80.000000
+5104 809   1.000000
+5105 738 -40.000000
+5105 808  40.000000
+5105 810   1.000000
+5106 741 -80.000000
+5106 811  80.000000
+5106 813   1.000000
+5107 742 -40.000000
+5107 812  40.000000
+5107 814   1.000000
+5108 747 -80.000000
+5108 817  80.000000
+5108 819   1.000000
+5109 748 -40.000000
+5109 818  40.000000
+5109 820   1.000000
+5110 751 -80.000000
+5110 821  80.000000
+5110 823   1.000000
+5111 752 -40.000000
+5111 822  40.000000
+5111 824   1.000000
+5112 755 -80.000000
+5112 825  80.000000
+5112 827   1.000000
+5113 756 -40.000000
+5113 826  40.000000
+5113 828   1.000000
+5114 761 -80.000000
+5114 831  80.000000
+5114 833   1.000000
+5115 762 -40.000000
+5115 832  40.000000
+5115 834   1.000000
+5116 765 -80.000000
+5116 835  80.000000
+5116 837   1.000000
+5117 766 -40.000000
+5117 836  40.000000
+5117 838   1.000000
+5118 769 -80.000000
+5118 839  80.000000
+5118 841   1.000000
+5119 770 -40.000000
+5119 840  40.000000
+5119 842   1.000000
+5120 775 -80.000000
+5120 845  80.000000
+5120 847   1.000000
+5121 776 -40.000000
+5121 846  40.000000
+5121 848   1.000000
+5122 779 -80.000000
+5122 849  80.000000
+5122 851   1.000000
+5123 780 -40.000000
+5123 850  40.000000
+5123 852   1.000000
+5124 783 -80.000000
+5124 853  80.000000
+5124 855   1.000000
+5125 784 -40.000000
+5125 854  40.000000
+5125 856   1.000000
+5126 789 -80.000000
+5126 859  80.000000
+5126 861   1.000000
+5127 790 -40.000000
+5127 860  40.000000
+5127 862   1.000000
+5128 793 -80.000000
+5128 863  80.000000
+5128 865   1.000000
+5129 794 -40.000000
+5129 864  40.000000
+5129 866   1.000000
+5130 797 -80.000000
+5130 867  80.000000
+5130 869   1.000000
+5131 798 -40.000000
+5131 868  40.000000
+5131 870   1.000000
+5132 803 -80.000000
+5132 873  80.000000
+5132 875   1.000000
+5133 804 -40.000000
+5133 874  40.000000
+5133 876   1.000000
+5134 807 -80.000000
+5134 877  80.000000
+5134 879   1.000000
+5135 808 -40.000000
+5135 878  40.000000
+5135 880   1.000000
+5136 811 -80.000000
+5136 881  80.000000
+5136 883   1.000000
+5137 812 -40.000000
+5137 882  40.000000
+5137 884   1.000000
+5138 817 -80.000000
+5138 887  80.000000
+5138 889   1.000000
+5139 818 -40.000000
+5139 888  40.000000
+5139 890   1.000000
+5140 821 -80.000000
+5140 891  80.000000
+5140 893   1.000000
+5141 822 -40.000000
+5141 892  40.000000
+5141 894   1.000000
+5142 825 -80.000000
+5142 895  80.000000
+5142 897   1.000000
+5143 826 -40.000000
+5143 896  40.000000
+5143 898   1.000000
+5144 831 -80.000000
+5144 901  80.000000
+5144 903   1.000000
+5145 832 -40.000000
+5145 902  40.000000
+5145 904   1.000000
+5146 835 -80.000000
+5146 905  80.000000
+5146 907   1.000000
+5147 836 -40.000000
+5147 906  40.000000
+5147 908   1.000000
+5148 839 -80.000000
+5148 909  80.000000
+5148 911   1.000000
+5149 840 -40.000000
+5149 910  40.000000
+5149 912   1.000000
+5150 845 -80.000000
+5150 915  80.000000
+5150 917   1.000000
+5151 846 -40.000000
+5151 916  40.000000
+5151 918   1.000000
+5152 849 -80.000000
+5152 919  80.000000
+5152 921   1.000000
+5153 850 -40.000000
+5153 920  40.000000
+5153 922   1.000000
+5154 853 -80.000000
+5154 923  80.000000
+5154 925   1.000000
+5155 854 -40.000000
+5155 924  40.000000
+5155 926   1.000000
+5156 859 -80.000000
+5156 929  80.000000
+5156 931   1.000000
+5157 860 -40.000000
+5157 930  40.000000
+5157 932   1.000000
+5158 863 -80.000000
+5158 933  80.000000
+5158 935   1.000000
+5159 864 -40.000000
+5159 934  40.000000
+5159 936   1.000000
+5160 867 -80.000000
+5160 937  80.000000
+5160 939   1.000000
+5161 868 -40.000000
+5161 938  40.000000
+5161 940   1.000000
+5162 873 -80.000000
+5162 943  80.000000
+5162 945   1.000000
+5163 874 -40.000000
+5163 944  40.000000
+5163 946   1.000000
+5164 877 -80.000000
+5164 947  80.000000
+5164 949   1.000000
+5165 878 -40.000000
+5165 948  40.000000
+5165 950   1.000000
+5166 881 -80.000000
+5166 951  80.000000
+5166 953   1.000000
+5167 882 -40.000000
+5167 952  40.000000
+5167 954   1.000000
+5168 887 -80.000000
+5168 957  80.000000
+5168 959   1.000000
+5169 888 -40.000000
+5169 958  40.000000
+5169 960   1.000000
+5170 891 -80.000000
+5170 961  80.000000
+5170 963   1.000000
+5171 892 -40.000000
+5171 962  40.000000
+5171 964   1.000000
+5172 895 -80.000000
+5172 965  80.000000
+5172 967   1.000000
+5173 896 -40.000000
+5173 966  40.000000
+5173 968   1.000000
+5174 901 -80.000000
+5174 971  80.000000
+5174 973   1.000000
+5175 902 -40.000000
+5175 972  40.000000
+5175 974   1.000000
+5176 905 -80.000000
+5176 975  80.000000
+5176 977   1.000000
+5177 906 -40.000000
+5177 976  40.000000
+5177 978   1.000000
+5178 909 -80.000000
+5178 979  80.000000
+5178 981   1.000000
+5179 910 -40.000000
+5179 980  40.000000
+5179 982   1.000000
+5180 915 -80.000000
+5180 985  80.000000
+5180 987   1.000000
+5181 916 -40.000000
+5181 986  40.000000
+5181 988   1.000000
+5182 919 -80.000000
+5182 989  80.000000
+5182 991   1.000000
+5183 920 -40.000000
+5183 990  40.000000
+5183 992   1.000000
+5184 923 -80.000000
+5184 993  80.000000
+5184 995   1.000000
+5185 924 -40.000000
+5185 994  40.000000
+5185 996   1.000000
+5186 929 -80.000000
+5186 999  80.000000
+5186 1001   1.000000
+5187 930 -40.000000
+5187 1000  40.000000
+5187 1002   1.000000
+5188 933 -80.000000
+5188 1003  80.000000
+5188 1005   1.000000
+5189 934 -40.000000
+5189 1004  40.000000
+5189 1006   1.000000
+5190 937 -80.000000
+5190 1007  80.000000
+5190 1009   1.000000
+5191 938 -40.000000
+5191 1008  40.000000
+5191 1010   1.000000
+5192 943 -80.000000
+5192 1013  80.000000
+5192 1015   1.000000
+5193 944 -40.000000
+5193 1014  40.000000
+5193 1016   1.000000
+5194 947 -80.000000
+5194 1017  80.000000
+5194 1019   1.000000
+5195 948 -40.000000
+5195 1018  40.000000
+5195 1020   1.000000
+5196 951 -80.000000
+5196 1021  80.000000
+5196 1023   1.000000
+5197 952 -40.000000
+5197 1022  40.000000
+5197 1024   1.000000
+5198 957 -80.000000
+5198 1027  80.000000
+5198 1029   1.000000
+5199 958 -40.000000
+5199 1028  40.000000
+5199 1030   1.000000
+5200 961 -80.000000
+5200 1031  80.000000
+5200 1033   1.000000
+5201 962 -40.000000
+5201 1032  40.000000
+5201 1034   1.000000
+5202 965 -80.000000
+5202 1035  80.000000
+5202 1037   1.000000
+5203 966 -40.000000
+5203 1036  40.000000
+5203 1038   1.000000
+5204 971 -80.000000
+5204 1041  80.000000
+5204 1043   1.000000
+5205 972 -40.000000
+5205 1042  40.000000
+5205 1044   1.000000
+5206 975 -80.000000
+5206 1045  80.000000
+5206 1047   1.000000
+5207 976 -40.000000
+5207 1046  40.000000
+5207 1048   1.000000
+5208 979 -80.000000
+5208 1049  80.000000
+5208 1051   1.000000
+5209 980 -40.000000
+5209 1050  40.000000
+5209 1052   1.000000
+5210 985 -80.000000
+5210 1055  80.000000
+5210 1057   1.000000
+5211 986 -40.000000
+5211 1056  40.000000
+5211 1058   1.000000
+5212 989 -80.000000
+5212 1059  80.000000
+5212 1061   1.000000
+5213 990 -40.000000
+5213 1060  40.000000
+5213 1062   1.000000
+5214 993 -80.000000
+5214 1063  80.000000
+5214 1065   1.000000
+5215 994 -40.000000
+5215 1064  40.000000
+5215 1066   1.000000
+5216 999 -80.000000
+5216 1069  80.000000
+5216 1071   1.000000
+5217 1000 -40.000000
+5217 1070  40.000000
+5217 1072   1.000000
+5218 1003 -80.000000
+5218 1073  80.000000
+5218 1075   1.000000
+5219 1004 -40.000000
+5219 1074  40.000000
+5219 1076   1.000000
+5220 1007 -80.000000
+5220 1077  80.000000
+5220 1079   1.000000
+5221 1008 -40.000000
+5221 1078  40.000000
+5221 1080   1.000000
+5222 1013 -80.000000
+5222 1083  80.000000
+5222 1085   1.000000
+5223 1014 -40.000000
+5223 1084  40.000000
+5223 1086   1.000000
+5224 1017 -80.000000
+5224 1087  80.000000
+5224 1089   1.000000
+5225 1018 -40.000000
+5225 1088  40.000000
+5225 1090   1.000000
+5226 1021 -80.000000
+5226 1091  80.000000
+5226 1093   1.000000
+5227 1022 -40.000000
+5227 1092  40.000000
+5227 1094   1.000000
+5228 1027 -80.000000
+5228 1097  80.000000
+5228 1099   1.000000
+5229 1028 -40.000000
+5229 1098  40.000000
+5229 1100   1.000000
+5230 1031 -80.000000
+5230 1101  80.000000
+5230 1103   1.000000
+5231 1032 -40.000000
+5231 1102  40.000000
+5231 1104   1.000000
+5232 1035 -80.000000
+5232 1105  80.000000
+5232 1107   1.000000
+5233 1036 -40.000000
+5233 1106  40.000000
+5233 1108   1.000000
+5234 1041 -80.000000
+5234 1111  80.000000
+5234 1113   1.000000
+5235 1042 -40.000000
+5235 1112  40.000000
+5235 1114   1.000000
+5236 1045 -80.000000
+5236 1115  80.000000
+5236 1117   1.000000
+5237 1046 -40.000000
+5237 1116  40.000000
+5237 1118   1.000000
+5238 1049 -80.000000
+5238 1119  80.000000
+5238 1121   1.000000
+5239 1050 -40.000000
+5239 1120  40.000000
+5239 1122   1.000000
+5240 1055 -80.000000
+5240 1125  80.000000
+5240 1127   1.000000
+5241 1056 -40.000000
+5241 1126  40.000000
+5241 1128   1.000000
+5242 1059 -80.000000
+5242 1129  80.000000
+5242 1131   1.000000
+5243 1060 -40.000000
+5243 1130  40.000000
+5243 1132   1.000000
+5244 1063 -80.000000
+5244 1133  80.000000
+5244 1135   1.000000
+5245 1064 -40.000000
+5245 1134  40.000000
+5245 1136   1.000000
+5246 1069 -80.000000
+5246 1139  80.000000
+5246 1141   1.000000
+5247 1070 -40.000000
+5247 1140  40.000000
+5247 1142   1.000000
+5248 1073 -80.000000
+5248 1143  80.000000
+5248 1145   1.000000
+5249 1074 -40.000000
+5249 1144  40.000000
+5249 1146   1.000000
+5250 1077 -80.000000
+5250 1147  80.000000
+5250 1149   1.000000
+5251 1078 -40.000000
+5251 1148  40.000000
+5251 1150   1.000000
+5252 1083 -80.000000
+5252 1153  80.000000
+5252 1155   1.000000
+5253 1084 -40.000000
+5253 1154  40.000000
+5253 1156   1.000000
+5254 1087 -80.000000
+5254 1157  80.000000
+5254 1159   1.000000
+5255 1088 -40.000000
+5255 1158  40.000000
+5255 1160   1.000000
+5256 1091 -80.000000
+5256 1161  80.000000
+5256 1163   1.000000
+5257 1092 -40.000000
+5257 1162  40.000000
+5257 1164   1.000000
+5258 1097 -80.000000
+5258 1167  80.000000
+5258 1169   1.000000
+5259 1098 -40.000000
+5259 1168  40.000000
+5259 1170   1.000000
+5260 1101 -80.000000
+5260 1171  80.000000
+5260 1173   1.000000
+5261 1102 -40.000000
+5261 1172  40.000000
+5261 1174   1.000000
+5262 1105 -80.000000
+5262 1175  80.000000
+5262 1177   1.000000
+5263 1106 -40.000000
+5263 1176  40.000000
+5263 1178   1.000000
+5264 1111 -80.000000
+5264 1181  80.000000
+5264 1183   1.000000
+5265 1112 -40.000000
+5265 1182  40.000000
+5265 1184   1.000000
+5266 1115 -80.000000
+5266 1185  80.000000
+5266 1187   1.000000
+5267 1116 -40.000000
+5267 1186  40.000000
+5267 1188   1.000000
+5268 1119 -80.000000
+5268 1189  80.000000
+5268 1191   1.000000
+5269 1120 -40.000000
+5269 1190  40.000000
+5269 1192   1.000000
+5270 1125 -80.000000
+5270 1195  80.000000
+5270 1197   1.000000
+5271 1126 -40.000000
+5271 1196  40.000000
+5271 1198   1.000000
+5272 1129 -80.000000
+5272 1199  80.000000
+5272 1201   1.000000
+5273 1130 -40.000000
+5273 1200  40.000000
+5273 1202   1.000000
+5274 1133 -80.000000
+5274 1203  80.000000
+5274 1205   1.000000
+5275 1134 -40.000000
+5275 1204  40.000000
+5275 1206   1.000000
+5276 1139 -80.000000
+5276 1209  80.000000
+5276 1211   1.000000
+5277 1140 -40.000000
+5277 1210  40.000000
+5277 1212   1.000000
+5278 1143 -80.000000
+5278 1213  80.000000
+5278 1215   1.000000
+5279 1144 -40.000000
+5279 1214  40.000000
+5279 1216   1.000000
+5280 1147 -80.000000
+5280 1217  80.000000
+5280 1219   1.000000
+5281 1148 -40.000000
+5281 1218  40.000000
+5281 1220   1.000000
+5282 1153 -80.000000
+5282 1223  80.000000
+5282 1225   1.000000
+5283 1154 -40.000000
+5283 1224  40.000000
+5283 1226   1.000000
+5284 1157 -80.000000
+5284 1227  80.000000
+5284 1229   1.000000
+5285 1158 -40.000000
+5285 1228  40.000000
+5285 1230   1.000000
+5286 1161 -80.000000
+5286 1231  80.000000
+5286 1233   1.000000
+5287 1162 -40.000000
+5287 1232  40.000000
+5287 1234   1.000000
+5288 1167 -80.000000
+5288 1237  80.000000
+5288 1239   1.000000
+5289 1168 -40.000000
+5289 1238  40.000000
+5289 1240   1.000000
+5290 1171 -80.000000
+5290 1241  80.000000
+5290 1243   1.000000
+5291 1172 -40.000000
+5291 1242  40.000000
+5291 1244   1.000000
+5292 1175 -80.000000
+5292 1245  80.000000
+5292 1247   1.000000
+5293 1176 -40.000000
+5293 1246  40.000000
+5293 1248   1.000000
+5294 1181 -80.000000
+5294 1251  80.000000
+5294 1253   1.000000
+5295 1182 -40.000000
+5295 1252  40.000000
+5295 1254   1.000000
+5296 1185 -80.000000
+5296 1255  80.000000
+5296 1257   1.000000
+5297 1186 -40.000000
+5297 1256  40.000000
+5297 1258   1.000000
+5298 1189 -80.000000
+5298 1259  80.000000
+5298 1261   1.000000
+5299 1190 -40.000000
+5299 1260  40.000000
+5299 1262   1.000000
+5300 1195 -80.000000
+5300 1265  80.000000
+5300 1267   1.000000
+5301 1196 -40.000000
+5301 1266  40.000000
+5301 1268   1.000000
+5302 1199 -80.000000
+5302 1269  80.000000
+5302 1271   1.000000
+5303 1200 -40.000000
+5303 1270  40.000000
+5303 1272   1.000000
+5304 1203 -80.000000
+5304 1273  80.000000
+5304 1275   1.000000
+5305 1204 -40.000000
+5305 1274  40.000000
+5305 1276   1.000000
+5306 1209 -80.000000
+5306 1279  80.000000
+5306 1281   1.000000
+5307 1210 -40.000000
+5307 1280  40.000000
+5307 1282   1.000000
+5308 1213 -80.000000
+5308 1283  80.000000
+5308 1285   1.000000
+5309 1214 -40.000000
+5309 1284  40.000000
+5309 1286   1.000000
+5310 1217 -80.000000
+5310 1287  80.000000
+5310 1289   1.000000
+5311 1218 -40.000000
+5311 1288  40.000000
+5311 1290   1.000000
+5312 1223 -80.000000
+5312 1293  80.000000
+5312 1295   1.000000
+5313 1224 -40.000000
+5313 1294  40.000000
+5313 1296   1.000000
+5314 1227 -80.000000
+5314 1297  80.000000
+5314 1299   1.000000
+5315 1228 -40.000000
+5315 1298  40.000000
+5315 1300   1.000000
+5316 1231 -80.000000
+5316 1301  80.000000
+5316 1303   1.000000
+5317 1232 -40.000000
+5317 1302  40.000000
+5317 1304   1.000000
+5318 1237 -80.000000
+5318 1307  80.000000
+5318 1309   1.000000
+5319 1238 -40.000000
+5319 1308  40.000000
+5319 1310   1.000000
+5320 1241 -80.000000
+5320 1311  80.000000
+5320 1313   1.000000
+5321 1242 -40.000000
+5321 1312  40.000000
+5321 1314   1.000000
+5322 1245 -80.000000
+5322 1315  80.000000
+5322 1317   1.000000
+5323 1246 -40.000000
+5323 1316  40.000000
+5323 1318   1.000000
+5324 1251 -80.000000
+5324 1321  80.000000
+5324 1323   1.000000
+5325 1252 -40.000000
+5325 1322  40.000000
+5325 1324   1.000000
+5326 1255 -80.000000
+5326 1325  80.000000
+5326 1327   1.000000
+5327 1256 -40.000000
+5327 1326  40.000000
+5327 1328   1.000000
+5328 1259 -80.000000
+5328 1329  80.000000
+5328 1331   1.000000
+5329 1260 -40.000000
+5329 1330  40.000000
+5329 1332   1.000000
+5330 1265 -60.000000
+5330 1335  60.000000
+5330 1337   1.000000
+5331 1266 -30.000000
+5331 1336  30.000000
+5331 1338   1.000000
+5332 1269 -60.000000
+5332 1339  60.000000
+5332 1341   1.000000
+5333 1270 -30.000000
+5333 1340  30.000000
+5333 1342   1.000000
+5334 1273 -60.000000
+5334 1343  60.000000
+5334 1345   1.000000
+5335 1274 -30.000000
+5335 1344  30.000000
+5335 1346   1.000000
+5336 1279 -60.000000
+5336 1349  60.000000
+5336 1351   1.000000
+5337 1280 -30.000000
+5337 1350  30.000000
+5337 1352   1.000000
+5338 1283 -60.000000
+5338 1353  60.000000
+5338 1355   1.000000
+5339 1284 -30.000000
+5339 1354  30.000000
+5339 1356   1.000000
+5340 1287 -60.000000
+5340 1357  60.000000
+5340 1359   1.000000
+5341 1288 -30.000000
+5341 1358  30.000000
+5341 1360   1.000000
+5342 1293 -60.000000
+5342 1363  60.000000
+5342 1365   1.000000
+5343 1294 -30.000000
+5343 1364  30.000000
+5343 1366   1.000000
+5344 1297 -60.000000
+5344 1367  60.000000
+5344 1369   1.000000
+5345 1298 -30.000000
+5345 1368  30.000000
+5345 1370   1.000000
+5346 1301 -60.000000
+5346 1371  60.000000
+5346 1373   1.000000
+5347 1302 -30.000000
+5347 1372  30.000000
+5347 1374   1.000000
+5348 1307 -60.000000
+5348 1377  60.000000
+5348 1379   1.000000
+5349 1308 -30.000000
+5349 1378  30.000000
+5349 1380   1.000000
+5350 1311 -60.000000
+5350 1381  60.000000
+5350 1383   1.000000
+5351 1312 -30.000000
+5351 1382  30.000000
+5351 1384   1.000000
+5352 1315 -60.000000
+5352 1385  60.000000
+5352 1387   1.000000
+5353 1316 -30.000000
+5353 1386  30.000000
+5353 1388   1.000000
+5354 1321 -60.000000
+5354 1391  60.000000
+5354 1393   1.000000
+5355 1322 -30.000000
+5355 1392  30.000000
+5355 1394   1.000000
+5356 1325 -60.000000
+5356 1395  60.000000
+5356 1397   1.000000
+5357 1326 -30.000000
+5357 1396  30.000000
+5357 1398   1.000000
+5358 1329 -60.000000
+5358 1399  60.000000
+5358 1401   1.000000
+5359 1330 -30.000000
+5359 1400  30.000000
+5359 1402   1.000000
+5360 1335 -60.000000
+5360 1405  60.000000
+5360 1407   1.000000
+5361 1336 -30.000000
+5361 1406  30.000000
+5361 1408   1.000000
+5362 1339 -60.000000
+5362 1409  60.000000
+5362 1411   1.000000
+5363 1340 -30.000000
+5363 1410  30.000000
+5363 1412   1.000000
+5364 1343 -60.000000
+5364 1413  60.000000
+5364 1415   1.000000
+5365 1344 -30.000000
+5365 1414  30.000000
+5365 1416   1.000000
+5366 1349 -60.000000
+5366 1419  60.000000
+5366 1421   1.000000
+5367 1350 -30.000000
+5367 1420  30.000000
+5367 1422   1.000000
+5368 1353 -60.000000
+5368 1423  60.000000
+5368 1425   1.000000
+5369 1354 -30.000000
+5369 1424  30.000000
+5369 1426   1.000000
+5370 1357 -60.000000
+5370 1427  60.000000
+5370 1429   1.000000
+5371 1358 -30.000000
+5371 1428  30.000000
+5371 1430   1.000000
+5372 1363 -60.000000
+5372 1433  60.000000
+5372 1435   1.000000
+5373 1364 -30.000000
+5373 1434  30.000000
+5373 1436   1.000000
+5374 1367 -60.000000
+5374 1437  60.000000
+5374 1439   1.000000
+5375 1368 -30.000000
+5375 1438  30.000000
+5375 1440   1.000000
+5376 1371 -60.000000
+5376 1441  60.000000
+5376 1443   1.000000
+5377 1372 -30.000000
+5377 1442  30.000000
+5377 1444   1.000000
+5378 1377 -60.000000
+5378 1447  60.000000
+5378 1449   1.000000
+5379 1378 -30.000000
+5379 1448  30.000000
+5379 1450   1.000000
+5380 1381 -60.000000
+5380 1451  60.000000
+5380 1453   1.000000
+5381 1382 -30.000000
+5381 1452  30.000000
+5381 1454   1.000000
+5382 1385 -60.000000
+5382 1455  60.000000
+5382 1457   1.000000
+5383 1386 -30.000000
+5383 1456  30.000000
+5383 1458   1.000000
+5384 1391 -60.000000
+5384 1461  60.000000
+5384 1463   1.000000
+5385 1392 -30.000000
+5385 1462  30.000000
+5385 1464   1.000000
+5386 1395 -60.000000
+5386 1465  60.000000
+5386 1467   1.000000
+5387 1396 -30.000000
+5387 1466  30.000000
+5387 1468   1.000000
+5388 1399 -60.000000
+5388 1469  60.000000
+5388 1471   1.000000
+5389 1400 -30.000000
+5389 1470  30.000000
+5389 1472   1.000000
+5390 1405 -60.000000
+5390 1475  60.000000
+5390 1477   1.000000
+5391 1406 -30.000000
+5391 1476  30.000000
+5391 1478   1.000000
+5392 1409 -60.000000
+5392 1479  60.000000
+5392 1481   1.000000
+5393 1410 -30.000000
+5393 1480  30.000000
+5393 1482   1.000000
+5394 1413 -60.000000
+5394 1483  60.000000
+5394 1485   1.000000
+5395 1414 -30.000000
+5395 1484  30.000000
+5395 1486   1.000000
+5396 1419 -60.000000
+5396 1489  60.000000
+5396 1491   1.000000
+5397 1420 -30.000000
+5397 1490  30.000000
+5397 1492   1.000000
+5398 1423 -60.000000
+5398 1493  60.000000
+5398 1495   1.000000
+5399 1424 -30.000000
+5399 1494  30.000000
+5399 1496   1.000000
+5400 1427 -60.000000
+5400 1497  60.000000
+5400 1499   1.000000
+5401 1428 -30.000000
+5401 1498  30.000000
+5401 1500   1.000000
+5402 1433 -60.000000
+5402 1503  60.000000
+5402 1505   1.000000
+5403 1434 -30.000000
+5403 1504  30.000000
+5403 1506   1.000000
+5404 1437 -60.000000
+5404 1507  60.000000
+5404 1509   1.000000
+5405 1438 -30.000000
+5405 1508  30.000000
+5405 1510   1.000000
+5406 1441 -60.000000
+5406 1511  60.000000
+5406 1513   1.000000
+5407 1442 -30.000000
+5407 1512  30.000000
+5407 1514   1.000000
+5408 1447 -60.000000
+5408 1517  60.000000
+5408 1519   1.000000
+5409 1448 -30.000000
+5409 1518  30.000000
+5409 1520   1.000000
+5410 1451 -60.000000
+5410 1521  60.000000
+5410 1523   1.000000
+5411 1452 -30.000000
+5411 1522  30.000000
+5411 1524   1.000000
+5412 1455 -60.000000
+5412 1525  60.000000
+5412 1527   1.000000
+5413 1456 -30.000000
+5413 1526  30.000000
+5413 1528   1.000000
+5414 1461 -60.000000
+5414 1531  60.000000
+5414 1533   1.000000
+5415 1462 -30.000000
+5415 1532  30.000000
+5415 1534   1.000000
+5416 1465 -60.000000
+5416 1535  60.000000
+5416 1537   1.000000
+5417 1466 -30.000000
+5417 1536  30.000000
+5417 1538   1.000000
+5418 1469 -60.000000
+5418 1539  60.000000
+5418 1541   1.000000
+5419 1470 -30.000000
+5419 1540  30.000000
+5419 1542   1.000000
+5420 1475 -60.000000
+5420 1545  60.000000
+5420 1547   1.000000
+5421 1476 -30.000000
+5421 1546  30.000000
+5421 1548   1.000000
+5422 1479 -60.000000
+5422 1549  60.000000
+5422 1551   1.000000
+5423 1480 -30.000000
+5423 1550  30.000000
+5423 1552   1.000000
+5424 1483 -60.000000
+5424 1553  60.000000
+5424 1555   1.000000
+5425 1484 -30.000000
+5425 1554  30.000000
+5425 1556   1.000000
+5426 1489 -60.000000
+5426 1559  60.000000
+5426 1561   1.000000
+5427 1490 -30.000000
+5427 1560  30.000000
+5427 1562   1.000000
+5428 1493 -60.000000
+5428 1563  60.000000
+5428 1565   1.000000
+5429 1494 -30.000000
+5429 1564  30.000000
+5429 1566   1.000000
+5430 1497 -60.000000
+5430 1567  60.000000
+5430 1569   1.000000
+5431 1498 -30.000000
+5431 1568  30.000000
+5431 1570   1.000000
+5432 1503 -60.000000
+5432 1573  60.000000
+5432 1575   1.000000
+5433 1504 -30.000000
+5433 1574  30.000000
+5433 1576   1.000000
+5434 1507 -60.000000
+5434 1577  60.000000
+5434 1579   1.000000
+5435 1508 -30.000000
+5435 1578  30.000000
+5435 1580   1.000000
+5436 1511 -60.000000
+5436 1581  60.000000
+5436 1583   1.000000
+5437 1512 -30.000000
+5437 1582  30.000000
+5437 1584   1.000000
+5438 1517 -60.000000
+5438 1587  60.000000
+5438 1589   1.000000
+5439 1518 -30.000000
+5439 1588  30.000000
+5439 1590   1.000000
+5440 1521 -60.000000
+5440 1591  60.000000
+5440 1593   1.000000
+5441 1522 -30.000000
+5441 1592  30.000000
+5441 1594   1.000000
+5442 1525 -60.000000
+5442 1595  60.000000
+5442 1597   1.000000
+5443 1526 -30.000000
+5443 1596  30.000000
+5443 1598   1.000000
+5444 1531 -60.000000
+5444 1601  60.000000
+5444 1603   1.000000
+5445 1532 -30.000000
+5445 1602  30.000000
+5445 1604   1.000000
+5446 1535 -60.000000
+5446 1605  60.000000
+5446 1607   1.000000
+5447 1536 -30.000000
+5447 1606  30.000000
+5447 1608   1.000000
+5448 1539 -60.000000
+5448 1609  60.000000
+5448 1611   1.000000
+5449 1540 -30.000000
+5449 1610  30.000000
+5449 1612   1.000000
+5450 1545 -60.000000
+5450 1615  60.000000
+5450 1617   1.000000
+5451 1546 -30.000000
+5451 1616  30.000000
+5451 1618   1.000000
+5452 1549 -60.000000
+5452 1619  60.000000
+5452 1621   1.000000
+5453 1550 -30.000000
+5453 1620  30.000000
+5453 1622   1.000000
+5454 1553 -60.000000
+5454 1623  60.000000
+5454 1625   1.000000
+5455 1554 -30.000000
+5455 1624  30.000000
+5455 1626   1.000000
+5456 1559 -60.000000
+5456 1629  60.000000
+5456 1631   1.000000
+5457 1560 -30.000000
+5457 1630  30.000000
+5457 1632   1.000000
+5458 1563 -60.000000
+5458 1633  60.000000
+5458 1635   1.000000
+5459 1564 -30.000000
+5459 1634  30.000000
+5459 1636   1.000000
+5460 1567 -60.000000
+5460 1637  60.000000
+5460 1639   1.000000
+5461 1568 -30.000000
+5461 1638  30.000000
+5461 1640   1.000000
+5462 1573 -60.000000
+5462 1643  60.000000
+5462 1645   1.000000
+5463 1574 -30.000000
+5463 1644  30.000000
+5463 1646   1.000000
+5464 1577 -60.000000
+5464 1647  60.000000
+5464 1649   1.000000
+5465 1578 -30.000000
+5465 1648  30.000000
+5465 1650   1.000000
+5466 1581 -60.000000
+5466 1651  60.000000
+5466 1653   1.000000
+5467 1582 -30.000000
+5467 1652  30.000000
+5467 1654   1.000000
+5468 1587 -60.000000
+5468 1657  60.000000
+5468 1659   1.000000
+5469 1588 -30.000000
+5469 1658  30.000000
+5469 1660   1.000000
+5470 1591 -60.000000
+5470 1661  60.000000
+5470 1663   1.000000
+5471 1592 -30.000000
+5471 1662  30.000000
+5471 1664   1.000000
+5472 1595 -60.000000
+5472 1665  60.000000
+5472 1667   1.000000
+5473 1596 -30.000000
+5473 1666  30.000000
+5473 1668   1.000000
+5474 1601 -60.000000
+5474 1671  60.000000
+5474 1673   1.000000
+5475 1602 -30.000000
+5475 1672  30.000000
+5475 1674   1.000000
+5476 1605 -60.000000
+5476 1675  60.000000
+5476 1677   1.000000
+5477 1606 -30.000000
+5477 1676  30.000000
+5477 1678   1.000000
+5478 1609 -60.000000
+5478 1679  60.000000
+5478 1681   1.000000
+5479 1610 -30.000000
+5479 1680  30.000000
+5479 1682   1.000000
+5480 1615 -60.000000
+5480 1685  60.000000
+5480 1687   1.000000
+5481 1616 -30.000000
+5481 1686  30.000000
+5481 1688   1.000000
+5482 1619 -60.000000
+5482 1689  60.000000
+5482 1691   1.000000
+5483 1620 -30.000000
+5483 1690  30.000000
+5483 1692   1.000000
+5484 1623 -60.000000
+5484 1693  60.000000
+5484 1695   1.000000
+5485 1624 -30.000000
+5485 1694  30.000000
+5485 1696   1.000000
+5486 1629 -60.000000
+5486 1699  60.000000
+5486 1701   1.000000
+5487 1630 -30.000000
+5487 1700  30.000000
+5487 1702   1.000000
+5488 1633 -60.000000
+5488 1703  60.000000
+5488 1705   1.000000
+5489 1634 -30.000000
+5489 1704  30.000000
+5489 1706   1.000000
+5490 1637 -60.000000
+5490 1707  60.000000
+5490 1709   1.000000
+5491 1638 -30.000000
+5491 1708  30.000000
+5491 1710   1.000000
+5492 1643 -60.000000
+5492 1713  60.000000
+5492 1715   1.000000
+5493 1644 -30.000000
+5493 1714  30.000000
+5493 1716   1.000000
+5494 1647 -60.000000
+5494 1717  60.000000
+5494 1719   1.000000
+5495 1648 -30.000000
+5495 1718  30.000000
+5495 1720   1.000000
+5496 1651 -60.000000
+5496 1721  60.000000
+5496 1723   1.000000
+5497 1652 -30.000000
+5497 1722  30.000000
+5497 1724   1.000000
+5498 1657 -60.000000
+5498 1727  60.000000
+5498 1729   1.000000
+5499 1658 -30.000000
+5499 1728  30.000000
+5499 1730   1.000000
+5500 1661 -60.000000
+5500 1731  60.000000
+5500 1733   1.000000
+5501 1662 -30.000000
+5501 1732  30.000000
+5501 1734   1.000000
+5502 1665 -60.000000
+5502 1735  60.000000
+5502 1737   1.000000
+5503 1666 -30.000000
+5503 1736  30.000000
+5503 1738   1.000000
+5504 1671 -60.000000
+5504 1741  60.000000
+5504 1743   1.000000
+5505 1672 -30.000000
+5505 1742  30.000000
+5505 1744   1.000000
+5506 1675 -60.000000
+5506 1745  60.000000
+5506 1747   1.000000
+5507 1676 -30.000000
+5507 1746  30.000000
+5507 1748   1.000000
+5508 1679 -60.000000
+5508 1749  60.000000
+5508 1751   1.000000
+5509 1680 -30.000000
+5509 1750  30.000000
+5509 1752   1.000000
+5510 1685 -60.000000
+5510 1755  60.000000
+5510 1757   1.000000
+5511 1686 -30.000000
+5511 1756  30.000000
+5511 1758   1.000000
+5512 1689 -60.000000
+5512 1759  60.000000
+5512 1761   1.000000
+5513 1690 -30.000000
+5513 1760  30.000000
+5513 1762   1.000000
+5514 1693 -60.000000
+5514 1763  60.000000
+5514 1765   1.000000
+5515 1694 -30.000000
+5515 1764  30.000000
+5515 1766   1.000000
+5516 1699 -60.000000
+5516 1769  60.000000
+5516 1771   1.000000
+5517 1700 -30.000000
+5517 1770  30.000000
+5517 1772   1.000000
+5518 1703 -60.000000
+5518 1773  60.000000
+5518 1775   1.000000
+5519 1704 -30.000000
+5519 1774  30.000000
+5519 1776   1.000000
+5520 1707 -60.000000
+5520 1777  60.000000
+5520 1779   1.000000
+5521 1708 -30.000000
+5521 1778  30.000000
+5521 1780   1.000000
+5522 1713 -60.000000
+5522 1783  60.000000
+5522 1785   1.000000
+5523 1714 -30.000000
+5523 1784  30.000000
+5523 1786   1.000000
+5524 1717 -60.000000
+5524 1787  60.000000
+5524 1789   1.000000
+5525 1718 -30.000000
+5525 1788  30.000000
+5525 1790   1.000000
+5526 1721 -60.000000
+5526 1791  60.000000
+5526 1793   1.000000
+5527 1722 -30.000000
+5527 1792  30.000000
+5527 1794   1.000000
+5528 1727 -60.000000
+5528 1797  60.000000
+5528 1799   1.000000
+5529 1728 -30.000000
+5529 1798  30.000000
+5529 1800   1.000000
+5530 1731 -60.000000
+5530 1801  60.000000
+5530 1803   1.000000
+5531 1732 -30.000000
+5531 1802  30.000000
+5531 1804   1.000000
+5532 1735 -60.000000
+5532 1805  60.000000
+5532 1807   1.000000
+5533 1736 -30.000000
+5533 1806  30.000000
+5533 1808   1.000000
+5534 1741 -60.000000
+5534 1811  60.000000
+5534 1813   1.000000
+5535 1742 -30.000000
+5535 1812  30.000000
+5535 1814   1.000000
+5536 1745 -60.000000
+5536 1815  60.000000
+5536 1817   1.000000
+5537 1746 -30.000000
+5537 1816  30.000000
+5537 1818   1.000000
+5538 1749 -60.000000
+5538 1819  60.000000
+5538 1821   1.000000
+5539 1750 -30.000000
+5539 1820  30.000000
+5539 1822   1.000000
+5540 1755 -60.000000
+5540 1825  60.000000
+5540 1827   1.000000
+5541 1756 -30.000000
+5541 1826  30.000000
+5541 1828   1.000000
+5542 1759 -60.000000
+5542 1829  60.000000
+5542 1831   1.000000
+5543 1760 -30.000000
+5543 1830  30.000000
+5543 1832   1.000000
+5544 1763 -60.000000
+5544 1833  60.000000
+5544 1835   1.000000
+5545 1764 -30.000000
+5545 1834  30.000000
+5545 1836   1.000000
+5546 1769 -60.000000
+5546 1839  60.000000
+5546 1841   1.000000
+5547 1770 -30.000000
+5547 1840  30.000000
+5547 1842   1.000000
+5548 1773 -60.000000
+5548 1843  60.000000
+5548 1845   1.000000
+5549 1774 -30.000000
+5549 1844  30.000000
+5549 1846   1.000000
+5550 1777 -60.000000
+5550 1847  60.000000
+5550 1849   1.000000
+5551 1778 -30.000000
+5551 1848  30.000000
+5551 1850   1.000000
+5552 1783 -60.000000
+5552 1853  60.000000
+5552 1855   1.000000
+5553 1784 -30.000000
+5553 1854  30.000000
+5553 1856   1.000000
+5554 1787 -60.000000
+5554 1857  60.000000
+5554 1859   1.000000
+5555 1788 -30.000000
+5555 1858  30.000000
+5555 1860   1.000000
+5556 1791 -60.000000
+5556 1861  60.000000
+5556 1863   1.000000
+5557 1792 -30.000000
+5557 1862  30.000000
+5557 1864   1.000000
+5558 1797 -60.000000
+5558 1867  60.000000
+5558 1869   1.000000
+5559 1798 -30.000000
+5559 1868  30.000000
+5559 1870   1.000000
+5560 1801 -60.000000
+5560 1871  60.000000
+5560 1873   1.000000
+5561 1802 -30.000000
+5561 1872  30.000000
+5561 1874   1.000000
+5562 1805 -60.000000
+5562 1875  60.000000
+5562 1877   1.000000
+5563 1806 -30.000000
+5563 1876  30.000000
+5563 1878   1.000000
+5564 1811 -60.000000
+5564 1881  60.000000
+5564 1883   1.000000
+5565 1812 -30.000000
+5565 1882  30.000000
+5565 1884   1.000000
+5566 1815 -60.000000
+5566 1885  60.000000
+5566 1887   1.000000
+5567 1816 -30.000000
+5567 1886  30.000000
+5567 1888   1.000000
+5568 1819 -60.000000
+5568 1889  60.000000
+5568 1891   1.000000
+5569 1820 -30.000000
+5569 1890  30.000000
+5569 1892   1.000000
+5570 1825 -60.000000
+5570 1895  60.000000
+5570 1897   1.000000
+5571 1826 -30.000000
+5571 1896  30.000000
+5571 1898   1.000000
+5572 1829 -60.000000
+5572 1899  60.000000
+5572 1901   1.000000
+5573 1830 -30.000000
+5573 1900  30.000000
+5573 1902   1.000000
+5574 1833 -60.000000
+5574 1903  60.000000
+5574 1905   1.000000
+5575 1834 -30.000000
+5575 1904  30.000000
+5575 1906   1.000000
+5576 1839 -60.000000
+5576 1909  60.000000
+5576 1911   1.000000
+5577 1840 -30.000000
+5577 1910  30.000000
+5577 1912   1.000000
+5578 1843 -60.000000
+5578 1913  60.000000
+5578 1915   1.000000
+5579 1844 -30.000000
+5579 1914  30.000000
+5579 1916   1.000000
+5580 1847 -60.000000
+5580 1917  60.000000
+5580 1919   1.000000
+5581 1848 -30.000000
+5581 1918  30.000000
+5581 1920   1.000000
+5582 1853 -60.000000
+5582 1923  60.000000
+5582 1925   1.000000
+5583 1854 -30.000000
+5583 1924  30.000000
+5583 1926   1.000000
+5584 1857 -60.000000
+5584 1927  60.000000
+5584 1929   1.000000
+5585 1858 -30.000000
+5585 1928  30.000000
+5585 1930   1.000000
+5586 1861 -60.000000
+5586 1931  60.000000
+5586 1933   1.000000
+5587 1862 -30.000000
+5587 1932  30.000000
+5587 1934   1.000000
+5588 1867 -60.000000
+5588 1937  60.000000
+5588 1939   1.000000
+5589 1868 -30.000000
+5589 1938  30.000000
+5589 1940   1.000000
+5590 1871 -60.000000
+5590 1941  60.000000
+5590 1943   1.000000
+5591 1872 -30.000000
+5591 1942  30.000000
+5591 1944   1.000000
+5592 1875 -60.000000
+5592 1945  60.000000
+5592 1947   1.000000
+5593 1876 -30.000000
+5593 1946  30.000000
+5593 1948   1.000000
+5594 1881 -60.000000
+5594 1951  60.000000
+5594 1953   1.000000
+5595 1882 -30.000000
+5595 1952  30.000000
+5595 1954   1.000000
+5596 1885 -60.000000
+5596 1955  60.000000
+5596 1957   1.000000
+5597 1886 -30.000000
+5597 1956  30.000000
+5597 1958   1.000000
+5598 1889 -60.000000
+5598 1959  60.000000
+5598 1961   1.000000
+5599 1890 -30.000000
+5599 1960  30.000000
+5599 1962   1.000000
+5600 1895 -60.000000
+5600 1965  60.000000
+5600 1967   1.000000
+5601 1896 -30.000000
+5601 1966  30.000000
+5601 1968   1.000000
+5602 1899 -60.000000
+5602 1969  60.000000
+5602 1971   1.000000
+5603 1900 -30.000000
+5603 1970  30.000000
+5603 1972   1.000000
+5604 1903 -60.000000
+5604 1973  60.000000
+5604 1975   1.000000
+5605 1904 -30.000000
+5605 1974  30.000000
+5605 1976   1.000000
+5606 1909 -60.000000
+5606 1979  60.000000
+5606 1981   1.000000
+5607 1910 -30.000000
+5607 1980  30.000000
+5607 1982   1.000000
+5608 1913 -60.000000
+5608 1983  60.000000
+5608 1985   1.000000
+5609 1914 -30.000000
+5609 1984  30.000000
+5609 1986   1.000000
+5610 1917 -60.000000
+5610 1987  60.000000
+5610 1989   1.000000
+5611 1918 -30.000000
+5611 1988  30.000000
+5611 1990   1.000000
+5612 1923 -60.000000
+5612 1993  60.000000
+5612 1995   1.000000
+5613 1924 -30.000000
+5613 1994  30.000000
+5613 1996   1.000000
+5614 1927 -60.000000
+5614 1997  60.000000
+5614 1999   1.000000
+5615 1928 -30.000000
+5615 1998  30.000000
+5615 2000   1.000000
+5616 1931 -60.000000
+5616 2001  60.000000
+5616 2003   1.000000
+5617 1932 -30.000000
+5617 2002  30.000000
+5617 2004   1.000000
+5618 1937 -60.000000
+5618 2007  60.000000
+5618 2009   1.000000
+5619 1938 -30.000000
+5619 2008  30.000000
+5619 2010   1.000000
+5620 1941 -60.000000
+5620 2011  60.000000
+5620 2013   1.000000
+5621 1942 -30.000000
+5621 2012  30.000000
+5621 2014   1.000000
+5622 1945 -60.000000
+5622 2015  60.000000
+5622 2017   1.000000
+5623 1946 -30.000000
+5623 2016  30.000000
+5623 2018   1.000000
+5624 1951 -60.000000
+5624 2021  60.000000
+5624 2023   1.000000
+5625 1952 -30.000000
+5625 2022  30.000000
+5625 2024   1.000000
+5626 1955 -60.000000
+5626 2025  60.000000
+5626 2027   1.000000
+5627 1956 -30.000000
+5627 2026  30.000000
+5627 2028   1.000000
+5628 1959 -60.000000
+5628 2029  60.000000
+5628 2031   1.000000
+5629 1960 -30.000000
+5629 2030  30.000000
+5629 2032   1.000000
+5630 1965 -60.000000
+5630 2035  60.000000
+5630 2037   1.000000
+5631 1966 -30.000000
+5631 2036  30.000000
+5631 2038   1.000000
+5632 1969 -60.000000
+5632 2039  60.000000
+5632 2041   1.000000
+5633 1970 -30.000000
+5633 2040  30.000000
+5633 2042   1.000000
+5634 1973 -60.000000
+5634 2043  60.000000
+5634 2045   1.000000
+5635 1974 -30.000000
+5635 2044  30.000000
+5635 2046   1.000000
+5636 1979 -60.000000
+5636 2049  60.000000
+5636 2051   1.000000
+5637 1980 -30.000000
+5637 2050  30.000000
+5637 2052   1.000000
+5638 1983 -60.000000
+5638 2053  60.000000
+5638 2055   1.000000
+5639 1984 -30.000000
+5639 2054  30.000000
+5639 2056   1.000000
+5640 1987 -60.000000
+5640 2057  60.000000
+5640 2059   1.000000
+5641 1988 -30.000000
+5641 2058  30.000000
+5641 2060   1.000000
+5642 1993 -60.000000
+5642 2063  60.000000
+5642 2065   1.000000
+5643 1994 -30.000000
+5643 2064  30.000000
+5643 2066   1.000000
+5644 1997 -60.000000
+5644 2067  60.000000
+5644 2069   1.000000
+5645 1998 -30.000000
+5645 2068  30.000000
+5645 2070   1.000000
+5646 2001 -60.000000
+5646 2071  60.000000
+5646 2073   1.000000
+5647 2002 -30.000000
+5647 2072  30.000000
+5647 2074   1.000000
+5648 2007 -60.000000
+5648 2077  60.000000
+5648 2079   1.000000
+5649 2008 -30.000000
+5649 2078  30.000000
+5649 2080   1.000000
+5650 2011 -60.000000
+5650 2081  60.000000
+5650 2083   1.000000
+5651 2012 -30.000000
+5651 2082  30.000000
+5651 2084   1.000000
+5652 2015 -60.000000
+5652 2085  60.000000
+5652 2087   1.000000
+5653 2016 -30.000000
+5653 2086  30.000000
+5653 2088   1.000000
+5654 2021 -60.000000
+5654 2091  60.000000
+5654 2093   1.000000
+5655 2022 -30.000000
+5655 2092  30.000000
+5655 2094   1.000000
+5656 2025 -60.000000
+5656 2095  60.000000
+5656 2097   1.000000
+5657 2026 -30.000000
+5657 2096  30.000000
+5657 2098   1.000000
+5658 2029 -60.000000
+5658 2099  60.000000
+5658 2101   1.000000
+5659 2030 -30.000000
+5659 2100  30.000000
+5659 2102   1.000000
+5660 2035 -60.000000
+5660 2105  60.000000
+5660 2107   1.000000
+5661 2036 -30.000000
+5661 2106  30.000000
+5661 2108   1.000000
+5662 2039 -60.000000
+5662 2109  60.000000
+5662 2111   1.000000
+5663 2040 -30.000000
+5663 2110  30.000000
+5663 2112   1.000000
+5664 2043 -60.000000
+5664 2113  60.000000
+5664 2115   1.000000
+5665 2044 -30.000000
+5665 2114  30.000000
+5665 2116   1.000000
+5666 2049 -60.000000
+5666 2119  60.000000
+5666 2121   1.000000
+5667 2050 -30.000000
+5667 2120  30.000000
+5667 2122   1.000000
+5668 2053 -60.000000
+5668 2123  60.000000
+5668 2125   1.000000
+5669 2054 -30.000000
+5669 2124  30.000000
+5669 2126   1.000000
+5670 2057 -60.000000
+5670 2127  60.000000
+5670 2129   1.000000
+5671 2058 -30.000000
+5671 2128  30.000000
+5671 2130   1.000000
+5672 2063 -60.000000
+5672 2133  60.000000
+5672 2135   1.000000
+5673 2064 -30.000000
+5673 2134  30.000000
+5673 2136   1.000000
+5674 2067 -60.000000
+5674 2137  60.000000
+5674 2139   1.000000
+5675 2068 -30.000000
+5675 2138  30.000000
+5675 2140   1.000000
+5676 2071 -60.000000
+5676 2141  60.000000
+5676 2143   1.000000
+5677 2072 -30.000000
+5677 2142  30.000000
+5677 2144   1.000000
+5678 2077 -60.000000
+5678 2147  60.000000
+5678 2149   1.000000
+5679 2078 -30.000000
+5679 2148  30.000000
+5679 2150   1.000000
+5680 2081 -60.000000
+5680 2151  60.000000
+5680 2153   1.000000
+5681 2082 -30.000000
+5681 2152  30.000000
+5681 2154   1.000000
+5682 2085 -60.000000
+5682 2155  60.000000
+5682 2157   1.000000
+5683 2086 -30.000000
+5683 2156  30.000000
+5683 2158   1.000000
+5684 2091 -60.000000
+5684 2161  60.000000
+5684 2163   1.000000
+5685 2092 -30.000000
+5685 2162  30.000000
+5685 2164   1.000000
+5686 2095 -60.000000
+5686 2165  60.000000
+5686 2167   1.000000
+5687 2096 -30.000000
+5687 2166  30.000000
+5687 2168   1.000000
+5688 2099 -60.000000
+5688 2169  60.000000
+5688 2171   1.000000
+5689 2100 -30.000000
+5689 2170  30.000000
+5689 2172   1.000000
+5690 2105 -60.000000
+5690 2175  60.000000
+5690 2177   1.000000
+5691 2106 -30.000000
+5691 2176  30.000000
+5691 2178   1.000000
+5692 2109 -60.000000
+5692 2179  60.000000
+5692 2181   1.000000
+5693 2110 -30.000000
+5693 2180  30.000000
+5693 2182   1.000000
+5694 2113 -60.000000
+5694 2183  60.000000
+5694 2185   1.000000
+5695 2114 -30.000000
+5695 2184  30.000000
+5695 2186   1.000000
+5696 2119 -60.000000
+5696 2189  60.000000
+5696 2191   1.000000
+5697 2120 -30.000000
+5697 2190  30.000000
+5697 2192   1.000000
+5698 2123 -60.000000
+5698 2193  60.000000
+5698 2195   1.000000
+5699 2124 -30.000000
+5699 2194  30.000000
+5699 2196   1.000000
+5700 2127 -60.000000
+5700 2197  60.000000
+5700 2199   1.000000
+5701 2128 -30.000000
+5701 2198  30.000000
+5701 2200   1.000000
+5702 2133 -60.000000
+5702 2203  60.000000
+5702 2205   1.000000
+5703 2134 -30.000000
+5703 2204  30.000000
+5703 2206   1.000000
+5704 2137 -60.000000
+5704 2207  60.000000
+5704 2209   1.000000
+5705 2138 -30.000000
+5705 2208  30.000000
+5705 2210   1.000000
+5706 2141 -60.000000
+5706 2211  60.000000
+5706 2213   1.000000
+5707 2142 -30.000000
+5707 2212  30.000000
+5707 2214   1.000000
+5708 2147 -60.000000
+5708 2217  60.000000
+5708 2219   1.000000
+5709 2148 -30.000000
+5709 2218  30.000000
+5709 2220   1.000000
+5710 2151 -60.000000
+5710 2221  60.000000
+5710 2223   1.000000
+5711 2152 -30.000000
+5711 2222  30.000000
+5711 2224   1.000000
+5712 2155 -60.000000
+5712 2225  60.000000
+5712 2227   1.000000
+5713 2156 -30.000000
+5713 2226  30.000000
+5713 2228   1.000000
+5714 2161 -60.000000
+5714 2231  60.000000
+5714 2233   1.000000
+5715 2162 -30.000000
+5715 2232  30.000000
+5715 2234   1.000000
+5716 2165 -60.000000
+5716 2235  60.000000
+5716 2237   1.000000
+5717 2166 -30.000000
+5717 2236  30.000000
+5717 2238   1.000000
+5718 2169 -60.000000
+5718 2239  60.000000
+5718 2241   1.000000
+5719 2170 -30.000000
+5719 2240  30.000000
+5719 2242   1.000000
+5720 2175 -60.000000
+5720 2245  60.000000
+5720 2247   1.000000
+5721 2176 -30.000000
+5721 2246  30.000000
+5721 2248   1.000000
+5722 2179 -60.000000
+5722 2249  60.000000
+5722 2251   1.000000
+5723 2180 -30.000000
+5723 2250  30.000000
+5723 2252   1.000000
+5724 2183 -60.000000
+5724 2253  60.000000
+5724 2255   1.000000
+5725 2184 -30.000000
+5725 2254  30.000000
+5725 2256   1.000000
+5726 2189 -60.000000
+5726 2259  60.000000
+5726 2261   1.000000
+5727 2190 -30.000000
+5727 2260  30.000000
+5727 2262   1.000000
+5728 2193 -60.000000
+5728 2263  60.000000
+5728 2265   1.000000
+5729 2194 -30.000000
+5729 2264  30.000000
+5729 2266   1.000000
+5730 2197 -60.000000
+5730 2267  60.000000
+5730 2269   1.000000
+5731 2198 -30.000000
+5731 2268  30.000000
+5731 2270   1.000000
+5732 2203 -60.000000
+5732 2273  60.000000
+5732 2275   1.000000
+5733 2204 -30.000000
+5733 2274  30.000000
+5733 2276   1.000000
+5734 2207 -60.000000
+5734 2277  60.000000
+5734 2279   1.000000
+5735 2208 -30.000000
+5735 2278  30.000000
+5735 2280   1.000000
+5736 2211 -60.000000
+5736 2281  60.000000
+5736 2283   1.000000
+5737 2212 -30.000000
+5737 2282  30.000000
+5737 2284   1.000000
+5738 2217 -60.000000
+5738 2287  60.000000
+5738 2289   1.000000
+5739 2218 -30.000000
+5739 2288  30.000000
+5739 2290   1.000000
+5740 2221 -60.000000
+5740 2291  60.000000
+5740 2293   1.000000
+5741 2222 -30.000000
+5741 2292  30.000000
+5741 2294   1.000000
+5742 2225 -60.000000
+5742 2295  60.000000
+5742 2297   1.000000
+5743 2226 -30.000000
+5743 2296  30.000000
+5743 2298   1.000000
+5744 2231 -60.000000
+5744 2301  60.000000
+5744 2303   1.000000
+5745 2232 -30.000000
+5745 2302  30.000000
+5745 2304   1.000000
+5746 2235 -60.000000
+5746 2305  60.000000
+5746 2307   1.000000
+5747 2236 -30.000000
+5747 2306  30.000000
+5747 2308   1.000000
+5748 2239 -60.000000
+5748 2309  60.000000
+5748 2311   1.000000
+5749 2240 -30.000000
+5749 2310  30.000000
+5749 2312   1.000000
+5750 2245 -60.000000
+5750 2315  60.000000
+5750 2317   1.000000
+5751 2246 -30.000000
+5751 2316  30.000000
+5751 2318   1.000000
+5752 2249 -60.000000
+5752 2319  60.000000
+5752 2321   1.000000
+5753 2250 -30.000000
+5753 2320  30.000000
+5753 2322   1.000000
+5754 2253 -60.000000
+5754 2323  60.000000
+5754 2325   1.000000
+5755 2254 -30.000000
+5755 2324  30.000000
+5755 2326   1.000000
+5756 2259 -60.000000
+5756 2329  60.000000
+5756 2331   1.000000
+5757 2260 -30.000000
+5757 2330  30.000000
+5757 2332   1.000000
+5758 2263 -60.000000
+5758 2333  60.000000
+5758 2335   1.000000
+5759 2264 -30.000000
+5759 2334  30.000000
+5759 2336   1.000000
+5760 2267 -60.000000
+5760 2337  60.000000
+5760 2339   1.000000
+5761 2268 -30.000000
+5761 2338  30.000000
+5761 2340   1.000000
+5762 2273 -60.000000
+5762 2343  60.000000
+5762 2345   1.000000
+5763 2274 -30.000000
+5763 2344  30.000000
+5763 2346   1.000000
+5764 2277 -60.000000
+5764 2347  60.000000
+5764 2349   1.000000
+5765 2278 -30.000000
+5765 2348  30.000000
+5765 2350   1.000000
+5766 2281 -60.000000
+5766 2351  60.000000
+5766 2353   1.000000
+5767 2282 -30.000000
+5767 2352  30.000000
+5767 2354   1.000000
+5768 2287 -60.000000
+5768 2357  60.000000
+5768 2359   1.000000
+5769 2288 -30.000000
+5769 2358  30.000000
+5769 2360   1.000000
+5770 2291 -60.000000
+5770 2361  60.000000
+5770 2363   1.000000
+5771 2292 -30.000000
+5771 2362  30.000000
+5771 2364   1.000000
+5772 2295 -60.000000
+5772 2365  60.000000
+5772 2367   1.000000
+5773 2296 -30.000000
+5773 2366  30.000000
+5773 2368   1.000000
+5774 2301 -60.000000
+5774 2371  60.000000
+5774 2373   1.000000
+5775 2302 -30.000000
+5775 2372  30.000000
+5775 2374   1.000000
+5776 2305 -60.000000
+5776 2375  60.000000
+5776 2377   1.000000
+5777 2306 -30.000000
+5777 2376  30.000000
+5777 2378   1.000000
+5778 2309 -60.000000
+5778 2379  60.000000
+5778 2381   1.000000
+5779 2310 -30.000000
+5779 2380  30.000000
+5779 2382   1.000000
+5780 2315 -60.000000
+5780 2385  60.000000
+5780 2387   1.000000
+5781 2316 -30.000000
+5781 2386  30.000000
+5781 2388   1.000000
+5782 2319 -60.000000
+5782 2389  60.000000
+5782 2391   1.000000
+5783 2320 -30.000000
+5783 2390  30.000000
+5783 2392   1.000000
+5784 2323 -60.000000
+5784 2393  60.000000
+5784 2395   1.000000
+5785 2324 -30.000000
+5785 2394  30.000000
+5785 2396   1.000000
+5786 2329 -60.000000
+5786 2399  60.000000
+5786 2401   1.000000
+5787 2330 -30.000000
+5787 2400  30.000000
+5787 2402   1.000000
+5788 2333 -60.000000
+5788 2403  60.000000
+5788 2405   1.000000
+5789 2334 -30.000000
+5789 2404  30.000000
+5789 2406   1.000000
+5790 2337 -60.000000
+5790 2407  60.000000
+5790 2409   1.000000
+5791 2338 -30.000000
+5791 2408  30.000000
+5791 2410   1.000000
+5792 2343 -60.000000
+5792 2413  60.000000
+5792 2415   1.000000
+5793 2344 -30.000000
+5793 2414  30.000000
+5793 2416   1.000000
+5794 2347 -60.000000
+5794 2417  60.000000
+5794 2419   1.000000
+5795 2348 -30.000000
+5795 2418  30.000000
+5795 2420   1.000000
+5796 2351 -60.000000
+5796 2421  60.000000
+5796 2423   1.000000
+5797 2352 -30.000000
+5797 2422  30.000000
+5797 2424   1.000000
+5798 2357 -60.000000
+5798 2427  60.000000
+5798 2429   1.000000
+5799 2358 -30.000000
+5799 2428  30.000000
+5799 2430   1.000000
+5800 2361 -60.000000
+5800 2431  60.000000
+5800 2433   1.000000
+5801 2362 -30.000000
+5801 2432  30.000000
+5801 2434   1.000000
+5802 2365 -60.000000
+5802 2435  60.000000
+5802 2437   1.000000
+5803 2366 -30.000000
+5803 2436  30.000000
+5803 2438   1.000000
+5804 2371 -60.000000
+5804 2441  60.000000
+5804 2443   1.000000
+5805 2372 -30.000000
+5805 2442  30.000000
+5805 2444   1.000000
+5806 2375 -60.000000
+5806 2445  60.000000
+5806 2447   1.000000
+5807 2376 -30.000000
+5807 2446  30.000000
+5807 2448   1.000000
+5808 2379 -60.000000
+5808 2449  60.000000
+5808 2451   1.000000
+5809 2380 -30.000000
+5809 2450  30.000000
+5809 2452   1.000000
+5810 2385 -60.000000
+5810 2455  60.000000
+5810 2457   1.000000
+5811 2386 -30.000000
+5811 2456  30.000000
+5811 2458   1.000000
+5812 2389 -60.000000
+5812 2459  60.000000
+5812 2461   1.000000
+5813 2390 -30.000000
+5813 2460  30.000000
+5813 2462   1.000000
+5814 2393 -60.000000
+5814 2463  60.000000
+5814 2465   1.000000
+5815 2394 -30.000000
+5815 2464  30.000000
+5815 2466   1.000000
+5816 2399 -60.000000
+5816 2469  60.000000
+5816 2471   1.000000
+5817 2400 -30.000000
+5817 2470  30.000000
+5817 2472   1.000000
+5818 2403 -60.000000
+5818 2473  60.000000
+5818 2475   1.000000
+5819 2404 -30.000000
+5819 2474  30.000000
+5819 2476   1.000000
+5820 2407 -60.000000
+5820 2477  60.000000
+5820 2479   1.000000
+5821 2408 -30.000000
+5821 2478  30.000000
+5821 2480   1.000000
+5822 2413 -60.000000
+5822 2483  60.000000
+5822 2485   1.000000
+5823 2414 -30.000000
+5823 2484  30.000000
+5823 2486   1.000000
+5824 2417 -60.000000
+5824 2487  60.000000
+5824 2489   1.000000
+5825 2418 -30.000000
+5825 2488  30.000000
+5825 2490   1.000000
+5826 2421 -60.000000
+5826 2491  60.000000
+5826 2493   1.000000
+5827 2422 -30.000000
+5827 2492  30.000000
+5827 2494   1.000000
+5828 2427 -60.000000
+5828 2497  60.000000
+5828 2499   1.000000
+5829 2428 -30.000000
+5829 2498  30.000000
+5829 2500   1.000000
+5830 2431 -60.000000
+5830 2501  60.000000
+5830 2503   1.000000
+5831 2432 -30.000000
+5831 2502  30.000000
+5831 2504   1.000000
+5832 2435 -60.000000
+5832 2505  60.000000
+5832 2507   1.000000
+5833 2436 -30.000000
+5833 2506  30.000000
+5833 2508   1.000000
+5834 2441 -60.000000
+5834 2511  60.000000
+5834 2513   1.000000
+5835 2442 -30.000000
+5835 2512  30.000000
+5835 2514   1.000000
+5836 2445 -60.000000
+5836 2515  60.000000
+5836 2517   1.000000
+5837 2446 -30.000000
+5837 2516  30.000000
+5837 2518   1.000000
+5838 2449 -60.000000
+5838 2519  60.000000
+5838 2521   1.000000
+5839 2450 -30.000000
+5839 2520  30.000000
+5839 2522   1.000000
+5840 2455 -60.000000
+5840 2525  60.000000
+5840 2527   1.000000
+5841 2456 -30.000000
+5841 2526  30.000000
+5841 2528   1.000000
+5842 2459 -60.000000
+5842 2529  60.000000
+5842 2531   1.000000
+5843 2460 -30.000000
+5843 2530  30.000000
+5843 2532   1.000000
+5844 2463 -60.000000
+5844 2533  60.000000
+5844 2535   1.000000
+5845 2464 -30.000000
+5845 2534  30.000000
+5845 2536   1.000000
+5846 2469 -60.000000
+5846 2539  60.000000
+5846 2541   1.000000
+5847 2470 -30.000000
+5847 2540  30.000000
+5847 2542   1.000000
+5848 2473 -60.000000
+5848 2543  60.000000
+5848 2545   1.000000
+5849 2474 -30.000000
+5849 2544  30.000000
+5849 2546   1.000000
+5850 2477 -60.000000
+5850 2547  60.000000
+5850 2549   1.000000
+5851 2478 -30.000000
+5851 2548  30.000000
+5851 2550   1.000000
+5852 2483 -60.000000
+5852 2553  60.000000
+5852 2555   1.000000
+5853 2484 -30.000000
+5853 2554  30.000000
+5853 2556   1.000000
+5854 2487 -60.000000
+5854 2557  60.000000
+5854 2559   1.000000
+5855 2488 -30.000000
+5855 2558  30.000000
+5855 2560   1.000000
+5856 2491 -60.000000
+5856 2561  60.000000
+5856 2563   1.000000
+5857 2492 -30.000000
+5857 2562  30.000000
+5857 2564   1.000000
+5858 2497 -60.000000
+5858 2567  60.000000
+5858 2569   1.000000
+5859 2498 -30.000000
+5859 2568  30.000000
+5859 2570   1.000000
+5860 2501 -60.000000
+5860 2571  60.000000
+5860 2573   1.000000
+5861 2502 -30.000000
+5861 2572  30.000000
+5861 2574   1.000000
+5862 2505 -60.000000
+5862 2575  60.000000
+5862 2577   1.000000
+5863 2506 -30.000000
+5863 2576  30.000000
+5863 2578   1.000000
+5864 2511 -60.000000
+5864 2581  60.000000
+5864 2583   1.000000
+5865 2512 -30.000000
+5865 2582  30.000000
+5865 2584   1.000000
+5866 2515 -60.000000
+5866 2585  60.000000
+5866 2587   1.000000
+5867 2516 -30.000000
+5867 2586  30.000000
+5867 2588   1.000000
+5868 2519 -60.000000
+5868 2589  60.000000
+5868 2591   1.000000
+5869 2520 -30.000000
+5869 2590  30.000000
+5869 2592   1.000000
+5870 2525 -60.000000
+5870 2595  60.000000
+5870 2597   1.000000
+5871 2526 -30.000000
+5871 2596  30.000000
+5871 2598   1.000000
+5872 2529 -60.000000
+5872 2599  60.000000
+5872 2601   1.000000
+5873 2530 -30.000000
+5873 2600  30.000000
+5873 2602   1.000000
+5874 2533 -60.000000
+5874 2603  60.000000
+5874 2605   1.000000
+5875 2534 -30.000000
+5875 2604  30.000000
+5875 2606   1.000000
+5876 2539 -60.000000
+5876 2609  60.000000
+5876 2611   1.000000
+5877 2540 -30.000000
+5877 2610  30.000000
+5877 2612   1.000000
+5878 2543 -60.000000
+5878 2613  60.000000
+5878 2615   1.000000
+5879 2544 -30.000000
+5879 2614  30.000000
+5879 2616   1.000000
+5880 2547 -60.000000
+5880 2617  60.000000
+5880 2619   1.000000
+5881 2548 -30.000000
+5881 2618  30.000000
+5881 2620   1.000000
+5882 2553 -60.000000
+5882 2623  60.000000
+5882 2625   1.000000
+5883 2554 -30.000000
+5883 2624  30.000000
+5883 2626   1.000000
+5884 2557 -60.000000
+5884 2627  60.000000
+5884 2629   1.000000
+5885 2558 -30.000000
+5885 2628  30.000000
+5885 2630   1.000000
+5886 2561 -60.000000
+5886 2631  60.000000
+5886 2633   1.000000
+5887 2562 -30.000000
+5887 2632  30.000000
+5887 2634   1.000000
+5888 2567 -60.000000
+5888 2637  60.000000
+5888 2639   1.000000
+5889 2568 -30.000000
+5889 2638  30.000000
+5889 2640   1.000000
+5890 2571 -60.000000
+5890 2641  60.000000
+5890 2643   1.000000
+5891 2572 -30.000000
+5891 2642  30.000000
+5891 2644   1.000000
+5892 2575 -60.000000
+5892 2645  60.000000
+5892 2647   1.000000
+5893 2576 -30.000000
+5893 2646  30.000000
+5893 2648   1.000000
+5894 2581 -60.000000
+5894 2651  60.000000
+5894 2653   1.000000
+5895 2582 -30.000000
+5895 2652  30.000000
+5895 2654   1.000000
+5896 2585 -60.000000
+5896 2655  60.000000
+5896 2657   1.000000
+5897 2586 -30.000000
+5897 2656  30.000000
+5897 2658   1.000000
+5898 2589 -60.000000
+5898 2659  60.000000
+5898 2661   1.000000
+5899 2590 -30.000000
+5899 2660  30.000000
+5899 2662   1.000000
+5900 2595 -60.000000
+5900 2665  60.000000
+5900 2667   1.000000
+5901 2596 -30.000000
+5901 2666  30.000000
+5901 2668   1.000000
+5902 2599 -60.000000
+5902 2669  60.000000
+5902 2671   1.000000
+5903 2600 -30.000000
+5903 2670  30.000000
+5903 2672   1.000000
+5904 2603 -60.000000
+5904 2673  60.000000
+5904 2675   1.000000
+5905 2604 -30.000000
+5905 2674  30.000000
+5905 2676   1.000000
+5906 2609 -60.000000
+5906 2679  60.000000
+5906 2681   1.000000
+5907 2610 -30.000000
+5907 2680  30.000000
+5907 2682   1.000000
+5908 2613 -60.000000
+5908 2683  60.000000
+5908 2685   1.000000
+5909 2614 -30.000000
+5909 2684  30.000000
+5909 2686   1.000000
+5910 2617 -60.000000
+5910 2687  60.000000
+5910 2689   1.000000
+5911 2618 -30.000000
+5911 2688  30.000000
+5911 2690   1.000000
+5912 2623 -60.000000
+5912 2693  60.000000
+5912 2695   1.000000
+5913 2624 -30.000000
+5913 2694  30.000000
+5913 2696   1.000000
+5914 2627 -60.000000
+5914 2697  60.000000
+5914 2699   1.000000
+5915 2628 -30.000000
+5915 2698  30.000000
+5915 2700   1.000000
+5916 2631 -60.000000
+5916 2701  60.000000
+5916 2703   1.000000
+5917 2632 -30.000000
+5917 2702  30.000000
+5917 2704   1.000000
+5918 2637 -60.000000
+5918 2707  60.000000
+5918 2709   1.000000
+5919 2638 -30.000000
+5919 2708  30.000000
+5919 2710   1.000000
+5920 2641 -60.000000
+5920 2711  60.000000
+5920 2713   1.000000
+5921 2642 -30.000000
+5921 2712  30.000000
+5921 2714   1.000000
+5922 2645 -60.000000
+5922 2715  60.000000
+5922 2717   1.000000
+5923 2646 -30.000000
+5923 2716  30.000000
+5923 2718   1.000000
+5924 2651 -60.000000
+5924 2721  60.000000
+5924 2723   1.000000
+5925 2652 -30.000000
+5925 2722  30.000000
+5925 2724   1.000000
+5926 2655 -60.000000
+5926 2725  60.000000
+5926 2727   1.000000
+5927 2656 -30.000000
+5927 2726  30.000000
+5927 2728   1.000000
+5928 2659 -60.000000
+5928 2729  60.000000
+5928 2731   1.000000
+5929 2660 -30.000000
+5929 2730  30.000000
+5929 2732   1.000000
+5930 2665 -60.000000
+5930 2735  60.000000
+5930 2737   1.000000
+5931 2666 -30.000000
+5931 2736  30.000000
+5931 2738   1.000000
+5932 2669 -60.000000
+5932 2739  60.000000
+5932 2741   1.000000
+5933 2670 -30.000000
+5933 2740  30.000000
+5933 2742   1.000000
+5934 2673 -60.000000
+5934 2743  60.000000
+5934 2745   1.000000
+5935 2674 -30.000000
+5935 2744  30.000000
+5935 2746   1.000000
+5936 2679 -60.000000
+5936 2749  60.000000
+5936 2751   1.000000
+5937 2680 -30.000000
+5937 2750  30.000000
+5937 2752   1.000000
+5938 2683 -60.000000
+5938 2753  60.000000
+5938 2755   1.000000
+5939 2684 -30.000000
+5939 2754  30.000000
+5939 2756   1.000000
+5940 2687 -60.000000
+5940 2757  60.000000
+5940 2759   1.000000
+5941 2688 -30.000000
+5941 2758  30.000000
+5941 2760   1.000000
+5942 2693 -60.000000
+5942 2763  60.000000
+5942 2765   1.000000
+5943 2694 -30.000000
+5943 2764  30.000000
+5943 2766   1.000000
+5944 2697 -60.000000
+5944 2767  60.000000
+5944 2769   1.000000
+5945 2698 -30.000000
+5945 2768  30.000000
+5945 2770   1.000000
+5946 2701 -60.000000
+5946 2771  60.000000
+5946 2773   1.000000
+5947 2702 -30.000000
+5947 2772  30.000000
+5947 2774   1.000000
+5948 2707 -60.000000
+5948 2777  60.000000
+5948 2779   1.000000
+5949 2708 -30.000000
+5949 2778  30.000000
+5949 2780   1.000000
+5950 2711 -60.000000
+5950 2781  60.000000
+5950 2783   1.000000
+5951 2712 -30.000000
+5951 2782  30.000000
+5951 2784   1.000000
+5952 2715 -60.000000
+5952 2785  60.000000
+5952 2787   1.000000
+5953 2716 -30.000000
+5953 2786  30.000000
+5953 2788   1.000000
+5954 2721 -60.000000
+5954 2791  60.000000
+5954 2793   1.000000
+5955 2722 -30.000000
+5955 2792  30.000000
+5955 2794   1.000000
+5956 2725 -60.000000
+5956 2795  60.000000
+5956 2797   1.000000
+5957 2726 -30.000000
+5957 2796  30.000000
+5957 2798   1.000000
+5958 2729 -60.000000
+5958 2799  60.000000
+5958 2801   1.000000
+5959 2730 -30.000000
+5959 2800  30.000000
+5959 2802   1.000000
+5960 2735 -60.000000
+5960 2805  60.000000
+5960 2807   1.000000
+5961 2736 -30.000000
+5961 2806  30.000000
+5961 2808   1.000000
+5962 2739 -60.000000
+5962 2809  60.000000
+5962 2811   1.000000
+5963 2740 -30.000000
+5963 2810  30.000000
+5963 2812   1.000000
+5964 2743 -60.000000
+5964 2813  60.000000
+5964 2815   1.000000
+5965 2744 -30.000000
+5965 2814  30.000000
+5965 2816   1.000000
+5966 2749 -60.000000
+5966 2819  60.000000
+5966 2821   1.000000
+5967 2750 -30.000000
+5967 2820  30.000000
+5967 2822   1.000000
+5968 2753 -60.000000
+5968 2823  60.000000
+5968 2825   1.000000
+5969 2754 -30.000000
+5969 2824  30.000000
+5969 2826   1.000000
+5970 2757 -60.000000
+5970 2827  60.000000
+5970 2829   1.000000
+5971 2758 -30.000000
+5971 2828  30.000000
+5971 2830   1.000000
+5972 2763 -60.000000
+5972 2833  60.000000
+5972 2835   1.000000
+5973 2764 -30.000000
+5973 2834  30.000000
+5973 2836   1.000000
+5974 2767 -60.000000
+5974 2837  60.000000
+5974 2839   1.000000
+5975 2768 -30.000000
+5975 2838  30.000000
+5975 2840   1.000000
+5976 2771 -60.000000
+5976 2841  60.000000
+5976 2843   1.000000
+5977 2772 -30.000000
+5977 2842  30.000000
+5977 2844   1.000000
+5978 2777 -60.000000
+5978 2847  60.000000
+5978 2849   1.000000
+5979 2778 -30.000000
+5979 2848  30.000000
+5979 2850   1.000000
+5980 2781 -60.000000
+5980 2851  60.000000
+5980 2853   1.000000
+5981 2782 -30.000000
+5981 2852  30.000000
+5981 2854   1.000000
+5982 2785 -60.000000
+5982 2855  60.000000
+5982 2857   1.000000
+5983 2786 -30.000000
+5983 2856  30.000000
+5983 2858   1.000000
+5984 2791 -60.000000
+5984 2861  60.000000
+5984 2863   1.000000
+5985 2792 -30.000000
+5985 2862  30.000000
+5985 2864   1.000000
+5986 2795 -60.000000
+5986 2865  60.000000
+5986 2867   1.000000
+5987 2796 -30.000000
+5987 2866  30.000000
+5987 2868   1.000000
+5988 2799 -60.000000
+5988 2869  60.000000
+5988 2871   1.000000
+5989 2800 -30.000000
+5989 2870  30.000000
+5989 2872   1.000000
+5990 2805 -60.000000
+5990 2875  60.000000
+5990 2877   1.000000
+5991 2806 -30.000000
+5991 2876  30.000000
+5991 2878   1.000000
+5992 2809 -60.000000
+5992 2879  60.000000
+5992 2881   1.000000
+5993 2810 -30.000000
+5993 2880  30.000000
+5993 2882   1.000000
+5994 2813 -60.000000
+5994 2883  60.000000
+5994 2885   1.000000
+5995 2814 -30.000000
+5995 2884  30.000000
+5995 2886   1.000000
+5996 2819 -60.000000
+5996 2889  60.000000
+5996 2891   1.000000
+5997 2820 -30.000000
+5997 2890  30.000000
+5997 2892   1.000000
+5998 2823 -60.000000
+5998 2893  60.000000
+5998 2895   1.000000
+5999 2824 -30.000000
+5999 2894  30.000000
+5999 2896   1.000000
+6000 2827 -60.000000
+6000 2897  60.000000
+6000 2899   1.000000
+6001 2828 -30.000000
+6001 2898  30.000000
+6001 2900   1.000000
+6002 2833 -60.000000
+6002 2903  60.000000
+6002 2905   1.000000
+6003 2834 -30.000000
+6003 2904  30.000000
+6003 2906   1.000000
+6004 2837 -60.000000
+6004 2907  60.000000
+6004 2909   1.000000
+6005 2838 -30.000000
+6005 2908  30.000000
+6005 2910   1.000000
+6006 2841 -60.000000
+6006 2911  60.000000
+6006 2913   1.000000
+6007 2842 -30.000000
+6007 2912  30.000000
+6007 2914   1.000000
+6008 2847 -60.000000
+6008 2917  60.000000
+6008 2919   1.000000
+6009 2848 -30.000000
+6009 2918  30.000000
+6009 2920   1.000000
+6010 2851 -60.000000
+6010 2921  60.000000
+6010 2923   1.000000
+6011 2852 -30.000000
+6011 2922  30.000000
+6011 2924   1.000000
+6012 2855 -60.000000
+6012 2925  60.000000
+6012 2927   1.000000
+6013 2856 -30.000000
+6013 2926  30.000000
+6013 2928   1.000000
+6014 2861 -60.000000
+6014 2931  60.000000
+6014 2933   1.000000
+6015 2862 -30.000000
+6015 2932  30.000000
+6015 2934   1.000000
+6016 2865 -60.000000
+6016 2935  60.000000
+6016 2937   1.000000
+6017 2866 -30.000000
+6017 2936  30.000000
+6017 2938   1.000000
+6018 2869 -60.000000
+6018 2939  60.000000
+6018 2941   1.000000
+6019 2870 -30.000000
+6019 2940  30.000000
+6019 2942   1.000000
+6020 2875 -60.000000
+6020 2945  60.000000
+6020 2947   1.000000
+6021 2876 -30.000000
+6021 2946  30.000000
+6021 2948   1.000000
+6022 2879 -60.000000
+6022 2949  60.000000
+6022 2951   1.000000
+6023 2880 -30.000000
+6023 2950  30.000000
+6023 2952   1.000000
+6024 2883 -60.000000
+6024 2953  60.000000
+6024 2955   1.000000
+6025 2884 -30.000000
+6025 2954  30.000000
+6025 2956   1.000000
+6026 2889 -60.000000
+6026 2959  60.000000
+6026 2961   1.000000
+6027 2890 -30.000000
+6027 2960  30.000000
+6027 2962   1.000000
+6028 2893 -60.000000
+6028 2963  60.000000
+6028 2965   1.000000
+6029 2894 -30.000000
+6029 2964  30.000000
+6029 2966   1.000000
+6030 2897 -60.000000
+6030 2967  60.000000
+6030 2969   1.000000
+6031 2898 -30.000000
+6031 2968  30.000000
+6031 2970   1.000000
+6032 2903 -60.000000
+6032 2973  60.000000
+6032 2975   1.000000
+6033 2904 -30.000000
+6033 2974  30.000000
+6033 2976   1.000000
+6034 2907 -60.000000
+6034 2977  60.000000
+6034 2979   1.000000
+6035 2908 -30.000000
+6035 2978  30.000000
+6035 2980   1.000000
+6036 2911 -60.000000
+6036 2981  60.000000
+6036 2983   1.000000
+6037 2912 -30.000000
+6037 2982  30.000000
+6037 2984   1.000000
+6038 2917 -60.000000
+6038 2987  60.000000
+6038 2989   1.000000
+6039 2918 -30.000000
+6039 2988  30.000000
+6039 2990   1.000000
+6040 2921 -60.000000
+6040 2991  60.000000
+6040 2993   1.000000
+6041 2922 -30.000000
+6041 2992  30.000000
+6041 2994   1.000000
+6042 2925 -60.000000
+6042 2995  60.000000
+6042 2997   1.000000
+6043 2926 -30.000000
+6043 2996  30.000000
+6043 2998   1.000000
+6044 2931 -60.000000
+6044 3001  60.000000
+6044 3003   1.000000
+6045 2932 -30.000000
+6045 3002  30.000000
+6045 3004   1.000000
+6046 2935 -60.000000
+6046 3005  60.000000
+6046 3007   1.000000
+6047 2936 -30.000000
+6047 3006  30.000000
+6047 3008   1.000000
+6048 2939 -60.000000
+6048 3009  60.000000
+6048 3011   1.000000
+6049 2940 -30.000000
+6049 3010  30.000000
+6049 3012   1.000000
+6050 2945 -60.000000
+6050 3015  60.000000
+6050 3017   1.000000
+6051 2946 -30.000000
+6051 3016  30.000000
+6051 3018   1.000000
+6052 2949 -60.000000
+6052 3019  60.000000
+6052 3021   1.000000
+6053 2950 -30.000000
+6053 3020  30.000000
+6053 3022   1.000000
+6054 2953 -60.000000
+6054 3023  60.000000
+6054 3025   1.000000
+6055 2954 -30.000000
+6055 3024  30.000000
+6055 3026   1.000000
+6056 2959 -60.000000
+6056 3029  60.000000
+6056 3031   1.000000
+6057 2960 -30.000000
+6057 3030  30.000000
+6057 3032   1.000000
+6058 2963 -60.000000
+6058 3033  60.000000
+6058 3035   1.000000
+6059 2964 -30.000000
+6059 3034  30.000000
+6059 3036   1.000000
+6060 2967 -60.000000
+6060 3037  60.000000
+6060 3039   1.000000
+6061 2968 -30.000000
+6061 3038  30.000000
+6061 3040   1.000000
+6062 2973 -60.000000
+6062 3043  60.000000
+6062 3045   1.000000
+6063 2974 -30.000000
+6063 3044  30.000000
+6063 3046   1.000000
+6064 2977 -60.000000
+6064 3047  60.000000
+6064 3049   1.000000
+6065 2978 -30.000000
+6065 3048  30.000000
+6065 3050   1.000000
+6066 2981 -60.000000
+6066 3051  60.000000
+6066 3053   1.000000
+6067 2982 -30.000000
+6067 3052  30.000000
+6067 3054   1.000000
+6068 2987 -60.000000
+6068 3057  60.000000
+6068 3059   1.000000
+6069 2988 -30.000000
+6069 3058  30.000000
+6069 3060   1.000000
+6070 2991 -60.000000
+6070 3061  60.000000
+6070 3063   1.000000
+6071 2992 -30.000000
+6071 3062  30.000000
+6071 3064   1.000000
+6072 2995 -60.000000
+6072 3065  60.000000
+6072 3067   1.000000
+6073 2996 -30.000000
+6073 3066  30.000000
+6073 3068   1.000000
+6074 3001 -60.000000
+6074 3071  60.000000
+6074 3073   1.000000
+6075 3002 -30.000000
+6075 3072  30.000000
+6075 3074   1.000000
+6076 3005 -60.000000
+6076 3075  60.000000
+6076 3077   1.000000
+6077 3006 -30.000000
+6077 3076  30.000000
+6077 3078   1.000000
+6078 3009 -60.000000
+6078 3079  60.000000
+6078 3081   1.000000
+6079 3010 -30.000000
+6079 3080  30.000000
+6079 3082   1.000000
+6080 3015 -60.000000
+6080 3085  60.000000
+6080 3087   1.000000
+6081 3016 -30.000000
+6081 3086  30.000000
+6081 3088   1.000000
+6082 3019 -60.000000
+6082 3089  60.000000
+6082 3091   1.000000
+6083 3020 -30.000000
+6083 3090  30.000000
+6083 3092   1.000000
+6084 3023 -60.000000
+6084 3093  60.000000
+6084 3095   1.000000
+6085 3024 -30.000000
+6085 3094  30.000000
+6085 3096   1.000000
+6086 3029 -60.000000
+6086 3099  60.000000
+6086 3101   1.000000
+6087 3030 -30.000000
+6087 3100  30.000000
+6087 3102   1.000000
+6088 3033 -60.000000
+6088 3103  60.000000
+6088 3105   1.000000
+6089 3034 -30.000000
+6089 3104  30.000000
+6089 3106   1.000000
+6090 3037 -60.000000
+6090 3107  60.000000
+6090 3109   1.000000
+6091 3038 -30.000000
+6091 3108  30.000000
+6091 3110   1.000000
+6092 3043 -60.000000
+6092 3113  60.000000
+6092 3115   1.000000
+6093 3044 -30.000000
+6093 3114  30.000000
+6093 3116   1.000000
+6094 3047 -60.000000
+6094 3117  60.000000
+6094 3119   1.000000
+6095 3048 -30.000000
+6095 3118  30.000000
+6095 3120   1.000000
+6096 3051 -60.000000
+6096 3121  60.000000
+6096 3123   1.000000
+6097 3052 -30.000000
+6097 3122  30.000000
+6097 3124   1.000000
+6098 3057 -60.000000
+6098 3127  60.000000
+6098 3129   1.000000
+6099 3058 -30.000000
+6099 3128  30.000000
+6099 3130   1.000000
+6100 3061 -60.000000
+6100 3131  60.000000
+6100 3133   1.000000
+6101 3062 -30.000000
+6101 3132  30.000000
+6101 3134   1.000000
+6102 3065 -60.000000
+6102 3135  60.000000
+6102 3137   1.000000
+6103 3066 -30.000000
+6103 3136  30.000000
+6103 3138   1.000000
+6104 3071 -60.000000
+6104 3141  60.000000
+6104 3143   1.000000
+6105 3072 -30.000000
+6105 3142  30.000000
+6105 3144   1.000000
+6106 3075 -60.000000
+6106 3145  60.000000
+6106 3147   1.000000
+6107 3076 -30.000000
+6107 3146  30.000000
+6107 3148   1.000000
+6108 3079 -60.000000
+6108 3149  60.000000
+6108 3151   1.000000
+6109 3080 -30.000000
+6109 3150  30.000000
+6109 3152   1.000000
+6110 3085 -60.000000
+6110 3155  60.000000
+6110 3157   1.000000
+6111 3086 -30.000000
+6111 3156  30.000000
+6111 3158   1.000000
+6112 3089 -60.000000
+6112 3159  60.000000
+6112 3161   1.000000
+6113 3090 -30.000000
+6113 3160  30.000000
+6113 3162   1.000000
+6114 3093 -60.000000
+6114 3163  60.000000
+6114 3165   1.000000
+6115 3094 -30.000000
+6115 3164  30.000000
+6115 3166   1.000000
+6116 3099 -60.000000
+6116 3169  60.000000
+6116 3171   1.000000
+6117 3100 -30.000000
+6117 3170  30.000000
+6117 3172   1.000000
+6118 3103 -60.000000
+6118 3173  60.000000
+6118 3175   1.000000
+6119 3104 -30.000000
+6119 3174  30.000000
+6119 3176   1.000000
+6120 3107 -60.000000
+6120 3177  60.000000
+6120 3179   1.000000
+6121 3108 -30.000000
+6121 3178  30.000000
+6121 3180   1.000000
+6122 3113 -60.000000
+6122 3183  60.000000
+6122 3185   1.000000
+6123 3114 -30.000000
+6123 3184  30.000000
+6123 3186   1.000000
+6124 3117 -60.000000
+6124 3187  60.000000
+6124 3189   1.000000
+6125 3118 -30.000000
+6125 3188  30.000000
+6125 3190   1.000000
+6126 3121 -60.000000
+6126 3191  60.000000
+6126 3193   1.000000
+6127 3122 -30.000000
+6127 3192  30.000000
+6127 3194   1.000000
+6128 3127 -60.000000
+6128 3197  60.000000
+6128 3199   1.000000
+6129 3128 -30.000000
+6129 3198  30.000000
+6129 3200   1.000000
+6130 3131 -60.000000
+6130 3201  60.000000
+6130 3203   1.000000
+6131 3132 -30.000000
+6131 3202  30.000000
+6131 3204   1.000000
+6132 3135 -60.000000
+6132 3205  60.000000
+6132 3207   1.000000
+6133 3136 -30.000000
+6133 3206  30.000000
+6133 3208   1.000000
+6134 3141 -60.000000
+6134 3211  60.000000
+6134 3213   1.000000
+6135 3142 -30.000000
+6135 3212  30.000000
+6135 3214   1.000000
+6136 3145 -60.000000
+6136 3215  60.000000
+6136 3217   1.000000
+6137 3146 -30.000000
+6137 3216  30.000000
+6137 3218   1.000000
+6138 3149 -60.000000
+6138 3219  60.000000
+6138 3221   1.000000
+6139 3150 -30.000000
+6139 3220  30.000000
+6139 3222   1.000000
+6140 3155 -60.000000
+6140 3225  60.000000
+6140 3227   1.000000
+6141 3156 -30.000000
+6141 3226  30.000000
+6141 3228   1.000000
+6142 3159 -60.000000
+6142 3229  60.000000
+6142 3231   1.000000
+6143 3160 -30.000000
+6143 3230  30.000000
+6143 3232   1.000000
+6144 3163 -60.000000
+6144 3233  60.000000
+6144 3235   1.000000
+6145 3164 -30.000000
+6145 3234  30.000000
+6145 3236   1.000000
+6146 3169 -60.000000
+6146 3239  60.000000
+6146 3241   1.000000
+6147 3170 -30.000000
+6147 3240  30.000000
+6147 3242   1.000000
+6148 3173 -60.000000
+6148 3243  60.000000
+6148 3245   1.000000
+6149 3174 -30.000000
+6149 3244  30.000000
+6149 3246   1.000000
+6150 3177 -60.000000
+6150 3247  60.000000
+6150 3249   1.000000
+6151 3178 -30.000000
+6151 3248  30.000000
+6151 3250   1.000000
+6152 3183 -60.000000
+6152 3253  60.000000
+6152 3255   1.000000
+6153 3184 -30.000000
+6153 3254  30.000000
+6153 3256   1.000000
+6154 3187 -60.000000
+6154 3257  60.000000
+6154 3259   1.000000
+6155 3188 -30.000000
+6155 3258  30.000000
+6155 3260   1.000000
+6156 3191 -60.000000
+6156 3261  60.000000
+6156 3263   1.000000
+6157 3192 -30.000000
+6157 3262  30.000000
+6157 3264   1.000000
+6158 3197 -60.000000
+6158 3267  60.000000
+6158 3269   1.000000
+6159 3198 -30.000000
+6159 3268  30.000000
+6159 3270   1.000000
+6160 3201 -60.000000
+6160 3271  60.000000
+6160 3273   1.000000
+6161 3202 -30.000000
+6161 3272  30.000000
+6161 3274   1.000000
+6162 3205 -60.000000
+6162 3275  60.000000
+6162 3277   1.000000
+6163 3206 -30.000000
+6163 3276  30.000000
+6163 3278   1.000000
+6164 3211 -60.000000
+6164 3281  60.000000
+6164 3283   1.000000
+6165 3212 -30.000000
+6165 3282  30.000000
+6165 3284   1.000000
+6166 3215 -60.000000
+6166 3285  60.000000
+6166 3287   1.000000
+6167 3216 -30.000000
+6167 3286  30.000000
+6167 3288   1.000000
+6168 3219 -60.000000
+6168 3289  60.000000
+6168 3291   1.000000
+6169 3220 -30.000000
+6169 3290  30.000000
+6169 3292   1.000000
+6170 3225 -60.000000
+6170 3295  60.000000
+6170 3297   1.000000
+6171 3226 -30.000000
+6171 3296  30.000000
+6171 3298   1.000000
+6172 3229 -60.000000
+6172 3299  60.000000
+6172 3301   1.000000
+6173 3230 -30.000000
+6173 3300  30.000000
+6173 3302   1.000000
+6174 3233 -60.000000
+6174 3303  60.000000
+6174 3305   1.000000
+6175 3234 -30.000000
+6175 3304  30.000000
+6175 3306   1.000000
+6176 3239 -60.000000
+6176 3309  60.000000
+6176 3311   1.000000
+6177 3240 -30.000000
+6177 3310  30.000000
+6177 3312   1.000000
+6178 3243 -60.000000
+6178 3313  60.000000
+6178 3315   1.000000
+6179 3244 -30.000000
+6179 3314  30.000000
+6179 3316   1.000000
+6180 3247 -60.000000
+6180 3317  60.000000
+6180 3319   1.000000
+6181 3248 -30.000000
+6181 3318  30.000000
+6181 3320   1.000000
+6182 3253 -60.000000
+6182 3323  60.000000
+6182 3325   1.000000
+6183 3254 -30.000000
+6183 3324  30.000000
+6183 3326   1.000000
+6184 3257 -60.000000
+6184 3327  60.000000
+6184 3329   1.000000
+6185 3258 -30.000000
+6185 3328  30.000000
+6185 3330   1.000000
+6186 3261 -60.000000
+6186 3331  60.000000
+6186 3333   1.000000
+6187 3262 -30.000000
+6187 3332  30.000000
+6187 3334   1.000000
+6188 3267 -60.000000
+6188 3337  60.000000
+6188 3339   1.000000
+6189 3268 -30.000000
+6189 3338  30.000000
+6189 3340   1.000000
+6190 3271 -60.000000
+6190 3341  60.000000
+6190 3343   1.000000
+6191 3272 -30.000000
+6191 3342  30.000000
+6191 3344   1.000000
+6192 3275 -60.000000
+6192 3345  60.000000
+6192 3347   1.000000
+6193 3276 -30.000000
+6193 3346  30.000000
+6193 3348   1.000000
+6194 3281 -60.000000
+6194 3351  60.000000
+6194 3353   1.000000
+6195 3282 -30.000000
+6195 3352  30.000000
+6195 3354   1.000000
+6196 3285 -60.000000
+6196 3355  60.000000
+6196 3357   1.000000
+6197 3286 -30.000000
+6197 3356  30.000000
+6197 3358   1.000000
+6198 3289 -60.000000
+6198 3359  60.000000
+6198 3361   1.000000
+6199 3290 -30.000000
+6199 3360  30.000000
+6199 3362   1.000000
+6200 3295 -60.000000
+6200 3365  60.000000
+6200 3367   1.000000
+6201 3296 -30.000000
+6201 3366  30.000000
+6201 3368   1.000000
+6202 3299 -60.000000
+6202 3369  60.000000
+6202 3371   1.000000
+6203 3300 -30.000000
+6203 3370  30.000000
+6203 3372   1.000000
+6204 3303 -60.000000
+6204 3373  60.000000
+6204 3375   1.000000
+6205 3304 -30.000000
+6205 3374  30.000000
+6205 3376   1.000000
+6206 3309 -60.000000
+6206 3379  60.000000
+6206 3381   1.000000
+6207 3310 -30.000000
+6207 3380  30.000000
+6207 3382   1.000000
+6208 3313 -60.000000
+6208 3383  60.000000
+6208 3385   1.000000
+6209 3314 -30.000000
+6209 3384  30.000000
+6209 3386   1.000000
+6210 3317 -60.000000
+6210 3387  60.000000
+6210 3389   1.000000
+6211 3318 -30.000000
+6211 3388  30.000000
+6211 3390   1.000000
+6212 3323 -60.000000
+6212 3393  60.000000
+6212 3395   1.000000
+6213 3324 -30.000000
+6213 3394  30.000000
+6213 3396   1.000000
+6214 3327 -60.000000
+6214 3397  60.000000
+6214 3399   1.000000
+6215 3328 -30.000000
+6215 3398  30.000000
+6215 3400   1.000000
+6216 3331 -60.000000
+6216 3401  60.000000
+6216 3403   1.000000
+6217 3332 -30.000000
+6217 3402  30.000000
+6217 3404   1.000000
+6218 3337 -60.000000
+6218 3407  60.000000
+6218 3409   1.000000
+6219 3338 -30.000000
+6219 3408  30.000000
+6219 3410   1.000000
+6220 3341 -60.000000
+6220 3411  60.000000
+6220 3413   1.000000
+6221 3342 -30.000000
+6221 3412  30.000000
+6221 3414   1.000000
+6222 3345 -60.000000
+6222 3415  60.000000
+6222 3417   1.000000
+6223 3346 -30.000000
+6223 3416  30.000000
+6223 3418   1.000000
+6224 3351 -60.000000
+6224 3421  60.000000
+6224 3423   1.000000
+6225 3352 -30.000000
+6225 3422  30.000000
+6225 3424   1.000000
+6226 3355 -60.000000
+6226 3425  60.000000
+6226 3427   1.000000
+6227 3356 -30.000000
+6227 3426  30.000000
+6227 3428   1.000000
+6228 3359 -60.000000
+6228 3429  60.000000
+6228 3431   1.000000
+6229 3360 -30.000000
+6229 3430  30.000000
+6229 3432   1.000000
+6230 3365 -60.000000
+6230 3435  60.000000
+6230 3437   1.000000
+6231 3366 -30.000000
+6231 3436  30.000000
+6231 3438   1.000000
+6232 3369 -60.000000
+6232 3439  60.000000
+6232 3441   1.000000
+6233 3370 -30.000000
+6233 3440  30.000000
+6233 3442   1.000000
+6234 3373 -60.000000
+6234 3443  60.000000
+6234 3445   1.000000
+6235 3374 -30.000000
+6235 3444  30.000000
+6235 3446   1.000000
+6236 3379 -60.000000
+6236 3449  60.000000
+6236 3451   1.000000
+6237 3380 -30.000000
+6237 3450  30.000000
+6237 3452   1.000000
+6238 3383 -60.000000
+6238 3453  60.000000
+6238 3455   1.000000
+6239 3384 -30.000000
+6239 3454  30.000000
+6239 3456   1.000000
+6240 3387 -60.000000
+6240 3457  60.000000
+6240 3459   1.000000
+6241 3388 -30.000000
+6241 3458  30.000000
+6241 3460   1.000000
+6242 3393 -60.000000
+6242 3463  60.000000
+6242 3465   1.000000
+6243 3394 -30.000000
+6243 3464  30.000000
+6243 3466   1.000000
+6244 3397 -60.000000
+6244 3467  60.000000
+6244 3469   1.000000
+6245 3398 -30.000000
+6245 3468  30.000000
+6245 3470   1.000000
+6246 3401 -60.000000
+6246 3471  60.000000
+6246 3473   1.000000
+6247 3402 -30.000000
+6247 3472  30.000000
+6247 3474   1.000000
+6248 3407 -60.000000
+6248 3477  60.000000
+6248 3479   1.000000
+6249 3408 -30.000000
+6249 3478  30.000000
+6249 3480   1.000000
+6250 3411 -60.000000
+6250 3481  60.000000
+6250 3483   1.000000
+6251 3412 -30.000000
+6251 3482  30.000000
+6251 3484   1.000000
+6252 3415 -60.000000
+6252 3485  60.000000
+6252 3487   1.000000
+6253 3416 -30.000000
+6253 3486  30.000000
+6253 3488   1.000000
+6254 3421 -60.000000
+6254 3491  60.000000
+6254 3493   1.000000
+6255 3422 -30.000000
+6255 3492  30.000000
+6255 3494   1.000000
+6256 3425 -60.000000
+6256 3495  60.000000
+6256 3497   1.000000
+6257 3426 -30.000000
+6257 3496  30.000000
+6257 3498   1.000000
+6258 3429 -60.000000
+6258 3499  60.000000
+6258 3501   1.000000
+6259 3430 -30.000000
+6259 3500  30.000000
+6259 3502   1.000000
+6260 3435 -60.000000
+6260 3505  60.000000
+6260 3507   1.000000
+6261 3436 -30.000000
+6261 3506  30.000000
+6261 3508   1.000000
+6262 3439 -60.000000
+6262 3509  60.000000
+6262 3511   1.000000
+6263 3440 -30.000000
+6263 3510  30.000000
+6263 3512   1.000000
+6264 3443 -60.000000
+6264 3513  60.000000
+6264 3515   1.000000
+6265 3444 -30.000000
+6265 3514  30.000000
+6265 3516   1.000000
+6266 3449 -60.000000
+6266 3519  60.000000
+6266 3521   1.000000
+6267 3450 -30.000000
+6267 3520  30.000000
+6267 3522   1.000000
+6268 3453 -60.000000
+6268 3523  60.000000
+6268 3525   1.000000
+6269 3454 -30.000000
+6269 3524  30.000000
+6269 3526   1.000000
+6270 3457 -60.000000
+6270 3527  60.000000
+6270 3529   1.000000
+6271 3458 -30.000000
+6271 3528  30.000000
+6271 3530   1.000000
+6272 3463 -60.000000
+6272 3533  60.000000
+6272 3535   1.000000
+6273 3464 -30.000000
+6273 3534  30.000000
+6273 3536   1.000000
+6274 3467 -60.000000
+6274 3537  60.000000
+6274 3539   1.000000
+6275 3468 -30.000000
+6275 3538  30.000000
+6275 3540   1.000000
+6276 3471 -60.000000
+6276 3541  60.000000
+6276 3543   1.000000
+6277 3472 -30.000000
+6277 3542  30.000000
+6277 3544   1.000000
+6278 3477 -60.000000
+6278 3547  60.000000
+6278 3549   1.000000
+6279 3478 -30.000000
+6279 3548  30.000000
+6279 3550   1.000000
+6280 3481 -60.000000
+6280 3551  60.000000
+6280 3553   1.000000
+6281 3482 -30.000000
+6281 3552  30.000000
+6281 3554   1.000000
+6282 3485 -60.000000
+6282 3555  60.000000
+6282 3557   1.000000
+6283 3486 -30.000000
+6283 3556  30.000000
+6283 3558   1.000000
+6284 3491 -60.000000
+6284 3561  60.000000
+6284 3563   1.000000
+6285 3492 -30.000000
+6285 3562  30.000000
+6285 3564   1.000000
+6286 3495 -60.000000
+6286 3565  60.000000
+6286 3567   1.000000
+6287 3496 -30.000000
+6287 3566  30.000000
+6287 3568   1.000000
+6288 3499 -60.000000
+6288 3569  60.000000
+6288 3571   1.000000
+6289 3500 -30.000000
+6289 3570  30.000000
+6289 3572   1.000000
+6290 3505 -60.000000
+6290 3575  60.000000
+6290 3577   1.000000
+6291 3506 -30.000000
+6291 3576  30.000000
+6291 3578   1.000000
+6292 3509 -60.000000
+6292 3579  60.000000
+6292 3581   1.000000
+6293 3510 -30.000000
+6293 3580  30.000000
+6293 3582   1.000000
+6294 3513 -60.000000
+6294 3583  60.000000
+6294 3585   1.000000
+6295 3514 -30.000000
+6295 3584  30.000000
+6295 3586   1.000000
+6296 3519 -60.000000
+6296 3589  60.000000
+6296 3591   1.000000
+6297 3520 -30.000000
+6297 3590  30.000000
+6297 3592   1.000000
+6298 3523 -60.000000
+6298 3593  60.000000
+6298 3595   1.000000
+6299 3524 -30.000000
+6299 3594  30.000000
+6299 3596   1.000000
+6300 3527 -60.000000
+6300 3597  60.000000
+6300 3599   1.000000
+6301 3528 -30.000000
+6301 3598  30.000000
+6301 3600   1.000000
+6302 3533 -60.000000
+6302 3603  60.000000
+6302 3605   1.000000
+6303 3534 -30.000000
+6303 3604  30.000000
+6303 3606   1.000000
+6304 3537 -60.000000
+6304 3607  60.000000
+6304 3609   1.000000
+6305 3538 -30.000000
+6305 3608  30.000000
+6305 3610   1.000000
+6306 3541 -60.000000
+6306 3611  60.000000
+6306 3613   1.000000
+6307 3542 -30.000000
+6307 3612  30.000000
+6307 3614   1.000000
+6308 3547 -60.000000
+6308 3617  60.000000
+6308 3619   1.000000
+6309 3548 -30.000000
+6309 3618  30.000000
+6309 3620   1.000000
+6310 3551 -60.000000
+6310 3621  60.000000
+6310 3623   1.000000
+6311 3552 -30.000000
+6311 3622  30.000000
+6311 3624   1.000000
+6312 3555 -60.000000
+6312 3625  60.000000
+6312 3627   1.000000
+6313 3556 -30.000000
+6313 3626  30.000000
+6313 3628   1.000000
+6314 3561 -60.000000
+6314 3631  60.000000
+6314 3633   1.000000
+6315 3562 -30.000000
+6315 3632  30.000000
+6315 3634   1.000000
+6316 3565 -60.000000
+6316 3635  60.000000
+6316 3637   1.000000
+6317 3566 -30.000000
+6317 3636  30.000000
+6317 3638   1.000000
+6318 3569 -60.000000
+6318 3639  60.000000
+6318 3641   1.000000
+6319 3570 -30.000000
+6319 3640  30.000000
+6319 3642   1.000000
+6320 3575 -60.000000
+6320 3645  60.000000
+6320 3647   1.000000
+6321 3576 -30.000000
+6321 3646  30.000000
+6321 3648   1.000000
+6322 3579 -60.000000
+6322 3649  60.000000
+6322 3651   1.000000
+6323 3580 -30.000000
+6323 3650  30.000000
+6323 3652   1.000000
+6324 3583 -60.000000
+6324 3653  60.000000
+6324 3655   1.000000
+6325 3584 -30.000000
+6325 3654  30.000000
+6325 3656   1.000000
+6326 3589 -60.000000
+6326 3659  60.000000
+6326 3661   1.000000
+6327 3590 -30.000000
+6327 3660  30.000000
+6327 3662   1.000000
+6328 3593 -60.000000
+6328 3663  60.000000
+6328 3665   1.000000
+6329 3594 -30.000000
+6329 3664  30.000000
+6329 3666   1.000000
+6330 3597 -60.000000
+6330 3667  60.000000
+6330 3669   1.000000
+6331 3598 -30.000000
+6331 3668  30.000000
+6331 3670   1.000000
+6332 3603 -60.000000
+6332 3673  60.000000
+6332 3675   1.000000
+6333 3604 -30.000000
+6333 3674  30.000000
+6333 3676   1.000000
+6334 3607 -60.000000
+6334 3677  60.000000
+6334 3679   1.000000
+6335 3608 -30.000000
+6335 3678  30.000000
+6335 3680   1.000000
+6336 3611 -60.000000
+6336 3681  60.000000
+6336 3683   1.000000
+6337 3612 -30.000000
+6337 3682  30.000000
+6337 3684   1.000000
+6338 3617 -60.000000
+6338 3687  60.000000
+6338 3689   1.000000
+6339 3618 -30.000000
+6339 3688  30.000000
+6339 3690   1.000000
+6340 3621 -60.000000
+6340 3691  60.000000
+6340 3693   1.000000
+6341 3622 -30.000000
+6341 3692  30.000000
+6341 3694   1.000000
+6342 3625 -60.000000
+6342 3695  60.000000
+6342 3697   1.000000
+6343 3626 -30.000000
+6343 3696  30.000000
+6343 3698   1.000000
+6344 3631 -60.000000
+6344 3701  60.000000
+6344 3703   1.000000
+6345 3632 -30.000000
+6345 3702  30.000000
+6345 3704   1.000000
+6346 3635 -60.000000
+6346 3705  60.000000
+6346 3707   1.000000
+6347 3636 -30.000000
+6347 3706  30.000000
+6347 3708   1.000000
+6348 3639 -60.000000
+6348 3709  60.000000
+6348 3711   1.000000
+6349 3640 -30.000000
+6349 3710  30.000000
+6349 3712   1.000000
+6350 3645 -60.000000
+6350 3715  60.000000
+6350 3717   1.000000
+6351 3646 -30.000000
+6351 3716  30.000000
+6351 3718   1.000000
+6352 3649 -60.000000
+6352 3719  60.000000
+6352 3721   1.000000
+6353 3650 -30.000000
+6353 3720  30.000000
+6353 3722   1.000000
+6354 3653 -60.000000
+6354 3723  60.000000
+6354 3725   1.000000
+6355 3654 -30.000000
+6355 3724  30.000000
+6355 3726   1.000000
+6356 3659 -60.000000
+6356 3729  60.000000
+6356 3731   1.000000
+6357 3660 -30.000000
+6357 3730  30.000000
+6357 3732   1.000000
+6358 3663 -60.000000
+6358 3733  60.000000
+6358 3735   1.000000
+6359 3664 -30.000000
+6359 3734  30.000000
+6359 3736   1.000000
+6360 3667 -60.000000
+6360 3737  60.000000
+6360 3739   1.000000
+6361 3668 -30.000000
+6361 3738  30.000000
+6361 3740   1.000000
+6362 3673 -60.000000
+6362 3743  60.000000
+6362 3745   1.000000
+6363 3674 -30.000000
+6363 3744  30.000000
+6363 3746   1.000000
+6364 3677 -60.000000
+6364 3747  60.000000
+6364 3749   1.000000
+6365 3678 -30.000000
+6365 3748  30.000000
+6365 3750   1.000000
+6366 3681 -60.000000
+6366 3751  60.000000
+6366 3753   1.000000
+6367 3682 -30.000000
+6367 3752  30.000000
+6367 3754   1.000000
+6368 3687 -60.000000
+6368 3757  60.000000
+6368 3759   1.000000
+6369 3688 -30.000000
+6369 3758  30.000000
+6369 3760   1.000000
+6370 3691 -60.000000
+6370 3761  60.000000
+6370 3763   1.000000
+6371 3692 -30.000000
+6371 3762  30.000000
+6371 3764   1.000000
+6372 3695 -60.000000
+6372 3765  60.000000
+6372 3767   1.000000
+6373 3696 -30.000000
+6373 3766  30.000000
+6373 3768   1.000000
+6374 3701 -60.000000
+6374 3771  60.000000
+6374 3773   1.000000
+6375 3702 -30.000000
+6375 3772  30.000000
+6375 3774   1.000000
+6376 3705 -60.000000
+6376 3775  60.000000
+6376 3777   1.000000
+6377 3706 -30.000000
+6377 3776  30.000000
+6377 3778   1.000000
+6378 3709 -60.000000
+6378 3779  60.000000
+6378 3781   1.000000
+6379 3710 -30.000000
+6379 3780  30.000000
+6379 3782   1.000000
+6380 3715 -60.000000
+6380 3785  60.000000
+6380 3787   1.000000
+6381 3716 -30.000000
+6381 3786  30.000000
+6381 3788   1.000000
+6382 3719 -60.000000
+6382 3789  60.000000
+6382 3791   1.000000
+6383 3720 -30.000000
+6383 3790  30.000000
+6383 3792   1.000000
+6384 3723 -60.000000
+6384 3793  60.000000
+6384 3795   1.000000
+6385 3724 -30.000000
+6385 3794  30.000000
+6385 3796   1.000000
+6386 3729 -60.000000
+6386 3799  60.000000
+6386 3801   1.000000
+6387 3730 -30.000000
+6387 3800  30.000000
+6387 3802   1.000000
+6388 3733 -60.000000
+6388 3803  60.000000
+6388 3805   1.000000
+6389 3734 -30.000000
+6389 3804  30.000000
+6389 3806   1.000000
+6390 3737 -60.000000
+6390 3807  60.000000
+6390 3809   1.000000
+6391 3738 -30.000000
+6391 3808  30.000000
+6391 3810   1.000000
+6392 3743 -60.000000
+6392 3813  60.000000
+6392 3815   1.000000
+6393 3744 -30.000000
+6393 3814  30.000000
+6393 3816   1.000000
+6394 3747 -60.000000
+6394 3817  60.000000
+6394 3819   1.000000
+6395 3748 -30.000000
+6395 3818  30.000000
+6395 3820   1.000000
+6396 3751 -60.000000
+6396 3821  60.000000
+6396 3823   1.000000
+6397 3752 -30.000000
+6397 3822  30.000000
+6397 3824   1.000000
+6398 3757 -60.000000
+6398 3827  60.000000
+6398 3829   1.000000
+6399 3758 -30.000000
+6399 3828  30.000000
+6399 3830   1.000000
+6400 3761 -60.000000
+6400 3831  60.000000
+6400 3833   1.000000
+6401 3762 -30.000000
+6401 3832  30.000000
+6401 3834   1.000000
+6402 3765 -60.000000
+6402 3835  60.000000
+6402 3837   1.000000
+6403 3766 -30.000000
+6403 3836  30.000000
+6403 3838   1.000000
+6404 3771 -60.000000
+6404 3841  60.000000
+6404 3843   1.000000
+6405 3772 -30.000000
+6405 3842  30.000000
+6405 3844   1.000000
+6406 3775 -60.000000
+6406 3845  60.000000
+6406 3847   1.000000
+6407 3776 -30.000000
+6407 3846  30.000000
+6407 3848   1.000000
+6408 3779 -60.000000
+6408 3849  60.000000
+6408 3851   1.000000
+6409 3780 -30.000000
+6409 3850  30.000000
+6409 3852   1.000000
+6410 3785 -60.000000
+6410 3855  60.000000
+6410 3857   1.000000
+6411 3786 -30.000000
+6411 3856  30.000000
+6411 3858   1.000000
+6412 3789 -60.000000
+6412 3859  60.000000
+6412 3861   1.000000
+6413 3790 -30.000000
+6413 3860  30.000000
+6413 3862   1.000000
+6414 3793 -60.000000
+6414 3863  60.000000
+6414 3865   1.000000
+6415 3794 -30.000000
+6415 3864  30.000000
+6415 3866   1.000000
+6416 3799 -60.000000
+6416 3869  60.000000
+6416 3871   1.000000
+6417 3800 -30.000000
+6417 3870  30.000000
+6417 3872   1.000000
+6418 3803 -60.000000
+6418 3873  60.000000
+6418 3875   1.000000
+6419 3804 -30.000000
+6419 3874  30.000000
+6419 3876   1.000000
+6420 3807 -60.000000
+6420 3877  60.000000
+6420 3879   1.000000
+6421 3808 -30.000000
+6421 3878  30.000000
+6421 3880   1.000000
+6422 3813 -60.000000
+6422 3883  60.000000
+6422 3885   1.000000
+6423 3814 -30.000000
+6423 3884  30.000000
+6423 3886   1.000000
+6424 3817 -60.000000
+6424 3887  60.000000
+6424 3889   1.000000
+6425 3818 -30.000000
+6425 3888  30.000000
+6425 3890   1.000000
+6426 3821 -60.000000
+6426 3891  60.000000
+6426 3893   1.000000
+6427 3822 -30.000000
+6427 3892  30.000000
+6427 3894   1.000000
+6428 3827 -60.000000
+6428 3897  60.000000
+6428 3899   1.000000
+6429 3828 -30.000000
+6429 3898  30.000000
+6429 3900   1.000000
+6430 3831 -60.000000
+6430 3901  60.000000
+6430 3903   1.000000
+6431 3832 -30.000000
+6431 3902  30.000000
+6431 3904   1.000000
+6432 3835 -60.000000
+6432 3905  60.000000
+6432 3907   1.000000
+6433 3836 -30.000000
+6433 3906  30.000000
+6433 3908   1.000000
+6434 3841 -60.000000
+6434 3911  60.000000
+6434 3913   1.000000
+6435 3842 -30.000000
+6435 3912  30.000000
+6435 3914   1.000000
+6436 3845 -60.000000
+6436 3915  60.000000
+6436 3917   1.000000
+6437 3846 -30.000000
+6437 3916  30.000000
+6437 3918   1.000000
+6438 3849 -60.000000
+6438 3919  60.000000
+6438 3921   1.000000
+6439 3850 -30.000000
+6439 3920  30.000000
+6439 3922   1.000000
+6440 3855 -60.000000
+6440 3925  60.000000
+6440 3927   1.000000
+6441 3856 -30.000000
+6441 3926  30.000000
+6441 3928   1.000000
+6442 3859 -60.000000
+6442 3929  60.000000
+6442 3931   1.000000
+6443 3860 -30.000000
+6443 3930  30.000000
+6443 3932   1.000000
+6444 3863 -60.000000
+6444 3933  60.000000
+6444 3935   1.000000
+6445 3864 -30.000000
+6445 3934  30.000000
+6445 3936   1.000000
+6446 3869 -60.000000
+6446 3939  60.000000
+6446 3941   1.000000
+6447 3870 -30.000000
+6447 3940  30.000000
+6447 3942   1.000000
+6448 3873 -60.000000
+6448 3943  60.000000
+6448 3945   1.000000
+6449 3874 -30.000000
+6449 3944  30.000000
+6449 3946   1.000000
+6450 3877 -60.000000
+6450 3947  60.000000
+6450 3949   1.000000
+6451 3878 -30.000000
+6451 3948  30.000000
+6451 3950   1.000000
+6452 3883 -60.000000
+6452 3953  60.000000
+6452 3955   1.000000
+6453 3884 -30.000000
+6453 3954  30.000000
+6453 3956   1.000000
+6454 3887 -60.000000
+6454 3957  60.000000
+6454 3959   1.000000
+6455 3888 -30.000000
+6455 3958  30.000000
+6455 3960   1.000000
+6456 3891 -60.000000
+6456 3961  60.000000
+6456 3963   1.000000
+6457 3892 -30.000000
+6457 3962  30.000000
+6457 3964   1.000000
+6458 3897 -60.000000
+6458 3967  60.000000
+6458 3969   1.000000
+6459 3898 -30.000000
+6459 3968  30.000000
+6459 3970   1.000000
+6460 3901 -60.000000
+6460 3971  60.000000
+6460 3973   1.000000
+6461 3902 -30.000000
+6461 3972  30.000000
+6461 3974   1.000000
+6462 3905 -60.000000
+6462 3975  60.000000
+6462 3977   1.000000
+6463 3906 -30.000000
+6463 3976  30.000000
+6463 3978   1.000000
+6464 3911 -60.000000
+6464 3981  60.000000
+6464 3983   1.000000
+6465 3912 -30.000000
+6465 3982  30.000000
+6465 3984   1.000000
+6466 3915 -60.000000
+6466 3985  60.000000
+6466 3987   1.000000
+6467 3916 -30.000000
+6467 3986  30.000000
+6467 3988   1.000000
+6468 3919 -60.000000
+6468 3989  60.000000
+6468 3991   1.000000
+6469 3920 -30.000000
+6469 3990  30.000000
+6469 3992   1.000000
+6470 3925 -60.000000
+6470 3995  60.000000
+6470 3997   1.000000
+6471 3926 -30.000000
+6471 3996  30.000000
+6471 3998   1.000000
+6472 3929 -60.000000
+6472 3999  60.000000
+6472 4001   1.000000
+6473 3930 -30.000000
+6473 4000  30.000000
+6473 4002   1.000000
+6474 3933 -60.000000
+6474 4003  60.000000
+6474 4005   1.000000
+6475 3934 -30.000000
+6475 4004  30.000000
+6475 4006   1.000000
+6476 3939 -60.000000
+6476 4009  60.000000
+6476 4011   1.000000
+6477 3940 -30.000000
+6477 4010  30.000000
+6477 4012   1.000000
+6478 3943 -60.000000
+6478 4013  60.000000
+6478 4015   1.000000
+6479 3944 -30.000000
+6479 4014  30.000000
+6479 4016   1.000000
+6480 3947 -60.000000
+6480 4017  60.000000
+6480 4019   1.000000
+6481 3948 -30.000000
+6481 4018  30.000000
+6481 4020   1.000000
+6482 3953 -60.000000
+6482 4023  60.000000
+6482 4025   1.000000
+6483 3954 -30.000000
+6483 4024  30.000000
+6483 4026   1.000000
+6484 3957 -60.000000
+6484 4027  60.000000
+6484 4029   1.000000
+6485 3958 -30.000000
+6485 4028  30.000000
+6485 4030   1.000000
+6486 3961 -60.000000
+6486 4031  60.000000
+6486 4033   1.000000
+6487 3962 -30.000000
+6487 4032  30.000000
+6487 4034   1.000000
+6488 3967 -60.000000
+6488 4037  60.000000
+6488 4039   1.000000
+6489 3968 -30.000000
+6489 4038  30.000000
+6489 4040   1.000000
+6490 3971 -60.000000
+6490 4041  60.000000
+6490 4043   1.000000
+6491 3972 -30.000000
+6491 4042  30.000000
+6491 4044   1.000000
+6492 3975 -60.000000
+6492 4045  60.000000
+6492 4047   1.000000
+6493 3976 -30.000000
+6493 4046  30.000000
+6493 4048   1.000000
+6494 3981 -60.000000
+6494 4051  60.000000
+6494 4053   1.000000
+6495 3982 -30.000000
+6495 4052  30.000000
+6495 4054   1.000000
+6496 3985 -60.000000
+6496 4055  60.000000
+6496 4057   1.000000
+6497 3986 -30.000000
+6497 4056  30.000000
+6497 4058   1.000000
+6498 3989 -60.000000
+6498 4059  60.000000
+6498 4061   1.000000
+6499 3990 -30.000000
+6499 4060  30.000000
+6499 4062   1.000000
+6500 3995 -60.000000
+6500 4065  60.000000
+6500 4067   1.000000
+6501 3996 -30.000000
+6501 4066  30.000000
+6501 4068   1.000000
+6502 3999 -60.000000
+6502 4069  60.000000
+6502 4071   1.000000
+6503 4000 -30.000000
+6503 4070  30.000000
+6503 4072   1.000000
+6504 4003 -60.000000
+6504 4073  60.000000
+6504 4075   1.000000
+6505 4004 -30.000000
+6505 4074  30.000000
+6505 4076   1.000000
+6506 4009 -60.000000
+6506 4079  60.000000
+6506 4081   1.000000
+6507 4010 -30.000000
+6507 4080  30.000000
+6507 4082   1.000000
+6508 4013 -60.000000
+6508 4083  60.000000
+6508 4085   1.000000
+6509 4014 -30.000000
+6509 4084  30.000000
+6509 4086   1.000000
+6510 4017 -60.000000
+6510 4087  60.000000
+6510 4089   1.000000
+6511 4018 -30.000000
+6511 4088  30.000000
+6511 4090   1.000000
+6512 4023 -60.000000
+6512 4093  60.000000
+6512 4095   1.000000
+6513 4024 -30.000000
+6513 4094  30.000000
+6513 4096   1.000000
+6514 4027 -60.000000
+6514 4097  60.000000
+6514 4099   1.000000
+6515 4028 -30.000000
+6515 4098  30.000000
+6515 4100   1.000000
+6516 4031 -60.000000
+6516 4101  60.000000
+6516 4103   1.000000
+6517 4032 -30.000000
+6517 4102  30.000000
+6517 4104   1.000000
+6518 4037 -60.000000
+6518 4107  60.000000
+6518 4109   1.000000
+6519 4038 -30.000000
+6519 4108  30.000000
+6519 4110   1.000000
+6520 4041 -60.000000
+6520 4111  60.000000
+6520 4113   1.000000
+6521 4042 -30.000000
+6521 4112  30.000000
+6521 4114   1.000000
+6522 4045 -60.000000
+6522 4115  60.000000
+6522 4117   1.000000
+6523 4046 -30.000000
+6523 4116  30.000000
+6523 4118   1.000000
+6524 4051 -60.000000
+6524 4121  60.000000
+6524 4123   1.000000
+6525 4052 -30.000000
+6525 4122  30.000000
+6525 4124   1.000000
+6526 4055 -60.000000
+6526 4125  60.000000
+6526 4127   1.000000
+6527 4056 -30.000000
+6527 4126  30.000000
+6527 4128   1.000000
+6528 4059 -60.000000
+6528 4129  60.000000
+6528 4131   1.000000
+6529 4060 -30.000000
+6529 4130  30.000000
+6529 4132   1.000000
+6530 4065 -60.000000
+6530 4135  60.000000
+6530 4137   1.000000
+6531 4066 -30.000000
+6531 4136  30.000000
+6531 4138   1.000000
+6532 4069 -60.000000
+6532 4139  60.000000
+6532 4141   1.000000
+6533 4070 -30.000000
+6533 4140  30.000000
+6533 4142   1.000000
+6534 4073 -60.000000
+6534 4143  60.000000
+6534 4145   1.000000
+6535 4074 -30.000000
+6535 4144  30.000000
+6535 4146   1.000000
+6536 4079 -60.000000
+6536 4149  60.000000
+6536 4151   1.000000
+6537 4080 -30.000000
+6537 4150  30.000000
+6537 4152   1.000000
+6538 4083 -60.000000
+6538 4153  60.000000
+6538 4155   1.000000
+6539 4084 -30.000000
+6539 4154  30.000000
+6539 4156   1.000000
+6540 4087 -60.000000
+6540 4157  60.000000
+6540 4159   1.000000
+6541 4088 -30.000000
+6541 4158  30.000000
+6541 4160   1.000000
+6542 4093 -60.000000
+6542 4163  60.000000
+6542 4165   1.000000
+6543 4094 -30.000000
+6543 4164  30.000000
+6543 4166   1.000000
+6544 4097 -60.000000
+6544 4167  60.000000
+6544 4169   1.000000
+6545 4098 -30.000000
+6545 4168  30.000000
+6545 4170   1.000000
+6546 4101 -60.000000
+6546 4171  60.000000
+6546 4173   1.000000
+6547 4102 -30.000000
+6547 4172  30.000000
+6547 4174   1.000000
+6548 4107 -60.000000
+6548 4177  60.000000
+6548 4179   1.000000
+6549 4108 -30.000000
+6549 4178  30.000000
+6549 4180   1.000000
+6550 4111 -60.000000
+6550 4181  60.000000
+6550 4183   1.000000
+6551 4112 -30.000000
+6551 4182  30.000000
+6551 4184   1.000000
+6552 4115 -60.000000
+6552 4185  60.000000
+6552 4187   1.000000
+6553 4116 -30.000000
+6553 4186  30.000000
+6553 4188   1.000000
+6554 4121 -60.000000
+6554 4191  60.000000
+6554 4193   1.000000
+6555 4122 -30.000000
+6555 4192  30.000000
+6555 4194   1.000000
+6556 4125 -60.000000
+6556 4195  60.000000
+6556 4197   1.000000
+6557 4126 -30.000000
+6557 4196  30.000000
+6557 4198   1.000000
+6558 4129 -60.000000
+6558 4199  60.000000
+6558 4201   1.000000
+6559 4130 -30.000000
+6559 4200  30.000000
+6559 4202   1.000000
+6560 4205 -80.000000
+6560 4275  80.000000
+6560 4277   1.000000
+6561 4206 -40.000000
+6561 4276  40.000000
+6561 4278   1.000000
+6562 4209 -80.000000
+6562 4279  80.000000
+6562 4281   1.000000
+6563 4210 -40.000000
+6563 4280  40.000000
+6563 4282   1.000000
+6564 4213 -80.000000
+6564 4283  80.000000
+6564 4285   1.000000
+6565 4214 -40.000000
+6565 4284  40.000000
+6565 4286   1.000000
+6566 4219 -80.000000
+6566 4289  80.000000
+6566 4291   1.000000
+6567 4220 -40.000000
+6567 4290  40.000000
+6567 4292   1.000000
+6568 4223 -80.000000
+6568 4293  80.000000
+6568 4295   1.000000
+6569 4224 -40.000000
+6569 4294  40.000000
+6569 4296   1.000000
+6570 4227 -80.000000
+6570 4297  80.000000
+6570 4299   1.000000
+6571 4228 -40.000000
+6571 4298  40.000000
+6571 4300   1.000000
+6572 4233 -80.000000
+6572 4303  80.000000
+6572 4305   1.000000
+6573 4234 -40.000000
+6573 4304  40.000000
+6573 4306   1.000000
+6574 4237 -80.000000
+6574 4307  80.000000
+6574 4309   1.000000
+6575 4238 -40.000000
+6575 4308  40.000000
+6575 4310   1.000000
+6576 4241 -80.000000
+6576 4311  80.000000
+6576 4313   1.000000
+6577 4242 -40.000000
+6577 4312  40.000000
+6577 4314   1.000000
+6578 4247 -80.000000
+6578 4317  80.000000
+6578 4319   1.000000
+6579 4248 -40.000000
+6579 4318  40.000000
+6579 4320   1.000000
+6580 4251 -80.000000
+6580 4321  80.000000
+6580 4323   1.000000
+6581 4252 -40.000000
+6581 4322  40.000000
+6581 4324   1.000000
+6582 4255 -80.000000
+6582 4325  80.000000
+6582 4327   1.000000
+6583 4256 -40.000000
+6583 4326  40.000000
+6583 4328   1.000000
+6584 4261 -80.000000
+6584 4331  80.000000
+6584 4333   1.000000
+6585 4262 -40.000000
+6585 4332  40.000000
+6585 4334   1.000000
+6586 4265 -80.000000
+6586 4335  80.000000
+6586 4337   1.000000
+6587 4266 -40.000000
+6587 4336  40.000000
+6587 4338   1.000000
+6588 4269 -80.000000
+6588 4339  80.000000
+6588 4341   1.000000
+6589 4270 -40.000000
+6589 4340  40.000000
+6589 4342   1.000000
+6590 4275 -80.000000
+6590 4345  80.000000
+6590 4347   1.000000
+6591 4276 -40.000000
+6591 4346  40.000000
+6591 4348   1.000000
+6592 4279 -80.000000
+6592 4349  80.000000
+6592 4351   1.000000
+6593 4280 -40.000000
+6593 4350  40.000000
+6593 4352   1.000000
+6594 4283 -80.000000
+6594 4353  80.000000
+6594 4355   1.000000
+6595 4284 -40.000000
+6595 4354  40.000000
+6595 4356   1.000000
+6596 4289 -80.000000
+6596 4359  80.000000
+6596 4361   1.000000
+6597 4290 -40.000000
+6597 4360  40.000000
+6597 4362   1.000000
+6598 4293 -80.000000
+6598 4363  80.000000
+6598 4365   1.000000
+6599 4294 -40.000000
+6599 4364  40.000000
+6599 4366   1.000000
+6600 4297 -80.000000
+6600 4367  80.000000
+6600 4369   1.000000
+6601 4298 -40.000000
+6601 4368  40.000000
+6601 4370   1.000000
+6602 4303 -80.000000
+6602 4373  80.000000
+6602 4375   1.000000
+6603 4304 -40.000000
+6603 4374  40.000000
+6603 4376   1.000000
+6604 4307 -80.000000
+6604 4377  80.000000
+6604 4379   1.000000
+6605 4308 -40.000000
+6605 4378  40.000000
+6605 4380   1.000000
+6606 4311 -80.000000
+6606 4381  80.000000
+6606 4383   1.000000
+6607 4312 -40.000000
+6607 4382  40.000000
+6607 4384   1.000000
+6608 4317 -80.000000
+6608 4387  80.000000
+6608 4389   1.000000
+6609 4318 -40.000000
+6609 4388  40.000000
+6609 4390   1.000000
+6610 4321 -80.000000
+6610 4391  80.000000
+6610 4393   1.000000
+6611 4322 -40.000000
+6611 4392  40.000000
+6611 4394   1.000000
+6612 4325 -80.000000
+6612 4395  80.000000
+6612 4397   1.000000
+6613 4326 -40.000000
+6613 4396  40.000000
+6613 4398   1.000000
+6614 4331 -80.000000
+6614 4401  80.000000
+6614 4403   1.000000
+6615 4332 -40.000000
+6615 4402  40.000000
+6615 4404   1.000000
+6616 4335 -80.000000
+6616 4405  80.000000
+6616 4407   1.000000
+6617 4336 -40.000000
+6617 4406  40.000000
+6617 4408   1.000000
+6618 4339 -80.000000
+6618 4409  80.000000
+6618 4411   1.000000
+6619 4340 -40.000000
+6619 4410  40.000000
+6619 4412   1.000000
+6620 4345 -80.000000
+6620 4415  80.000000
+6620 4417   1.000000
+6621 4346 -40.000000
+6621 4416  40.000000
+6621 4418   1.000000
+6622 4349 -80.000000
+6622 4419  80.000000
+6622 4421   1.000000
+6623 4350 -40.000000
+6623 4420  40.000000
+6623 4422   1.000000
+6624 4353 -80.000000
+6624 4423  80.000000
+6624 4425   1.000000
+6625 4354 -40.000000
+6625 4424  40.000000
+6625 4426   1.000000
+6626 4359 -80.000000
+6626 4429  80.000000
+6626 4431   1.000000
+6627 4360 -40.000000
+6627 4430  40.000000
+6627 4432   1.000000
+6628 4363 -80.000000
+6628 4433  80.000000
+6628 4435   1.000000
+6629 4364 -40.000000
+6629 4434  40.000000
+6629 4436   1.000000
+6630 4367 -80.000000
+6630 4437  80.000000
+6630 4439   1.000000
+6631 4368 -40.000000
+6631 4438  40.000000
+6631 4440   1.000000
+6632 4373 -80.000000
+6632 4443  80.000000
+6632 4445   1.000000
+6633 4374 -40.000000
+6633 4444  40.000000
+6633 4446   1.000000
+6634 4377 -80.000000
+6634 4447  80.000000
+6634 4449   1.000000
+6635 4378 -40.000000
+6635 4448  40.000000
+6635 4450   1.000000
+6636 4381 -80.000000
+6636 4451  80.000000
+6636 4453   1.000000
+6637 4382 -40.000000
+6637 4452  40.000000
+6637 4454   1.000000
+6638 4387 -80.000000
+6638 4457  80.000000
+6638 4459   1.000000
+6639 4388 -40.000000
+6639 4458  40.000000
+6639 4460   1.000000
+6640 4391 -80.000000
+6640 4461  80.000000
+6640 4463   1.000000
+6641 4392 -40.000000
+6641 4462  40.000000
+6641 4464   1.000000
+6642 4395 -80.000000
+6642 4465  80.000000
+6642 4467   1.000000
+6643 4396 -40.000000
+6643 4466  40.000000
+6643 4468   1.000000
+6644 4401 -80.000000
+6644 4471  80.000000
+6644 4473   1.000000
+6645 4402 -40.000000
+6645 4472  40.000000
+6645 4474   1.000000
+6646 4405 -80.000000
+6646 4475  80.000000
+6646 4477   1.000000
+6647 4406 -40.000000
+6647 4476  40.000000
+6647 4478   1.000000
+6648 4409 -80.000000
+6648 4479  80.000000
+6648 4481   1.000000
+6649 4410 -40.000000
+6649 4480  40.000000
+6649 4482   1.000000
+6650 4415 -80.000000
+6650 4485  80.000000
+6650 4487   1.000000
+6651 4416 -40.000000
+6651 4486  40.000000
+6651 4488   1.000000
+6652 4419 -80.000000
+6652 4489  80.000000
+6652 4491   1.000000
+6653 4420 -40.000000
+6653 4490  40.000000
+6653 4492   1.000000
+6654 4423 -80.000000
+6654 4493  80.000000
+6654 4495   1.000000
+6655 4424 -40.000000
+6655 4494  40.000000
+6655 4496   1.000000
+6656 4429 -80.000000
+6656 4499  80.000000
+6656 4501   1.000000
+6657 4430 -40.000000
+6657 4500  40.000000
+6657 4502   1.000000
+6658 4433 -80.000000
+6658 4503  80.000000
+6658 4505   1.000000
+6659 4434 -40.000000
+6659 4504  40.000000
+6659 4506   1.000000
+6660 4437 -80.000000
+6660 4507  80.000000
+6660 4509   1.000000
+6661 4438 -40.000000
+6661 4508  40.000000
+6661 4510   1.000000
+6662 4443 -80.000000
+6662 4513  80.000000
+6662 4515   1.000000
+6663 4444 -40.000000
+6663 4514  40.000000
+6663 4516   1.000000
+6664 4447 -80.000000
+6664 4517  80.000000
+6664 4519   1.000000
+6665 4448 -40.000000
+6665 4518  40.000000
+6665 4520   1.000000
+6666 4451 -80.000000
+6666 4521  80.000000
+6666 4523   1.000000
+6667 4452 -40.000000
+6667 4522  40.000000
+6667 4524   1.000000
+6668 4457 -80.000000
+6668 4527  80.000000
+6668 4529   1.000000
+6669 4458 -40.000000
+6669 4528  40.000000
+6669 4530   1.000000
+6670 4461 -80.000000
+6670 4531  80.000000
+6670 4533   1.000000
+6671 4462 -40.000000
+6671 4532  40.000000
+6671 4534   1.000000
+6672 4465 -80.000000
+6672 4535  80.000000
+6672 4537   1.000000
+6673 4466 -40.000000
+6673 4536  40.000000
+6673 4538   1.000000
+6674 4471 -80.000000
+6674 4541  80.000000
+6674 4543   1.000000
+6675 4472 -40.000000
+6675 4542  40.000000
+6675 4544   1.000000
+6676 4475 -80.000000
+6676 4545  80.000000
+6676 4547   1.000000
+6677 4476 -40.000000
+6677 4546  40.000000
+6677 4548   1.000000
+6678 4479 -80.000000
+6678 4549  80.000000
+6678 4551   1.000000
+6679 4480 -40.000000
+6679 4550  40.000000
+6679 4552   1.000000
+6680 4485 -80.000000
+6680 4555  80.000000
+6680 4557   1.000000
+6681 4486 -40.000000
+6681 4556  40.000000
+6681 4558   1.000000
+6682 4489 -80.000000
+6682 4559  80.000000
+6682 4561   1.000000
+6683 4490 -40.000000
+6683 4560  40.000000
+6683 4562   1.000000
+6684 4493 -80.000000
+6684 4563  80.000000
+6684 4565   1.000000
+6685 4494 -40.000000
+6685 4564  40.000000
+6685 4566   1.000000
+6686 4499 -80.000000
+6686 4569  80.000000
+6686 4571   1.000000
+6687 4500 -40.000000
+6687 4570  40.000000
+6687 4572   1.000000
+6688 4503 -80.000000
+6688 4573  80.000000
+6688 4575   1.000000
+6689 4504 -40.000000
+6689 4574  40.000000
+6689 4576   1.000000
+6690 4507 -80.000000
+6690 4577  80.000000
+6690 4579   1.000000
+6691 4508 -40.000000
+6691 4578  40.000000
+6691 4580   1.000000
+6692 4513 -80.000000
+6692 4583  80.000000
+6692 4585   1.000000
+6693 4514 -40.000000
+6693 4584  40.000000
+6693 4586   1.000000
+6694 4517 -80.000000
+6694 4587  80.000000
+6694 4589   1.000000
+6695 4518 -40.000000
+6695 4588  40.000000
+6695 4590   1.000000
+6696 4521 -80.000000
+6696 4591  80.000000
+6696 4593   1.000000
+6697 4522 -40.000000
+6697 4592  40.000000
+6697 4594   1.000000
+6698 4527 -80.000000
+6698 4597  80.000000
+6698 4599   1.000000
+6699 4528 -40.000000
+6699 4598  40.000000
+6699 4600   1.000000
+6700 4531 -80.000000
+6700 4601  80.000000
+6700 4603   1.000000
+6701 4532 -40.000000
+6701 4602  40.000000
+6701 4604   1.000000
+6702 4535 -80.000000
+6702 4605  80.000000
+6702 4607   1.000000
+6703 4536 -40.000000
+6703 4606  40.000000
+6703 4608   1.000000
+6704 4541 -80.000000
+6704 4611  80.000000
+6704 4613   1.000000
+6705 4542 -40.000000
+6705 4612  40.000000
+6705 4614   1.000000
+6706 4545 -80.000000
+6706 4615  80.000000
+6706 4617   1.000000
+6707 4546 -40.000000
+6707 4616  40.000000
+6707 4618   1.000000
+6708 4549 -80.000000
+6708 4619  80.000000
+6708 4621   1.000000
+6709 4550 -40.000000
+6709 4620  40.000000
+6709 4622   1.000000
+6710 4555 -80.000000
+6710 4625  80.000000
+6710 4627   1.000000
+6711 4556 -40.000000
+6711 4626  40.000000
+6711 4628   1.000000
+6712 4559 -80.000000
+6712 4629  80.000000
+6712 4631   1.000000
+6713 4560 -40.000000
+6713 4630  40.000000
+6713 4632   1.000000
+6714 4563 -80.000000
+6714 4633  80.000000
+6714 4635   1.000000
+6715 4564 -40.000000
+6715 4634  40.000000
+6715 4636   1.000000
+6716 4569 -80.000000
+6716 4639  80.000000
+6716 4641   1.000000
+6717 4570 -40.000000
+6717 4640  40.000000
+6717 4642   1.000000
+6718 4573 -80.000000
+6718 4643  80.000000
+6718 4645   1.000000
+6719 4574 -40.000000
+6719 4644  40.000000
+6719 4646   1.000000
+6720 4577 -80.000000
+6720 4647  80.000000
+6720 4649   1.000000
+6721 4578 -40.000000
+6721 4648  40.000000
+6721 4650   1.000000
+6722 4583 -80.000000
+6722 4653  80.000000
+6722 4655   1.000000
+6723 4584 -40.000000
+6723 4654  40.000000
+6723 4656   1.000000
+6724 4587 -80.000000
+6724 4657  80.000000
+6724 4659   1.000000
+6725 4588 -40.000000
+6725 4658  40.000000
+6725 4660   1.000000
+6726 4591 -80.000000
+6726 4661  80.000000
+6726 4663   1.000000
+6727 4592 -40.000000
+6727 4662  40.000000
+6727 4664   1.000000
+6728 4597 -80.000000
+6728 4667  80.000000
+6728 4669   1.000000
+6729 4598 -40.000000
+6729 4668  40.000000
+6729 4670   1.000000
+6730 4601 -80.000000
+6730 4671  80.000000
+6730 4673   1.000000
+6731 4602 -40.000000
+6731 4672  40.000000
+6731 4674   1.000000
+6732 4605 -80.000000
+6732 4675  80.000000
+6732 4677   1.000000
+6733 4606 -40.000000
+6733 4676  40.000000
+6733 4678   1.000000
+6734 4611 -80.000000
+6734 4681  80.000000
+6734 4683   1.000000
+6735 4612 -40.000000
+6735 4682  40.000000
+6735 4684   1.000000
+6736 4615 -80.000000
+6736 4685  80.000000
+6736 4687   1.000000
+6737 4616 -40.000000
+6737 4686  40.000000
+6737 4688   1.000000
+6738 4619 -80.000000
+6738 4689  80.000000
+6738 4691   1.000000
+6739 4620 -40.000000
+6739 4690  40.000000
+6739 4692   1.000000
+6740 4625 -80.000000
+6740 4695  80.000000
+6740 4697   1.000000
+6741 4626 -40.000000
+6741 4696  40.000000
+6741 4698   1.000000
+6742 4629 -80.000000
+6742 4699  80.000000
+6742 4701   1.000000
+6743 4630 -40.000000
+6743 4700  40.000000
+6743 4702   1.000000
+6744 4633 -80.000000
+6744 4703  80.000000
+6744 4705   1.000000
+6745 4634 -40.000000
+6745 4704  40.000000
+6745 4706   1.000000
+6746 4639 -80.000000
+6746 4709  80.000000
+6746 4711   1.000000
+6747 4640 -40.000000
+6747 4710  40.000000
+6747 4712   1.000000
+6748 4643 -80.000000
+6748 4713  80.000000
+6748 4715   1.000000
+6749 4644 -40.000000
+6749 4714  40.000000
+6749 4716   1.000000
+6750 4647 -80.000000
+6750 4717  80.000000
+6750 4719   1.000000
+6751 4648 -40.000000
+6751 4718  40.000000
+6751 4720   1.000000
+6752 4653 -80.000000
+6752 4723  80.000000
+6752 4725   1.000000
+6753 4654 -40.000000
+6753 4724  40.000000
+6753 4726   1.000000
+6754 4657 -80.000000
+6754 4727  80.000000
+6754 4729   1.000000
+6755 4658 -40.000000
+6755 4728  40.000000
+6755 4730   1.000000
+6756 4661 -80.000000
+6756 4731  80.000000
+6756 4733   1.000000
+6757 4662 -40.000000
+6757 4732  40.000000
+6757 4734   1.000000
+6758 4667 -80.000000
+6758 4737  80.000000
+6758 4739   1.000000
+6759 4668 -40.000000
+6759 4738  40.000000
+6759 4740   1.000000
+6760 4671 -80.000000
+6760 4741  80.000000
+6760 4743   1.000000
+6761 4672 -40.000000
+6761 4742  40.000000
+6761 4744   1.000000
+6762 4675 -80.000000
+6762 4745  80.000000
+6762 4747   1.000000
+6763 4676 -40.000000
+6763 4746  40.000000
+6763 4748   1.000000
+6764 4681 -80.000000
+6764 4751  80.000000
+6764 4753   1.000000
+6765 4682 -40.000000
+6765 4752  40.000000
+6765 4754   1.000000
+6766 4685 -80.000000
+6766 4755  80.000000
+6766 4757   1.000000
+6767 4686 -40.000000
+6767 4756  40.000000
+6767 4758   1.000000
+6768 4689 -80.000000
+6768 4759  80.000000
+6768 4761   1.000000
+6769 4690 -40.000000
+6769 4760  40.000000
+6769 4762   1.000000
+6770 4695 -80.000000
+6770 4765  80.000000
+6770 4767   1.000000
+6771 4696 -40.000000
+6771 4766  40.000000
+6771 4768   1.000000
+6772 4699 -80.000000
+6772 4769  80.000000
+6772 4771   1.000000
+6773 4700 -40.000000
+6773 4770  40.000000
+6773 4772   1.000000
+6774 4703 -80.000000
+6774 4773  80.000000
+6774 4775   1.000000
+6775 4704 -40.000000
+6775 4774  40.000000
+6775 4776   1.000000
+6776 4709 -80.000000
+6776 4779  80.000000
+6776 4781   1.000000
+6777 4710 -40.000000
+6777 4780  40.000000
+6777 4782   1.000000
+6778 4713 -80.000000
+6778 4783  80.000000
+6778 4785   1.000000
+6779 4714 -40.000000
+6779 4784  40.000000
+6779 4786   1.000000
+6780 4717 -80.000000
+6780 4787  80.000000
+6780 4789   1.000000
+6781 4718 -40.000000
+6781 4788  40.000000
+6781 4790   1.000000
+6782 4723 -80.000000
+6782 4793  80.000000
+6782 4795   1.000000
+6783 4724 -40.000000
+6783 4794  40.000000
+6783 4796   1.000000
+6784 4727 -80.000000
+6784 4797  80.000000
+6784 4799   1.000000
+6785 4728 -40.000000
+6785 4798  40.000000
+6785 4800   1.000000
+6786 4731 -80.000000
+6786 4801  80.000000
+6786 4803   1.000000
+6787 4732 -40.000000
+6787 4802  40.000000
+6787 4804   1.000000
+6788 4737 -80.000000
+6788 4807  80.000000
+6788 4809   1.000000
+6789 4738 -40.000000
+6789 4808  40.000000
+6789 4810   1.000000
+6790 4741 -80.000000
+6790 4811  80.000000
+6790 4813   1.000000
+6791 4742 -40.000000
+6791 4812  40.000000
+6791 4814   1.000000
+6792 4745 -80.000000
+6792 4815  80.000000
+6792 4817   1.000000
+6793 4746 -40.000000
+6793 4816  40.000000
+6793 4818   1.000000
+6794 4751 -80.000000
+6794 4821  80.000000
+6794 4823   1.000000
+6795 4752 -40.000000
+6795 4822  40.000000
+6795 4824   1.000000
+6796 4755 -80.000000
+6796 4825  80.000000
+6796 4827   1.000000
+6797 4756 -40.000000
+6797 4826  40.000000
+6797 4828   1.000000
+6798 4759 -80.000000
+6798 4829  80.000000
+6798 4831   1.000000
+6799 4760 -40.000000
+6799 4830  40.000000
+6799 4832   1.000000
+6800 4765 -80.000000
+6800 4835  80.000000
+6800 4837   1.000000
+6801 4766 -40.000000
+6801 4836  40.000000
+6801 4838   1.000000
+6802 4769 -80.000000
+6802 4839  80.000000
+6802 4841   1.000000
+6803 4770 -40.000000
+6803 4840  40.000000
+6803 4842   1.000000
+6804 4773 -80.000000
+6804 4843  80.000000
+6804 4845   1.000000
+6805 4774 -40.000000
+6805 4844  40.000000
+6805 4846   1.000000
+6806 4779 -80.000000
+6806 4849  80.000000
+6806 4851   1.000000
+6807 4780 -40.000000
+6807 4850  40.000000
+6807 4852   1.000000
+6808 4783 -80.000000
+6808 4853  80.000000
+6808 4855   1.000000
+6809 4784 -40.000000
+6809 4854  40.000000
+6809 4856   1.000000
+6810 4787 -80.000000
+6810 4857  80.000000
+6810 4859   1.000000
+6811 4788 -40.000000
+6811 4858  40.000000
+6811 4860   1.000000
+6812 4793 -80.000000
+6812 4863  80.000000
+6812 4865   1.000000
+6813 4794 -40.000000
+6813 4864  40.000000
+6813 4866   1.000000
+6814 4797 -80.000000
+6814 4867  80.000000
+6814 4869   1.000000
+6815 4798 -40.000000
+6815 4868  40.000000
+6815 4870   1.000000
+6816 4801 -80.000000
+6816 4871  80.000000
+6816 4873   1.000000
+6817 4802 -40.000000
+6817 4872  40.000000
+6817 4874   1.000000
+6818 4807 -80.000000
+6818 4877  80.000000
+6818 4879   1.000000
+6819 4808 -40.000000
+6819 4878  40.000000
+6819 4880   1.000000
+6820 4811 -80.000000
+6820 4881  80.000000
+6820 4883   1.000000
+6821 4812 -40.000000
+6821 4882  40.000000
+6821 4884   1.000000
+6822 4815 -80.000000
+6822 4885  80.000000
+6822 4887   1.000000
+6823 4816 -40.000000
+6823 4886  40.000000
+6823 4888   1.000000
+6824 4821 -80.000000
+6824 4891  80.000000
+6824 4893   1.000000
+6825 4822 -40.000000
+6825 4892  40.000000
+6825 4894   1.000000
+6826 4825 -80.000000
+6826 4895  80.000000
+6826 4897   1.000000
+6827 4826 -40.000000
+6827 4896  40.000000
+6827 4898   1.000000
+6828 4829 -80.000000
+6828 4899  80.000000
+6828 4901   1.000000
+6829 4830 -40.000000
+6829 4900  40.000000
+6829 4902   1.000000
+6830 4835 -80.000000
+6830 4905  80.000000
+6830 4907   1.000000
+6831 4836 -40.000000
+6831 4906  40.000000
+6831 4908   1.000000
+6832 4839 -80.000000
+6832 4909  80.000000
+6832 4911   1.000000
+6833 4840 -40.000000
+6833 4910  40.000000
+6833 4912   1.000000
+6834 4843 -80.000000
+6834 4913  80.000000
+6834 4915   1.000000
+6835 4844 -40.000000
+6835 4914  40.000000
+6835 4916   1.000000
+6836 4849 -80.000000
+6836 4919  80.000000
+6836 4921   1.000000
+6837 4850 -40.000000
+6837 4920  40.000000
+6837 4922   1.000000
+6838 4853 -80.000000
+6838 4923  80.000000
+6838 4925   1.000000
+6839 4854 -40.000000
+6839 4924  40.000000
+6839 4926   1.000000
+6840 4857 -80.000000
+6840 4927  80.000000
+6840 4929   1.000000
+6841 4858 -40.000000
+6841 4928  40.000000
+6841 4930   1.000000
+6842 4863 -80.000000
+6842 4933  80.000000
+6842 4935   1.000000
+6843 4864 -40.000000
+6843 4934  40.000000
+6843 4936   1.000000
+6844 4867 -80.000000
+6844 4937  80.000000
+6844 4939   1.000000
+6845 4868 -40.000000
+6845 4938  40.000000
+6845 4940   1.000000
+6846 4871 -80.000000
+6846 4941  80.000000
+6846 4943   1.000000
+6847 4872 -40.000000
+6847 4942  40.000000
+6847 4944   1.000000
+6848 4877 -80.000000
+6848 4947  80.000000
+6848 4949   1.000000
+6849 4878 -40.000000
+6849 4948  40.000000
+6849 4950   1.000000
+6850 4881 -80.000000
+6850 4951  80.000000
+6850 4953   1.000000
+6851 4882 -40.000000
+6851 4952  40.000000
+6851 4954   1.000000
+6852 4885 -80.000000
+6852 4955  80.000000
+6852 4957   1.000000
+6853 4886 -40.000000
+6853 4956  40.000000
+6853 4958   1.000000
+6854 4891 -80.000000
+6854 4961  80.000000
+6854 4963   1.000000
+6855 4892 -40.000000
+6855 4962  40.000000
+6855 4964   1.000000
+6856 4895 -80.000000
+6856 4965  80.000000
+6856 4967   1.000000
+6857 4896 -40.000000
+6857 4966  40.000000
+6857 4968   1.000000
+6858 4899 -80.000000
+6858 4969  80.000000
+6858 4971   1.000000
+6859 4900 -40.000000
+6859 4970  40.000000
+6859 4972   1.000000
+6860 4905 -80.000000
+6860 4975  80.000000
+6860 4977   1.000000
+6861 4906 -40.000000
+6861 4976  40.000000
+6861 4978   1.000000
+6862 4909 -80.000000
+6862 4979  80.000000
+6862 4981   1.000000
+6863 4910 -40.000000
+6863 4980  40.000000
+6863 4982   1.000000
+6864 4913 -80.000000
+6864 4983  80.000000
+6864 4985   1.000000
+6865 4914 -40.000000
+6865 4984  40.000000
+6865 4986   1.000000
+6866 4919 -80.000000
+6866 4989  80.000000
+6866 4991   1.000000
+6867 4920 -40.000000
+6867 4990  40.000000
+6867 4992   1.000000
+6868 4923 -80.000000
+6868 4993  80.000000
+6868 4995   1.000000
+6869 4924 -40.000000
+6869 4994  40.000000
+6869 4996   1.000000
+6870 4927 -80.000000
+6870 4997  80.000000
+6870 4999   1.000000
+6871 4928 -40.000000
+6871 4998  40.000000
+6871 5000   1.000000
+6872 4933 -80.000000
+6872 5003  80.000000
+6872 5005   1.000000
+6873 4934 -40.000000
+6873 5004  40.000000
+6873 5006   1.000000
+6874 4937 -80.000000
+6874 5007  80.000000
+6874 5009   1.000000
+6875 4938 -40.000000
+6875 5008  40.000000
+6875 5010   1.000000
+6876 4941 -80.000000
+6876 5011  80.000000
+6876 5013   1.000000
+6877 4942 -40.000000
+6877 5012  40.000000
+6877 5014   1.000000
+6878 4947 -80.000000
+6878 5017  80.000000
+6878 5019   1.000000
+6879 4948 -40.000000
+6879 5018  40.000000
+6879 5020   1.000000
+6880 4951 -80.000000
+6880 5021  80.000000
+6880 5023   1.000000
+6881 4952 -40.000000
+6881 5022  40.000000
+6881 5024   1.000000
+6882 4955 -80.000000
+6882 5025  80.000000
+6882 5027   1.000000
+6883 4956 -40.000000
+6883 5026  40.000000
+6883 5028   1.000000
+6884 4961 -80.000000
+6884 5031  80.000000
+6884 5033   1.000000
+6885 4962 -40.000000
+6885 5032  40.000000
+6885 5034   1.000000
+6886 4965 -80.000000
+6886 5035  80.000000
+6886 5037   1.000000
+6887 4966 -40.000000
+6887 5036  40.000000
+6887 5038   1.000000
+6888 4969 -80.000000
+6888 5039  80.000000
+6888 5041   1.000000
+6889 4970 -40.000000
+6889 5040  40.000000
+6889 5042   1.000000
+6890 4975 -80.000000
+6890 5045  80.000000
+6890 5047   1.000000
+6891 4976 -40.000000
+6891 5046  40.000000
+6891 5048   1.000000
+6892 4979 -80.000000
+6892 5049  80.000000
+6892 5051   1.000000
+6893 4980 -40.000000
+6893 5050  40.000000
+6893 5052   1.000000
+6894 4983 -80.000000
+6894 5053  80.000000
+6894 5055   1.000000
+6895 4984 -40.000000
+6895 5054  40.000000
+6895 5056   1.000000
+6896 4989 -80.000000
+6896 5059  80.000000
+6896 5061   1.000000
+6897 4990 -40.000000
+6897 5060  40.000000
+6897 5062   1.000000
+6898 4993 -80.000000
+6898 5063  80.000000
+6898 5065   1.000000
+6899 4994 -40.000000
+6899 5064  40.000000
+6899 5066   1.000000
+6900 4997 -80.000000
+6900 5067  80.000000
+6900 5069   1.000000
+6901 4998 -40.000000
+6901 5068  40.000000
+6901 5070   1.000000
+6902 5003 -80.000000
+6902 5073  80.000000
+6902 5075   1.000000
+6903 5004 -40.000000
+6903 5074  40.000000
+6903 5076   1.000000
+6904 5007 -80.000000
+6904 5077  80.000000
+6904 5079   1.000000
+6905 5008 -40.000000
+6905 5078  40.000000
+6905 5080   1.000000
+6906 5011 -80.000000
+6906 5081  80.000000
+6906 5083   1.000000
+6907 5012 -40.000000
+6907 5082  40.000000
+6907 5084   1.000000
+6908 5017 -80.000000
+6908 5087  80.000000
+6908 5089   1.000000
+6909 5018 -40.000000
+6909 5088  40.000000
+6909 5090   1.000000
+6910 5021 -80.000000
+6910 5091  80.000000
+6910 5093   1.000000
+6911 5022 -40.000000
+6911 5092  40.000000
+6911 5094   1.000000
+6912 5025 -80.000000
+6912 5095  80.000000
+6912 5097   1.000000
+6913 5026 -40.000000
+6913 5096  40.000000
+6913 5098   1.000000
+6914 5031 -80.000000
+6914 5101  80.000000
+6914 5103   1.000000
+6915 5032 -40.000000
+6915 5102  40.000000
+6915 5104   1.000000
+6916 5035 -80.000000
+6916 5105  80.000000
+6916 5107   1.000000
+6917 5036 -40.000000
+6917 5106  40.000000
+6917 5108   1.000000
+6918 5039 -80.000000
+6918 5109  80.000000
+6918 5111   1.000000
+6919 5040 -40.000000
+6919 5110  40.000000
+6919 5112   1.000000
+6920 5045 -80.000000
+6920 5115  80.000000
+6920 5117   1.000000
+6921 5046 -40.000000
+6921 5116  40.000000
+6921 5118   1.000000
+6922 5049 -80.000000
+6922 5119  80.000000
+6922 5121   1.000000
+6923 5050 -40.000000
+6923 5120  40.000000
+6923 5122   1.000000
+6924 5053 -80.000000
+6924 5123  80.000000
+6924 5125   1.000000
+6925 5054 -40.000000
+6925 5124  40.000000
+6925 5126   1.000000
+6926 5059 -80.000000
+6926 5129  80.000000
+6926 5131   1.000000
+6927 5060 -40.000000
+6927 5130  40.000000
+6927 5132   1.000000
+6928 5063 -80.000000
+6928 5133  80.000000
+6928 5135   1.000000
+6929 5064 -40.000000
+6929 5134  40.000000
+6929 5136   1.000000
+6930 5067 -80.000000
+6930 5137  80.000000
+6930 5139   1.000000
+6931 5068 -40.000000
+6931 5138  40.000000
+6931 5140   1.000000
+6932 5073 -80.000000
+6932 5143  80.000000
+6932 5145   1.000000
+6933 5074 -40.000000
+6933 5144  40.000000
+6933 5146   1.000000
+6934 5077 -80.000000
+6934 5147  80.000000
+6934 5149   1.000000
+6935 5078 -40.000000
+6935 5148  40.000000
+6935 5150   1.000000
+6936 5081 -80.000000
+6936 5151  80.000000
+6936 5153   1.000000
+6937 5082 -40.000000
+6937 5152  40.000000
+6937 5154   1.000000
+6938 5087 -80.000000
+6938 5157  80.000000
+6938 5159   1.000000
+6939 5088 -40.000000
+6939 5158  40.000000
+6939 5160   1.000000
+6940 5091 -80.000000
+6940 5161  80.000000
+6940 5163   1.000000
+6941 5092 -40.000000
+6941 5162  40.000000
+6941 5164   1.000000
+6942 5095 -80.000000
+6942 5165  80.000000
+6942 5167   1.000000
+6943 5096 -40.000000
+6943 5166  40.000000
+6943 5168   1.000000
+6944 5101 -80.000000
+6944 5171  80.000000
+6944 5173   1.000000
+6945 5102 -40.000000
+6945 5172  40.000000
+6945 5174   1.000000
+6946 5105 -80.000000
+6946 5175  80.000000
+6946 5177   1.000000
+6947 5106 -40.000000
+6947 5176  40.000000
+6947 5178   1.000000
+6948 5109 -80.000000
+6948 5179  80.000000
+6948 5181   1.000000
+6949 5110 -40.000000
+6949 5180  40.000000
+6949 5182   1.000000
+6950 5115 -80.000000
+6950 5185  80.000000
+6950 5187   1.000000
+6951 5116 -40.000000
+6951 5186  40.000000
+6951 5188   1.000000
+6952 5119 -80.000000
+6952 5189  80.000000
+6952 5191   1.000000
+6953 5120 -40.000000
+6953 5190  40.000000
+6953 5192   1.000000
+6954 5123 -80.000000
+6954 5193  80.000000
+6954 5195   1.000000
+6955 5124 -40.000000
+6955 5194  40.000000
+6955 5196   1.000000
+6956 5129 -80.000000
+6956 5199  80.000000
+6956 5201   1.000000
+6957 5130 -40.000000
+6957 5200  40.000000
+6957 5202   1.000000
+6958 5133 -80.000000
+6958 5203  80.000000
+6958 5205   1.000000
+6959 5134 -40.000000
+6959 5204  40.000000
+6959 5206   1.000000
+6960 5137 -80.000000
+6960 5207  80.000000
+6960 5209   1.000000
+6961 5138 -40.000000
+6961 5208  40.000000
+6961 5210   1.000000
+6962 5143 -80.000000
+6962 5213  80.000000
+6962 5215   1.000000
+6963 5144 -40.000000
+6963 5214  40.000000
+6963 5216   1.000000
+6964 5147 -80.000000
+6964 5217  80.000000
+6964 5219   1.000000
+6965 5148 -40.000000
+6965 5218  40.000000
+6965 5220   1.000000
+6966 5151 -80.000000
+6966 5221  80.000000
+6966 5223   1.000000
+6967 5152 -40.000000
+6967 5222  40.000000
+6967 5224   1.000000
+6968 5157 -80.000000
+6968 5227  80.000000
+6968 5229   1.000000
+6969 5158 -40.000000
+6969 5228  40.000000
+6969 5230   1.000000
+6970 5161 -80.000000
+6970 5231  80.000000
+6970 5233   1.000000
+6971 5162 -40.000000
+6971 5232  40.000000
+6971 5234   1.000000
+6972 5165 -80.000000
+6972 5235  80.000000
+6972 5237   1.000000
+6973 5166 -40.000000
+6973 5236  40.000000
+6973 5238   1.000000
+6974 5171 -80.000000
+6974 5241  80.000000
+6974 5243   1.000000
+6975 5172 -40.000000
+6975 5242  40.000000
+6975 5244   1.000000
+6976 5175 -80.000000
+6976 5245  80.000000
+6976 5247   1.000000
+6977 5176 -40.000000
+6977 5246  40.000000
+6977 5248   1.000000
+6978 5179 -80.000000
+6978 5249  80.000000
+6978 5251   1.000000
+6979 5180 -40.000000
+6979 5250  40.000000
+6979 5252   1.000000
+6980 5185 -80.000000
+6980 5255  80.000000
+6980 5257   1.000000
+6981 5186 -40.000000
+6981 5256  40.000000
+6981 5258   1.000000
+6982 5189 -80.000000
+6982 5259  80.000000
+6982 5261   1.000000
+6983 5190 -40.000000
+6983 5260  40.000000
+6983 5262   1.000000
+6984 5193 -80.000000
+6984 5263  80.000000
+6984 5265   1.000000
+6985 5194 -40.000000
+6985 5264  40.000000
+6985 5266   1.000000
+6986 5199 -80.000000
+6986 5269  80.000000
+6986 5271   1.000000
+6987 5200 -40.000000
+6987 5270  40.000000
+6987 5272   1.000000
+6988 5203 -80.000000
+6988 5273  80.000000
+6988 5275   1.000000
+6989 5204 -40.000000
+6989 5274  40.000000
+6989 5276   1.000000
+6990 5207 -80.000000
+6990 5277  80.000000
+6990 5279   1.000000
+6991 5208 -40.000000
+6991 5278  40.000000
+6991 5280   1.000000
+6992 5213 -80.000000
+6992 5283  80.000000
+6992 5285   1.000000
+6993 5214 -40.000000
+6993 5284  40.000000
+6993 5286   1.000000
+6994 5217 -80.000000
+6994 5287  80.000000
+6994 5289   1.000000
+6995 5218 -40.000000
+6995 5288  40.000000
+6995 5290   1.000000
+6996 5221 -80.000000
+6996 5291  80.000000
+6996 5293   1.000000
+6997 5222 -40.000000
+6997 5292  40.000000
+6997 5294   1.000000
+6998 5227 -80.000000
+6998 5297  80.000000
+6998 5299   1.000000
+6999 5228 -40.000000
+6999 5298  40.000000
+6999 5300   1.000000
+7000 5231 -80.000000
+7000 5301  80.000000
+7000 5303   1.000000
+7001 5232 -40.000000
+7001 5302  40.000000
+7001 5304   1.000000
+7002 5235 -80.000000
+7002 5305  80.000000
+7002 5307   1.000000
+7003 5236 -40.000000
+7003 5306  40.000000
+7003 5308   1.000000
+7004 5241 -80.000000
+7004 5311  80.000000
+7004 5313   1.000000
+7005 5242 -40.000000
+7005 5312  40.000000
+7005 5314   1.000000
+7006 5245 -80.000000
+7006 5315  80.000000
+7006 5317   1.000000
+7007 5246 -40.000000
+7007 5316  40.000000
+7007 5318   1.000000
+7008 5249 -80.000000
+7008 5319  80.000000
+7008 5321   1.000000
+7009 5250 -40.000000
+7009 5320  40.000000
+7009 5322   1.000000
+7010 5255 -80.000000
+7010 5325  80.000000
+7010 5327   1.000000
+7011 5256 -40.000000
+7011 5326  40.000000
+7011 5328   1.000000
+7012 5259 -80.000000
+7012 5329  80.000000
+7012 5331   1.000000
+7013 5260 -40.000000
+7013 5330  40.000000
+7013 5332   1.000000
+7014 5263 -80.000000
+7014 5333  80.000000
+7014 5335   1.000000
+7015 5264 -40.000000
+7015 5334  40.000000
+7015 5336   1.000000
+7016 5269 -80.000000
+7016 5339  80.000000
+7016 5341   1.000000
+7017 5270 -40.000000
+7017 5340  40.000000
+7017 5342   1.000000
+7018 5273 -80.000000
+7018 5343  80.000000
+7018 5345   1.000000
+7019 5274 -40.000000
+7019 5344  40.000000
+7019 5346   1.000000
+7020 5277 -80.000000
+7020 5347  80.000000
+7020 5349   1.000000
+7021 5278 -40.000000
+7021 5348  40.000000
+7021 5350   1.000000
+7022 5283 -80.000000
+7022 5353  80.000000
+7022 5355   1.000000
+7023 5284 -40.000000
+7023 5354  40.000000
+7023 5356   1.000000
+7024 5287 -80.000000
+7024 5357  80.000000
+7024 5359   1.000000
+7025 5288 -40.000000
+7025 5358  40.000000
+7025 5360   1.000000
+7026 5291 -80.000000
+7026 5361  80.000000
+7026 5363   1.000000
+7027 5292 -40.000000
+7027 5362  40.000000
+7027 5364   1.000000
+7028 5297 -80.000000
+7028 5367  80.000000
+7028 5369   1.000000
+7029 5298 -40.000000
+7029 5368  40.000000
+7029 5370   1.000000
+7030 5301 -80.000000
+7030 5371  80.000000
+7030 5373   1.000000
+7031 5302 -40.000000
+7031 5372  40.000000
+7031 5374   1.000000
+7032 5305 -80.000000
+7032 5375  80.000000
+7032 5377   1.000000
+7033 5306 -40.000000
+7033 5376  40.000000
+7033 5378   1.000000
+7034 5311 -80.000000
+7034 5381  80.000000
+7034 5383   1.000000
+7035 5312 -40.000000
+7035 5382  40.000000
+7035 5384   1.000000
+7036 5315 -80.000000
+7036 5385  80.000000
+7036 5387   1.000000
+7037 5316 -40.000000
+7037 5386  40.000000
+7037 5388   1.000000
+7038 5319 -80.000000
+7038 5389  80.000000
+7038 5391   1.000000
+7039 5320 -40.000000
+7039 5390  40.000000
+7039 5392   1.000000
+7040 5325 -80.000000
+7040 5395  80.000000
+7040 5397   1.000000
+7041 5326 -40.000000
+7041 5396  40.000000
+7041 5398   1.000000
+7042 5329 -80.000000
+7042 5399  80.000000
+7042 5401   1.000000
+7043 5330 -40.000000
+7043 5400  40.000000
+7043 5402   1.000000
+7044 5333 -80.000000
+7044 5403  80.000000
+7044 5405   1.000000
+7045 5334 -40.000000
+7045 5404  40.000000
+7045 5406   1.000000
+7046 5339 -80.000000
+7046 5409  80.000000
+7046 5411   1.000000
+7047 5340 -40.000000
+7047 5410  40.000000
+7047 5412   1.000000
+7048 5343 -80.000000
+7048 5413  80.000000
+7048 5415   1.000000
+7049 5344 -40.000000
+7049 5414  40.000000
+7049 5416   1.000000
+7050 5347 -80.000000
+7050 5417  80.000000
+7050 5419   1.000000
+7051 5348 -40.000000
+7051 5418  40.000000
+7051 5420   1.000000
+7052 5353 -80.000000
+7052 5423  80.000000
+7052 5425   1.000000
+7053 5354 -40.000000
+7053 5424  40.000000
+7053 5426   1.000000
+7054 5357 -80.000000
+7054 5427  80.000000
+7054 5429   1.000000
+7055 5358 -40.000000
+7055 5428  40.000000
+7055 5430   1.000000
+7056 5361 -80.000000
+7056 5431  80.000000
+7056 5433   1.000000
+7057 5362 -40.000000
+7057 5432  40.000000
+7057 5434   1.000000
+7058 5367 -80.000000
+7058 5437  80.000000
+7058 5439   1.000000
+7059 5368 -40.000000
+7059 5438  40.000000
+7059 5440   1.000000
+7060 5371 -80.000000
+7060 5441  80.000000
+7060 5443   1.000000
+7061 5372 -40.000000
+7061 5442  40.000000
+7061 5444   1.000000
+7062 5375 -80.000000
+7062 5445  80.000000
+7062 5447   1.000000
+7063 5376 -40.000000
+7063 5446  40.000000
+7063 5448   1.000000
+7064 5381 -80.000000
+7064 5451  80.000000
+7064 5453   1.000000
+7065 5382 -40.000000
+7065 5452  40.000000
+7065 5454   1.000000
+7066 5385 -80.000000
+7066 5455  80.000000
+7066 5457   1.000000
+7067 5386 -40.000000
+7067 5456  40.000000
+7067 5458   1.000000
+7068 5389 -80.000000
+7068 5459  80.000000
+7068 5461   1.000000
+7069 5390 -40.000000
+7069 5460  40.000000
+7069 5462   1.000000
+7070 5395 -80.000000
+7070 5465  80.000000
+7070 5467   1.000000
+7071 5396 -40.000000
+7071 5466  40.000000
+7071 5468   1.000000
+7072 5399 -80.000000
+7072 5469  80.000000
+7072 5471   1.000000
+7073 5400 -40.000000
+7073 5470  40.000000
+7073 5472   1.000000
+7074 5403 -80.000000
+7074 5473  80.000000
+7074 5475   1.000000
+7075 5404 -40.000000
+7075 5474  40.000000
+7075 5476   1.000000
+7076 5409 -80.000000
+7076 5479  80.000000
+7076 5481   1.000000
+7077 5410 -40.000000
+7077 5480  40.000000
+7077 5482   1.000000
+7078 5413 -80.000000
+7078 5483  80.000000
+7078 5485   1.000000
+7079 5414 -40.000000
+7079 5484  40.000000
+7079 5486   1.000000
+7080 5417 -80.000000
+7080 5487  80.000000
+7080 5489   1.000000
+7081 5418 -40.000000
+7081 5488  40.000000
+7081 5490   1.000000
+7082 5423 -80.000000
+7082 5493  80.000000
+7082 5495   1.000000
+7083 5424 -40.000000
+7083 5494  40.000000
+7083 5496   1.000000
+7084 5427 -80.000000
+7084 5497  80.000000
+7084 5499   1.000000
+7085 5428 -40.000000
+7085 5498  40.000000
+7085 5500   1.000000
+7086 5431 -80.000000
+7086 5501  80.000000
+7086 5503   1.000000
+7087 5432 -40.000000
+7087 5502  40.000000
+7087 5504   1.000000
+7088 5437 -80.000000
+7088 5507  80.000000
+7088 5509   1.000000
+7089 5438 -40.000000
+7089 5508  40.000000
+7089 5510   1.000000
+7090 5441 -80.000000
+7090 5511  80.000000
+7090 5513   1.000000
+7091 5442 -40.000000
+7091 5512  40.000000
+7091 5514   1.000000
+7092 5445 -80.000000
+7092 5515  80.000000
+7092 5517   1.000000
+7093 5446 -40.000000
+7093 5516  40.000000
+7093 5518   1.000000
+7094 5451 -80.000000
+7094 5521  80.000000
+7094 5523   1.000000
+7095 5452 -40.000000
+7095 5522  40.000000
+7095 5524   1.000000
+7096 5455 -80.000000
+7096 5525  80.000000
+7096 5527   1.000000
+7097 5456 -40.000000
+7097 5526  40.000000
+7097 5528   1.000000
+7098 5459 -80.000000
+7098 5529  80.000000
+7098 5531   1.000000
+7099 5460 -40.000000
+7099 5530  40.000000
+7099 5532   1.000000
+7100 5465 -80.000000
+7100 5535  80.000000
+7100 5537   1.000000
+7101 5466 -40.000000
+7101 5536  40.000000
+7101 5538   1.000000
+7102 5469 -80.000000
+7102 5539  80.000000
+7102 5541   1.000000
+7103 5470 -40.000000
+7103 5540  40.000000
+7103 5542   1.000000
+7104 5473 -80.000000
+7104 5543  80.000000
+7104 5545   1.000000
+7105 5474 -40.000000
+7105 5544  40.000000
+7105 5546   1.000000
+7106 5479 -80.000000
+7106 5549  80.000000
+7106 5551   1.000000
+7107 5480 -40.000000
+7107 5550  40.000000
+7107 5552   1.000000
+7108 5483 -80.000000
+7108 5553  80.000000
+7108 5555   1.000000
+7109 5484 -40.000000
+7109 5554  40.000000
+7109 5556   1.000000
+7110 5487 -80.000000
+7110 5557  80.000000
+7110 5559   1.000000
+7111 5488 -40.000000
+7111 5558  40.000000
+7111 5560   1.000000
+7112 5493 -80.000000
+7112 5563  80.000000
+7112 5565   1.000000
+7113 5494 -40.000000
+7113 5564  40.000000
+7113 5566   1.000000
+7114 5497 -80.000000
+7114 5567  80.000000
+7114 5569   1.000000
+7115 5498 -40.000000
+7115 5568  40.000000
+7115 5570   1.000000
+7116 5501 -80.000000
+7116 5571  80.000000
+7116 5573   1.000000
+7117 5502 -40.000000
+7117 5572  40.000000
+7117 5574   1.000000
+7118 5507 -80.000000
+7118 5577  80.000000
+7118 5579   1.000000
+7119 5508 -40.000000
+7119 5578  40.000000
+7119 5580   1.000000
+7120 5511 -80.000000
+7120 5581  80.000000
+7120 5583   1.000000
+7121 5512 -40.000000
+7121 5582  40.000000
+7121 5584   1.000000
+7122 5515 -80.000000
+7122 5585  80.000000
+7122 5587   1.000000
+7123 5516 -40.000000
+7123 5586  40.000000
+7123 5588   1.000000
+7124 5521 -80.000000
+7124 5591  80.000000
+7124 5593   1.000000
+7125 5522 -40.000000
+7125 5592  40.000000
+7125 5594   1.000000
+7126 5525 -80.000000
+7126 5595  80.000000
+7126 5597   1.000000
+7127 5526 -40.000000
+7127 5596  40.000000
+7127 5598   1.000000
+7128 5529 -80.000000
+7128 5599  80.000000
+7128 5601   1.000000
+7129 5530 -40.000000
+7129 5600  40.000000
+7129 5602   1.000000
+7130 5535 -80.000000
+7130 5605  80.000000
+7130 5607   1.000000
+7131 5536 -40.000000
+7131 5606  40.000000
+7131 5608   1.000000
+7132 5539 -80.000000
+7132 5609  80.000000
+7132 5611   1.000000
+7133 5540 -40.000000
+7133 5610  40.000000
+7133 5612   1.000000
+7134 5543 -80.000000
+7134 5613  80.000000
+7134 5615   1.000000
+7135 5544 -40.000000
+7135 5614  40.000000
+7135 5616   1.000000
+7136 5549 -80.000000
+7136 5619  80.000000
+7136 5621   1.000000
+7137 5550 -40.000000
+7137 5620  40.000000
+7137 5622   1.000000
+7138 5553 -80.000000
+7138 5623  80.000000
+7138 5625   1.000000
+7139 5554 -40.000000
+7139 5624  40.000000
+7139 5626   1.000000
+7140 5557 -80.000000
+7140 5627  80.000000
+7140 5629   1.000000
+7141 5558 -40.000000
+7141 5628  40.000000
+7141 5630   1.000000
+7142 5563 -80.000000
+7142 5633  80.000000
+7142 5635   1.000000
+7143 5564 -40.000000
+7143 5634  40.000000
+7143 5636   1.000000
+7144 5567 -80.000000
+7144 5637  80.000000
+7144 5639   1.000000
+7145 5568 -40.000000
+7145 5638  40.000000
+7145 5640   1.000000
+7146 5571 -80.000000
+7146 5641  80.000000
+7146 5643   1.000000
+7147 5572 -40.000000
+7147 5642  40.000000
+7147 5644   1.000000
+7148 5577 -80.000000
+7148 5647  80.000000
+7148 5649   1.000000
+7149 5578 -40.000000
+7149 5648  40.000000
+7149 5650   1.000000
+7150 5581 -80.000000
+7150 5651  80.000000
+7150 5653   1.000000
+7151 5582 -40.000000
+7151 5652  40.000000
+7151 5654   1.000000
+7152 5585 -80.000000
+7152 5655  80.000000
+7152 5657   1.000000
+7153 5586 -40.000000
+7153 5656  40.000000
+7153 5658   1.000000
+7154 5591 -80.000000
+7154 5661  80.000000
+7154 5663   1.000000
+7155 5592 -40.000000
+7155 5662  40.000000
+7155 5664   1.000000
+7156 5595 -80.000000
+7156 5665  80.000000
+7156 5667   1.000000
+7157 5596 -40.000000
+7157 5666  40.000000
+7157 5668   1.000000
+7158 5599 -80.000000
+7158 5669  80.000000
+7158 5671   1.000000
+7159 5600 -40.000000
+7159 5670  40.000000
+7159 5672   1.000000
+7160 5605 -80.000000
+7160 5675  80.000000
+7160 5677   1.000000
+7161 5606 -40.000000
+7161 5676  40.000000
+7161 5678   1.000000
+7162 5609 -80.000000
+7162 5679  80.000000
+7162 5681   1.000000
+7163 5610 -40.000000
+7163 5680  40.000000
+7163 5682   1.000000
+7164 5613 -80.000000
+7164 5683  80.000000
+7164 5685   1.000000
+7165 5614 -40.000000
+7165 5684  40.000000
+7165 5686   1.000000
+7166 5619 -80.000000
+7166 5689  80.000000
+7166 5691   1.000000
+7167 5620 -40.000000
+7167 5690  40.000000
+7167 5692   1.000000
+7168 5623 -80.000000
+7168 5693  80.000000
+7168 5695   1.000000
+7169 5624 -40.000000
+7169 5694  40.000000
+7169 5696   1.000000
+7170 5627 -80.000000
+7170 5697  80.000000
+7170 5699   1.000000
+7171 5628 -40.000000
+7171 5698  40.000000
+7171 5700   1.000000
+7172 5633 -80.000000
+7172 5703  80.000000
+7172 5705   1.000000
+7173 5634 -40.000000
+7173 5704  40.000000
+7173 5706   1.000000
+7174 5637 -80.000000
+7174 5707  80.000000
+7174 5709   1.000000
+7175 5638 -40.000000
+7175 5708  40.000000
+7175 5710   1.000000
+7176 5641 -80.000000
+7176 5711  80.000000
+7176 5713   1.000000
+7177 5642 -40.000000
+7177 5712  40.000000
+7177 5714   1.000000
+7178 5647 -80.000000
+7178 5717  80.000000
+7178 5719   1.000000
+7179 5648 -40.000000
+7179 5718  40.000000
+7179 5720   1.000000
+7180 5651 -80.000000
+7180 5721  80.000000
+7180 5723   1.000000
+7181 5652 -40.000000
+7181 5722  40.000000
+7181 5724   1.000000
+7182 5655 -80.000000
+7182 5725  80.000000
+7182 5727   1.000000
+7183 5656 -40.000000
+7183 5726  40.000000
+7183 5728   1.000000
+7184 5661 -80.000000
+7184 5731  80.000000
+7184 5733   1.000000
+7185 5662 -40.000000
+7185 5732  40.000000
+7185 5734   1.000000
+7186 5665 -80.000000
+7186 5735  80.000000
+7186 5737   1.000000
+7187 5666 -40.000000
+7187 5736  40.000000
+7187 5738   1.000000
+7188 5669 -80.000000
+7188 5739  80.000000
+7188 5741   1.000000
+7189 5670 -40.000000
+7189 5740  40.000000
+7189 5742   1.000000
+7190 5675 -80.000000
+7190 5745  80.000000
+7190 5747   1.000000
+7191 5676 -40.000000
+7191 5746  40.000000
+7191 5748   1.000000
+7192 5679 -80.000000
+7192 5749  80.000000
+7192 5751   1.000000
+7193 5680 -40.000000
+7193 5750  40.000000
+7193 5752   1.000000
+7194 5683 -80.000000
+7194 5753  80.000000
+7194 5755   1.000000
+7195 5684 -40.000000
+7195 5754  40.000000
+7195 5756   1.000000
+7196 5689 -80.000000
+7196 5759  80.000000
+7196 5761   1.000000
+7197 5690 -40.000000
+7197 5760  40.000000
+7197 5762   1.000000
+7198 5693 -80.000000
+7198 5763  80.000000
+7198 5765   1.000000
+7199 5694 -40.000000
+7199 5764  40.000000
+7199 5766   1.000000
+7200 5697 -80.000000
+7200 5767  80.000000
+7200 5769   1.000000
+7201 5698 -40.000000
+7201 5768  40.000000
+7201 5770   1.000000
+7202 5703 -80.000000
+7202 5773  80.000000
+7202 5775   1.000000
+7203 5704 -40.000000
+7203 5774  40.000000
+7203 5776   1.000000
+7204 5707 -80.000000
+7204 5777  80.000000
+7204 5779   1.000000
+7205 5708 -40.000000
+7205 5778  40.000000
+7205 5780   1.000000
+7206 5711 -80.000000
+7206 5781  80.000000
+7206 5783   1.000000
+7207 5712 -40.000000
+7207 5782  40.000000
+7207 5784   1.000000
+7208 5717 -80.000000
+7208 5787  80.000000
+7208 5789   1.000000
+7209 5718 -40.000000
+7209 5788  40.000000
+7209 5790   1.000000
+7210 5721 -80.000000
+7210 5791  80.000000
+7210 5793   1.000000
+7211 5722 -40.000000
+7211 5792  40.000000
+7211 5794   1.000000
+7212 5725 -80.000000
+7212 5795  80.000000
+7212 5797   1.000000
+7213 5726 -40.000000
+7213 5796  40.000000
+7213 5798   1.000000
+7214 5731 -80.000000
+7214 5801  80.000000
+7214 5803   1.000000
+7215 5732 -40.000000
+7215 5802  40.000000
+7215 5804   1.000000
+7216 5735 -80.000000
+7216 5805  80.000000
+7216 5807   1.000000
+7217 5736 -40.000000
+7217 5806  40.000000
+7217 5808   1.000000
+7218 5739 -80.000000
+7218 5809  80.000000
+7218 5811   1.000000
+7219 5740 -40.000000
+7219 5810  40.000000
+7219 5812   1.000000
+7220 5745 -80.000000
+7220 5815  80.000000
+7220 5817   1.000000
+7221 5746 -40.000000
+7221 5816  40.000000
+7221 5818   1.000000
+7222 5749 -80.000000
+7222 5819  80.000000
+7222 5821   1.000000
+7223 5750 -40.000000
+7223 5820  40.000000
+7223 5822   1.000000
+7224 5753 -80.000000
+7224 5823  80.000000
+7224 5825   1.000000
+7225 5754 -40.000000
+7225 5824  40.000000
+7225 5826   1.000000
+7226 5759 -80.000000
+7226 5829  80.000000
+7226 5831   1.000000
+7227 5760 -40.000000
+7227 5830  40.000000
+7227 5832   1.000000
+7228 5763 -80.000000
+7228 5833  80.000000
+7228 5835   1.000000
+7229 5764 -40.000000
+7229 5834  40.000000
+7229 5836   1.000000
+7230 5767 -80.000000
+7230 5837  80.000000
+7230 5839   1.000000
+7231 5768 -40.000000
+7231 5838  40.000000
+7231 5840   1.000000
+7232 5773 -80.000000
+7232 5843  80.000000
+7232 5845   1.000000
+7233 5774 -40.000000
+7233 5844  40.000000
+7233 5846   1.000000
+7234 5777 -80.000000
+7234 5847  80.000000
+7234 5849   1.000000
+7235 5778 -40.000000
+7235 5848  40.000000
+7235 5850   1.000000
+7236 5781 -80.000000
+7236 5851  80.000000
+7236 5853   1.000000
+7237 5782 -40.000000
+7237 5852  40.000000
+7237 5854   1.000000
+7238 5787 -80.000000
+7238 5857  80.000000
+7238 5859   1.000000
+7239 5788 -40.000000
+7239 5858  40.000000
+7239 5860   1.000000
+7240 5791 -80.000000
+7240 5861  80.000000
+7240 5863   1.000000
+7241 5792 -40.000000
+7241 5862  40.000000
+7241 5864   1.000000
+7242 5795 -80.000000
+7242 5865  80.000000
+7242 5867   1.000000
+7243 5796 -40.000000
+7243 5866  40.000000
+7243 5868   1.000000
+7244 5801 -80.000000
+7244 5871  80.000000
+7244 5873   1.000000
+7245 5802 -40.000000
+7245 5872  40.000000
+7245 5874   1.000000
+7246 5805 -80.000000
+7246 5875  80.000000
+7246 5877   1.000000
+7247 5806 -40.000000
+7247 5876  40.000000
+7247 5878   1.000000
+7248 5809 -80.000000
+7248 5879  80.000000
+7248 5881   1.000000
+7249 5810 -40.000000
+7249 5880  40.000000
+7249 5882   1.000000
+7250 5815 -80.000000
+7250 5885  80.000000
+7250 5887   1.000000
+7251 5816 -40.000000
+7251 5886  40.000000
+7251 5888   1.000000
+7252 5819 -80.000000
+7252 5889  80.000000
+7252 5891   1.000000
+7253 5820 -40.000000
+7253 5890  40.000000
+7253 5892   1.000000
+7254 5823 -80.000000
+7254 5893  80.000000
+7254 5895   1.000000
+7255 5824 -40.000000
+7255 5894  40.000000
+7255 5896   1.000000
+7256 5829 -80.000000
+7256 5899  80.000000
+7256 5901   1.000000
+7257 5830 -40.000000
+7257 5900  40.000000
+7257 5902   1.000000
+7258 5833 -80.000000
+7258 5903  80.000000
+7258 5905   1.000000
+7259 5834 -40.000000
+7259 5904  40.000000
+7259 5906   1.000000
+7260 5837 -80.000000
+7260 5907  80.000000
+7260 5909   1.000000
+7261 5838 -40.000000
+7261 5908  40.000000
+7261 5910   1.000000
+7262 5843 -80.000000
+7262 5913  80.000000
+7262 5915   1.000000
+7263 5844 -40.000000
+7263 5914  40.000000
+7263 5916   1.000000
+7264 5847 -80.000000
+7264 5917  80.000000
+7264 5919   1.000000
+7265 5848 -40.000000
+7265 5918  40.000000
+7265 5920   1.000000
+7266 5851 -80.000000
+7266 5921  80.000000
+7266 5923   1.000000
+7267 5852 -40.000000
+7267 5922  40.000000
+7267 5924   1.000000
+7268 5857 -80.000000
+7268 5927  80.000000
+7268 5929   1.000000
+7269 5858 -40.000000
+7269 5928  40.000000
+7269 5930   1.000000
+7270 5861 -80.000000
+7270 5931  80.000000
+7270 5933   1.000000
+7271 5862 -40.000000
+7271 5932  40.000000
+7271 5934   1.000000
+7272 5865 -80.000000
+7272 5935  80.000000
+7272 5937   1.000000
+7273 5866 -40.000000
+7273 5936  40.000000
+7273 5938   1.000000
+7274 5871 -80.000000
+7274 5941  80.000000
+7274 5943   1.000000
+7275 5872 -40.000000
+7275 5942  40.000000
+7275 5944   1.000000
+7276 5875 -80.000000
+7276 5945  80.000000
+7276 5947   1.000000
+7277 5876 -40.000000
+7277 5946  40.000000
+7277 5948   1.000000
+7278 5879 -80.000000
+7278 5949  80.000000
+7278 5951   1.000000
+7279 5880 -40.000000
+7279 5950  40.000000
+7279 5952   1.000000
+7280 5885 -80.000000
+7280 5955  80.000000
+7280 5957   1.000000
+7281 5886 -40.000000
+7281 5956  40.000000
+7281 5958   1.000000
+7282 5889 -80.000000
+7282 5959  80.000000
+7282 5961   1.000000
+7283 5890 -40.000000
+7283 5960  40.000000
+7283 5962   1.000000
+7284 5893 -80.000000
+7284 5963  80.000000
+7284 5965   1.000000
+7285 5894 -40.000000
+7285 5964  40.000000
+7285 5966   1.000000
+7286 5899 -80.000000
+7286 5969  80.000000
+7286 5971   1.000000
+7287 5900 -40.000000
+7287 5970  40.000000
+7287 5972   1.000000
+7288 5903 -80.000000
+7288 5973  80.000000
+7288 5975   1.000000
+7289 5904 -40.000000
+7289 5974  40.000000
+7289 5976   1.000000
+7290 5907 -80.000000
+7290 5977  80.000000
+7290 5979   1.000000
+7291 5908 -40.000000
+7291 5978  40.000000
+7291 5980   1.000000
+7292 5913 -80.000000
+7292 5983  80.000000
+7292 5985   1.000000
+7293 5914 -40.000000
+7293 5984  40.000000
+7293 5986   1.000000
+7294 5917 -80.000000
+7294 5987  80.000000
+7294 5989   1.000000
+7295 5918 -40.000000
+7295 5988  40.000000
+7295 5990   1.000000
+7296 5921 -80.000000
+7296 5991  80.000000
+7296 5993   1.000000
+7297 5922 -40.000000
+7297 5992  40.000000
+7297 5994   1.000000
+7298 5927 -80.000000
+7298 5997  80.000000
+7298 5999   1.000000
+7299 5928 -40.000000
+7299 5998  40.000000
+7299 6000   1.000000
+7300 5931 -80.000000
+7300 6001  80.000000
+7300 6003   1.000000
+7301 5932 -40.000000
+7301 6002  40.000000
+7301 6004   1.000000
+7302 5935 -80.000000
+7302 6005  80.000000
+7302 6007   1.000000
+7303 5936 -40.000000
+7303 6006  40.000000
+7303 6008   1.000000
+7304 5941 -80.000000
+7304 6011  80.000000
+7304 6013   1.000000
+7305 5942 -40.000000
+7305 6012  40.000000
+7305 6014   1.000000
+7306 5945 -80.000000
+7306 6015  80.000000
+7306 6017   1.000000
+7307 5946 -40.000000
+7307 6016  40.000000
+7307 6018   1.000000
+7308 5949 -80.000000
+7308 6019  80.000000
+7308 6021   1.000000
+7309 5950 -40.000000
+7309 6020  40.000000
+7309 6022   1.000000
+7310 5955 -80.000000
+7310 6025  80.000000
+7310 6027   1.000000
+7311 5956 -40.000000
+7311 6026  40.000000
+7311 6028   1.000000
+7312 5959 -80.000000
+7312 6029  80.000000
+7312 6031   1.000000
+7313 5960 -40.000000
+7313 6030  40.000000
+7313 6032   1.000000
+7314 5963 -80.000000
+7314 6033  80.000000
+7314 6035   1.000000
+7315 5964 -40.000000
+7315 6034  40.000000
+7315 6036   1.000000
+7316 5969 -80.000000
+7316 6039  80.000000
+7316 6041   1.000000
+7317 5970 -40.000000
+7317 6040  40.000000
+7317 6042   1.000000
+7318 5973 -80.000000
+7318 6043  80.000000
+7318 6045   1.000000
+7319 5974 -40.000000
+7319 6044  40.000000
+7319 6046   1.000000
+7320 5977 -80.000000
+7320 6047  80.000000
+7320 6049   1.000000
+7321 5978 -40.000000
+7321 6048  40.000000
+7321 6050   1.000000
+7322 5983 -80.000000
+7322 6053  80.000000
+7322 6055   1.000000
+7323 5984 -40.000000
+7323 6054  40.000000
+7323 6056   1.000000
+7324 5987 -80.000000
+7324 6057  80.000000
+7324 6059   1.000000
+7325 5988 -40.000000
+7325 6058  40.000000
+7325 6060   1.000000
+7326 5991 -80.000000
+7326 6061  80.000000
+7326 6063   1.000000
+7327 5992 -40.000000
+7327 6062  40.000000
+7327 6064   1.000000
+7328 5997 -80.000000
+7328 6067  80.000000
+7328 6069   1.000000
+7329 5998 -40.000000
+7329 6068  40.000000
+7329 6070   1.000000
+7330 6001 -80.000000
+7330 6071  80.000000
+7330 6073   1.000000
+7331 6002 -40.000000
+7331 6072  40.000000
+7331 6074   1.000000
+7332 6005 -80.000000
+7332 6075  80.000000
+7332 6077   1.000000
+7333 6006 -40.000000
+7333 6076  40.000000
+7333 6078   1.000000
+7334 6011 -80.000000
+7334 6081  80.000000
+7334 6083   1.000000
+7335 6012 -40.000000
+7335 6082  40.000000
+7335 6084   1.000000
+7336 6015 -80.000000
+7336 6085  80.000000
+7336 6087   1.000000
+7337 6016 -40.000000
+7337 6086  40.000000
+7337 6088   1.000000
+7338 6019 -80.000000
+7338 6089  80.000000
+7338 6091   1.000000
+7339 6020 -40.000000
+7339 6090  40.000000
+7339 6092   1.000000
+7340 6025 -80.000000
+7340 6095  80.000000
+7340 6097   1.000000
+7341 6026 -40.000000
+7341 6096  40.000000
+7341 6098   1.000000
+7342 6029 -80.000000
+7342 6099  80.000000
+7342 6101   1.000000
+7343 6030 -40.000000
+7343 6100  40.000000
+7343 6102   1.000000
+7344 6033 -80.000000
+7344 6103  80.000000
+7344 6105   1.000000
+7345 6034 -40.000000
+7345 6104  40.000000
+7345 6106   1.000000
+7346 6039 -80.000000
+7346 6109  80.000000
+7346 6111   1.000000
+7347 6040 -40.000000
+7347 6110  40.000000
+7347 6112   1.000000
+7348 6043 -80.000000
+7348 6113  80.000000
+7348 6115   1.000000
+7349 6044 -40.000000
+7349 6114  40.000000
+7349 6116   1.000000
+7350 6047 -80.000000
+7350 6117  80.000000
+7350 6119   1.000000
+7351 6048 -40.000000
+7351 6118  40.000000
+7351 6120   1.000000
+7352 6053 -80.000000
+7352 6123  80.000000
+7352 6125   1.000000
+7353 6054 -40.000000
+7353 6124  40.000000
+7353 6126   1.000000
+7354 6057 -80.000000
+7354 6127  80.000000
+7354 6129   1.000000
+7355 6058 -40.000000
+7355 6128  40.000000
+7355 6130   1.000000
+7356 6061 -80.000000
+7356 6131  80.000000
+7356 6133   1.000000
+7357 6062 -40.000000
+7357 6132  40.000000
+7357 6134   1.000000
+7358 6067 -80.000000
+7358 6137  80.000000
+7358 6139   1.000000
+7359 6068 -40.000000
+7359 6138  40.000000
+7359 6140   1.000000
+7360 6071 -80.000000
+7360 6141  80.000000
+7360 6143   1.000000
+7361 6072 -40.000000
+7361 6142  40.000000
+7361 6144   1.000000
+7362 6075 -80.000000
+7362 6145  80.000000
+7362 6147   1.000000
+7363 6076 -40.000000
+7363 6146  40.000000
+7363 6148   1.000000
+7364 6081 -80.000000
+7364 6151  80.000000
+7364 6153   1.000000
+7365 6082 -40.000000
+7365 6152  40.000000
+7365 6154   1.000000
+7366 6085 -80.000000
+7366 6155  80.000000
+7366 6157   1.000000
+7367 6086 -40.000000
+7367 6156  40.000000
+7367 6158   1.000000
+7368 6089 -80.000000
+7368 6159  80.000000
+7368 6161   1.000000
+7369 6090 -40.000000
+7369 6160  40.000000
+7369 6162   1.000000
+7370 6095 -80.000000
+7370 6165  80.000000
+7370 6167   1.000000
+7371 6096 -40.000000
+7371 6166  40.000000
+7371 6168   1.000000
+7372 6099 -80.000000
+7372 6169  80.000000
+7372 6171   1.000000
+7373 6100 -40.000000
+7373 6170  40.000000
+7373 6172   1.000000
+7374 6103 -80.000000
+7374 6173  80.000000
+7374 6175   1.000000
+7375 6104 -40.000000
+7375 6174  40.000000
+7375 6176   1.000000
+7376 6109 -80.000000
+7376 6179  80.000000
+7376 6181   1.000000
+7377 6110 -40.000000
+7377 6180  40.000000
+7377 6182   1.000000
+7378 6113 -80.000000
+7378 6183  80.000000
+7378 6185   1.000000
+7379 6114 -40.000000
+7379 6184  40.000000
+7379 6186   1.000000
+7380 6117 -80.000000
+7380 6187  80.000000
+7380 6189   1.000000
+7381 6118 -40.000000
+7381 6188  40.000000
+7381 6190   1.000000
+7382 6123 -80.000000
+7382 6193  80.000000
+7382 6195   1.000000
+7383 6124 -40.000000
+7383 6194  40.000000
+7383 6196   1.000000
+7384 6127 -80.000000
+7384 6197  80.000000
+7384 6199   1.000000
+7385 6128 -40.000000
+7385 6198  40.000000
+7385 6200   1.000000
+7386 6131 -80.000000
+7386 6201  80.000000
+7386 6203   1.000000
+7387 6132 -40.000000
+7387 6202  40.000000
+7387 6204   1.000000
+7388 6137 -80.000000
+7388 6207  80.000000
+7388 6209   1.000000
+7389 6138 -40.000000
+7389 6208  40.000000
+7389 6210   1.000000
+7390 6141 -80.000000
+7390 6211  80.000000
+7390 6213   1.000000
+7391 6142 -40.000000
+7391 6212  40.000000
+7391 6214   1.000000
+7392 6145 -80.000000
+7392 6215  80.000000
+7392 6217   1.000000
+7393 6146 -40.000000
+7393 6216  40.000000
+7393 6218   1.000000
+7394 6151 -80.000000
+7394 6221  80.000000
+7394 6223   1.000000
+7395 6152 -40.000000
+7395 6222  40.000000
+7395 6224   1.000000
+7396 6155 -80.000000
+7396 6225  80.000000
+7396 6227   1.000000
+7397 6156 -40.000000
+7397 6226  40.000000
+7397 6228   1.000000
+7398 6159 -80.000000
+7398 6229  80.000000
+7398 6231   1.000000
+7399 6160 -40.000000
+7399 6230  40.000000
+7399 6232   1.000000
+7400 6165 -80.000000
+7400 6235  80.000000
+7400 6237   1.000000
+7401 6166 -40.000000
+7401 6236  40.000000
+7401 6238   1.000000
+7402 6169 -80.000000
+7402 6239  80.000000
+7402 6241   1.000000
+7403 6170 -40.000000
+7403 6240  40.000000
+7403 6242   1.000000
+7404 6173 -80.000000
+7404 6243  80.000000
+7404 6245   1.000000
+7405 6174 -40.000000
+7405 6244  40.000000
+7405 6246   1.000000
+7406 6179 -80.000000
+7406 6249  80.000000
+7406 6251   1.000000
+7407 6180 -40.000000
+7407 6250  40.000000
+7407 6252   1.000000
+7408 6183 -80.000000
+7408 6253  80.000000
+7408 6255   1.000000
+7409 6184 -40.000000
+7409 6254  40.000000
+7409 6256   1.000000
+7410 6187 -80.000000
+7410 6257  80.000000
+7410 6259   1.000000
+7411 6188 -40.000000
+7411 6258  40.000000
+7411 6260   1.000000
+7412 6193 -80.000000
+7412 6263  80.000000
+7412 6265   1.000000
+7413 6194 -40.000000
+7413 6264  40.000000
+7413 6266   1.000000
+7414 6197 -80.000000
+7414 6267  80.000000
+7414 6269   1.000000
+7415 6198 -40.000000
+7415 6268  40.000000
+7415 6270   1.000000
+7416 6201 -80.000000
+7416 6271  80.000000
+7416 6273   1.000000
+7417 6202 -40.000000
+7417 6272  40.000000
+7417 6274   1.000000
+7418 6207 -80.000000
+7418 6277  80.000000
+7418 6279   1.000000
+7419 6208 -40.000000
+7419 6278  40.000000
+7419 6280   1.000000
+7420 6211 -80.000000
+7420 6281  80.000000
+7420 6283   1.000000
+7421 6212 -40.000000
+7421 6282  40.000000
+7421 6284   1.000000
+7422 6215 -80.000000
+7422 6285  80.000000
+7422 6287   1.000000
+7423 6216 -40.000000
+7423 6286  40.000000
+7423 6288   1.000000
+7424 6221 -80.000000
+7424 6291  80.000000
+7424 6293   1.000000
+7425 6222 -40.000000
+7425 6292  40.000000
+7425 6294   1.000000
+7426 6225 -80.000000
+7426 6295  80.000000
+7426 6297   1.000000
+7427 6226 -40.000000
+7427 6296  40.000000
+7427 6298   1.000000
+7428 6229 -80.000000
+7428 6299  80.000000
+7428 6301   1.000000
+7429 6230 -40.000000
+7429 6300  40.000000
+7429 6302   1.000000
+7430 6235 -80.000000
+7430 6305  80.000000
+7430 6307   1.000000
+7431 6236 -40.000000
+7431 6306  40.000000
+7431 6308   1.000000
+7432 6239 -80.000000
+7432 6309  80.000000
+7432 6311   1.000000
+7433 6240 -40.000000
+7433 6310  40.000000
+7433 6312   1.000000
+7434 6243 -80.000000
+7434 6313  80.000000
+7434 6315   1.000000
+7435 6244 -40.000000
+7435 6314  40.000000
+7435 6316   1.000000
+7436 6249 -80.000000
+7436 6319  80.000000
+7436 6321   1.000000
+7437 6250 -40.000000
+7437 6320  40.000000
+7437 6322   1.000000
+7438 6253 -80.000000
+7438 6323  80.000000
+7438 6325   1.000000
+7439 6254 -40.000000
+7439 6324  40.000000
+7439 6326   1.000000
+7440 6257 -80.000000
+7440 6327  80.000000
+7440 6329   1.000000
+7441 6258 -40.000000
+7441 6328  40.000000
+7441 6330   1.000000
+7442 6263 -80.000000
+7442 6333  80.000000
+7442 6335   1.000000
+7443 6264 -40.000000
+7443 6334  40.000000
+7443 6336   1.000000
+7444 6267 -80.000000
+7444 6337  80.000000
+7444 6339   1.000000
+7445 6268 -40.000000
+7445 6338  40.000000
+7445 6340   1.000000
+7446 6271 -80.000000
+7446 6341  80.000000
+7446 6343   1.000000
+7447 6272 -40.000000
+7447 6342  40.000000
+7447 6344   1.000000
+7448 6277 -80.000000
+7448 6347  80.000000
+7448 6349   1.000000
+7449 6278 -40.000000
+7449 6348  40.000000
+7449 6350   1.000000
+7450 6281 -80.000000
+7450 6351  80.000000
+7450 6353   1.000000
+7451 6282 -40.000000
+7451 6352  40.000000
+7451 6354   1.000000
+7452 6285 -80.000000
+7452 6355  80.000000
+7452 6357   1.000000
+7453 6286 -40.000000
+7453 6356  40.000000
+7453 6358   1.000000
+7454 6291 -80.000000
+7454 6361  80.000000
+7454 6363   1.000000
+7455 6292 -40.000000
+7455 6362  40.000000
+7455 6364   1.000000
+7456 6295 -80.000000
+7456 6365  80.000000
+7456 6367   1.000000
+7457 6296 -40.000000
+7457 6366  40.000000
+7457 6368   1.000000
+7458 6299 -80.000000
+7458 6369  80.000000
+7458 6371   1.000000
+7459 6300 -40.000000
+7459 6370  40.000000
+7459 6372   1.000000
+7460 6305 -80.000000
+7460 6375  80.000000
+7460 6377   1.000000
+7461 6306 -40.000000
+7461 6376  40.000000
+7461 6378   1.000000
+7462 6309 -80.000000
+7462 6379  80.000000
+7462 6381   1.000000
+7463 6310 -40.000000
+7463 6380  40.000000
+7463 6382   1.000000
+7464 6313 -80.000000
+7464 6383  80.000000
+7464 6385   1.000000
+7465 6314 -40.000000
+7465 6384  40.000000
+7465 6386   1.000000
+7466 6319 -80.000000
+7466 6389  80.000000
+7466 6391   1.000000
+7467 6320 -40.000000
+7467 6390  40.000000
+7467 6392   1.000000
+7468 6323 -80.000000
+7468 6393  80.000000
+7468 6395   1.000000
+7469 6324 -40.000000
+7469 6394  40.000000
+7469 6396   1.000000
+7470 6327 -80.000000
+7470 6397  80.000000
+7470 6399   1.000000
+7471 6328 -40.000000
+7471 6398  40.000000
+7471 6400   1.000000
+7472 6333 -80.000000
+7472 6403  80.000000
+7472 6405   1.000000
+7473 6334 -40.000000
+7473 6404  40.000000
+7473 6406   1.000000
+7474 6337 -80.000000
+7474 6407  80.000000
+7474 6409   1.000000
+7475 6338 -40.000000
+7475 6408  40.000000
+7475 6410   1.000000
+7476 6341 -80.000000
+7476 6411  80.000000
+7476 6413   1.000000
+7477 6342 -40.000000
+7477 6412  40.000000
+7477 6414   1.000000
+7478 6347 -80.000000
+7478 6417  80.000000
+7478 6419   1.000000
+7479 6348 -40.000000
+7479 6418  40.000000
+7479 6420   1.000000
+7480 6351 -80.000000
+7480 6421  80.000000
+7480 6423   1.000000
+7481 6352 -40.000000
+7481 6422  40.000000
+7481 6424   1.000000
+7482 6355 -80.000000
+7482 6425  80.000000
+7482 6427   1.000000
+7483 6356 -40.000000
+7483 6426  40.000000
+7483 6428   1.000000
+7484 6361 -80.000000
+7484 6431  80.000000
+7484 6433   1.000000
+7485 6362 -40.000000
+7485 6432  40.000000
+7485 6434   1.000000
+7486 6365 -80.000000
+7486 6435  80.000000
+7486 6437   1.000000
+7487 6366 -40.000000
+7487 6436  40.000000
+7487 6438   1.000000
+7488 6369 -80.000000
+7488 6439  80.000000
+7488 6441   1.000000
+7489 6370 -40.000000
+7489 6440  40.000000
+7489 6442   1.000000
+7490 6375 -80.000000
+7490 6445  80.000000
+7490 6447   1.000000
+7491 6376 -40.000000
+7491 6446  40.000000
+7491 6448   1.000000
+7492 6379 -80.000000
+7492 6449  80.000000
+7492 6451   1.000000
+7493 6380 -40.000000
+7493 6450  40.000000
+7493 6452   1.000000
+7494 6383 -80.000000
+7494 6453  80.000000
+7494 6455   1.000000
+7495 6384 -40.000000
+7495 6454  40.000000
+7495 6456   1.000000
+7496 6389 -80.000000
+7496 6459  80.000000
+7496 6461   1.000000
+7497 6390 -40.000000
+7497 6460  40.000000
+7497 6462   1.000000
+7498 6393 -80.000000
+7498 6463  80.000000
+7498 6465   1.000000
+7499 6394 -40.000000
+7499 6464  40.000000
+7499 6466   1.000000
+7500 6397 -80.000000
+7500 6467  80.000000
+7500 6469   1.000000
+7501 6398 -40.000000
+7501 6468  40.000000
+7501 6470   1.000000
+7502 6403 -80.000000
+7502 6473  80.000000
+7502 6475   1.000000
+7503 6404 -40.000000
+7503 6474  40.000000
+7503 6476   1.000000
+7504 6407 -80.000000
+7504 6477  80.000000
+7504 6479   1.000000
+7505 6408 -40.000000
+7505 6478  40.000000
+7505 6480   1.000000
+7506 6411 -80.000000
+7506 6481  80.000000
+7506 6483   1.000000
+7507 6412 -40.000000
+7507 6482  40.000000
+7507 6484   1.000000
+7508 6417 -80.000000
+7508 6487  80.000000
+7508 6489   1.000000
+7509 6418 -40.000000
+7509 6488  40.000000
+7509 6490   1.000000
+7510 6421 -80.000000
+7510 6491  80.000000
+7510 6493   1.000000
+7511 6422 -40.000000
+7511 6492  40.000000
+7511 6494   1.000000
+7512 6425 -80.000000
+7512 6495  80.000000
+7512 6497   1.000000
+7513 6426 -40.000000
+7513 6496  40.000000
+7513 6498   1.000000
+7514 6431 -80.000000
+7514 6501  80.000000
+7514 6503   1.000000
+7515 6432 -40.000000
+7515 6502  40.000000
+7515 6504   1.000000
+7516 6435 -80.000000
+7516 6505  80.000000
+7516 6507   1.000000
+7517 6436 -40.000000
+7517 6506  40.000000
+7517 6508   1.000000
+7518 6439 -80.000000
+7518 6509  80.000000
+7518 6511   1.000000
+7519 6440 -40.000000
+7519 6510  40.000000
+7519 6512   1.000000
+7520 6445 -80.000000
+7520 6515  80.000000
+7520 6517   1.000000
+7521 6446 -40.000000
+7521 6516  40.000000
+7521 6518   1.000000
+7522 6449 -80.000000
+7522 6519  80.000000
+7522 6521   1.000000
+7523 6450 -40.000000
+7523 6520  40.000000
+7523 6522   1.000000
+7524 6453 -80.000000
+7524 6523  80.000000
+7524 6525   1.000000
+7525 6454 -40.000000
+7525 6524  40.000000
+7525 6526   1.000000
+7526 6459 -80.000000
+7526 6529  80.000000
+7526 6531   1.000000
+7527 6460 -40.000000
+7527 6530  40.000000
+7527 6532   1.000000
+7528 6463 -80.000000
+7528 6533  80.000000
+7528 6535   1.000000
+7529 6464 -40.000000
+7529 6534  40.000000
+7529 6536   1.000000
+7530 6467 -80.000000
+7530 6537  80.000000
+7530 6539   1.000000
+7531 6468 -40.000000
+7531 6538  40.000000
+7531 6540   1.000000
+7532 6473 -80.000000
+7532 6543  80.000000
+7532 6545   1.000000
+7533 6474 -40.000000
+7533 6544  40.000000
+7533 6546   1.000000
+7534 6477 -80.000000
+7534 6547  80.000000
+7534 6549   1.000000
+7535 6478 -40.000000
+7535 6548  40.000000
+7535 6550   1.000000
+7536 6481 -80.000000
+7536 6551  80.000000
+7536 6553   1.000000
+7537 6482 -40.000000
+7537 6552  40.000000
+7537 6554   1.000000
+7538 6487 -80.000000
+7538 6557  80.000000
+7538 6559   1.000000
+7539 6488 -40.000000
+7539 6558  40.000000
+7539 6560   1.000000
+7540 6491 -80.000000
+7540 6561  80.000000
+7540 6563   1.000000
+7541 6492 -40.000000
+7541 6562  40.000000
+7541 6564   1.000000
+7542 6495 -80.000000
+7542 6565  80.000000
+7542 6567   1.000000
+7543 6496 -40.000000
+7543 6566  40.000000
+7543 6568   1.000000
+7544 6501 -80.000000
+7544 6571  80.000000
+7544 6573   1.000000
+7545 6502 -40.000000
+7545 6572  40.000000
+7545 6574   1.000000
+7546 6505 -80.000000
+7546 6575  80.000000
+7546 6577   1.000000
+7547 6506 -40.000000
+7547 6576  40.000000
+7547 6578   1.000000
+7548 6509 -80.000000
+7548 6579  80.000000
+7548 6581   1.000000
+7549 6510 -40.000000
+7549 6580  40.000000
+7549 6582   1.000000
+7550 6515 -80.000000
+7550 6585  80.000000
+7550 6587   1.000000
+7551 6516 -40.000000
+7551 6586  40.000000
+7551 6588   1.000000
+7552 6519 -80.000000
+7552 6589  80.000000
+7552 6591   1.000000
+7553 6520 -40.000000
+7553 6590  40.000000
+7553 6592   1.000000
+7554 6523 -80.000000
+7554 6593  80.000000
+7554 6595   1.000000
+7555 6524 -40.000000
+7555 6594  40.000000
+7555 6596   1.000000
+7556 6529 -80.000000
+7556 6599  80.000000
+7556 6601   1.000000
+7557 6530 -40.000000
+7557 6600  40.000000
+7557 6602   1.000000
+7558 6533 -80.000000
+7558 6603  80.000000
+7558 6605   1.000000
+7559 6534 -40.000000
+7559 6604  40.000000
+7559 6606   1.000000
+7560 6537 -80.000000
+7560 6607  80.000000
+7560 6609   1.000000
+7561 6538 -40.000000
+7561 6608  40.000000
+7561 6610   1.000000
+7562 6543 -80.000000
+7562 6613  80.000000
+7562 6615   1.000000
+7563 6544 -40.000000
+7563 6614  40.000000
+7563 6616   1.000000
+7564 6547 -80.000000
+7564 6617  80.000000
+7564 6619   1.000000
+7565 6548 -40.000000
+7565 6618  40.000000
+7565 6620   1.000000
+7566 6551 -80.000000
+7566 6621  80.000000
+7566 6623   1.000000
+7567 6552 -40.000000
+7567 6622  40.000000
+7567 6624   1.000000
+7568 6557 -80.000000
+7568 6627  80.000000
+7568 6629   1.000000
+7569 6558 -40.000000
+7569 6628  40.000000
+7569 6630   1.000000
+7570 6561 -80.000000
+7570 6631  80.000000
+7570 6633   1.000000
+7571 6562 -40.000000
+7571 6632  40.000000
+7571 6634   1.000000
+7572 6565 -80.000000
+7572 6635  80.000000
+7572 6637   1.000000
+7573 6566 -40.000000
+7573 6636  40.000000
+7573 6638   1.000000
+7574 6571 -80.000000
+7574 6641  80.000000
+7574 6643   1.000000
+7575 6572 -40.000000
+7575 6642  40.000000
+7575 6644   1.000000
+7576 6575 -80.000000
+7576 6645  80.000000
+7576 6647   1.000000
+7577 6576 -40.000000
+7577 6646  40.000000
+7577 6648   1.000000
+7578 6579 -80.000000
+7578 6649  80.000000
+7578 6651   1.000000
+7579 6580 -40.000000
+7579 6650  40.000000
+7579 6652   1.000000
+7580 6585 -80.000000
+7580 6655  80.000000
+7580 6657   1.000000
+7581 6586 -40.000000
+7581 6656  40.000000
+7581 6658   1.000000
+7582 6589 -80.000000
+7582 6659  80.000000
+7582 6661   1.000000
+7583 6590 -40.000000
+7583 6660  40.000000
+7583 6662   1.000000
+7584 6593 -80.000000
+7584 6663  80.000000
+7584 6665   1.000000
+7585 6594 -40.000000
+7585 6664  40.000000
+7585 6666   1.000000
+7586 6599 -80.000000
+7586 6669  80.000000
+7586 6671   1.000000
+7587 6600 -40.000000
+7587 6670  40.000000
+7587 6672   1.000000
+7588 6603 -80.000000
+7588 6673  80.000000
+7588 6675   1.000000
+7589 6604 -40.000000
+7589 6674  40.000000
+7589 6676   1.000000
+7590 6607 -80.000000
+7590 6677  80.000000
+7590 6679   1.000000
+7591 6608 -40.000000
+7591 6678  40.000000
+7591 6680   1.000000
+7592 6613 -80.000000
+7592 6683  80.000000
+7592 6685   1.000000
+7593 6614 -40.000000
+7593 6684  40.000000
+7593 6686   1.000000
+7594 6617 -80.000000
+7594 6687  80.000000
+7594 6689   1.000000
+7595 6618 -40.000000
+7595 6688  40.000000
+7595 6690   1.000000
+7596 6621 -80.000000
+7596 6691  80.000000
+7596 6693   1.000000
+7597 6622 -40.000000
+7597 6692  40.000000
+7597 6694   1.000000
+7598 6627 -80.000000
+7598 6697  80.000000
+7598 6699   1.000000
+7599 6628 -40.000000
+7599 6698  40.000000
+7599 6700   1.000000
+7600 6631 -80.000000
+7600 6701  80.000000
+7600 6703   1.000000
+7601 6632 -40.000000
+7601 6702  40.000000
+7601 6704   1.000000
+7602 6635 -80.000000
+7602 6705  80.000000
+7602 6707   1.000000
+7603 6636 -40.000000
+7603 6706  40.000000
+7603 6708   1.000000
+7604 6641 -80.000000
+7604 6711  80.000000
+7604 6713   1.000000
+7605 6642 -40.000000
+7605 6712  40.000000
+7605 6714   1.000000
+7606 6645 -80.000000
+7606 6715  80.000000
+7606 6717   1.000000
+7607 6646 -40.000000
+7607 6716  40.000000
+7607 6718   1.000000
+7608 6649 -80.000000
+7608 6719  80.000000
+7608 6721   1.000000
+7609 6650 -40.000000
+7609 6720  40.000000
+7609 6722   1.000000
+7610 6655 -80.000000
+7610 6725  80.000000
+7610 6727   1.000000
+7611 6656 -40.000000
+7611 6726  40.000000
+7611 6728   1.000000
+7612 6659 -80.000000
+7612 6729  80.000000
+7612 6731   1.000000
+7613 6660 -40.000000
+7613 6730  40.000000
+7613 6732   1.000000
+7614 6663 -80.000000
+7614 6733  80.000000
+7614 6735   1.000000
+7615 6664 -40.000000
+7615 6734  40.000000
+7615 6736   1.000000
+7616 6669 -80.000000
+7616 6739  80.000000
+7616 6741   1.000000
+7617 6670 -40.000000
+7617 6740  40.000000
+7617 6742   1.000000
+7618 6673 -80.000000
+7618 6743  80.000000
+7618 6745   1.000000
+7619 6674 -40.000000
+7619 6744  40.000000
+7619 6746   1.000000
+7620 6677 -80.000000
+7620 6747  80.000000
+7620 6749   1.000000
+7621 6678 -40.000000
+7621 6748  40.000000
+7621 6750   1.000000
+7622 6683 -80.000000
+7622 6753  80.000000
+7622 6755   1.000000
+7623 6684 -40.000000
+7623 6754  40.000000
+7623 6756   1.000000
+7624 6687 -80.000000
+7624 6757  80.000000
+7624 6759   1.000000
+7625 6688 -40.000000
+7625 6758  40.000000
+7625 6760   1.000000
+7626 6691 -80.000000
+7626 6761  80.000000
+7626 6763   1.000000
+7627 6692 -40.000000
+7627 6762  40.000000
+7627 6764   1.000000
+7628 6697 -80.000000
+7628 6767  80.000000
+7628 6769   1.000000
+7629 6698 -40.000000
+7629 6768  40.000000
+7629 6770   1.000000
+7630 6701 -80.000000
+7630 6771  80.000000
+7630 6773   1.000000
+7631 6702 -40.000000
+7631 6772  40.000000
+7631 6774   1.000000
+7632 6705 -80.000000
+7632 6775  80.000000
+7632 6777   1.000000
+7633 6706 -40.000000
+7633 6776  40.000000
+7633 6778   1.000000
+7634 6711 -80.000000
+7634 6781  80.000000
+7634 6783   1.000000
+7635 6712 -40.000000
+7635 6782  40.000000
+7635 6784   1.000000
+7636 6715 -80.000000
+7636 6785  80.000000
+7636 6787   1.000000
+7637 6716 -40.000000
+7637 6786  40.000000
+7637 6788   1.000000
+7638 6719 -80.000000
+7638 6789  80.000000
+7638 6791   1.000000
+7639 6720 -40.000000
+7639 6790  40.000000
+7639 6792   1.000000
+7640 6725 -80.000000
+7640 6795  80.000000
+7640 6797   1.000000
+7641 6726 -40.000000
+7641 6796  40.000000
+7641 6798   1.000000
+7642 6729 -80.000000
+7642 6799  80.000000
+7642 6801   1.000000
+7643 6730 -40.000000
+7643 6800  40.000000
+7643 6802   1.000000
+7644 6733 -80.000000
+7644 6803  80.000000
+7644 6805   1.000000
+7645 6734 -40.000000
+7645 6804  40.000000
+7645 6806   1.000000
+7646 6739 -80.000000
+7646 6809  80.000000
+7646 6811   1.000000
+7647 6740 -40.000000
+7647 6810  40.000000
+7647 6812   1.000000
+7648 6743 -80.000000
+7648 6813  80.000000
+7648 6815   1.000000
+7649 6744 -40.000000
+7649 6814  40.000000
+7649 6816   1.000000
+7650 6747 -80.000000
+7650 6817  80.000000
+7650 6819   1.000000
+7651 6748 -40.000000
+7651 6818  40.000000
+7651 6820   1.000000
+7652 6753 -80.000000
+7652 6823  80.000000
+7652 6825   1.000000
+7653 6754 -40.000000
+7653 6824  40.000000
+7653 6826   1.000000
+7654 6757 -80.000000
+7654 6827  80.000000
+7654 6829   1.000000
+7655 6758 -40.000000
+7655 6828  40.000000
+7655 6830   1.000000
+7656 6761 -80.000000
+7656 6831  80.000000
+7656 6833   1.000000
+7657 6762 -40.000000
+7657 6832  40.000000
+7657 6834   1.000000
+7658 6767 -80.000000
+7658 6837  80.000000
+7658 6839   1.000000
+7659 6768 -40.000000
+7659 6838  40.000000
+7659 6840   1.000000
+7660 6771 -80.000000
+7660 6841  80.000000
+7660 6843   1.000000
+7661 6772 -40.000000
+7661 6842  40.000000
+7661 6844   1.000000
+7662 6775 -80.000000
+7662 6845  80.000000
+7662 6847   1.000000
+7663 6776 -40.000000
+7663 6846  40.000000
+7663 6848   1.000000
+7664 6781 -80.000000
+7664 6851  80.000000
+7664 6853   1.000000
+7665 6782 -40.000000
+7665 6852  40.000000
+7665 6854   1.000000
+7666 6785 -80.000000
+7666 6855  80.000000
+7666 6857   1.000000
+7667 6786 -40.000000
+7667 6856  40.000000
+7667 6858   1.000000
+7668 6789 -80.000000
+7668 6859  80.000000
+7668 6861   1.000000
+7669 6790 -40.000000
+7669 6860  40.000000
+7669 6862   1.000000
+7670 6795 -80.000000
+7670 6865  80.000000
+7670 6867   1.000000
+7671 6796 -40.000000
+7671 6866  40.000000
+7671 6868   1.000000
+7672 6799 -80.000000
+7672 6869  80.000000
+7672 6871   1.000000
+7673 6800 -40.000000
+7673 6870  40.000000
+7673 6872   1.000000
+7674 6803 -80.000000
+7674 6873  80.000000
+7674 6875   1.000000
+7675 6804 -40.000000
+7675 6874  40.000000
+7675 6876   1.000000
+7676 6809 -80.000000
+7676 6879  80.000000
+7676 6881   1.000000
+7677 6810 -40.000000
+7677 6880  40.000000
+7677 6882   1.000000
+7678 6813 -80.000000
+7678 6883  80.000000
+7678 6885   1.000000
+7679 6814 -40.000000
+7679 6884  40.000000
+7679 6886   1.000000
+7680 6817 -80.000000
+7680 6887  80.000000
+7680 6889   1.000000
+7681 6818 -40.000000
+7681 6888  40.000000
+7681 6890   1.000000
+7682 6823 -80.000000
+7682 6893  80.000000
+7682 6895   1.000000
+7683 6824 -40.000000
+7683 6894  40.000000
+7683 6896   1.000000
+7684 6827 -80.000000
+7684 6897  80.000000
+7684 6899   1.000000
+7685 6828 -40.000000
+7685 6898  40.000000
+7685 6900   1.000000
+7686 6831 -80.000000
+7686 6901  80.000000
+7686 6903   1.000000
+7687 6832 -40.000000
+7687 6902  40.000000
+7687 6904   1.000000
+7688 6837 -80.000000
+7688 6907  80.000000
+7688 6909   1.000000
+7689 6838 -40.000000
+7689 6908  40.000000
+7689 6910   1.000000
+7690 6841 -80.000000
+7690 6911  80.000000
+7690 6913   1.000000
+7691 6842 -40.000000
+7691 6912  40.000000
+7691 6914   1.000000
+7692 6845 -80.000000
+7692 6915  80.000000
+7692 6917   1.000000
+7693 6846 -40.000000
+7693 6916  40.000000
+7693 6918   1.000000
+7694 6851 -80.000000
+7694 6921  80.000000
+7694 6923   1.000000
+7695 6852 -40.000000
+7695 6922  40.000000
+7695 6924   1.000000
+7696 6855 -80.000000
+7696 6925  80.000000
+7696 6927   1.000000
+7697 6856 -40.000000
+7697 6926  40.000000
+7697 6928   1.000000
+7698 6859 -80.000000
+7698 6929  80.000000
+7698 6931   1.000000
+7699 6860 -40.000000
+7699 6930  40.000000
+7699 6932   1.000000
+7700 6865 -80.000000
+7700 6935  80.000000
+7700 6937   1.000000
+7701 6866 -40.000000
+7701 6936  40.000000
+7701 6938   1.000000
+7702 6869 -80.000000
+7702 6939  80.000000
+7702 6941   1.000000
+7703 6870 -40.000000
+7703 6940  40.000000
+7703 6942   1.000000
+7704 6873 -80.000000
+7704 6943  80.000000
+7704 6945   1.000000
+7705 6874 -40.000000
+7705 6944  40.000000
+7705 6946   1.000000
+7706 6879 -80.000000
+7706 6949  80.000000
+7706 6951   1.000000
+7707 6880 -40.000000
+7707 6950  40.000000
+7707 6952   1.000000
+7708 6883 -80.000000
+7708 6953  80.000000
+7708 6955   1.000000
+7709 6884 -40.000000
+7709 6954  40.000000
+7709 6956   1.000000
+7710 6887 -80.000000
+7710 6957  80.000000
+7710 6959   1.000000
+7711 6888 -40.000000
+7711 6958  40.000000
+7711 6960   1.000000
+7712 6893 -80.000000
+7712 6963  80.000000
+7712 6965   1.000000
+7713 6894 -40.000000
+7713 6964  40.000000
+7713 6966   1.000000
+7714 6897 -80.000000
+7714 6967  80.000000
+7714 6969   1.000000
+7715 6898 -40.000000
+7715 6968  40.000000
+7715 6970   1.000000
+7716 6901 -80.000000
+7716 6971  80.000000
+7716 6973   1.000000
+7717 6902 -40.000000
+7717 6972  40.000000
+7717 6974   1.000000
+7718 6907 -80.000000
+7718 6977  80.000000
+7718 6979   1.000000
+7719 6908 -40.000000
+7719 6978  40.000000
+7719 6980   1.000000
+7720 6911 -80.000000
+7720 6981  80.000000
+7720 6983   1.000000
+7721 6912 -40.000000
+7721 6982  40.000000
+7721 6984   1.000000
+7722 6915 -80.000000
+7722 6985  80.000000
+7722 6987   1.000000
+7723 6916 -40.000000
+7723 6986  40.000000
+7723 6988   1.000000
+7724 6921 -80.000000
+7724 6991  80.000000
+7724 6993   1.000000
+7725 6922 -40.000000
+7725 6992  40.000000
+7725 6994   1.000000
+7726 6925 -80.000000
+7726 6995  80.000000
+7726 6997   1.000000
+7727 6926 -40.000000
+7727 6996  40.000000
+7727 6998   1.000000
+7728 6929 -80.000000
+7728 6999  80.000000
+7728 7001   1.000000
+7729 6930 -40.000000
+7729 7000  40.000000
+7729 7002   1.000000
+7730 6935 -60.000000
+7730 7005  60.000000
+7730 7007   1.000000
+7731 6936 -30.000000
+7731 7006  30.000000
+7731 7008   1.000000
+7732 6939 -60.000000
+7732 7009  60.000000
+7732 7011   1.000000
+7733 6940 -30.000000
+7733 7010  30.000000
+7733 7012   1.000000
+7734 6943 -60.000000
+7734 7013  60.000000
+7734 7015   1.000000
+7735 6944 -30.000000
+7735 7014  30.000000
+7735 7016   1.000000
+7736 6949 -60.000000
+7736 7019  60.000000
+7736 7021   1.000000
+7737 6950 -30.000000
+7737 7020  30.000000
+7737 7022   1.000000
+7738 6953 -60.000000
+7738 7023  60.000000
+7738 7025   1.000000
+7739 6954 -30.000000
+7739 7024  30.000000
+7739 7026   1.000000
+7740 6957 -60.000000
+7740 7027  60.000000
+7740 7029   1.000000
+7741 6958 -30.000000
+7741 7028  30.000000
+7741 7030   1.000000
+7742 6963 -60.000000
+7742 7033  60.000000
+7742 7035   1.000000
+7743 6964 -30.000000
+7743 7034  30.000000
+7743 7036   1.000000
+7744 6967 -60.000000
+7744 7037  60.000000
+7744 7039   1.000000
+7745 6968 -30.000000
+7745 7038  30.000000
+7745 7040   1.000000
+7746 6971 -60.000000
+7746 7041  60.000000
+7746 7043   1.000000
+7747 6972 -30.000000
+7747 7042  30.000000
+7747 7044   1.000000
+7748 6977 -60.000000
+7748 7047  60.000000
+7748 7049   1.000000
+7749 6978 -30.000000
+7749 7048  30.000000
+7749 7050   1.000000
+7750 6981 -60.000000
+7750 7051  60.000000
+7750 7053   1.000000
+7751 6982 -30.000000
+7751 7052  30.000000
+7751 7054   1.000000
+7752 6985 -60.000000
+7752 7055  60.000000
+7752 7057   1.000000
+7753 6986 -30.000000
+7753 7056  30.000000
+7753 7058   1.000000
+7754 6991 -60.000000
+7754 7061  60.000000
+7754 7063   1.000000
+7755 6992 -30.000000
+7755 7062  30.000000
+7755 7064   1.000000
+7756 6995 -60.000000
+7756 7065  60.000000
+7756 7067   1.000000
+7757 6996 -30.000000
+7757 7066  30.000000
+7757 7068   1.000000
+7758 6999 -60.000000
+7758 7069  60.000000
+7758 7071   1.000000
+7759 7000 -30.000000
+7759 7070  30.000000
+7759 7072   1.000000
+7760 69  -1.000000
+7760 7017   1.000000
+7761 70  -1.000000
+7761 7018   1.000000
+7762 7005 -60.000000
+7762 7075  60.000000
+7762 7077   1.000000
+7763 7006 -30.000000
+7763 7076  30.000000
+7763 7078   1.000000
+7764 7009 -60.000000
+7764 7079  60.000000
+7764 7081   1.000000
+7765 7010 -30.000000
+7765 7080  30.000000
+7765 7082   1.000000
+7766 7013 -60.000000
+7766 7083  60.000000
+7766 7085   1.000000
+7767 7014 -30.000000
+7767 7084  30.000000
+7767 7086   1.000000
+7768 7019 -60.000000
+7768 7089  60.000000
+7768 7091   1.000000
+7769 7020 -30.000000
+7769 7090  30.000000
+7769 7092   1.000000
+7770 7023 -60.000000
+7770 7093  60.000000
+7770 7095   1.000000
+7771 7024 -30.000000
+7771 7094  30.000000
+7771 7096   1.000000
+7772 7027 -60.000000
+7772 7097  60.000000
+7772 7099   1.000000
+7773 7028 -30.000000
+7773 7098  30.000000
+7773 7100   1.000000
+7774 7033 -60.000000
+7774 7103  60.000000
+7774 7105   1.000000
+7775 7034 -30.000000
+7775 7104  30.000000
+7775 7106   1.000000
+7776 7037 -60.000000
+7776 7107  60.000000
+7776 7109   1.000000
+7777 7038 -30.000000
+7777 7108  30.000000
+7777 7110   1.000000
+7778 7041 -60.000000
+7778 7111  60.000000
+7778 7113   1.000000
+7779 7042 -30.000000
+7779 7112  30.000000
+7779 7114   1.000000
+7780 7047 -60.000000
+7780 7117  60.000000
+7780 7119   1.000000
+7781 7048 -30.000000
+7781 7118  30.000000
+7781 7120   1.000000
+7782 7051 -60.000000
+7782 7121  60.000000
+7782 7123   1.000000
+7783 7052 -30.000000
+7783 7122  30.000000
+7783 7124   1.000000
+7784 7055 -60.000000
+7784 7125  60.000000
+7784 7127   1.000000
+7785 7056 -30.000000
+7785 7126  30.000000
+7785 7128   1.000000
+7786 7061 -60.000000
+7786 7131  60.000000
+7786 7133   1.000000
+7787 7062 -30.000000
+7787 7132  30.000000
+7787 7134   1.000000
+7788 7065 -60.000000
+7788 7135  60.000000
+7788 7137   1.000000
+7789 7066 -30.000000
+7789 7136  30.000000
+7789 7138   1.000000
+7790 7069 -60.000000
+7790 7139  60.000000
+7790 7141   1.000000
+7791 7070 -30.000000
+7791 7140  30.000000
+7791 7142   1.000000
+7792 139  -1.000000
+7792 7087   1.000000
+7793 140  -1.000000
+7793 7088   1.000000
+7794 7075 -60.000000
+7794 7145  60.000000
+7794 7147   1.000000
+7795 7076 -30.000000
+7795 7146  30.000000
+7795 7148   1.000000
+7796 7079 -60.000000
+7796 7149  60.000000
+7796 7151   1.000000
+7797 7080 -30.000000
+7797 7150  30.000000
+7797 7152   1.000000
+7798 7083 -60.000000
+7798 7153  60.000000
+7798 7155   1.000000
+7799 7084 -30.000000
+7799 7154  30.000000
+7799 7156   1.000000
+7800 7089 -60.000000
+7800 7159  60.000000
+7800 7161   1.000000
+7801 7090 -30.000000
+7801 7160  30.000000
+7801 7162   1.000000
+7802 7093 -60.000000
+7802 7163  60.000000
+7802 7165   1.000000
+7803 7094 -30.000000
+7803 7164  30.000000
+7803 7166   1.000000
+7804 7097 -60.000000
+7804 7167  60.000000
+7804 7169   1.000000
+7805 7098 -30.000000
+7805 7168  30.000000
+7805 7170   1.000000
+7806 7103 -60.000000
+7806 7173  60.000000
+7806 7175   1.000000
+7807 7104 -30.000000
+7807 7174  30.000000
+7807 7176   1.000000
+7808 7107 -60.000000
+7808 7177  60.000000
+7808 7179   1.000000
+7809 7108 -30.000000
+7809 7178  30.000000
+7809 7180   1.000000
+7810 7111 -60.000000
+7810 7181  60.000000
+7810 7183   1.000000
+7811 7112 -30.000000
+7811 7182  30.000000
+7811 7184   1.000000
+7812 7117 -60.000000
+7812 7187  60.000000
+7812 7189   1.000000
+7813 7118 -30.000000
+7813 7188  30.000000
+7813 7190   1.000000
+7814 7121 -60.000000
+7814 7191  60.000000
+7814 7193   1.000000
+7815 7122 -30.000000
+7815 7192  30.000000
+7815 7194   1.000000
+7816 7125 -60.000000
+7816 7195  60.000000
+7816 7197   1.000000
+7817 7126 -30.000000
+7817 7196  30.000000
+7817 7198   1.000000
+7818 7131 -60.000000
+7818 7201  60.000000
+7818 7203   1.000000
+7819 7132 -30.000000
+7819 7202  30.000000
+7819 7204   1.000000
+7820 7135 -60.000000
+7820 7205  60.000000
+7820 7207   1.000000
+7821 7136 -30.000000
+7821 7206  30.000000
+7821 7208   1.000000
+7822 7139 -60.000000
+7822 7209  60.000000
+7822 7211   1.000000
+7823 7140 -30.000000
+7823 7210  30.000000
+7823 7212   1.000000
+7824 209  -1.000000
+7824 7157   1.000000
+7825 210  -1.000000
+7825 7158   1.000000
+7826 7145 -60.000000
+7826 7215  60.000000
+7826 7217   1.000000
+7827 7146 -30.000000
+7827 7216  30.000000
+7827 7218   1.000000
+7828 7149 -60.000000
+7828 7219  60.000000
+7828 7221   1.000000
+7829 7150 -30.000000
+7829 7220  30.000000
+7829 7222   1.000000
+7830 7153 -60.000000
+7830 7223  60.000000
+7830 7225   1.000000
+7831 7154 -30.000000
+7831 7224  30.000000
+7831 7226   1.000000
+7832 7159 -60.000000
+7832 7229  60.000000
+7832 7231   1.000000
+7833 7160 -30.000000
+7833 7230  30.000000
+7833 7232   1.000000
+7834 7163 -60.000000
+7834 7233  60.000000
+7834 7235   1.000000
+7835 7164 -30.000000
+7835 7234  30.000000
+7835 7236   1.000000
+7836 7167 -60.000000
+7836 7237  60.000000
+7836 7239   1.000000
+7837 7168 -30.000000
+7837 7238  30.000000
+7837 7240   1.000000
+7838 7173 -60.000000
+7838 7243  60.000000
+7838 7245   1.000000
+7839 7174 -30.000000
+7839 7244  30.000000
+7839 7246   1.000000
+7840 7177 -60.000000
+7840 7247  60.000000
+7840 7249   1.000000
+7841 7178 -30.000000
+7841 7248  30.000000
+7841 7250   1.000000
+7842 7181 -60.000000
+7842 7251  60.000000
+7842 7253   1.000000
+7843 7182 -30.000000
+7843 7252  30.000000
+7843 7254   1.000000
+7844 7187 -60.000000
+7844 7257  60.000000
+7844 7259   1.000000
+7845 7188 -30.000000
+7845 7258  30.000000
+7845 7260   1.000000
+7846 7191 -60.000000
+7846 7261  60.000000
+7846 7263   1.000000
+7847 7192 -30.000000
+7847 7262  30.000000
+7847 7264   1.000000
+7848 7195 -60.000000
+7848 7265  60.000000
+7848 7267   1.000000
+7849 7196 -30.000000
+7849 7266  30.000000
+7849 7268   1.000000
+7850 7201 -60.000000
+7850 7271  60.000000
+7850 7273   1.000000
+7851 7202 -30.000000
+7851 7272  30.000000
+7851 7274   1.000000
+7852 7205 -60.000000
+7852 7275  60.000000
+7852 7277   1.000000
+7853 7206 -30.000000
+7853 7276  30.000000
+7853 7278   1.000000
+7854 7209 -60.000000
+7854 7279  60.000000
+7854 7281   1.000000
+7855 7210 -30.000000
+7855 7280  30.000000
+7855 7282   1.000000
+7856 279  -1.000000
+7856 7227   1.000000
+7857 280  -1.000000
+7857 7228   1.000000
+7858 7215 -60.000000
+7858 7285  60.000000
+7858 7287   1.000000
+7859 7216 -30.000000
+7859 7286  30.000000
+7859 7288   1.000000
+7860 7219 -60.000000
+7860 7289  60.000000
+7860 7291   1.000000
+7861 7220 -30.000000
+7861 7290  30.000000
+7861 7292   1.000000
+7862 7223 -60.000000
+7862 7293  60.000000
+7862 7295   1.000000
+7863 7224 -30.000000
+7863 7294  30.000000
+7863 7296   1.000000
+7864 7229 -60.000000
+7864 7299  60.000000
+7864 7301   1.000000
+7865 7230 -30.000000
+7865 7300  30.000000
+7865 7302   1.000000
+7866 7233 -60.000000
+7866 7303  60.000000
+7866 7305   1.000000
+7867 7234 -30.000000
+7867 7304  30.000000
+7867 7306   1.000000
+7868 7237 -60.000000
+7868 7307  60.000000
+7868 7309   1.000000
+7869 7238 -30.000000
+7869 7308  30.000000
+7869 7310   1.000000
+7870 7243 -60.000000
+7870 7313  60.000000
+7870 7315   1.000000
+7871 7244 -30.000000
+7871 7314  30.000000
+7871 7316   1.000000
+7872 7247 -60.000000
+7872 7317  60.000000
+7872 7319   1.000000
+7873 7248 -30.000000
+7873 7318  30.000000
+7873 7320   1.000000
+7874 7251 -60.000000
+7874 7321  60.000000
+7874 7323   1.000000
+7875 7252 -30.000000
+7875 7322  30.000000
+7875 7324   1.000000
+7876 7257 -60.000000
+7876 7327  60.000000
+7876 7329   1.000000
+7877 7258 -30.000000
+7877 7328  30.000000
+7877 7330   1.000000
+7878 7261 -60.000000
+7878 7331  60.000000
+7878 7333   1.000000
+7879 7262 -30.000000
+7879 7332  30.000000
+7879 7334   1.000000
+7880 7265 -60.000000
+7880 7335  60.000000
+7880 7337   1.000000
+7881 7266 -30.000000
+7881 7336  30.000000
+7881 7338   1.000000
+7882 7271 -60.000000
+7882 7341  60.000000
+7882 7343   1.000000
+7883 7272 -30.000000
+7883 7342  30.000000
+7883 7344   1.000000
+7884 7275 -60.000000
+7884 7345  60.000000
+7884 7347   1.000000
+7885 7276 -30.000000
+7885 7346  30.000000
+7885 7348   1.000000
+7886 7279 -60.000000
+7886 7349  60.000000
+7886 7351   1.000000
+7887 7280 -30.000000
+7887 7350  30.000000
+7887 7352   1.000000
+7888 349  -1.000000
+7888 7297   1.000000
+7889 350  -1.000000
+7889 7298   1.000000
+7890 7285 -60.000000
+7890 7355  60.000000
+7890 7357   1.000000
+7891 7286 -30.000000
+7891 7356  30.000000
+7891 7358   1.000000
+7892 7289 -60.000000
+7892 7359  60.000000
+7892 7361   1.000000
+7893 7290 -30.000000
+7893 7360  30.000000
+7893 7362   1.000000
+7894 7293 -60.000000
+7894 7363  60.000000
+7894 7365   1.000000
+7895 7294 -30.000000
+7895 7364  30.000000
+7895 7366   1.000000
+7896 7299 -60.000000
+7896 7369  60.000000
+7896 7371   1.000000
+7897 7300 -30.000000
+7897 7370  30.000000
+7897 7372   1.000000
+7898 7303 -60.000000
+7898 7373  60.000000
+7898 7375   1.000000
+7899 7304 -30.000000
+7899 7374  30.000000
+7899 7376   1.000000
+7900 7307 -60.000000
+7900 7377  60.000000
+7900 7379   1.000000
+7901 7308 -30.000000
+7901 7378  30.000000
+7901 7380   1.000000
+7902 7313 -60.000000
+7902 7383  60.000000
+7902 7385   1.000000
+7903 7314 -30.000000
+7903 7384  30.000000
+7903 7386   1.000000
+7904 7317 -60.000000
+7904 7387  60.000000
+7904 7389   1.000000
+7905 7318 -30.000000
+7905 7388  30.000000
+7905 7390   1.000000
+7906 7321 -60.000000
+7906 7391  60.000000
+7906 7393   1.000000
+7907 7322 -30.000000
+7907 7392  30.000000
+7907 7394   1.000000
+7908 7327 -60.000000
+7908 7397  60.000000
+7908 7399   1.000000
+7909 7328 -30.000000
+7909 7398  30.000000
+7909 7400   1.000000
+7910 7331 -60.000000
+7910 7401  60.000000
+7910 7403   1.000000
+7911 7332 -30.000000
+7911 7402  30.000000
+7911 7404   1.000000
+7912 7335 -60.000000
+7912 7405  60.000000
+7912 7407   1.000000
+7913 7336 -30.000000
+7913 7406  30.000000
+7913 7408   1.000000
+7914 7341 -60.000000
+7914 7411  60.000000
+7914 7413   1.000000
+7915 7342 -30.000000
+7915 7412  30.000000
+7915 7414   1.000000
+7916 7345 -60.000000
+7916 7415  60.000000
+7916 7417   1.000000
+7917 7346 -30.000000
+7917 7416  30.000000
+7917 7418   1.000000
+7918 7349 -60.000000
+7918 7419  60.000000
+7918 7421   1.000000
+7919 7350 -30.000000
+7919 7420  30.000000
+7919 7422   1.000000
+7920 419  -1.000000
+7920 7367   1.000000
+7921 420  -1.000000
+7921 7368   1.000000
+7922 7355 -60.000000
+7922 7425  60.000000
+7922 7427   1.000000
+7923 7356 -30.000000
+7923 7426  30.000000
+7923 7428   1.000000
+7924 7359 -60.000000
+7924 7429  60.000000
+7924 7431   1.000000
+7925 7360 -30.000000
+7925 7430  30.000000
+7925 7432   1.000000
+7926 7363 -60.000000
+7926 7433  60.000000
+7926 7435   1.000000
+7927 7364 -30.000000
+7927 7434  30.000000
+7927 7436   1.000000
+7928 7369 -60.000000
+7928 7439  60.000000
+7928 7441   1.000000
+7929 7370 -30.000000
+7929 7440  30.000000
+7929 7442   1.000000
+7930 7373 -60.000000
+7930 7443  60.000000
+7930 7445   1.000000
+7931 7374 -30.000000
+7931 7444  30.000000
+7931 7446   1.000000
+7932 7377 -60.000000
+7932 7447  60.000000
+7932 7449   1.000000
+7933 7378 -30.000000
+7933 7448  30.000000
+7933 7450   1.000000
+7934 7383 -60.000000
+7934 7453  60.000000
+7934 7455   1.000000
+7935 7384 -30.000000
+7935 7454  30.000000
+7935 7456   1.000000
+7936 7387 -60.000000
+7936 7457  60.000000
+7936 7459   1.000000
+7937 7388 -30.000000
+7937 7458  30.000000
+7937 7460   1.000000
+7938 7391 -60.000000
+7938 7461  60.000000
+7938 7463   1.000000
+7939 7392 -30.000000
+7939 7462  30.000000
+7939 7464   1.000000
+7940 7397 -60.000000
+7940 7467  60.000000
+7940 7469   1.000000
+7941 7398 -30.000000
+7941 7468  30.000000
+7941 7470   1.000000
+7942 7401 -60.000000
+7942 7471  60.000000
+7942 7473   1.000000
+7943 7402 -30.000000
+7943 7472  30.000000
+7943 7474   1.000000
+7944 7405 -60.000000
+7944 7475  60.000000
+7944 7477   1.000000
+7945 7406 -30.000000
+7945 7476  30.000000
+7945 7478   1.000000
+7946 7411 -60.000000
+7946 7481  60.000000
+7946 7483   1.000000
+7947 7412 -30.000000
+7947 7482  30.000000
+7947 7484   1.000000
+7948 7415 -60.000000
+7948 7485  60.000000
+7948 7487   1.000000
+7949 7416 -30.000000
+7949 7486  30.000000
+7949 7488   1.000000
+7950 7419 -60.000000
+7950 7489  60.000000
+7950 7491   1.000000
+7951 7420 -30.000000
+7951 7490  30.000000
+7951 7492   1.000000
+7952 489  -1.000000
+7952 7437   1.000000
+7953 490  -1.000000
+7953 7438   1.000000
+7954 7425 -60.000000
+7954 7495  60.000000
+7954 7497   1.000000
+7955 7426 -30.000000
+7955 7496  30.000000
+7955 7498   1.000000
+7956 7429 -60.000000
+7956 7499  60.000000
+7956 7501   1.000000
+7957 7430 -30.000000
+7957 7500  30.000000
+7957 7502   1.000000
+7958 7433 -60.000000
+7958 7503  60.000000
+7958 7505   1.000000
+7959 7434 -30.000000
+7959 7504  30.000000
+7959 7506   1.000000
+7960 7439 -60.000000
+7960 7509  60.000000
+7960 7511   1.000000
+7961 7440 -30.000000
+7961 7510  30.000000
+7961 7512   1.000000
+7962 7443 -60.000000
+7962 7513  60.000000
+7962 7515   1.000000
+7963 7444 -30.000000
+7963 7514  30.000000
+7963 7516   1.000000
+7964 7447 -60.000000
+7964 7517  60.000000
+7964 7519   1.000000
+7965 7448 -30.000000
+7965 7518  30.000000
+7965 7520   1.000000
+7966 7453 -60.000000
+7966 7523  60.000000
+7966 7525   1.000000
+7967 7454 -30.000000
+7967 7524  30.000000
+7967 7526   1.000000
+7968 7457 -60.000000
+7968 7527  60.000000
+7968 7529   1.000000
+7969 7458 -30.000000
+7969 7528  30.000000
+7969 7530   1.000000
+7970 7461 -60.000000
+7970 7531  60.000000
+7970 7533   1.000000
+7971 7462 -30.000000
+7971 7532  30.000000
+7971 7534   1.000000
+7972 7467 -60.000000
+7972 7537  60.000000
+7972 7539   1.000000
+7973 7468 -30.000000
+7973 7538  30.000000
+7973 7540   1.000000
+7974 7471 -60.000000
+7974 7541  60.000000
+7974 7543   1.000000
+7975 7472 -30.000000
+7975 7542  30.000000
+7975 7544   1.000000
+7976 7475 -60.000000
+7976 7545  60.000000
+7976 7547   1.000000
+7977 7476 -30.000000
+7977 7546  30.000000
+7977 7548   1.000000
+7978 7481 -60.000000
+7978 7551  60.000000
+7978 7553   1.000000
+7979 7482 -30.000000
+7979 7552  30.000000
+7979 7554   1.000000
+7980 7485 -60.000000
+7980 7555  60.000000
+7980 7557   1.000000
+7981 7486 -30.000000
+7981 7556  30.000000
+7981 7558   1.000000
+7982 7489 -60.000000
+7982 7559  60.000000
+7982 7561   1.000000
+7983 7490 -30.000000
+7983 7560  30.000000
+7983 7562   1.000000
+7984 559  -1.000000
+7984 7507   1.000000
+7985 560  -1.000000
+7985 7508   1.000000
+7986 7495 -60.000000
+7986 7565  60.000000
+7986 7567   1.000000
+7987 7496 -30.000000
+7987 7566  30.000000
+7987 7568   1.000000
+7988 7499 -60.000000
+7988 7569  60.000000
+7988 7571   1.000000
+7989 7500 -30.000000
+7989 7570  30.000000
+7989 7572   1.000000
+7990 7503 -60.000000
+7990 7573  60.000000
+7990 7575   1.000000
+7991 7504 -30.000000
+7991 7574  30.000000
+7991 7576   1.000000
+7992 7509 -60.000000
+7992 7579  60.000000
+7992 7581   1.000000
+7993 7510 -30.000000
+7993 7580  30.000000
+7993 7582   1.000000
+7994 7513 -60.000000
+7994 7583  60.000000
+7994 7585   1.000000
+7995 7514 -30.000000
+7995 7584  30.000000
+7995 7586   1.000000
+7996 7517 -60.000000
+7996 7587  60.000000
+7996 7589   1.000000
+7997 7518 -30.000000
+7997 7588  30.000000
+7997 7590   1.000000
+7998 7523 -60.000000
+7998 7593  60.000000
+7998 7595   1.000000
+7999 7524 -30.000000
+7999 7594  30.000000
+7999 7596   1.000000
+8000 7527 -60.000000
+8000 7597  60.000000
+8000 7599   1.000000
+8001 7528 -30.000000
+8001 7598  30.000000
+8001 7600   1.000000
+8002 7531 -60.000000
+8002 7601  60.000000
+8002 7603   1.000000
+8003 7532 -30.000000
+8003 7602  30.000000
+8003 7604   1.000000
+8004 7537 -60.000000
+8004 7607  60.000000
+8004 7609   1.000000
+8005 7538 -30.000000
+8005 7608  30.000000
+8005 7610   1.000000
+8006 7541 -60.000000
+8006 7611  60.000000
+8006 7613   1.000000
+8007 7542 -30.000000
+8007 7612  30.000000
+8007 7614   1.000000
+8008 7545 -60.000000
+8008 7615  60.000000
+8008 7617   1.000000
+8009 7546 -30.000000
+8009 7616  30.000000
+8009 7618   1.000000
+8010 7551 -60.000000
+8010 7621  60.000000
+8010 7623   1.000000
+8011 7552 -30.000000
+8011 7622  30.000000
+8011 7624   1.000000
+8012 7555 -60.000000
+8012 7625  60.000000
+8012 7627   1.000000
+8013 7556 -30.000000
+8013 7626  30.000000
+8013 7628   1.000000
+8014 7559 -60.000000
+8014 7629  60.000000
+8014 7631   1.000000
+8015 7560 -30.000000
+8015 7630  30.000000
+8015 7632   1.000000
+8016 629  -1.000000
+8016 7577   1.000000
+8017 630  -1.000000
+8017 7578   1.000000
+8018 7565 -60.000000
+8018 7635  60.000000
+8018 7637   1.000000
+8019 7566 -30.000000
+8019 7636  30.000000
+8019 7638   1.000000
+8020 7569 -60.000000
+8020 7639  60.000000
+8020 7641   1.000000
+8021 7570 -30.000000
+8021 7640  30.000000
+8021 7642   1.000000
+8022 7573 -60.000000
+8022 7643  60.000000
+8022 7645   1.000000
+8023 7574 -30.000000
+8023 7644  30.000000
+8023 7646   1.000000
+8024 7579 -60.000000
+8024 7649  60.000000
+8024 7651   1.000000
+8025 7580 -30.000000
+8025 7650  30.000000
+8025 7652   1.000000
+8026 7583 -60.000000
+8026 7653  60.000000
+8026 7655   1.000000
+8027 7584 -30.000000
+8027 7654  30.000000
+8027 7656   1.000000
+8028 7587 -60.000000
+8028 7657  60.000000
+8028 7659   1.000000
+8029 7588 -30.000000
+8029 7658  30.000000
+8029 7660   1.000000
+8030 7593 -60.000000
+8030 7663  60.000000
+8030 7665   1.000000
+8031 7594 -30.000000
+8031 7664  30.000000
+8031 7666   1.000000
+8032 7597 -60.000000
+8032 7667  60.000000
+8032 7669   1.000000
+8033 7598 -30.000000
+8033 7668  30.000000
+8033 7670   1.000000
+8034 7601 -60.000000
+8034 7671  60.000000
+8034 7673   1.000000
+8035 7602 -30.000000
+8035 7672  30.000000
+8035 7674   1.000000
+8036 7607 -60.000000
+8036 7677  60.000000
+8036 7679   1.000000
+8037 7608 -30.000000
+8037 7678  30.000000
+8037 7680   1.000000
+8038 7611 -60.000000
+8038 7681  60.000000
+8038 7683   1.000000
+8039 7612 -30.000000
+8039 7682  30.000000
+8039 7684   1.000000
+8040 7615 -60.000000
+8040 7685  60.000000
+8040 7687   1.000000
+8041 7616 -30.000000
+8041 7686  30.000000
+8041 7688   1.000000
+8042 7621 -60.000000
+8042 7691  60.000000
+8042 7693   1.000000
+8043 7622 -30.000000
+8043 7692  30.000000
+8043 7694   1.000000
+8044 7625 -60.000000
+8044 7695  60.000000
+8044 7697   1.000000
+8045 7626 -30.000000
+8045 7696  30.000000
+8045 7698   1.000000
+8046 7629 -60.000000
+8046 7699  60.000000
+8046 7701   1.000000
+8047 7630 -30.000000
+8047 7700  30.000000
+8047 7702   1.000000
+8048 699  -1.000000
+8048 7647   1.000000
+8049 700  -1.000000
+8049 7648   1.000000
+8050 7635 -60.000000
+8050 7705  60.000000
+8050 7707   1.000000
+8051 7636 -30.000000
+8051 7706  30.000000
+8051 7708   1.000000
+8052 7639 -60.000000
+8052 7709  60.000000
+8052 7711   1.000000
+8053 7640 -30.000000
+8053 7710  30.000000
+8053 7712   1.000000
+8054 7643 -60.000000
+8054 7713  60.000000
+8054 7715   1.000000
+8055 7644 -30.000000
+8055 7714  30.000000
+8055 7716   1.000000
+8056 7649 -60.000000
+8056 7719  60.000000
+8056 7721   1.000000
+8057 7650 -30.000000
+8057 7720  30.000000
+8057 7722   1.000000
+8058 7653 -60.000000
+8058 7723  60.000000
+8058 7725   1.000000
+8059 7654 -30.000000
+8059 7724  30.000000
+8059 7726   1.000000
+8060 7657 -60.000000
+8060 7727  60.000000
+8060 7729   1.000000
+8061 7658 -30.000000
+8061 7728  30.000000
+8061 7730   1.000000
+8062 7663 -60.000000
+8062 7733  60.000000
+8062 7735   1.000000
+8063 7664 -30.000000
+8063 7734  30.000000
+8063 7736   1.000000
+8064 7667 -60.000000
+8064 7737  60.000000
+8064 7739   1.000000
+8065 7668 -30.000000
+8065 7738  30.000000
+8065 7740   1.000000
+8066 7671 -60.000000
+8066 7741  60.000000
+8066 7743   1.000000
+8067 7672 -30.000000
+8067 7742  30.000000
+8067 7744   1.000000
+8068 7677 -60.000000
+8068 7747  60.000000
+8068 7749   1.000000
+8069 7678 -30.000000
+8069 7748  30.000000
+8069 7750   1.000000
+8070 7681 -60.000000
+8070 7751  60.000000
+8070 7753   1.000000
+8071 7682 -30.000000
+8071 7752  30.000000
+8071 7754   1.000000
+8072 7685 -60.000000
+8072 7755  60.000000
+8072 7757   1.000000
+8073 7686 -30.000000
+8073 7756  30.000000
+8073 7758   1.000000
+8074 7691 -60.000000
+8074 7761  60.000000
+8074 7763   1.000000
+8075 7692 -30.000000
+8075 7762  30.000000
+8075 7764   1.000000
+8076 7695 -60.000000
+8076 7765  60.000000
+8076 7767   1.000000
+8077 7696 -30.000000
+8077 7766  30.000000
+8077 7768   1.000000
+8078 7699 -60.000000
+8078 7769  60.000000
+8078 7771   1.000000
+8079 7700 -30.000000
+8079 7770  30.000000
+8079 7772   1.000000
+8080 769  -1.000000
+8080 7717   1.000000
+8081 770  -1.000000
+8081 7718   1.000000
+8082 7705 -60.000000
+8082 7775  60.000000
+8082 7777   1.000000
+8083 7706 -30.000000
+8083 7776  30.000000
+8083 7778   1.000000
+8084 7709 -60.000000
+8084 7779  60.000000
+8084 7781   1.000000
+8085 7710 -30.000000
+8085 7780  30.000000
+8085 7782   1.000000
+8086 7713 -60.000000
+8086 7783  60.000000
+8086 7785   1.000000
+8087 7714 -30.000000
+8087 7784  30.000000
+8087 7786   1.000000
+8088 7719 -60.000000
+8088 7789  60.000000
+8088 7791   1.000000
+8089 7720 -30.000000
+8089 7790  30.000000
+8089 7792   1.000000
+8090 7723 -60.000000
+8090 7793  60.000000
+8090 7795   1.000000
+8091 7724 -30.000000
+8091 7794  30.000000
+8091 7796   1.000000
+8092 7727 -60.000000
+8092 7797  60.000000
+8092 7799   1.000000
+8093 7728 -30.000000
+8093 7798  30.000000
+8093 7800   1.000000
+8094 7733 -60.000000
+8094 7803  60.000000
+8094 7805   1.000000
+8095 7734 -30.000000
+8095 7804  30.000000
+8095 7806   1.000000
+8096 7737 -60.000000
+8096 7807  60.000000
+8096 7809   1.000000
+8097 7738 -30.000000
+8097 7808  30.000000
+8097 7810   1.000000
+8098 7741 -60.000000
+8098 7811  60.000000
+8098 7813   1.000000
+8099 7742 -30.000000
+8099 7812  30.000000
+8099 7814   1.000000
+8100 7747 -60.000000
+8100 7817  60.000000
+8100 7819   1.000000
+8101 7748 -30.000000
+8101 7818  30.000000
+8101 7820   1.000000
+8102 7751 -60.000000
+8102 7821  60.000000
+8102 7823   1.000000
+8103 7752 -30.000000
+8103 7822  30.000000
+8103 7824   1.000000
+8104 7755 -60.000000
+8104 7825  60.000000
+8104 7827   1.000000
+8105 7756 -30.000000
+8105 7826  30.000000
+8105 7828   1.000000
+8106 7761 -60.000000
+8106 7831  60.000000
+8106 7833   1.000000
+8107 7762 -30.000000
+8107 7832  30.000000
+8107 7834   1.000000
+8108 7765 -60.000000
+8108 7835  60.000000
+8108 7837   1.000000
+8109 7766 -30.000000
+8109 7836  30.000000
+8109 7838   1.000000
+8110 7769 -60.000000
+8110 7839  60.000000
+8110 7841   1.000000
+8111 7770 -30.000000
+8111 7840  30.000000
+8111 7842   1.000000
+8112 839  -1.000000
+8112 7787   1.000000
+8113 840  -1.000000
+8113 7788   1.000000
+8114 7775 -60.000000
+8114 7845  60.000000
+8114 7847   1.000000
+8115 7776 -30.000000
+8115 7846  30.000000
+8115 7848   1.000000
+8116 7779 -60.000000
+8116 7849  60.000000
+8116 7851   1.000000
+8117 7780 -30.000000
+8117 7850  30.000000
+8117 7852   1.000000
+8118 7783 -60.000000
+8118 7853  60.000000
+8118 7855   1.000000
+8119 7784 -30.000000
+8119 7854  30.000000
+8119 7856   1.000000
+8120 7789 -60.000000
+8120 7859  60.000000
+8120 7861   1.000000
+8121 7790 -30.000000
+8121 7860  30.000000
+8121 7862   1.000000
+8122 7793 -60.000000
+8122 7863  60.000000
+8122 7865   1.000000
+8123 7794 -30.000000
+8123 7864  30.000000
+8123 7866   1.000000
+8124 7797 -60.000000
+8124 7867  60.000000
+8124 7869   1.000000
+8125 7798 -30.000000
+8125 7868  30.000000
+8125 7870   1.000000
+8126 7803 -60.000000
+8126 7873  60.000000
+8126 7875   1.000000
+8127 7804 -30.000000
+8127 7874  30.000000
+8127 7876   1.000000
+8128 7807 -60.000000
+8128 7877  60.000000
+8128 7879   1.000000
+8129 7808 -30.000000
+8129 7878  30.000000
+8129 7880   1.000000
+8130 7811 -60.000000
+8130 7881  60.000000
+8130 7883   1.000000
+8131 7812 -30.000000
+8131 7882  30.000000
+8131 7884   1.000000
+8132 7817 -60.000000
+8132 7887  60.000000
+8132 7889   1.000000
+8133 7818 -30.000000
+8133 7888  30.000000
+8133 7890   1.000000
+8134 7821 -60.000000
+8134 7891  60.000000
+8134 7893   1.000000
+8135 7822 -30.000000
+8135 7892  30.000000
+8135 7894   1.000000
+8136 7825 -60.000000
+8136 7895  60.000000
+8136 7897   1.000000
+8137 7826 -30.000000
+8137 7896  30.000000
+8137 7898   1.000000
+8138 7831 -60.000000
+8138 7901  60.000000
+8138 7903   1.000000
+8139 7832 -30.000000
+8139 7902  30.000000
+8139 7904   1.000000
+8140 7835 -60.000000
+8140 7905  60.000000
+8140 7907   1.000000
+8141 7836 -30.000000
+8141 7906  30.000000
+8141 7908   1.000000
+8142 7839 -60.000000
+8142 7909  60.000000
+8142 7911   1.000000
+8143 7840 -30.000000
+8143 7910  30.000000
+8143 7912   1.000000
+8144 909  -1.000000
+8144 7857   1.000000
+8145 910  -1.000000
+8145 7858   1.000000
+8146 7845 -60.000000
+8146 7915  60.000000
+8146 7917   1.000000
+8147 7846 -30.000000
+8147 7916  30.000000
+8147 7918   1.000000
+8148 7849 -60.000000
+8148 7919  60.000000
+8148 7921   1.000000
+8149 7850 -30.000000
+8149 7920  30.000000
+8149 7922   1.000000
+8150 7853 -60.000000
+8150 7923  60.000000
+8150 7925   1.000000
+8151 7854 -30.000000
+8151 7924  30.000000
+8151 7926   1.000000
+8152 7859 -60.000000
+8152 7929  60.000000
+8152 7931   1.000000
+8153 7860 -30.000000
+8153 7930  30.000000
+8153 7932   1.000000
+8154 7863 -60.000000
+8154 7933  60.000000
+8154 7935   1.000000
+8155 7864 -30.000000
+8155 7934  30.000000
+8155 7936   1.000000
+8156 7867 -60.000000
+8156 7937  60.000000
+8156 7939   1.000000
+8157 7868 -30.000000
+8157 7938  30.000000
+8157 7940   1.000000
+8158 7873 -60.000000
+8158 7943  60.000000
+8158 7945   1.000000
+8159 7874 -30.000000
+8159 7944  30.000000
+8159 7946   1.000000
+8160 7877 -60.000000
+8160 7947  60.000000
+8160 7949   1.000000
+8161 7878 -30.000000
+8161 7948  30.000000
+8161 7950   1.000000
+8162 7881 -60.000000
+8162 7951  60.000000
+8162 7953   1.000000
+8163 7882 -30.000000
+8163 7952  30.000000
+8163 7954   1.000000
+8164 7887 -60.000000
+8164 7957  60.000000
+8164 7959   1.000000
+8165 7888 -30.000000
+8165 7958  30.000000
+8165 7960   1.000000
+8166 7891 -60.000000
+8166 7961  60.000000
+8166 7963   1.000000
+8167 7892 -30.000000
+8167 7962  30.000000
+8167 7964   1.000000
+8168 7895 -60.000000
+8168 7965  60.000000
+8168 7967   1.000000
+8169 7896 -30.000000
+8169 7966  30.000000
+8169 7968   1.000000
+8170 7901 -60.000000
+8170 7971  60.000000
+8170 7973   1.000000
+8171 7902 -30.000000
+8171 7972  30.000000
+8171 7974   1.000000
+8172 7905 -60.000000
+8172 7975  60.000000
+8172 7977   1.000000
+8173 7906 -30.000000
+8173 7976  30.000000
+8173 7978   1.000000
+8174 7909 -60.000000
+8174 7979  60.000000
+8174 7981   1.000000
+8175 7910 -30.000000
+8175 7980  30.000000
+8175 7982   1.000000
+8176 979  -1.000000
+8176 7927   1.000000
+8177 980  -1.000000
+8177 7928   1.000000
+8178 7915 -60.000000
+8178 7985  60.000000
+8178 7987   1.000000
+8179 7916 -30.000000
+8179 7986  30.000000
+8179 7988   1.000000
+8180 7919 -60.000000
+8180 7989  60.000000
+8180 7991   1.000000
+8181 7920 -30.000000
+8181 7990  30.000000
+8181 7992   1.000000
+8182 7923 -60.000000
+8182 7993  60.000000
+8182 7995   1.000000
+8183 7924 -30.000000
+8183 7994  30.000000
+8183 7996   1.000000
+8184 7929 -60.000000
+8184 7999  60.000000
+8184 8001   1.000000
+8185 7930 -30.000000
+8185 8000  30.000000
+8185 8002   1.000000
+8186 7933 -60.000000
+8186 8003  60.000000
+8186 8005   1.000000
+8187 7934 -30.000000
+8187 8004  30.000000
+8187 8006   1.000000
+8188 7937 -60.000000
+8188 8007  60.000000
+8188 8009   1.000000
+8189 7938 -30.000000
+8189 8008  30.000000
+8189 8010   1.000000
+8190 7943 -60.000000
+8190 8013  60.000000
+8190 8015   1.000000
+8191 7944 -30.000000
+8191 8014  30.000000
+8191 8016   1.000000
+8192 7947 -60.000000
+8192 8017  60.000000
+8192 8019   1.000000
+8193 7948 -30.000000
+8193 8018  30.000000
+8193 8020   1.000000
+8194 7951 -60.000000
+8194 8021  60.000000
+8194 8023   1.000000
+8195 7952 -30.000000
+8195 8022  30.000000
+8195 8024   1.000000
+8196 7957 -60.000000
+8196 8027  60.000000
+8196 8029   1.000000
+8197 7958 -30.000000
+8197 8028  30.000000
+8197 8030   1.000000
+8198 7961 -60.000000
+8198 8031  60.000000
+8198 8033   1.000000
+8199 7962 -30.000000
+8199 8032  30.000000
+8199 8034   1.000000
+8200 7965 -60.000000
+8200 8035  60.000000
+8200 8037   1.000000
+8201 7966 -30.000000
+8201 8036  30.000000
+8201 8038   1.000000
+8202 7971 -60.000000
+8202 8041  60.000000
+8202 8043   1.000000
+8203 7972 -30.000000
+8203 8042  30.000000
+8203 8044   1.000000
+8204 7975 -60.000000
+8204 8045  60.000000
+8204 8047   1.000000
+8205 7976 -30.000000
+8205 8046  30.000000
+8205 8048   1.000000
+8206 7979 -60.000000
+8206 8049  60.000000
+8206 8051   1.000000
+8207 7980 -30.000000
+8207 8050  30.000000
+8207 8052   1.000000
+8208 1049  -1.000000
+8208 7997   1.000000
+8209 1050  -1.000000
+8209 7998   1.000000
+8210 7985 -60.000000
+8210 8055  60.000000
+8210 8057   1.000000
+8211 7986 -30.000000
+8211 8056  30.000000
+8211 8058   1.000000
+8212 7989 -60.000000
+8212 8059  60.000000
+8212 8061   1.000000
+8213 7990 -30.000000
+8213 8060  30.000000
+8213 8062   1.000000
+8214 7993 -60.000000
+8214 8063  60.000000
+8214 8065   1.000000
+8215 7994 -30.000000
+8215 8064  30.000000
+8215 8066   1.000000
+8216 7999 -60.000000
+8216 8069  60.000000
+8216 8071   1.000000
+8217 8000 -30.000000
+8217 8070  30.000000
+8217 8072   1.000000
+8218 8003 -60.000000
+8218 8073  60.000000
+8218 8075   1.000000
+8219 8004 -30.000000
+8219 8074  30.000000
+8219 8076   1.000000
+8220 8007 -60.000000
+8220 8077  60.000000
+8220 8079   1.000000
+8221 8008 -30.000000
+8221 8078  30.000000
+8221 8080   1.000000
+8222 8013 -60.000000
+8222 8083  60.000000
+8222 8085   1.000000
+8223 8014 -30.000000
+8223 8084  30.000000
+8223 8086   1.000000
+8224 8017 -60.000000
+8224 8087  60.000000
+8224 8089   1.000000
+8225 8018 -30.000000
+8225 8088  30.000000
+8225 8090   1.000000
+8226 8021 -60.000000
+8226 8091  60.000000
+8226 8093   1.000000
+8227 8022 -30.000000
+8227 8092  30.000000
+8227 8094   1.000000
+8228 8027 -60.000000
+8228 8097  60.000000
+8228 8099   1.000000
+8229 8028 -30.000000
+8229 8098  30.000000
+8229 8100   1.000000
+8230 8031 -60.000000
+8230 8101  60.000000
+8230 8103   1.000000
+8231 8032 -30.000000
+8231 8102  30.000000
+8231 8104   1.000000
+8232 8035 -60.000000
+8232 8105  60.000000
+8232 8107   1.000000
+8233 8036 -30.000000
+8233 8106  30.000000
+8233 8108   1.000000
+8234 8041 -60.000000
+8234 8111  60.000000
+8234 8113   1.000000
+8235 8042 -30.000000
+8235 8112  30.000000
+8235 8114   1.000000
+8236 8045 -60.000000
+8236 8115  60.000000
+8236 8117   1.000000
+8237 8046 -30.000000
+8237 8116  30.000000
+8237 8118   1.000000
+8238 8049 -60.000000
+8238 8119  60.000000
+8238 8121   1.000000
+8239 8050 -30.000000
+8239 8120  30.000000
+8239 8122   1.000000
+8240 1119  -1.000000
+8240 8067   1.000000
+8241 1120  -1.000000
+8241 8068   1.000000
+8242 8055 -60.000000
+8242 8125  60.000000
+8242 8127   1.000000
+8243 8056 -30.000000
+8243 8126  30.000000
+8243 8128   1.000000
+8244 8059 -60.000000
+8244 8129  60.000000
+8244 8131   1.000000
+8245 8060 -30.000000
+8245 8130  30.000000
+8245 8132   1.000000
+8246 8063 -60.000000
+8246 8133  60.000000
+8246 8135   1.000000
+8247 8064 -30.000000
+8247 8134  30.000000
+8247 8136   1.000000
+8248 8069 -60.000000
+8248 8139  60.000000
+8248 8141   1.000000
+8249 8070 -30.000000
+8249 8140  30.000000
+8249 8142   1.000000
+8250 8073 -60.000000
+8250 8143  60.000000
+8250 8145   1.000000
+8251 8074 -30.000000
+8251 8144  30.000000
+8251 8146   1.000000
+8252 8077 -60.000000
+8252 8147  60.000000
+8252 8149   1.000000
+8253 8078 -30.000000
+8253 8148  30.000000
+8253 8150   1.000000
+8254 8083 -60.000000
+8254 8153  60.000000
+8254 8155   1.000000
+8255 8084 -30.000000
+8255 8154  30.000000
+8255 8156   1.000000
+8256 8087 -60.000000
+8256 8157  60.000000
+8256 8159   1.000000
+8257 8088 -30.000000
+8257 8158  30.000000
+8257 8160   1.000000
+8258 8091 -60.000000
+8258 8161  60.000000
+8258 8163   1.000000
+8259 8092 -30.000000
+8259 8162  30.000000
+8259 8164   1.000000
+8260 8097 -60.000000
+8260 8167  60.000000
+8260 8169   1.000000
+8261 8098 -30.000000
+8261 8168  30.000000
+8261 8170   1.000000
+8262 8101 -60.000000
+8262 8171  60.000000
+8262 8173   1.000000
+8263 8102 -30.000000
+8263 8172  30.000000
+8263 8174   1.000000
+8264 8105 -60.000000
+8264 8175  60.000000
+8264 8177   1.000000
+8265 8106 -30.000000
+8265 8176  30.000000
+8265 8178   1.000000
+8266 8111 -60.000000
+8266 8181  60.000000
+8266 8183   1.000000
+8267 8112 -30.000000
+8267 8182  30.000000
+8267 8184   1.000000
+8268 8115 -60.000000
+8268 8185  60.000000
+8268 8187   1.000000
+8269 8116 -30.000000
+8269 8186  30.000000
+8269 8188   1.000000
+8270 8119 -60.000000
+8270 8189  60.000000
+8270 8191   1.000000
+8271 8120 -30.000000
+8271 8190  30.000000
+8271 8192   1.000000
+8272 1189  -1.000000
+8272 8137   1.000000
+8273 1190  -1.000000
+8273 8138   1.000000
+8274 8125 -60.000000
+8274 8195  60.000000
+8274 8197   1.000000
+8275 8126 -30.000000
+8275 8196  30.000000
+8275 8198   1.000000
+8276 8129 -60.000000
+8276 8199  60.000000
+8276 8201   1.000000
+8277 8130 -30.000000
+8277 8200  30.000000
+8277 8202   1.000000
+8278 8133 -60.000000
+8278 8203  60.000000
+8278 8205   1.000000
+8279 8134 -30.000000
+8279 8204  30.000000
+8279 8206   1.000000
+8280 8139 -60.000000
+8280 8209  60.000000
+8280 8211   1.000000
+8281 8140 -30.000000
+8281 8210  30.000000
+8281 8212   1.000000
+8282 8143 -60.000000
+8282 8213  60.000000
+8282 8215   1.000000
+8283 8144 -30.000000
+8283 8214  30.000000
+8283 8216   1.000000
+8284 8147 -60.000000
+8284 8217  60.000000
+8284 8219   1.000000
+8285 8148 -30.000000
+8285 8218  30.000000
+8285 8220   1.000000
+8286 8153 -60.000000
+8286 8223  60.000000
+8286 8225   1.000000
+8287 8154 -30.000000
+8287 8224  30.000000
+8287 8226   1.000000
+8288 8157 -60.000000
+8288 8227  60.000000
+8288 8229   1.000000
+8289 8158 -30.000000
+8289 8228  30.000000
+8289 8230   1.000000
+8290 8161 -60.000000
+8290 8231  60.000000
+8290 8233   1.000000
+8291 8162 -30.000000
+8291 8232  30.000000
+8291 8234   1.000000
+8292 8167 -60.000000
+8292 8237  60.000000
+8292 8239   1.000000
+8293 8168 -30.000000
+8293 8238  30.000000
+8293 8240   1.000000
+8294 8171 -60.000000
+8294 8241  60.000000
+8294 8243   1.000000
+8295 8172 -30.000000
+8295 8242  30.000000
+8295 8244   1.000000
+8296 8175 -60.000000
+8296 8245  60.000000
+8296 8247   1.000000
+8297 8176 -30.000000
+8297 8246  30.000000
+8297 8248   1.000000
+8298 8181 -60.000000
+8298 8251  60.000000
+8298 8253   1.000000
+8299 8182 -30.000000
+8299 8252  30.000000
+8299 8254   1.000000
+8300 8185 -60.000000
+8300 8255  60.000000
+8300 8257   1.000000
+8301 8186 -30.000000
+8301 8256  30.000000
+8301 8258   1.000000
+8302 8189 -60.000000
+8302 8259  60.000000
+8302 8261   1.000000
+8303 8190 -30.000000
+8303 8260  30.000000
+8303 8262   1.000000
+8304 1259  -1.000000
+8304 8207   1.000000
+8305 1260  -1.000000
+8305 8208   1.000000
+8306 8195 -60.000000
+8306 8265  60.000000
+8306 8267   1.000000
+8307 8196 -30.000000
+8307 8266  30.000000
+8307 8268   1.000000
+8308 8199 -60.000000
+8308 8269  60.000000
+8308 8271   1.000000
+8309 8200 -30.000000
+8309 8270  30.000000
+8309 8272   1.000000
+8310 8203 -60.000000
+8310 8273  60.000000
+8310 8275   1.000000
+8311 8204 -30.000000
+8311 8274  30.000000
+8311 8276   1.000000
+8312 8209 -60.000000
+8312 8279  60.000000
+8312 8281   1.000000
+8313 8210 -30.000000
+8313 8280  30.000000
+8313 8282   1.000000
+8314 8213 -60.000000
+8314 8283  60.000000
+8314 8285   1.000000
+8315 8214 -30.000000
+8315 8284  30.000000
+8315 8286   1.000000
+8316 8217 -60.000000
+8316 8287  60.000000
+8316 8289   1.000000
+8317 8218 -30.000000
+8317 8288  30.000000
+8317 8290   1.000000
+8318 8223 -60.000000
+8318 8293  60.000000
+8318 8295   1.000000
+8319 8224 -30.000000
+8319 8294  30.000000
+8319 8296   1.000000
+8320 8227 -60.000000
+8320 8297  60.000000
+8320 8299   1.000000
+8321 8228 -30.000000
+8321 8298  30.000000
+8321 8300   1.000000
+8322 8231 -60.000000
+8322 8301  60.000000
+8322 8303   1.000000
+8323 8232 -30.000000
+8323 8302  30.000000
+8323 8304   1.000000
+8324 8237 -60.000000
+8324 8307  60.000000
+8324 8309   1.000000
+8325 8238 -30.000000
+8325 8308  30.000000
+8325 8310   1.000000
+8326 8241 -60.000000
+8326 8311  60.000000
+8326 8313   1.000000
+8327 8242 -30.000000
+8327 8312  30.000000
+8327 8314   1.000000
+8328 8245 -60.000000
+8328 8315  60.000000
+8328 8317   1.000000
+8329 8246 -30.000000
+8329 8316  30.000000
+8329 8318   1.000000
+8330 8251 -60.000000
+8330 8321  60.000000
+8330 8323   1.000000
+8331 8252 -30.000000
+8331 8322  30.000000
+8331 8324   1.000000
+8332 8255 -60.000000
+8332 8325  60.000000
+8332 8327   1.000000
+8333 8256 -30.000000
+8333 8326  30.000000
+8333 8328   1.000000
+8334 8259 -60.000000
+8334 8329  60.000000
+8334 8331   1.000000
+8335 8260 -30.000000
+8335 8330  30.000000
+8335 8332   1.000000
+8336 1329  -1.000000
+8336 8277   1.000000
+8337 1330  -1.000000
+8337 8278   1.000000
+8338 8265 -60.000000
+8338 8335  60.000000
+8338 8337   1.000000
+8339 8266 -30.000000
+8339 8336  30.000000
+8339 8338   1.000000
+8340 8269 -60.000000
+8340 8339  60.000000
+8340 8341   1.000000
+8341 8270 -30.000000
+8341 8340  30.000000
+8341 8342   1.000000
+8342 8273 -60.000000
+8342 8343  60.000000
+8342 8345   1.000000
+8343 8274 -30.000000
+8343 8344  30.000000
+8343 8346   1.000000
+8344 8279 -60.000000
+8344 8349  60.000000
+8344 8351   1.000000
+8345 8280 -30.000000
+8345 8350  30.000000
+8345 8352   1.000000
+8346 8283 -60.000000
+8346 8353  60.000000
+8346 8355   1.000000
+8347 8284 -30.000000
+8347 8354  30.000000
+8347 8356   1.000000
+8348 8287 -60.000000
+8348 8357  60.000000
+8348 8359   1.000000
+8349 8288 -30.000000
+8349 8358  30.000000
+8349 8360   1.000000
+8350 8293 -60.000000
+8350 8363  60.000000
+8350 8365   1.000000
+8351 8294 -30.000000
+8351 8364  30.000000
+8351 8366   1.000000
+8352 8297 -60.000000
+8352 8367  60.000000
+8352 8369   1.000000
+8353 8298 -30.000000
+8353 8368  30.000000
+8353 8370   1.000000
+8354 8301 -60.000000
+8354 8371  60.000000
+8354 8373   1.000000
+8355 8302 -30.000000
+8355 8372  30.000000
+8355 8374   1.000000
+8356 8307 -60.000000
+8356 8377  60.000000
+8356 8379   1.000000
+8357 8308 -30.000000
+8357 8378  30.000000
+8357 8380   1.000000
+8358 8311 -60.000000
+8358 8381  60.000000
+8358 8383   1.000000
+8359 8312 -30.000000
+8359 8382  30.000000
+8359 8384   1.000000
+8360 8315 -60.000000
+8360 8385  60.000000
+8360 8387   1.000000
+8361 8316 -30.000000
+8361 8386  30.000000
+8361 8388   1.000000
+8362 8321 -60.000000
+8362 8391  60.000000
+8362 8393   1.000000
+8363 8322 -30.000000
+8363 8392  30.000000
+8363 8394   1.000000
+8364 8325 -60.000000
+8364 8395  60.000000
+8364 8397   1.000000
+8365 8326 -30.000000
+8365 8396  30.000000
+8365 8398   1.000000
+8366 8329 -60.000000
+8366 8399  60.000000
+8366 8401   1.000000
+8367 8330 -30.000000
+8367 8400  30.000000
+8367 8402   1.000000
+8368 1399  -1.000000
+8368 8347   1.000000
+8369 1400  -1.000000
+8369 8348   1.000000
+8370 17   1.000000
+8370 1469  -1.000000
+8371 18   1.000000
+8371 1470  -1.000000
+8372 87   1.000000
+8372 1539  -1.000000
+8373 88   1.000000
+8373 1540  -1.000000
+8374 157   1.000000
+8374 1609  -1.000000
+8375 158   1.000000
+8375 1610  -1.000000
+8376 227   1.000000
+8376 1679  -1.000000
+8377 228   1.000000
+8377 1680  -1.000000
+8378 297   1.000000
+8378 1749  -1.000000
+8379 298   1.000000
+8379 1750  -1.000000
+8380 367   1.000000
+8380 1819  -1.000000
+8381 368   1.000000
+8381 1820  -1.000000
+8382 437   1.000000
+8382 1889  -1.000000
+8383 438   1.000000
+8383 1890  -1.000000
+8384 507   1.000000
+8384 1959  -1.000000
+8385 508   1.000000
+8385 1960  -1.000000
+8386 577   1.000000
+8386 2029  -1.000000
+8387 578   1.000000
+8387 2030  -1.000000
+8388 647   1.000000
+8388 2099  -1.000000
+8389 648   1.000000
+8389 2100  -1.000000
+8390 717   1.000000
+8390 2169  -1.000000
+8391 718   1.000000
+8391 2170  -1.000000
+8392 787   1.000000
+8392 2239  -1.000000
+8393 788   1.000000
+8393 2240  -1.000000
+8394 857   1.000000
+8394 2309  -1.000000
+8395 858   1.000000
+8395 2310  -1.000000
+8396 927   1.000000
+8396 2379  -1.000000
+8397 928   1.000000
+8397 2380  -1.000000
+8398 997   1.000000
+8398 2449  -1.000000
+8399 998   1.000000
+8399 2450  -1.000000
+8400 1067   1.000000
+8400 2519  -1.000000
+8401 1068   1.000000
+8401 2520  -1.000000
+8402 1137   1.000000
+8402 2589  -1.000000
+8403 1138   1.000000
+8403 2590  -1.000000
+8404 1207   1.000000
+8404 2659  -1.000000
+8405 1208   1.000000
+8405 2660  -1.000000
+8406 1277   1.000000
+8406 2729  -1.000000
+8407 1278   1.000000
+8407 2730  -1.000000
+8408 1347   1.000000
+8408 2799  -1.000000
+8409 1348   1.000000
+8409 2800  -1.000000
+8410 1417   1.000000
+8410 2869  -1.000000
+8411 1418   1.000000
+8411 2870  -1.000000
+8412 1487   1.000000
+8412 2939  -1.000000
+8413 1488   1.000000
+8413 2940  -1.000000
+8414 1557   1.000000
+8414 3009  -1.000000
+8415 1558   1.000000
+8415 3010  -1.000000
+8416 1627   1.000000
+8416 3079  -1.000000
+8417 1628   1.000000
+8417 3080  -1.000000
+8418 1697   1.000000
+8418 3149  -1.000000
+8419 1698   1.000000
+8419 3150  -1.000000
+8420 1767   1.000000
+8420 3219  -1.000000
+8421 1768   1.000000
+8421 3220  -1.000000
+8422 1837   1.000000
+8422 3289  -1.000000
+8423 1838   1.000000
+8423 3290  -1.000000
+8424 1907   1.000000
+8424 3359  -1.000000
+8425 1908   1.000000
+8425 3360  -1.000000
+8426 1977   1.000000
+8426 3429  -1.000000
+8427 1978   1.000000
+8427 3430  -1.000000
+8428 2047   1.000000
+8428 3499  -1.000000
+8429 2048   1.000000
+8429 3500  -1.000000
+8430 2117   1.000000
+8430 3569  -1.000000
+8431 2118   1.000000
+8431 3570  -1.000000
+8432 2187   1.000000
+8432 3639  -1.000000
+8433 2188   1.000000
+8433 3640  -1.000000
+8434 2257   1.000000
+8434 3709  -1.000000
+8435 2258   1.000000
+8435 3710  -1.000000
+8436 2327   1.000000
+8436 3779  -1.000000
+8437 2328   1.000000
+8437 3780  -1.000000
+8438 2397   1.000000
+8438 3849  -1.000000
+8439 2398   1.000000
+8439 3850  -1.000000
+8440 2467   1.000000
+8440 3919  -1.000000
+8441 2468   1.000000
+8441 3920  -1.000000
+8442 2537   1.000000
+8442 3989  -1.000000
+8443 2538   1.000000
+8443 3990  -1.000000
+8444 2607   1.000000
+8444 4059  -1.000000
+8445 2608   1.000000
+8445 4060  -1.000000
+8446 2677   1.000000
+8446 4129  -1.000000
+8447 2678   1.000000
+8447 4130  -1.000000
+8448 2747   1.000000
+8448 4199  -1.000000
+8449 2748   1.000000
+8449 4200  -1.000000
+8450 2817   1.000000
+8450 4269  -1.000000
+8451 2818   1.000000
+8451 4270  -1.000000
+8452 2887   1.000000
+8452 4339  -1.000000
+8453 2888   1.000000
+8453 4340  -1.000000
+8454 2957   1.000000
+8454 4409  -1.000000
+8455 2958   1.000000
+8455 4410  -1.000000
+8456 3027   1.000000
+8456 4479  -1.000000
+8457 3028   1.000000
+8457 4480  -1.000000
+8458 3097   1.000000
+8458 4549  -1.000000
+8459 3098   1.000000
+8459 4550  -1.000000
+8460 3167   1.000000
+8460 4619  -1.000000
+8461 3168   1.000000
+8461 4620  -1.000000
+8462 3237   1.000000
+8462 4689  -1.000000
+8463 3238   1.000000
+8463 4690  -1.000000
+8464 3307   1.000000
+8464 4759  -1.000000
+8465 3308   1.000000
+8465 4760  -1.000000
+8466 3377   1.000000
+8466 4829  -1.000000
+8467 3378   1.000000
+8467 4830  -1.000000
+8468 3447   1.000000
+8468 4899  -1.000000
+8469 3448   1.000000
+8469 4900  -1.000000
+8470 3517   1.000000
+8470 4969  -1.000000
+8471 3518   1.000000
+8471 4970  -1.000000
+8472 3587   1.000000
+8472 5039  -1.000000
+8473 3588   1.000000
+8473 5040  -1.000000
+8474 3657   1.000000
+8474 5109  -1.000000
+8475 3658   1.000000
+8475 5110  -1.000000
+8476 3727   1.000000
+8476 5179  -1.000000
+8477 3728   1.000000
+8477 5180  -1.000000
+8478 3797   1.000000
+8478 5249  -1.000000
+8479 3798   1.000000
+8479 5250  -1.000000
+8480 3867   1.000000
+8480 5319  -1.000000
+8481 3868   1.000000
+8481 5320  -1.000000
+8482 3937   1.000000
+8482 5389  -1.000000
+8483 3938   1.000000
+8483 5390  -1.000000
+8484 4007   1.000000
+8484 5459  -1.000000
+8485 4008   1.000000
+8485 5460  -1.000000
+8486 4077   1.000000
+8486 5529  -1.000000
+8487 4078   1.000000
+8487 5530  -1.000000
+8488 4147   1.000000
+8488 5599  -1.000000
+8489 4148   1.000000
+8489 5600  -1.000000
+8490 4217   1.000000
+8490 5669  -1.000000
+8491 4218   1.000000
+8491 5670  -1.000000
+8492 4287   1.000000
+8492 5739  -1.000000
+8493 4288   1.000000
+8493 5740  -1.000000
+8494 4357   1.000000
+8494 5809  -1.000000
+8495 4358   1.000000
+8495 5810  -1.000000
+8496 4427   1.000000
+8496 5879  -1.000000
+8497 4428   1.000000
+8497 5880  -1.000000
+8498 4497   1.000000
+8498 5949  -1.000000
+8499 4498   1.000000
+8499 5950  -1.000000
+8500 4567   1.000000
+8500 6019  -1.000000
+8501 4568   1.000000
+8501 6020  -1.000000
+8502 4637   1.000000
+8502 6089  -1.000000
+8503 4638   1.000000
+8503 6090  -1.000000
+8504 4707   1.000000
+8504 6159  -1.000000
+8505 4708   1.000000
+8505 6160  -1.000000
+8506 4777   1.000000
+8506 6229  -1.000000
+8507 4778   1.000000
+8507 6230  -1.000000
+8508 4847   1.000000
+8508 6299  -1.000000
+8509 4848   1.000000
+8509 6300  -1.000000
+8510 4917   1.000000
+8510 6369  -1.000000
+8511 4918   1.000000
+8511 6370  -1.000000
+8512 4987   1.000000
+8512 6439  -1.000000
+8513 4988   1.000000
+8513 6440  -1.000000
+8514 5057   1.000000
+8514 6509  -1.000000
+8515 5058   1.000000
+8515 6510  -1.000000
+8516 5127   1.000000
+8516 6579  -1.000000
+8517 5128   1.000000
+8517 6580  -1.000000
+8518 5197   1.000000
+8518 6649  -1.000000
+8519 5198   1.000000
+8519 6650  -1.000000
+8520 5267   1.000000
+8520 6719  -1.000000
+8521 5268   1.000000
+8521 6720  -1.000000
+8522 5337   1.000000
+8522 6789  -1.000000
+8523 5338   1.000000
+8523 6790  -1.000000
+8524 5407   1.000000
+8524 6859  -1.000000
+8525 5408   1.000000
+8525 6860  -1.000000
+8526 5477   1.000000
+8526 6929  -1.000000
+8527 5478   1.000000
+8527 6930  -1.000000
+8528 5547   1.000000
+8528 6999  -1.000000
+8529 5548   1.000000
+8529 7000  -1.000000
+8530 5617   1.000000
+8530 7069  -1.000000
+8531 5618   1.000000
+8531 7070  -1.000000
+8532 5687   1.000000
+8532 7139  -1.000000
+8533 5688   1.000000
+8533 7140  -1.000000
+8534 5757   1.000000
+8534 7209  -1.000000
+8535 5758   1.000000
+8535 7210  -1.000000
+8536 5827   1.000000
+8536 7279  -1.000000
+8537 5828   1.000000
+8537 7280  -1.000000
+8538 5897   1.000000
+8538 7349  -1.000000
+8539 5898   1.000000
+8539 7350  -1.000000
+8540 5967   1.000000
+8540 7419  -1.000000
+8541 5968   1.000000
+8541 7420  -1.000000
+8542 6037   1.000000
+8542 7489  -1.000000
+8543 6038   1.000000
+8543 7490  -1.000000
+8544 6107   1.000000
+8544 7559  -1.000000
+8545 6108   1.000000
+8545 7560  -1.000000
+8546 6177   1.000000
+8546 7629  -1.000000
+8547 6178   1.000000
+8547 7630  -1.000000
+8548 6247   1.000000
+8548 7699  -1.000000
+8549 6248   1.000000
+8549 7700  -1.000000
+8550 6317   1.000000
+8550 7769  -1.000000
+8551 6318   1.000000
+8551 7770  -1.000000
+8552 6387   1.000000
+8552 7839  -1.000000
+8553 6388   1.000000
+8553 7840  -1.000000
+8554 6457   1.000000
+8554 7909  -1.000000
+8555 6458   1.000000
+8555 7910  -1.000000
+8556 6527   1.000000
+8556 7979  -1.000000
+8557 6528   1.000000
+8557 7980  -1.000000
+8558 6597   1.000000
+8558 8049  -1.000000
+8559 6598   1.000000
+8559 8050  -1.000000
+8560 6667   1.000000
+8560 8119  -1.000000
+8561 6668   1.000000
+8561 8120  -1.000000
+8562 6737   1.000000
+8562 8189  -1.000000
+8563 6738   1.000000
+8563 8190  -1.000000
+8564 6807   1.000000
+8564 8259  -1.000000
+8565 6808   1.000000
+8565 8260  -1.000000
+8566 6877   1.000000
+8566 8329  -1.000000
+8567 6878   1.000000
+8567 8330  -1.000000
+8568 6947   1.000000
+8568 8399  -1.000000
+8569 6948   1.000000
+8569 8400  -1.000000
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/jac_recovered.mtx
@@ -0,0 +1,47341 @@
+8570 8580 47340
+0 4   0.031010
+0 5   1.000000
+0 7   0.039363
+0 11  -0.013107
+0 15   0.004754
+0 17  -1.000000
+1 4   0.031010
+1 6   1.000000
+1 8   0.039363
+1 12  -0.013107
+1 16   0.004754
+1 18  -1.000000
+2 4   0.128990
+2 7   0.078885
+2 9   1.000000
+2 11   0.058415
+2 15  -0.008310
+2 17  -1.000000
+3 4   0.128990
+3 8   0.078885
+3 10   1.000000
+3 12   0.058415
+3 16  -0.008310
+3 18  -1.000000
+4 4   0.200000
+4 7   0.075281
+4 11   0.102497
+4 13   1.000000
+4 15   0.022222
+4 17  -1.000000
+5 4   0.200000
+5 8   0.075281
+5 12   0.102497
+5 14   1.000000
+5 16   0.022222
+5 18  -1.000000
+6 4   0.031010
+6 19   1.000000
+6 21   0.039363
+6 25  -0.013107
+6 29   0.004754
+6 31  -1.000000
+7 4   0.031010
+7 20   1.000000
+7 22   0.039363
+7 26  -0.013107
+7 30   0.004754
+7 32  -1.000000
+8 4   0.128990
+8 21   0.078885
+8 23   1.000000
+8 25   0.058415
+8 29  -0.008310
+8 31  -1.000000
+9 4   0.128990
+9 22   0.078885
+9 24   1.000000
+9 26   0.058415
+9 30  -0.008310
+9 32  -1.000000
+10 4   0.200000
+10 21   0.075281
+10 25   0.102497
+10 27   1.000000
+10 29   0.022222
+10 31  -1.000000
+11 4   0.200000
+11 22   0.075281
+11 26   0.102497
+11 28   1.000000
+11 30   0.022222
+11 32  -1.000000
+12 4   0.031010
+12 33   1.000000
+12 35   0.039363
+12 39  -0.013107
+12 43   0.004754
+12 45  -1.000000
+13 4   0.031010
+13 34   1.000000
+13 36   0.039363
+13 40  -0.013107
+13 44   0.004754
+13 46  -1.000000
+14 4   0.128990
+14 35   0.078885
+14 37   1.000000
+14 39   0.058415
+14 43  -0.008310
+14 45  -1.000000
+15 4   0.128990
+15 36   0.078885
+15 38   1.000000
+15 40   0.058415
+15 44  -0.008310
+15 46  -1.000000
+16 4   0.200000
+16 35   0.075281
+16 39   0.102497
+16 41   1.000000
+16 43   0.022222
+16 45  -1.000000
+17 4   0.200000
+17 36   0.075281
+17 40   0.102497
+17 42   1.000000
+17 44   0.022222
+17 46  -1.000000
+18 4   0.031010
+18 47   1.000000
+18 49   0.039363
+18 53  -0.013107
+18 57   0.004754
+18 59  -1.000000
+19 4   0.031010
+19 48   1.000000
+19 50   0.039363
+19 54  -0.013107
+19 58   0.004754
+19 60  -1.000000
+20 4   0.128990
+20 49   0.078885
+20 51   1.000000
+20 53   0.058415
+20 57  -0.008310
+20 59  -1.000000
+21 4   0.128990
+21 50   0.078885
+21 52   1.000000
+21 54   0.058415
+21 58  -0.008310
+21 60  -1.000000
+22 4   0.200000
+22 49   0.075281
+22 53   0.102497
+22 55   1.000000
+22 57   0.022222
+22 59  -1.000000
+23 4   0.200000
+23 50   0.075281
+23 54   0.102497
+23 56   1.000000
+23 58   0.022222
+23 60  -1.000000
+24 4   0.031010
+24 61   1.000000
+24 63   0.039363
+24 67  -0.013107
+24 71   0.004754
+24 73  -1.000000
+25 4   0.031010
+25 62   1.000000
+25 64   0.039363
+25 68  -0.013107
+25 72   0.004754
+25 74  -1.000000
+26 4   0.128990
+26 63   0.078885
+26 65   1.000000
+26 67   0.058415
+26 71  -0.008310
+26 73  -1.000000
+27 4   0.128990
+27 64   0.078885
+27 66   1.000000
+27 68   0.058415
+27 72  -0.008310
+27 74  -1.000000
+28 4   0.200000
+28 63   0.075281
+28 67   0.102497
+28 69   1.000000
+28 71   0.022222
+28 73  -1.000000
+29 4   0.200000
+29 64   0.075281
+29 68   0.102497
+29 70   1.000000
+29 72   0.022222
+29 74  -1.000000
+30 4   0.031010
+30 75   1.000000
+30 77   0.039363
+30 81  -0.013107
+30 85   0.004754
+30 87  -1.000000
+31 4   0.031010
+31 76   1.000000
+31 78   0.039363
+31 82  -0.013107
+31 86   0.004754
+31 88  -1.000000
+32 4   0.128990
+32 77   0.078885
+32 79   1.000000
+32 81   0.058415
+32 85  -0.008310
+32 87  -1.000000
+33 4   0.128990
+33 78   0.078885
+33 80   1.000000
+33 82   0.058415
+33 86  -0.008310
+33 88  -1.000000
+34 4   0.200000
+34 77   0.075281
+34 81   0.102497
+34 83   1.000000
+34 85   0.022222
+34 87  -1.000000
+35 4   0.200000
+35 78   0.075281
+35 82   0.102497
+35 84   1.000000
+35 86   0.022222
+35 88  -1.000000
+36 4   0.031010
+36 89   1.000000
+36 91   0.039363
+36 95  -0.013107
+36 99   0.004754
+36 101  -1.000000
+37 4   0.031010
+37 90   1.000000
+37 92   0.039363
+37 96  -0.013107
+37 100   0.004754
+37 102  -1.000000
+38 4   0.128990
+38 91   0.078885
+38 93   1.000000
+38 95   0.058415
+38 99  -0.008310
+38 101  -1.000000
+39 4   0.128990
+39 92   0.078885
+39 94   1.000000
+39 96   0.058415
+39 100  -0.008310
+39 102  -1.000000
+40 4   0.200000
+40 91   0.075281
+40 95   0.102497
+40 97   1.000000
+40 99   0.022222
+40 101  -1.000000
+41 4   0.200000
+41 92   0.075281
+41 96   0.102497
+41 98   1.000000
+41 100   0.022222
+41 102  -1.000000
+42 4   0.031010
+42 103   1.000000
+42 105   0.039363
+42 109  -0.013107
+42 113   0.004754
+42 115  -1.000000
+43 4   0.031010
+43 104   1.000000
+43 106   0.039363
+43 110  -0.013107
+43 114   0.004754
+43 116  -1.000000
+44 4   0.128990
+44 105   0.078885
+44 107   1.000000
+44 109   0.058415
+44 113  -0.008310
+44 115  -1.000000
+45 4   0.128990
+45 106   0.078885
+45 108   1.000000
+45 110   0.058415
+45 114  -0.008310
+45 116  -1.000000
+46 4   0.200000
+46 105   0.075281
+46 109   0.102497
+46 111   1.000000
+46 113   0.022222
+46 115  -1.000000
+47 4   0.200000
+47 106   0.075281
+47 110   0.102497
+47 112   1.000000
+47 114   0.022222
+47 116  -1.000000
+48 4   0.031010
+48 117   1.000000
+48 119   0.039363
+48 123  -0.013107
+48 127   0.004754
+48 129  -1.000000
+49 4   0.031010
+49 118   1.000000
+49 120   0.039363
+49 124  -0.013107
+49 128   0.004754
+49 130  -1.000000
+50 4   0.128990
+50 119   0.078885
+50 121   1.000000
+50 123   0.058415
+50 127  -0.008310
+50 129  -1.000000
+51 4   0.128990
+51 120   0.078885
+51 122   1.000000
+51 124   0.058415
+51 128  -0.008310
+51 130  -1.000000
+52 4   0.200000
+52 119   0.075281
+52 123   0.102497
+52 125   1.000000
+52 127   0.022222
+52 129  -1.000000
+53 4   0.200000
+53 120   0.075281
+53 124   0.102497
+53 126   1.000000
+53 128   0.022222
+53 130  -1.000000
+54 4   0.031010
+54 131   1.000000
+54 133   0.039363
+54 137  -0.013107
+54 141   0.004754
+54 143  -1.000000
+55 4   0.031010
+55 132   1.000000
+55 134   0.039363
+55 138  -0.013107
+55 142   0.004754
+55 144  -1.000000
+56 4   0.128990
+56 133   0.078885
+56 135   1.000000
+56 137   0.058415
+56 141  -0.008310
+56 143  -1.000000
+57 4   0.128990
+57 134   0.078885
+57 136   1.000000
+57 138   0.058415
+57 142  -0.008310
+57 144  -1.000000
+58 4   0.200000
+58 133   0.075281
+58 137   0.102497
+58 139   1.000000
+58 141   0.022222
+58 143  -1.000000
+59 4   0.200000
+59 134   0.075281
+59 138   0.102497
+59 140   1.000000
+59 142   0.022222
+59 144  -1.000000
+60 4   0.031010
+60 145   1.000000
+60 147   0.039363
+60 151  -0.013107
+60 155   0.004754
+60 157  -1.000000
+61 4   0.031010
+61 146   1.000000
+61 148   0.039363
+61 152  -0.013107
+61 156   0.004754
+61 158  -1.000000
+62 4   0.128990
+62 147   0.078885
+62 149   1.000000
+62 151   0.058415
+62 155  -0.008310
+62 157  -1.000000
+63 4   0.128990
+63 148   0.078885
+63 150   1.000000
+63 152   0.058415
+63 156  -0.008310
+63 158  -1.000000
+64 4   0.200000
+64 147   0.075281
+64 151   0.102497
+64 153   1.000000
+64 155   0.022222
+64 157  -1.000000
+65 4   0.200000
+65 148   0.075281
+65 152   0.102497
+65 154   1.000000
+65 156   0.022222
+65 158  -1.000000
+66 4   0.031010
+66 159   1.000000
+66 161   0.039363
+66 165  -0.013107
+66 169   0.004754
+66 171  -1.000000
+67 4   0.031010
+67 160   1.000000
+67 162   0.039363
+67 166  -0.013107
+67 170   0.004754
+67 172  -1.000000
+68 4   0.128990
+68 161   0.078885
+68 163   1.000000
+68 165   0.058415
+68 169  -0.008310
+68 171  -1.000000
+69 4   0.128990
+69 162   0.078885
+69 164   1.000000
+69 166   0.058415
+69 170  -0.008310
+69 172  -1.000000
+70 4   0.200000
+70 161   0.075281
+70 165   0.102497
+70 167   1.000000
+70 169   0.022222
+70 171  -1.000000
+71 4   0.200000
+71 162   0.075281
+71 166   0.102497
+71 168   1.000000
+71 170   0.022222
+71 172  -1.000000
+72 4   0.031010
+72 173   1.000000
+72 175   0.039363
+72 179  -0.013107
+72 183   0.004754
+72 185  -1.000000
+73 4   0.031010
+73 174   1.000000
+73 176   0.039363
+73 180  -0.013107
+73 184   0.004754
+73 186  -1.000000
+74 4   0.128990
+74 175   0.078885
+74 177   1.000000
+74 179   0.058415
+74 183  -0.008310
+74 185  -1.000000
+75 4   0.128990
+75 176   0.078885
+75 178   1.000000
+75 180   0.058415
+75 184  -0.008310
+75 186  -1.000000
+76 4   0.200000
+76 175   0.075281
+76 179   0.102497
+76 181   1.000000
+76 183   0.022222
+76 185  -1.000000
+77 4   0.200000
+77 176   0.075281
+77 180   0.102497
+77 182   1.000000
+77 184   0.022222
+77 186  -1.000000
+78 4   0.031010
+78 187   1.000000
+78 189   0.039363
+78 193  -0.013107
+78 197   0.004754
+78 199  -1.000000
+79 4   0.031010
+79 188   1.000000
+79 190   0.039363
+79 194  -0.013107
+79 198   0.004754
+79 200  -1.000000
+80 4   0.128990
+80 189   0.078885
+80 191   1.000000
+80 193   0.058415
+80 197  -0.008310
+80 199  -1.000000
+81 4   0.128990
+81 190   0.078885
+81 192   1.000000
+81 194   0.058415
+81 198  -0.008310
+81 200  -1.000000
+82 4   0.200000
+82 189   0.075281
+82 193   0.102497
+82 195   1.000000
+82 197   0.022222
+82 199  -1.000000
+83 4   0.200000
+83 190   0.075281
+83 194   0.102497
+83 196   1.000000
+83 198   0.022222
+83 200  -1.000000
+84 4   0.031010
+84 201   1.000000
+84 203   0.039363
+84 207  -0.013107
+84 211   0.004754
+84 213  -1.000000
+85 4   0.031010
+85 202   1.000000
+85 204   0.039363
+85 208  -0.013107
+85 212   0.004754
+85 214  -1.000000
+86 4   0.128990
+86 203   0.078885
+86 205   1.000000
+86 207   0.058415
+86 211  -0.008310
+86 213  -1.000000
+87 4   0.128990
+87 204   0.078885
+87 206   1.000000
+87 208   0.058415
+87 212  -0.008310
+87 214  -1.000000
+88 4   0.200000
+88 203   0.075281
+88 207   0.102497
+88 209   1.000000
+88 211   0.022222
+88 213  -1.000000
+89 4   0.200000
+89 204   0.075281
+89 208   0.102497
+89 210   1.000000
+89 212   0.022222
+89 214  -1.000000
+90 4   0.031010
+90 215   1.000000
+90 217   0.039363
+90 221  -0.013107
+90 225   0.004754
+90 227  -1.000000
+91 4   0.031010
+91 216   1.000000
+91 218   0.039363
+91 222  -0.013107
+91 226   0.004754
+91 228  -1.000000
+92 4   0.128990
+92 217   0.078885
+92 219   1.000000
+92 221   0.058415
+92 225  -0.008310
+92 227  -1.000000
+93 4   0.128990
+93 218   0.078885
+93 220   1.000000
+93 222   0.058415
+93 226  -0.008310
+93 228  -1.000000
+94 4   0.200000
+94 217   0.075281
+94 221   0.102497
+94 223   1.000000
+94 225   0.022222
+94 227  -1.000000
+95 4   0.200000
+95 218   0.075281
+95 222   0.102497
+95 224   1.000000
+95 226   0.022222
+95 228  -1.000000
+96 4   0.031010
+96 229   1.000000
+96 231   0.039363
+96 235  -0.013107
+96 239   0.004754
+96 241  -1.000000
+97 4   0.031010
+97 230   1.000000
+97 232   0.039363
+97 236  -0.013107
+97 240   0.004754
+97 242  -1.000000
+98 4   0.128990
+98 231   0.078885
+98 233   1.000000
+98 235   0.058415
+98 239  -0.008310
+98 241  -1.000000
+99 4   0.128990
+99 232   0.078885
+99 234   1.000000
+99 236   0.058415
+99 240  -0.008310
+99 242  -1.000000
+100 4   0.200000
+100 231   0.075281
+100 235   0.102497
+100 237   1.000000
+100 239   0.022222
+100 241  -1.000000
+101 4   0.200000
+101 232   0.075281
+101 236   0.102497
+101 238   1.000000
+101 240   0.022222
+101 242  -1.000000
+102 4   0.031010
+102 243   1.000000
+102 245   0.039363
+102 249  -0.013107
+102 253   0.004754
+102 255  -1.000000
+103 4   0.031010
+103 244   1.000000
+103 246   0.039363
+103 250  -0.013107
+103 254   0.004754
+103 256  -1.000000
+104 4   0.128990
+104 245   0.078885
+104 247   1.000000
+104 249   0.058415
+104 253  -0.008310
+104 255  -1.000000
+105 4   0.128990
+105 246   0.078885
+105 248   1.000000
+105 250   0.058415
+105 254  -0.008310
+105 256  -1.000000
+106 4   0.200000
+106 245   0.075281
+106 249   0.102497
+106 251   1.000000
+106 253   0.022222
+106 255  -1.000000
+107 4   0.200000
+107 246   0.075281
+107 250   0.102497
+107 252   1.000000
+107 254   0.022222
+107 256  -1.000000
+108 4   0.031010
+108 257   1.000000
+108 259   0.039363
+108 263  -0.013107
+108 267   0.004754
+108 269  -1.000000
+109 4   0.031010
+109 258   1.000000
+109 260   0.039363
+109 264  -0.013107
+109 268   0.004754
+109 270  -1.000000
+110 4   0.128990
+110 259   0.078885
+110 261   1.000000
+110 263   0.058415
+110 267  -0.008310
+110 269  -1.000000
+111 4   0.128990
+111 260   0.078885
+111 262   1.000000
+111 264   0.058415
+111 268  -0.008310
+111 270  -1.000000
+112 4   0.200000
+112 259   0.075281
+112 263   0.102497
+112 265   1.000000
+112 267   0.022222
+112 269  -1.000000
+113 4   0.200000
+113 260   0.075281
+113 264   0.102497
+113 266   1.000000
+113 268   0.022222
+113 270  -1.000000
+114 4   0.031010
+114 271   1.000000
+114 273   0.039363
+114 277  -0.013107
+114 281   0.004754
+114 283  -1.000000
+115 4   0.031010
+115 272   1.000000
+115 274   0.039363
+115 278  -0.013107
+115 282   0.004754
+115 284  -1.000000
+116 4   0.128990
+116 273   0.078885
+116 275   1.000000
+116 277   0.058415
+116 281  -0.008310
+116 283  -1.000000
+117 4   0.128990
+117 274   0.078885
+117 276   1.000000
+117 278   0.058415
+117 282  -0.008310
+117 284  -1.000000
+118 4   0.200000
+118 273   0.075281
+118 277   0.102497
+118 279   1.000000
+118 281   0.022222
+118 283  -1.000000
+119 4   0.200000
+119 274   0.075281
+119 278   0.102497
+119 280   1.000000
+119 282   0.022222
+119 284  -1.000000
+120 4   0.031010
+120 285   1.000000
+120 287   0.039363
+120 291  -0.013107
+120 295   0.004754
+120 297  -1.000000
+121 4   0.031010
+121 286   1.000000
+121 288   0.039363
+121 292  -0.013107
+121 296   0.004754
+121 298  -1.000000
+122 4   0.128990
+122 287   0.078885
+122 289   1.000000
+122 291   0.058415
+122 295  -0.008310
+122 297  -1.000000
+123 4   0.128990
+123 288   0.078885
+123 290   1.000000
+123 292   0.058415
+123 296  -0.008310
+123 298  -1.000000
+124 4   0.200000
+124 287   0.075281
+124 291   0.102497
+124 293   1.000000
+124 295   0.022222
+124 297  -1.000000
+125 4   0.200000
+125 288   0.075281
+125 292   0.102497
+125 294   1.000000
+125 296   0.022222
+125 298  -1.000000
+126 4   0.031010
+126 299   1.000000
+126 301   0.039363
+126 305  -0.013107
+126 309   0.004754
+126 311  -1.000000
+127 4   0.031010
+127 300   1.000000
+127 302   0.039363
+127 306  -0.013107
+127 310   0.004754
+127 312  -1.000000
+128 4   0.128990
+128 301   0.078885
+128 303   1.000000
+128 305   0.058415
+128 309  -0.008310
+128 311  -1.000000
+129 4   0.128990
+129 302   0.078885
+129 304   1.000000
+129 306   0.058415
+129 310  -0.008310
+129 312  -1.000000
+130 4   0.200000
+130 301   0.075281
+130 305   0.102497
+130 307   1.000000
+130 309   0.022222
+130 311  -1.000000
+131 4   0.200000
+131 302   0.075281
+131 306   0.102497
+131 308   1.000000
+131 310   0.022222
+131 312  -1.000000
+132 4   0.031010
+132 313   1.000000
+132 315   0.039363
+132 319  -0.013107
+132 323   0.004754
+132 325  -1.000000
+133 4   0.031010
+133 314   1.000000
+133 316   0.039363
+133 320  -0.013107
+133 324   0.004754
+133 326  -1.000000
+134 4   0.128990
+134 315   0.078885
+134 317   1.000000
+134 319   0.058415
+134 323  -0.008310
+134 325  -1.000000
+135 4   0.128990
+135 316   0.078885
+135 318   1.000000
+135 320   0.058415
+135 324  -0.008310
+135 326  -1.000000
+136 4   0.200000
+136 315   0.075281
+136 319   0.102497
+136 321   1.000000
+136 323   0.022222
+136 325  -1.000000
+137 4   0.200000
+137 316   0.075281
+137 320   0.102497
+137 322   1.000000
+137 324   0.022222
+137 326  -1.000000
+138 4   0.031010
+138 327   1.000000
+138 329   0.039363
+138 333  -0.013107
+138 337   0.004754
+138 339  -1.000000
+139 4   0.031010
+139 328   1.000000
+139 330   0.039363
+139 334  -0.013107
+139 338   0.004754
+139 340  -1.000000
+140 4   0.128990
+140 329   0.078885
+140 331   1.000000
+140 333   0.058415
+140 337  -0.008310
+140 339  -1.000000
+141 4   0.128990
+141 330   0.078885
+141 332   1.000000
+141 334   0.058415
+141 338  -0.008310
+141 340  -1.000000
+142 4   0.200000
+142 329   0.075281
+142 333   0.102497
+142 335   1.000000
+142 337   0.022222
+142 339  -1.000000
+143 4   0.200000
+143 330   0.075281
+143 334   0.102497
+143 336   1.000000
+143 338   0.022222
+143 340  -1.000000
+144 4   0.031010
+144 341   1.000000
+144 343   0.039363
+144 347  -0.013107
+144 351   0.004754
+144 353  -1.000000
+145 4   0.031010
+145 342   1.000000
+145 344   0.039363
+145 348  -0.013107
+145 352   0.004754
+145 354  -1.000000
+146 4   0.128990
+146 343   0.078885
+146 345   1.000000
+146 347   0.058415
+146 351  -0.008310
+146 353  -1.000000
+147 4   0.128990
+147 344   0.078885
+147 346   1.000000
+147 348   0.058415
+147 352  -0.008310
+147 354  -1.000000
+148 4   0.200000
+148 343   0.075281
+148 347   0.102497
+148 349   1.000000
+148 351   0.022222
+148 353  -1.000000
+149 4   0.200000
+149 344   0.075281
+149 348   0.102497
+149 350   1.000000
+149 352   0.022222
+149 354  -1.000000
+150 4   0.031010
+150 355   1.000000
+150 357   0.039363
+150 361  -0.013107
+150 365   0.004754
+150 367  -1.000000
+151 4   0.031010
+151 356   1.000000
+151 358   0.039363
+151 362  -0.013107
+151 366   0.004754
+151 368  -1.000000
+152 4   0.128990
+152 357   0.078885
+152 359   1.000000
+152 361   0.058415
+152 365  -0.008310
+152 367  -1.000000
+153 4   0.128990
+153 358   0.078885
+153 360   1.000000
+153 362   0.058415
+153 366  -0.008310
+153 368  -1.000000
+154 4   0.200000
+154 357   0.075281
+154 361   0.102497
+154 363   1.000000
+154 365   0.022222
+154 367  -1.000000
+155 4   0.200000
+155 358   0.075281
+155 362   0.102497
+155 364   1.000000
+155 366   0.022222
+155 368  -1.000000
+156 4   0.031010
+156 369   1.000000
+156 371   0.039363
+156 375  -0.013107
+156 379   0.004754
+156 381  -1.000000
+157 4   0.031010
+157 370   1.000000
+157 372   0.039363
+157 376  -0.013107
+157 380   0.004754
+157 382  -1.000000
+158 4   0.128990
+158 371   0.078885
+158 373   1.000000
+158 375   0.058415
+158 379  -0.008310
+158 381  -1.000000
+159 4   0.128990
+159 372   0.078885
+159 374   1.000000
+159 376   0.058415
+159 380  -0.008310
+159 382  -1.000000
+160 4   0.200000
+160 371   0.075281
+160 375   0.102497
+160 377   1.000000
+160 379   0.022222
+160 381  -1.000000
+161 4   0.200000
+161 372   0.075281
+161 376   0.102497
+161 378   1.000000
+161 380   0.022222
+161 382  -1.000000
+162 4   0.031010
+162 383   1.000000
+162 385   0.039363
+162 389  -0.013107
+162 393   0.004754
+162 395  -1.000000
+163 4   0.031010
+163 384   1.000000
+163 386   0.039363
+163 390  -0.013107
+163 394   0.004754
+163 396  -1.000000
+164 4   0.128990
+164 385   0.078885
+164 387   1.000000
+164 389   0.058415
+164 393  -0.008310
+164 395  -1.000000
+165 4   0.128990
+165 386   0.078885
+165 388   1.000000
+165 390   0.058415
+165 394  -0.008310
+165 396  -1.000000
+166 4   0.200000
+166 385   0.075281
+166 389   0.102497
+166 391   1.000000
+166 393   0.022222
+166 395  -1.000000
+167 4   0.200000
+167 386   0.075281
+167 390   0.102497
+167 392   1.000000
+167 394   0.022222
+167 396  -1.000000
+168 4   0.031010
+168 397   1.000000
+168 399   0.039363
+168 403  -0.013107
+168 407   0.004754
+168 409  -1.000000
+169 4   0.031010
+169 398   1.000000
+169 400   0.039363
+169 404  -0.013107
+169 408   0.004754
+169 410  -1.000000
+170 4   0.128990
+170 399   0.078885
+170 401   1.000000
+170 403   0.058415
+170 407  -0.008310
+170 409  -1.000000
+171 4   0.128990
+171 400   0.078885
+171 402   1.000000
+171 404   0.058415
+171 408  -0.008310
+171 410  -1.000000
+172 4   0.200000
+172 399   0.075281
+172 403   0.102497
+172 405   1.000000
+172 407   0.022222
+172 409  -1.000000
+173 4   0.200000
+173 400   0.075281
+173 404   0.102497
+173 406   1.000000
+173 408   0.022222
+173 410  -1.000000
+174 4   0.031010
+174 411   1.000000
+174 413   0.039363
+174 417  -0.013107
+174 421   0.004754
+174 423  -1.000000
+175 4   0.031010
+175 412   1.000000
+175 414   0.039363
+175 418  -0.013107
+175 422   0.004754
+175 424  -1.000000
+176 4   0.128990
+176 413   0.078885
+176 415   1.000000
+176 417   0.058415
+176 421  -0.008310
+176 423  -1.000000
+177 4   0.128990
+177 414   0.078885
+177 416   1.000000
+177 418   0.058415
+177 422  -0.008310
+177 424  -1.000000
+178 4   0.200000
+178 413   0.075281
+178 417   0.102497
+178 419   1.000000
+178 421   0.022222
+178 423  -1.000000
+179 4   0.200000
+179 414   0.075281
+179 418   0.102497
+179 420   1.000000
+179 422   0.022222
+179 424  -1.000000
+180 4   0.031010
+180 425   1.000000
+180 427   0.039363
+180 431  -0.013107
+180 435   0.004754
+180 437  -1.000000
+181 4   0.031010
+181 426   1.000000
+181 428   0.039363
+181 432  -0.013107
+181 436   0.004754
+181 438  -1.000000
+182 4   0.128990
+182 427   0.078885
+182 429   1.000000
+182 431   0.058415
+182 435  -0.008310
+182 437  -1.000000
+183 4   0.128990
+183 428   0.078885
+183 430   1.000000
+183 432   0.058415
+183 436  -0.008310
+183 438  -1.000000
+184 4   0.200000
+184 427   0.075281
+184 431   0.102497
+184 433   1.000000
+184 435   0.022222
+184 437  -1.000000
+185 4   0.200000
+185 428   0.075281
+185 432   0.102497
+185 434   1.000000
+185 436   0.022222
+185 438  -1.000000
+186 4   0.031010
+186 439   1.000000
+186 441   0.039363
+186 445  -0.013107
+186 449   0.004754
+186 451  -1.000000
+187 4   0.031010
+187 440   1.000000
+187 442   0.039363
+187 446  -0.013107
+187 450   0.004754
+187 452  -1.000000
+188 4   0.128990
+188 441   0.078885
+188 443   1.000000
+188 445   0.058415
+188 449  -0.008310
+188 451  -1.000000
+189 4   0.128990
+189 442   0.078885
+189 444   1.000000
+189 446   0.058415
+189 450  -0.008310
+189 452  -1.000000
+190 4   0.200000
+190 441   0.075281
+190 445   0.102497
+190 447   1.000000
+190 449   0.022222
+190 451  -1.000000
+191 4   0.200000
+191 442   0.075281
+191 446   0.102497
+191 448   1.000000
+191 450   0.022222
+191 452  -1.000000
+192 4   0.031010
+192 453   1.000000
+192 455   0.039363
+192 459  -0.013107
+192 463   0.004754
+192 465  -1.000000
+193 4   0.031010
+193 454   1.000000
+193 456   0.039363
+193 460  -0.013107
+193 464   0.004754
+193 466  -1.000000
+194 4   0.128990
+194 455   0.078885
+194 457   1.000000
+194 459   0.058415
+194 463  -0.008310
+194 465  -1.000000
+195 4   0.128990
+195 456   0.078885
+195 458   1.000000
+195 460   0.058415
+195 464  -0.008310
+195 466  -1.000000
+196 4   0.200000
+196 455   0.075281
+196 459   0.102497
+196 461   1.000000
+196 463   0.022222
+196 465  -1.000000
+197 4   0.200000
+197 456   0.075281
+197 460   0.102497
+197 462   1.000000
+197 464   0.022222
+197 466  -1.000000
+198 4   0.031010
+198 467   1.000000
+198 469   0.039363
+198 473  -0.013107
+198 477   0.004754
+198 479  -1.000000
+199 4   0.031010
+199 468   1.000000
+199 470   0.039363
+199 474  -0.013107
+199 478   0.004754
+199 480  -1.000000
+200 4   0.128990
+200 469   0.078885
+200 471   1.000000
+200 473   0.058415
+200 477  -0.008310
+200 479  -1.000000
+201 4   0.128990
+201 470   0.078885
+201 472   1.000000
+201 474   0.058415
+201 478  -0.008310
+201 480  -1.000000
+202 4   0.200000
+202 469   0.075281
+202 473   0.102497
+202 475   1.000000
+202 477   0.022222
+202 479  -1.000000
+203 4   0.200000
+203 470   0.075281
+203 474   0.102497
+203 476   1.000000
+203 478   0.022222
+203 480  -1.000000
+204 4   0.031010
+204 481   1.000000
+204 483   0.039363
+204 487  -0.013107
+204 491   0.004754
+204 493  -1.000000
+205 4   0.031010
+205 482   1.000000
+205 484   0.039363
+205 488  -0.013107
+205 492   0.004754
+205 494  -1.000000
+206 4   0.128990
+206 483   0.078885
+206 485   1.000000
+206 487   0.058415
+206 491  -0.008310
+206 493  -1.000000
+207 4   0.128990
+207 484   0.078885
+207 486   1.000000
+207 488   0.058415
+207 492  -0.008310
+207 494  -1.000000
+208 4   0.200000
+208 483   0.075281
+208 487   0.102497
+208 489   1.000000
+208 491   0.022222
+208 493  -1.000000
+209 4   0.200000
+209 484   0.075281
+209 488   0.102497
+209 490   1.000000
+209 492   0.022222
+209 494  -1.000000
+210 4   0.031010
+210 495   1.000000
+210 497   0.039363
+210 501  -0.013107
+210 505   0.004754
+210 507  -1.000000
+211 4   0.031010
+211 496   1.000000
+211 498   0.039363
+211 502  -0.013107
+211 506   0.004754
+211 508  -1.000000
+212 4   0.128990
+212 497   0.078885
+212 499   1.000000
+212 501   0.058415
+212 505  -0.008310
+212 507  -1.000000
+213 4   0.128990
+213 498   0.078885
+213 500   1.000000
+213 502   0.058415
+213 506  -0.008310
+213 508  -1.000000
+214 4   0.200000
+214 497   0.075281
+214 501   0.102497
+214 503   1.000000
+214 505   0.022222
+214 507  -1.000000
+215 4   0.200000
+215 498   0.075281
+215 502   0.102497
+215 504   1.000000
+215 506   0.022222
+215 508  -1.000000
+216 4   0.031010
+216 509   1.000000
+216 511   0.039363
+216 515  -0.013107
+216 519   0.004754
+216 521  -1.000000
+217 4   0.031010
+217 510   1.000000
+217 512   0.039363
+217 516  -0.013107
+217 520   0.004754
+217 522  -1.000000
+218 4   0.128990
+218 511   0.078885
+218 513   1.000000
+218 515   0.058415
+218 519  -0.008310
+218 521  -1.000000
+219 4   0.128990
+219 512   0.078885
+219 514   1.000000
+219 516   0.058415
+219 520  -0.008310
+219 522  -1.000000
+220 4   0.200000
+220 511   0.075281
+220 515   0.102497
+220 517   1.000000
+220 519   0.022222
+220 521  -1.000000
+221 4   0.200000
+221 512   0.075281
+221 516   0.102497
+221 518   1.000000
+221 520   0.022222
+221 522  -1.000000
+222 4   0.031010
+222 523   1.000000
+222 525   0.039363
+222 529  -0.013107
+222 533   0.004754
+222 535  -1.000000
+223 4   0.031010
+223 524   1.000000
+223 526   0.039363
+223 530  -0.013107
+223 534   0.004754
+223 536  -1.000000
+224 4   0.128990
+224 525   0.078885
+224 527   1.000000
+224 529   0.058415
+224 533  -0.008310
+224 535  -1.000000
+225 4   0.128990
+225 526   0.078885
+225 528   1.000000
+225 530   0.058415
+225 534  -0.008310
+225 536  -1.000000
+226 4   0.200000
+226 525   0.075281
+226 529   0.102497
+226 531   1.000000
+226 533   0.022222
+226 535  -1.000000
+227 4   0.200000
+227 526   0.075281
+227 530   0.102497
+227 532   1.000000
+227 534   0.022222
+227 536  -1.000000
+228 4   0.031010
+228 537   1.000000
+228 539   0.039363
+228 543  -0.013107
+228 547   0.004754
+228 549  -1.000000
+229 4   0.031010
+229 538   1.000000
+229 540   0.039363
+229 544  -0.013107
+229 548   0.004754
+229 550  -1.000000
+230 4   0.128990
+230 539   0.078885
+230 541   1.000000
+230 543   0.058415
+230 547  -0.008310
+230 549  -1.000000
+231 4   0.128990
+231 540   0.078885
+231 542   1.000000
+231 544   0.058415
+231 548  -0.008310
+231 550  -1.000000
+232 4   0.200000
+232 539   0.075281
+232 543   0.102497
+232 545   1.000000
+232 547   0.022222
+232 549  -1.000000
+233 4   0.200000
+233 540   0.075281
+233 544   0.102497
+233 546   1.000000
+233 548   0.022222
+233 550  -1.000000
+234 4   0.031010
+234 551   1.000000
+234 553   0.039363
+234 557  -0.013107
+234 561   0.004754
+234 563  -1.000000
+235 4   0.031010
+235 552   1.000000
+235 554   0.039363
+235 558  -0.013107
+235 562   0.004754
+235 564  -1.000000
+236 4   0.128990
+236 553   0.078885
+236 555   1.000000
+236 557   0.058415
+236 561  -0.008310
+236 563  -1.000000
+237 4   0.128990
+237 554   0.078885
+237 556   1.000000
+237 558   0.058415
+237 562  -0.008310
+237 564  -1.000000
+238 4   0.200000
+238 553   0.075281
+238 557   0.102497
+238 559   1.000000
+238 561   0.022222
+238 563  -1.000000
+239 4   0.200000
+239 554   0.075281
+239 558   0.102497
+239 560   1.000000
+239 562   0.022222
+239 564  -1.000000
+240 4   0.031010
+240 565   1.000000
+240 567   0.039363
+240 571  -0.013107
+240 575   0.004754
+240 577  -1.000000
+241 4   0.031010
+241 566   1.000000
+241 568   0.039363
+241 572  -0.013107
+241 576   0.004754
+241 578  -1.000000
+242 4   0.128990
+242 567   0.078885
+242 569   1.000000
+242 571   0.058415
+242 575  -0.008310
+242 577  -1.000000
+243 4   0.128990
+243 568   0.078885
+243 570   1.000000
+243 572   0.058415
+243 576  -0.008310
+243 578  -1.000000
+244 4   0.200000
+244 567   0.075281
+244 571   0.102497
+244 573   1.000000
+244 575   0.022222
+244 577  -1.000000
+245 4   0.200000
+245 568   0.075281
+245 572   0.102497
+245 574   1.000000
+245 576   0.022222
+245 578  -1.000000
+246 4   0.031010
+246 579   1.000000
+246 581   0.039363
+246 585  -0.013107
+246 589   0.004754
+246 591  -1.000000
+247 4   0.031010
+247 580   1.000000
+247 582   0.039363
+247 586  -0.013107
+247 590   0.004754
+247 592  -1.000000
+248 4   0.128990
+248 581   0.078885
+248 583   1.000000
+248 585   0.058415
+248 589  -0.008310
+248 591  -1.000000
+249 4   0.128990
+249 582   0.078885
+249 584   1.000000
+249 586   0.058415
+249 590  -0.008310
+249 592  -1.000000
+250 4   0.200000
+250 581   0.075281
+250 585   0.102497
+250 587   1.000000
+250 589   0.022222
+250 591  -1.000000
+251 4   0.200000
+251 582   0.075281
+251 586   0.102497
+251 588   1.000000
+251 590   0.022222
+251 592  -1.000000
+252 4   0.031010
+252 593   1.000000
+252 595   0.039363
+252 599  -0.013107
+252 603   0.004754
+252 605  -1.000000
+253 4   0.031010
+253 594   1.000000
+253 596   0.039363
+253 600  -0.013107
+253 604   0.004754
+253 606  -1.000000
+254 4   0.128990
+254 595   0.078885
+254 597   1.000000
+254 599   0.058415
+254 603  -0.008310
+254 605  -1.000000
+255 4   0.128990
+255 596   0.078885
+255 598   1.000000
+255 600   0.058415
+255 604  -0.008310
+255 606  -1.000000
+256 4   0.200000
+256 595   0.075281
+256 599   0.102497
+256 601   1.000000
+256 603   0.022222
+256 605  -1.000000
+257 4   0.200000
+257 596   0.075281
+257 600   0.102497
+257 602   1.000000
+257 604   0.022222
+257 606  -1.000000
+258 4   0.031010
+258 607   1.000000
+258 609   0.039363
+258 613  -0.013107
+258 617   0.004754
+258 619  -1.000000
+259 4   0.031010
+259 608   1.000000
+259 610   0.039363
+259 614  -0.013107
+259 618   0.004754
+259 620  -1.000000
+260 4   0.128990
+260 609   0.078885
+260 611   1.000000
+260 613   0.058415
+260 617  -0.008310
+260 619  -1.000000
+261 4   0.128990
+261 610   0.078885
+261 612   1.000000
+261 614   0.058415
+261 618  -0.008310
+261 620  -1.000000
+262 4   0.200000
+262 609   0.075281
+262 613   0.102497
+262 615   1.000000
+262 617   0.022222
+262 619  -1.000000
+263 4   0.200000
+263 610   0.075281
+263 614   0.102497
+263 616   1.000000
+263 618   0.022222
+263 620  -1.000000
+264 4   0.031010
+264 621   1.000000
+264 623   0.039363
+264 627  -0.013107
+264 631   0.004754
+264 633  -1.000000
+265 4   0.031010
+265 622   1.000000
+265 624   0.039363
+265 628  -0.013107
+265 632   0.004754
+265 634  -1.000000
+266 4   0.128990
+266 623   0.078885
+266 625   1.000000
+266 627   0.058415
+266 631  -0.008310
+266 633  -1.000000
+267 4   0.128990
+267 624   0.078885
+267 626   1.000000
+267 628   0.058415
+267 632  -0.008310
+267 634  -1.000000
+268 4   0.200000
+268 623   0.075281
+268 627   0.102497
+268 629   1.000000
+268 631   0.022222
+268 633  -1.000000
+269 4   0.200000
+269 624   0.075281
+269 628   0.102497
+269 630   1.000000
+269 632   0.022222
+269 634  -1.000000
+270 4   0.031010
+270 635   1.000000
+270 637   0.039363
+270 641  -0.013107
+270 645   0.004754
+270 647  -1.000000
+271 4   0.031010
+271 636   1.000000
+271 638   0.039363
+271 642  -0.013107
+271 646   0.004754
+271 648  -1.000000
+272 4   0.128990
+272 637   0.078885
+272 639   1.000000
+272 641   0.058415
+272 645  -0.008310
+272 647  -1.000000
+273 4   0.128990
+273 638   0.078885
+273 640   1.000000
+273 642   0.058415
+273 646  -0.008310
+273 648  -1.000000
+274 4   0.200000
+274 637   0.075281
+274 641   0.102497
+274 643   1.000000
+274 645   0.022222
+274 647  -1.000000
+275 4   0.200000
+275 638   0.075281
+275 642   0.102497
+275 644   1.000000
+275 646   0.022222
+275 648  -1.000000
+276 4   0.031010
+276 649   1.000000
+276 651   0.039363
+276 655  -0.013107
+276 659   0.004754
+276 661  -1.000000
+277 4   0.031010
+277 650   1.000000
+277 652   0.039363
+277 656  -0.013107
+277 660   0.004754
+277 662  -1.000000
+278 4   0.128990
+278 651   0.078885
+278 653   1.000000
+278 655   0.058415
+278 659  -0.008310
+278 661  -1.000000
+279 4   0.128990
+279 652   0.078885
+279 654   1.000000
+279 656   0.058415
+279 660  -0.008310
+279 662  -1.000000
+280 4   0.200000
+280 651   0.075281
+280 655   0.102497
+280 657   1.000000
+280 659   0.022222
+280 661  -1.000000
+281 4   0.200000
+281 652   0.075281
+281 656   0.102497
+281 658   1.000000
+281 660   0.022222
+281 662  -1.000000
+282 4   0.031010
+282 663   1.000000
+282 665   0.039363
+282 669  -0.013107
+282 673   0.004754
+282 675  -1.000000
+283 4   0.031010
+283 664   1.000000
+283 666   0.039363
+283 670  -0.013107
+283 674   0.004754
+283 676  -1.000000
+284 4   0.128990
+284 665   0.078885
+284 667   1.000000
+284 669   0.058415
+284 673  -0.008310
+284 675  -1.000000
+285 4   0.128990
+285 666   0.078885
+285 668   1.000000
+285 670   0.058415
+285 674  -0.008310
+285 676  -1.000000
+286 4   0.200000
+286 665   0.075281
+286 669   0.102497
+286 671   1.000000
+286 673   0.022222
+286 675  -1.000000
+287 4   0.200000
+287 666   0.075281
+287 670   0.102497
+287 672   1.000000
+287 674   0.022222
+287 676  -1.000000
+288 4   0.031010
+288 677   1.000000
+288 679   0.039363
+288 683  -0.013107
+288 687   0.004754
+288 689  -1.000000
+289 4   0.031010
+289 678   1.000000
+289 680   0.039363
+289 684  -0.013107
+289 688   0.004754
+289 690  -1.000000
+290 4   0.128990
+290 679   0.078885
+290 681   1.000000
+290 683   0.058415
+290 687  -0.008310
+290 689  -1.000000
+291 4   0.128990
+291 680   0.078885
+291 682   1.000000
+291 684   0.058415
+291 688  -0.008310
+291 690  -1.000000
+292 4   0.200000
+292 679   0.075281
+292 683   0.102497
+292 685   1.000000
+292 687   0.022222
+292 689  -1.000000
+293 4   0.200000
+293 680   0.075281
+293 684   0.102497
+293 686   1.000000
+293 688   0.022222
+293 690  -1.000000
+294 4   0.031010
+294 691   1.000000
+294 693   0.039363
+294 697  -0.013107
+294 701   0.004754
+294 703  -1.000000
+295 4   0.031010
+295 692   1.000000
+295 694   0.039363
+295 698  -0.013107
+295 702   0.004754
+295 704  -1.000000
+296 4   0.128990
+296 693   0.078885
+296 695   1.000000
+296 697   0.058415
+296 701  -0.008310
+296 703  -1.000000
+297 4   0.128990
+297 694   0.078885
+297 696   1.000000
+297 698   0.058415
+297 702  -0.008310
+297 704  -1.000000
+298 4   0.200000
+298 693   0.075281
+298 697   0.102497
+298 699   1.000000
+298 701   0.022222
+298 703  -1.000000
+299 4   0.200000
+299 694   0.075281
+299 698   0.102497
+299 700   1.000000
+299 702   0.022222
+299 704  -1.000000
+300 4   0.031010
+300 705   1.000000
+300 707   0.039363
+300 711  -0.013107
+300 715   0.004754
+300 717  -1.000000
+301 4   0.031010
+301 706   1.000000
+301 708   0.039363
+301 712  -0.013107
+301 716   0.004754
+301 718  -1.000000
+302 4   0.128990
+302 707   0.078885
+302 709   1.000000
+302 711   0.058415
+302 715  -0.008310
+302 717  -1.000000
+303 4   0.128990
+303 708   0.078885
+303 710   1.000000
+303 712   0.058415
+303 716  -0.008310
+303 718  -1.000000
+304 4   0.200000
+304 707   0.075281
+304 711   0.102497
+304 713   1.000000
+304 715   0.022222
+304 717  -1.000000
+305 4   0.200000
+305 708   0.075281
+305 712   0.102497
+305 714   1.000000
+305 716   0.022222
+305 718  -1.000000
+306 4   0.031010
+306 719   1.000000
+306 721   0.039363
+306 725  -0.013107
+306 729   0.004754
+306 731  -1.000000
+307 4   0.031010
+307 720   1.000000
+307 722   0.039363
+307 726  -0.013107
+307 730   0.004754
+307 732  -1.000000
+308 4   0.128990
+308 721   0.078885
+308 723   1.000000
+308 725   0.058415
+308 729  -0.008310
+308 731  -1.000000
+309 4   0.128990
+309 722   0.078885
+309 724   1.000000
+309 726   0.058415
+309 730  -0.008310
+309 732  -1.000000
+310 4   0.200000
+310 721   0.075281
+310 725   0.102497
+310 727   1.000000
+310 729   0.022222
+310 731  -1.000000
+311 4   0.200000
+311 722   0.075281
+311 726   0.102497
+311 728   1.000000
+311 730   0.022222
+311 732  -1.000000
+312 4   0.031010
+312 733   1.000000
+312 735   0.039363
+312 739  -0.013107
+312 743   0.004754
+312 745  -1.000000
+313 4   0.031010
+313 734   1.000000
+313 736   0.039363
+313 740  -0.013107
+313 744   0.004754
+313 746  -1.000000
+314 4   0.128990
+314 735   0.078885
+314 737   1.000000
+314 739   0.058415
+314 743  -0.008310
+314 745  -1.000000
+315 4   0.128990
+315 736   0.078885
+315 738   1.000000
+315 740   0.058415
+315 744  -0.008310
+315 746  -1.000000
+316 4   0.200000
+316 735   0.075281
+316 739   0.102497
+316 741   1.000000
+316 743   0.022222
+316 745  -1.000000
+317 4   0.200000
+317 736   0.075281
+317 740   0.102497
+317 742   1.000000
+317 744   0.022222
+317 746  -1.000000
+318 4   0.031010
+318 747   1.000000
+318 749   0.039363
+318 753  -0.013107
+318 757   0.004754
+318 759  -1.000000
+319 4   0.031010
+319 748   1.000000
+319 750   0.039363
+319 754  -0.013107
+319 758   0.004754
+319 760  -1.000000
+320 4   0.128990
+320 749   0.078885
+320 751   1.000000
+320 753   0.058415
+320 757  -0.008310
+320 759  -1.000000
+321 4   0.128990
+321 750   0.078885
+321 752   1.000000
+321 754   0.058415
+321 758  -0.008310
+321 760  -1.000000
+322 4   0.200000
+322 749   0.075281
+322 753   0.102497
+322 755   1.000000
+322 757   0.022222
+322 759  -1.000000
+323 4   0.200000
+323 750   0.075281
+323 754   0.102497
+323 756   1.000000
+323 758   0.022222
+323 760  -1.000000
+324 4   0.031010
+324 761   1.000000
+324 763   0.039363
+324 767  -0.013107
+324 771   0.004754
+324 773  -1.000000
+325 4   0.031010
+325 762   1.000000
+325 764   0.039363
+325 768  -0.013107
+325 772   0.004754
+325 774  -1.000000
+326 4   0.128990
+326 763   0.078885
+326 765   1.000000
+326 767   0.058415
+326 771  -0.008310
+326 773  -1.000000
+327 4   0.128990
+327 764   0.078885
+327 766   1.000000
+327 768   0.058415
+327 772  -0.008310
+327 774  -1.000000
+328 4   0.200000
+328 763   0.075281
+328 767   0.102497
+328 769   1.000000
+328 771   0.022222
+328 773  -1.000000
+329 4   0.200000
+329 764   0.075281
+329 768   0.102497
+329 770   1.000000
+329 772   0.022222
+329 774  -1.000000
+330 4   0.031010
+330 775   1.000000
+330 777   0.039363
+330 781  -0.013107
+330 785   0.004754
+330 787  -1.000000
+331 4   0.031010
+331 776   1.000000
+331 778   0.039363
+331 782  -0.013107
+331 786   0.004754
+331 788  -1.000000
+332 4   0.128990
+332 777   0.078885
+332 779   1.000000
+332 781   0.058415
+332 785  -0.008310
+332 787  -1.000000
+333 4   0.128990
+333 778   0.078885
+333 780   1.000000
+333 782   0.058415
+333 786  -0.008310
+333 788  -1.000000
+334 4   0.200000
+334 777   0.075281
+334 781   0.102497
+334 783   1.000000
+334 785   0.022222
+334 787  -1.000000
+335 4   0.200000
+335 778   0.075281
+335 782   0.102497
+335 784   1.000000
+335 786   0.022222
+335 788  -1.000000
+336 4   0.031010
+336 789   1.000000
+336 791   0.039363
+336 795  -0.013107
+336 799   0.004754
+336 801  -1.000000
+337 4   0.031010
+337 790   1.000000
+337 792   0.039363
+337 796  -0.013107
+337 800   0.004754
+337 802  -1.000000
+338 4   0.128990
+338 791   0.078885
+338 793   1.000000
+338 795   0.058415
+338 799  -0.008310
+338 801  -1.000000
+339 4   0.128990
+339 792   0.078885
+339 794   1.000000
+339 796   0.058415
+339 800  -0.008310
+339 802  -1.000000
+340 4   0.200000
+340 791   0.075281
+340 795   0.102497
+340 797   1.000000
+340 799   0.022222
+340 801  -1.000000
+341 4   0.200000
+341 792   0.075281
+341 796   0.102497
+341 798   1.000000
+341 800   0.022222
+341 802  -1.000000
+342 4   0.031010
+342 803   1.000000
+342 805   0.039363
+342 809  -0.013107
+342 813   0.004754
+342 815  -1.000000
+343 4   0.031010
+343 804   1.000000
+343 806   0.039363
+343 810  -0.013107
+343 814   0.004754
+343 816  -1.000000
+344 4   0.128990
+344 805   0.078885
+344 807   1.000000
+344 809   0.058415
+344 813  -0.008310
+344 815  -1.000000
+345 4   0.128990
+345 806   0.078885
+345 808   1.000000
+345 810   0.058415
+345 814  -0.008310
+345 816  -1.000000
+346 4   0.200000
+346 805   0.075281
+346 809   0.102497
+346 811   1.000000
+346 813   0.022222
+346 815  -1.000000
+347 4   0.200000
+347 806   0.075281
+347 810   0.102497
+347 812   1.000000
+347 814   0.022222
+347 816  -1.000000
+348 4   0.031010
+348 817   1.000000
+348 819   0.039363
+348 823  -0.013107
+348 827   0.004754
+348 829  -1.000000
+349 4   0.031010
+349 818   1.000000
+349 820   0.039363
+349 824  -0.013107
+349 828   0.004754
+349 830  -1.000000
+350 4   0.128990
+350 819   0.078885
+350 821   1.000000
+350 823   0.058415
+350 827  -0.008310
+350 829  -1.000000
+351 4   0.128990
+351 820   0.078885
+351 822   1.000000
+351 824   0.058415
+351 828  -0.008310
+351 830  -1.000000
+352 4   0.200000
+352 819   0.075281
+352 823   0.102497
+352 825   1.000000
+352 827   0.022222
+352 829  -1.000000
+353 4   0.200000
+353 820   0.075281
+353 824   0.102497
+353 826   1.000000
+353 828   0.022222
+353 830  -1.000000
+354 4   0.031010
+354 831   1.000000
+354 833   0.039363
+354 837  -0.013107
+354 841   0.004754
+354 843  -1.000000
+355 4   0.031010
+355 832   1.000000
+355 834   0.039363
+355 838  -0.013107
+355 842   0.004754
+355 844  -1.000000
+356 4   0.128990
+356 833   0.078885
+356 835   1.000000
+356 837   0.058415
+356 841  -0.008310
+356 843  -1.000000
+357 4   0.128990
+357 834   0.078885
+357 836   1.000000
+357 838   0.058415
+357 842  -0.008310
+357 844  -1.000000
+358 4   0.200000
+358 833   0.075281
+358 837   0.102497
+358 839   1.000000
+358 841   0.022222
+358 843  -1.000000
+359 4   0.200000
+359 834   0.075281
+359 838   0.102497
+359 840   1.000000
+359 842   0.022222
+359 844  -1.000000
+360 4   0.031010
+360 845   1.000000
+360 847   0.039363
+360 851  -0.013107
+360 855   0.004754
+360 857  -1.000000
+361 4   0.031010
+361 846   1.000000
+361 848   0.039363
+361 852  -0.013107
+361 856   0.004754
+361 858  -1.000000
+362 4   0.128990
+362 847   0.078885
+362 849   1.000000
+362 851   0.058415
+362 855  -0.008310
+362 857  -1.000000
+363 4   0.128990
+363 848   0.078885
+363 850   1.000000
+363 852   0.058415
+363 856  -0.008310
+363 858  -1.000000
+364 4   0.200000
+364 847   0.075281
+364 851   0.102497
+364 853   1.000000
+364 855   0.022222
+364 857  -1.000000
+365 4   0.200000
+365 848   0.075281
+365 852   0.102497
+365 854   1.000000
+365 856   0.022222
+365 858  -1.000000
+366 4   0.031010
+366 859   1.000000
+366 861   0.039363
+366 865  -0.013107
+366 869   0.004754
+366 871  -1.000000
+367 4   0.031010
+367 860   1.000000
+367 862   0.039363
+367 866  -0.013107
+367 870   0.004754
+367 872  -1.000000
+368 4   0.128990
+368 861   0.078885
+368 863   1.000000
+368 865   0.058415
+368 869  -0.008310
+368 871  -1.000000
+369 4   0.128990
+369 862   0.078885
+369 864   1.000000
+369 866   0.058415
+369 870  -0.008310
+369 872  -1.000000
+370 4   0.200000
+370 861   0.075281
+370 865   0.102497
+370 867   1.000000
+370 869   0.022222
+370 871  -1.000000
+371 4   0.200000
+371 862   0.075281
+371 866   0.102497
+371 868   1.000000
+371 870   0.022222
+371 872  -1.000000
+372 4   0.031010
+372 873   1.000000
+372 875   0.039363
+372 879  -0.013107
+372 883   0.004754
+372 885  -1.000000
+373 4   0.031010
+373 874   1.000000
+373 876   0.039363
+373 880  -0.013107
+373 884   0.004754
+373 886  -1.000000
+374 4   0.128990
+374 875   0.078885
+374 877   1.000000
+374 879   0.058415
+374 883  -0.008310
+374 885  -1.000000
+375 4   0.128990
+375 876   0.078885
+375 878   1.000000
+375 880   0.058415
+375 884  -0.008310
+375 886  -1.000000
+376 4   0.200000
+376 875   0.075281
+376 879   0.102497
+376 881   1.000000
+376 883   0.022222
+376 885  -1.000000
+377 4   0.200000
+377 876   0.075281
+377 880   0.102497
+377 882   1.000000
+377 884   0.022222
+377 886  -1.000000
+378 4   0.031010
+378 887   1.000000
+378 889   0.039363
+378 893  -0.013107
+378 897   0.004754
+378 899  -1.000000
+379 4   0.031010
+379 888   1.000000
+379 890   0.039363
+379 894  -0.013107
+379 898   0.004754
+379 900  -1.000000
+380 4   0.128990
+380 889   0.078885
+380 891   1.000000
+380 893   0.058415
+380 897  -0.008310
+380 899  -1.000000
+381 4   0.128990
+381 890   0.078885
+381 892   1.000000
+381 894   0.058415
+381 898  -0.008310
+381 900  -1.000000
+382 4   0.200000
+382 889   0.075281
+382 893   0.102497
+382 895   1.000000
+382 897   0.022222
+382 899  -1.000000
+383 4   0.200000
+383 890   0.075281
+383 894   0.102497
+383 896   1.000000
+383 898   0.022222
+383 900  -1.000000
+384 4   0.031010
+384 901   1.000000
+384 903   0.039363
+384 907  -0.013107
+384 911   0.004754
+384 913  -1.000000
+385 4   0.031010
+385 902   1.000000
+385 904   0.039363
+385 908  -0.013107
+385 912   0.004754
+385 914  -1.000000
+386 4   0.128990
+386 903   0.078885
+386 905   1.000000
+386 907   0.058415
+386 911  -0.008310
+386 913  -1.000000
+387 4   0.128990
+387 904   0.078885
+387 906   1.000000
+387 908   0.058415
+387 912  -0.008310
+387 914  -1.000000
+388 4   0.200000
+388 903   0.075281
+388 907   0.102497
+388 909   1.000000
+388 911   0.022222
+388 913  -1.000000
+389 4   0.200000
+389 904   0.075281
+389 908   0.102497
+389 910   1.000000
+389 912   0.022222
+389 914  -1.000000
+390 4   0.031010
+390 915   1.000000
+390 917   0.039363
+390 921  -0.013107
+390 925   0.004754
+390 927  -1.000000
+391 4   0.031010
+391 916   1.000000
+391 918   0.039363
+391 922  -0.013107
+391 926   0.004754
+391 928  -1.000000
+392 4   0.128990
+392 917   0.078885
+392 919   1.000000
+392 921   0.058415
+392 925  -0.008310
+392 927  -1.000000
+393 4   0.128990
+393 918   0.078885
+393 920   1.000000
+393 922   0.058415
+393 926  -0.008310
+393 928  -1.000000
+394 4   0.200000
+394 917   0.075281
+394 921   0.102497
+394 923   1.000000
+394 925   0.022222
+394 927  -1.000000
+395 4   0.200000
+395 918   0.075281
+395 922   0.102497
+395 924   1.000000
+395 926   0.022222
+395 928  -1.000000
+396 4   0.031010
+396 929   1.000000
+396 931   0.039363
+396 935  -0.013107
+396 939   0.004754
+396 941  -1.000000
+397 4   0.031010
+397 930   1.000000
+397 932   0.039363
+397 936  -0.013107
+397 940   0.004754
+397 942  -1.000000
+398 4   0.128990
+398 931   0.078885
+398 933   1.000000
+398 935   0.058415
+398 939  -0.008310
+398 941  -1.000000
+399 4   0.128990
+399 932   0.078885
+399 934   1.000000
+399 936   0.058415
+399 940  -0.008310
+399 942  -1.000000
+400 4   0.200000
+400 931   0.075281
+400 935   0.102497
+400 937   1.000000
+400 939   0.022222
+400 941  -1.000000
+401 4   0.200000
+401 932   0.075281
+401 936   0.102497
+401 938   1.000000
+401 940   0.022222
+401 942  -1.000000
+402 4   0.031010
+402 943   1.000000
+402 945   0.039363
+402 949  -0.013107
+402 953   0.004754
+402 955  -1.000000
+403 4   0.031010
+403 944   1.000000
+403 946   0.039363
+403 950  -0.013107
+403 954   0.004754
+403 956  -1.000000
+404 4   0.128990
+404 945   0.078885
+404 947   1.000000
+404 949   0.058415
+404 953  -0.008310
+404 955  -1.000000
+405 4   0.128990
+405 946   0.078885
+405 948   1.000000
+405 950   0.058415
+405 954  -0.008310
+405 956  -1.000000
+406 4   0.200000
+406 945   0.075281
+406 949   0.102497
+406 951   1.000000
+406 953   0.022222
+406 955  -1.000000
+407 4   0.200000
+407 946   0.075281
+407 950   0.102497
+407 952   1.000000
+407 954   0.022222
+407 956  -1.000000
+408 4   0.031010
+408 957   1.000000
+408 959   0.039363
+408 963  -0.013107
+408 967   0.004754
+408 969  -1.000000
+409 4   0.031010
+409 958   1.000000
+409 960   0.039363
+409 964  -0.013107
+409 968   0.004754
+409 970  -1.000000
+410 4   0.128990
+410 959   0.078885
+410 961   1.000000
+410 963   0.058415
+410 967  -0.008310
+410 969  -1.000000
+411 4   0.128990
+411 960   0.078885
+411 962   1.000000
+411 964   0.058415
+411 968  -0.008310
+411 970  -1.000000
+412 4   0.200000
+412 959   0.075281
+412 963   0.102497
+412 965   1.000000
+412 967   0.022222
+412 969  -1.000000
+413 4   0.200000
+413 960   0.075281
+413 964   0.102497
+413 966   1.000000
+413 968   0.022222
+413 970  -1.000000
+414 4   0.031010
+414 971   1.000000
+414 973   0.039363
+414 977  -0.013107
+414 981   0.004754
+414 983  -1.000000
+415 4   0.031010
+415 972   1.000000
+415 974   0.039363
+415 978  -0.013107
+415 982   0.004754
+415 984  -1.000000
+416 4   0.128990
+416 973   0.078885
+416 975   1.000000
+416 977   0.058415
+416 981  -0.008310
+416 983  -1.000000
+417 4   0.128990
+417 974   0.078885
+417 976   1.000000
+417 978   0.058415
+417 982  -0.008310
+417 984  -1.000000
+418 4   0.200000
+418 973   0.075281
+418 977   0.102497
+418 979   1.000000
+418 981   0.022222
+418 983  -1.000000
+419 4   0.200000
+419 974   0.075281
+419 978   0.102497
+419 980   1.000000
+419 982   0.022222
+419 984  -1.000000
+420 4   0.031010
+420 985   1.000000
+420 987   0.039363
+420 991  -0.013107
+420 995   0.004754
+420 997  -1.000000
+421 4   0.031010
+421 986   1.000000
+421 988   0.039363
+421 992  -0.013107
+421 996   0.004754
+421 998  -1.000000
+422 4   0.128990
+422 987   0.078885
+422 989   1.000000
+422 991   0.058415
+422 995  -0.008310
+422 997  -1.000000
+423 4   0.128990
+423 988   0.078885
+423 990   1.000000
+423 992   0.058415
+423 996  -0.008310
+423 998  -1.000000
+424 4   0.200000
+424 987   0.075281
+424 991   0.102497
+424 993   1.000000
+424 995   0.022222
+424 997  -1.000000
+425 4   0.200000
+425 988   0.075281
+425 992   0.102497
+425 994   1.000000
+425 996   0.022222
+425 998  -1.000000
+426 4   0.031010
+426 999   1.000000
+426 1001   0.039363
+426 1005  -0.013107
+426 1009   0.004754
+426 1011  -1.000000
+427 4   0.031010
+427 1000   1.000000
+427 1002   0.039363
+427 1006  -0.013107
+427 1010   0.004754
+427 1012  -1.000000
+428 4   0.128990
+428 1001   0.078885
+428 1003   1.000000
+428 1005   0.058415
+428 1009  -0.008310
+428 1011  -1.000000
+429 4   0.128990
+429 1002   0.078885
+429 1004   1.000000
+429 1006   0.058415
+429 1010  -0.008310
+429 1012  -1.000000
+430 4   0.200000
+430 1001   0.075281
+430 1005   0.102497
+430 1007   1.000000
+430 1009   0.022222
+430 1011  -1.000000
+431 4   0.200000
+431 1002   0.075281
+431 1006   0.102497
+431 1008   1.000000
+431 1010   0.022222
+431 1012  -1.000000
+432 4   0.031010
+432 1013   1.000000
+432 1015   0.039363
+432 1019  -0.013107
+432 1023   0.004754
+432 1025  -1.000000
+433 4   0.031010
+433 1014   1.000000
+433 1016   0.039363
+433 1020  -0.013107
+433 1024   0.004754
+433 1026  -1.000000
+434 4   0.128990
+434 1015   0.078885
+434 1017   1.000000
+434 1019   0.058415
+434 1023  -0.008310
+434 1025  -1.000000
+435 4   0.128990
+435 1016   0.078885
+435 1018   1.000000
+435 1020   0.058415
+435 1024  -0.008310
+435 1026  -1.000000
+436 4   0.200000
+436 1015   0.075281
+436 1019   0.102497
+436 1021   1.000000
+436 1023   0.022222
+436 1025  -1.000000
+437 4   0.200000
+437 1016   0.075281
+437 1020   0.102497
+437 1022   1.000000
+437 1024   0.022222
+437 1026  -1.000000
+438 4   0.031010
+438 1027   1.000000
+438 1029   0.039363
+438 1033  -0.013107
+438 1037   0.004754
+438 1039  -1.000000
+439 4   0.031010
+439 1028   1.000000
+439 1030   0.039363
+439 1034  -0.013107
+439 1038   0.004754
+439 1040  -1.000000
+440 4   0.128990
+440 1029   0.078885
+440 1031   1.000000
+440 1033   0.058415
+440 1037  -0.008310
+440 1039  -1.000000
+441 4   0.128990
+441 1030   0.078885
+441 1032   1.000000
+441 1034   0.058415
+441 1038  -0.008310
+441 1040  -1.000000
+442 4   0.200000
+442 1029   0.075281
+442 1033   0.102497
+442 1035   1.000000
+442 1037   0.022222
+442 1039  -1.000000
+443 4   0.200000
+443 1030   0.075281
+443 1034   0.102497
+443 1036   1.000000
+443 1038   0.022222
+443 1040  -1.000000
+444 4   0.031010
+444 1041   1.000000
+444 1043   0.039363
+444 1047  -0.013107
+444 1051   0.004754
+444 1053  -1.000000
+445 4   0.031010
+445 1042   1.000000
+445 1044   0.039363
+445 1048  -0.013107
+445 1052   0.004754
+445 1054  -1.000000
+446 4   0.128990
+446 1043   0.078885
+446 1045   1.000000
+446 1047   0.058415
+446 1051  -0.008310
+446 1053  -1.000000
+447 4   0.128990
+447 1044   0.078885
+447 1046   1.000000
+447 1048   0.058415
+447 1052  -0.008310
+447 1054  -1.000000
+448 4   0.200000
+448 1043   0.075281
+448 1047   0.102497
+448 1049   1.000000
+448 1051   0.022222
+448 1053  -1.000000
+449 4   0.200000
+449 1044   0.075281
+449 1048   0.102497
+449 1050   1.000000
+449 1052   0.022222
+449 1054  -1.000000
+450 4   0.031010
+450 1055   1.000000
+450 1057   0.039363
+450 1061  -0.013107
+450 1065   0.004754
+450 1067  -1.000000
+451 4   0.031010
+451 1056   1.000000
+451 1058   0.039363
+451 1062  -0.013107
+451 1066   0.004754
+451 1068  -1.000000
+452 4   0.128990
+452 1057   0.078885
+452 1059   1.000000
+452 1061   0.058415
+452 1065  -0.008310
+452 1067  -1.000000
+453 4   0.128990
+453 1058   0.078885
+453 1060   1.000000
+453 1062   0.058415
+453 1066  -0.008310
+453 1068  -1.000000
+454 4   0.200000
+454 1057   0.075281
+454 1061   0.102497
+454 1063   1.000000
+454 1065   0.022222
+454 1067  -1.000000
+455 4   0.200000
+455 1058   0.075281
+455 1062   0.102497
+455 1064   1.000000
+455 1066   0.022222
+455 1068  -1.000000
+456 4   0.031010
+456 1069   1.000000
+456 1071   0.039363
+456 1075  -0.013107
+456 1079   0.004754
+456 1081  -1.000000
+457 4   0.031010
+457 1070   1.000000
+457 1072   0.039363
+457 1076  -0.013107
+457 1080   0.004754
+457 1082  -1.000000
+458 4   0.128990
+458 1071   0.078885
+458 1073   1.000000
+458 1075   0.058415
+458 1079  -0.008310
+458 1081  -1.000000
+459 4   0.128990
+459 1072   0.078885
+459 1074   1.000000
+459 1076   0.058415
+459 1080  -0.008310
+459 1082  -1.000000
+460 4   0.200000
+460 1071   0.075281
+460 1075   0.102497
+460 1077   1.000000
+460 1079   0.022222
+460 1081  -1.000000
+461 4   0.200000
+461 1072   0.075281
+461 1076   0.102497
+461 1078   1.000000
+461 1080   0.022222
+461 1082  -1.000000
+462 4   0.031010
+462 1083   1.000000
+462 1085   0.039363
+462 1089  -0.013107
+462 1093   0.004754
+462 1095  -1.000000
+463 4   0.031010
+463 1084   1.000000
+463 1086   0.039363
+463 1090  -0.013107
+463 1094   0.004754
+463 1096  -1.000000
+464 4   0.128990
+464 1085   0.078885
+464 1087   1.000000
+464 1089   0.058415
+464 1093  -0.008310
+464 1095  -1.000000
+465 4   0.128990
+465 1086   0.078885
+465 1088   1.000000
+465 1090   0.058415
+465 1094  -0.008310
+465 1096  -1.000000
+466 4   0.200000
+466 1085   0.075281
+466 1089   0.102497
+466 1091   1.000000
+466 1093   0.022222
+466 1095  -1.000000
+467 4   0.200000
+467 1086   0.075281
+467 1090   0.102497
+467 1092   1.000000
+467 1094   0.022222
+467 1096  -1.000000
+468 4   0.031010
+468 1097   1.000000
+468 1099   0.039363
+468 1103  -0.013107
+468 1107   0.004754
+468 1109  -1.000000
+469 4   0.031010
+469 1098   1.000000
+469 1100   0.039363
+469 1104  -0.013107
+469 1108   0.004754
+469 1110  -1.000000
+470 4   0.128990
+470 1099   0.078885
+470 1101   1.000000
+470 1103   0.058415
+470 1107  -0.008310
+470 1109  -1.000000
+471 4   0.128990
+471 1100   0.078885
+471 1102   1.000000
+471 1104   0.058415
+471 1108  -0.008310
+471 1110  -1.000000
+472 4   0.200000
+472 1099   0.075281
+472 1103   0.102497
+472 1105   1.000000
+472 1107   0.022222
+472 1109  -1.000000
+473 4   0.200000
+473 1100   0.075281
+473 1104   0.102497
+473 1106   1.000000
+473 1108   0.022222
+473 1110  -1.000000
+474 4   0.031010
+474 1111   1.000000
+474 1113   0.039363
+474 1117  -0.013107
+474 1121   0.004754
+474 1123  -1.000000
+475 4   0.031010
+475 1112   1.000000
+475 1114   0.039363
+475 1118  -0.013107
+475 1122   0.004754
+475 1124  -1.000000
+476 4   0.128990
+476 1113   0.078885
+476 1115   1.000000
+476 1117   0.058415
+476 1121  -0.008310
+476 1123  -1.000000
+477 4   0.128990
+477 1114   0.078885
+477 1116   1.000000
+477 1118   0.058415
+477 1122  -0.008310
+477 1124  -1.000000
+478 4   0.200000
+478 1113   0.075281
+478 1117   0.102497
+478 1119   1.000000
+478 1121   0.022222
+478 1123  -1.000000
+479 4   0.200000
+479 1114   0.075281
+479 1118   0.102497
+479 1120   1.000000
+479 1122   0.022222
+479 1124  -1.000000
+480 4   0.031010
+480 1125   1.000000
+480 1127   0.039363
+480 1131  -0.013107
+480 1135   0.004754
+480 1137  -1.000000
+481 4   0.031010
+481 1126   1.000000
+481 1128   0.039363
+481 1132  -0.013107
+481 1136   0.004754
+481 1138  -1.000000
+482 4   0.128990
+482 1127   0.078885
+482 1129   1.000000
+482 1131   0.058415
+482 1135  -0.008310
+482 1137  -1.000000
+483 4   0.128990
+483 1128   0.078885
+483 1130   1.000000
+483 1132   0.058415
+483 1136  -0.008310
+483 1138  -1.000000
+484 4   0.200000
+484 1127   0.075281
+484 1131   0.102497
+484 1133   1.000000
+484 1135   0.022222
+484 1137  -1.000000
+485 4   0.200000
+485 1128   0.075281
+485 1132   0.102497
+485 1134   1.000000
+485 1136   0.022222
+485 1138  -1.000000
+486 4   0.031010
+486 1139   1.000000
+486 1141   0.039363
+486 1145  -0.013107
+486 1149   0.004754
+486 1151  -1.000000
+487 4   0.031010
+487 1140   1.000000
+487 1142   0.039363
+487 1146  -0.013107
+487 1150   0.004754
+487 1152  -1.000000
+488 4   0.128990
+488 1141   0.078885
+488 1143   1.000000
+488 1145   0.058415
+488 1149  -0.008310
+488 1151  -1.000000
+489 4   0.128990
+489 1142   0.078885
+489 1144   1.000000
+489 1146   0.058415
+489 1150  -0.008310
+489 1152  -1.000000
+490 4   0.200000
+490 1141   0.075281
+490 1145   0.102497
+490 1147   1.000000
+490 1149   0.022222
+490 1151  -1.000000
+491 4   0.200000
+491 1142   0.075281
+491 1146   0.102497
+491 1148   1.000000
+491 1150   0.022222
+491 1152  -1.000000
+492 4   0.031010
+492 1153   1.000000
+492 1155   0.039363
+492 1159  -0.013107
+492 1163   0.004754
+492 1165  -1.000000
+493 4   0.031010
+493 1154   1.000000
+493 1156   0.039363
+493 1160  -0.013107
+493 1164   0.004754
+493 1166  -1.000000
+494 4   0.128990
+494 1155   0.078885
+494 1157   1.000000
+494 1159   0.058415
+494 1163  -0.008310
+494 1165  -1.000000
+495 4   0.128990
+495 1156   0.078885
+495 1158   1.000000
+495 1160   0.058415
+495 1164  -0.008310
+495 1166  -1.000000
+496 4   0.200000
+496 1155   0.075281
+496 1159   0.102497
+496 1161   1.000000
+496 1163   0.022222
+496 1165  -1.000000
+497 4   0.200000
+497 1156   0.075281
+497 1160   0.102497
+497 1162   1.000000
+497 1164   0.022222
+497 1166  -1.000000
+498 4   0.031010
+498 1167   1.000000
+498 1169   0.039363
+498 1173  -0.013107
+498 1177   0.004754
+498 1179  -1.000000
+499 4   0.031010
+499 1168   1.000000
+499 1170   0.039363
+499 1174  -0.013107
+499 1178   0.004754
+499 1180  -1.000000
+500 4   0.128990
+500 1169   0.078885
+500 1171   1.000000
+500 1173   0.058415
+500 1177  -0.008310
+500 1179  -1.000000
+501 4   0.128990
+501 1170   0.078885
+501 1172   1.000000
+501 1174   0.058415
+501 1178  -0.008310
+501 1180  -1.000000
+502 4   0.200000
+502 1169   0.075281
+502 1173   0.102497
+502 1175   1.000000
+502 1177   0.022222
+502 1179  -1.000000
+503 4   0.200000
+503 1170   0.075281
+503 1174   0.102497
+503 1176   1.000000
+503 1178   0.022222
+503 1180  -1.000000
+504 4   0.031010
+504 1181   1.000000
+504 1183   0.039363
+504 1187  -0.013107
+504 1191   0.004754
+504 1193  -1.000000
+505 4   0.031010
+505 1182   1.000000
+505 1184   0.039363
+505 1188  -0.013107
+505 1192   0.004754
+505 1194  -1.000000
+506 4   0.128990
+506 1183   0.078885
+506 1185   1.000000
+506 1187   0.058415
+506 1191  -0.008310
+506 1193  -1.000000
+507 4   0.128990
+507 1184   0.078885
+507 1186   1.000000
+507 1188   0.058415
+507 1192  -0.008310
+507 1194  -1.000000
+508 4   0.200000
+508 1183   0.075281
+508 1187   0.102497
+508 1189   1.000000
+508 1191   0.022222
+508 1193  -1.000000
+509 4   0.200000
+509 1184   0.075281
+509 1188   0.102497
+509 1190   1.000000
+509 1192   0.022222
+509 1194  -1.000000
+510 4   0.031010
+510 1195   1.000000
+510 1197   0.039363
+510 1201  -0.013107
+510 1205   0.004754
+510 1207  -1.000000
+511 4   0.031010
+511 1196   1.000000
+511 1198   0.039363
+511 1202  -0.013107
+511 1206   0.004754
+511 1208  -1.000000
+512 4   0.128990
+512 1197   0.078885
+512 1199   1.000000
+512 1201   0.058415
+512 1205  -0.008310
+512 1207  -1.000000
+513 4   0.128990
+513 1198   0.078885
+513 1200   1.000000
+513 1202   0.058415
+513 1206  -0.008310
+513 1208  -1.000000
+514 4   0.200000
+514 1197   0.075281
+514 1201   0.102497
+514 1203   1.000000
+514 1205   0.022222
+514 1207  -1.000000
+515 4   0.200000
+515 1198   0.075281
+515 1202   0.102497
+515 1204   1.000000
+515 1206   0.022222
+515 1208  -1.000000
+516 4   0.031010
+516 1209   1.000000
+516 1211   0.039363
+516 1215  -0.013107
+516 1219   0.004754
+516 1221  -1.000000
+517 4   0.031010
+517 1210   1.000000
+517 1212   0.039363
+517 1216  -0.013107
+517 1220   0.004754
+517 1222  -1.000000
+518 4   0.128990
+518 1211   0.078885
+518 1213   1.000000
+518 1215   0.058415
+518 1219  -0.008310
+518 1221  -1.000000
+519 4   0.128990
+519 1212   0.078885
+519 1214   1.000000
+519 1216   0.058415
+519 1220  -0.008310
+519 1222  -1.000000
+520 4   0.200000
+520 1211   0.075281
+520 1215   0.102497
+520 1217   1.000000
+520 1219   0.022222
+520 1221  -1.000000
+521 4   0.200000
+521 1212   0.075281
+521 1216   0.102497
+521 1218   1.000000
+521 1220   0.022222
+521 1222  -1.000000
+522 4   0.031010
+522 1223   1.000000
+522 1225   0.039363
+522 1229  -0.013107
+522 1233   0.004754
+522 1235  -1.000000
+523 4   0.031010
+523 1224   1.000000
+523 1226   0.039363
+523 1230  -0.013107
+523 1234   0.004754
+523 1236  -1.000000
+524 4   0.128990
+524 1225   0.078885
+524 1227   1.000000
+524 1229   0.058415
+524 1233  -0.008310
+524 1235  -1.000000
+525 4   0.128990
+525 1226   0.078885
+525 1228   1.000000
+525 1230   0.058415
+525 1234  -0.008310
+525 1236  -1.000000
+526 4   0.200000
+526 1225   0.075281
+526 1229   0.102497
+526 1231   1.000000
+526 1233   0.022222
+526 1235  -1.000000
+527 4   0.200000
+527 1226   0.075281
+527 1230   0.102497
+527 1232   1.000000
+527 1234   0.022222
+527 1236  -1.000000
+528 4   0.031010
+528 1237   1.000000
+528 1239   0.039363
+528 1243  -0.013107
+528 1247   0.004754
+528 1249  -1.000000
+529 4   0.031010
+529 1238   1.000000
+529 1240   0.039363
+529 1244  -0.013107
+529 1248   0.004754
+529 1250  -1.000000
+530 4   0.128990
+530 1239   0.078885
+530 1241   1.000000
+530 1243   0.058415
+530 1247  -0.008310
+530 1249  -1.000000
+531 4   0.128990
+531 1240   0.078885
+531 1242   1.000000
+531 1244   0.058415
+531 1248  -0.008310
+531 1250  -1.000000
+532 4   0.200000
+532 1239   0.075281
+532 1243   0.102497
+532 1245   1.000000
+532 1247   0.022222
+532 1249  -1.000000
+533 4   0.200000
+533 1240   0.075281
+533 1244   0.102497
+533 1246   1.000000
+533 1248   0.022222
+533 1250  -1.000000
+534 4   0.031010
+534 1251   1.000000
+534 1253   0.039363
+534 1257  -0.013107
+534 1261   0.004754
+534 1263  -1.000000
+535 4   0.031010
+535 1252   1.000000
+535 1254   0.039363
+535 1258  -0.013107
+535 1262   0.004754
+535 1264  -1.000000
+536 4   0.128990
+536 1253   0.078885
+536 1255   1.000000
+536 1257   0.058415
+536 1261  -0.008310
+536 1263  -1.000000
+537 4   0.128990
+537 1254   0.078885
+537 1256   1.000000
+537 1258   0.058415
+537 1262  -0.008310
+537 1264  -1.000000
+538 4   0.200000
+538 1253   0.075281
+538 1257   0.102497
+538 1259   1.000000
+538 1261   0.022222
+538 1263  -1.000000
+539 4   0.200000
+539 1254   0.075281
+539 1258   0.102497
+539 1260   1.000000
+539 1262   0.022222
+539 1264  -1.000000
+540 4   0.031010
+540 1265   1.000000
+540 1267   0.039363
+540 1271  -0.013107
+540 1275   0.004754
+540 1277  -1.000000
+541 4   0.031010
+541 1266   1.000000
+541 1268   0.039363
+541 1272  -0.013107
+541 1276   0.004754
+541 1278  -1.000000
+542 4   0.128990
+542 1267   0.078885
+542 1269   1.000000
+542 1271   0.058415
+542 1275  -0.008310
+542 1277  -1.000000
+543 4   0.128990
+543 1268   0.078885
+543 1270   1.000000
+543 1272   0.058415
+543 1276  -0.008310
+543 1278  -1.000000
+544 4   0.200000
+544 1267   0.075281
+544 1271   0.102497
+544 1273   1.000000
+544 1275   0.022222
+544 1277  -1.000000
+545 4   0.200000
+545 1268   0.075281
+545 1272   0.102497
+545 1274   1.000000
+545 1276   0.022222
+545 1278  -1.000000
+546 4   0.031010
+546 1279   1.000000
+546 1281   0.039363
+546 1285  -0.013107
+546 1289   0.004754
+546 1291  -1.000000
+547 4   0.031010
+547 1280   1.000000
+547 1282   0.039363
+547 1286  -0.013107
+547 1290   0.004754
+547 1292  -1.000000
+548 4   0.128990
+548 1281   0.078885
+548 1283   1.000000
+548 1285   0.058415
+548 1289  -0.008310
+548 1291  -1.000000
+549 4   0.128990
+549 1282   0.078885
+549 1284   1.000000
+549 1286   0.058415
+549 1290  -0.008310
+549 1292  -1.000000
+550 4   0.200000
+550 1281   0.075281
+550 1285   0.102497
+550 1287   1.000000
+550 1289   0.022222
+550 1291  -1.000000
+551 4   0.200000
+551 1282   0.075281
+551 1286   0.102497
+551 1288   1.000000
+551 1290   0.022222
+551 1292  -1.000000
+552 4   0.031010
+552 1293   1.000000
+552 1295   0.039363
+552 1299  -0.013107
+552 1303   0.004754
+552 1305  -1.000000
+553 4   0.031010
+553 1294   1.000000
+553 1296   0.039363
+553 1300  -0.013107
+553 1304   0.004754
+553 1306  -1.000000
+554 4   0.128990
+554 1295   0.078885
+554 1297   1.000000
+554 1299   0.058415
+554 1303  -0.008310
+554 1305  -1.000000
+555 4   0.128990
+555 1296   0.078885
+555 1298   1.000000
+555 1300   0.058415
+555 1304  -0.008310
+555 1306  -1.000000
+556 4   0.200000
+556 1295   0.075281
+556 1299   0.102497
+556 1301   1.000000
+556 1303   0.022222
+556 1305  -1.000000
+557 4   0.200000
+557 1296   0.075281
+557 1300   0.102497
+557 1302   1.000000
+557 1304   0.022222
+557 1306  -1.000000
+558 4   0.031010
+558 1307   1.000000
+558 1309   0.039363
+558 1313  -0.013107
+558 1317   0.004754
+558 1319  -1.000000
+559 4   0.031010
+559 1308   1.000000
+559 1310   0.039363
+559 1314  -0.013107
+559 1318   0.004754
+559 1320  -1.000000
+560 4   0.128990
+560 1309   0.078885
+560 1311   1.000000
+560 1313   0.058415
+560 1317  -0.008310
+560 1319  -1.000000
+561 4   0.128990
+561 1310   0.078885
+561 1312   1.000000
+561 1314   0.058415
+561 1318  -0.008310
+561 1320  -1.000000
+562 4   0.200000
+562 1309   0.075281
+562 1313   0.102497
+562 1315   1.000000
+562 1317   0.022222
+562 1319  -1.000000
+563 4   0.200000
+563 1310   0.075281
+563 1314   0.102497
+563 1316   1.000000
+563 1318   0.022222
+563 1320  -1.000000
+564 4   0.031010
+564 1321   1.000000
+564 1323   0.039363
+564 1327  -0.013107
+564 1331   0.004754
+564 1333  -1.000000
+565 4   0.031010
+565 1322   1.000000
+565 1324   0.039363
+565 1328  -0.013107
+565 1332   0.004754
+565 1334  -1.000000
+566 4   0.128990
+566 1323   0.078885
+566 1325   1.000000
+566 1327   0.058415
+566 1331  -0.008310
+566 1333  -1.000000
+567 4   0.128990
+567 1324   0.078885
+567 1326   1.000000
+567 1328   0.058415
+567 1332  -0.008310
+567 1334  -1.000000
+568 4   0.200000
+568 1323   0.075281
+568 1327   0.102497
+568 1329   1.000000
+568 1331   0.022222
+568 1333  -1.000000
+569 4   0.200000
+569 1324   0.075281
+569 1328   0.102497
+569 1330   1.000000
+569 1332   0.022222
+569 1334  -1.000000
+570 4   0.031010
+570 1335   1.000000
+570 1337   0.039363
+570 1341  -0.013107
+570 1345   0.004754
+570 1347  -1.000000
+571 4   0.031010
+571 1336   1.000000
+571 1338   0.039363
+571 1342  -0.013107
+571 1346   0.004754
+571 1348  -1.000000
+572 4   0.128990
+572 1337   0.078885
+572 1339   1.000000
+572 1341   0.058415
+572 1345  -0.008310
+572 1347  -1.000000
+573 4   0.128990
+573 1338   0.078885
+573 1340   1.000000
+573 1342   0.058415
+573 1346  -0.008310
+573 1348  -1.000000
+574 4   0.200000
+574 1337   0.075281
+574 1341   0.102497
+574 1343   1.000000
+574 1345   0.022222
+574 1347  -1.000000
+575 4   0.200000
+575 1338   0.075281
+575 1342   0.102497
+575 1344   1.000000
+575 1346   0.022222
+575 1348  -1.000000
+576 4   0.031010
+576 1349   1.000000
+576 1351   0.039363
+576 1355  -0.013107
+576 1359   0.004754
+576 1361  -1.000000
+577 4   0.031010
+577 1350   1.000000
+577 1352   0.039363
+577 1356  -0.013107
+577 1360   0.004754
+577 1362  -1.000000
+578 4   0.128990
+578 1351   0.078885
+578 1353   1.000000
+578 1355   0.058415
+578 1359  -0.008310
+578 1361  -1.000000
+579 4   0.128990
+579 1352   0.078885
+579 1354   1.000000
+579 1356   0.058415
+579 1360  -0.008310
+579 1362  -1.000000
+580 4   0.200000
+580 1351   0.075281
+580 1355   0.102497
+580 1357   1.000000
+580 1359   0.022222
+580 1361  -1.000000
+581 4   0.200000
+581 1352   0.075281
+581 1356   0.102497
+581 1358   1.000000
+581 1360   0.022222
+581 1362  -1.000000
+582 4   0.031010
+582 1363   1.000000
+582 1365   0.039363
+582 1369  -0.013107
+582 1373   0.004754
+582 1375  -1.000000
+583 4   0.031010
+583 1364   1.000000
+583 1366   0.039363
+583 1370  -0.013107
+583 1374   0.004754
+583 1376  -1.000000
+584 4   0.128990
+584 1365   0.078885
+584 1367   1.000000
+584 1369   0.058415
+584 1373  -0.008310
+584 1375  -1.000000
+585 4   0.128990
+585 1366   0.078885
+585 1368   1.000000
+585 1370   0.058415
+585 1374  -0.008310
+585 1376  -1.000000
+586 4   0.200000
+586 1365   0.075281
+586 1369   0.102497
+586 1371   1.000000
+586 1373   0.022222
+586 1375  -1.000000
+587 4   0.200000
+587 1366   0.075281
+587 1370   0.102497
+587 1372   1.000000
+587 1374   0.022222
+587 1376  -1.000000
+588 4   0.031010
+588 1377   1.000000
+588 1379   0.039363
+588 1383  -0.013107
+588 1387   0.004754
+588 1389  -1.000000
+589 4   0.031010
+589 1378   1.000000
+589 1380   0.039363
+589 1384  -0.013107
+589 1388   0.004754
+589 1390  -1.000000
+590 4   0.128990
+590 1379   0.078885
+590 1381   1.000000
+590 1383   0.058415
+590 1387  -0.008310
+590 1389  -1.000000
+591 4   0.128990
+591 1380   0.078885
+591 1382   1.000000
+591 1384   0.058415
+591 1388  -0.008310
+591 1390  -1.000000
+592 4   0.200000
+592 1379   0.075281
+592 1383   0.102497
+592 1385   1.000000
+592 1387   0.022222
+592 1389  -1.000000
+593 4   0.200000
+593 1380   0.075281
+593 1384   0.102497
+593 1386   1.000000
+593 1388   0.022222
+593 1390  -1.000000
+594 4   0.031010
+594 1391   1.000000
+594 1393   0.039363
+594 1397  -0.013107
+594 1401   0.004754
+594 1403  -1.000000
+595 4   0.031010
+595 1392   1.000000
+595 1394   0.039363
+595 1398  -0.013107
+595 1402   0.004754
+595 1404  -1.000000
+596 4   0.128990
+596 1393   0.078885
+596 1395   1.000000
+596 1397   0.058415
+596 1401  -0.008310
+596 1403  -1.000000
+597 4   0.128990
+597 1394   0.078885
+597 1396   1.000000
+597 1398   0.058415
+597 1402  -0.008310
+597 1404  -1.000000
+598 4   0.200000
+598 1393   0.075281
+598 1397   0.102497
+598 1399   1.000000
+598 1401   0.022222
+598 1403  -1.000000
+599 4   0.200000
+599 1394   0.075281
+599 1398   0.102497
+599 1400   1.000000
+599 1402   0.022222
+599 1404  -1.000000
+600 4   0.031010
+600 1405   1.000000
+600 1407   0.039363
+600 1411  -0.013107
+600 1415   0.004754
+600 1417  -1.000000
+601 4   0.031010
+601 1406   1.000000
+601 1408   0.039363
+601 1412  -0.013107
+601 1416   0.004754
+601 1418  -1.000000
+602 4   0.128990
+602 1407   0.078885
+602 1409   1.000000
+602 1411   0.058415
+602 1415  -0.008310
+602 1417  -1.000000
+603 4   0.128990
+603 1408   0.078885
+603 1410   1.000000
+603 1412   0.058415
+603 1416  -0.008310
+603 1418  -1.000000
+604 4   0.200000
+604 1407   0.075281
+604 1411   0.102497
+604 1413   1.000000
+604 1415   0.022222
+604 1417  -1.000000
+605 4   0.200000
+605 1408   0.075281
+605 1412   0.102497
+605 1414   1.000000
+605 1416   0.022222
+605 1418  -1.000000
+606 4   0.031010
+606 1419   1.000000
+606 1421   0.039363
+606 1425  -0.013107
+606 1429   0.004754
+606 1431  -1.000000
+607 4   0.031010
+607 1420   1.000000
+607 1422   0.039363
+607 1426  -0.013107
+607 1430   0.004754
+607 1432  -1.000000
+608 4   0.128990
+608 1421   0.078885
+608 1423   1.000000
+608 1425   0.058415
+608 1429  -0.008310
+608 1431  -1.000000
+609 4   0.128990
+609 1422   0.078885
+609 1424   1.000000
+609 1426   0.058415
+609 1430  -0.008310
+609 1432  -1.000000
+610 4   0.200000
+610 1421   0.075281
+610 1425   0.102497
+610 1427   1.000000
+610 1429   0.022222
+610 1431  -1.000000
+611 4   0.200000
+611 1422   0.075281
+611 1426   0.102497
+611 1428   1.000000
+611 1430   0.022222
+611 1432  -1.000000
+612 4   0.031010
+612 1433   1.000000
+612 1435   0.039363
+612 1439  -0.013107
+612 1443   0.004754
+612 1445  -1.000000
+613 4   0.031010
+613 1434   1.000000
+613 1436   0.039363
+613 1440  -0.013107
+613 1444   0.004754
+613 1446  -1.000000
+614 4   0.128990
+614 1435   0.078885
+614 1437   1.000000
+614 1439   0.058415
+614 1443  -0.008310
+614 1445  -1.000000
+615 4   0.128990
+615 1436   0.078885
+615 1438   1.000000
+615 1440   0.058415
+615 1444  -0.008310
+615 1446  -1.000000
+616 4   0.200000
+616 1435   0.075281
+616 1439   0.102497
+616 1441   1.000000
+616 1443   0.022222
+616 1445  -1.000000
+617 4   0.200000
+617 1436   0.075281
+617 1440   0.102497
+617 1442   1.000000
+617 1444   0.022222
+617 1446  -1.000000
+618 4   0.031010
+618 1447   1.000000
+618 1449   0.039363
+618 1453  -0.013107
+618 1457   0.004754
+618 1459  -1.000000
+619 4   0.031010
+619 1448   1.000000
+619 1450   0.039363
+619 1454  -0.013107
+619 1458   0.004754
+619 1460  -1.000000
+620 4   0.128990
+620 1449   0.078885
+620 1451   1.000000
+620 1453   0.058415
+620 1457  -0.008310
+620 1459  -1.000000
+621 4   0.128990
+621 1450   0.078885
+621 1452   1.000000
+621 1454   0.058415
+621 1458  -0.008310
+621 1460  -1.000000
+622 4   0.200000
+622 1449   0.075281
+622 1453   0.102497
+622 1455   1.000000
+622 1457   0.022222
+622 1459  -1.000000
+623 4   0.200000
+623 1450   0.075281
+623 1454   0.102497
+623 1456   1.000000
+623 1458   0.022222
+623 1460  -1.000000
+624 4   0.031010
+624 1461   1.000000
+624 1463   0.039363
+624 1467  -0.013107
+624 1471   0.004754
+624 1473  -1.000000
+625 4   0.031010
+625 1462   1.000000
+625 1464   0.039363
+625 1468  -0.013107
+625 1472   0.004754
+625 1474  -1.000000
+626 4   0.128990
+626 1463   0.078885
+626 1465   1.000000
+626 1467   0.058415
+626 1471  -0.008310
+626 1473  -1.000000
+627 4   0.128990
+627 1464   0.078885
+627 1466   1.000000
+627 1468   0.058415
+627 1472  -0.008310
+627 1474  -1.000000
+628 4   0.200000
+628 1463   0.075281
+628 1467   0.102497
+628 1469   1.000000
+628 1471   0.022222
+628 1473  -1.000000
+629 4   0.200000
+629 1464   0.075281
+629 1468   0.102497
+629 1470   1.000000
+629 1472   0.022222
+629 1474  -1.000000
+630 4   0.031010
+630 1475   1.000000
+630 1477   0.039363
+630 1481  -0.013107
+630 1485   0.004754
+630 1487  -1.000000
+631 4   0.031010
+631 1476   1.000000
+631 1478   0.039363
+631 1482  -0.013107
+631 1486   0.004754
+631 1488  -1.000000
+632 4   0.128990
+632 1477   0.078885
+632 1479   1.000000
+632 1481   0.058415
+632 1485  -0.008310
+632 1487  -1.000000
+633 4   0.128990
+633 1478   0.078885
+633 1480   1.000000
+633 1482   0.058415
+633 1486  -0.008310
+633 1488  -1.000000
+634 4   0.200000
+634 1477   0.075281
+634 1481   0.102497
+634 1483   1.000000
+634 1485   0.022222
+634 1487  -1.000000
+635 4   0.200000
+635 1478   0.075281
+635 1482   0.102497
+635 1484   1.000000
+635 1486   0.022222
+635 1488  -1.000000
+636 4   0.031010
+636 1489   1.000000
+636 1491   0.039363
+636 1495  -0.013107
+636 1499   0.004754
+636 1501  -1.000000
+637 4   0.031010
+637 1490   1.000000
+637 1492   0.039363
+637 1496  -0.013107
+637 1500   0.004754
+637 1502  -1.000000
+638 4   0.128990
+638 1491   0.078885
+638 1493   1.000000
+638 1495   0.058415
+638 1499  -0.008310
+638 1501  -1.000000
+639 4   0.128990
+639 1492   0.078885
+639 1494   1.000000
+639 1496   0.058415
+639 1500  -0.008310
+639 1502  -1.000000
+640 4   0.200000
+640 1491   0.075281
+640 1495   0.102497
+640 1497   1.000000
+640 1499   0.022222
+640 1501  -1.000000
+641 4   0.200000
+641 1492   0.075281
+641 1496   0.102497
+641 1498   1.000000
+641 1500   0.022222
+641 1502  -1.000000
+642 4   0.031010
+642 1503   1.000000
+642 1505   0.039363
+642 1509  -0.013107
+642 1513   0.004754
+642 1515  -1.000000
+643 4   0.031010
+643 1504   1.000000
+643 1506   0.039363
+643 1510  -0.013107
+643 1514   0.004754
+643 1516  -1.000000
+644 4   0.128990
+644 1505   0.078885
+644 1507   1.000000
+644 1509   0.058415
+644 1513  -0.008310
+644 1515  -1.000000
+645 4   0.128990
+645 1506   0.078885
+645 1508   1.000000
+645 1510   0.058415
+645 1514  -0.008310
+645 1516  -1.000000
+646 4   0.200000
+646 1505   0.075281
+646 1509   0.102497
+646 1511   1.000000
+646 1513   0.022222
+646 1515  -1.000000
+647 4   0.200000
+647 1506   0.075281
+647 1510   0.102497
+647 1512   1.000000
+647 1514   0.022222
+647 1516  -1.000000
+648 4   0.031010
+648 1517   1.000000
+648 1519   0.039363
+648 1523  -0.013107
+648 1527   0.004754
+648 1529  -1.000000
+649 4   0.031010
+649 1518   1.000000
+649 1520   0.039363
+649 1524  -0.013107
+649 1528   0.004754
+649 1530  -1.000000
+650 4   0.128990
+650 1519   0.078885
+650 1521   1.000000
+650 1523   0.058415
+650 1527  -0.008310
+650 1529  -1.000000
+651 4   0.128990
+651 1520   0.078885
+651 1522   1.000000
+651 1524   0.058415
+651 1528  -0.008310
+651 1530  -1.000000
+652 4   0.200000
+652 1519   0.075281
+652 1523   0.102497
+652 1525   1.000000
+652 1527   0.022222
+652 1529  -1.000000
+653 4   0.200000
+653 1520   0.075281
+653 1524   0.102497
+653 1526   1.000000
+653 1528   0.022222
+653 1530  -1.000000
+654 4   0.031010
+654 1531   1.000000
+654 1533   0.039363
+654 1537  -0.013107
+654 1541   0.004754
+654 1543  -1.000000
+655 4   0.031010
+655 1532   1.000000
+655 1534   0.039363
+655 1538  -0.013107
+655 1542   0.004754
+655 1544  -1.000000
+656 4   0.128990
+656 1533   0.078885
+656 1535   1.000000
+656 1537   0.058415
+656 1541  -0.008310
+656 1543  -1.000000
+657 4   0.128990
+657 1534   0.078885
+657 1536   1.000000
+657 1538   0.058415
+657 1542  -0.008310
+657 1544  -1.000000
+658 4   0.200000
+658 1533   0.075281
+658 1537   0.102497
+658 1539   1.000000
+658 1541   0.022222
+658 1543  -1.000000
+659 4   0.200000
+659 1534   0.075281
+659 1538   0.102497
+659 1540   1.000000
+659 1542   0.022222
+659 1544  -1.000000
+660 4   0.031010
+660 1545   1.000000
+660 1547   0.039363
+660 1551  -0.013107
+660 1555   0.004754
+660 1557  -1.000000
+661 4   0.031010
+661 1546   1.000000
+661 1548   0.039363
+661 1552  -0.013107
+661 1556   0.004754
+661 1558  -1.000000
+662 4   0.128990
+662 1547   0.078885
+662 1549   1.000000
+662 1551   0.058415
+662 1555  -0.008310
+662 1557  -1.000000
+663 4   0.128990
+663 1548   0.078885
+663 1550   1.000000
+663 1552   0.058415
+663 1556  -0.008310
+663 1558  -1.000000
+664 4   0.200000
+664 1547   0.075281
+664 1551   0.102497
+664 1553   1.000000
+664 1555   0.022222
+664 1557  -1.000000
+665 4   0.200000
+665 1548   0.075281
+665 1552   0.102497
+665 1554   1.000000
+665 1556   0.022222
+665 1558  -1.000000
+666 4   0.031010
+666 1559   1.000000
+666 1561   0.039363
+666 1565  -0.013107
+666 1569   0.004754
+666 1571  -1.000000
+667 4   0.031010
+667 1560   1.000000
+667 1562   0.039363
+667 1566  -0.013107
+667 1570   0.004754
+667 1572  -1.000000
+668 4   0.128990
+668 1561   0.078885
+668 1563   1.000000
+668 1565   0.058415
+668 1569  -0.008310
+668 1571  -1.000000
+669 4   0.128990
+669 1562   0.078885
+669 1564   1.000000
+669 1566   0.058415
+669 1570  -0.008310
+669 1572  -1.000000
+670 4   0.200000
+670 1561   0.075281
+670 1565   0.102497
+670 1567   1.000000
+670 1569   0.022222
+670 1571  -1.000000
+671 4   0.200000
+671 1562   0.075281
+671 1566   0.102497
+671 1568   1.000000
+671 1570   0.022222
+671 1572  -1.000000
+672 4   0.031010
+672 1573   1.000000
+672 1575   0.039363
+672 1579  -0.013107
+672 1583   0.004754
+672 1585  -1.000000
+673 4   0.031010
+673 1574   1.000000
+673 1576   0.039363
+673 1580  -0.013107
+673 1584   0.004754
+673 1586  -1.000000
+674 4   0.128990
+674 1575   0.078885
+674 1577   1.000000
+674 1579   0.058415
+674 1583  -0.008310
+674 1585  -1.000000
+675 4   0.128990
+675 1576   0.078885
+675 1578   1.000000
+675 1580   0.058415
+675 1584  -0.008310
+675 1586  -1.000000
+676 4   0.200000
+676 1575   0.075281
+676 1579   0.102497
+676 1581   1.000000
+676 1583   0.022222
+676 1585  -1.000000
+677 4   0.200000
+677 1576   0.075281
+677 1580   0.102497
+677 1582   1.000000
+677 1584   0.022222
+677 1586  -1.000000
+678 4   0.031010
+678 1587   1.000000
+678 1589   0.039363
+678 1593  -0.013107
+678 1597   0.004754
+678 1599  -1.000000
+679 4   0.031010
+679 1588   1.000000
+679 1590   0.039363
+679 1594  -0.013107
+679 1598   0.004754
+679 1600  -1.000000
+680 4   0.128990
+680 1589   0.078885
+680 1591   1.000000
+680 1593   0.058415
+680 1597  -0.008310
+680 1599  -1.000000
+681 4   0.128990
+681 1590   0.078885
+681 1592   1.000000
+681 1594   0.058415
+681 1598  -0.008310
+681 1600  -1.000000
+682 4   0.200000
+682 1589   0.075281
+682 1593   0.102497
+682 1595   1.000000
+682 1597   0.022222
+682 1599  -1.000000
+683 4   0.200000
+683 1590   0.075281
+683 1594   0.102497
+683 1596   1.000000
+683 1598   0.022222
+683 1600  -1.000000
+684 4   0.031010
+684 1601   1.000000
+684 1603   0.039363
+684 1607  -0.013107
+684 1611   0.004754
+684 1613  -1.000000
+685 4   0.031010
+685 1602   1.000000
+685 1604   0.039363
+685 1608  -0.013107
+685 1612   0.004754
+685 1614  -1.000000
+686 4   0.128990
+686 1603   0.078885
+686 1605   1.000000
+686 1607   0.058415
+686 1611  -0.008310
+686 1613  -1.000000
+687 4   0.128990
+687 1604   0.078885
+687 1606   1.000000
+687 1608   0.058415
+687 1612  -0.008310
+687 1614  -1.000000
+688 4   0.200000
+688 1603   0.075281
+688 1607   0.102497
+688 1609   1.000000
+688 1611   0.022222
+688 1613  -1.000000
+689 4   0.200000
+689 1604   0.075281
+689 1608   0.102497
+689 1610   1.000000
+689 1612   0.022222
+689 1614  -1.000000
+690 4   0.031010
+690 1615   1.000000
+690 1617   0.039363
+690 1621  -0.013107
+690 1625   0.004754
+690 1627  -1.000000
+691 4   0.031010
+691 1616   1.000000
+691 1618   0.039363
+691 1622  -0.013107
+691 1626   0.004754
+691 1628  -1.000000
+692 4   0.128990
+692 1617   0.078885
+692 1619   1.000000
+692 1621   0.058415
+692 1625  -0.008310
+692 1627  -1.000000
+693 4   0.128990
+693 1618   0.078885
+693 1620   1.000000
+693 1622   0.058415
+693 1626  -0.008310
+693 1628  -1.000000
+694 4   0.200000
+694 1617   0.075281
+694 1621   0.102497
+694 1623   1.000000
+694 1625   0.022222
+694 1627  -1.000000
+695 4   0.200000
+695 1618   0.075281
+695 1622   0.102497
+695 1624   1.000000
+695 1626   0.022222
+695 1628  -1.000000
+696 4   0.031010
+696 1629   1.000000
+696 1631   0.039363
+696 1635  -0.013107
+696 1639   0.004754
+696 1641  -1.000000
+697 4   0.031010
+697 1630   1.000000
+697 1632   0.039363
+697 1636  -0.013107
+697 1640   0.004754
+697 1642  -1.000000
+698 4   0.128990
+698 1631   0.078885
+698 1633   1.000000
+698 1635   0.058415
+698 1639  -0.008310
+698 1641  -1.000000
+699 4   0.128990
+699 1632   0.078885
+699 1634   1.000000
+699 1636   0.058415
+699 1640  -0.008310
+699 1642  -1.000000
+700 4   0.200000
+700 1631   0.075281
+700 1635   0.102497
+700 1637   1.000000
+700 1639   0.022222
+700 1641  -1.000000
+701 4   0.200000
+701 1632   0.075281
+701 1636   0.102497
+701 1638   1.000000
+701 1640   0.022222
+701 1642  -1.000000
+702 4   0.031010
+702 1643   1.000000
+702 1645   0.039363
+702 1649  -0.013107
+702 1653   0.004754
+702 1655  -1.000000
+703 4   0.031010
+703 1644   1.000000
+703 1646   0.039363
+703 1650  -0.013107
+703 1654   0.004754
+703 1656  -1.000000
+704 4   0.128990
+704 1645   0.078885
+704 1647   1.000000
+704 1649   0.058415
+704 1653  -0.008310
+704 1655  -1.000000
+705 4   0.128990
+705 1646   0.078885
+705 1648   1.000000
+705 1650   0.058415
+705 1654  -0.008310
+705 1656  -1.000000
+706 4   0.200000
+706 1645   0.075281
+706 1649   0.102497
+706 1651   1.000000
+706 1653   0.022222
+706 1655  -1.000000
+707 4   0.200000
+707 1646   0.075281
+707 1650   0.102497
+707 1652   1.000000
+707 1654   0.022222
+707 1656  -1.000000
+708 4   0.031010
+708 1657   1.000000
+708 1659   0.039363
+708 1663  -0.013107
+708 1667   0.004754
+708 1669  -1.000000
+709 4   0.031010
+709 1658   1.000000
+709 1660   0.039363
+709 1664  -0.013107
+709 1668   0.004754
+709 1670  -1.000000
+710 4   0.128990
+710 1659   0.078885
+710 1661   1.000000
+710 1663   0.058415
+710 1667  -0.008310
+710 1669  -1.000000
+711 4   0.128990
+711 1660   0.078885
+711 1662   1.000000
+711 1664   0.058415
+711 1668  -0.008310
+711 1670  -1.000000
+712 4   0.200000
+712 1659   0.075281
+712 1663   0.102497
+712 1665   1.000000
+712 1667   0.022222
+712 1669  -1.000000
+713 4   0.200000
+713 1660   0.075281
+713 1664   0.102497
+713 1666   1.000000
+713 1668   0.022222
+713 1670  -1.000000
+714 4   0.031010
+714 1671   1.000000
+714 1673   0.039363
+714 1677  -0.013107
+714 1681   0.004754
+714 1683  -1.000000
+715 4   0.031010
+715 1672   1.000000
+715 1674   0.039363
+715 1678  -0.013107
+715 1682   0.004754
+715 1684  -1.000000
+716 4   0.128990
+716 1673   0.078885
+716 1675   1.000000
+716 1677   0.058415
+716 1681  -0.008310
+716 1683  -1.000000
+717 4   0.128990
+717 1674   0.078885
+717 1676   1.000000
+717 1678   0.058415
+717 1682  -0.008310
+717 1684  -1.000000
+718 4   0.200000
+718 1673   0.075281
+718 1677   0.102497
+718 1679   1.000000
+718 1681   0.022222
+718 1683  -1.000000
+719 4   0.200000
+719 1674   0.075281
+719 1678   0.102497
+719 1680   1.000000
+719 1682   0.022222
+719 1684  -1.000000
+720 4   0.031010
+720 1685   1.000000
+720 1687   0.039363
+720 1691  -0.013107
+720 1695   0.004754
+720 1697  -1.000000
+721 4   0.031010
+721 1686   1.000000
+721 1688   0.039363
+721 1692  -0.013107
+721 1696   0.004754
+721 1698  -1.000000
+722 4   0.128990
+722 1687   0.078885
+722 1689   1.000000
+722 1691   0.058415
+722 1695  -0.008310
+722 1697  -1.000000
+723 4   0.128990
+723 1688   0.078885
+723 1690   1.000000
+723 1692   0.058415
+723 1696  -0.008310
+723 1698  -1.000000
+724 4   0.200000
+724 1687   0.075281
+724 1691   0.102497
+724 1693   1.000000
+724 1695   0.022222
+724 1697  -1.000000
+725 4   0.200000
+725 1688   0.075281
+725 1692   0.102497
+725 1694   1.000000
+725 1696   0.022222
+725 1698  -1.000000
+726 4   0.031010
+726 1699   1.000000
+726 1701   0.039363
+726 1705  -0.013107
+726 1709   0.004754
+726 1711  -1.000000
+727 4   0.031010
+727 1700   1.000000
+727 1702   0.039363
+727 1706  -0.013107
+727 1710   0.004754
+727 1712  -1.000000
+728 4   0.128990
+728 1701   0.078885
+728 1703   1.000000
+728 1705   0.058415
+728 1709  -0.008310
+728 1711  -1.000000
+729 4   0.128990
+729 1702   0.078885
+729 1704   1.000000
+729 1706   0.058415
+729 1710  -0.008310
+729 1712  -1.000000
+730 4   0.200000
+730 1701   0.075281
+730 1705   0.102497
+730 1707   1.000000
+730 1709   0.022222
+730 1711  -1.000000
+731 4   0.200000
+731 1702   0.075281
+731 1706   0.102497
+731 1708   1.000000
+731 1710   0.022222
+731 1712  -1.000000
+732 4   0.031010
+732 1713   1.000000
+732 1715   0.039363
+732 1719  -0.013107
+732 1723   0.004754
+732 1725  -1.000000
+733 4   0.031010
+733 1714   1.000000
+733 1716   0.039363
+733 1720  -0.013107
+733 1724   0.004754
+733 1726  -1.000000
+734 4   0.128990
+734 1715   0.078885
+734 1717   1.000000
+734 1719   0.058415
+734 1723  -0.008310
+734 1725  -1.000000
+735 4   0.128990
+735 1716   0.078885
+735 1718   1.000000
+735 1720   0.058415
+735 1724  -0.008310
+735 1726  -1.000000
+736 4   0.200000
+736 1715   0.075281
+736 1719   0.102497
+736 1721   1.000000
+736 1723   0.022222
+736 1725  -1.000000
+737 4   0.200000
+737 1716   0.075281
+737 1720   0.102497
+737 1722   1.000000
+737 1724   0.022222
+737 1726  -1.000000
+738 4   0.031010
+738 1727   1.000000
+738 1729   0.039363
+738 1733  -0.013107
+738 1737   0.004754
+738 1739  -1.000000
+739 4   0.031010
+739 1728   1.000000
+739 1730   0.039363
+739 1734  -0.013107
+739 1738   0.004754
+739 1740  -1.000000
+740 4   0.128990
+740 1729   0.078885
+740 1731   1.000000
+740 1733   0.058415
+740 1737  -0.008310
+740 1739  -1.000000
+741 4   0.128990
+741 1730   0.078885
+741 1732   1.000000
+741 1734   0.058415
+741 1738  -0.008310
+741 1740  -1.000000
+742 4   0.200000
+742 1729   0.075281
+742 1733   0.102497
+742 1735   1.000000
+742 1737   0.022222
+742 1739  -1.000000
+743 4   0.200000
+743 1730   0.075281
+743 1734   0.102497
+743 1736   1.000000
+743 1738   0.022222
+743 1740  -1.000000
+744 4   0.031010
+744 1741   1.000000
+744 1743   0.039363
+744 1747  -0.013107
+744 1751   0.004754
+744 1753  -1.000000
+745 4   0.031010
+745 1742   1.000000
+745 1744   0.039363
+745 1748  -0.013107
+745 1752   0.004754
+745 1754  -1.000000
+746 4   0.128990
+746 1743   0.078885
+746 1745   1.000000
+746 1747   0.058415
+746 1751  -0.008310
+746 1753  -1.000000
+747 4   0.128990
+747 1744   0.078885
+747 1746   1.000000
+747 1748   0.058415
+747 1752  -0.008310
+747 1754  -1.000000
+748 4   0.200000
+748 1743   0.075281
+748 1747   0.102497
+748 1749   1.000000
+748 1751   0.022222
+748 1753  -1.000000
+749 4   0.200000
+749 1744   0.075281
+749 1748   0.102497
+749 1750   1.000000
+749 1752   0.022222
+749 1754  -1.000000
+750 4   0.031010
+750 1755   1.000000
+750 1757   0.039363
+750 1761  -0.013107
+750 1765   0.004754
+750 1767  -1.000000
+751 4   0.031010
+751 1756   1.000000
+751 1758   0.039363
+751 1762  -0.013107
+751 1766   0.004754
+751 1768  -1.000000
+752 4   0.128990
+752 1757   0.078885
+752 1759   1.000000
+752 1761   0.058415
+752 1765  -0.008310
+752 1767  -1.000000
+753 4   0.128990
+753 1758   0.078885
+753 1760   1.000000
+753 1762   0.058415
+753 1766  -0.008310
+753 1768  -1.000000
+754 4   0.200000
+754 1757   0.075281
+754 1761   0.102497
+754 1763   1.000000
+754 1765   0.022222
+754 1767  -1.000000
+755 4   0.200000
+755 1758   0.075281
+755 1762   0.102497
+755 1764   1.000000
+755 1766   0.022222
+755 1768  -1.000000
+756 4   0.031010
+756 1769   1.000000
+756 1771   0.039363
+756 1775  -0.013107
+756 1779   0.004754
+756 1781  -1.000000
+757 4   0.031010
+757 1770   1.000000
+757 1772   0.039363
+757 1776  -0.013107
+757 1780   0.004754
+757 1782  -1.000000
+758 4   0.128990
+758 1771   0.078885
+758 1773   1.000000
+758 1775   0.058415
+758 1779  -0.008310
+758 1781  -1.000000
+759 4   0.128990
+759 1772   0.078885
+759 1774   1.000000
+759 1776   0.058415
+759 1780  -0.008310
+759 1782  -1.000000
+760 4   0.200000
+760 1771   0.075281
+760 1775   0.102497
+760 1777   1.000000
+760 1779   0.022222
+760 1781  -1.000000
+761 4   0.200000
+761 1772   0.075281
+761 1776   0.102497
+761 1778   1.000000
+761 1780   0.022222
+761 1782  -1.000000
+762 4   0.031010
+762 1783   1.000000
+762 1785   0.039363
+762 1789  -0.013107
+762 1793   0.004754
+762 1795  -1.000000
+763 4   0.031010
+763 1784   1.000000
+763 1786   0.039363
+763 1790  -0.013107
+763 1794   0.004754
+763 1796  -1.000000
+764 4   0.128990
+764 1785   0.078885
+764 1787   1.000000
+764 1789   0.058415
+764 1793  -0.008310
+764 1795  -1.000000
+765 4   0.128990
+765 1786   0.078885
+765 1788   1.000000
+765 1790   0.058415
+765 1794  -0.008310
+765 1796  -1.000000
+766 4   0.200000
+766 1785   0.075281
+766 1789   0.102497
+766 1791   1.000000
+766 1793   0.022222
+766 1795  -1.000000
+767 4   0.200000
+767 1786   0.075281
+767 1790   0.102497
+767 1792   1.000000
+767 1794   0.022222
+767 1796  -1.000000
+768 4   0.031010
+768 1797   1.000000
+768 1799   0.039363
+768 1803  -0.013107
+768 1807   0.004754
+768 1809  -1.000000
+769 4   0.031010
+769 1798   1.000000
+769 1800   0.039363
+769 1804  -0.013107
+769 1808   0.004754
+769 1810  -1.000000
+770 4   0.128990
+770 1799   0.078885
+770 1801   1.000000
+770 1803   0.058415
+770 1807  -0.008310
+770 1809  -1.000000
+771 4   0.128990
+771 1800   0.078885
+771 1802   1.000000
+771 1804   0.058415
+771 1808  -0.008310
+771 1810  -1.000000
+772 4   0.200000
+772 1799   0.075281
+772 1803   0.102497
+772 1805   1.000000
+772 1807   0.022222
+772 1809  -1.000000
+773 4   0.200000
+773 1800   0.075281
+773 1804   0.102497
+773 1806   1.000000
+773 1808   0.022222
+773 1810  -1.000000
+774 4   0.031010
+774 1811   1.000000
+774 1813   0.039363
+774 1817  -0.013107
+774 1821   0.004754
+774 1823  -1.000000
+775 4   0.031010
+775 1812   1.000000
+775 1814   0.039363
+775 1818  -0.013107
+775 1822   0.004754
+775 1824  -1.000000
+776 4   0.128990
+776 1813   0.078885
+776 1815   1.000000
+776 1817   0.058415
+776 1821  -0.008310
+776 1823  -1.000000
+777 4   0.128990
+777 1814   0.078885
+777 1816   1.000000
+777 1818   0.058415
+777 1822  -0.008310
+777 1824  -1.000000
+778 4   0.200000
+778 1813   0.075281
+778 1817   0.102497
+778 1819   1.000000
+778 1821   0.022222
+778 1823  -1.000000
+779 4   0.200000
+779 1814   0.075281
+779 1818   0.102497
+779 1820   1.000000
+779 1822   0.022222
+779 1824  -1.000000
+780 4   0.031010
+780 1825   1.000000
+780 1827   0.039363
+780 1831  -0.013107
+780 1835   0.004754
+780 1837  -1.000000
+781 4   0.031010
+781 1826   1.000000
+781 1828   0.039363
+781 1832  -0.013107
+781 1836   0.004754
+781 1838  -1.000000
+782 4   0.128990
+782 1827   0.078885
+782 1829   1.000000
+782 1831   0.058415
+782 1835  -0.008310
+782 1837  -1.000000
+783 4   0.128990
+783 1828   0.078885
+783 1830   1.000000
+783 1832   0.058415
+783 1836  -0.008310
+783 1838  -1.000000
+784 4   0.200000
+784 1827   0.075281
+784 1831   0.102497
+784 1833   1.000000
+784 1835   0.022222
+784 1837  -1.000000
+785 4   0.200000
+785 1828   0.075281
+785 1832   0.102497
+785 1834   1.000000
+785 1836   0.022222
+785 1838  -1.000000
+786 4   0.031010
+786 1839   1.000000
+786 1841   0.039363
+786 1845  -0.013107
+786 1849   0.004754
+786 1851  -1.000000
+787 4   0.031010
+787 1840   1.000000
+787 1842   0.039363
+787 1846  -0.013107
+787 1850   0.004754
+787 1852  -1.000000
+788 4   0.128990
+788 1841   0.078885
+788 1843   1.000000
+788 1845   0.058415
+788 1849  -0.008310
+788 1851  -1.000000
+789 4   0.128990
+789 1842   0.078885
+789 1844   1.000000
+789 1846   0.058415
+789 1850  -0.008310
+789 1852  -1.000000
+790 4   0.200000
+790 1841   0.075281
+790 1845   0.102497
+790 1847   1.000000
+790 1849   0.022222
+790 1851  -1.000000
+791 4   0.200000
+791 1842   0.075281
+791 1846   0.102497
+791 1848   1.000000
+791 1850   0.022222
+791 1852  -1.000000
+792 4   0.031010
+792 1853   1.000000
+792 1855   0.039363
+792 1859  -0.013107
+792 1863   0.004754
+792 1865  -1.000000
+793 4   0.031010
+793 1854   1.000000
+793 1856   0.039363
+793 1860  -0.013107
+793 1864   0.004754
+793 1866  -1.000000
+794 4   0.128990
+794 1855   0.078885
+794 1857   1.000000
+794 1859   0.058415
+794 1863  -0.008310
+794 1865  -1.000000
+795 4   0.128990
+795 1856   0.078885
+795 1858   1.000000
+795 1860   0.058415
+795 1864  -0.008310
+795 1866  -1.000000
+796 4   0.200000
+796 1855   0.075281
+796 1859   0.102497
+796 1861   1.000000
+796 1863   0.022222
+796 1865  -1.000000
+797 4   0.200000
+797 1856   0.075281
+797 1860   0.102497
+797 1862   1.000000
+797 1864   0.022222
+797 1866  -1.000000
+798 4   0.031010
+798 1867   1.000000
+798 1869   0.039363
+798 1873  -0.013107
+798 1877   0.004754
+798 1879  -1.000000
+799 4   0.031010
+799 1868   1.000000
+799 1870   0.039363
+799 1874  -0.013107
+799 1878   0.004754
+799 1880  -1.000000
+800 4   0.128990
+800 1869   0.078885
+800 1871   1.000000
+800 1873   0.058415
+800 1877  -0.008310
+800 1879  -1.000000
+801 4   0.128990
+801 1870   0.078885
+801 1872   1.000000
+801 1874   0.058415
+801 1878  -0.008310
+801 1880  -1.000000
+802 4   0.200000
+802 1869   0.075281
+802 1873   0.102497
+802 1875   1.000000
+802 1877   0.022222
+802 1879  -1.000000
+803 4   0.200000
+803 1870   0.075281
+803 1874   0.102497
+803 1876   1.000000
+803 1878   0.022222
+803 1880  -1.000000
+804 4   0.031010
+804 1881   1.000000
+804 1883   0.039363
+804 1887  -0.013107
+804 1891   0.004754
+804 1893  -1.000000
+805 4   0.031010
+805 1882   1.000000
+805 1884   0.039363
+805 1888  -0.013107
+805 1892   0.004754
+805 1894  -1.000000
+806 4   0.128990
+806 1883   0.078885
+806 1885   1.000000
+806 1887   0.058415
+806 1891  -0.008310
+806 1893  -1.000000
+807 4   0.128990
+807 1884   0.078885
+807 1886   1.000000
+807 1888   0.058415
+807 1892  -0.008310
+807 1894  -1.000000
+808 4   0.200000
+808 1883   0.075281
+808 1887   0.102497
+808 1889   1.000000
+808 1891   0.022222
+808 1893  -1.000000
+809 4   0.200000
+809 1884   0.075281
+809 1888   0.102497
+809 1890   1.000000
+809 1892   0.022222
+809 1894  -1.000000
+810 4   0.031010
+810 1895   1.000000
+810 1897   0.039363
+810 1901  -0.013107
+810 1905   0.004754
+810 1907  -1.000000
+811 4   0.031010
+811 1896   1.000000
+811 1898   0.039363
+811 1902  -0.013107
+811 1906   0.004754
+811 1908  -1.000000
+812 4   0.128990
+812 1897   0.078885
+812 1899   1.000000
+812 1901   0.058415
+812 1905  -0.008310
+812 1907  -1.000000
+813 4   0.128990
+813 1898   0.078885
+813 1900   1.000000
+813 1902   0.058415
+813 1906  -0.008310
+813 1908  -1.000000
+814 4   0.200000
+814 1897   0.075281
+814 1901   0.102497
+814 1903   1.000000
+814 1905   0.022222
+814 1907  -1.000000
+815 4   0.200000
+815 1898   0.075281
+815 1902   0.102497
+815 1904   1.000000
+815 1906   0.022222
+815 1908  -1.000000
+816 4   0.031010
+816 1909   1.000000
+816 1911   0.039363
+816 1915  -0.013107
+816 1919   0.004754
+816 1921  -1.000000
+817 4   0.031010
+817 1910   1.000000
+817 1912   0.039363
+817 1916  -0.013107
+817 1920   0.004754
+817 1922  -1.000000
+818 4   0.128990
+818 1911   0.078885
+818 1913   1.000000
+818 1915   0.058415
+818 1919  -0.008310
+818 1921  -1.000000
+819 4   0.128990
+819 1912   0.078885
+819 1914   1.000000
+819 1916   0.058415
+819 1920  -0.008310
+819 1922  -1.000000
+820 4   0.200000
+820 1911   0.075281
+820 1915   0.102497
+820 1917   1.000000
+820 1919   0.022222
+820 1921  -1.000000
+821 4   0.200000
+821 1912   0.075281
+821 1916   0.102497
+821 1918   1.000000
+821 1920   0.022222
+821 1922  -1.000000
+822 4   0.031010
+822 1923   1.000000
+822 1925   0.039363
+822 1929  -0.013107
+822 1933   0.004754
+822 1935  -1.000000
+823 4   0.031010
+823 1924   1.000000
+823 1926   0.039363
+823 1930  -0.013107
+823 1934   0.004754
+823 1936  -1.000000
+824 4   0.128990
+824 1925   0.078885
+824 1927   1.000000
+824 1929   0.058415
+824 1933  -0.008310
+824 1935  -1.000000
+825 4   0.128990
+825 1926   0.078885
+825 1928   1.000000
+825 1930   0.058415
+825 1934  -0.008310
+825 1936  -1.000000
+826 4   0.200000
+826 1925   0.075281
+826 1929   0.102497
+826 1931   1.000000
+826 1933   0.022222
+826 1935  -1.000000
+827 4   0.200000
+827 1926   0.075281
+827 1930   0.102497
+827 1932   1.000000
+827 1934   0.022222
+827 1936  -1.000000
+828 4   0.031010
+828 1937   1.000000
+828 1939   0.039363
+828 1943  -0.013107
+828 1947   0.004754
+828 1949  -1.000000
+829 4   0.031010
+829 1938   1.000000
+829 1940   0.039363
+829 1944  -0.013107
+829 1948   0.004754
+829 1950  -1.000000
+830 4   0.128990
+830 1939   0.078885
+830 1941   1.000000
+830 1943   0.058415
+830 1947  -0.008310
+830 1949  -1.000000
+831 4   0.128990
+831 1940   0.078885
+831 1942   1.000000
+831 1944   0.058415
+831 1948  -0.008310
+831 1950  -1.000000
+832 4   0.200000
+832 1939   0.075281
+832 1943   0.102497
+832 1945   1.000000
+832 1947   0.022222
+832 1949  -1.000000
+833 4   0.200000
+833 1940   0.075281
+833 1944   0.102497
+833 1946   1.000000
+833 1948   0.022222
+833 1950  -1.000000
+834 4   0.031010
+834 1951   1.000000
+834 1953   0.039363
+834 1957  -0.013107
+834 1961   0.004754
+834 1963  -1.000000
+835 4   0.031010
+835 1952   1.000000
+835 1954   0.039363
+835 1958  -0.013107
+835 1962   0.004754
+835 1964  -1.000000
+836 4   0.128990
+836 1953   0.078885
+836 1955   1.000000
+836 1957   0.058415
+836 1961  -0.008310
+836 1963  -1.000000
+837 4   0.128990
+837 1954   0.078885
+837 1956   1.000000
+837 1958   0.058415
+837 1962  -0.008310
+837 1964  -1.000000
+838 4   0.200000
+838 1953   0.075281
+838 1957   0.102497
+838 1959   1.000000
+838 1961   0.022222
+838 1963  -1.000000
+839 4   0.200000
+839 1954   0.075281
+839 1958   0.102497
+839 1960   1.000000
+839 1962   0.022222
+839 1964  -1.000000
+840 4   0.031010
+840 1965   1.000000
+840 1967   0.039363
+840 1971  -0.013107
+840 1975   0.004754
+840 1977  -1.000000
+841 4   0.031010
+841 1966   1.000000
+841 1968   0.039363
+841 1972  -0.013107
+841 1976   0.004754
+841 1978  -1.000000
+842 4   0.128990
+842 1967   0.078885
+842 1969   1.000000
+842 1971   0.058415
+842 1975  -0.008310
+842 1977  -1.000000
+843 4   0.128990
+843 1968   0.078885
+843 1970   1.000000
+843 1972   0.058415
+843 1976  -0.008310
+843 1978  -1.000000
+844 4   0.200000
+844 1967   0.075281
+844 1971   0.102497
+844 1973   1.000000
+844 1975   0.022222
+844 1977  -1.000000
+845 4   0.200000
+845 1968   0.075281
+845 1972   0.102497
+845 1974   1.000000
+845 1976   0.022222
+845 1978  -1.000000
+846 4   0.031010
+846 1979   1.000000
+846 1981   0.039363
+846 1985  -0.013107
+846 1989   0.004754
+846 1991  -1.000000
+847 4   0.031010
+847 1980   1.000000
+847 1982   0.039363
+847 1986  -0.013107
+847 1990   0.004754
+847 1992  -1.000000
+848 4   0.128990
+848 1981   0.078885
+848 1983   1.000000
+848 1985   0.058415
+848 1989  -0.008310
+848 1991  -1.000000
+849 4   0.128990
+849 1982   0.078885
+849 1984   1.000000
+849 1986   0.058415
+849 1990  -0.008310
+849 1992  -1.000000
+850 4   0.200000
+850 1981   0.075281
+850 1985   0.102497
+850 1987   1.000000
+850 1989   0.022222
+850 1991  -1.000000
+851 4   0.200000
+851 1982   0.075281
+851 1986   0.102497
+851 1988   1.000000
+851 1990   0.022222
+851 1992  -1.000000
+852 4   0.031010
+852 1993   1.000000
+852 1995   0.039363
+852 1999  -0.013107
+852 2003   0.004754
+852 2005  -1.000000
+853 4   0.031010
+853 1994   1.000000
+853 1996   0.039363
+853 2000  -0.013107
+853 2004   0.004754
+853 2006  -1.000000
+854 4   0.128990
+854 1995   0.078885
+854 1997   1.000000
+854 1999   0.058415
+854 2003  -0.008310
+854 2005  -1.000000
+855 4   0.128990
+855 1996   0.078885
+855 1998   1.000000
+855 2000   0.058415
+855 2004  -0.008310
+855 2006  -1.000000
+856 4   0.200000
+856 1995   0.075281
+856 1999   0.102497
+856 2001   1.000000
+856 2003   0.022222
+856 2005  -1.000000
+857 4   0.200000
+857 1996   0.075281
+857 2000   0.102497
+857 2002   1.000000
+857 2004   0.022222
+857 2006  -1.000000
+858 4   0.031010
+858 2007   1.000000
+858 2009   0.039363
+858 2013  -0.013107
+858 2017   0.004754
+858 2019  -1.000000
+859 4   0.031010
+859 2008   1.000000
+859 2010   0.039363
+859 2014  -0.013107
+859 2018   0.004754
+859 2020  -1.000000
+860 4   0.128990
+860 2009   0.078885
+860 2011   1.000000
+860 2013   0.058415
+860 2017  -0.008310
+860 2019  -1.000000
+861 4   0.128990
+861 2010   0.078885
+861 2012   1.000000
+861 2014   0.058415
+861 2018  -0.008310
+861 2020  -1.000000
+862 4   0.200000
+862 2009   0.075281
+862 2013   0.102497
+862 2015   1.000000
+862 2017   0.022222
+862 2019  -1.000000
+863 4   0.200000
+863 2010   0.075281
+863 2014   0.102497
+863 2016   1.000000
+863 2018   0.022222
+863 2020  -1.000000
+864 4   0.031010
+864 2021   1.000000
+864 2023   0.039363
+864 2027  -0.013107
+864 2031   0.004754
+864 2033  -1.000000
+865 4   0.031010
+865 2022   1.000000
+865 2024   0.039363
+865 2028  -0.013107
+865 2032   0.004754
+865 2034  -1.000000
+866 4   0.128990
+866 2023   0.078885
+866 2025   1.000000
+866 2027   0.058415
+866 2031  -0.008310
+866 2033  -1.000000
+867 4   0.128990
+867 2024   0.078885
+867 2026   1.000000
+867 2028   0.058415
+867 2032  -0.008310
+867 2034  -1.000000
+868 4   0.200000
+868 2023   0.075281
+868 2027   0.102497
+868 2029   1.000000
+868 2031   0.022222
+868 2033  -1.000000
+869 4   0.200000
+869 2024   0.075281
+869 2028   0.102497
+869 2030   1.000000
+869 2032   0.022222
+869 2034  -1.000000
+870 4   0.031010
+870 2035   1.000000
+870 2037   0.039363
+870 2041  -0.013107
+870 2045   0.004754
+870 2047  -1.000000
+871 4   0.031010
+871 2036   1.000000
+871 2038   0.039363
+871 2042  -0.013107
+871 2046   0.004754
+871 2048  -1.000000
+872 4   0.128990
+872 2037   0.078885
+872 2039   1.000000
+872 2041   0.058415
+872 2045  -0.008310
+872 2047  -1.000000
+873 4   0.128990
+873 2038   0.078885
+873 2040   1.000000
+873 2042   0.058415
+873 2046  -0.008310
+873 2048  -1.000000
+874 4   0.200000
+874 2037   0.075281
+874 2041   0.102497
+874 2043   1.000000
+874 2045   0.022222
+874 2047  -1.000000
+875 4   0.200000
+875 2038   0.075281
+875 2042   0.102497
+875 2044   1.000000
+875 2046   0.022222
+875 2048  -1.000000
+876 4   0.031010
+876 2049   1.000000
+876 2051   0.039363
+876 2055  -0.013107
+876 2059   0.004754
+876 2061  -1.000000
+877 4   0.031010
+877 2050   1.000000
+877 2052   0.039363
+877 2056  -0.013107
+877 2060   0.004754
+877 2062  -1.000000
+878 4   0.128990
+878 2051   0.078885
+878 2053   1.000000
+878 2055   0.058415
+878 2059  -0.008310
+878 2061  -1.000000
+879 4   0.128990
+879 2052   0.078885
+879 2054   1.000000
+879 2056   0.058415
+879 2060  -0.008310
+879 2062  -1.000000
+880 4   0.200000
+880 2051   0.075281
+880 2055   0.102497
+880 2057   1.000000
+880 2059   0.022222
+880 2061  -1.000000
+881 4   0.200000
+881 2052   0.075281
+881 2056   0.102497
+881 2058   1.000000
+881 2060   0.022222
+881 2062  -1.000000
+882 4   0.031010
+882 2063   1.000000
+882 2065   0.039363
+882 2069  -0.013107
+882 2073   0.004754
+882 2075  -1.000000
+883 4   0.031010
+883 2064   1.000000
+883 2066   0.039363
+883 2070  -0.013107
+883 2074   0.004754
+883 2076  -1.000000
+884 4   0.128990
+884 2065   0.078885
+884 2067   1.000000
+884 2069   0.058415
+884 2073  -0.008310
+884 2075  -1.000000
+885 4   0.128990
+885 2066   0.078885
+885 2068   1.000000
+885 2070   0.058415
+885 2074  -0.008310
+885 2076  -1.000000
+886 4   0.200000
+886 2065   0.075281
+886 2069   0.102497
+886 2071   1.000000
+886 2073   0.022222
+886 2075  -1.000000
+887 4   0.200000
+887 2066   0.075281
+887 2070   0.102497
+887 2072   1.000000
+887 2074   0.022222
+887 2076  -1.000000
+888 4   0.031010
+888 2077   1.000000
+888 2079   0.039363
+888 2083  -0.013107
+888 2087   0.004754
+888 2089  -1.000000
+889 4   0.031010
+889 2078   1.000000
+889 2080   0.039363
+889 2084  -0.013107
+889 2088   0.004754
+889 2090  -1.000000
+890 4   0.128990
+890 2079   0.078885
+890 2081   1.000000
+890 2083   0.058415
+890 2087  -0.008310
+890 2089  -1.000000
+891 4   0.128990
+891 2080   0.078885
+891 2082   1.000000
+891 2084   0.058415
+891 2088  -0.008310
+891 2090  -1.000000
+892 4   0.200000
+892 2079   0.075281
+892 2083   0.102497
+892 2085   1.000000
+892 2087   0.022222
+892 2089  -1.000000
+893 4   0.200000
+893 2080   0.075281
+893 2084   0.102497
+893 2086   1.000000
+893 2088   0.022222
+893 2090  -1.000000
+894 4   0.031010
+894 2091   1.000000
+894 2093   0.039363
+894 2097  -0.013107
+894 2101   0.004754
+894 2103  -1.000000
+895 4   0.031010
+895 2092   1.000000
+895 2094   0.039363
+895 2098  -0.013107
+895 2102   0.004754
+895 2104  -1.000000
+896 4   0.128990
+896 2093   0.078885
+896 2095   1.000000
+896 2097   0.058415
+896 2101  -0.008310
+896 2103  -1.000000
+897 4   0.128990
+897 2094   0.078885
+897 2096   1.000000
+897 2098   0.058415
+897 2102  -0.008310
+897 2104  -1.000000
+898 4   0.200000
+898 2093   0.075281
+898 2097   0.102497
+898 2099   1.000000
+898 2101   0.022222
+898 2103  -1.000000
+899 4   0.200000
+899 2094   0.075281
+899 2098   0.102497
+899 2100   1.000000
+899 2102   0.022222
+899 2104  -1.000000
+900 4   0.031010
+900 2105   1.000000
+900 2107   0.039363
+900 2111  -0.013107
+900 2115   0.004754
+900 2117  -1.000000
+901 4   0.031010
+901 2106   1.000000
+901 2108   0.039363
+901 2112  -0.013107
+901 2116   0.004754
+901 2118  -1.000000
+902 4   0.128990
+902 2107   0.078885
+902 2109   1.000000
+902 2111   0.058415
+902 2115  -0.008310
+902 2117  -1.000000
+903 4   0.128990
+903 2108   0.078885
+903 2110   1.000000
+903 2112   0.058415
+903 2116  -0.008310
+903 2118  -1.000000
+904 4   0.200000
+904 2107   0.075281
+904 2111   0.102497
+904 2113   1.000000
+904 2115   0.022222
+904 2117  -1.000000
+905 4   0.200000
+905 2108   0.075281
+905 2112   0.102497
+905 2114   1.000000
+905 2116   0.022222
+905 2118  -1.000000
+906 4   0.031010
+906 2119   1.000000
+906 2121   0.039363
+906 2125  -0.013107
+906 2129   0.004754
+906 2131  -1.000000
+907 4   0.031010
+907 2120   1.000000
+907 2122   0.039363
+907 2126  -0.013107
+907 2130   0.004754
+907 2132  -1.000000
+908 4   0.128990
+908 2121   0.078885
+908 2123   1.000000
+908 2125   0.058415
+908 2129  -0.008310
+908 2131  -1.000000
+909 4   0.128990
+909 2122   0.078885
+909 2124   1.000000
+909 2126   0.058415
+909 2130  -0.008310
+909 2132  -1.000000
+910 4   0.200000
+910 2121   0.075281
+910 2125   0.102497
+910 2127   1.000000
+910 2129   0.022222
+910 2131  -1.000000
+911 4   0.200000
+911 2122   0.075281
+911 2126   0.102497
+911 2128   1.000000
+911 2130   0.022222
+911 2132  -1.000000
+912 4   0.031010
+912 2133   1.000000
+912 2135   0.039363
+912 2139  -0.013107
+912 2143   0.004754
+912 2145  -1.000000
+913 4   0.031010
+913 2134   1.000000
+913 2136   0.039363
+913 2140  -0.013107
+913 2144   0.004754
+913 2146  -1.000000
+914 4   0.128990
+914 2135   0.078885
+914 2137   1.000000
+914 2139   0.058415
+914 2143  -0.008310
+914 2145  -1.000000
+915 4   0.128990
+915 2136   0.078885
+915 2138   1.000000
+915 2140   0.058415
+915 2144  -0.008310
+915 2146  -1.000000
+916 4   0.200000
+916 2135   0.075281
+916 2139   0.102497
+916 2141   1.000000
+916 2143   0.022222
+916 2145  -1.000000
+917 4   0.200000
+917 2136   0.075281
+917 2140   0.102497
+917 2142   1.000000
+917 2144   0.022222
+917 2146  -1.000000
+918 4   0.031010
+918 2147   1.000000
+918 2149   0.039363
+918 2153  -0.013107
+918 2157   0.004754
+918 2159  -1.000000
+919 4   0.031010
+919 2148   1.000000
+919 2150   0.039363
+919 2154  -0.013107
+919 2158   0.004754
+919 2160  -1.000000
+920 4   0.128990
+920 2149   0.078885
+920 2151   1.000000
+920 2153   0.058415
+920 2157  -0.008310
+920 2159  -1.000000
+921 4   0.128990
+921 2150   0.078885
+921 2152   1.000000
+921 2154   0.058415
+921 2158  -0.008310
+921 2160  -1.000000
+922 4   0.200000
+922 2149   0.075281
+922 2153   0.102497
+922 2155   1.000000
+922 2157   0.022222
+922 2159  -1.000000
+923 4   0.200000
+923 2150   0.075281
+923 2154   0.102497
+923 2156   1.000000
+923 2158   0.022222
+923 2160  -1.000000
+924 4   0.031010
+924 2161   1.000000
+924 2163   0.039363
+924 2167  -0.013107
+924 2171   0.004754
+924 2173  -1.000000
+925 4   0.031010
+925 2162   1.000000
+925 2164   0.039363
+925 2168  -0.013107
+925 2172   0.004754
+925 2174  -1.000000
+926 4   0.128990
+926 2163   0.078885
+926 2165   1.000000
+926 2167   0.058415
+926 2171  -0.008310
+926 2173  -1.000000
+927 4   0.128990
+927 2164   0.078885
+927 2166   1.000000
+927 2168   0.058415
+927 2172  -0.008310
+927 2174  -1.000000
+928 4   0.200000
+928 2163   0.075281
+928 2167   0.102497
+928 2169   1.000000
+928 2171   0.022222
+928 2173  -1.000000
+929 4   0.200000
+929 2164   0.075281
+929 2168   0.102497
+929 2170   1.000000
+929 2172   0.022222
+929 2174  -1.000000
+930 4   0.031010
+930 2175   1.000000
+930 2177   0.039363
+930 2181  -0.013107
+930 2185   0.004754
+930 2187  -1.000000
+931 4   0.031010
+931 2176   1.000000
+931 2178   0.039363
+931 2182  -0.013107
+931 2186   0.004754
+931 2188  -1.000000
+932 4   0.128990
+932 2177   0.078885
+932 2179   1.000000
+932 2181   0.058415
+932 2185  -0.008310
+932 2187  -1.000000
+933 4   0.128990
+933 2178   0.078885
+933 2180   1.000000
+933 2182   0.058415
+933 2186  -0.008310
+933 2188  -1.000000
+934 4   0.200000
+934 2177   0.075281
+934 2181   0.102497
+934 2183   1.000000
+934 2185   0.022222
+934 2187  -1.000000
+935 4   0.200000
+935 2178   0.075281
+935 2182   0.102497
+935 2184   1.000000
+935 2186   0.022222
+935 2188  -1.000000
+936 4   0.031010
+936 2189   1.000000
+936 2191   0.039363
+936 2195  -0.013107
+936 2199   0.004754
+936 2201  -1.000000
+937 4   0.031010
+937 2190   1.000000
+937 2192   0.039363
+937 2196  -0.013107
+937 2200   0.004754
+937 2202  -1.000000
+938 4   0.128990
+938 2191   0.078885
+938 2193   1.000000
+938 2195   0.058415
+938 2199  -0.008310
+938 2201  -1.000000
+939 4   0.128990
+939 2192   0.078885
+939 2194   1.000000
+939 2196   0.058415
+939 2200  -0.008310
+939 2202  -1.000000
+940 4   0.200000
+940 2191   0.075281
+940 2195   0.102497
+940 2197   1.000000
+940 2199   0.022222
+940 2201  -1.000000
+941 4   0.200000
+941 2192   0.075281
+941 2196   0.102497
+941 2198   1.000000
+941 2200   0.022222
+941 2202  -1.000000
+942 4   0.031010
+942 2203   1.000000
+942 2205   0.039363
+942 2209  -0.013107
+942 2213   0.004754
+942 2215  -1.000000
+943 4   0.031010
+943 2204   1.000000
+943 2206   0.039363
+943 2210  -0.013107
+943 2214   0.004754
+943 2216  -1.000000
+944 4   0.128990
+944 2205   0.078885
+944 2207   1.000000
+944 2209   0.058415
+944 2213  -0.008310
+944 2215  -1.000000
+945 4   0.128990
+945 2206   0.078885
+945 2208   1.000000
+945 2210   0.058415
+945 2214  -0.008310
+945 2216  -1.000000
+946 4   0.200000
+946 2205   0.075281
+946 2209   0.102497
+946 2211   1.000000
+946 2213   0.022222
+946 2215  -1.000000
+947 4   0.200000
+947 2206   0.075281
+947 2210   0.102497
+947 2212   1.000000
+947 2214   0.022222
+947 2216  -1.000000
+948 4   0.031010
+948 2217   1.000000
+948 2219   0.039363
+948 2223  -0.013107
+948 2227   0.004754
+948 2229  -1.000000
+949 4   0.031010
+949 2218   1.000000
+949 2220   0.039363
+949 2224  -0.013107
+949 2228   0.004754
+949 2230  -1.000000
+950 4   0.128990
+950 2219   0.078885
+950 2221   1.000000
+950 2223   0.058415
+950 2227  -0.008310
+950 2229  -1.000000
+951 4   0.128990
+951 2220   0.078885
+951 2222   1.000000
+951 2224   0.058415
+951 2228  -0.008310
+951 2230  -1.000000
+952 4   0.200000
+952 2219   0.075281
+952 2223   0.102497
+952 2225   1.000000
+952 2227   0.022222
+952 2229  -1.000000
+953 4   0.200000
+953 2220   0.075281
+953 2224   0.102497
+953 2226   1.000000
+953 2228   0.022222
+953 2230  -1.000000
+954 4   0.031010
+954 2231   1.000000
+954 2233   0.039363
+954 2237  -0.013107
+954 2241   0.004754
+954 2243  -1.000000
+955 4   0.031010
+955 2232   1.000000
+955 2234   0.039363
+955 2238  -0.013107
+955 2242   0.004754
+955 2244  -1.000000
+956 4   0.128990
+956 2233   0.078885
+956 2235   1.000000
+956 2237   0.058415
+956 2241  -0.008310
+956 2243  -1.000000
+957 4   0.128990
+957 2234   0.078885
+957 2236   1.000000
+957 2238   0.058415
+957 2242  -0.008310
+957 2244  -1.000000
+958 4   0.200000
+958 2233   0.075281
+958 2237   0.102497
+958 2239   1.000000
+958 2241   0.022222
+958 2243  -1.000000
+959 4   0.200000
+959 2234   0.075281
+959 2238   0.102497
+959 2240   1.000000
+959 2242   0.022222
+959 2244  -1.000000
+960 4   0.031010
+960 2245   1.000000
+960 2247   0.039363
+960 2251  -0.013107
+960 2255   0.004754
+960 2257  -1.000000
+961 4   0.031010
+961 2246   1.000000
+961 2248   0.039363
+961 2252  -0.013107
+961 2256   0.004754
+961 2258  -1.000000
+962 4   0.128990
+962 2247   0.078885
+962 2249   1.000000
+962 2251   0.058415
+962 2255  -0.008310
+962 2257  -1.000000
+963 4   0.128990
+963 2248   0.078885
+963 2250   1.000000
+963 2252   0.058415
+963 2256  -0.008310
+963 2258  -1.000000
+964 4   0.200000
+964 2247   0.075281
+964 2251   0.102497
+964 2253   1.000000
+964 2255   0.022222
+964 2257  -1.000000
+965 4   0.200000
+965 2248   0.075281
+965 2252   0.102497
+965 2254   1.000000
+965 2256   0.022222
+965 2258  -1.000000
+966 4   0.031010
+966 2259   1.000000
+966 2261   0.039363
+966 2265  -0.013107
+966 2269   0.004754
+966 2271  -1.000000
+967 4   0.031010
+967 2260   1.000000
+967 2262   0.039363
+967 2266  -0.013107
+967 2270   0.004754
+967 2272  -1.000000
+968 4   0.128990
+968 2261   0.078885
+968 2263   1.000000
+968 2265   0.058415
+968 2269  -0.008310
+968 2271  -1.000000
+969 4   0.128990
+969 2262   0.078885
+969 2264   1.000000
+969 2266   0.058415
+969 2270  -0.008310
+969 2272  -1.000000
+970 4   0.200000
+970 2261   0.075281
+970 2265   0.102497
+970 2267   1.000000
+970 2269   0.022222
+970 2271  -1.000000
+971 4   0.200000
+971 2262   0.075281
+971 2266   0.102497
+971 2268   1.000000
+971 2270   0.022222
+971 2272  -1.000000
+972 4   0.031010
+972 2273   1.000000
+972 2275   0.039363
+972 2279  -0.013107
+972 2283   0.004754
+972 2285  -1.000000
+973 4   0.031010
+973 2274   1.000000
+973 2276   0.039363
+973 2280  -0.013107
+973 2284   0.004754
+973 2286  -1.000000
+974 4   0.128990
+974 2275   0.078885
+974 2277   1.000000
+974 2279   0.058415
+974 2283  -0.008310
+974 2285  -1.000000
+975 4   0.128990
+975 2276   0.078885
+975 2278   1.000000
+975 2280   0.058415
+975 2284  -0.008310
+975 2286  -1.000000
+976 4   0.200000
+976 2275   0.075281
+976 2279   0.102497
+976 2281   1.000000
+976 2283   0.022222
+976 2285  -1.000000
+977 4   0.200000
+977 2276   0.075281
+977 2280   0.102497
+977 2282   1.000000
+977 2284   0.022222
+977 2286  -1.000000
+978 4   0.031010
+978 2287   1.000000
+978 2289   0.039363
+978 2293  -0.013107
+978 2297   0.004754
+978 2299  -1.000000
+979 4   0.031010
+979 2288   1.000000
+979 2290   0.039363
+979 2294  -0.013107
+979 2298   0.004754
+979 2300  -1.000000
+980 4   0.128990
+980 2289   0.078885
+980 2291   1.000000
+980 2293   0.058415
+980 2297  -0.008310
+980 2299  -1.000000
+981 4   0.128990
+981 2290   0.078885
+981 2292   1.000000
+981 2294   0.058415
+981 2298  -0.008310
+981 2300  -1.000000
+982 4   0.200000
+982 2289   0.075281
+982 2293   0.102497
+982 2295   1.000000
+982 2297   0.022222
+982 2299  -1.000000
+983 4   0.200000
+983 2290   0.075281
+983 2294   0.102497
+983 2296   1.000000
+983 2298   0.022222
+983 2300  -1.000000
+984 4   0.031010
+984 2301   1.000000
+984 2303   0.039363
+984 2307  -0.013107
+984 2311   0.004754
+984 2313  -1.000000
+985 4   0.031010
+985 2302   1.000000
+985 2304   0.039363
+985 2308  -0.013107
+985 2312   0.004754
+985 2314  -1.000000
+986 4   0.128990
+986 2303   0.078885
+986 2305   1.000000
+986 2307   0.058415
+986 2311  -0.008310
+986 2313  -1.000000
+987 4   0.128990
+987 2304   0.078885
+987 2306   1.000000
+987 2308   0.058415
+987 2312  -0.008310
+987 2314  -1.000000
+988 4   0.200000
+988 2303   0.075281
+988 2307   0.102497
+988 2309   1.000000
+988 2311   0.022222
+988 2313  -1.000000
+989 4   0.200000
+989 2304   0.075281
+989 2308   0.102497
+989 2310   1.000000
+989 2312   0.022222
+989 2314  -1.000000
+990 4   0.031010
+990 2315   1.000000
+990 2317   0.039363
+990 2321  -0.013107
+990 2325   0.004754
+990 2327  -1.000000
+991 4   0.031010
+991 2316   1.000000
+991 2318   0.039363
+991 2322  -0.013107
+991 2326   0.004754
+991 2328  -1.000000
+992 4   0.128990
+992 2317   0.078885
+992 2319   1.000000
+992 2321   0.058415
+992 2325  -0.008310
+992 2327  -1.000000
+993 4   0.128990
+993 2318   0.078885
+993 2320   1.000000
+993 2322   0.058415
+993 2326  -0.008310
+993 2328  -1.000000
+994 4   0.200000
+994 2317   0.075281
+994 2321   0.102497
+994 2323   1.000000
+994 2325   0.022222
+994 2327  -1.000000
+995 4   0.200000
+995 2318   0.075281
+995 2322   0.102497
+995 2324   1.000000
+995 2326   0.022222
+995 2328  -1.000000
+996 4   0.031010
+996 2329   1.000000
+996 2331   0.039363
+996 2335  -0.013107
+996 2339   0.004754
+996 2341  -1.000000
+997 4   0.031010
+997 2330   1.000000
+997 2332   0.039363
+997 2336  -0.013107
+997 2340   0.004754
+997 2342  -1.000000
+998 4   0.128990
+998 2331   0.078885
+998 2333   1.000000
+998 2335   0.058415
+998 2339  -0.008310
+998 2341  -1.000000
+999 4   0.128990
+999 2332   0.078885
+999 2334   1.000000
+999 2336   0.058415
+999 2340  -0.008310
+999 2342  -1.000000
+1000 4   0.200000
+1000 2331   0.075281
+1000 2335   0.102497
+1000 2337   1.000000
+1000 2339   0.022222
+1000 2341  -1.000000
+1001 4   0.200000
+1001 2332   0.075281
+1001 2336   0.102497
+1001 2338   1.000000
+1001 2340   0.022222
+1001 2342  -1.000000
+1002 4   0.031010
+1002 2343   1.000000
+1002 2345   0.039363
+1002 2349  -0.013107
+1002 2353   0.004754
+1002 2355  -1.000000
+1003 4   0.031010
+1003 2344   1.000000
+1003 2346   0.039363
+1003 2350  -0.013107
+1003 2354   0.004754
+1003 2356  -1.000000
+1004 4   0.128990
+1004 2345   0.078885
+1004 2347   1.000000
+1004 2349   0.058415
+1004 2353  -0.008310
+1004 2355  -1.000000
+1005 4   0.128990
+1005 2346   0.078885
+1005 2348   1.000000
+1005 2350   0.058415
+1005 2354  -0.008310
+1005 2356  -1.000000
+1006 4   0.200000
+1006 2345   0.075281
+1006 2349   0.102497
+1006 2351   1.000000
+1006 2353   0.022222
+1006 2355  -1.000000
+1007 4   0.200000
+1007 2346   0.075281
+1007 2350   0.102497
+1007 2352   1.000000
+1007 2354   0.022222
+1007 2356  -1.000000
+1008 4   0.031010
+1008 2357   1.000000
+1008 2359   0.039363
+1008 2363  -0.013107
+1008 2367   0.004754
+1008 2369  -1.000000
+1009 4   0.031010
+1009 2358   1.000000
+1009 2360   0.039363
+1009 2364  -0.013107
+1009 2368   0.004754
+1009 2370  -1.000000
+1010 4   0.128990
+1010 2359   0.078885
+1010 2361   1.000000
+1010 2363   0.058415
+1010 2367  -0.008310
+1010 2369  -1.000000
+1011 4   0.128990
+1011 2360   0.078885
+1011 2362   1.000000
+1011 2364   0.058415
+1011 2368  -0.008310
+1011 2370  -1.000000
+1012 4   0.200000
+1012 2359   0.075281
+1012 2363   0.102497
+1012 2365   1.000000
+1012 2367   0.022222
+1012 2369  -1.000000
+1013 4   0.200000
+1013 2360   0.075281
+1013 2364   0.102497
+1013 2366   1.000000
+1013 2368   0.022222
+1013 2370  -1.000000
+1014 4   0.031010
+1014 2371   1.000000
+1014 2373   0.039363
+1014 2377  -0.013107
+1014 2381   0.004754
+1014 2383  -1.000000
+1015 4   0.031010
+1015 2372   1.000000
+1015 2374   0.039363
+1015 2378  -0.013107
+1015 2382   0.004754
+1015 2384  -1.000000
+1016 4   0.128990
+1016 2373   0.078885
+1016 2375   1.000000
+1016 2377   0.058415
+1016 2381  -0.008310
+1016 2383  -1.000000
+1017 4   0.128990
+1017 2374   0.078885
+1017 2376   1.000000
+1017 2378   0.058415
+1017 2382  -0.008310
+1017 2384  -1.000000
+1018 4   0.200000
+1018 2373   0.075281
+1018 2377   0.102497
+1018 2379   1.000000
+1018 2381   0.022222
+1018 2383  -1.000000
+1019 4   0.200000
+1019 2374   0.075281
+1019 2378   0.102497
+1019 2380   1.000000
+1019 2382   0.022222
+1019 2384  -1.000000
+1020 4   0.031010
+1020 2385   1.000000
+1020 2387   0.039363
+1020 2391  -0.013107
+1020 2395   0.004754
+1020 2397  -1.000000
+1021 4   0.031010
+1021 2386   1.000000
+1021 2388   0.039363
+1021 2392  -0.013107
+1021 2396   0.004754
+1021 2398  -1.000000
+1022 4   0.128990
+1022 2387   0.078885
+1022 2389   1.000000
+1022 2391   0.058415
+1022 2395  -0.008310
+1022 2397  -1.000000
+1023 4   0.128990
+1023 2388   0.078885
+1023 2390   1.000000
+1023 2392   0.058415
+1023 2396  -0.008310
+1023 2398  -1.000000
+1024 4   0.200000
+1024 2387   0.075281
+1024 2391   0.102497
+1024 2393   1.000000
+1024 2395   0.022222
+1024 2397  -1.000000
+1025 4   0.200000
+1025 2388   0.075281
+1025 2392   0.102497
+1025 2394   1.000000
+1025 2396   0.022222
+1025 2398  -1.000000
+1026 4   0.031010
+1026 2399   1.000000
+1026 2401   0.039363
+1026 2405  -0.013107
+1026 2409   0.004754
+1026 2411  -1.000000
+1027 4   0.031010
+1027 2400   1.000000
+1027 2402   0.039363
+1027 2406  -0.013107
+1027 2410   0.004754
+1027 2412  -1.000000
+1028 4   0.128990
+1028 2401   0.078885
+1028 2403   1.000000
+1028 2405   0.058415
+1028 2409  -0.008310
+1028 2411  -1.000000
+1029 4   0.128990
+1029 2402   0.078885
+1029 2404   1.000000
+1029 2406   0.058415
+1029 2410  -0.008310
+1029 2412  -1.000000
+1030 4   0.200000
+1030 2401   0.075281
+1030 2405   0.102497
+1030 2407   1.000000
+1030 2409   0.022222
+1030 2411  -1.000000
+1031 4   0.200000
+1031 2402   0.075281
+1031 2406   0.102497
+1031 2408   1.000000
+1031 2410   0.022222
+1031 2412  -1.000000
+1032 4   0.031010
+1032 2413   1.000000
+1032 2415   0.039363
+1032 2419  -0.013107
+1032 2423   0.004754
+1032 2425  -1.000000
+1033 4   0.031010
+1033 2414   1.000000
+1033 2416   0.039363
+1033 2420  -0.013107
+1033 2424   0.004754
+1033 2426  -1.000000
+1034 4   0.128990
+1034 2415   0.078885
+1034 2417   1.000000
+1034 2419   0.058415
+1034 2423  -0.008310
+1034 2425  -1.000000
+1035 4   0.128990
+1035 2416   0.078885
+1035 2418   1.000000
+1035 2420   0.058415
+1035 2424  -0.008310
+1035 2426  -1.000000
+1036 4   0.200000
+1036 2415   0.075281
+1036 2419   0.102497
+1036 2421   1.000000
+1036 2423   0.022222
+1036 2425  -1.000000
+1037 4   0.200000
+1037 2416   0.075281
+1037 2420   0.102497
+1037 2422   1.000000
+1037 2424   0.022222
+1037 2426  -1.000000
+1038 4   0.031010
+1038 2427   1.000000
+1038 2429   0.039363
+1038 2433  -0.013107
+1038 2437   0.004754
+1038 2439  -1.000000
+1039 4   0.031010
+1039 2428   1.000000
+1039 2430   0.039363
+1039 2434  -0.013107
+1039 2438   0.004754
+1039 2440  -1.000000
+1040 4   0.128990
+1040 2429   0.078885
+1040 2431   1.000000
+1040 2433   0.058415
+1040 2437  -0.008310
+1040 2439  -1.000000
+1041 4   0.128990
+1041 2430   0.078885
+1041 2432   1.000000
+1041 2434   0.058415
+1041 2438  -0.008310
+1041 2440  -1.000000
+1042 4   0.200000
+1042 2429   0.075281
+1042 2433   0.102497
+1042 2435   1.000000
+1042 2437   0.022222
+1042 2439  -1.000000
+1043 4   0.200000
+1043 2430   0.075281
+1043 2434   0.102497
+1043 2436   1.000000
+1043 2438   0.022222
+1043 2440  -1.000000
+1044 4   0.031010
+1044 2441   1.000000
+1044 2443   0.039363
+1044 2447  -0.013107
+1044 2451   0.004754
+1044 2453  -1.000000
+1045 4   0.031010
+1045 2442   1.000000
+1045 2444   0.039363
+1045 2448  -0.013107
+1045 2452   0.004754
+1045 2454  -1.000000
+1046 4   0.128990
+1046 2443   0.078885
+1046 2445   1.000000
+1046 2447   0.058415
+1046 2451  -0.008310
+1046 2453  -1.000000
+1047 4   0.128990
+1047 2444   0.078885
+1047 2446   1.000000
+1047 2448   0.058415
+1047 2452  -0.008310
+1047 2454  -1.000000
+1048 4   0.200000
+1048 2443   0.075281
+1048 2447   0.102497
+1048 2449   1.000000
+1048 2451   0.022222
+1048 2453  -1.000000
+1049 4   0.200000
+1049 2444   0.075281
+1049 2448   0.102497
+1049 2450   1.000000
+1049 2452   0.022222
+1049 2454  -1.000000
+1050 4   0.031010
+1050 2455   1.000000
+1050 2457   0.039363
+1050 2461  -0.013107
+1050 2465   0.004754
+1050 2467  -1.000000
+1051 4   0.031010
+1051 2456   1.000000
+1051 2458   0.039363
+1051 2462  -0.013107
+1051 2466   0.004754
+1051 2468  -1.000000
+1052 4   0.128990
+1052 2457   0.078885
+1052 2459   1.000000
+1052 2461   0.058415
+1052 2465  -0.008310
+1052 2467  -1.000000
+1053 4   0.128990
+1053 2458   0.078885
+1053 2460   1.000000
+1053 2462   0.058415
+1053 2466  -0.008310
+1053 2468  -1.000000
+1054 4   0.200000
+1054 2457   0.075281
+1054 2461   0.102497
+1054 2463   1.000000
+1054 2465   0.022222
+1054 2467  -1.000000
+1055 4   0.200000
+1055 2458   0.075281
+1055 2462   0.102497
+1055 2464   1.000000
+1055 2466   0.022222
+1055 2468  -1.000000
+1056 4   0.031010
+1056 2469   1.000000
+1056 2471   0.039363
+1056 2475  -0.013107
+1056 2479   0.004754
+1056 2481  -1.000000
+1057 4   0.031010
+1057 2470   1.000000
+1057 2472   0.039363
+1057 2476  -0.013107
+1057 2480   0.004754
+1057 2482  -1.000000
+1058 4   0.128990
+1058 2471   0.078885
+1058 2473   1.000000
+1058 2475   0.058415
+1058 2479  -0.008310
+1058 2481  -1.000000
+1059 4   0.128990
+1059 2472   0.078885
+1059 2474   1.000000
+1059 2476   0.058415
+1059 2480  -0.008310
+1059 2482  -1.000000
+1060 4   0.200000
+1060 2471   0.075281
+1060 2475   0.102497
+1060 2477   1.000000
+1060 2479   0.022222
+1060 2481  -1.000000
+1061 4   0.200000
+1061 2472   0.075281
+1061 2476   0.102497
+1061 2478   1.000000
+1061 2480   0.022222
+1061 2482  -1.000000
+1062 4   0.031010
+1062 2483   1.000000
+1062 2485   0.039363
+1062 2489  -0.013107
+1062 2493   0.004754
+1062 2495  -1.000000
+1063 4   0.031010
+1063 2484   1.000000
+1063 2486   0.039363
+1063 2490  -0.013107
+1063 2494   0.004754
+1063 2496  -1.000000
+1064 4   0.128990
+1064 2485   0.078885
+1064 2487   1.000000
+1064 2489   0.058415
+1064 2493  -0.008310
+1064 2495  -1.000000
+1065 4   0.128990
+1065 2486   0.078885
+1065 2488   1.000000
+1065 2490   0.058415
+1065 2494  -0.008310
+1065 2496  -1.000000
+1066 4   0.200000
+1066 2485   0.075281
+1066 2489   0.102497
+1066 2491   1.000000
+1066 2493   0.022222
+1066 2495  -1.000000
+1067 4   0.200000
+1067 2486   0.075281
+1067 2490   0.102497
+1067 2492   1.000000
+1067 2494   0.022222
+1067 2496  -1.000000
+1068 4   0.031010
+1068 2497   1.000000
+1068 2499   0.039363
+1068 2503  -0.013107
+1068 2507   0.004754
+1068 2509  -1.000000
+1069 4   0.031010
+1069 2498   1.000000
+1069 2500   0.039363
+1069 2504  -0.013107
+1069 2508   0.004754
+1069 2510  -1.000000
+1070 4   0.128990
+1070 2499   0.078885
+1070 2501   1.000000
+1070 2503   0.058415
+1070 2507  -0.008310
+1070 2509  -1.000000
+1071 4   0.128990
+1071 2500   0.078885
+1071 2502   1.000000
+1071 2504   0.058415
+1071 2508  -0.008310
+1071 2510  -1.000000
+1072 4   0.200000
+1072 2499   0.075281
+1072 2503   0.102497
+1072 2505   1.000000
+1072 2507   0.022222
+1072 2509  -1.000000
+1073 4   0.200000
+1073 2500   0.075281
+1073 2504   0.102497
+1073 2506   1.000000
+1073 2508   0.022222
+1073 2510  -1.000000
+1074 4   0.031010
+1074 2511   1.000000
+1074 2513   0.039363
+1074 2517  -0.013107
+1074 2521   0.004754
+1074 2523  -1.000000
+1075 4   0.031010
+1075 2512   1.000000
+1075 2514   0.039363
+1075 2518  -0.013107
+1075 2522   0.004754
+1075 2524  -1.000000
+1076 4   0.128990
+1076 2513   0.078885
+1076 2515   1.000000
+1076 2517   0.058415
+1076 2521  -0.008310
+1076 2523  -1.000000
+1077 4   0.128990
+1077 2514   0.078885
+1077 2516   1.000000
+1077 2518   0.058415
+1077 2522  -0.008310
+1077 2524  -1.000000
+1078 4   0.200000
+1078 2513   0.075281
+1078 2517   0.102497
+1078 2519   1.000000
+1078 2521   0.022222
+1078 2523  -1.000000
+1079 4   0.200000
+1079 2514   0.075281
+1079 2518   0.102497
+1079 2520   1.000000
+1079 2522   0.022222
+1079 2524  -1.000000
+1080 4   0.031010
+1080 2525   1.000000
+1080 2527   0.039363
+1080 2531  -0.013107
+1080 2535   0.004754
+1080 2537  -1.000000
+1081 4   0.031010
+1081 2526   1.000000
+1081 2528   0.039363
+1081 2532  -0.013107
+1081 2536   0.004754
+1081 2538  -1.000000
+1082 4   0.128990
+1082 2527   0.078885
+1082 2529   1.000000
+1082 2531   0.058415
+1082 2535  -0.008310
+1082 2537  -1.000000
+1083 4   0.128990
+1083 2528   0.078885
+1083 2530   1.000000
+1083 2532   0.058415
+1083 2536  -0.008310
+1083 2538  -1.000000
+1084 4   0.200000
+1084 2527   0.075281
+1084 2531   0.102497
+1084 2533   1.000000
+1084 2535   0.022222
+1084 2537  -1.000000
+1085 4   0.200000
+1085 2528   0.075281
+1085 2532   0.102497
+1085 2534   1.000000
+1085 2536   0.022222
+1085 2538  -1.000000
+1086 4   0.031010
+1086 2539   1.000000
+1086 2541   0.039363
+1086 2545  -0.013107
+1086 2549   0.004754
+1086 2551  -1.000000
+1087 4   0.031010
+1087 2540   1.000000
+1087 2542   0.039363
+1087 2546  -0.013107
+1087 2550   0.004754
+1087 2552  -1.000000
+1088 4   0.128990
+1088 2541   0.078885
+1088 2543   1.000000
+1088 2545   0.058415
+1088 2549  -0.008310
+1088 2551  -1.000000
+1089 4   0.128990
+1089 2542   0.078885
+1089 2544   1.000000
+1089 2546   0.058415
+1089 2550  -0.008310
+1089 2552  -1.000000
+1090 4   0.200000
+1090 2541   0.075281
+1090 2545   0.102497
+1090 2547   1.000000
+1090 2549   0.022222
+1090 2551  -1.000000
+1091 4   0.200000
+1091 2542   0.075281
+1091 2546   0.102497
+1091 2548   1.000000
+1091 2550   0.022222
+1091 2552  -1.000000
+1092 4   0.031010
+1092 2553   1.000000
+1092 2555   0.039363
+1092 2559  -0.013107
+1092 2563   0.004754
+1092 2565  -1.000000
+1093 4   0.031010
+1093 2554   1.000000
+1093 2556   0.039363
+1093 2560  -0.013107
+1093 2564   0.004754
+1093 2566  -1.000000
+1094 4   0.128990
+1094 2555   0.078885
+1094 2557   1.000000
+1094 2559   0.058415
+1094 2563  -0.008310
+1094 2565  -1.000000
+1095 4   0.128990
+1095 2556   0.078885
+1095 2558   1.000000
+1095 2560   0.058415
+1095 2564  -0.008310
+1095 2566  -1.000000
+1096 4   0.200000
+1096 2555   0.075281
+1096 2559   0.102497
+1096 2561   1.000000
+1096 2563   0.022222
+1096 2565  -1.000000
+1097 4   0.200000
+1097 2556   0.075281
+1097 2560   0.102497
+1097 2562   1.000000
+1097 2564   0.022222
+1097 2566  -1.000000
+1098 4   0.031010
+1098 2567   1.000000
+1098 2569   0.039363
+1098 2573  -0.013107
+1098 2577   0.004754
+1098 2579  -1.000000
+1099 4   0.031010
+1099 2568   1.000000
+1099 2570   0.039363
+1099 2574  -0.013107
+1099 2578   0.004754
+1099 2580  -1.000000
+1100 4   0.128990
+1100 2569   0.078885
+1100 2571   1.000000
+1100 2573   0.058415
+1100 2577  -0.008310
+1100 2579  -1.000000
+1101 4   0.128990
+1101 2570   0.078885
+1101 2572   1.000000
+1101 2574   0.058415
+1101 2578  -0.008310
+1101 2580  -1.000000
+1102 4   0.200000
+1102 2569   0.075281
+1102 2573   0.102497
+1102 2575   1.000000
+1102 2577   0.022222
+1102 2579  -1.000000
+1103 4   0.200000
+1103 2570   0.075281
+1103 2574   0.102497
+1103 2576   1.000000
+1103 2578   0.022222
+1103 2580  -1.000000
+1104 4   0.031010
+1104 2581   1.000000
+1104 2583   0.039363
+1104 2587  -0.013107
+1104 2591   0.004754
+1104 2593  -1.000000
+1105 4   0.031010
+1105 2582   1.000000
+1105 2584   0.039363
+1105 2588  -0.013107
+1105 2592   0.004754
+1105 2594  -1.000000
+1106 4   0.128990
+1106 2583   0.078885
+1106 2585   1.000000
+1106 2587   0.058415
+1106 2591  -0.008310
+1106 2593  -1.000000
+1107 4   0.128990
+1107 2584   0.078885
+1107 2586   1.000000
+1107 2588   0.058415
+1107 2592  -0.008310
+1107 2594  -1.000000
+1108 4   0.200000
+1108 2583   0.075281
+1108 2587   0.102497
+1108 2589   1.000000
+1108 2591   0.022222
+1108 2593  -1.000000
+1109 4   0.200000
+1109 2584   0.075281
+1109 2588   0.102497
+1109 2590   1.000000
+1109 2592   0.022222
+1109 2594  -1.000000
+1110 4   0.031010
+1110 2595   1.000000
+1110 2597   0.039363
+1110 2601  -0.013107
+1110 2605   0.004754
+1110 2607  -1.000000
+1111 4   0.031010
+1111 2596   1.000000
+1111 2598   0.039363
+1111 2602  -0.013107
+1111 2606   0.004754
+1111 2608  -1.000000
+1112 4   0.128990
+1112 2597   0.078885
+1112 2599   1.000000
+1112 2601   0.058415
+1112 2605  -0.008310
+1112 2607  -1.000000
+1113 4   0.128990
+1113 2598   0.078885
+1113 2600   1.000000
+1113 2602   0.058415
+1113 2606  -0.008310
+1113 2608  -1.000000
+1114 4   0.200000
+1114 2597   0.075281
+1114 2601   0.102497
+1114 2603   1.000000
+1114 2605   0.022222
+1114 2607  -1.000000
+1115 4   0.200000
+1115 2598   0.075281
+1115 2602   0.102497
+1115 2604   1.000000
+1115 2606   0.022222
+1115 2608  -1.000000
+1116 4   0.031010
+1116 2609   1.000000
+1116 2611   0.039363
+1116 2615  -0.013107
+1116 2619   0.004754
+1116 2621  -1.000000
+1117 4   0.031010
+1117 2610   1.000000
+1117 2612   0.039363
+1117 2616  -0.013107
+1117 2620   0.004754
+1117 2622  -1.000000
+1118 4   0.128990
+1118 2611   0.078885
+1118 2613   1.000000
+1118 2615   0.058415
+1118 2619  -0.008310
+1118 2621  -1.000000
+1119 4   0.128990
+1119 2612   0.078885
+1119 2614   1.000000
+1119 2616   0.058415
+1119 2620  -0.008310
+1119 2622  -1.000000
+1120 4   0.200000
+1120 2611   0.075281
+1120 2615   0.102497
+1120 2617   1.000000
+1120 2619   0.022222
+1120 2621  -1.000000
+1121 4   0.200000
+1121 2612   0.075281
+1121 2616   0.102497
+1121 2618   1.000000
+1121 2620   0.022222
+1121 2622  -1.000000
+1122 4   0.031010
+1122 2623   1.000000
+1122 2625   0.039363
+1122 2629  -0.013107
+1122 2633   0.004754
+1122 2635  -1.000000
+1123 4   0.031010
+1123 2624   1.000000
+1123 2626   0.039363
+1123 2630  -0.013107
+1123 2634   0.004754
+1123 2636  -1.000000
+1124 4   0.128990
+1124 2625   0.078885
+1124 2627   1.000000
+1124 2629   0.058415
+1124 2633  -0.008310
+1124 2635  -1.000000
+1125 4   0.128990
+1125 2626   0.078885
+1125 2628   1.000000
+1125 2630   0.058415
+1125 2634  -0.008310
+1125 2636  -1.000000
+1126 4   0.200000
+1126 2625   0.075281
+1126 2629   0.102497
+1126 2631   1.000000
+1126 2633   0.022222
+1126 2635  -1.000000
+1127 4   0.200000
+1127 2626   0.075281
+1127 2630   0.102497
+1127 2632   1.000000
+1127 2634   0.022222
+1127 2636  -1.000000
+1128 4   0.031010
+1128 2637   1.000000
+1128 2639   0.039363
+1128 2643  -0.013107
+1128 2647   0.004754
+1128 2649  -1.000000
+1129 4   0.031010
+1129 2638   1.000000
+1129 2640   0.039363
+1129 2644  -0.013107
+1129 2648   0.004754
+1129 2650  -1.000000
+1130 4   0.128990
+1130 2639   0.078885
+1130 2641   1.000000
+1130 2643   0.058415
+1130 2647  -0.008310
+1130 2649  -1.000000
+1131 4   0.128990
+1131 2640   0.078885
+1131 2642   1.000000
+1131 2644   0.058415
+1131 2648  -0.008310
+1131 2650  -1.000000
+1132 4   0.200000
+1132 2639   0.075281
+1132 2643   0.102497
+1132 2645   1.000000
+1132 2647   0.022222
+1132 2649  -1.000000
+1133 4   0.200000
+1133 2640   0.075281
+1133 2644   0.102497
+1133 2646   1.000000
+1133 2648   0.022222
+1133 2650  -1.000000
+1134 4   0.031010
+1134 2651   1.000000
+1134 2653   0.039363
+1134 2657  -0.013107
+1134 2661   0.004754
+1134 2663  -1.000000
+1135 4   0.031010
+1135 2652   1.000000
+1135 2654   0.039363
+1135 2658  -0.013107
+1135 2662   0.004754
+1135 2664  -1.000000
+1136 4   0.128990
+1136 2653   0.078885
+1136 2655   1.000000
+1136 2657   0.058415
+1136 2661  -0.008310
+1136 2663  -1.000000
+1137 4   0.128990
+1137 2654   0.078885
+1137 2656   1.000000
+1137 2658   0.058415
+1137 2662  -0.008310
+1137 2664  -1.000000
+1138 4   0.200000
+1138 2653   0.075281
+1138 2657   0.102497
+1138 2659   1.000000
+1138 2661   0.022222
+1138 2663  -1.000000
+1139 4   0.200000
+1139 2654   0.075281
+1139 2658   0.102497
+1139 2660   1.000000
+1139 2662   0.022222
+1139 2664  -1.000000
+1140 4   0.031010
+1140 2665   1.000000
+1140 2667   0.039363
+1140 2671  -0.013107
+1140 2675   0.004754
+1140 2677  -1.000000
+1141 4   0.031010
+1141 2666   1.000000
+1141 2668   0.039363
+1141 2672  -0.013107
+1141 2676   0.004754
+1141 2678  -1.000000
+1142 4   0.128990
+1142 2667   0.078885
+1142 2669   1.000000
+1142 2671   0.058415
+1142 2675  -0.008310
+1142 2677  -1.000000
+1143 4   0.128990
+1143 2668   0.078885
+1143 2670   1.000000
+1143 2672   0.058415
+1143 2676  -0.008310
+1143 2678  -1.000000
+1144 4   0.200000
+1144 2667   0.075281
+1144 2671   0.102497
+1144 2673   1.000000
+1144 2675   0.022222
+1144 2677  -1.000000
+1145 4   0.200000
+1145 2668   0.075281
+1145 2672   0.102497
+1145 2674   1.000000
+1145 2676   0.022222
+1145 2678  -1.000000
+1146 4   0.031010
+1146 2679   1.000000
+1146 2681   0.039363
+1146 2685  -0.013107
+1146 2689   0.004754
+1146 2691  -1.000000
+1147 4   0.031010
+1147 2680   1.000000
+1147 2682   0.039363
+1147 2686  -0.013107
+1147 2690   0.004754
+1147 2692  -1.000000
+1148 4   0.128990
+1148 2681   0.078885
+1148 2683   1.000000
+1148 2685   0.058415
+1148 2689  -0.008310
+1148 2691  -1.000000
+1149 4   0.128990
+1149 2682   0.078885
+1149 2684   1.000000
+1149 2686   0.058415
+1149 2690  -0.008310
+1149 2692  -1.000000
+1150 4   0.200000
+1150 2681   0.075281
+1150 2685   0.102497
+1150 2687   1.000000
+1150 2689   0.022222
+1150 2691  -1.000000
+1151 4   0.200000
+1151 2682   0.075281
+1151 2686   0.102497
+1151 2688   1.000000
+1151 2690   0.022222
+1151 2692  -1.000000
+1152 4   0.031010
+1152 2693   1.000000
+1152 2695   0.039363
+1152 2699  -0.013107
+1152 2703   0.004754
+1152 2705  -1.000000
+1153 4   0.031010
+1153 2694   1.000000
+1153 2696   0.039363
+1153 2700  -0.013107
+1153 2704   0.004754
+1153 2706  -1.000000
+1154 4   0.128990
+1154 2695   0.078885
+1154 2697   1.000000
+1154 2699   0.058415
+1154 2703  -0.008310
+1154 2705  -1.000000
+1155 4   0.128990
+1155 2696   0.078885
+1155 2698   1.000000
+1155 2700   0.058415
+1155 2704  -0.008310
+1155 2706  -1.000000
+1156 4   0.200000
+1156 2695   0.075281
+1156 2699   0.102497
+1156 2701   1.000000
+1156 2703   0.022222
+1156 2705  -1.000000
+1157 4   0.200000
+1157 2696   0.075281
+1157 2700   0.102497
+1157 2702   1.000000
+1157 2704   0.022222
+1157 2706  -1.000000
+1158 4   0.031010
+1158 2707   1.000000
+1158 2709   0.039363
+1158 2713  -0.013107
+1158 2717   0.004754
+1158 2719  -1.000000
+1159 4   0.031010
+1159 2708   1.000000
+1159 2710   0.039363
+1159 2714  -0.013107
+1159 2718   0.004754
+1159 2720  -1.000000
+1160 4   0.128990
+1160 2709   0.078885
+1160 2711   1.000000
+1160 2713   0.058415
+1160 2717  -0.008310
+1160 2719  -1.000000
+1161 4   0.128990
+1161 2710   0.078885
+1161 2712   1.000000
+1161 2714   0.058415
+1161 2718  -0.008310
+1161 2720  -1.000000
+1162 4   0.200000
+1162 2709   0.075281
+1162 2713   0.102497
+1162 2715   1.000000
+1162 2717   0.022222
+1162 2719  -1.000000
+1163 4   0.200000
+1163 2710   0.075281
+1163 2714   0.102497
+1163 2716   1.000000
+1163 2718   0.022222
+1163 2720  -1.000000
+1164 4   0.031010
+1164 2721   1.000000
+1164 2723   0.039363
+1164 2727  -0.013107
+1164 2731   0.004754
+1164 2733  -1.000000
+1165 4   0.031010
+1165 2722   1.000000
+1165 2724   0.039363
+1165 2728  -0.013107
+1165 2732   0.004754
+1165 2734  -1.000000
+1166 4   0.128990
+1166 2723   0.078885
+1166 2725   1.000000
+1166 2727   0.058415
+1166 2731  -0.008310
+1166 2733  -1.000000
+1167 4   0.128990
+1167 2724   0.078885
+1167 2726   1.000000
+1167 2728   0.058415
+1167 2732  -0.008310
+1167 2734  -1.000000
+1168 4   0.200000
+1168 2723   0.075281
+1168 2727   0.102497
+1168 2729   1.000000
+1168 2731   0.022222
+1168 2733  -1.000000
+1169 4   0.200000
+1169 2724   0.075281
+1169 2728   0.102497
+1169 2730   1.000000
+1169 2732   0.022222
+1169 2734  -1.000000
+1170 4   0.031010
+1170 2735   1.000000
+1170 2737   0.039363
+1170 2741  -0.013107
+1170 2745   0.004754
+1170 2747  -1.000000
+1171 4   0.031010
+1171 2736   1.000000
+1171 2738   0.039363
+1171 2742  -0.013107
+1171 2746   0.004754
+1171 2748  -1.000000
+1172 4   0.128990
+1172 2737   0.078885
+1172 2739   1.000000
+1172 2741   0.058415
+1172 2745  -0.008310
+1172 2747  -1.000000
+1173 4   0.128990
+1173 2738   0.078885
+1173 2740   1.000000
+1173 2742   0.058415
+1173 2746  -0.008310
+1173 2748  -1.000000
+1174 4   0.200000
+1174 2737   0.075281
+1174 2741   0.102497
+1174 2743   1.000000
+1174 2745   0.022222
+1174 2747  -1.000000
+1175 4   0.200000
+1175 2738   0.075281
+1175 2742   0.102497
+1175 2744   1.000000
+1175 2746   0.022222
+1175 2748  -1.000000
+1176 4   0.031010
+1176 2749   1.000000
+1176 2751   0.039363
+1176 2755  -0.013107
+1176 2759   0.004754
+1176 2761  -1.000000
+1177 4   0.031010
+1177 2750   1.000000
+1177 2752   0.039363
+1177 2756  -0.013107
+1177 2760   0.004754
+1177 2762  -1.000000
+1178 4   0.128990
+1178 2751   0.078885
+1178 2753   1.000000
+1178 2755   0.058415
+1178 2759  -0.008310
+1178 2761  -1.000000
+1179 4   0.128990
+1179 2752   0.078885
+1179 2754   1.000000
+1179 2756   0.058415
+1179 2760  -0.008310
+1179 2762  -1.000000
+1180 4   0.200000
+1180 2751   0.075281
+1180 2755   0.102497
+1180 2757   1.000000
+1180 2759   0.022222
+1180 2761  -1.000000
+1181 4   0.200000
+1181 2752   0.075281
+1181 2756   0.102497
+1181 2758   1.000000
+1181 2760   0.022222
+1181 2762  -1.000000
+1182 4   0.031010
+1182 2763   1.000000
+1182 2765   0.039363
+1182 2769  -0.013107
+1182 2773   0.004754
+1182 2775  -1.000000
+1183 4   0.031010
+1183 2764   1.000000
+1183 2766   0.039363
+1183 2770  -0.013107
+1183 2774   0.004754
+1183 2776  -1.000000
+1184 4   0.128990
+1184 2765   0.078885
+1184 2767   1.000000
+1184 2769   0.058415
+1184 2773  -0.008310
+1184 2775  -1.000000
+1185 4   0.128990
+1185 2766   0.078885
+1185 2768   1.000000
+1185 2770   0.058415
+1185 2774  -0.008310
+1185 2776  -1.000000
+1186 4   0.200000
+1186 2765   0.075281
+1186 2769   0.102497
+1186 2771   1.000000
+1186 2773   0.022222
+1186 2775  -1.000000
+1187 4   0.200000
+1187 2766   0.075281
+1187 2770   0.102497
+1187 2772   1.000000
+1187 2774   0.022222
+1187 2776  -1.000000
+1188 4   0.031010
+1188 2777   1.000000
+1188 2779   0.039363
+1188 2783  -0.013107
+1188 2787   0.004754
+1188 2789  -1.000000
+1189 4   0.031010
+1189 2778   1.000000
+1189 2780   0.039363
+1189 2784  -0.013107
+1189 2788   0.004754
+1189 2790  -1.000000
+1190 4   0.128990
+1190 2779   0.078885
+1190 2781   1.000000
+1190 2783   0.058415
+1190 2787  -0.008310
+1190 2789  -1.000000
+1191 4   0.128990
+1191 2780   0.078885
+1191 2782   1.000000
+1191 2784   0.058415
+1191 2788  -0.008310
+1191 2790  -1.000000
+1192 4   0.200000
+1192 2779   0.075281
+1192 2783   0.102497
+1192 2785   1.000000
+1192 2787   0.022222
+1192 2789  -1.000000
+1193 4   0.200000
+1193 2780   0.075281
+1193 2784   0.102497
+1193 2786   1.000000
+1193 2788   0.022222
+1193 2790  -1.000000
+1194 4   0.031010
+1194 2791   1.000000
+1194 2793   0.039363
+1194 2797  -0.013107
+1194 2801   0.004754
+1194 2803  -1.000000
+1195 4   0.031010
+1195 2792   1.000000
+1195 2794   0.039363
+1195 2798  -0.013107
+1195 2802   0.004754
+1195 2804  -1.000000
+1196 4   0.128990
+1196 2793   0.078885
+1196 2795   1.000000
+1196 2797   0.058415
+1196 2801  -0.008310
+1196 2803  -1.000000
+1197 4   0.128990
+1197 2794   0.078885
+1197 2796   1.000000
+1197 2798   0.058415
+1197 2802  -0.008310
+1197 2804  -1.000000
+1198 4   0.200000
+1198 2793   0.075281
+1198 2797   0.102497
+1198 2799   1.000000
+1198 2801   0.022222
+1198 2803  -1.000000
+1199 4   0.200000
+1199 2794   0.075281
+1199 2798   0.102497
+1199 2800   1.000000
+1199 2802   0.022222
+1199 2804  -1.000000
+1200 4   0.031010
+1200 2805   1.000000
+1200 2807   0.039363
+1200 2811  -0.013107
+1200 2815   0.004754
+1200 2817  -1.000000
+1201 4   0.031010
+1201 2806   1.000000
+1201 2808   0.039363
+1201 2812  -0.013107
+1201 2816   0.004754
+1201 2818  -1.000000
+1202 4   0.128990
+1202 2807   0.078885
+1202 2809   1.000000
+1202 2811   0.058415
+1202 2815  -0.008310
+1202 2817  -1.000000
+1203 4   0.128990
+1203 2808   0.078885
+1203 2810   1.000000
+1203 2812   0.058415
+1203 2816  -0.008310
+1203 2818  -1.000000
+1204 4   0.200000
+1204 2807   0.075281
+1204 2811   0.102497
+1204 2813   1.000000
+1204 2815   0.022222
+1204 2817  -1.000000
+1205 4   0.200000
+1205 2808   0.075281
+1205 2812   0.102497
+1205 2814   1.000000
+1205 2816   0.022222
+1205 2818  -1.000000
+1206 4   0.031010
+1206 2819   1.000000
+1206 2821   0.039363
+1206 2825  -0.013107
+1206 2829   0.004754
+1206 2831  -1.000000
+1207 4   0.031010
+1207 2820   1.000000
+1207 2822   0.039363
+1207 2826  -0.013107
+1207 2830   0.004754
+1207 2832  -1.000000
+1208 4   0.128990
+1208 2821   0.078885
+1208 2823   1.000000
+1208 2825   0.058415
+1208 2829  -0.008310
+1208 2831  -1.000000
+1209 4   0.128990
+1209 2822   0.078885
+1209 2824   1.000000
+1209 2826   0.058415
+1209 2830  -0.008310
+1209 2832  -1.000000
+1210 4   0.200000
+1210 2821   0.075281
+1210 2825   0.102497
+1210 2827   1.000000
+1210 2829   0.022222
+1210 2831  -1.000000
+1211 4   0.200000
+1211 2822   0.075281
+1211 2826   0.102497
+1211 2828   1.000000
+1211 2830   0.022222
+1211 2832  -1.000000
+1212 4   0.031010
+1212 2833   1.000000
+1212 2835   0.039363
+1212 2839  -0.013107
+1212 2843   0.004754
+1212 2845  -1.000000
+1213 4   0.031010
+1213 2834   1.000000
+1213 2836   0.039363
+1213 2840  -0.013107
+1213 2844   0.004754
+1213 2846  -1.000000
+1214 4   0.128990
+1214 2835   0.078885
+1214 2837   1.000000
+1214 2839   0.058415
+1214 2843  -0.008310
+1214 2845  -1.000000
+1215 4   0.128990
+1215 2836   0.078885
+1215 2838   1.000000
+1215 2840   0.058415
+1215 2844  -0.008310
+1215 2846  -1.000000
+1216 4   0.200000
+1216 2835   0.075281
+1216 2839   0.102497
+1216 2841   1.000000
+1216 2843   0.022222
+1216 2845  -1.000000
+1217 4   0.200000
+1217 2836   0.075281
+1217 2840   0.102497
+1217 2842   1.000000
+1217 2844   0.022222
+1217 2846  -1.000000
+1218 4   0.031010
+1218 2847   1.000000
+1218 2849   0.039363
+1218 2853  -0.013107
+1218 2857   0.004754
+1218 2859  -1.000000
+1219 4   0.031010
+1219 2848   1.000000
+1219 2850   0.039363
+1219 2854  -0.013107
+1219 2858   0.004754
+1219 2860  -1.000000
+1220 4   0.128990
+1220 2849   0.078885
+1220 2851   1.000000
+1220 2853   0.058415
+1220 2857  -0.008310
+1220 2859  -1.000000
+1221 4   0.128990
+1221 2850   0.078885
+1221 2852   1.000000
+1221 2854   0.058415
+1221 2858  -0.008310
+1221 2860  -1.000000
+1222 4   0.200000
+1222 2849   0.075281
+1222 2853   0.102497
+1222 2855   1.000000
+1222 2857   0.022222
+1222 2859  -1.000000
+1223 4   0.200000
+1223 2850   0.075281
+1223 2854   0.102497
+1223 2856   1.000000
+1223 2858   0.022222
+1223 2860  -1.000000
+1224 4   0.031010
+1224 2861   1.000000
+1224 2863   0.039363
+1224 2867  -0.013107
+1224 2871   0.004754
+1224 2873  -1.000000
+1225 4   0.031010
+1225 2862   1.000000
+1225 2864   0.039363
+1225 2868  -0.013107
+1225 2872   0.004754
+1225 2874  -1.000000
+1226 4   0.128990
+1226 2863   0.078885
+1226 2865   1.000000
+1226 2867   0.058415
+1226 2871  -0.008310
+1226 2873  -1.000000
+1227 4   0.128990
+1227 2864   0.078885
+1227 2866   1.000000
+1227 2868   0.058415
+1227 2872  -0.008310
+1227 2874  -1.000000
+1228 4   0.200000
+1228 2863   0.075281
+1228 2867   0.102497
+1228 2869   1.000000
+1228 2871   0.022222
+1228 2873  -1.000000
+1229 4   0.200000
+1229 2864   0.075281
+1229 2868   0.102497
+1229 2870   1.000000
+1229 2872   0.022222
+1229 2874  -1.000000
+1230 4   0.031010
+1230 2875   1.000000
+1230 2877   0.039363
+1230 2881  -0.013107
+1230 2885   0.004754
+1230 2887  -1.000000
+1231 4   0.031010
+1231 2876   1.000000
+1231 2878   0.039363
+1231 2882  -0.013107
+1231 2886   0.004754
+1231 2888  -1.000000
+1232 4   0.128990
+1232 2877   0.078885
+1232 2879   1.000000
+1232 2881   0.058415
+1232 2885  -0.008310
+1232 2887  -1.000000
+1233 4   0.128990
+1233 2878   0.078885
+1233 2880   1.000000
+1233 2882   0.058415
+1233 2886  -0.008310
+1233 2888  -1.000000
+1234 4   0.200000
+1234 2877   0.075281
+1234 2881   0.102497
+1234 2883   1.000000
+1234 2885   0.022222
+1234 2887  -1.000000
+1235 4   0.200000
+1235 2878   0.075281
+1235 2882   0.102497
+1235 2884   1.000000
+1235 2886   0.022222
+1235 2888  -1.000000
+1236 4   0.031010
+1236 2889   1.000000
+1236 2891   0.039363
+1236 2895  -0.013107
+1236 2899   0.004754
+1236 2901  -1.000000
+1237 4   0.031010
+1237 2890   1.000000
+1237 2892   0.039363
+1237 2896  -0.013107
+1237 2900   0.004754
+1237 2902  -1.000000
+1238 4   0.128990
+1238 2891   0.078885
+1238 2893   1.000000
+1238 2895   0.058415
+1238 2899  -0.008310
+1238 2901  -1.000000
+1239 4   0.128990
+1239 2892   0.078885
+1239 2894   1.000000
+1239 2896   0.058415
+1239 2900  -0.008310
+1239 2902  -1.000000
+1240 4   0.200000
+1240 2891   0.075281
+1240 2895   0.102497
+1240 2897   1.000000
+1240 2899   0.022222
+1240 2901  -1.000000
+1241 4   0.200000
+1241 2892   0.075281
+1241 2896   0.102497
+1241 2898   1.000000
+1241 2900   0.022222
+1241 2902  -1.000000
+1242 4   0.031010
+1242 2903   1.000000
+1242 2905   0.039363
+1242 2909  -0.013107
+1242 2913   0.004754
+1242 2915  -1.000000
+1243 4   0.031010
+1243 2904   1.000000
+1243 2906   0.039363
+1243 2910  -0.013107
+1243 2914   0.004754
+1243 2916  -1.000000
+1244 4   0.128990
+1244 2905   0.078885
+1244 2907   1.000000
+1244 2909   0.058415
+1244 2913  -0.008310
+1244 2915  -1.000000
+1245 4   0.128990
+1245 2906   0.078885
+1245 2908   1.000000
+1245 2910   0.058415
+1245 2914  -0.008310
+1245 2916  -1.000000
+1246 4   0.200000
+1246 2905   0.075281
+1246 2909   0.102497
+1246 2911   1.000000
+1246 2913   0.022222
+1246 2915  -1.000000
+1247 4   0.200000
+1247 2906   0.075281
+1247 2910   0.102497
+1247 2912   1.000000
+1247 2914   0.022222
+1247 2916  -1.000000
+1248 4   0.031010
+1248 2917   1.000000
+1248 2919   0.039363
+1248 2923  -0.013107
+1248 2927   0.004754
+1248 2929  -1.000000
+1249 4   0.031010
+1249 2918   1.000000
+1249 2920   0.039363
+1249 2924  -0.013107
+1249 2928   0.004754
+1249 2930  -1.000000
+1250 4   0.128990
+1250 2919   0.078885
+1250 2921   1.000000
+1250 2923   0.058415
+1250 2927  -0.008310
+1250 2929  -1.000000
+1251 4   0.128990
+1251 2920   0.078885
+1251 2922   1.000000
+1251 2924   0.058415
+1251 2928  -0.008310
+1251 2930  -1.000000
+1252 4   0.200000
+1252 2919   0.075281
+1252 2923   0.102497
+1252 2925   1.000000
+1252 2927   0.022222
+1252 2929  -1.000000
+1253 4   0.200000
+1253 2920   0.075281
+1253 2924   0.102497
+1253 2926   1.000000
+1253 2928   0.022222
+1253 2930  -1.000000
+1254 4   0.031010
+1254 2931   1.000000
+1254 2933   0.039363
+1254 2937  -0.013107
+1254 2941   0.004754
+1254 2943  -1.000000
+1255 4   0.031010
+1255 2932   1.000000
+1255 2934   0.039363
+1255 2938  -0.013107
+1255 2942   0.004754
+1255 2944  -1.000000
+1256 4   0.128990
+1256 2933   0.078885
+1256 2935   1.000000
+1256 2937   0.058415
+1256 2941  -0.008310
+1256 2943  -1.000000
+1257 4   0.128990
+1257 2934   0.078885
+1257 2936   1.000000
+1257 2938   0.058415
+1257 2942  -0.008310
+1257 2944  -1.000000
+1258 4   0.200000
+1258 2933   0.075281
+1258 2937   0.102497
+1258 2939   1.000000
+1258 2941   0.022222
+1258 2943  -1.000000
+1259 4   0.200000
+1259 2934   0.075281
+1259 2938   0.102497
+1259 2940   1.000000
+1259 2942   0.022222
+1259 2944  -1.000000
+1260 4   0.031010
+1260 2945   1.000000
+1260 2947   0.039363
+1260 2951  -0.013107
+1260 2955   0.004754
+1260 2957  -1.000000
+1261 4   0.031010
+1261 2946   1.000000
+1261 2948   0.039363
+1261 2952  -0.013107
+1261 2956   0.004754
+1261 2958  -1.000000
+1262 4   0.128990
+1262 2947   0.078885
+1262 2949   1.000000
+1262 2951   0.058415
+1262 2955  -0.008310
+1262 2957  -1.000000
+1263 4   0.128990
+1263 2948   0.078885
+1263 2950   1.000000
+1263 2952   0.058415
+1263 2956  -0.008310
+1263 2958  -1.000000
+1264 4   0.200000
+1264 2947   0.075281
+1264 2951   0.102497
+1264 2953   1.000000
+1264 2955   0.022222
+1264 2957  -1.000000
+1265 4   0.200000
+1265 2948   0.075281
+1265 2952   0.102497
+1265 2954   1.000000
+1265 2956   0.022222
+1265 2958  -1.000000
+1266 4   0.031010
+1266 2959   1.000000
+1266 2961   0.039363
+1266 2965  -0.013107
+1266 2969   0.004754
+1266 2971  -1.000000
+1267 4   0.031010
+1267 2960   1.000000
+1267 2962   0.039363
+1267 2966  -0.013107
+1267 2970   0.004754
+1267 2972  -1.000000
+1268 4   0.128990
+1268 2961   0.078885
+1268 2963   1.000000
+1268 2965   0.058415
+1268 2969  -0.008310
+1268 2971  -1.000000
+1269 4   0.128990
+1269 2962   0.078885
+1269 2964   1.000000
+1269 2966   0.058415
+1269 2970  -0.008310
+1269 2972  -1.000000
+1270 4   0.200000
+1270 2961   0.075281
+1270 2965   0.102497
+1270 2967   1.000000
+1270 2969   0.022222
+1270 2971  -1.000000
+1271 4   0.200000
+1271 2962   0.075281
+1271 2966   0.102497
+1271 2968   1.000000
+1271 2970   0.022222
+1271 2972  -1.000000
+1272 4   0.031010
+1272 2973   1.000000
+1272 2975   0.039363
+1272 2979  -0.013107
+1272 2983   0.004754
+1272 2985  -1.000000
+1273 4   0.031010
+1273 2974   1.000000
+1273 2976   0.039363
+1273 2980  -0.013107
+1273 2984   0.004754
+1273 2986  -1.000000
+1274 4   0.128990
+1274 2975   0.078885
+1274 2977   1.000000
+1274 2979   0.058415
+1274 2983  -0.008310
+1274 2985  -1.000000
+1275 4   0.128990
+1275 2976   0.078885
+1275 2978   1.000000
+1275 2980   0.058415
+1275 2984  -0.008310
+1275 2986  -1.000000
+1276 4   0.200000
+1276 2975   0.075281
+1276 2979   0.102497
+1276 2981   1.000000
+1276 2983   0.022222
+1276 2985  -1.000000
+1277 4   0.200000
+1277 2976   0.075281
+1277 2980   0.102497
+1277 2982   1.000000
+1277 2984   0.022222
+1277 2986  -1.000000
+1278 4   0.031010
+1278 2987   1.000000
+1278 2989   0.039363
+1278 2993  -0.013107
+1278 2997   0.004754
+1278 2999  -1.000000
+1279 4   0.031010
+1279 2988   1.000000
+1279 2990   0.039363
+1279 2994  -0.013107
+1279 2998   0.004754
+1279 3000  -1.000000
+1280 4   0.128990
+1280 2989   0.078885
+1280 2991   1.000000
+1280 2993   0.058415
+1280 2997  -0.008310
+1280 2999  -1.000000
+1281 4   0.128990
+1281 2990   0.078885
+1281 2992   1.000000
+1281 2994   0.058415
+1281 2998  -0.008310
+1281 3000  -1.000000
+1282 4   0.200000
+1282 2989   0.075281
+1282 2993   0.102497
+1282 2995   1.000000
+1282 2997   0.022222
+1282 2999  -1.000000
+1283 4   0.200000
+1283 2990   0.075281
+1283 2994   0.102497
+1283 2996   1.000000
+1283 2998   0.022222
+1283 3000  -1.000000
+1284 4   0.031010
+1284 3001   1.000000
+1284 3003   0.039363
+1284 3007  -0.013107
+1284 3011   0.004754
+1284 3013  -1.000000
+1285 4   0.031010
+1285 3002   1.000000
+1285 3004   0.039363
+1285 3008  -0.013107
+1285 3012   0.004754
+1285 3014  -1.000000
+1286 4   0.128990
+1286 3003   0.078885
+1286 3005   1.000000
+1286 3007   0.058415
+1286 3011  -0.008310
+1286 3013  -1.000000
+1287 4   0.128990
+1287 3004   0.078885
+1287 3006   1.000000
+1287 3008   0.058415
+1287 3012  -0.008310
+1287 3014  -1.000000
+1288 4   0.200000
+1288 3003   0.075281
+1288 3007   0.102497
+1288 3009   1.000000
+1288 3011   0.022222
+1288 3013  -1.000000
+1289 4   0.200000
+1289 3004   0.075281
+1289 3008   0.102497
+1289 3010   1.000000
+1289 3012   0.022222
+1289 3014  -1.000000
+1290 4   0.031010
+1290 3015   1.000000
+1290 3017   0.039363
+1290 3021  -0.013107
+1290 3025   0.004754
+1290 3027  -1.000000
+1291 4   0.031010
+1291 3016   1.000000
+1291 3018   0.039363
+1291 3022  -0.013107
+1291 3026   0.004754
+1291 3028  -1.000000
+1292 4   0.128990
+1292 3017   0.078885
+1292 3019   1.000000
+1292 3021   0.058415
+1292 3025  -0.008310
+1292 3027  -1.000000
+1293 4   0.128990
+1293 3018   0.078885
+1293 3020   1.000000
+1293 3022   0.058415
+1293 3026  -0.008310
+1293 3028  -1.000000
+1294 4   0.200000
+1294 3017   0.075281
+1294 3021   0.102497
+1294 3023   1.000000
+1294 3025   0.022222
+1294 3027  -1.000000
+1295 4   0.200000
+1295 3018   0.075281
+1295 3022   0.102497
+1295 3024   1.000000
+1295 3026   0.022222
+1295 3028  -1.000000
+1296 4   0.031010
+1296 3029   1.000000
+1296 3031   0.039363
+1296 3035  -0.013107
+1296 3039   0.004754
+1296 3041  -1.000000
+1297 4   0.031010
+1297 3030   1.000000
+1297 3032   0.039363
+1297 3036  -0.013107
+1297 3040   0.004754
+1297 3042  -1.000000
+1298 4   0.128990
+1298 3031   0.078885
+1298 3033   1.000000
+1298 3035   0.058415
+1298 3039  -0.008310
+1298 3041  -1.000000
+1299 4   0.128990
+1299 3032   0.078885
+1299 3034   1.000000
+1299 3036   0.058415
+1299 3040  -0.008310
+1299 3042  -1.000000
+1300 4   0.200000
+1300 3031   0.075281
+1300 3035   0.102497
+1300 3037   1.000000
+1300 3039   0.022222
+1300 3041  -1.000000
+1301 4   0.200000
+1301 3032   0.075281
+1301 3036   0.102497
+1301 3038   1.000000
+1301 3040   0.022222
+1301 3042  -1.000000
+1302 4   0.031010
+1302 3043   1.000000
+1302 3045   0.039363
+1302 3049  -0.013107
+1302 3053   0.004754
+1302 3055  -1.000000
+1303 4   0.031010
+1303 3044   1.000000
+1303 3046   0.039363
+1303 3050  -0.013107
+1303 3054   0.004754
+1303 3056  -1.000000
+1304 4   0.128990
+1304 3045   0.078885
+1304 3047   1.000000
+1304 3049   0.058415
+1304 3053  -0.008310
+1304 3055  -1.000000
+1305 4   0.128990
+1305 3046   0.078885
+1305 3048   1.000000
+1305 3050   0.058415
+1305 3054  -0.008310
+1305 3056  -1.000000
+1306 4   0.200000
+1306 3045   0.075281
+1306 3049   0.102497
+1306 3051   1.000000
+1306 3053   0.022222
+1306 3055  -1.000000
+1307 4   0.200000
+1307 3046   0.075281
+1307 3050   0.102497
+1307 3052   1.000000
+1307 3054   0.022222
+1307 3056  -1.000000
+1308 4   0.031010
+1308 3057   1.000000
+1308 3059   0.039363
+1308 3063  -0.013107
+1308 3067   0.004754
+1308 3069  -1.000000
+1309 4   0.031010
+1309 3058   1.000000
+1309 3060   0.039363
+1309 3064  -0.013107
+1309 3068   0.004754
+1309 3070  -1.000000
+1310 4   0.128990
+1310 3059   0.078885
+1310 3061   1.000000
+1310 3063   0.058415
+1310 3067  -0.008310
+1310 3069  -1.000000
+1311 4   0.128990
+1311 3060   0.078885
+1311 3062   1.000000
+1311 3064   0.058415
+1311 3068  -0.008310
+1311 3070  -1.000000
+1312 4   0.200000
+1312 3059   0.075281
+1312 3063   0.102497
+1312 3065   1.000000
+1312 3067   0.022222
+1312 3069  -1.000000
+1313 4   0.200000
+1313 3060   0.075281
+1313 3064   0.102497
+1313 3066   1.000000
+1313 3068   0.022222
+1313 3070  -1.000000
+1314 4   0.031010
+1314 3071   1.000000
+1314 3073   0.039363
+1314 3077  -0.013107
+1314 3081   0.004754
+1314 3083  -1.000000
+1315 4   0.031010
+1315 3072   1.000000
+1315 3074   0.039363
+1315 3078  -0.013107
+1315 3082   0.004754
+1315 3084  -1.000000
+1316 4   0.128990
+1316 3073   0.078885
+1316 3075   1.000000
+1316 3077   0.058415
+1316 3081  -0.008310
+1316 3083  -1.000000
+1317 4   0.128990
+1317 3074   0.078885
+1317 3076   1.000000
+1317 3078   0.058415
+1317 3082  -0.008310
+1317 3084  -1.000000
+1318 4   0.200000
+1318 3073   0.075281
+1318 3077   0.102497
+1318 3079   1.000000
+1318 3081   0.022222
+1318 3083  -1.000000
+1319 4   0.200000
+1319 3074   0.075281
+1319 3078   0.102497
+1319 3080   1.000000
+1319 3082   0.022222
+1319 3084  -1.000000
+1320 4   0.031010
+1320 3085   1.000000
+1320 3087   0.039363
+1320 3091  -0.013107
+1320 3095   0.004754
+1320 3097  -1.000000
+1321 4   0.031010
+1321 3086   1.000000
+1321 3088   0.039363
+1321 3092  -0.013107
+1321 3096   0.004754
+1321 3098  -1.000000
+1322 4   0.128990
+1322 3087   0.078885
+1322 3089   1.000000
+1322 3091   0.058415
+1322 3095  -0.008310
+1322 3097  -1.000000
+1323 4   0.128990
+1323 3088   0.078885
+1323 3090   1.000000
+1323 3092   0.058415
+1323 3096  -0.008310
+1323 3098  -1.000000
+1324 4   0.200000
+1324 3087   0.075281
+1324 3091   0.102497
+1324 3093   1.000000
+1324 3095   0.022222
+1324 3097  -1.000000
+1325 4   0.200000
+1325 3088   0.075281
+1325 3092   0.102497
+1325 3094   1.000000
+1325 3096   0.022222
+1325 3098  -1.000000
+1326 4   0.031010
+1326 3099   1.000000
+1326 3101   0.039363
+1326 3105  -0.013107
+1326 3109   0.004754
+1326 3111  -1.000000
+1327 4   0.031010
+1327 3100   1.000000
+1327 3102   0.039363
+1327 3106  -0.013107
+1327 3110   0.004754
+1327 3112  -1.000000
+1328 4   0.128990
+1328 3101   0.078885
+1328 3103   1.000000
+1328 3105   0.058415
+1328 3109  -0.008310
+1328 3111  -1.000000
+1329 4   0.128990
+1329 3102   0.078885
+1329 3104   1.000000
+1329 3106   0.058415
+1329 3110  -0.008310
+1329 3112  -1.000000
+1330 4   0.200000
+1330 3101   0.075281
+1330 3105   0.102497
+1330 3107   1.000000
+1330 3109   0.022222
+1330 3111  -1.000000
+1331 4   0.200000
+1331 3102   0.075281
+1331 3106   0.102497
+1331 3108   1.000000
+1331 3110   0.022222
+1331 3112  -1.000000
+1332 4   0.031010
+1332 3113   1.000000
+1332 3115   0.039363
+1332 3119  -0.013107
+1332 3123   0.004754
+1332 3125  -1.000000
+1333 4   0.031010
+1333 3114   1.000000
+1333 3116   0.039363
+1333 3120  -0.013107
+1333 3124   0.004754
+1333 3126  -1.000000
+1334 4   0.128990
+1334 3115   0.078885
+1334 3117   1.000000
+1334 3119   0.058415
+1334 3123  -0.008310
+1334 3125  -1.000000
+1335 4   0.128990
+1335 3116   0.078885
+1335 3118   1.000000
+1335 3120   0.058415
+1335 3124  -0.008310
+1335 3126  -1.000000
+1336 4   0.200000
+1336 3115   0.075281
+1336 3119   0.102497
+1336 3121   1.000000
+1336 3123   0.022222
+1336 3125  -1.000000
+1337 4   0.200000
+1337 3116   0.075281
+1337 3120   0.102497
+1337 3122   1.000000
+1337 3124   0.022222
+1337 3126  -1.000000
+1338 4   0.031010
+1338 3127   1.000000
+1338 3129   0.039363
+1338 3133  -0.013107
+1338 3137   0.004754
+1338 3139  -1.000000
+1339 4   0.031010
+1339 3128   1.000000
+1339 3130   0.039363
+1339 3134  -0.013107
+1339 3138   0.004754
+1339 3140  -1.000000
+1340 4   0.128990
+1340 3129   0.078885
+1340 3131   1.000000
+1340 3133   0.058415
+1340 3137  -0.008310
+1340 3139  -1.000000
+1341 4   0.128990
+1341 3130   0.078885
+1341 3132   1.000000
+1341 3134   0.058415
+1341 3138  -0.008310
+1341 3140  -1.000000
+1342 4   0.200000
+1342 3129   0.075281
+1342 3133   0.102497
+1342 3135   1.000000
+1342 3137   0.022222
+1342 3139  -1.000000
+1343 4   0.200000
+1343 3130   0.075281
+1343 3134   0.102497
+1343 3136   1.000000
+1343 3138   0.022222
+1343 3140  -1.000000
+1344 4   0.031010
+1344 3141   1.000000
+1344 3143   0.039363
+1344 3147  -0.013107
+1344 3151   0.004754
+1344 3153  -1.000000
+1345 4   0.031010
+1345 3142   1.000000
+1345 3144   0.039363
+1345 3148  -0.013107
+1345 3152   0.004754
+1345 3154  -1.000000
+1346 4   0.128990
+1346 3143   0.078885
+1346 3145   1.000000
+1346 3147   0.058415
+1346 3151  -0.008310
+1346 3153  -1.000000
+1347 4   0.128990
+1347 3144   0.078885
+1347 3146   1.000000
+1347 3148   0.058415
+1347 3152  -0.008310
+1347 3154  -1.000000
+1348 4   0.200000
+1348 3143   0.075281
+1348 3147   0.102497
+1348 3149   1.000000
+1348 3151   0.022222
+1348 3153  -1.000000
+1349 4   0.200000
+1349 3144   0.075281
+1349 3148   0.102497
+1349 3150   1.000000
+1349 3152   0.022222
+1349 3154  -1.000000
+1350 4   0.031010
+1350 3155   1.000000
+1350 3157   0.039363
+1350 3161  -0.013107
+1350 3165   0.004754
+1350 3167  -1.000000
+1351 4   0.031010
+1351 3156   1.000000
+1351 3158   0.039363
+1351 3162  -0.013107
+1351 3166   0.004754
+1351 3168  -1.000000
+1352 4   0.128990
+1352 3157   0.078885
+1352 3159   1.000000
+1352 3161   0.058415
+1352 3165  -0.008310
+1352 3167  -1.000000
+1353 4   0.128990
+1353 3158   0.078885
+1353 3160   1.000000
+1353 3162   0.058415
+1353 3166  -0.008310
+1353 3168  -1.000000
+1354 4   0.200000
+1354 3157   0.075281
+1354 3161   0.102497
+1354 3163   1.000000
+1354 3165   0.022222
+1354 3167  -1.000000
+1355 4   0.200000
+1355 3158   0.075281
+1355 3162   0.102497
+1355 3164   1.000000
+1355 3166   0.022222
+1355 3168  -1.000000
+1356 4   0.031010
+1356 3169   1.000000
+1356 3171   0.039363
+1356 3175  -0.013107
+1356 3179   0.004754
+1356 3181  -1.000000
+1357 4   0.031010
+1357 3170   1.000000
+1357 3172   0.039363
+1357 3176  -0.013107
+1357 3180   0.004754
+1357 3182  -1.000000
+1358 4   0.128990
+1358 3171   0.078885
+1358 3173   1.000000
+1358 3175   0.058415
+1358 3179  -0.008310
+1358 3181  -1.000000
+1359 4   0.128990
+1359 3172   0.078885
+1359 3174   1.000000
+1359 3176   0.058415
+1359 3180  -0.008310
+1359 3182  -1.000000
+1360 4   0.200000
+1360 3171   0.075281
+1360 3175   0.102497
+1360 3177   1.000000
+1360 3179   0.022222
+1360 3181  -1.000000
+1361 4   0.200000
+1361 3172   0.075281
+1361 3176   0.102497
+1361 3178   1.000000
+1361 3180   0.022222
+1361 3182  -1.000000
+1362 4   0.031010
+1362 3183   1.000000
+1362 3185   0.039363
+1362 3189  -0.013107
+1362 3193   0.004754
+1362 3195  -1.000000
+1363 4   0.031010
+1363 3184   1.000000
+1363 3186   0.039363
+1363 3190  -0.013107
+1363 3194   0.004754
+1363 3196  -1.000000
+1364 4   0.128990
+1364 3185   0.078885
+1364 3187   1.000000
+1364 3189   0.058415
+1364 3193  -0.008310
+1364 3195  -1.000000
+1365 4   0.128990
+1365 3186   0.078885
+1365 3188   1.000000
+1365 3190   0.058415
+1365 3194  -0.008310
+1365 3196  -1.000000
+1366 4   0.200000
+1366 3185   0.075281
+1366 3189   0.102497
+1366 3191   1.000000
+1366 3193   0.022222
+1366 3195  -1.000000
+1367 4   0.200000
+1367 3186   0.075281
+1367 3190   0.102497
+1367 3192   1.000000
+1367 3194   0.022222
+1367 3196  -1.000000
+1368 4   0.031010
+1368 3197   1.000000
+1368 3199   0.039363
+1368 3203  -0.013107
+1368 3207   0.004754
+1368 3209  -1.000000
+1369 4   0.031010
+1369 3198   1.000000
+1369 3200   0.039363
+1369 3204  -0.013107
+1369 3208   0.004754
+1369 3210  -1.000000
+1370 4   0.128990
+1370 3199   0.078885
+1370 3201   1.000000
+1370 3203   0.058415
+1370 3207  -0.008310
+1370 3209  -1.000000
+1371 4   0.128990
+1371 3200   0.078885
+1371 3202   1.000000
+1371 3204   0.058415
+1371 3208  -0.008310
+1371 3210  -1.000000
+1372 4   0.200000
+1372 3199   0.075281
+1372 3203   0.102497
+1372 3205   1.000000
+1372 3207   0.022222
+1372 3209  -1.000000
+1373 4   0.200000
+1373 3200   0.075281
+1373 3204   0.102497
+1373 3206   1.000000
+1373 3208   0.022222
+1373 3210  -1.000000
+1374 4   0.031010
+1374 3211   1.000000
+1374 3213   0.039363
+1374 3217  -0.013107
+1374 3221   0.004754
+1374 3223  -1.000000
+1375 4   0.031010
+1375 3212   1.000000
+1375 3214   0.039363
+1375 3218  -0.013107
+1375 3222   0.004754
+1375 3224  -1.000000
+1376 4   0.128990
+1376 3213   0.078885
+1376 3215   1.000000
+1376 3217   0.058415
+1376 3221  -0.008310
+1376 3223  -1.000000
+1377 4   0.128990
+1377 3214   0.078885
+1377 3216   1.000000
+1377 3218   0.058415
+1377 3222  -0.008310
+1377 3224  -1.000000
+1378 4   0.200000
+1378 3213   0.075281
+1378 3217   0.102497
+1378 3219   1.000000
+1378 3221   0.022222
+1378 3223  -1.000000
+1379 4   0.200000
+1379 3214   0.075281
+1379 3218   0.102497
+1379 3220   1.000000
+1379 3222   0.022222
+1379 3224  -1.000000
+1380 4   0.031010
+1380 3225   1.000000
+1380 3227   0.039363
+1380 3231  -0.013107
+1380 3235   0.004754
+1380 3237  -1.000000
+1381 4   0.031010
+1381 3226   1.000000
+1381 3228   0.039363
+1381 3232  -0.013107
+1381 3236   0.004754
+1381 3238  -1.000000
+1382 4   0.128990
+1382 3227   0.078885
+1382 3229   1.000000
+1382 3231   0.058415
+1382 3235  -0.008310
+1382 3237  -1.000000
+1383 4   0.128990
+1383 3228   0.078885
+1383 3230   1.000000
+1383 3232   0.058415
+1383 3236  -0.008310
+1383 3238  -1.000000
+1384 4   0.200000
+1384 3227   0.075281
+1384 3231   0.102497
+1384 3233   1.000000
+1384 3235   0.022222
+1384 3237  -1.000000
+1385 4   0.200000
+1385 3228   0.075281
+1385 3232   0.102497
+1385 3234   1.000000
+1385 3236   0.022222
+1385 3238  -1.000000
+1386 4   0.031010
+1386 3239   1.000000
+1386 3241   0.039363
+1386 3245  -0.013107
+1386 3249   0.004754
+1386 3251  -1.000000
+1387 4   0.031010
+1387 3240   1.000000
+1387 3242   0.039363
+1387 3246  -0.013107
+1387 3250   0.004754
+1387 3252  -1.000000
+1388 4   0.128990
+1388 3241   0.078885
+1388 3243   1.000000
+1388 3245   0.058415
+1388 3249  -0.008310
+1388 3251  -1.000000
+1389 4   0.128990
+1389 3242   0.078885
+1389 3244   1.000000
+1389 3246   0.058415
+1389 3250  -0.008310
+1389 3252  -1.000000
+1390 4   0.200000
+1390 3241   0.075281
+1390 3245   0.102497
+1390 3247   1.000000
+1390 3249   0.022222
+1390 3251  -1.000000
+1391 4   0.200000
+1391 3242   0.075281
+1391 3246   0.102497
+1391 3248   1.000000
+1391 3250   0.022222
+1391 3252  -1.000000
+1392 4   0.031010
+1392 3253   1.000000
+1392 3255   0.039363
+1392 3259  -0.013107
+1392 3263   0.004754
+1392 3265  -1.000000
+1393 4   0.031010
+1393 3254   1.000000
+1393 3256   0.039363
+1393 3260  -0.013107
+1393 3264   0.004754
+1393 3266  -1.000000
+1394 4   0.128990
+1394 3255   0.078885
+1394 3257   1.000000
+1394 3259   0.058415
+1394 3263  -0.008310
+1394 3265  -1.000000
+1395 4   0.128990
+1395 3256   0.078885
+1395 3258   1.000000
+1395 3260   0.058415
+1395 3264  -0.008310
+1395 3266  -1.000000
+1396 4   0.200000
+1396 3255   0.075281
+1396 3259   0.102497
+1396 3261   1.000000
+1396 3263   0.022222
+1396 3265  -1.000000
+1397 4   0.200000
+1397 3256   0.075281
+1397 3260   0.102497
+1397 3262   1.000000
+1397 3264   0.022222
+1397 3266  -1.000000
+1398 4   0.031010
+1398 3267   1.000000
+1398 3269   0.039363
+1398 3273  -0.013107
+1398 3277   0.004754
+1398 3279  -1.000000
+1399 4   0.031010
+1399 3268   1.000000
+1399 3270   0.039363
+1399 3274  -0.013107
+1399 3278   0.004754
+1399 3280  -1.000000
+1400 4   0.128990
+1400 3269   0.078885
+1400 3271   1.000000
+1400 3273   0.058415
+1400 3277  -0.008310
+1400 3279  -1.000000
+1401 4   0.128990
+1401 3270   0.078885
+1401 3272   1.000000
+1401 3274   0.058415
+1401 3278  -0.008310
+1401 3280  -1.000000
+1402 4   0.200000
+1402 3269   0.075281
+1402 3273   0.102497
+1402 3275   1.000000
+1402 3277   0.022222
+1402 3279  -1.000000
+1403 4   0.200000
+1403 3270   0.075281
+1403 3274   0.102497
+1403 3276   1.000000
+1403 3278   0.022222
+1403 3280  -1.000000
+1404 4   0.031010
+1404 3281   1.000000
+1404 3283   0.039363
+1404 3287  -0.013107
+1404 3291   0.004754
+1404 3293  -1.000000
+1405 4   0.031010
+1405 3282   1.000000
+1405 3284   0.039363
+1405 3288  -0.013107
+1405 3292   0.004754
+1405 3294  -1.000000
+1406 4   0.128990
+1406 3283   0.078885
+1406 3285   1.000000
+1406 3287   0.058415
+1406 3291  -0.008310
+1406 3293  -1.000000
+1407 4   0.128990
+1407 3284   0.078885
+1407 3286   1.000000
+1407 3288   0.058415
+1407 3292  -0.008310
+1407 3294  -1.000000
+1408 4   0.200000
+1408 3283   0.075281
+1408 3287   0.102497
+1408 3289   1.000000
+1408 3291   0.022222
+1408 3293  -1.000000
+1409 4   0.200000
+1409 3284   0.075281
+1409 3288   0.102497
+1409 3290   1.000000
+1409 3292   0.022222
+1409 3294  -1.000000
+1410 4   0.031010
+1410 3295   1.000000
+1410 3297   0.039363
+1410 3301  -0.013107
+1410 3305   0.004754
+1410 3307  -1.000000
+1411 4   0.031010
+1411 3296   1.000000
+1411 3298   0.039363
+1411 3302  -0.013107
+1411 3306   0.004754
+1411 3308  -1.000000
+1412 4   0.128990
+1412 3297   0.078885
+1412 3299   1.000000
+1412 3301   0.058415
+1412 3305  -0.008310
+1412 3307  -1.000000
+1413 4   0.128990
+1413 3298   0.078885
+1413 3300   1.000000
+1413 3302   0.058415
+1413 3306  -0.008310
+1413 3308  -1.000000
+1414 4   0.200000
+1414 3297   0.075281
+1414 3301   0.102497
+1414 3303   1.000000
+1414 3305   0.022222
+1414 3307  -1.000000
+1415 4   0.200000
+1415 3298   0.075281
+1415 3302   0.102497
+1415 3304   1.000000
+1415 3306   0.022222
+1415 3308  -1.000000
+1416 4   0.031010
+1416 3309   1.000000
+1416 3311   0.039363
+1416 3315  -0.013107
+1416 3319   0.004754
+1416 3321  -1.000000
+1417 4   0.031010
+1417 3310   1.000000
+1417 3312   0.039363
+1417 3316  -0.013107
+1417 3320   0.004754
+1417 3322  -1.000000
+1418 4   0.128990
+1418 3311   0.078885
+1418 3313   1.000000
+1418 3315   0.058415
+1418 3319  -0.008310
+1418 3321  -1.000000
+1419 4   0.128990
+1419 3312   0.078885
+1419 3314   1.000000
+1419 3316   0.058415
+1419 3320  -0.008310
+1419 3322  -1.000000
+1420 4   0.200000
+1420 3311   0.075281
+1420 3315   0.102497
+1420 3317   1.000000
+1420 3319   0.022222
+1420 3321  -1.000000
+1421 4   0.200000
+1421 3312   0.075281
+1421 3316   0.102497
+1421 3318   1.000000
+1421 3320   0.022222
+1421 3322  -1.000000
+1422 4   0.031010
+1422 3323   1.000000
+1422 3325   0.039363
+1422 3329  -0.013107
+1422 3333   0.004754
+1422 3335  -1.000000
+1423 4   0.031010
+1423 3324   1.000000
+1423 3326   0.039363
+1423 3330  -0.013107
+1423 3334   0.004754
+1423 3336  -1.000000
+1424 4   0.128990
+1424 3325   0.078885
+1424 3327   1.000000
+1424 3329   0.058415
+1424 3333  -0.008310
+1424 3335  -1.000000
+1425 4   0.128990
+1425 3326   0.078885
+1425 3328   1.000000
+1425 3330   0.058415
+1425 3334  -0.008310
+1425 3336  -1.000000
+1426 4   0.200000
+1426 3325   0.075281
+1426 3329   0.102497
+1426 3331   1.000000
+1426 3333   0.022222
+1426 3335  -1.000000
+1427 4   0.200000
+1427 3326   0.075281
+1427 3330   0.102497
+1427 3332   1.000000
+1427 3334   0.022222
+1427 3336  -1.000000
+1428 4   0.031010
+1428 3337   1.000000
+1428 3339   0.039363
+1428 3343  -0.013107
+1428 3347   0.004754
+1428 3349  -1.000000
+1429 4   0.031010
+1429 3338   1.000000
+1429 3340   0.039363
+1429 3344  -0.013107
+1429 3348   0.004754
+1429 3350  -1.000000
+1430 4   0.128990
+1430 3339   0.078885
+1430 3341   1.000000
+1430 3343   0.058415
+1430 3347  -0.008310
+1430 3349  -1.000000
+1431 4   0.128990
+1431 3340   0.078885
+1431 3342   1.000000
+1431 3344   0.058415
+1431 3348  -0.008310
+1431 3350  -1.000000
+1432 4   0.200000
+1432 3339   0.075281
+1432 3343   0.102497
+1432 3345   1.000000
+1432 3347   0.022222
+1432 3349  -1.000000
+1433 4   0.200000
+1433 3340   0.075281
+1433 3344   0.102497
+1433 3346   1.000000
+1433 3348   0.022222
+1433 3350  -1.000000
+1434 4   0.031010
+1434 3351   1.000000
+1434 3353   0.039363
+1434 3357  -0.013107
+1434 3361   0.004754
+1434 3363  -1.000000
+1435 4   0.031010
+1435 3352   1.000000
+1435 3354   0.039363
+1435 3358  -0.013107
+1435 3362   0.004754
+1435 3364  -1.000000
+1436 4   0.128990
+1436 3353   0.078885
+1436 3355   1.000000
+1436 3357   0.058415
+1436 3361  -0.008310
+1436 3363  -1.000000
+1437 4   0.128990
+1437 3354   0.078885
+1437 3356   1.000000
+1437 3358   0.058415
+1437 3362  -0.008310
+1437 3364  -1.000000
+1438 4   0.200000
+1438 3353   0.075281
+1438 3357   0.102497
+1438 3359   1.000000
+1438 3361   0.022222
+1438 3363  -1.000000
+1439 4   0.200000
+1439 3354   0.075281
+1439 3358   0.102497
+1439 3360   1.000000
+1439 3362   0.022222
+1439 3364  -1.000000
+1440 4   0.031010
+1440 3365   1.000000
+1440 3367   0.039363
+1440 3371  -0.013107
+1440 3375   0.004754
+1440 3377  -1.000000
+1441 4   0.031010
+1441 3366   1.000000
+1441 3368   0.039363
+1441 3372  -0.013107
+1441 3376   0.004754
+1441 3378  -1.000000
+1442 4   0.128990
+1442 3367   0.078885
+1442 3369   1.000000
+1442 3371   0.058415
+1442 3375  -0.008310
+1442 3377  -1.000000
+1443 4   0.128990
+1443 3368   0.078885
+1443 3370   1.000000
+1443 3372   0.058415
+1443 3376  -0.008310
+1443 3378  -1.000000
+1444 4   0.200000
+1444 3367   0.075281
+1444 3371   0.102497
+1444 3373   1.000000
+1444 3375   0.022222
+1444 3377  -1.000000
+1445 4   0.200000
+1445 3368   0.075281
+1445 3372   0.102497
+1445 3374   1.000000
+1445 3376   0.022222
+1445 3378  -1.000000
+1446 4   0.031010
+1446 3379   1.000000
+1446 3381   0.039363
+1446 3385  -0.013107
+1446 3389   0.004754
+1446 3391  -1.000000
+1447 4   0.031010
+1447 3380   1.000000
+1447 3382   0.039363
+1447 3386  -0.013107
+1447 3390   0.004754
+1447 3392  -1.000000
+1448 4   0.128990
+1448 3381   0.078885
+1448 3383   1.000000
+1448 3385   0.058415
+1448 3389  -0.008310
+1448 3391  -1.000000
+1449 4   0.128990
+1449 3382   0.078885
+1449 3384   1.000000
+1449 3386   0.058415
+1449 3390  -0.008310
+1449 3392  -1.000000
+1450 4   0.200000
+1450 3381   0.075281
+1450 3385   0.102497
+1450 3387   1.000000
+1450 3389   0.022222
+1450 3391  -1.000000
+1451 4   0.200000
+1451 3382   0.075281
+1451 3386   0.102497
+1451 3388   1.000000
+1451 3390   0.022222
+1451 3392  -1.000000
+1452 4   0.031010
+1452 3393   1.000000
+1452 3395   0.039363
+1452 3399  -0.013107
+1452 3403   0.004754
+1452 3405  -1.000000
+1453 4   0.031010
+1453 3394   1.000000
+1453 3396   0.039363
+1453 3400  -0.013107
+1453 3404   0.004754
+1453 3406  -1.000000
+1454 4   0.128990
+1454 3395   0.078885
+1454 3397   1.000000
+1454 3399   0.058415
+1454 3403  -0.008310
+1454 3405  -1.000000
+1455 4   0.128990
+1455 3396   0.078885
+1455 3398   1.000000
+1455 3400   0.058415
+1455 3404  -0.008310
+1455 3406  -1.000000
+1456 4   0.200000
+1456 3395   0.075281
+1456 3399   0.102497
+1456 3401   1.000000
+1456 3403   0.022222
+1456 3405  -1.000000
+1457 4   0.200000
+1457 3396   0.075281
+1457 3400   0.102497
+1457 3402   1.000000
+1457 3404   0.022222
+1457 3406  -1.000000
+1458 4   0.031010
+1458 3407   1.000000
+1458 3409   0.039363
+1458 3413  -0.013107
+1458 3417   0.004754
+1458 3419  -1.000000
+1459 4   0.031010
+1459 3408   1.000000
+1459 3410   0.039363
+1459 3414  -0.013107
+1459 3418   0.004754
+1459 3420  -1.000000
+1460 4   0.128990
+1460 3409   0.078885
+1460 3411   1.000000
+1460 3413   0.058415
+1460 3417  -0.008310
+1460 3419  -1.000000
+1461 4   0.128990
+1461 3410   0.078885
+1461 3412   1.000000
+1461 3414   0.058415
+1461 3418  -0.008310
+1461 3420  -1.000000
+1462 4   0.200000
+1462 3409   0.075281
+1462 3413   0.102497
+1462 3415   1.000000
+1462 3417   0.022222
+1462 3419  -1.000000
+1463 4   0.200000
+1463 3410   0.075281
+1463 3414   0.102497
+1463 3416   1.000000
+1463 3418   0.022222
+1463 3420  -1.000000
+1464 4   0.031010
+1464 3421   1.000000
+1464 3423   0.039363
+1464 3427  -0.013107
+1464 3431   0.004754
+1464 3433  -1.000000
+1465 4   0.031010
+1465 3422   1.000000
+1465 3424   0.039363
+1465 3428  -0.013107
+1465 3432   0.004754
+1465 3434  -1.000000
+1466 4   0.128990
+1466 3423   0.078885
+1466 3425   1.000000
+1466 3427   0.058415
+1466 3431  -0.008310
+1466 3433  -1.000000
+1467 4   0.128990
+1467 3424   0.078885
+1467 3426   1.000000
+1467 3428   0.058415
+1467 3432  -0.008310
+1467 3434  -1.000000
+1468 4   0.200000
+1468 3423   0.075281
+1468 3427   0.102497
+1468 3429   1.000000
+1468 3431   0.022222
+1468 3433  -1.000000
+1469 4   0.200000
+1469 3424   0.075281
+1469 3428   0.102497
+1469 3430   1.000000
+1469 3432   0.022222
+1469 3434  -1.000000
+1470 4   0.031010
+1470 3435   1.000000
+1470 3437   0.039363
+1470 3441  -0.013107
+1470 3445   0.004754
+1470 3447  -1.000000
+1471 4   0.031010
+1471 3436   1.000000
+1471 3438   0.039363
+1471 3442  -0.013107
+1471 3446   0.004754
+1471 3448  -1.000000
+1472 4   0.128990
+1472 3437   0.078885
+1472 3439   1.000000
+1472 3441   0.058415
+1472 3445  -0.008310
+1472 3447  -1.000000
+1473 4   0.128990
+1473 3438   0.078885
+1473 3440   1.000000
+1473 3442   0.058415
+1473 3446  -0.008310
+1473 3448  -1.000000
+1474 4   0.200000
+1474 3437   0.075281
+1474 3441   0.102497
+1474 3443   1.000000
+1474 3445   0.022222
+1474 3447  -1.000000
+1475 4   0.200000
+1475 3438   0.075281
+1475 3442   0.102497
+1475 3444   1.000000
+1475 3446   0.022222
+1475 3448  -1.000000
+1476 4   0.031010
+1476 3449   1.000000
+1476 3451   0.039363
+1476 3455  -0.013107
+1476 3459   0.004754
+1476 3461  -1.000000
+1477 4   0.031010
+1477 3450   1.000000
+1477 3452   0.039363
+1477 3456  -0.013107
+1477 3460   0.004754
+1477 3462  -1.000000
+1478 4   0.128990
+1478 3451   0.078885
+1478 3453   1.000000
+1478 3455   0.058415
+1478 3459  -0.008310
+1478 3461  -1.000000
+1479 4   0.128990
+1479 3452   0.078885
+1479 3454   1.000000
+1479 3456   0.058415
+1479 3460  -0.008310
+1479 3462  -1.000000
+1480 4   0.200000
+1480 3451   0.075281
+1480 3455   0.102497
+1480 3457   1.000000
+1480 3459   0.022222
+1480 3461  -1.000000
+1481 4   0.200000
+1481 3452   0.075281
+1481 3456   0.102497
+1481 3458   1.000000
+1481 3460   0.022222
+1481 3462  -1.000000
+1482 4   0.031010
+1482 3463   1.000000
+1482 3465   0.039363
+1482 3469  -0.013107
+1482 3473   0.004754
+1482 3475  -1.000000
+1483 4   0.031010
+1483 3464   1.000000
+1483 3466   0.039363
+1483 3470  -0.013107
+1483 3474   0.004754
+1483 3476  -1.000000
+1484 4   0.128990
+1484 3465   0.078885
+1484 3467   1.000000
+1484 3469   0.058415
+1484 3473  -0.008310
+1484 3475  -1.000000
+1485 4   0.128990
+1485 3466   0.078885
+1485 3468   1.000000
+1485 3470   0.058415
+1485 3474  -0.008310
+1485 3476  -1.000000
+1486 4   0.200000
+1486 3465   0.075281
+1486 3469   0.102497
+1486 3471   1.000000
+1486 3473   0.022222
+1486 3475  -1.000000
+1487 4   0.200000
+1487 3466   0.075281
+1487 3470   0.102497
+1487 3472   1.000000
+1487 3474   0.022222
+1487 3476  -1.000000
+1488 4   0.031010
+1488 3477   1.000000
+1488 3479   0.039363
+1488 3483  -0.013107
+1488 3487   0.004754
+1488 3489  -1.000000
+1489 4   0.031010
+1489 3478   1.000000
+1489 3480   0.039363
+1489 3484  -0.013107
+1489 3488   0.004754
+1489 3490  -1.000000
+1490 4   0.128990
+1490 3479   0.078885
+1490 3481   1.000000
+1490 3483   0.058415
+1490 3487  -0.008310
+1490 3489  -1.000000
+1491 4   0.128990
+1491 3480   0.078885
+1491 3482   1.000000
+1491 3484   0.058415
+1491 3488  -0.008310
+1491 3490  -1.000000
+1492 4   0.200000
+1492 3479   0.075281
+1492 3483   0.102497
+1492 3485   1.000000
+1492 3487   0.022222
+1492 3489  -1.000000
+1493 4   0.200000
+1493 3480   0.075281
+1493 3484   0.102497
+1493 3486   1.000000
+1493 3488   0.022222
+1493 3490  -1.000000
+1494 4   0.031010
+1494 3491   1.000000
+1494 3493   0.039363
+1494 3497  -0.013107
+1494 3501   0.004754
+1494 3503  -1.000000
+1495 4   0.031010
+1495 3492   1.000000
+1495 3494   0.039363
+1495 3498  -0.013107
+1495 3502   0.004754
+1495 3504  -1.000000
+1496 4   0.128990
+1496 3493   0.078885
+1496 3495   1.000000
+1496 3497   0.058415
+1496 3501  -0.008310
+1496 3503  -1.000000
+1497 4   0.128990
+1497 3494   0.078885
+1497 3496   1.000000
+1497 3498   0.058415
+1497 3502  -0.008310
+1497 3504  -1.000000
+1498 4   0.200000
+1498 3493   0.075281
+1498 3497   0.102497
+1498 3499   1.000000
+1498 3501   0.022222
+1498 3503  -1.000000
+1499 4   0.200000
+1499 3494   0.075281
+1499 3498   0.102497
+1499 3500   1.000000
+1499 3502   0.022222
+1499 3504  -1.000000
+1500 4   0.031010
+1500 3505   1.000000
+1500 3507   0.039363
+1500 3511  -0.013107
+1500 3515   0.004754
+1500 3517  -1.000000
+1501 4   0.031010
+1501 3506   1.000000
+1501 3508   0.039363
+1501 3512  -0.013107
+1501 3516   0.004754
+1501 3518  -1.000000
+1502 4   0.128990
+1502 3507   0.078885
+1502 3509   1.000000
+1502 3511   0.058415
+1502 3515  -0.008310
+1502 3517  -1.000000
+1503 4   0.128990
+1503 3508   0.078885
+1503 3510   1.000000
+1503 3512   0.058415
+1503 3516  -0.008310
+1503 3518  -1.000000
+1504 4   0.200000
+1504 3507   0.075281
+1504 3511   0.102497
+1504 3513   1.000000
+1504 3515   0.022222
+1504 3517  -1.000000
+1505 4   0.200000
+1505 3508   0.075281
+1505 3512   0.102497
+1505 3514   1.000000
+1505 3516   0.022222
+1505 3518  -1.000000
+1506 4   0.031010
+1506 3519   1.000000
+1506 3521   0.039363
+1506 3525  -0.013107
+1506 3529   0.004754
+1506 3531  -1.000000
+1507 4   0.031010
+1507 3520   1.000000
+1507 3522   0.039363
+1507 3526  -0.013107
+1507 3530   0.004754
+1507 3532  -1.000000
+1508 4   0.128990
+1508 3521   0.078885
+1508 3523   1.000000
+1508 3525   0.058415
+1508 3529  -0.008310
+1508 3531  -1.000000
+1509 4   0.128990
+1509 3522   0.078885
+1509 3524   1.000000
+1509 3526   0.058415
+1509 3530  -0.008310
+1509 3532  -1.000000
+1510 4   0.200000
+1510 3521   0.075281
+1510 3525   0.102497
+1510 3527   1.000000
+1510 3529   0.022222
+1510 3531  -1.000000
+1511 4   0.200000
+1511 3522   0.075281
+1511 3526   0.102497
+1511 3528   1.000000
+1511 3530   0.022222
+1511 3532  -1.000000
+1512 4   0.031010
+1512 3533   1.000000
+1512 3535   0.039363
+1512 3539  -0.013107
+1512 3543   0.004754
+1512 3545  -1.000000
+1513 4   0.031010
+1513 3534   1.000000
+1513 3536   0.039363
+1513 3540  -0.013107
+1513 3544   0.004754
+1513 3546  -1.000000
+1514 4   0.128990
+1514 3535   0.078885
+1514 3537   1.000000
+1514 3539   0.058415
+1514 3543  -0.008310
+1514 3545  -1.000000
+1515 4   0.128990
+1515 3536   0.078885
+1515 3538   1.000000
+1515 3540   0.058415
+1515 3544  -0.008310
+1515 3546  -1.000000
+1516 4   0.200000
+1516 3535   0.075281
+1516 3539   0.102497
+1516 3541   1.000000
+1516 3543   0.022222
+1516 3545  -1.000000
+1517 4   0.200000
+1517 3536   0.075281
+1517 3540   0.102497
+1517 3542   1.000000
+1517 3544   0.022222
+1517 3546  -1.000000
+1518 4   0.031010
+1518 3547   1.000000
+1518 3549   0.039363
+1518 3553  -0.013107
+1518 3557   0.004754
+1518 3559  -1.000000
+1519 4   0.031010
+1519 3548   1.000000
+1519 3550   0.039363
+1519 3554  -0.013107
+1519 3558   0.004754
+1519 3560  -1.000000
+1520 4   0.128990
+1520 3549   0.078885
+1520 3551   1.000000
+1520 3553   0.058415
+1520 3557  -0.008310
+1520 3559  -1.000000
+1521 4   0.128990
+1521 3550   0.078885
+1521 3552   1.000000
+1521 3554   0.058415
+1521 3558  -0.008310
+1521 3560  -1.000000
+1522 4   0.200000
+1522 3549   0.075281
+1522 3553   0.102497
+1522 3555   1.000000
+1522 3557   0.022222
+1522 3559  -1.000000
+1523 4   0.200000
+1523 3550   0.075281
+1523 3554   0.102497
+1523 3556   1.000000
+1523 3558   0.022222
+1523 3560  -1.000000
+1524 4   0.031010
+1524 3561   1.000000
+1524 3563   0.039363
+1524 3567  -0.013107
+1524 3571   0.004754
+1524 3573  -1.000000
+1525 4   0.031010
+1525 3562   1.000000
+1525 3564   0.039363
+1525 3568  -0.013107
+1525 3572   0.004754
+1525 3574  -1.000000
+1526 4   0.128990
+1526 3563   0.078885
+1526 3565   1.000000
+1526 3567   0.058415
+1526 3571  -0.008310
+1526 3573  -1.000000
+1527 4   0.128990
+1527 3564   0.078885
+1527 3566   1.000000
+1527 3568   0.058415
+1527 3572  -0.008310
+1527 3574  -1.000000
+1528 4   0.200000
+1528 3563   0.075281
+1528 3567   0.102497
+1528 3569   1.000000
+1528 3571   0.022222
+1528 3573  -1.000000
+1529 4   0.200000
+1529 3564   0.075281
+1529 3568   0.102497
+1529 3570   1.000000
+1529 3572   0.022222
+1529 3574  -1.000000
+1530 4   0.031010
+1530 3575   1.000000
+1530 3577   0.039363
+1530 3581  -0.013107
+1530 3585   0.004754
+1530 3587  -1.000000
+1531 4   0.031010
+1531 3576   1.000000
+1531 3578   0.039363
+1531 3582  -0.013107
+1531 3586   0.004754
+1531 3588  -1.000000
+1532 4   0.128990
+1532 3577   0.078885
+1532 3579   1.000000
+1532 3581   0.058415
+1532 3585  -0.008310
+1532 3587  -1.000000
+1533 4   0.128990
+1533 3578   0.078885
+1533 3580   1.000000
+1533 3582   0.058415
+1533 3586  -0.008310
+1533 3588  -1.000000
+1534 4   0.200000
+1534 3577   0.075281
+1534 3581   0.102497
+1534 3583   1.000000
+1534 3585   0.022222
+1534 3587  -1.000000
+1535 4   0.200000
+1535 3578   0.075281
+1535 3582   0.102497
+1535 3584   1.000000
+1535 3586   0.022222
+1535 3588  -1.000000
+1536 4   0.031010
+1536 3589   1.000000
+1536 3591   0.039363
+1536 3595  -0.013107
+1536 3599   0.004754
+1536 3601  -1.000000
+1537 4   0.031010
+1537 3590   1.000000
+1537 3592   0.039363
+1537 3596  -0.013107
+1537 3600   0.004754
+1537 3602  -1.000000
+1538 4   0.128990
+1538 3591   0.078885
+1538 3593   1.000000
+1538 3595   0.058415
+1538 3599  -0.008310
+1538 3601  -1.000000
+1539 4   0.128990
+1539 3592   0.078885
+1539 3594   1.000000
+1539 3596   0.058415
+1539 3600  -0.008310
+1539 3602  -1.000000
+1540 4   0.200000
+1540 3591   0.075281
+1540 3595   0.102497
+1540 3597   1.000000
+1540 3599   0.022222
+1540 3601  -1.000000
+1541 4   0.200000
+1541 3592   0.075281
+1541 3596   0.102497
+1541 3598   1.000000
+1541 3600   0.022222
+1541 3602  -1.000000
+1542 4   0.031010
+1542 3603   1.000000
+1542 3605   0.039363
+1542 3609  -0.013107
+1542 3613   0.004754
+1542 3615  -1.000000
+1543 4   0.031010
+1543 3604   1.000000
+1543 3606   0.039363
+1543 3610  -0.013107
+1543 3614   0.004754
+1543 3616  -1.000000
+1544 4   0.128990
+1544 3605   0.078885
+1544 3607   1.000000
+1544 3609   0.058415
+1544 3613  -0.008310
+1544 3615  -1.000000
+1545 4   0.128990
+1545 3606   0.078885
+1545 3608   1.000000
+1545 3610   0.058415
+1545 3614  -0.008310
+1545 3616  -1.000000
+1546 4   0.200000
+1546 3605   0.075281
+1546 3609   0.102497
+1546 3611   1.000000
+1546 3613   0.022222
+1546 3615  -1.000000
+1547 4   0.200000
+1547 3606   0.075281
+1547 3610   0.102497
+1547 3612   1.000000
+1547 3614   0.022222
+1547 3616  -1.000000
+1548 4   0.031010
+1548 3617   1.000000
+1548 3619   0.039363
+1548 3623  -0.013107
+1548 3627   0.004754
+1548 3629  -1.000000
+1549 4   0.031010
+1549 3618   1.000000
+1549 3620   0.039363
+1549 3624  -0.013107
+1549 3628   0.004754
+1549 3630  -1.000000
+1550 4   0.128990
+1550 3619   0.078885
+1550 3621   1.000000
+1550 3623   0.058415
+1550 3627  -0.008310
+1550 3629  -1.000000
+1551 4   0.128990
+1551 3620   0.078885
+1551 3622   1.000000
+1551 3624   0.058415
+1551 3628  -0.008310
+1551 3630  -1.000000
+1552 4   0.200000
+1552 3619   0.075281
+1552 3623   0.102497
+1552 3625   1.000000
+1552 3627   0.022222
+1552 3629  -1.000000
+1553 4   0.200000
+1553 3620   0.075281
+1553 3624   0.102497
+1553 3626   1.000000
+1553 3628   0.022222
+1553 3630  -1.000000
+1554 4   0.031010
+1554 3631   1.000000
+1554 3633   0.039363
+1554 3637  -0.013107
+1554 3641   0.004754
+1554 3643  -1.000000
+1555 4   0.031010
+1555 3632   1.000000
+1555 3634   0.039363
+1555 3638  -0.013107
+1555 3642   0.004754
+1555 3644  -1.000000
+1556 4   0.128990
+1556 3633   0.078885
+1556 3635   1.000000
+1556 3637   0.058415
+1556 3641  -0.008310
+1556 3643  -1.000000
+1557 4   0.128990
+1557 3634   0.078885
+1557 3636   1.000000
+1557 3638   0.058415
+1557 3642  -0.008310
+1557 3644  -1.000000
+1558 4   0.200000
+1558 3633   0.075281
+1558 3637   0.102497
+1558 3639   1.000000
+1558 3641   0.022222
+1558 3643  -1.000000
+1559 4   0.200000
+1559 3634   0.075281
+1559 3638   0.102497
+1559 3640   1.000000
+1559 3642   0.022222
+1559 3644  -1.000000
+1560 4   0.031010
+1560 3645   1.000000
+1560 3647   0.039363
+1560 3651  -0.013107
+1560 3655   0.004754
+1560 3657  -1.000000
+1561 4   0.031010
+1561 3646   1.000000
+1561 3648   0.039363
+1561 3652  -0.013107
+1561 3656   0.004754
+1561 3658  -1.000000
+1562 4   0.128990
+1562 3647   0.078885
+1562 3649   1.000000
+1562 3651   0.058415
+1562 3655  -0.008310
+1562 3657  -1.000000
+1563 4   0.128990
+1563 3648   0.078885
+1563 3650   1.000000
+1563 3652   0.058415
+1563 3656  -0.008310
+1563 3658  -1.000000
+1564 4   0.200000
+1564 3647   0.075281
+1564 3651   0.102497
+1564 3653   1.000000
+1564 3655   0.022222
+1564 3657  -1.000000
+1565 4   0.200000
+1565 3648   0.075281
+1565 3652   0.102497
+1565 3654   1.000000
+1565 3656   0.022222
+1565 3658  -1.000000
+1566 4   0.031010
+1566 3659   1.000000
+1566 3661   0.039363
+1566 3665  -0.013107
+1566 3669   0.004754
+1566 3671  -1.000000
+1567 4   0.031010
+1567 3660   1.000000
+1567 3662   0.039363
+1567 3666  -0.013107
+1567 3670   0.004754
+1567 3672  -1.000000
+1568 4   0.128990
+1568 3661   0.078885
+1568 3663   1.000000
+1568 3665   0.058415
+1568 3669  -0.008310
+1568 3671  -1.000000
+1569 4   0.128990
+1569 3662   0.078885
+1569 3664   1.000000
+1569 3666   0.058415
+1569 3670  -0.008310
+1569 3672  -1.000000
+1570 4   0.200000
+1570 3661   0.075281
+1570 3665   0.102497
+1570 3667   1.000000
+1570 3669   0.022222
+1570 3671  -1.000000
+1571 4   0.200000
+1571 3662   0.075281
+1571 3666   0.102497
+1571 3668   1.000000
+1571 3670   0.022222
+1571 3672  -1.000000
+1572 4   0.031010
+1572 3673   1.000000
+1572 3675   0.039363
+1572 3679  -0.013107
+1572 3683   0.004754
+1572 3685  -1.000000
+1573 4   0.031010
+1573 3674   1.000000
+1573 3676   0.039363
+1573 3680  -0.013107
+1573 3684   0.004754
+1573 3686  -1.000000
+1574 4   0.128990
+1574 3675   0.078885
+1574 3677   1.000000
+1574 3679   0.058415
+1574 3683  -0.008310
+1574 3685  -1.000000
+1575 4   0.128990
+1575 3676   0.078885
+1575 3678   1.000000
+1575 3680   0.058415
+1575 3684  -0.008310
+1575 3686  -1.000000
+1576 4   0.200000
+1576 3675   0.075281
+1576 3679   0.102497
+1576 3681   1.000000
+1576 3683   0.022222
+1576 3685  -1.000000
+1577 4   0.200000
+1577 3676   0.075281
+1577 3680   0.102497
+1577 3682   1.000000
+1577 3684   0.022222
+1577 3686  -1.000000
+1578 4   0.031010
+1578 3687   1.000000
+1578 3689   0.039363
+1578 3693  -0.013107
+1578 3697   0.004754
+1578 3699  -1.000000
+1579 4   0.031010
+1579 3688   1.000000
+1579 3690   0.039363
+1579 3694  -0.013107
+1579 3698   0.004754
+1579 3700  -1.000000
+1580 4   0.128990
+1580 3689   0.078885
+1580 3691   1.000000
+1580 3693   0.058415
+1580 3697  -0.008310
+1580 3699  -1.000000
+1581 4   0.128990
+1581 3690   0.078885
+1581 3692   1.000000
+1581 3694   0.058415
+1581 3698  -0.008310
+1581 3700  -1.000000
+1582 4   0.200000
+1582 3689   0.075281
+1582 3693   0.102497
+1582 3695   1.000000
+1582 3697   0.022222
+1582 3699  -1.000000
+1583 4   0.200000
+1583 3690   0.075281
+1583 3694   0.102497
+1583 3696   1.000000
+1583 3698   0.022222
+1583 3700  -1.000000
+1584 4   0.031010
+1584 3701   1.000000
+1584 3703   0.039363
+1584 3707  -0.013107
+1584 3711   0.004754
+1584 3713  -1.000000
+1585 4   0.031010
+1585 3702   1.000000
+1585 3704   0.039363
+1585 3708  -0.013107
+1585 3712   0.004754
+1585 3714  -1.000000
+1586 4   0.128990
+1586 3703   0.078885
+1586 3705   1.000000
+1586 3707   0.058415
+1586 3711  -0.008310
+1586 3713  -1.000000
+1587 4   0.128990
+1587 3704   0.078885
+1587 3706   1.000000
+1587 3708   0.058415
+1587 3712  -0.008310
+1587 3714  -1.000000
+1588 4   0.200000
+1588 3703   0.075281
+1588 3707   0.102497
+1588 3709   1.000000
+1588 3711   0.022222
+1588 3713  -1.000000
+1589 4   0.200000
+1589 3704   0.075281
+1589 3708   0.102497
+1589 3710   1.000000
+1589 3712   0.022222
+1589 3714  -1.000000
+1590 4   0.031010
+1590 3715   1.000000
+1590 3717   0.039363
+1590 3721  -0.013107
+1590 3725   0.004754
+1590 3727  -1.000000
+1591 4   0.031010
+1591 3716   1.000000
+1591 3718   0.039363
+1591 3722  -0.013107
+1591 3726   0.004754
+1591 3728  -1.000000
+1592 4   0.128990
+1592 3717   0.078885
+1592 3719   1.000000
+1592 3721   0.058415
+1592 3725  -0.008310
+1592 3727  -1.000000
+1593 4   0.128990
+1593 3718   0.078885
+1593 3720   1.000000
+1593 3722   0.058415
+1593 3726  -0.008310
+1593 3728  -1.000000
+1594 4   0.200000
+1594 3717   0.075281
+1594 3721   0.102497
+1594 3723   1.000000
+1594 3725   0.022222
+1594 3727  -1.000000
+1595 4   0.200000
+1595 3718   0.075281
+1595 3722   0.102497
+1595 3724   1.000000
+1595 3726   0.022222
+1595 3728  -1.000000
+1596 4   0.031010
+1596 3729   1.000000
+1596 3731   0.039363
+1596 3735  -0.013107
+1596 3739   0.004754
+1596 3741  -1.000000
+1597 4   0.031010
+1597 3730   1.000000
+1597 3732   0.039363
+1597 3736  -0.013107
+1597 3740   0.004754
+1597 3742  -1.000000
+1598 4   0.128990
+1598 3731   0.078885
+1598 3733   1.000000
+1598 3735   0.058415
+1598 3739  -0.008310
+1598 3741  -1.000000
+1599 4   0.128990
+1599 3732   0.078885
+1599 3734   1.000000
+1599 3736   0.058415
+1599 3740  -0.008310
+1599 3742  -1.000000
+1600 4   0.200000
+1600 3731   0.075281
+1600 3735   0.102497
+1600 3737   1.000000
+1600 3739   0.022222
+1600 3741  -1.000000
+1601 4   0.200000
+1601 3732   0.075281
+1601 3736   0.102497
+1601 3738   1.000000
+1601 3740   0.022222
+1601 3742  -1.000000
+1602 4   0.031010
+1602 3743   1.000000
+1602 3745   0.039363
+1602 3749  -0.013107
+1602 3753   0.004754
+1602 3755  -1.000000
+1603 4   0.031010
+1603 3744   1.000000
+1603 3746   0.039363
+1603 3750  -0.013107
+1603 3754   0.004754
+1603 3756  -1.000000
+1604 4   0.128990
+1604 3745   0.078885
+1604 3747   1.000000
+1604 3749   0.058415
+1604 3753  -0.008310
+1604 3755  -1.000000
+1605 4   0.128990
+1605 3746   0.078885
+1605 3748   1.000000
+1605 3750   0.058415
+1605 3754  -0.008310
+1605 3756  -1.000000
+1606 4   0.200000
+1606 3745   0.075281
+1606 3749   0.102497
+1606 3751   1.000000
+1606 3753   0.022222
+1606 3755  -1.000000
+1607 4   0.200000
+1607 3746   0.075281
+1607 3750   0.102497
+1607 3752   1.000000
+1607 3754   0.022222
+1607 3756  -1.000000
+1608 4   0.031010
+1608 3757   1.000000
+1608 3759   0.039363
+1608 3763  -0.013107
+1608 3767   0.004754
+1608 3769  -1.000000
+1609 4   0.031010
+1609 3758   1.000000
+1609 3760   0.039363
+1609 3764  -0.013107
+1609 3768   0.004754
+1609 3770  -1.000000
+1610 4   0.128990
+1610 3759   0.078885
+1610 3761   1.000000
+1610 3763   0.058415
+1610 3767  -0.008310
+1610 3769  -1.000000
+1611 4   0.128990
+1611 3760   0.078885
+1611 3762   1.000000
+1611 3764   0.058415
+1611 3768  -0.008310
+1611 3770  -1.000000
+1612 4   0.200000
+1612 3759   0.075281
+1612 3763   0.102497
+1612 3765   1.000000
+1612 3767   0.022222
+1612 3769  -1.000000
+1613 4   0.200000
+1613 3760   0.075281
+1613 3764   0.102497
+1613 3766   1.000000
+1613 3768   0.022222
+1613 3770  -1.000000
+1614 4   0.031010
+1614 3771   1.000000
+1614 3773   0.039363
+1614 3777  -0.013107
+1614 3781   0.004754
+1614 3783  -1.000000
+1615 4   0.031010
+1615 3772   1.000000
+1615 3774   0.039363
+1615 3778  -0.013107
+1615 3782   0.004754
+1615 3784  -1.000000
+1616 4   0.128990
+1616 3773   0.078885
+1616 3775   1.000000
+1616 3777   0.058415
+1616 3781  -0.008310
+1616 3783  -1.000000
+1617 4   0.128990
+1617 3774   0.078885
+1617 3776   1.000000
+1617 3778   0.058415
+1617 3782  -0.008310
+1617 3784  -1.000000
+1618 4   0.200000
+1618 3773   0.075281
+1618 3777   0.102497
+1618 3779   1.000000
+1618 3781   0.022222
+1618 3783  -1.000000
+1619 4   0.200000
+1619 3774   0.075281
+1619 3778   0.102497
+1619 3780   1.000000
+1619 3782   0.022222
+1619 3784  -1.000000
+1620 4   0.031010
+1620 3785   1.000000
+1620 3787   0.039363
+1620 3791  -0.013107
+1620 3795   0.004754
+1620 3797  -1.000000
+1621 4   0.031010
+1621 3786   1.000000
+1621 3788   0.039363
+1621 3792  -0.013107
+1621 3796   0.004754
+1621 3798  -1.000000
+1622 4   0.128990
+1622 3787   0.078885
+1622 3789   1.000000
+1622 3791   0.058415
+1622 3795  -0.008310
+1622 3797  -1.000000
+1623 4   0.128990
+1623 3788   0.078885
+1623 3790   1.000000
+1623 3792   0.058415
+1623 3796  -0.008310
+1623 3798  -1.000000
+1624 4   0.200000
+1624 3787   0.075281
+1624 3791   0.102497
+1624 3793   1.000000
+1624 3795   0.022222
+1624 3797  -1.000000
+1625 4   0.200000
+1625 3788   0.075281
+1625 3792   0.102497
+1625 3794   1.000000
+1625 3796   0.022222
+1625 3798  -1.000000
+1626 4   0.031010
+1626 3799   1.000000
+1626 3801   0.039363
+1626 3805  -0.013107
+1626 3809   0.004754
+1626 3811  -1.000000
+1627 4   0.031010
+1627 3800   1.000000
+1627 3802   0.039363
+1627 3806  -0.013107
+1627 3810   0.004754
+1627 3812  -1.000000
+1628 4   0.128990
+1628 3801   0.078885
+1628 3803   1.000000
+1628 3805   0.058415
+1628 3809  -0.008310
+1628 3811  -1.000000
+1629 4   0.128990
+1629 3802   0.078885
+1629 3804   1.000000
+1629 3806   0.058415
+1629 3810  -0.008310
+1629 3812  -1.000000
+1630 4   0.200000
+1630 3801   0.075281
+1630 3805   0.102497
+1630 3807   1.000000
+1630 3809   0.022222
+1630 3811  -1.000000
+1631 4   0.200000
+1631 3802   0.075281
+1631 3806   0.102497
+1631 3808   1.000000
+1631 3810   0.022222
+1631 3812  -1.000000
+1632 4   0.031010
+1632 3813   1.000000
+1632 3815   0.039363
+1632 3819  -0.013107
+1632 3823   0.004754
+1632 3825  -1.000000
+1633 4   0.031010
+1633 3814   1.000000
+1633 3816   0.039363
+1633 3820  -0.013107
+1633 3824   0.004754
+1633 3826  -1.000000
+1634 4   0.128990
+1634 3815   0.078885
+1634 3817   1.000000
+1634 3819   0.058415
+1634 3823  -0.008310
+1634 3825  -1.000000
+1635 4   0.128990
+1635 3816   0.078885
+1635 3818   1.000000
+1635 3820   0.058415
+1635 3824  -0.008310
+1635 3826  -1.000000
+1636 4   0.200000
+1636 3815   0.075281
+1636 3819   0.102497
+1636 3821   1.000000
+1636 3823   0.022222
+1636 3825  -1.000000
+1637 4   0.200000
+1637 3816   0.075281
+1637 3820   0.102497
+1637 3822   1.000000
+1637 3824   0.022222
+1637 3826  -1.000000
+1638 4   0.031010
+1638 3827   1.000000
+1638 3829   0.039363
+1638 3833  -0.013107
+1638 3837   0.004754
+1638 3839  -1.000000
+1639 4   0.031010
+1639 3828   1.000000
+1639 3830   0.039363
+1639 3834  -0.013107
+1639 3838   0.004754
+1639 3840  -1.000000
+1640 4   0.128990
+1640 3829   0.078885
+1640 3831   1.000000
+1640 3833   0.058415
+1640 3837  -0.008310
+1640 3839  -1.000000
+1641 4   0.128990
+1641 3830   0.078885
+1641 3832   1.000000
+1641 3834   0.058415
+1641 3838  -0.008310
+1641 3840  -1.000000
+1642 4   0.200000
+1642 3829   0.075281
+1642 3833   0.102497
+1642 3835   1.000000
+1642 3837   0.022222
+1642 3839  -1.000000
+1643 4   0.200000
+1643 3830   0.075281
+1643 3834   0.102497
+1643 3836   1.000000
+1643 3838   0.022222
+1643 3840  -1.000000
+1644 4   0.031010
+1644 3841   1.000000
+1644 3843   0.039363
+1644 3847  -0.013107
+1644 3851   0.004754
+1644 3853  -1.000000
+1645 4   0.031010
+1645 3842   1.000000
+1645 3844   0.039363
+1645 3848  -0.013107
+1645 3852   0.004754
+1645 3854  -1.000000
+1646 4   0.128990
+1646 3843   0.078885
+1646 3845   1.000000
+1646 3847   0.058415
+1646 3851  -0.008310
+1646 3853  -1.000000
+1647 4   0.128990
+1647 3844   0.078885
+1647 3846   1.000000
+1647 3848   0.058415
+1647 3852  -0.008310
+1647 3854  -1.000000
+1648 4   0.200000
+1648 3843   0.075281
+1648 3847   0.102497
+1648 3849   1.000000
+1648 3851   0.022222
+1648 3853  -1.000000
+1649 4   0.200000
+1649 3844   0.075281
+1649 3848   0.102497
+1649 3850   1.000000
+1649 3852   0.022222
+1649 3854  -1.000000
+1650 4   0.031010
+1650 3855   1.000000
+1650 3857   0.039363
+1650 3861  -0.013107
+1650 3865   0.004754
+1650 3867  -1.000000
+1651 4   0.031010
+1651 3856   1.000000
+1651 3858   0.039363
+1651 3862  -0.013107
+1651 3866   0.004754
+1651 3868  -1.000000
+1652 4   0.128990
+1652 3857   0.078885
+1652 3859   1.000000
+1652 3861   0.058415
+1652 3865  -0.008310
+1652 3867  -1.000000
+1653 4   0.128990
+1653 3858   0.078885
+1653 3860   1.000000
+1653 3862   0.058415
+1653 3866  -0.008310
+1653 3868  -1.000000
+1654 4   0.200000
+1654 3857   0.075281
+1654 3861   0.102497
+1654 3863   1.000000
+1654 3865   0.022222
+1654 3867  -1.000000
+1655 4   0.200000
+1655 3858   0.075281
+1655 3862   0.102497
+1655 3864   1.000000
+1655 3866   0.022222
+1655 3868  -1.000000
+1656 4   0.031010
+1656 3869   1.000000
+1656 3871   0.039363
+1656 3875  -0.013107
+1656 3879   0.004754
+1656 3881  -1.000000
+1657 4   0.031010
+1657 3870   1.000000
+1657 3872   0.039363
+1657 3876  -0.013107
+1657 3880   0.004754
+1657 3882  -1.000000
+1658 4   0.128990
+1658 3871   0.078885
+1658 3873   1.000000
+1658 3875   0.058415
+1658 3879  -0.008310
+1658 3881  -1.000000
+1659 4   0.128990
+1659 3872   0.078885
+1659 3874   1.000000
+1659 3876   0.058415
+1659 3880  -0.008310
+1659 3882  -1.000000
+1660 4   0.200000
+1660 3871   0.075281
+1660 3875   0.102497
+1660 3877   1.000000
+1660 3879   0.022222
+1660 3881  -1.000000
+1661 4   0.200000
+1661 3872   0.075281
+1661 3876   0.102497
+1661 3878   1.000000
+1661 3880   0.022222
+1661 3882  -1.000000
+1662 4   0.031010
+1662 3883   1.000000
+1662 3885   0.039363
+1662 3889  -0.013107
+1662 3893   0.004754
+1662 3895  -1.000000
+1663 4   0.031010
+1663 3884   1.000000
+1663 3886   0.039363
+1663 3890  -0.013107
+1663 3894   0.004754
+1663 3896  -1.000000
+1664 4   0.128990
+1664 3885   0.078885
+1664 3887   1.000000
+1664 3889   0.058415
+1664 3893  -0.008310
+1664 3895  -1.000000
+1665 4   0.128990
+1665 3886   0.078885
+1665 3888   1.000000
+1665 3890   0.058415
+1665 3894  -0.008310
+1665 3896  -1.000000
+1666 4   0.200000
+1666 3885   0.075281
+1666 3889   0.102497
+1666 3891   1.000000
+1666 3893   0.022222
+1666 3895  -1.000000
+1667 4   0.200000
+1667 3886   0.075281
+1667 3890   0.102497
+1667 3892   1.000000
+1667 3894   0.022222
+1667 3896  -1.000000
+1668 4   0.031010
+1668 3897   1.000000
+1668 3899   0.039363
+1668 3903  -0.013107
+1668 3907   0.004754
+1668 3909  -1.000000
+1669 4   0.031010
+1669 3898   1.000000
+1669 3900   0.039363
+1669 3904  -0.013107
+1669 3908   0.004754
+1669 3910  -1.000000
+1670 4   0.128990
+1670 3899   0.078885
+1670 3901   1.000000
+1670 3903   0.058415
+1670 3907  -0.008310
+1670 3909  -1.000000
+1671 4   0.128990
+1671 3900   0.078885
+1671 3902   1.000000
+1671 3904   0.058415
+1671 3908  -0.008310
+1671 3910  -1.000000
+1672 4   0.200000
+1672 3899   0.075281
+1672 3903   0.102497
+1672 3905   1.000000
+1672 3907   0.022222
+1672 3909  -1.000000
+1673 4   0.200000
+1673 3900   0.075281
+1673 3904   0.102497
+1673 3906   1.000000
+1673 3908   0.022222
+1673 3910  -1.000000
+1674 4   0.031010
+1674 3911   1.000000
+1674 3913   0.039363
+1674 3917  -0.013107
+1674 3921   0.004754
+1674 3923  -1.000000
+1675 4   0.031010
+1675 3912   1.000000
+1675 3914   0.039363
+1675 3918  -0.013107
+1675 3922   0.004754
+1675 3924  -1.000000
+1676 4   0.128990
+1676 3913   0.078885
+1676 3915   1.000000
+1676 3917   0.058415
+1676 3921  -0.008310
+1676 3923  -1.000000
+1677 4   0.128990
+1677 3914   0.078885
+1677 3916   1.000000
+1677 3918   0.058415
+1677 3922  -0.008310
+1677 3924  -1.000000
+1678 4   0.200000
+1678 3913   0.075281
+1678 3917   0.102497
+1678 3919   1.000000
+1678 3921   0.022222
+1678 3923  -1.000000
+1679 4   0.200000
+1679 3914   0.075281
+1679 3918   0.102497
+1679 3920   1.000000
+1679 3922   0.022222
+1679 3924  -1.000000
+1680 4   0.031010
+1680 3925   1.000000
+1680 3927   0.039363
+1680 3931  -0.013107
+1680 3935   0.004754
+1680 3937  -1.000000
+1681 4   0.031010
+1681 3926   1.000000
+1681 3928   0.039363
+1681 3932  -0.013107
+1681 3936   0.004754
+1681 3938  -1.000000
+1682 4   0.128990
+1682 3927   0.078885
+1682 3929   1.000000
+1682 3931   0.058415
+1682 3935  -0.008310
+1682 3937  -1.000000
+1683 4   0.128990
+1683 3928   0.078885
+1683 3930   1.000000
+1683 3932   0.058415
+1683 3936  -0.008310
+1683 3938  -1.000000
+1684 4   0.200000
+1684 3927   0.075281
+1684 3931   0.102497
+1684 3933   1.000000
+1684 3935   0.022222
+1684 3937  -1.000000
+1685 4   0.200000
+1685 3928   0.075281
+1685 3932   0.102497
+1685 3934   1.000000
+1685 3936   0.022222
+1685 3938  -1.000000
+1686 4   0.031010
+1686 3939   1.000000
+1686 3941   0.039363
+1686 3945  -0.013107
+1686 3949   0.004754
+1686 3951  -1.000000
+1687 4   0.031010
+1687 3940   1.000000
+1687 3942   0.039363
+1687 3946  -0.013107
+1687 3950   0.004754
+1687 3952  -1.000000
+1688 4   0.128990
+1688 3941   0.078885
+1688 3943   1.000000
+1688 3945   0.058415
+1688 3949  -0.008310
+1688 3951  -1.000000
+1689 4   0.128990
+1689 3942   0.078885
+1689 3944   1.000000
+1689 3946   0.058415
+1689 3950  -0.008310
+1689 3952  -1.000000
+1690 4   0.200000
+1690 3941   0.075281
+1690 3945   0.102497
+1690 3947   1.000000
+1690 3949   0.022222
+1690 3951  -1.000000
+1691 4   0.200000
+1691 3942   0.075281
+1691 3946   0.102497
+1691 3948   1.000000
+1691 3950   0.022222
+1691 3952  -1.000000
+1692 4   0.031010
+1692 3953   1.000000
+1692 3955   0.039363
+1692 3959  -0.013107
+1692 3963   0.004754
+1692 3965  -1.000000
+1693 4   0.031010
+1693 3954   1.000000
+1693 3956   0.039363
+1693 3960  -0.013107
+1693 3964   0.004754
+1693 3966  -1.000000
+1694 4   0.128990
+1694 3955   0.078885
+1694 3957   1.000000
+1694 3959   0.058415
+1694 3963  -0.008310
+1694 3965  -1.000000
+1695 4   0.128990
+1695 3956   0.078885
+1695 3958   1.000000
+1695 3960   0.058415
+1695 3964  -0.008310
+1695 3966  -1.000000
+1696 4   0.200000
+1696 3955   0.075281
+1696 3959   0.102497
+1696 3961   1.000000
+1696 3963   0.022222
+1696 3965  -1.000000
+1697 4   0.200000
+1697 3956   0.075281
+1697 3960   0.102497
+1697 3962   1.000000
+1697 3964   0.022222
+1697 3966  -1.000000
+1698 4   0.031010
+1698 3967   1.000000
+1698 3969   0.039363
+1698 3973  -0.013107
+1698 3977   0.004754
+1698 3979  -1.000000
+1699 4   0.031010
+1699 3968   1.000000
+1699 3970   0.039363
+1699 3974  -0.013107
+1699 3978   0.004754
+1699 3980  -1.000000
+1700 4   0.128990
+1700 3969   0.078885
+1700 3971   1.000000
+1700 3973   0.058415
+1700 3977  -0.008310
+1700 3979  -1.000000
+1701 4   0.128990
+1701 3970   0.078885
+1701 3972   1.000000
+1701 3974   0.058415
+1701 3978  -0.008310
+1701 3980  -1.000000
+1702 4   0.200000
+1702 3969   0.075281
+1702 3973   0.102497
+1702 3975   1.000000
+1702 3977   0.022222
+1702 3979  -1.000000
+1703 4   0.200000
+1703 3970   0.075281
+1703 3974   0.102497
+1703 3976   1.000000
+1703 3978   0.022222
+1703 3980  -1.000000
+1704 4   0.031010
+1704 3981   1.000000
+1704 3983   0.039363
+1704 3987  -0.013107
+1704 3991   0.004754
+1704 3993  -1.000000
+1705 4   0.031010
+1705 3982   1.000000
+1705 3984   0.039363
+1705 3988  -0.013107
+1705 3992   0.004754
+1705 3994  -1.000000
+1706 4   0.128990
+1706 3983   0.078885
+1706 3985   1.000000
+1706 3987   0.058415
+1706 3991  -0.008310
+1706 3993  -1.000000
+1707 4   0.128990
+1707 3984   0.078885
+1707 3986   1.000000
+1707 3988   0.058415
+1707 3992  -0.008310
+1707 3994  -1.000000
+1708 4   0.200000
+1708 3983   0.075281
+1708 3987   0.102497
+1708 3989   1.000000
+1708 3991   0.022222
+1708 3993  -1.000000
+1709 4   0.200000
+1709 3984   0.075281
+1709 3988   0.102497
+1709 3990   1.000000
+1709 3992   0.022222
+1709 3994  -1.000000
+1710 4   0.031010
+1710 3995   1.000000
+1710 3997   0.039363
+1710 4001  -0.013107
+1710 4005   0.004754
+1710 4007  -1.000000
+1711 4   0.031010
+1711 3996   1.000000
+1711 3998   0.039363
+1711 4002  -0.013107
+1711 4006   0.004754
+1711 4008  -1.000000
+1712 4   0.128990
+1712 3997   0.078885
+1712 3999   1.000000
+1712 4001   0.058415
+1712 4005  -0.008310
+1712 4007  -1.000000
+1713 4   0.128990
+1713 3998   0.078885
+1713 4000   1.000000
+1713 4002   0.058415
+1713 4006  -0.008310
+1713 4008  -1.000000
+1714 4   0.200000
+1714 3997   0.075281
+1714 4001   0.102497
+1714 4003   1.000000
+1714 4005   0.022222
+1714 4007  -1.000000
+1715 4   0.200000
+1715 3998   0.075281
+1715 4002   0.102497
+1715 4004   1.000000
+1715 4006   0.022222
+1715 4008  -1.000000
+1716 4   0.031010
+1716 4009   1.000000
+1716 4011   0.039363
+1716 4015  -0.013107
+1716 4019   0.004754
+1716 4021  -1.000000
+1717 4   0.031010
+1717 4010   1.000000
+1717 4012   0.039363
+1717 4016  -0.013107
+1717 4020   0.004754
+1717 4022  -1.000000
+1718 4   0.128990
+1718 4011   0.078885
+1718 4013   1.000000
+1718 4015   0.058415
+1718 4019  -0.008310
+1718 4021  -1.000000
+1719 4   0.128990
+1719 4012   0.078885
+1719 4014   1.000000
+1719 4016   0.058415
+1719 4020  -0.008310
+1719 4022  -1.000000
+1720 4   0.200000
+1720 4011   0.075281
+1720 4015   0.102497
+1720 4017   1.000000
+1720 4019   0.022222
+1720 4021  -1.000000
+1721 4   0.200000
+1721 4012   0.075281
+1721 4016   0.102497
+1721 4018   1.000000
+1721 4020   0.022222
+1721 4022  -1.000000
+1722 4   0.031010
+1722 4023   1.000000
+1722 4025   0.039363
+1722 4029  -0.013107
+1722 4033   0.004754
+1722 4035  -1.000000
+1723 4   0.031010
+1723 4024   1.000000
+1723 4026   0.039363
+1723 4030  -0.013107
+1723 4034   0.004754
+1723 4036  -1.000000
+1724 4   0.128990
+1724 4025   0.078885
+1724 4027   1.000000
+1724 4029   0.058415
+1724 4033  -0.008310
+1724 4035  -1.000000
+1725 4   0.128990
+1725 4026   0.078885
+1725 4028   1.000000
+1725 4030   0.058415
+1725 4034  -0.008310
+1725 4036  -1.000000
+1726 4   0.200000
+1726 4025   0.075281
+1726 4029   0.102497
+1726 4031   1.000000
+1726 4033   0.022222
+1726 4035  -1.000000
+1727 4   0.200000
+1727 4026   0.075281
+1727 4030   0.102497
+1727 4032   1.000000
+1727 4034   0.022222
+1727 4036  -1.000000
+1728 4   0.031010
+1728 4037   1.000000
+1728 4039   0.039363
+1728 4043  -0.013107
+1728 4047   0.004754
+1728 4049  -1.000000
+1729 4   0.031010
+1729 4038   1.000000
+1729 4040   0.039363
+1729 4044  -0.013107
+1729 4048   0.004754
+1729 4050  -1.000000
+1730 4   0.128990
+1730 4039   0.078885
+1730 4041   1.000000
+1730 4043   0.058415
+1730 4047  -0.008310
+1730 4049  -1.000000
+1731 4   0.128990
+1731 4040   0.078885
+1731 4042   1.000000
+1731 4044   0.058415
+1731 4048  -0.008310
+1731 4050  -1.000000
+1732 4   0.200000
+1732 4039   0.075281
+1732 4043   0.102497
+1732 4045   1.000000
+1732 4047   0.022222
+1732 4049  -1.000000
+1733 4   0.200000
+1733 4040   0.075281
+1733 4044   0.102497
+1733 4046   1.000000
+1733 4048   0.022222
+1733 4050  -1.000000
+1734 4   0.031010
+1734 4051   1.000000
+1734 4053   0.039363
+1734 4057  -0.013107
+1734 4061   0.004754
+1734 4063  -1.000000
+1735 4   0.031010
+1735 4052   1.000000
+1735 4054   0.039363
+1735 4058  -0.013107
+1735 4062   0.004754
+1735 4064  -1.000000
+1736 4   0.128990
+1736 4053   0.078885
+1736 4055   1.000000
+1736 4057   0.058415
+1736 4061  -0.008310
+1736 4063  -1.000000
+1737 4   0.128990
+1737 4054   0.078885
+1737 4056   1.000000
+1737 4058   0.058415
+1737 4062  -0.008310
+1737 4064  -1.000000
+1738 4   0.200000
+1738 4053   0.075281
+1738 4057   0.102497
+1738 4059   1.000000
+1738 4061   0.022222
+1738 4063  -1.000000
+1739 4   0.200000
+1739 4054   0.075281
+1739 4058   0.102497
+1739 4060   1.000000
+1739 4062   0.022222
+1739 4064  -1.000000
+1740 4   0.031010
+1740 4065   1.000000
+1740 4067   0.039363
+1740 4071  -0.013107
+1740 4075   0.004754
+1740 4077  -1.000000
+1741 4   0.031010
+1741 4066   1.000000
+1741 4068   0.039363
+1741 4072  -0.013107
+1741 4076   0.004754
+1741 4078  -1.000000
+1742 4   0.128990
+1742 4067   0.078885
+1742 4069   1.000000
+1742 4071   0.058415
+1742 4075  -0.008310
+1742 4077  -1.000000
+1743 4   0.128990
+1743 4068   0.078885
+1743 4070   1.000000
+1743 4072   0.058415
+1743 4076  -0.008310
+1743 4078  -1.000000
+1744 4   0.200000
+1744 4067   0.075281
+1744 4071   0.102497
+1744 4073   1.000000
+1744 4075   0.022222
+1744 4077  -1.000000
+1745 4   0.200000
+1745 4068   0.075281
+1745 4072   0.102497
+1745 4074   1.000000
+1745 4076   0.022222
+1745 4078  -1.000000
+1746 4   0.031010
+1746 4079   1.000000
+1746 4081   0.039363
+1746 4085  -0.013107
+1746 4089   0.004754
+1746 4091  -1.000000
+1747 4   0.031010
+1747 4080   1.000000
+1747 4082   0.039363
+1747 4086  -0.013107
+1747 4090   0.004754
+1747 4092  -1.000000
+1748 4   0.128990
+1748 4081   0.078885
+1748 4083   1.000000
+1748 4085   0.058415
+1748 4089  -0.008310
+1748 4091  -1.000000
+1749 4   0.128990
+1749 4082   0.078885
+1749 4084   1.000000
+1749 4086   0.058415
+1749 4090  -0.008310
+1749 4092  -1.000000
+1750 4   0.200000
+1750 4081   0.075281
+1750 4085   0.102497
+1750 4087   1.000000
+1750 4089   0.022222
+1750 4091  -1.000000
+1751 4   0.200000
+1751 4082   0.075281
+1751 4086   0.102497
+1751 4088   1.000000
+1751 4090   0.022222
+1751 4092  -1.000000
+1752 4   0.031010
+1752 4093   1.000000
+1752 4095   0.039363
+1752 4099  -0.013107
+1752 4103   0.004754
+1752 4105  -1.000000
+1753 4   0.031010
+1753 4094   1.000000
+1753 4096   0.039363
+1753 4100  -0.013107
+1753 4104   0.004754
+1753 4106  -1.000000
+1754 4   0.128990
+1754 4095   0.078885
+1754 4097   1.000000
+1754 4099   0.058415
+1754 4103  -0.008310
+1754 4105  -1.000000
+1755 4   0.128990
+1755 4096   0.078885
+1755 4098   1.000000
+1755 4100   0.058415
+1755 4104  -0.008310
+1755 4106  -1.000000
+1756 4   0.200000
+1756 4095   0.075281
+1756 4099   0.102497
+1756 4101   1.000000
+1756 4103   0.022222
+1756 4105  -1.000000
+1757 4   0.200000
+1757 4096   0.075281
+1757 4100   0.102497
+1757 4102   1.000000
+1757 4104   0.022222
+1757 4106  -1.000000
+1758 4   0.031010
+1758 4107   1.000000
+1758 4109   0.039363
+1758 4113  -0.013107
+1758 4117   0.004754
+1758 4119  -1.000000
+1759 4   0.031010
+1759 4108   1.000000
+1759 4110   0.039363
+1759 4114  -0.013107
+1759 4118   0.004754
+1759 4120  -1.000000
+1760 4   0.128990
+1760 4109   0.078885
+1760 4111   1.000000
+1760 4113   0.058415
+1760 4117  -0.008310
+1760 4119  -1.000000
+1761 4   0.128990
+1761 4110   0.078885
+1761 4112   1.000000
+1761 4114   0.058415
+1761 4118  -0.008310
+1761 4120  -1.000000
+1762 4   0.200000
+1762 4109   0.075281
+1762 4113   0.102497
+1762 4115   1.000000
+1762 4117   0.022222
+1762 4119  -1.000000
+1763 4   0.200000
+1763 4110   0.075281
+1763 4114   0.102497
+1763 4116   1.000000
+1763 4118   0.022222
+1763 4120  -1.000000
+1764 4   0.031010
+1764 4121   1.000000
+1764 4123   0.039363
+1764 4127  -0.013107
+1764 4131   0.004754
+1764 4133  -1.000000
+1765 4   0.031010
+1765 4122   1.000000
+1765 4124   0.039363
+1765 4128  -0.013107
+1765 4132   0.004754
+1765 4134  -1.000000
+1766 4   0.128990
+1766 4123   0.078885
+1766 4125   1.000000
+1766 4127   0.058415
+1766 4131  -0.008310
+1766 4133  -1.000000
+1767 4   0.128990
+1767 4124   0.078885
+1767 4126   1.000000
+1767 4128   0.058415
+1767 4132  -0.008310
+1767 4134  -1.000000
+1768 4   0.200000
+1768 4123   0.075281
+1768 4127   0.102497
+1768 4129   1.000000
+1768 4131   0.022222
+1768 4133  -1.000000
+1769 4   0.200000
+1769 4124   0.075281
+1769 4128   0.102497
+1769 4130   1.000000
+1769 4132   0.022222
+1769 4134  -1.000000
+1770 4   0.031010
+1770 4135   1.000000
+1770 4137   0.039363
+1770 4141  -0.013107
+1770 4145   0.004754
+1770 4147  -1.000000
+1771 4   0.031010
+1771 4136   1.000000
+1771 4138   0.039363
+1771 4142  -0.013107
+1771 4146   0.004754
+1771 4148  -1.000000
+1772 4   0.128990
+1772 4137   0.078885
+1772 4139   1.000000
+1772 4141   0.058415
+1772 4145  -0.008310
+1772 4147  -1.000000
+1773 4   0.128990
+1773 4138   0.078885
+1773 4140   1.000000
+1773 4142   0.058415
+1773 4146  -0.008310
+1773 4148  -1.000000
+1774 4   0.200000
+1774 4137   0.075281
+1774 4141   0.102497
+1774 4143   1.000000
+1774 4145   0.022222
+1774 4147  -1.000000
+1775 4   0.200000
+1775 4138   0.075281
+1775 4142   0.102497
+1775 4144   1.000000
+1775 4146   0.022222
+1775 4148  -1.000000
+1776 4   0.031010
+1776 4149   1.000000
+1776 4151   0.039363
+1776 4155  -0.013107
+1776 4159   0.004754
+1776 4161  -1.000000
+1777 4   0.031010
+1777 4150   1.000000
+1777 4152   0.039363
+1777 4156  -0.013107
+1777 4160   0.004754
+1777 4162  -1.000000
+1778 4   0.128990
+1778 4151   0.078885
+1778 4153   1.000000
+1778 4155   0.058415
+1778 4159  -0.008310
+1778 4161  -1.000000
+1779 4   0.128990
+1779 4152   0.078885
+1779 4154   1.000000
+1779 4156   0.058415
+1779 4160  -0.008310
+1779 4162  -1.000000
+1780 4   0.200000
+1780 4151   0.075281
+1780 4155   0.102497
+1780 4157   1.000000
+1780 4159   0.022222
+1780 4161  -1.000000
+1781 4   0.200000
+1781 4152   0.075281
+1781 4156   0.102497
+1781 4158   1.000000
+1781 4160   0.022222
+1781 4162  -1.000000
+1782 4   0.031010
+1782 4163   1.000000
+1782 4165   0.039363
+1782 4169  -0.013107
+1782 4173   0.004754
+1782 4175  -1.000000
+1783 4   0.031010
+1783 4164   1.000000
+1783 4166   0.039363
+1783 4170  -0.013107
+1783 4174   0.004754
+1783 4176  -1.000000
+1784 4   0.128990
+1784 4165   0.078885
+1784 4167   1.000000
+1784 4169   0.058415
+1784 4173  -0.008310
+1784 4175  -1.000000
+1785 4   0.128990
+1785 4166   0.078885
+1785 4168   1.000000
+1785 4170   0.058415
+1785 4174  -0.008310
+1785 4176  -1.000000
+1786 4   0.200000
+1786 4165   0.075281
+1786 4169   0.102497
+1786 4171   1.000000
+1786 4173   0.022222
+1786 4175  -1.000000
+1787 4   0.200000
+1787 4166   0.075281
+1787 4170   0.102497
+1787 4172   1.000000
+1787 4174   0.022222
+1787 4176  -1.000000
+1788 4   0.031010
+1788 4177   1.000000
+1788 4179   0.039363
+1788 4183  -0.013107
+1788 4187   0.004754
+1788 4189  -1.000000
+1789 4   0.031010
+1789 4178   1.000000
+1789 4180   0.039363
+1789 4184  -0.013107
+1789 4188   0.004754
+1789 4190  -1.000000
+1790 4   0.128990
+1790 4179   0.078885
+1790 4181   1.000000
+1790 4183   0.058415
+1790 4187  -0.008310
+1790 4189  -1.000000
+1791 4   0.128990
+1791 4180   0.078885
+1791 4182   1.000000
+1791 4184   0.058415
+1791 4188  -0.008310
+1791 4190  -1.000000
+1792 4   0.200000
+1792 4179   0.075281
+1792 4183   0.102497
+1792 4185   1.000000
+1792 4187   0.022222
+1792 4189  -1.000000
+1793 4   0.200000
+1793 4180   0.075281
+1793 4184   0.102497
+1793 4186   1.000000
+1793 4188   0.022222
+1793 4190  -1.000000
+1794 4   0.031010
+1794 4191   1.000000
+1794 4193   0.039363
+1794 4197  -0.013107
+1794 4201   0.004754
+1794 4203  -1.000000
+1795 4   0.031010
+1795 4192   1.000000
+1795 4194   0.039363
+1795 4198  -0.013107
+1795 4202   0.004754
+1795 4204  -1.000000
+1796 4   0.128990
+1796 4193   0.078885
+1796 4195   1.000000
+1796 4197   0.058415
+1796 4201  -0.008310
+1796 4203  -1.000000
+1797 4   0.128990
+1797 4194   0.078885
+1797 4196   1.000000
+1797 4198   0.058415
+1797 4202  -0.008310
+1797 4204  -1.000000
+1798 4   0.200000
+1798 4193   0.075281
+1798 4197   0.102497
+1798 4199   1.000000
+1798 4201   0.022222
+1798 4203  -1.000000
+1799 4   0.200000
+1799 4194   0.075281
+1799 4198   0.102497
+1799 4200   1.000000
+1799 4202   0.022222
+1799 4204  -1.000000
+1800 4   0.031010
+1800 4205   1.000000
+1800 4207   0.039363
+1800 4211  -0.013107
+1800 4215   0.004754
+1800 4217  -1.000000
+1801 4   0.031010
+1801 4206   1.000000
+1801 4208   0.039363
+1801 4212  -0.013107
+1801 4216   0.004754
+1801 4218  -1.000000
+1802 4   0.128990
+1802 4207   0.078885
+1802 4209   1.000000
+1802 4211   0.058415
+1802 4215  -0.008310
+1802 4217  -1.000000
+1803 4   0.128990
+1803 4208   0.078885
+1803 4210   1.000000
+1803 4212   0.058415
+1803 4216  -0.008310
+1803 4218  -1.000000
+1804 4   0.200000
+1804 4207   0.075281
+1804 4211   0.102497
+1804 4213   1.000000
+1804 4215   0.022222
+1804 4217  -1.000000
+1805 4   0.200000
+1805 4208   0.075281
+1805 4212   0.102497
+1805 4214   1.000000
+1805 4216   0.022222
+1805 4218  -1.000000
+1806 4   0.031010
+1806 4219   1.000000
+1806 4221   0.039363
+1806 4225  -0.013107
+1806 4229   0.004754
+1806 4231  -1.000000
+1807 4   0.031010
+1807 4220   1.000000
+1807 4222   0.039363
+1807 4226  -0.013107
+1807 4230   0.004754
+1807 4232  -1.000000
+1808 4   0.128990
+1808 4221   0.078885
+1808 4223   1.000000
+1808 4225   0.058415
+1808 4229  -0.008310
+1808 4231  -1.000000
+1809 4   0.128990
+1809 4222   0.078885
+1809 4224   1.000000
+1809 4226   0.058415
+1809 4230  -0.008310
+1809 4232  -1.000000
+1810 4   0.200000
+1810 4221   0.075281
+1810 4225   0.102497
+1810 4227   1.000000
+1810 4229   0.022222
+1810 4231  -1.000000
+1811 4   0.200000
+1811 4222   0.075281
+1811 4226   0.102497
+1811 4228   1.000000
+1811 4230   0.022222
+1811 4232  -1.000000
+1812 4   0.031010
+1812 4233   1.000000
+1812 4235   0.039363
+1812 4239  -0.013107
+1812 4243   0.004754
+1812 4245  -1.000000
+1813 4   0.031010
+1813 4234   1.000000
+1813 4236   0.039363
+1813 4240  -0.013107
+1813 4244   0.004754
+1813 4246  -1.000000
+1814 4   0.128990
+1814 4235   0.078885
+1814 4237   1.000000
+1814 4239   0.058415
+1814 4243  -0.008310
+1814 4245  -1.000000
+1815 4   0.128990
+1815 4236   0.078885
+1815 4238   1.000000
+1815 4240   0.058415
+1815 4244  -0.008310
+1815 4246  -1.000000
+1816 4   0.200000
+1816 4235   0.075281
+1816 4239   0.102497
+1816 4241   1.000000
+1816 4243   0.022222
+1816 4245  -1.000000
+1817 4   0.200000
+1817 4236   0.075281
+1817 4240   0.102497
+1817 4242   1.000000
+1817 4244   0.022222
+1817 4246  -1.000000
+1818 4   0.031010
+1818 4247   1.000000
+1818 4249   0.039363
+1818 4253  -0.013107
+1818 4257   0.004754
+1818 4259  -1.000000
+1819 4   0.031010
+1819 4248   1.000000
+1819 4250   0.039363
+1819 4254  -0.013107
+1819 4258   0.004754
+1819 4260  -1.000000
+1820 4   0.128990
+1820 4249   0.078885
+1820 4251   1.000000
+1820 4253   0.058415
+1820 4257  -0.008310
+1820 4259  -1.000000
+1821 4   0.128990
+1821 4250   0.078885
+1821 4252   1.000000
+1821 4254   0.058415
+1821 4258  -0.008310
+1821 4260  -1.000000
+1822 4   0.200000
+1822 4249   0.075281
+1822 4253   0.102497
+1822 4255   1.000000
+1822 4257   0.022222
+1822 4259  -1.000000
+1823 4   0.200000
+1823 4250   0.075281
+1823 4254   0.102497
+1823 4256   1.000000
+1823 4258   0.022222
+1823 4260  -1.000000
+1824 4   0.031010
+1824 4261   1.000000
+1824 4263   0.039363
+1824 4267  -0.013107
+1824 4271   0.004754
+1824 4273  -1.000000
+1825 4   0.031010
+1825 4262   1.000000
+1825 4264   0.039363
+1825 4268  -0.013107
+1825 4272   0.004754
+1825 4274  -1.000000
+1826 4   0.128990
+1826 4263   0.078885
+1826 4265   1.000000
+1826 4267   0.058415
+1826 4271  -0.008310
+1826 4273  -1.000000
+1827 4   0.128990
+1827 4264   0.078885
+1827 4266   1.000000
+1827 4268   0.058415
+1827 4272  -0.008310
+1827 4274  -1.000000
+1828 4   0.200000
+1828 4263   0.075281
+1828 4267   0.102497
+1828 4269   1.000000
+1828 4271   0.022222
+1828 4273  -1.000000
+1829 4   0.200000
+1829 4264   0.075281
+1829 4268   0.102497
+1829 4270   1.000000
+1829 4272   0.022222
+1829 4274  -1.000000
+1830 4   0.031010
+1830 4275   1.000000
+1830 4277   0.039363
+1830 4281  -0.013107
+1830 4285   0.004754
+1830 4287  -1.000000
+1831 4   0.031010
+1831 4276   1.000000
+1831 4278   0.039363
+1831 4282  -0.013107
+1831 4286   0.004754
+1831 4288  -1.000000
+1832 4   0.128990
+1832 4277   0.078885
+1832 4279   1.000000
+1832 4281   0.058415
+1832 4285  -0.008310
+1832 4287  -1.000000
+1833 4   0.128990
+1833 4278   0.078885
+1833 4280   1.000000
+1833 4282   0.058415
+1833 4286  -0.008310
+1833 4288  -1.000000
+1834 4   0.200000
+1834 4277   0.075281
+1834 4281   0.102497
+1834 4283   1.000000
+1834 4285   0.022222
+1834 4287  -1.000000
+1835 4   0.200000
+1835 4278   0.075281
+1835 4282   0.102497
+1835 4284   1.000000
+1835 4286   0.022222
+1835 4288  -1.000000
+1836 4   0.031010
+1836 4289   1.000000
+1836 4291   0.039363
+1836 4295  -0.013107
+1836 4299   0.004754
+1836 4301  -1.000000
+1837 4   0.031010
+1837 4290   1.000000
+1837 4292   0.039363
+1837 4296  -0.013107
+1837 4300   0.004754
+1837 4302  -1.000000
+1838 4   0.128990
+1838 4291   0.078885
+1838 4293   1.000000
+1838 4295   0.058415
+1838 4299  -0.008310
+1838 4301  -1.000000
+1839 4   0.128990
+1839 4292   0.078885
+1839 4294   1.000000
+1839 4296   0.058415
+1839 4300  -0.008310
+1839 4302  -1.000000
+1840 4   0.200000
+1840 4291   0.075281
+1840 4295   0.102497
+1840 4297   1.000000
+1840 4299   0.022222
+1840 4301  -1.000000
+1841 4   0.200000
+1841 4292   0.075281
+1841 4296   0.102497
+1841 4298   1.000000
+1841 4300   0.022222
+1841 4302  -1.000000
+1842 4   0.031010
+1842 4303   1.000000
+1842 4305   0.039363
+1842 4309  -0.013107
+1842 4313   0.004754
+1842 4315  -1.000000
+1843 4   0.031010
+1843 4304   1.000000
+1843 4306   0.039363
+1843 4310  -0.013107
+1843 4314   0.004754
+1843 4316  -1.000000
+1844 4   0.128990
+1844 4305   0.078885
+1844 4307   1.000000
+1844 4309   0.058415
+1844 4313  -0.008310
+1844 4315  -1.000000
+1845 4   0.128990
+1845 4306   0.078885
+1845 4308   1.000000
+1845 4310   0.058415
+1845 4314  -0.008310
+1845 4316  -1.000000
+1846 4   0.200000
+1846 4305   0.075281
+1846 4309   0.102497
+1846 4311   1.000000
+1846 4313   0.022222
+1846 4315  -1.000000
+1847 4   0.200000
+1847 4306   0.075281
+1847 4310   0.102497
+1847 4312   1.000000
+1847 4314   0.022222
+1847 4316  -1.000000
+1848 4   0.031010
+1848 4317   1.000000
+1848 4319   0.039363
+1848 4323  -0.013107
+1848 4327   0.004754
+1848 4329  -1.000000
+1849 4   0.031010
+1849 4318   1.000000
+1849 4320   0.039363
+1849 4324  -0.013107
+1849 4328   0.004754
+1849 4330  -1.000000
+1850 4   0.128990
+1850 4319   0.078885
+1850 4321   1.000000
+1850 4323   0.058415
+1850 4327  -0.008310
+1850 4329  -1.000000
+1851 4   0.128990
+1851 4320   0.078885
+1851 4322   1.000000
+1851 4324   0.058415
+1851 4328  -0.008310
+1851 4330  -1.000000
+1852 4   0.200000
+1852 4319   0.075281
+1852 4323   0.102497
+1852 4325   1.000000
+1852 4327   0.022222
+1852 4329  -1.000000
+1853 4   0.200000
+1853 4320   0.075281
+1853 4324   0.102497
+1853 4326   1.000000
+1853 4328   0.022222
+1853 4330  -1.000000
+1854 4   0.031010
+1854 4331   1.000000
+1854 4333   0.039363
+1854 4337  -0.013107
+1854 4341   0.004754
+1854 4343  -1.000000
+1855 4   0.031010
+1855 4332   1.000000
+1855 4334   0.039363
+1855 4338  -0.013107
+1855 4342   0.004754
+1855 4344  -1.000000
+1856 4   0.128990
+1856 4333   0.078885
+1856 4335   1.000000
+1856 4337   0.058415
+1856 4341  -0.008310
+1856 4343  -1.000000
+1857 4   0.128990
+1857 4334   0.078885
+1857 4336   1.000000
+1857 4338   0.058415
+1857 4342  -0.008310
+1857 4344  -1.000000
+1858 4   0.200000
+1858 4333   0.075281
+1858 4337   0.102497
+1858 4339   1.000000
+1858 4341   0.022222
+1858 4343  -1.000000
+1859 4   0.200000
+1859 4334   0.075281
+1859 4338   0.102497
+1859 4340   1.000000
+1859 4342   0.022222
+1859 4344  -1.000000
+1860 4   0.031010
+1860 4345   1.000000
+1860 4347   0.039363
+1860 4351  -0.013107
+1860 4355   0.004754
+1860 4357  -1.000000
+1861 4   0.031010
+1861 4346   1.000000
+1861 4348   0.039363
+1861 4352  -0.013107
+1861 4356   0.004754
+1861 4358  -1.000000
+1862 4   0.128990
+1862 4347   0.078885
+1862 4349   1.000000
+1862 4351   0.058415
+1862 4355  -0.008310
+1862 4357  -1.000000
+1863 4   0.128990
+1863 4348   0.078885
+1863 4350   1.000000
+1863 4352   0.058415
+1863 4356  -0.008310
+1863 4358  -1.000000
+1864 4   0.200000
+1864 4347   0.075281
+1864 4351   0.102497
+1864 4353   1.000000
+1864 4355   0.022222
+1864 4357  -1.000000
+1865 4   0.200000
+1865 4348   0.075281
+1865 4352   0.102497
+1865 4354   1.000000
+1865 4356   0.022222
+1865 4358  -1.000000
+1866 4   0.031010
+1866 4359   1.000000
+1866 4361   0.039363
+1866 4365  -0.013107
+1866 4369   0.004754
+1866 4371  -1.000000
+1867 4   0.031010
+1867 4360   1.000000
+1867 4362   0.039363
+1867 4366  -0.013107
+1867 4370   0.004754
+1867 4372  -1.000000
+1868 4   0.128990
+1868 4361   0.078885
+1868 4363   1.000000
+1868 4365   0.058415
+1868 4369  -0.008310
+1868 4371  -1.000000
+1869 4   0.128990
+1869 4362   0.078885
+1869 4364   1.000000
+1869 4366   0.058415
+1869 4370  -0.008310
+1869 4372  -1.000000
+1870 4   0.200000
+1870 4361   0.075281
+1870 4365   0.102497
+1870 4367   1.000000
+1870 4369   0.022222
+1870 4371  -1.000000
+1871 4   0.200000
+1871 4362   0.075281
+1871 4366   0.102497
+1871 4368   1.000000
+1871 4370   0.022222
+1871 4372  -1.000000
+1872 4   0.031010
+1872 4373   1.000000
+1872 4375   0.039363
+1872 4379  -0.013107
+1872 4383   0.004754
+1872 4385  -1.000000
+1873 4   0.031010
+1873 4374   1.000000
+1873 4376   0.039363
+1873 4380  -0.013107
+1873 4384   0.004754
+1873 4386  -1.000000
+1874 4   0.128990
+1874 4375   0.078885
+1874 4377   1.000000
+1874 4379   0.058415
+1874 4383  -0.008310
+1874 4385  -1.000000
+1875 4   0.128990
+1875 4376   0.078885
+1875 4378   1.000000
+1875 4380   0.058415
+1875 4384  -0.008310
+1875 4386  -1.000000
+1876 4   0.200000
+1876 4375   0.075281
+1876 4379   0.102497
+1876 4381   1.000000
+1876 4383   0.022222
+1876 4385  -1.000000
+1877 4   0.200000
+1877 4376   0.075281
+1877 4380   0.102497
+1877 4382   1.000000
+1877 4384   0.022222
+1877 4386  -1.000000
+1878 4   0.031010
+1878 4387   1.000000
+1878 4389   0.039363
+1878 4393  -0.013107
+1878 4397   0.004754
+1878 4399  -1.000000
+1879 4   0.031010
+1879 4388   1.000000
+1879 4390   0.039363
+1879 4394  -0.013107
+1879 4398   0.004754
+1879 4400  -1.000000
+1880 4   0.128990
+1880 4389   0.078885
+1880 4391   1.000000
+1880 4393   0.058415
+1880 4397  -0.008310
+1880 4399  -1.000000
+1881 4   0.128990
+1881 4390   0.078885
+1881 4392   1.000000
+1881 4394   0.058415
+1881 4398  -0.008310
+1881 4400  -1.000000
+1882 4   0.200000
+1882 4389   0.075281
+1882 4393   0.102497
+1882 4395   1.000000
+1882 4397   0.022222
+1882 4399  -1.000000
+1883 4   0.200000
+1883 4390   0.075281
+1883 4394   0.102497
+1883 4396   1.000000
+1883 4398   0.022222
+1883 4400  -1.000000
+1884 4   0.031010
+1884 4401   1.000000
+1884 4403   0.039363
+1884 4407  -0.013107
+1884 4411   0.004754
+1884 4413  -1.000000
+1885 4   0.031010
+1885 4402   1.000000
+1885 4404   0.039363
+1885 4408  -0.013107
+1885 4412   0.004754
+1885 4414  -1.000000
+1886 4   0.128990
+1886 4403   0.078885
+1886 4405   1.000000
+1886 4407   0.058415
+1886 4411  -0.008310
+1886 4413  -1.000000
+1887 4   0.128990
+1887 4404   0.078885
+1887 4406   1.000000
+1887 4408   0.058415
+1887 4412  -0.008310
+1887 4414  -1.000000
+1888 4   0.200000
+1888 4403   0.075281
+1888 4407   0.102497
+1888 4409   1.000000
+1888 4411   0.022222
+1888 4413  -1.000000
+1889 4   0.200000
+1889 4404   0.075281
+1889 4408   0.102497
+1889 4410   1.000000
+1889 4412   0.022222
+1889 4414  -1.000000
+1890 4   0.031010
+1890 4415   1.000000
+1890 4417   0.039363
+1890 4421  -0.013107
+1890 4425   0.004754
+1890 4427  -1.000000
+1891 4   0.031010
+1891 4416   1.000000
+1891 4418   0.039363
+1891 4422  -0.013107
+1891 4426   0.004754
+1891 4428  -1.000000
+1892 4   0.128990
+1892 4417   0.078885
+1892 4419   1.000000
+1892 4421   0.058415
+1892 4425  -0.008310
+1892 4427  -1.000000
+1893 4   0.128990
+1893 4418   0.078885
+1893 4420   1.000000
+1893 4422   0.058415
+1893 4426  -0.008310
+1893 4428  -1.000000
+1894 4   0.200000
+1894 4417   0.075281
+1894 4421   0.102497
+1894 4423   1.000000
+1894 4425   0.022222
+1894 4427  -1.000000
+1895 4   0.200000
+1895 4418   0.075281
+1895 4422   0.102497
+1895 4424   1.000000
+1895 4426   0.022222
+1895 4428  -1.000000
+1896 4   0.031010
+1896 4429   1.000000
+1896 4431   0.039363
+1896 4435  -0.013107
+1896 4439   0.004754
+1896 4441  -1.000000
+1897 4   0.031010
+1897 4430   1.000000
+1897 4432   0.039363
+1897 4436  -0.013107
+1897 4440   0.004754
+1897 4442  -1.000000
+1898 4   0.128990
+1898 4431   0.078885
+1898 4433   1.000000
+1898 4435   0.058415
+1898 4439  -0.008310
+1898 4441  -1.000000
+1899 4   0.128990
+1899 4432   0.078885
+1899 4434   1.000000
+1899 4436   0.058415
+1899 4440  -0.008310
+1899 4442  -1.000000
+1900 4   0.200000
+1900 4431   0.075281
+1900 4435   0.102497
+1900 4437   1.000000
+1900 4439   0.022222
+1900 4441  -1.000000
+1901 4   0.200000
+1901 4432   0.075281
+1901 4436   0.102497
+1901 4438   1.000000
+1901 4440   0.022222
+1901 4442  -1.000000
+1902 4   0.031010
+1902 4443   1.000000
+1902 4445   0.039363
+1902 4449  -0.013107
+1902 4453   0.004754
+1902 4455  -1.000000
+1903 4   0.031010
+1903 4444   1.000000
+1903 4446   0.039363
+1903 4450  -0.013107
+1903 4454   0.004754
+1903 4456  -1.000000
+1904 4   0.128990
+1904 4445   0.078885
+1904 4447   1.000000
+1904 4449   0.058415
+1904 4453  -0.008310
+1904 4455  -1.000000
+1905 4   0.128990
+1905 4446   0.078885
+1905 4448   1.000000
+1905 4450   0.058415
+1905 4454  -0.008310
+1905 4456  -1.000000
+1906 4   0.200000
+1906 4445   0.075281
+1906 4449   0.102497
+1906 4451   1.000000
+1906 4453   0.022222
+1906 4455  -1.000000
+1907 4   0.200000
+1907 4446   0.075281
+1907 4450   0.102497
+1907 4452   1.000000
+1907 4454   0.022222
+1907 4456  -1.000000
+1908 4   0.031010
+1908 4457   1.000000
+1908 4459   0.039363
+1908 4463  -0.013107
+1908 4467   0.004754
+1908 4469  -1.000000
+1909 4   0.031010
+1909 4458   1.000000
+1909 4460   0.039363
+1909 4464  -0.013107
+1909 4468   0.004754
+1909 4470  -1.000000
+1910 4   0.128990
+1910 4459   0.078885
+1910 4461   1.000000
+1910 4463   0.058415
+1910 4467  -0.008310
+1910 4469  -1.000000
+1911 4   0.128990
+1911 4460   0.078885
+1911 4462   1.000000
+1911 4464   0.058415
+1911 4468  -0.008310
+1911 4470  -1.000000
+1912 4   0.200000
+1912 4459   0.075281
+1912 4463   0.102497
+1912 4465   1.000000
+1912 4467   0.022222
+1912 4469  -1.000000
+1913 4   0.200000
+1913 4460   0.075281
+1913 4464   0.102497
+1913 4466   1.000000
+1913 4468   0.022222
+1913 4470  -1.000000
+1914 4   0.031010
+1914 4471   1.000000
+1914 4473   0.039363
+1914 4477  -0.013107
+1914 4481   0.004754
+1914 4483  -1.000000
+1915 4   0.031010
+1915 4472   1.000000
+1915 4474   0.039363
+1915 4478  -0.013107
+1915 4482   0.004754
+1915 4484  -1.000000
+1916 4   0.128990
+1916 4473   0.078885
+1916 4475   1.000000
+1916 4477   0.058415
+1916 4481  -0.008310
+1916 4483  -1.000000
+1917 4   0.128990
+1917 4474   0.078885
+1917 4476   1.000000
+1917 4478   0.058415
+1917 4482  -0.008310
+1917 4484  -1.000000
+1918 4   0.200000
+1918 4473   0.075281
+1918 4477   0.102497
+1918 4479   1.000000
+1918 4481   0.022222
+1918 4483  -1.000000
+1919 4   0.200000
+1919 4474   0.075281
+1919 4478   0.102497
+1919 4480   1.000000
+1919 4482   0.022222
+1919 4484  -1.000000
+1920 4   0.031010
+1920 4485   1.000000
+1920 4487   0.039363
+1920 4491  -0.013107
+1920 4495   0.004754
+1920 4497  -1.000000
+1921 4   0.031010
+1921 4486   1.000000
+1921 4488   0.039363
+1921 4492  -0.013107
+1921 4496   0.004754
+1921 4498  -1.000000
+1922 4   0.128990
+1922 4487   0.078885
+1922 4489   1.000000
+1922 4491   0.058415
+1922 4495  -0.008310
+1922 4497  -1.000000
+1923 4   0.128990
+1923 4488   0.078885
+1923 4490   1.000000
+1923 4492   0.058415
+1923 4496  -0.008310
+1923 4498  -1.000000
+1924 4   0.200000
+1924 4487   0.075281
+1924 4491   0.102497
+1924 4493   1.000000
+1924 4495   0.022222
+1924 4497  -1.000000
+1925 4   0.200000
+1925 4488   0.075281
+1925 4492   0.102497
+1925 4494   1.000000
+1925 4496   0.022222
+1925 4498  -1.000000
+1926 4   0.031010
+1926 4499   1.000000
+1926 4501   0.039363
+1926 4505  -0.013107
+1926 4509   0.004754
+1926 4511  -1.000000
+1927 4   0.031010
+1927 4500   1.000000
+1927 4502   0.039363
+1927 4506  -0.013107
+1927 4510   0.004754
+1927 4512  -1.000000
+1928 4   0.128990
+1928 4501   0.078885
+1928 4503   1.000000
+1928 4505   0.058415
+1928 4509  -0.008310
+1928 4511  -1.000000
+1929 4   0.128990
+1929 4502   0.078885
+1929 4504   1.000000
+1929 4506   0.058415
+1929 4510  -0.008310
+1929 4512  -1.000000
+1930 4   0.200000
+1930 4501   0.075281
+1930 4505   0.102497
+1930 4507   1.000000
+1930 4509   0.022222
+1930 4511  -1.000000
+1931 4   0.200000
+1931 4502   0.075281
+1931 4506   0.102497
+1931 4508   1.000000
+1931 4510   0.022222
+1931 4512  -1.000000
+1932 4   0.031010
+1932 4513   1.000000
+1932 4515   0.039363
+1932 4519  -0.013107
+1932 4523   0.004754
+1932 4525  -1.000000
+1933 4   0.031010
+1933 4514   1.000000
+1933 4516   0.039363
+1933 4520  -0.013107
+1933 4524   0.004754
+1933 4526  -1.000000
+1934 4   0.128990
+1934 4515   0.078885
+1934 4517   1.000000
+1934 4519   0.058415
+1934 4523  -0.008310
+1934 4525  -1.000000
+1935 4   0.128990
+1935 4516   0.078885
+1935 4518   1.000000
+1935 4520   0.058415
+1935 4524  -0.008310
+1935 4526  -1.000000
+1936 4   0.200000
+1936 4515   0.075281
+1936 4519   0.102497
+1936 4521   1.000000
+1936 4523   0.022222
+1936 4525  -1.000000
+1937 4   0.200000
+1937 4516   0.075281
+1937 4520   0.102497
+1937 4522   1.000000
+1937 4524   0.022222
+1937 4526  -1.000000
+1938 4   0.031010
+1938 4527   1.000000
+1938 4529   0.039363
+1938 4533  -0.013107
+1938 4537   0.004754
+1938 4539  -1.000000
+1939 4   0.031010
+1939 4528   1.000000
+1939 4530   0.039363
+1939 4534  -0.013107
+1939 4538   0.004754
+1939 4540  -1.000000
+1940 4   0.128990
+1940 4529   0.078885
+1940 4531   1.000000
+1940 4533   0.058415
+1940 4537  -0.008310
+1940 4539  -1.000000
+1941 4   0.128990
+1941 4530   0.078885
+1941 4532   1.000000
+1941 4534   0.058415
+1941 4538  -0.008310
+1941 4540  -1.000000
+1942 4   0.200000
+1942 4529   0.075281
+1942 4533   0.102497
+1942 4535   1.000000
+1942 4537   0.022222
+1942 4539  -1.000000
+1943 4   0.200000
+1943 4530   0.075281
+1943 4534   0.102497
+1943 4536   1.000000
+1943 4538   0.022222
+1943 4540  -1.000000
+1944 4   0.031010
+1944 4541   1.000000
+1944 4543   0.039363
+1944 4547  -0.013107
+1944 4551   0.004754
+1944 4553  -1.000000
+1945 4   0.031010
+1945 4542   1.000000
+1945 4544   0.039363
+1945 4548  -0.013107
+1945 4552   0.004754
+1945 4554  -1.000000
+1946 4   0.128990
+1946 4543   0.078885
+1946 4545   1.000000
+1946 4547   0.058415
+1946 4551  -0.008310
+1946 4553  -1.000000
+1947 4   0.128990
+1947 4544   0.078885
+1947 4546   1.000000
+1947 4548   0.058415
+1947 4552  -0.008310
+1947 4554  -1.000000
+1948 4   0.200000
+1948 4543   0.075281
+1948 4547   0.102497
+1948 4549   1.000000
+1948 4551   0.022222
+1948 4553  -1.000000
+1949 4   0.200000
+1949 4544   0.075281
+1949 4548   0.102497
+1949 4550   1.000000
+1949 4552   0.022222
+1949 4554  -1.000000
+1950 4   0.031010
+1950 4555   1.000000
+1950 4557   0.039363
+1950 4561  -0.013107
+1950 4565   0.004754
+1950 4567  -1.000000
+1951 4   0.031010
+1951 4556   1.000000
+1951 4558   0.039363
+1951 4562  -0.013107
+1951 4566   0.004754
+1951 4568  -1.000000
+1952 4   0.128990
+1952 4557   0.078885
+1952 4559   1.000000
+1952 4561   0.058415
+1952 4565  -0.008310
+1952 4567  -1.000000
+1953 4   0.128990
+1953 4558   0.078885
+1953 4560   1.000000
+1953 4562   0.058415
+1953 4566  -0.008310
+1953 4568  -1.000000
+1954 4   0.200000
+1954 4557   0.075281
+1954 4561   0.102497
+1954 4563   1.000000
+1954 4565   0.022222
+1954 4567  -1.000000
+1955 4   0.200000
+1955 4558   0.075281
+1955 4562   0.102497
+1955 4564   1.000000
+1955 4566   0.022222
+1955 4568  -1.000000
+1956 4   0.031010
+1956 4569   1.000000
+1956 4571   0.039363
+1956 4575  -0.013107
+1956 4579   0.004754
+1956 4581  -1.000000
+1957 4   0.031010
+1957 4570   1.000000
+1957 4572   0.039363
+1957 4576  -0.013107
+1957 4580   0.004754
+1957 4582  -1.000000
+1958 4   0.128990
+1958 4571   0.078885
+1958 4573   1.000000
+1958 4575   0.058415
+1958 4579  -0.008310
+1958 4581  -1.000000
+1959 4   0.128990
+1959 4572   0.078885
+1959 4574   1.000000
+1959 4576   0.058415
+1959 4580  -0.008310
+1959 4582  -1.000000
+1960 4   0.200000
+1960 4571   0.075281
+1960 4575   0.102497
+1960 4577   1.000000
+1960 4579   0.022222
+1960 4581  -1.000000
+1961 4   0.200000
+1961 4572   0.075281
+1961 4576   0.102497
+1961 4578   1.000000
+1961 4580   0.022222
+1961 4582  -1.000000
+1962 4   0.031010
+1962 4583   1.000000
+1962 4585   0.039363
+1962 4589  -0.013107
+1962 4593   0.004754
+1962 4595  -1.000000
+1963 4   0.031010
+1963 4584   1.000000
+1963 4586   0.039363
+1963 4590  -0.013107
+1963 4594   0.004754
+1963 4596  -1.000000
+1964 4   0.128990
+1964 4585   0.078885
+1964 4587   1.000000
+1964 4589   0.058415
+1964 4593  -0.008310
+1964 4595  -1.000000
+1965 4   0.128990
+1965 4586   0.078885
+1965 4588   1.000000
+1965 4590   0.058415
+1965 4594  -0.008310
+1965 4596  -1.000000
+1966 4   0.200000
+1966 4585   0.075281
+1966 4589   0.102497
+1966 4591   1.000000
+1966 4593   0.022222
+1966 4595  -1.000000
+1967 4   0.200000
+1967 4586   0.075281
+1967 4590   0.102497
+1967 4592   1.000000
+1967 4594   0.022222
+1967 4596  -1.000000
+1968 4   0.031010
+1968 4597   1.000000
+1968 4599   0.039363
+1968 4603  -0.013107
+1968 4607   0.004754
+1968 4609  -1.000000
+1969 4   0.031010
+1969 4598   1.000000
+1969 4600   0.039363
+1969 4604  -0.013107
+1969 4608   0.004754
+1969 4610  -1.000000
+1970 4   0.128990
+1970 4599   0.078885
+1970 4601   1.000000
+1970 4603   0.058415
+1970 4607  -0.008310
+1970 4609  -1.000000
+1971 4   0.128990
+1971 4600   0.078885
+1971 4602   1.000000
+1971 4604   0.058415
+1971 4608  -0.008310
+1971 4610  -1.000000
+1972 4   0.200000
+1972 4599   0.075281
+1972 4603   0.102497
+1972 4605   1.000000
+1972 4607   0.022222
+1972 4609  -1.000000
+1973 4   0.200000
+1973 4600   0.075281
+1973 4604   0.102497
+1973 4606   1.000000
+1973 4608   0.022222
+1973 4610  -1.000000
+1974 4   0.031010
+1974 4611   1.000000
+1974 4613   0.039363
+1974 4617  -0.013107
+1974 4621   0.004754
+1974 4623  -1.000000
+1975 4   0.031010
+1975 4612   1.000000
+1975 4614   0.039363
+1975 4618  -0.013107
+1975 4622   0.004754
+1975 4624  -1.000000
+1976 4   0.128990
+1976 4613   0.078885
+1976 4615   1.000000
+1976 4617   0.058415
+1976 4621  -0.008310
+1976 4623  -1.000000
+1977 4   0.128990
+1977 4614   0.078885
+1977 4616   1.000000
+1977 4618   0.058415
+1977 4622  -0.008310
+1977 4624  -1.000000
+1978 4   0.200000
+1978 4613   0.075281
+1978 4617   0.102497
+1978 4619   1.000000
+1978 4621   0.022222
+1978 4623  -1.000000
+1979 4   0.200000
+1979 4614   0.075281
+1979 4618   0.102497
+1979 4620   1.000000
+1979 4622   0.022222
+1979 4624  -1.000000
+1980 4   0.031010
+1980 4625   1.000000
+1980 4627   0.039363
+1980 4631  -0.013107
+1980 4635   0.004754
+1980 4637  -1.000000
+1981 4   0.031010
+1981 4626   1.000000
+1981 4628   0.039363
+1981 4632  -0.013107
+1981 4636   0.004754
+1981 4638  -1.000000
+1982 4   0.128990
+1982 4627   0.078885
+1982 4629   1.000000
+1982 4631   0.058415
+1982 4635  -0.008310
+1982 4637  -1.000000
+1983 4   0.128990
+1983 4628   0.078885
+1983 4630   1.000000
+1983 4632   0.058415
+1983 4636  -0.008310
+1983 4638  -1.000000
+1984 4   0.200000
+1984 4627   0.075281
+1984 4631   0.102497
+1984 4633   1.000000
+1984 4635   0.022222
+1984 4637  -1.000000
+1985 4   0.200000
+1985 4628   0.075281
+1985 4632   0.102497
+1985 4634   1.000000
+1985 4636   0.022222
+1985 4638  -1.000000
+1986 4   0.031010
+1986 4639   1.000000
+1986 4641   0.039363
+1986 4645  -0.013107
+1986 4649   0.004754
+1986 4651  -1.000000
+1987 4   0.031010
+1987 4640   1.000000
+1987 4642   0.039363
+1987 4646  -0.013107
+1987 4650   0.004754
+1987 4652  -1.000000
+1988 4   0.128990
+1988 4641   0.078885
+1988 4643   1.000000
+1988 4645   0.058415
+1988 4649  -0.008310
+1988 4651  -1.000000
+1989 4   0.128990
+1989 4642   0.078885
+1989 4644   1.000000
+1989 4646   0.058415
+1989 4650  -0.008310
+1989 4652  -1.000000
+1990 4   0.200000
+1990 4641   0.075281
+1990 4645   0.102497
+1990 4647   1.000000
+1990 4649   0.022222
+1990 4651  -1.000000
+1991 4   0.200000
+1991 4642   0.075281
+1991 4646   0.102497
+1991 4648   1.000000
+1991 4650   0.022222
+1991 4652  -1.000000
+1992 4   0.031010
+1992 4653   1.000000
+1992 4655   0.039363
+1992 4659  -0.013107
+1992 4663   0.004754
+1992 4665  -1.000000
+1993 4   0.031010
+1993 4654   1.000000
+1993 4656   0.039363
+1993 4660  -0.013107
+1993 4664   0.004754
+1993 4666  -1.000000
+1994 4   0.128990
+1994 4655   0.078885
+1994 4657   1.000000
+1994 4659   0.058415
+1994 4663  -0.008310
+1994 4665  -1.000000
+1995 4   0.128990
+1995 4656   0.078885
+1995 4658   1.000000
+1995 4660   0.058415
+1995 4664  -0.008310
+1995 4666  -1.000000
+1996 4   0.200000
+1996 4655   0.075281
+1996 4659   0.102497
+1996 4661   1.000000
+1996 4663   0.022222
+1996 4665  -1.000000
+1997 4   0.200000
+1997 4656   0.075281
+1997 4660   0.102497
+1997 4662   1.000000
+1997 4664   0.022222
+1997 4666  -1.000000
+1998 4   0.031010
+1998 4667   1.000000
+1998 4669   0.039363
+1998 4673  -0.013107
+1998 4677   0.004754
+1998 4679  -1.000000
+1999 4   0.031010
+1999 4668   1.000000
+1999 4670   0.039363
+1999 4674  -0.013107
+1999 4678   0.004754
+1999 4680  -1.000000
+2000 4   0.128990
+2000 4669   0.078885
+2000 4671   1.000000
+2000 4673   0.058415
+2000 4677  -0.008310
+2000 4679  -1.000000
+2001 4   0.128990
+2001 4670   0.078885
+2001 4672   1.000000
+2001 4674   0.058415
+2001 4678  -0.008310
+2001 4680  -1.000000
+2002 4   0.200000
+2002 4669   0.075281
+2002 4673   0.102497
+2002 4675   1.000000
+2002 4677   0.022222
+2002 4679  -1.000000
+2003 4   0.200000
+2003 4670   0.075281
+2003 4674   0.102497
+2003 4676   1.000000
+2003 4678   0.022222
+2003 4680  -1.000000
+2004 4   0.031010
+2004 4681   1.000000
+2004 4683   0.039363
+2004 4687  -0.013107
+2004 4691   0.004754
+2004 4693  -1.000000
+2005 4   0.031010
+2005 4682   1.000000
+2005 4684   0.039363
+2005 4688  -0.013107
+2005 4692   0.004754
+2005 4694  -1.000000
+2006 4   0.128990
+2006 4683   0.078885
+2006 4685   1.000000
+2006 4687   0.058415
+2006 4691  -0.008310
+2006 4693  -1.000000
+2007 4   0.128990
+2007 4684   0.078885
+2007 4686   1.000000
+2007 4688   0.058415
+2007 4692  -0.008310
+2007 4694  -1.000000
+2008 4   0.200000
+2008 4683   0.075281
+2008 4687   0.102497
+2008 4689   1.000000
+2008 4691   0.022222
+2008 4693  -1.000000
+2009 4   0.200000
+2009 4684   0.075281
+2009 4688   0.102497
+2009 4690   1.000000
+2009 4692   0.022222
+2009 4694  -1.000000
+2010 4   0.031010
+2010 4695   1.000000
+2010 4697   0.039363
+2010 4701  -0.013107
+2010 4705   0.004754
+2010 4707  -1.000000
+2011 4   0.031010
+2011 4696   1.000000
+2011 4698   0.039363
+2011 4702  -0.013107
+2011 4706   0.004754
+2011 4708  -1.000000
+2012 4   0.128990
+2012 4697   0.078885
+2012 4699   1.000000
+2012 4701   0.058415
+2012 4705  -0.008310
+2012 4707  -1.000000
+2013 4   0.128990
+2013 4698   0.078885
+2013 4700   1.000000
+2013 4702   0.058415
+2013 4706  -0.008310
+2013 4708  -1.000000
+2014 4   0.200000
+2014 4697   0.075281
+2014 4701   0.102497
+2014 4703   1.000000
+2014 4705   0.022222
+2014 4707  -1.000000
+2015 4   0.200000
+2015 4698   0.075281
+2015 4702   0.102497
+2015 4704   1.000000
+2015 4706   0.022222
+2015 4708  -1.000000
+2016 4   0.031010
+2016 4709   1.000000
+2016 4711   0.039363
+2016 4715  -0.013107
+2016 4719   0.004754
+2016 4721  -1.000000
+2017 4   0.031010
+2017 4710   1.000000
+2017 4712   0.039363
+2017 4716  -0.013107
+2017 4720   0.004754
+2017 4722  -1.000000
+2018 4   0.128990
+2018 4711   0.078885
+2018 4713   1.000000
+2018 4715   0.058415
+2018 4719  -0.008310
+2018 4721  -1.000000
+2019 4   0.128990
+2019 4712   0.078885
+2019 4714   1.000000
+2019 4716   0.058415
+2019 4720  -0.008310
+2019 4722  -1.000000
+2020 4   0.200000
+2020 4711   0.075281
+2020 4715   0.102497
+2020 4717   1.000000
+2020 4719   0.022222
+2020 4721  -1.000000
+2021 4   0.200000
+2021 4712   0.075281
+2021 4716   0.102497
+2021 4718   1.000000
+2021 4720   0.022222
+2021 4722  -1.000000
+2022 4   0.031010
+2022 4723   1.000000
+2022 4725   0.039363
+2022 4729  -0.013107
+2022 4733   0.004754
+2022 4735  -1.000000
+2023 4   0.031010
+2023 4724   1.000000
+2023 4726   0.039363
+2023 4730  -0.013107
+2023 4734   0.004754
+2023 4736  -1.000000
+2024 4   0.128990
+2024 4725   0.078885
+2024 4727   1.000000
+2024 4729   0.058415
+2024 4733  -0.008310
+2024 4735  -1.000000
+2025 4   0.128990
+2025 4726   0.078885
+2025 4728   1.000000
+2025 4730   0.058415
+2025 4734  -0.008310
+2025 4736  -1.000000
+2026 4   0.200000
+2026 4725   0.075281
+2026 4729   0.102497
+2026 4731   1.000000
+2026 4733   0.022222
+2026 4735  -1.000000
+2027 4   0.200000
+2027 4726   0.075281
+2027 4730   0.102497
+2027 4732   1.000000
+2027 4734   0.022222
+2027 4736  -1.000000
+2028 4   0.031010
+2028 4737   1.000000
+2028 4739   0.039363
+2028 4743  -0.013107
+2028 4747   0.004754
+2028 4749  -1.000000
+2029 4   0.031010
+2029 4738   1.000000
+2029 4740   0.039363
+2029 4744  -0.013107
+2029 4748   0.004754
+2029 4750  -1.000000
+2030 4   0.128990
+2030 4739   0.078885
+2030 4741   1.000000
+2030 4743   0.058415
+2030 4747  -0.008310
+2030 4749  -1.000000
+2031 4   0.128990
+2031 4740   0.078885
+2031 4742   1.000000
+2031 4744   0.058415
+2031 4748  -0.008310
+2031 4750  -1.000000
+2032 4   0.200000
+2032 4739   0.075281
+2032 4743   0.102497
+2032 4745   1.000000
+2032 4747   0.022222
+2032 4749  -1.000000
+2033 4   0.200000
+2033 4740   0.075281
+2033 4744   0.102497
+2033 4746   1.000000
+2033 4748   0.022222
+2033 4750  -1.000000
+2034 4   0.031010
+2034 4751   1.000000
+2034 4753   0.039363
+2034 4757  -0.013107
+2034 4761   0.004754
+2034 4763  -1.000000
+2035 4   0.031010
+2035 4752   1.000000
+2035 4754   0.039363
+2035 4758  -0.013107
+2035 4762   0.004754
+2035 4764  -1.000000
+2036 4   0.128990
+2036 4753   0.078885
+2036 4755   1.000000
+2036 4757   0.058415
+2036 4761  -0.008310
+2036 4763  -1.000000
+2037 4   0.128990
+2037 4754   0.078885
+2037 4756   1.000000
+2037 4758   0.058415
+2037 4762  -0.008310
+2037 4764  -1.000000
+2038 4   0.200000
+2038 4753   0.075281
+2038 4757   0.102497
+2038 4759   1.000000
+2038 4761   0.022222
+2038 4763  -1.000000
+2039 4   0.200000
+2039 4754   0.075281
+2039 4758   0.102497
+2039 4760   1.000000
+2039 4762   0.022222
+2039 4764  -1.000000
+2040 4   0.031010
+2040 4765   1.000000
+2040 4767   0.039363
+2040 4771  -0.013107
+2040 4775   0.004754
+2040 4777  -1.000000
+2041 4   0.031010
+2041 4766   1.000000
+2041 4768   0.039363
+2041 4772  -0.013107
+2041 4776   0.004754
+2041 4778  -1.000000
+2042 4   0.128990
+2042 4767   0.078885
+2042 4769   1.000000
+2042 4771   0.058415
+2042 4775  -0.008310
+2042 4777  -1.000000
+2043 4   0.128990
+2043 4768   0.078885
+2043 4770   1.000000
+2043 4772   0.058415
+2043 4776  -0.008310
+2043 4778  -1.000000
+2044 4   0.200000
+2044 4767   0.075281
+2044 4771   0.102497
+2044 4773   1.000000
+2044 4775   0.022222
+2044 4777  -1.000000
+2045 4   0.200000
+2045 4768   0.075281
+2045 4772   0.102497
+2045 4774   1.000000
+2045 4776   0.022222
+2045 4778  -1.000000
+2046 4   0.031010
+2046 4779   1.000000
+2046 4781   0.039363
+2046 4785  -0.013107
+2046 4789   0.004754
+2046 4791  -1.000000
+2047 4   0.031010
+2047 4780   1.000000
+2047 4782   0.039363
+2047 4786  -0.013107
+2047 4790   0.004754
+2047 4792  -1.000000
+2048 4   0.128990
+2048 4781   0.078885
+2048 4783   1.000000
+2048 4785   0.058415
+2048 4789  -0.008310
+2048 4791  -1.000000
+2049 4   0.128990
+2049 4782   0.078885
+2049 4784   1.000000
+2049 4786   0.058415
+2049 4790  -0.008310
+2049 4792  -1.000000
+2050 4   0.200000
+2050 4781   0.075281
+2050 4785   0.102497
+2050 4787   1.000000
+2050 4789   0.022222
+2050 4791  -1.000000
+2051 4   0.200000
+2051 4782   0.075281
+2051 4786   0.102497
+2051 4788   1.000000
+2051 4790   0.022222
+2051 4792  -1.000000
+2052 4   0.031010
+2052 4793   1.000000
+2052 4795   0.039363
+2052 4799  -0.013107
+2052 4803   0.004754
+2052 4805  -1.000000
+2053 4   0.031010
+2053 4794   1.000000
+2053 4796   0.039363
+2053 4800  -0.013107
+2053 4804   0.004754
+2053 4806  -1.000000
+2054 4   0.128990
+2054 4795   0.078885
+2054 4797   1.000000
+2054 4799   0.058415
+2054 4803  -0.008310
+2054 4805  -1.000000
+2055 4   0.128990
+2055 4796   0.078885
+2055 4798   1.000000
+2055 4800   0.058415
+2055 4804  -0.008310
+2055 4806  -1.000000
+2056 4   0.200000
+2056 4795   0.075281
+2056 4799   0.102497
+2056 4801   1.000000
+2056 4803   0.022222
+2056 4805  -1.000000
+2057 4   0.200000
+2057 4796   0.075281
+2057 4800   0.102497
+2057 4802   1.000000
+2057 4804   0.022222
+2057 4806  -1.000000
+2058 4   0.031010
+2058 4807   1.000000
+2058 4809   0.039363
+2058 4813  -0.013107
+2058 4817   0.004754
+2058 4819  -1.000000
+2059 4   0.031010
+2059 4808   1.000000
+2059 4810   0.039363
+2059 4814  -0.013107
+2059 4818   0.004754
+2059 4820  -1.000000
+2060 4   0.128990
+2060 4809   0.078885
+2060 4811   1.000000
+2060 4813   0.058415
+2060 4817  -0.008310
+2060 4819  -1.000000
+2061 4   0.128990
+2061 4810   0.078885
+2061 4812   1.000000
+2061 4814   0.058415
+2061 4818  -0.008310
+2061 4820  -1.000000
+2062 4   0.200000
+2062 4809   0.075281
+2062 4813   0.102497
+2062 4815   1.000000
+2062 4817   0.022222
+2062 4819  -1.000000
+2063 4   0.200000
+2063 4810   0.075281
+2063 4814   0.102497
+2063 4816   1.000000
+2063 4818   0.022222
+2063 4820  -1.000000
+2064 4   0.031010
+2064 4821   1.000000
+2064 4823   0.039363
+2064 4827  -0.013107
+2064 4831   0.004754
+2064 4833  -1.000000
+2065 4   0.031010
+2065 4822   1.000000
+2065 4824   0.039363
+2065 4828  -0.013107
+2065 4832   0.004754
+2065 4834  -1.000000
+2066 4   0.128990
+2066 4823   0.078885
+2066 4825   1.000000
+2066 4827   0.058415
+2066 4831  -0.008310
+2066 4833  -1.000000
+2067 4   0.128990
+2067 4824   0.078885
+2067 4826   1.000000
+2067 4828   0.058415
+2067 4832  -0.008310
+2067 4834  -1.000000
+2068 4   0.200000
+2068 4823   0.075281
+2068 4827   0.102497
+2068 4829   1.000000
+2068 4831   0.022222
+2068 4833  -1.000000
+2069 4   0.200000
+2069 4824   0.075281
+2069 4828   0.102497
+2069 4830   1.000000
+2069 4832   0.022222
+2069 4834  -1.000000
+2070 4   0.031010
+2070 4835   1.000000
+2070 4837   0.039363
+2070 4841  -0.013107
+2070 4845   0.004754
+2070 4847  -1.000000
+2071 4   0.031010
+2071 4836   1.000000
+2071 4838   0.039363
+2071 4842  -0.013107
+2071 4846   0.004754
+2071 4848  -1.000000
+2072 4   0.128990
+2072 4837   0.078885
+2072 4839   1.000000
+2072 4841   0.058415
+2072 4845  -0.008310
+2072 4847  -1.000000
+2073 4   0.128990
+2073 4838   0.078885
+2073 4840   1.000000
+2073 4842   0.058415
+2073 4846  -0.008310
+2073 4848  -1.000000
+2074 4   0.200000
+2074 4837   0.075281
+2074 4841   0.102497
+2074 4843   1.000000
+2074 4845   0.022222
+2074 4847  -1.000000
+2075 4   0.200000
+2075 4838   0.075281
+2075 4842   0.102497
+2075 4844   1.000000
+2075 4846   0.022222
+2075 4848  -1.000000
+2076 4   0.031010
+2076 4849   1.000000
+2076 4851   0.039363
+2076 4855  -0.013107
+2076 4859   0.004754
+2076 4861  -1.000000
+2077 4   0.031010
+2077 4850   1.000000
+2077 4852   0.039363
+2077 4856  -0.013107
+2077 4860   0.004754
+2077 4862  -1.000000
+2078 4   0.128990
+2078 4851   0.078885
+2078 4853   1.000000
+2078 4855   0.058415
+2078 4859  -0.008310
+2078 4861  -1.000000
+2079 4   0.128990
+2079 4852   0.078885
+2079 4854   1.000000
+2079 4856   0.058415
+2079 4860  -0.008310
+2079 4862  -1.000000
+2080 4   0.200000
+2080 4851   0.075281
+2080 4855   0.102497
+2080 4857   1.000000
+2080 4859   0.022222
+2080 4861  -1.000000
+2081 4   0.200000
+2081 4852   0.075281
+2081 4856   0.102497
+2081 4858   1.000000
+2081 4860   0.022222
+2081 4862  -1.000000
+2082 4   0.031010
+2082 4863   1.000000
+2082 4865   0.039363
+2082 4869  -0.013107
+2082 4873   0.004754
+2082 4875  -1.000000
+2083 4   0.031010
+2083 4864   1.000000
+2083 4866   0.039363
+2083 4870  -0.013107
+2083 4874   0.004754
+2083 4876  -1.000000
+2084 4   0.128990
+2084 4865   0.078885
+2084 4867   1.000000
+2084 4869   0.058415
+2084 4873  -0.008310
+2084 4875  -1.000000
+2085 4   0.128990
+2085 4866   0.078885
+2085 4868   1.000000
+2085 4870   0.058415
+2085 4874  -0.008310
+2085 4876  -1.000000
+2086 4   0.200000
+2086 4865   0.075281
+2086 4869   0.102497
+2086 4871   1.000000
+2086 4873   0.022222
+2086 4875  -1.000000
+2087 4   0.200000
+2087 4866   0.075281
+2087 4870   0.102497
+2087 4872   1.000000
+2087 4874   0.022222
+2087 4876  -1.000000
+2088 4   0.031010
+2088 4877   1.000000
+2088 4879   0.039363
+2088 4883  -0.013107
+2088 4887   0.004754
+2088 4889  -1.000000
+2089 4   0.031010
+2089 4878   1.000000
+2089 4880   0.039363
+2089 4884  -0.013107
+2089 4888   0.004754
+2089 4890  -1.000000
+2090 4   0.128990
+2090 4879   0.078885
+2090 4881   1.000000
+2090 4883   0.058415
+2090 4887  -0.008310
+2090 4889  -1.000000
+2091 4   0.128990
+2091 4880   0.078885
+2091 4882   1.000000
+2091 4884   0.058415
+2091 4888  -0.008310
+2091 4890  -1.000000
+2092 4   0.200000
+2092 4879   0.075281
+2092 4883   0.102497
+2092 4885   1.000000
+2092 4887   0.022222
+2092 4889  -1.000000
+2093 4   0.200000
+2093 4880   0.075281
+2093 4884   0.102497
+2093 4886   1.000000
+2093 4888   0.022222
+2093 4890  -1.000000
+2094 4   0.031010
+2094 4891   1.000000
+2094 4893   0.039363
+2094 4897  -0.013107
+2094 4901   0.004754
+2094 4903  -1.000000
+2095 4   0.031010
+2095 4892   1.000000
+2095 4894   0.039363
+2095 4898  -0.013107
+2095 4902   0.004754
+2095 4904  -1.000000
+2096 4   0.128990
+2096 4893   0.078885
+2096 4895   1.000000
+2096 4897   0.058415
+2096 4901  -0.008310
+2096 4903  -1.000000
+2097 4   0.128990
+2097 4894   0.078885
+2097 4896   1.000000
+2097 4898   0.058415
+2097 4902  -0.008310
+2097 4904  -1.000000
+2098 4   0.200000
+2098 4893   0.075281
+2098 4897   0.102497
+2098 4899   1.000000
+2098 4901   0.022222
+2098 4903  -1.000000
+2099 4   0.200000
+2099 4894   0.075281
+2099 4898   0.102497
+2099 4900   1.000000
+2099 4902   0.022222
+2099 4904  -1.000000
+2100 4   0.031010
+2100 4905   1.000000
+2100 4907   0.039363
+2100 4911  -0.013107
+2100 4915   0.004754
+2100 4917  -1.000000
+2101 4   0.031010
+2101 4906   1.000000
+2101 4908   0.039363
+2101 4912  -0.013107
+2101 4916   0.004754
+2101 4918  -1.000000
+2102 4   0.128990
+2102 4907   0.078885
+2102 4909   1.000000
+2102 4911   0.058415
+2102 4915  -0.008310
+2102 4917  -1.000000
+2103 4   0.128990
+2103 4908   0.078885
+2103 4910   1.000000
+2103 4912   0.058415
+2103 4916  -0.008310
+2103 4918  -1.000000
+2104 4   0.200000
+2104 4907   0.075281
+2104 4911   0.102497
+2104 4913   1.000000
+2104 4915   0.022222
+2104 4917  -1.000000
+2105 4   0.200000
+2105 4908   0.075281
+2105 4912   0.102497
+2105 4914   1.000000
+2105 4916   0.022222
+2105 4918  -1.000000
+2106 4   0.031010
+2106 4919   1.000000
+2106 4921   0.039363
+2106 4925  -0.013107
+2106 4929   0.004754
+2106 4931  -1.000000
+2107 4   0.031010
+2107 4920   1.000000
+2107 4922   0.039363
+2107 4926  -0.013107
+2107 4930   0.004754
+2107 4932  -1.000000
+2108 4   0.128990
+2108 4921   0.078885
+2108 4923   1.000000
+2108 4925   0.058415
+2108 4929  -0.008310
+2108 4931  -1.000000
+2109 4   0.128990
+2109 4922   0.078885
+2109 4924   1.000000
+2109 4926   0.058415
+2109 4930  -0.008310
+2109 4932  -1.000000
+2110 4   0.200000
+2110 4921   0.075281
+2110 4925   0.102497
+2110 4927   1.000000
+2110 4929   0.022222
+2110 4931  -1.000000
+2111 4   0.200000
+2111 4922   0.075281
+2111 4926   0.102497
+2111 4928   1.000000
+2111 4930   0.022222
+2111 4932  -1.000000
+2112 4   0.031010
+2112 4933   1.000000
+2112 4935   0.039363
+2112 4939  -0.013107
+2112 4943   0.004754
+2112 4945  -1.000000
+2113 4   0.031010
+2113 4934   1.000000
+2113 4936   0.039363
+2113 4940  -0.013107
+2113 4944   0.004754
+2113 4946  -1.000000
+2114 4   0.128990
+2114 4935   0.078885
+2114 4937   1.000000
+2114 4939   0.058415
+2114 4943  -0.008310
+2114 4945  -1.000000
+2115 4   0.128990
+2115 4936   0.078885
+2115 4938   1.000000
+2115 4940   0.058415
+2115 4944  -0.008310
+2115 4946  -1.000000
+2116 4   0.200000
+2116 4935   0.075281
+2116 4939   0.102497
+2116 4941   1.000000
+2116 4943   0.022222
+2116 4945  -1.000000
+2117 4   0.200000
+2117 4936   0.075281
+2117 4940   0.102497
+2117 4942   1.000000
+2117 4944   0.022222
+2117 4946  -1.000000
+2118 4   0.031010
+2118 4947   1.000000
+2118 4949   0.039363
+2118 4953  -0.013107
+2118 4957   0.004754
+2118 4959  -1.000000
+2119 4   0.031010
+2119 4948   1.000000
+2119 4950   0.039363
+2119 4954  -0.013107
+2119 4958   0.004754
+2119 4960  -1.000000
+2120 4   0.128990
+2120 4949   0.078885
+2120 4951   1.000000
+2120 4953   0.058415
+2120 4957  -0.008310
+2120 4959  -1.000000
+2121 4   0.128990
+2121 4950   0.078885
+2121 4952   1.000000
+2121 4954   0.058415
+2121 4958  -0.008310
+2121 4960  -1.000000
+2122 4   0.200000
+2122 4949   0.075281
+2122 4953   0.102497
+2122 4955   1.000000
+2122 4957   0.022222
+2122 4959  -1.000000
+2123 4   0.200000
+2123 4950   0.075281
+2123 4954   0.102497
+2123 4956   1.000000
+2123 4958   0.022222
+2123 4960  -1.000000
+2124 4   0.031010
+2124 4961   1.000000
+2124 4963   0.039363
+2124 4967  -0.013107
+2124 4971   0.004754
+2124 4973  -1.000000
+2125 4   0.031010
+2125 4962   1.000000
+2125 4964   0.039363
+2125 4968  -0.013107
+2125 4972   0.004754
+2125 4974  -1.000000
+2126 4   0.128990
+2126 4963   0.078885
+2126 4965   1.000000
+2126 4967   0.058415
+2126 4971  -0.008310
+2126 4973  -1.000000
+2127 4   0.128990
+2127 4964   0.078885
+2127 4966   1.000000
+2127 4968   0.058415
+2127 4972  -0.008310
+2127 4974  -1.000000
+2128 4   0.200000
+2128 4963   0.075281
+2128 4967   0.102497
+2128 4969   1.000000
+2128 4971   0.022222
+2128 4973  -1.000000
+2129 4   0.200000
+2129 4964   0.075281
+2129 4968   0.102497
+2129 4970   1.000000
+2129 4972   0.022222
+2129 4974  -1.000000
+2130 4   0.031010
+2130 4975   1.000000
+2130 4977   0.039363
+2130 4981  -0.013107
+2130 4985   0.004754
+2130 4987  -1.000000
+2131 4   0.031010
+2131 4976   1.000000
+2131 4978   0.039363
+2131 4982  -0.013107
+2131 4986   0.004754
+2131 4988  -1.000000
+2132 4   0.128990
+2132 4977   0.078885
+2132 4979   1.000000
+2132 4981   0.058415
+2132 4985  -0.008310
+2132 4987  -1.000000
+2133 4   0.128990
+2133 4978   0.078885
+2133 4980   1.000000
+2133 4982   0.058415
+2133 4986  -0.008310
+2133 4988  -1.000000
+2134 4   0.200000
+2134 4977   0.075281
+2134 4981   0.102497
+2134 4983   1.000000
+2134 4985   0.022222
+2134 4987  -1.000000
+2135 4   0.200000
+2135 4978   0.075281
+2135 4982   0.102497
+2135 4984   1.000000
+2135 4986   0.022222
+2135 4988  -1.000000
+2136 4   0.031010
+2136 4989   1.000000
+2136 4991   0.039363
+2136 4995  -0.013107
+2136 4999   0.004754
+2136 5001  -1.000000
+2137 4   0.031010
+2137 4990   1.000000
+2137 4992   0.039363
+2137 4996  -0.013107
+2137 5000   0.004754
+2137 5002  -1.000000
+2138 4   0.128990
+2138 4991   0.078885
+2138 4993   1.000000
+2138 4995   0.058415
+2138 4999  -0.008310
+2138 5001  -1.000000
+2139 4   0.128990
+2139 4992   0.078885
+2139 4994   1.000000
+2139 4996   0.058415
+2139 5000  -0.008310
+2139 5002  -1.000000
+2140 4   0.200000
+2140 4991   0.075281
+2140 4995   0.102497
+2140 4997   1.000000
+2140 4999   0.022222
+2140 5001  -1.000000
+2141 4   0.200000
+2141 4992   0.075281
+2141 4996   0.102497
+2141 4998   1.000000
+2141 5000   0.022222
+2141 5002  -1.000000
+2142 4   0.031010
+2142 5003   1.000000
+2142 5005   0.039363
+2142 5009  -0.013107
+2142 5013   0.004754
+2142 5015  -1.000000
+2143 4   0.031010
+2143 5004   1.000000
+2143 5006   0.039363
+2143 5010  -0.013107
+2143 5014   0.004754
+2143 5016  -1.000000
+2144 4   0.128990
+2144 5005   0.078885
+2144 5007   1.000000
+2144 5009   0.058415
+2144 5013  -0.008310
+2144 5015  -1.000000
+2145 4   0.128990
+2145 5006   0.078885
+2145 5008   1.000000
+2145 5010   0.058415
+2145 5014  -0.008310
+2145 5016  -1.000000
+2146 4   0.200000
+2146 5005   0.075281
+2146 5009   0.102497
+2146 5011   1.000000
+2146 5013   0.022222
+2146 5015  -1.000000
+2147 4   0.200000
+2147 5006   0.075281
+2147 5010   0.102497
+2147 5012   1.000000
+2147 5014   0.022222
+2147 5016  -1.000000
+2148 4   0.031010
+2148 5017   1.000000
+2148 5019   0.039363
+2148 5023  -0.013107
+2148 5027   0.004754
+2148 5029  -1.000000
+2149 4   0.031010
+2149 5018   1.000000
+2149 5020   0.039363
+2149 5024  -0.013107
+2149 5028   0.004754
+2149 5030  -1.000000
+2150 4   0.128990
+2150 5019   0.078885
+2150 5021   1.000000
+2150 5023   0.058415
+2150 5027  -0.008310
+2150 5029  -1.000000
+2151 4   0.128990
+2151 5020   0.078885
+2151 5022   1.000000
+2151 5024   0.058415
+2151 5028  -0.008310
+2151 5030  -1.000000
+2152 4   0.200000
+2152 5019   0.075281
+2152 5023   0.102497
+2152 5025   1.000000
+2152 5027   0.022222
+2152 5029  -1.000000
+2153 4   0.200000
+2153 5020   0.075281
+2153 5024   0.102497
+2153 5026   1.000000
+2153 5028   0.022222
+2153 5030  -1.000000
+2154 4   0.031010
+2154 5031   1.000000
+2154 5033   0.039363
+2154 5037  -0.013107
+2154 5041   0.004754
+2154 5043  -1.000000
+2155 4   0.031010
+2155 5032   1.000000
+2155 5034   0.039363
+2155 5038  -0.013107
+2155 5042   0.004754
+2155 5044  -1.000000
+2156 4   0.128990
+2156 5033   0.078885
+2156 5035   1.000000
+2156 5037   0.058415
+2156 5041  -0.008310
+2156 5043  -1.000000
+2157 4   0.128990
+2157 5034   0.078885
+2157 5036   1.000000
+2157 5038   0.058415
+2157 5042  -0.008310
+2157 5044  -1.000000
+2158 4   0.200000
+2158 5033   0.075281
+2158 5037   0.102497
+2158 5039   1.000000
+2158 5041   0.022222
+2158 5043  -1.000000
+2159 4   0.200000
+2159 5034   0.075281
+2159 5038   0.102497
+2159 5040   1.000000
+2159 5042   0.022222
+2159 5044  -1.000000
+2160 4   0.031010
+2160 5045   1.000000
+2160 5047   0.039363
+2160 5051  -0.013107
+2160 5055   0.004754
+2160 5057  -1.000000
+2161 4   0.031010
+2161 5046   1.000000
+2161 5048   0.039363
+2161 5052  -0.013107
+2161 5056   0.004754
+2161 5058  -1.000000
+2162 4   0.128990
+2162 5047   0.078885
+2162 5049   1.000000
+2162 5051   0.058415
+2162 5055  -0.008310
+2162 5057  -1.000000
+2163 4   0.128990
+2163 5048   0.078885
+2163 5050   1.000000
+2163 5052   0.058415
+2163 5056  -0.008310
+2163 5058  -1.000000
+2164 4   0.200000
+2164 5047   0.075281
+2164 5051   0.102497
+2164 5053   1.000000
+2164 5055   0.022222
+2164 5057  -1.000000
+2165 4   0.200000
+2165 5048   0.075281
+2165 5052   0.102497
+2165 5054   1.000000
+2165 5056   0.022222
+2165 5058  -1.000000
+2166 4   0.031010
+2166 5059   1.000000
+2166 5061   0.039363
+2166 5065  -0.013107
+2166 5069   0.004754
+2166 5071  -1.000000
+2167 4   0.031010
+2167 5060   1.000000
+2167 5062   0.039363
+2167 5066  -0.013107
+2167 5070   0.004754
+2167 5072  -1.000000
+2168 4   0.128990
+2168 5061   0.078885
+2168 5063   1.000000
+2168 5065   0.058415
+2168 5069  -0.008310
+2168 5071  -1.000000
+2169 4   0.128990
+2169 5062   0.078885
+2169 5064   1.000000
+2169 5066   0.058415
+2169 5070  -0.008310
+2169 5072  -1.000000
+2170 4   0.200000
+2170 5061   0.075281
+2170 5065   0.102497
+2170 5067   1.000000
+2170 5069   0.022222
+2170 5071  -1.000000
+2171 4   0.200000
+2171 5062   0.075281
+2171 5066   0.102497
+2171 5068   1.000000
+2171 5070   0.022222
+2171 5072  -1.000000
+2172 4   0.031010
+2172 5073   1.000000
+2172 5075   0.039363
+2172 5079  -0.013107
+2172 5083   0.004754
+2172 5085  -1.000000
+2173 4   0.031010
+2173 5074   1.000000
+2173 5076   0.039363
+2173 5080  -0.013107
+2173 5084   0.004754
+2173 5086  -1.000000
+2174 4   0.128990
+2174 5075   0.078885
+2174 5077   1.000000
+2174 5079   0.058415
+2174 5083  -0.008310
+2174 5085  -1.000000
+2175 4   0.128990
+2175 5076   0.078885
+2175 5078   1.000000
+2175 5080   0.058415
+2175 5084  -0.008310
+2175 5086  -1.000000
+2176 4   0.200000
+2176 5075   0.075281
+2176 5079   0.102497
+2176 5081   1.000000
+2176 5083   0.022222
+2176 5085  -1.000000
+2177 4   0.200000
+2177 5076   0.075281
+2177 5080   0.102497
+2177 5082   1.000000
+2177 5084   0.022222
+2177 5086  -1.000000
+2178 4   0.031010
+2178 5087   1.000000
+2178 5089   0.039363
+2178 5093  -0.013107
+2178 5097   0.004754
+2178 5099  -1.000000
+2179 4   0.031010
+2179 5088   1.000000
+2179 5090   0.039363
+2179 5094  -0.013107
+2179 5098   0.004754
+2179 5100  -1.000000
+2180 4   0.128990
+2180 5089   0.078885
+2180 5091   1.000000
+2180 5093   0.058415
+2180 5097  -0.008310
+2180 5099  -1.000000
+2181 4   0.128990
+2181 5090   0.078885
+2181 5092   1.000000
+2181 5094   0.058415
+2181 5098  -0.008310
+2181 5100  -1.000000
+2182 4   0.200000
+2182 5089   0.075281
+2182 5093   0.102497
+2182 5095   1.000000
+2182 5097   0.022222
+2182 5099  -1.000000
+2183 4   0.200000
+2183 5090   0.075281
+2183 5094   0.102497
+2183 5096   1.000000
+2183 5098   0.022222
+2183 5100  -1.000000
+2184 4   0.031010
+2184 5101   1.000000
+2184 5103   0.039363
+2184 5107  -0.013107
+2184 5111   0.004754
+2184 5113  -1.000000
+2185 4   0.031010
+2185 5102   1.000000
+2185 5104   0.039363
+2185 5108  -0.013107
+2185 5112   0.004754
+2185 5114  -1.000000
+2186 4   0.128990
+2186 5103   0.078885
+2186 5105   1.000000
+2186 5107   0.058415
+2186 5111  -0.008310
+2186 5113  -1.000000
+2187 4   0.128990
+2187 5104   0.078885
+2187 5106   1.000000
+2187 5108   0.058415
+2187 5112  -0.008310
+2187 5114  -1.000000
+2188 4   0.200000
+2188 5103   0.075281
+2188 5107   0.102497
+2188 5109   1.000000
+2188 5111   0.022222
+2188 5113  -1.000000
+2189 4   0.200000
+2189 5104   0.075281
+2189 5108   0.102497
+2189 5110   1.000000
+2189 5112   0.022222
+2189 5114  -1.000000
+2190 4   0.031010
+2190 5115   1.000000
+2190 5117   0.039363
+2190 5121  -0.013107
+2190 5125   0.004754
+2190 5127  -1.000000
+2191 4   0.031010
+2191 5116   1.000000
+2191 5118   0.039363
+2191 5122  -0.013107
+2191 5126   0.004754
+2191 5128  -1.000000
+2192 4   0.128990
+2192 5117   0.078885
+2192 5119   1.000000
+2192 5121   0.058415
+2192 5125  -0.008310
+2192 5127  -1.000000
+2193 4   0.128990
+2193 5118   0.078885
+2193 5120   1.000000
+2193 5122   0.058415
+2193 5126  -0.008310
+2193 5128  -1.000000
+2194 4   0.200000
+2194 5117   0.075281
+2194 5121   0.102497
+2194 5123   1.000000
+2194 5125   0.022222
+2194 5127  -1.000000
+2195 4   0.200000
+2195 5118   0.075281
+2195 5122   0.102497
+2195 5124   1.000000
+2195 5126   0.022222
+2195 5128  -1.000000
+2196 4   0.031010
+2196 5129   1.000000
+2196 5131   0.039363
+2196 5135  -0.013107
+2196 5139   0.004754
+2196 5141  -1.000000
+2197 4   0.031010
+2197 5130   1.000000
+2197 5132   0.039363
+2197 5136  -0.013107
+2197 5140   0.004754
+2197 5142  -1.000000
+2198 4   0.128990
+2198 5131   0.078885
+2198 5133   1.000000
+2198 5135   0.058415
+2198 5139  -0.008310
+2198 5141  -1.000000
+2199 4   0.128990
+2199 5132   0.078885
+2199 5134   1.000000
+2199 5136   0.058415
+2199 5140  -0.008310
+2199 5142  -1.000000
+2200 4   0.200000
+2200 5131   0.075281
+2200 5135   0.102497
+2200 5137   1.000000
+2200 5139   0.022222
+2200 5141  -1.000000
+2201 4   0.200000
+2201 5132   0.075281
+2201 5136   0.102497
+2201 5138   1.000000
+2201 5140   0.022222
+2201 5142  -1.000000
+2202 4   0.031010
+2202 5143   1.000000
+2202 5145   0.039363
+2202 5149  -0.013107
+2202 5153   0.004754
+2202 5155  -1.000000
+2203 4   0.031010
+2203 5144   1.000000
+2203 5146   0.039363
+2203 5150  -0.013107
+2203 5154   0.004754
+2203 5156  -1.000000
+2204 4   0.128990
+2204 5145   0.078885
+2204 5147   1.000000
+2204 5149   0.058415
+2204 5153  -0.008310
+2204 5155  -1.000000
+2205 4   0.128990
+2205 5146   0.078885
+2205 5148   1.000000
+2205 5150   0.058415
+2205 5154  -0.008310
+2205 5156  -1.000000
+2206 4   0.200000
+2206 5145   0.075281
+2206 5149   0.102497
+2206 5151   1.000000
+2206 5153   0.022222
+2206 5155  -1.000000
+2207 4   0.200000
+2207 5146   0.075281
+2207 5150   0.102497
+2207 5152   1.000000
+2207 5154   0.022222
+2207 5156  -1.000000
+2208 4   0.031010
+2208 5157   1.000000
+2208 5159   0.039363
+2208 5163  -0.013107
+2208 5167   0.004754
+2208 5169  -1.000000
+2209 4   0.031010
+2209 5158   1.000000
+2209 5160   0.039363
+2209 5164  -0.013107
+2209 5168   0.004754
+2209 5170  -1.000000
+2210 4   0.128990
+2210 5159   0.078885
+2210 5161   1.000000
+2210 5163   0.058415
+2210 5167  -0.008310
+2210 5169  -1.000000
+2211 4   0.128990
+2211 5160   0.078885
+2211 5162   1.000000
+2211 5164   0.058415
+2211 5168  -0.008310
+2211 5170  -1.000000
+2212 4   0.200000
+2212 5159   0.075281
+2212 5163   0.102497
+2212 5165   1.000000
+2212 5167   0.022222
+2212 5169  -1.000000
+2213 4   0.200000
+2213 5160   0.075281
+2213 5164   0.102497
+2213 5166   1.000000
+2213 5168   0.022222
+2213 5170  -1.000000
+2214 4   0.031010
+2214 5171   1.000000
+2214 5173   0.039363
+2214 5177  -0.013107
+2214 5181   0.004754
+2214 5183  -1.000000
+2215 4   0.031010
+2215 5172   1.000000
+2215 5174   0.039363
+2215 5178  -0.013107
+2215 5182   0.004754
+2215 5184  -1.000000
+2216 4   0.128990
+2216 5173   0.078885
+2216 5175   1.000000
+2216 5177   0.058415
+2216 5181  -0.008310
+2216 5183  -1.000000
+2217 4   0.128990
+2217 5174   0.078885
+2217 5176   1.000000
+2217 5178   0.058415
+2217 5182  -0.008310
+2217 5184  -1.000000
+2218 4   0.200000
+2218 5173   0.075281
+2218 5177   0.102497
+2218 5179   1.000000
+2218 5181   0.022222
+2218 5183  -1.000000
+2219 4   0.200000
+2219 5174   0.075281
+2219 5178   0.102497
+2219 5180   1.000000
+2219 5182   0.022222
+2219 5184  -1.000000
+2220 4   0.031010
+2220 5185   1.000000
+2220 5187   0.039363
+2220 5191  -0.013107
+2220 5195   0.004754
+2220 5197  -1.000000
+2221 4   0.031010
+2221 5186   1.000000
+2221 5188   0.039363
+2221 5192  -0.013107
+2221 5196   0.004754
+2221 5198  -1.000000
+2222 4   0.128990
+2222 5187   0.078885
+2222 5189   1.000000
+2222 5191   0.058415
+2222 5195  -0.008310
+2222 5197  -1.000000
+2223 4   0.128990
+2223 5188   0.078885
+2223 5190   1.000000
+2223 5192   0.058415
+2223 5196  -0.008310
+2223 5198  -1.000000
+2224 4   0.200000
+2224 5187   0.075281
+2224 5191   0.102497
+2224 5193   1.000000
+2224 5195   0.022222
+2224 5197  -1.000000
+2225 4   0.200000
+2225 5188   0.075281
+2225 5192   0.102497
+2225 5194   1.000000
+2225 5196   0.022222
+2225 5198  -1.000000
+2226 4   0.031010
+2226 5199   1.000000
+2226 5201   0.039363
+2226 5205  -0.013107
+2226 5209   0.004754
+2226 5211  -1.000000
+2227 4   0.031010
+2227 5200   1.000000
+2227 5202   0.039363
+2227 5206  -0.013107
+2227 5210   0.004754
+2227 5212  -1.000000
+2228 4   0.128990
+2228 5201   0.078885
+2228 5203   1.000000
+2228 5205   0.058415
+2228 5209  -0.008310
+2228 5211  -1.000000
+2229 4   0.128990
+2229 5202   0.078885
+2229 5204   1.000000
+2229 5206   0.058415
+2229 5210  -0.008310
+2229 5212  -1.000000
+2230 4   0.200000
+2230 5201   0.075281
+2230 5205   0.102497
+2230 5207   1.000000
+2230 5209   0.022222
+2230 5211  -1.000000
+2231 4   0.200000
+2231 5202   0.075281
+2231 5206   0.102497
+2231 5208   1.000000
+2231 5210   0.022222
+2231 5212  -1.000000
+2232 4   0.031010
+2232 5213   1.000000
+2232 5215   0.039363
+2232 5219  -0.013107
+2232 5223   0.004754
+2232 5225  -1.000000
+2233 4   0.031010
+2233 5214   1.000000
+2233 5216   0.039363
+2233 5220  -0.013107
+2233 5224   0.004754
+2233 5226  -1.000000
+2234 4   0.128990
+2234 5215   0.078885
+2234 5217   1.000000
+2234 5219   0.058415
+2234 5223  -0.008310
+2234 5225  -1.000000
+2235 4   0.128990
+2235 5216   0.078885
+2235 5218   1.000000
+2235 5220   0.058415
+2235 5224  -0.008310
+2235 5226  -1.000000
+2236 4   0.200000
+2236 5215   0.075281
+2236 5219   0.102497
+2236 5221   1.000000
+2236 5223   0.022222
+2236 5225  -1.000000
+2237 4   0.200000
+2237 5216   0.075281
+2237 5220   0.102497
+2237 5222   1.000000
+2237 5224   0.022222
+2237 5226  -1.000000
+2238 4   0.031010
+2238 5227   1.000000
+2238 5229   0.039363
+2238 5233  -0.013107
+2238 5237   0.004754
+2238 5239  -1.000000
+2239 4   0.031010
+2239 5228   1.000000
+2239 5230   0.039363
+2239 5234  -0.013107
+2239 5238   0.004754
+2239 5240  -1.000000
+2240 4   0.128990
+2240 5229   0.078885
+2240 5231   1.000000
+2240 5233   0.058415
+2240 5237  -0.008310
+2240 5239  -1.000000
+2241 4   0.128990
+2241 5230   0.078885
+2241 5232   1.000000
+2241 5234   0.058415
+2241 5238  -0.008310
+2241 5240  -1.000000
+2242 4   0.200000
+2242 5229   0.075281
+2242 5233   0.102497
+2242 5235   1.000000
+2242 5237   0.022222
+2242 5239  -1.000000
+2243 4   0.200000
+2243 5230   0.075281
+2243 5234   0.102497
+2243 5236   1.000000
+2243 5238   0.022222
+2243 5240  -1.000000
+2244 4   0.031010
+2244 5241   1.000000
+2244 5243   0.039363
+2244 5247  -0.013107
+2244 5251   0.004754
+2244 5253  -1.000000
+2245 4   0.031010
+2245 5242   1.000000
+2245 5244   0.039363
+2245 5248  -0.013107
+2245 5252   0.004754
+2245 5254  -1.000000
+2246 4   0.128990
+2246 5243   0.078885
+2246 5245   1.000000
+2246 5247   0.058415
+2246 5251  -0.008310
+2246 5253  -1.000000
+2247 4   0.128990
+2247 5244   0.078885
+2247 5246   1.000000
+2247 5248   0.058415
+2247 5252  -0.008310
+2247 5254  -1.000000
+2248 4   0.200000
+2248 5243   0.075281
+2248 5247   0.102497
+2248 5249   1.000000
+2248 5251   0.022222
+2248 5253  -1.000000
+2249 4   0.200000
+2249 5244   0.075281
+2249 5248   0.102497
+2249 5250   1.000000
+2249 5252   0.022222
+2249 5254  -1.000000
+2250 4   0.031010
+2250 5255   1.000000
+2250 5257   0.039363
+2250 5261  -0.013107
+2250 5265   0.004754
+2250 5267  -1.000000
+2251 4   0.031010
+2251 5256   1.000000
+2251 5258   0.039363
+2251 5262  -0.013107
+2251 5266   0.004754
+2251 5268  -1.000000
+2252 4   0.128990
+2252 5257   0.078885
+2252 5259   1.000000
+2252 5261   0.058415
+2252 5265  -0.008310
+2252 5267  -1.000000
+2253 4   0.128990
+2253 5258   0.078885
+2253 5260   1.000000
+2253 5262   0.058415
+2253 5266  -0.008310
+2253 5268  -1.000000
+2254 4   0.200000
+2254 5257   0.075281
+2254 5261   0.102497
+2254 5263   1.000000
+2254 5265   0.022222
+2254 5267  -1.000000
+2255 4   0.200000
+2255 5258   0.075281
+2255 5262   0.102497
+2255 5264   1.000000
+2255 5266   0.022222
+2255 5268  -1.000000
+2256 4   0.031010
+2256 5269   1.000000
+2256 5271   0.039363
+2256 5275  -0.013107
+2256 5279   0.004754
+2256 5281  -1.000000
+2257 4   0.031010
+2257 5270   1.000000
+2257 5272   0.039363
+2257 5276  -0.013107
+2257 5280   0.004754
+2257 5282  -1.000000
+2258 4   0.128990
+2258 5271   0.078885
+2258 5273   1.000000
+2258 5275   0.058415
+2258 5279  -0.008310
+2258 5281  -1.000000
+2259 4   0.128990
+2259 5272   0.078885
+2259 5274   1.000000
+2259 5276   0.058415
+2259 5280  -0.008310
+2259 5282  -1.000000
+2260 4   0.200000
+2260 5271   0.075281
+2260 5275   0.102497
+2260 5277   1.000000
+2260 5279   0.022222
+2260 5281  -1.000000
+2261 4   0.200000
+2261 5272   0.075281
+2261 5276   0.102497
+2261 5278   1.000000
+2261 5280   0.022222
+2261 5282  -1.000000
+2262 4   0.031010
+2262 5283   1.000000
+2262 5285   0.039363
+2262 5289  -0.013107
+2262 5293   0.004754
+2262 5295  -1.000000
+2263 4   0.031010
+2263 5284   1.000000
+2263 5286   0.039363
+2263 5290  -0.013107
+2263 5294   0.004754
+2263 5296  -1.000000
+2264 4   0.128990
+2264 5285   0.078885
+2264 5287   1.000000
+2264 5289   0.058415
+2264 5293  -0.008310
+2264 5295  -1.000000
+2265 4   0.128990
+2265 5286   0.078885
+2265 5288   1.000000
+2265 5290   0.058415
+2265 5294  -0.008310
+2265 5296  -1.000000
+2266 4   0.200000
+2266 5285   0.075281
+2266 5289   0.102497
+2266 5291   1.000000
+2266 5293   0.022222
+2266 5295  -1.000000
+2267 4   0.200000
+2267 5286   0.075281
+2267 5290   0.102497
+2267 5292   1.000000
+2267 5294   0.022222
+2267 5296  -1.000000
+2268 4   0.031010
+2268 5297   1.000000
+2268 5299   0.039363
+2268 5303  -0.013107
+2268 5307   0.004754
+2268 5309  -1.000000
+2269 4   0.031010
+2269 5298   1.000000
+2269 5300   0.039363
+2269 5304  -0.013107
+2269 5308   0.004754
+2269 5310  -1.000000
+2270 4   0.128990
+2270 5299   0.078885
+2270 5301   1.000000
+2270 5303   0.058415
+2270 5307  -0.008310
+2270 5309  -1.000000
+2271 4   0.128990
+2271 5300   0.078885
+2271 5302   1.000000
+2271 5304   0.058415
+2271 5308  -0.008310
+2271 5310  -1.000000
+2272 4   0.200000
+2272 5299   0.075281
+2272 5303   0.102497
+2272 5305   1.000000
+2272 5307   0.022222
+2272 5309  -1.000000
+2273 4   0.200000
+2273 5300   0.075281
+2273 5304   0.102497
+2273 5306   1.000000
+2273 5308   0.022222
+2273 5310  -1.000000
+2274 4   0.031010
+2274 5311   1.000000
+2274 5313   0.039363
+2274 5317  -0.013107
+2274 5321   0.004754
+2274 5323  -1.000000
+2275 4   0.031010
+2275 5312   1.000000
+2275 5314   0.039363
+2275 5318  -0.013107
+2275 5322   0.004754
+2275 5324  -1.000000
+2276 4   0.128990
+2276 5313   0.078885
+2276 5315   1.000000
+2276 5317   0.058415
+2276 5321  -0.008310
+2276 5323  -1.000000
+2277 4   0.128990
+2277 5314   0.078885
+2277 5316   1.000000
+2277 5318   0.058415
+2277 5322  -0.008310
+2277 5324  -1.000000
+2278 4   0.200000
+2278 5313   0.075281
+2278 5317   0.102497
+2278 5319   1.000000
+2278 5321   0.022222
+2278 5323  -1.000000
+2279 4   0.200000
+2279 5314   0.075281
+2279 5318   0.102497
+2279 5320   1.000000
+2279 5322   0.022222
+2279 5324  -1.000000
+2280 4   0.031010
+2280 5325   1.000000
+2280 5327   0.039363
+2280 5331  -0.013107
+2280 5335   0.004754
+2280 5337  -1.000000
+2281 4   0.031010
+2281 5326   1.000000
+2281 5328   0.039363
+2281 5332  -0.013107
+2281 5336   0.004754
+2281 5338  -1.000000
+2282 4   0.128990
+2282 5327   0.078885
+2282 5329   1.000000
+2282 5331   0.058415
+2282 5335  -0.008310
+2282 5337  -1.000000
+2283 4   0.128990
+2283 5328   0.078885
+2283 5330   1.000000
+2283 5332   0.058415
+2283 5336  -0.008310
+2283 5338  -1.000000
+2284 4   0.200000
+2284 5327   0.075281
+2284 5331   0.102497
+2284 5333   1.000000
+2284 5335   0.022222
+2284 5337  -1.000000
+2285 4   0.200000
+2285 5328   0.075281
+2285 5332   0.102497
+2285 5334   1.000000
+2285 5336   0.022222
+2285 5338  -1.000000
+2286 4   0.031010
+2286 5339   1.000000
+2286 5341   0.039363
+2286 5345  -0.013107
+2286 5349   0.004754
+2286 5351  -1.000000
+2287 4   0.031010
+2287 5340   1.000000
+2287 5342   0.039363
+2287 5346  -0.013107
+2287 5350   0.004754
+2287 5352  -1.000000
+2288 4   0.128990
+2288 5341   0.078885
+2288 5343   1.000000
+2288 5345   0.058415
+2288 5349  -0.008310
+2288 5351  -1.000000
+2289 4   0.128990
+2289 5342   0.078885
+2289 5344   1.000000
+2289 5346   0.058415
+2289 5350  -0.008310
+2289 5352  -1.000000
+2290 4   0.200000
+2290 5341   0.075281
+2290 5345   0.102497
+2290 5347   1.000000
+2290 5349   0.022222
+2290 5351  -1.000000
+2291 4   0.200000
+2291 5342   0.075281
+2291 5346   0.102497
+2291 5348   1.000000
+2291 5350   0.022222
+2291 5352  -1.000000
+2292 4   0.031010
+2292 5353   1.000000
+2292 5355   0.039363
+2292 5359  -0.013107
+2292 5363   0.004754
+2292 5365  -1.000000
+2293 4   0.031010
+2293 5354   1.000000
+2293 5356   0.039363
+2293 5360  -0.013107
+2293 5364   0.004754
+2293 5366  -1.000000
+2294 4   0.128990
+2294 5355   0.078885
+2294 5357   1.000000
+2294 5359   0.058415
+2294 5363  -0.008310
+2294 5365  -1.000000
+2295 4   0.128990
+2295 5356   0.078885
+2295 5358   1.000000
+2295 5360   0.058415
+2295 5364  -0.008310
+2295 5366  -1.000000
+2296 4   0.200000
+2296 5355   0.075281
+2296 5359   0.102497
+2296 5361   1.000000
+2296 5363   0.022222
+2296 5365  -1.000000
+2297 4   0.200000
+2297 5356   0.075281
+2297 5360   0.102497
+2297 5362   1.000000
+2297 5364   0.022222
+2297 5366  -1.000000
+2298 4   0.031010
+2298 5367   1.000000
+2298 5369   0.039363
+2298 5373  -0.013107
+2298 5377   0.004754
+2298 5379  -1.000000
+2299 4   0.031010
+2299 5368   1.000000
+2299 5370   0.039363
+2299 5374  -0.013107
+2299 5378   0.004754
+2299 5380  -1.000000
+2300 4   0.128990
+2300 5369   0.078885
+2300 5371   1.000000
+2300 5373   0.058415
+2300 5377  -0.008310
+2300 5379  -1.000000
+2301 4   0.128990
+2301 5370   0.078885
+2301 5372   1.000000
+2301 5374   0.058415
+2301 5378  -0.008310
+2301 5380  -1.000000
+2302 4   0.200000
+2302 5369   0.075281
+2302 5373   0.102497
+2302 5375   1.000000
+2302 5377   0.022222
+2302 5379  -1.000000
+2303 4   0.200000
+2303 5370   0.075281
+2303 5374   0.102497
+2303 5376   1.000000
+2303 5378   0.022222
+2303 5380  -1.000000
+2304 4   0.031010
+2304 5381   1.000000
+2304 5383   0.039363
+2304 5387  -0.013107
+2304 5391   0.004754
+2304 5393  -1.000000
+2305 4   0.031010
+2305 5382   1.000000
+2305 5384   0.039363
+2305 5388  -0.013107
+2305 5392   0.004754
+2305 5394  -1.000000
+2306 4   0.128990
+2306 5383   0.078885
+2306 5385   1.000000
+2306 5387   0.058415
+2306 5391  -0.008310
+2306 5393  -1.000000
+2307 4   0.128990
+2307 5384   0.078885
+2307 5386   1.000000
+2307 5388   0.058415
+2307 5392  -0.008310
+2307 5394  -1.000000
+2308 4   0.200000
+2308 5383   0.075281
+2308 5387   0.102497
+2308 5389   1.000000
+2308 5391   0.022222
+2308 5393  -1.000000
+2309 4   0.200000
+2309 5384   0.075281
+2309 5388   0.102497
+2309 5390   1.000000
+2309 5392   0.022222
+2309 5394  -1.000000
+2310 4   0.031010
+2310 5395   1.000000
+2310 5397   0.039363
+2310 5401  -0.013107
+2310 5405   0.004754
+2310 5407  -1.000000
+2311 4   0.031010
+2311 5396   1.000000
+2311 5398   0.039363
+2311 5402  -0.013107
+2311 5406   0.004754
+2311 5408  -1.000000
+2312 4   0.128990
+2312 5397   0.078885
+2312 5399   1.000000
+2312 5401   0.058415
+2312 5405  -0.008310
+2312 5407  -1.000000
+2313 4   0.128990
+2313 5398   0.078885
+2313 5400   1.000000
+2313 5402   0.058415
+2313 5406  -0.008310
+2313 5408  -1.000000
+2314 4   0.200000
+2314 5397   0.075281
+2314 5401   0.102497
+2314 5403   1.000000
+2314 5405   0.022222
+2314 5407  -1.000000
+2315 4   0.200000
+2315 5398   0.075281
+2315 5402   0.102497
+2315 5404   1.000000
+2315 5406   0.022222
+2315 5408  -1.000000
+2316 4   0.031010
+2316 5409   1.000000
+2316 5411   0.039363
+2316 5415  -0.013107
+2316 5419   0.004754
+2316 5421  -1.000000
+2317 4   0.031010
+2317 5410   1.000000
+2317 5412   0.039363
+2317 5416  -0.013107
+2317 5420   0.004754
+2317 5422  -1.000000
+2318 4   0.128990
+2318 5411   0.078885
+2318 5413   1.000000
+2318 5415   0.058415
+2318 5419  -0.008310
+2318 5421  -1.000000
+2319 4   0.128990
+2319 5412   0.078885
+2319 5414   1.000000
+2319 5416   0.058415
+2319 5420  -0.008310
+2319 5422  -1.000000
+2320 4   0.200000
+2320 5411   0.075281
+2320 5415   0.102497
+2320 5417   1.000000
+2320 5419   0.022222
+2320 5421  -1.000000
+2321 4   0.200000
+2321 5412   0.075281
+2321 5416   0.102497
+2321 5418   1.000000
+2321 5420   0.022222
+2321 5422  -1.000000
+2322 4   0.031010
+2322 5423   1.000000
+2322 5425   0.039363
+2322 5429  -0.013107
+2322 5433   0.004754
+2322 5435  -1.000000
+2323 4   0.031010
+2323 5424   1.000000
+2323 5426   0.039363
+2323 5430  -0.013107
+2323 5434   0.004754
+2323 5436  -1.000000
+2324 4   0.128990
+2324 5425   0.078885
+2324 5427   1.000000
+2324 5429   0.058415
+2324 5433  -0.008310
+2324 5435  -1.000000
+2325 4   0.128990
+2325 5426   0.078885
+2325 5428   1.000000
+2325 5430   0.058415
+2325 5434  -0.008310
+2325 5436  -1.000000
+2326 4   0.200000
+2326 5425   0.075281
+2326 5429   0.102497
+2326 5431   1.000000
+2326 5433   0.022222
+2326 5435  -1.000000
+2327 4   0.200000
+2327 5426   0.075281
+2327 5430   0.102497
+2327 5432   1.000000
+2327 5434   0.022222
+2327 5436  -1.000000
+2328 4   0.031010
+2328 5437   1.000000
+2328 5439   0.039363
+2328 5443  -0.013107
+2328 5447   0.004754
+2328 5449  -1.000000
+2329 4   0.031010
+2329 5438   1.000000
+2329 5440   0.039363
+2329 5444  -0.013107
+2329 5448   0.004754
+2329 5450  -1.000000
+2330 4   0.128990
+2330 5439   0.078885
+2330 5441   1.000000
+2330 5443   0.058415
+2330 5447  -0.008310
+2330 5449  -1.000000
+2331 4   0.128990
+2331 5440   0.078885
+2331 5442   1.000000
+2331 5444   0.058415
+2331 5448  -0.008310
+2331 5450  -1.000000
+2332 4   0.200000
+2332 5439   0.075281
+2332 5443   0.102497
+2332 5445   1.000000
+2332 5447   0.022222
+2332 5449  -1.000000
+2333 4   0.200000
+2333 5440   0.075281
+2333 5444   0.102497
+2333 5446   1.000000
+2333 5448   0.022222
+2333 5450  -1.000000
+2334 4   0.031010
+2334 5451   1.000000
+2334 5453   0.039363
+2334 5457  -0.013107
+2334 5461   0.004754
+2334 5463  -1.000000
+2335 4   0.031010
+2335 5452   1.000000
+2335 5454   0.039363
+2335 5458  -0.013107
+2335 5462   0.004754
+2335 5464  -1.000000
+2336 4   0.128990
+2336 5453   0.078885
+2336 5455   1.000000
+2336 5457   0.058415
+2336 5461  -0.008310
+2336 5463  -1.000000
+2337 4   0.128990
+2337 5454   0.078885
+2337 5456   1.000000
+2337 5458   0.058415
+2337 5462  -0.008310
+2337 5464  -1.000000
+2338 4   0.200000
+2338 5453   0.075281
+2338 5457   0.102497
+2338 5459   1.000000
+2338 5461   0.022222
+2338 5463  -1.000000
+2339 4   0.200000
+2339 5454   0.075281
+2339 5458   0.102497
+2339 5460   1.000000
+2339 5462   0.022222
+2339 5464  -1.000000
+2340 4   0.031010
+2340 5465   1.000000
+2340 5467   0.039363
+2340 5471  -0.013107
+2340 5475   0.004754
+2340 5477  -1.000000
+2341 4   0.031010
+2341 5466   1.000000
+2341 5468   0.039363
+2341 5472  -0.013107
+2341 5476   0.004754
+2341 5478  -1.000000
+2342 4   0.128990
+2342 5467   0.078885
+2342 5469   1.000000
+2342 5471   0.058415
+2342 5475  -0.008310
+2342 5477  -1.000000
+2343 4   0.128990
+2343 5468   0.078885
+2343 5470   1.000000
+2343 5472   0.058415
+2343 5476  -0.008310
+2343 5478  -1.000000
+2344 4   0.200000
+2344 5467   0.075281
+2344 5471   0.102497
+2344 5473   1.000000
+2344 5475   0.022222
+2344 5477  -1.000000
+2345 4   0.200000
+2345 5468   0.075281
+2345 5472   0.102497
+2345 5474   1.000000
+2345 5476   0.022222
+2345 5478  -1.000000
+2346 4   0.031010
+2346 5479   1.000000
+2346 5481   0.039363
+2346 5485  -0.013107
+2346 5489   0.004754
+2346 5491  -1.000000
+2347 4   0.031010
+2347 5480   1.000000
+2347 5482   0.039363
+2347 5486  -0.013107
+2347 5490   0.004754
+2347 5492  -1.000000
+2348 4   0.128990
+2348 5481   0.078885
+2348 5483   1.000000
+2348 5485   0.058415
+2348 5489  -0.008310
+2348 5491  -1.000000
+2349 4   0.128990
+2349 5482   0.078885
+2349 5484   1.000000
+2349 5486   0.058415
+2349 5490  -0.008310
+2349 5492  -1.000000
+2350 4   0.200000
+2350 5481   0.075281
+2350 5485   0.102497
+2350 5487   1.000000
+2350 5489   0.022222
+2350 5491  -1.000000
+2351 4   0.200000
+2351 5482   0.075281
+2351 5486   0.102497
+2351 5488   1.000000
+2351 5490   0.022222
+2351 5492  -1.000000
+2352 4   0.031010
+2352 5493   1.000000
+2352 5495   0.039363
+2352 5499  -0.013107
+2352 5503   0.004754
+2352 5505  -1.000000
+2353 4   0.031010
+2353 5494   1.000000
+2353 5496   0.039363
+2353 5500  -0.013107
+2353 5504   0.004754
+2353 5506  -1.000000
+2354 4   0.128990
+2354 5495   0.078885
+2354 5497   1.000000
+2354 5499   0.058415
+2354 5503  -0.008310
+2354 5505  -1.000000
+2355 4   0.128990
+2355 5496   0.078885
+2355 5498   1.000000
+2355 5500   0.058415
+2355 5504  -0.008310
+2355 5506  -1.000000
+2356 4   0.200000
+2356 5495   0.075281
+2356 5499   0.102497
+2356 5501   1.000000
+2356 5503   0.022222
+2356 5505  -1.000000
+2357 4   0.200000
+2357 5496   0.075281
+2357 5500   0.102497
+2357 5502   1.000000
+2357 5504   0.022222
+2357 5506  -1.000000
+2358 4   0.031010
+2358 5507   1.000000
+2358 5509   0.039363
+2358 5513  -0.013107
+2358 5517   0.004754
+2358 5519  -1.000000
+2359 4   0.031010
+2359 5508   1.000000
+2359 5510   0.039363
+2359 5514  -0.013107
+2359 5518   0.004754
+2359 5520  -1.000000
+2360 4   0.128990
+2360 5509   0.078885
+2360 5511   1.000000
+2360 5513   0.058415
+2360 5517  -0.008310
+2360 5519  -1.000000
+2361 4   0.128990
+2361 5510   0.078885
+2361 5512   1.000000
+2361 5514   0.058415
+2361 5518  -0.008310
+2361 5520  -1.000000
+2362 4   0.200000
+2362 5509   0.075281
+2362 5513   0.102497
+2362 5515   1.000000
+2362 5517   0.022222
+2362 5519  -1.000000
+2363 4   0.200000
+2363 5510   0.075281
+2363 5514   0.102497
+2363 5516   1.000000
+2363 5518   0.022222
+2363 5520  -1.000000
+2364 4   0.031010
+2364 5521   1.000000
+2364 5523   0.039363
+2364 5527  -0.013107
+2364 5531   0.004754
+2364 5533  -1.000000
+2365 4   0.031010
+2365 5522   1.000000
+2365 5524   0.039363
+2365 5528  -0.013107
+2365 5532   0.004754
+2365 5534  -1.000000
+2366 4   0.128990
+2366 5523   0.078885
+2366 5525   1.000000
+2366 5527   0.058415
+2366 5531  -0.008310
+2366 5533  -1.000000
+2367 4   0.128990
+2367 5524   0.078885
+2367 5526   1.000000
+2367 5528   0.058415
+2367 5532  -0.008310
+2367 5534  -1.000000
+2368 4   0.200000
+2368 5523   0.075281
+2368 5527   0.102497
+2368 5529   1.000000
+2368 5531   0.022222
+2368 5533  -1.000000
+2369 4   0.200000
+2369 5524   0.075281
+2369 5528   0.102497
+2369 5530   1.000000
+2369 5532   0.022222
+2369 5534  -1.000000
+2370 4   0.031010
+2370 5535   1.000000
+2370 5537   0.039363
+2370 5541  -0.013107
+2370 5545   0.004754
+2370 5547  -1.000000
+2371 4   0.031010
+2371 5536   1.000000
+2371 5538   0.039363
+2371 5542  -0.013107
+2371 5546   0.004754
+2371 5548  -1.000000
+2372 4   0.128990
+2372 5537   0.078885
+2372 5539   1.000000
+2372 5541   0.058415
+2372 5545  -0.008310
+2372 5547  -1.000000
+2373 4   0.128990
+2373 5538   0.078885
+2373 5540   1.000000
+2373 5542   0.058415
+2373 5546  -0.008310
+2373 5548  -1.000000
+2374 4   0.200000
+2374 5537   0.075281
+2374 5541   0.102497
+2374 5543   1.000000
+2374 5545   0.022222
+2374 5547  -1.000000
+2375 4   0.200000
+2375 5538   0.075281
+2375 5542   0.102497
+2375 5544   1.000000
+2375 5546   0.022222
+2375 5548  -1.000000
+2376 4   0.031010
+2376 5549   1.000000
+2376 5551   0.039363
+2376 5555  -0.013107
+2376 5559   0.004754
+2376 5561  -1.000000
+2377 4   0.031010
+2377 5550   1.000000
+2377 5552   0.039363
+2377 5556  -0.013107
+2377 5560   0.004754
+2377 5562  -1.000000
+2378 4   0.128990
+2378 5551   0.078885
+2378 5553   1.000000
+2378 5555   0.058415
+2378 5559  -0.008310
+2378 5561  -1.000000
+2379 4   0.128990
+2379 5552   0.078885
+2379 5554   1.000000
+2379 5556   0.058415
+2379 5560  -0.008310
+2379 5562  -1.000000
+2380 4   0.200000
+2380 5551   0.075281
+2380 5555   0.102497
+2380 5557   1.000000
+2380 5559   0.022222
+2380 5561  -1.000000
+2381 4   0.200000
+2381 5552   0.075281
+2381 5556   0.102497
+2381 5558   1.000000
+2381 5560   0.022222
+2381 5562  -1.000000
+2382 4   0.031010
+2382 5563   1.000000
+2382 5565   0.039363
+2382 5569  -0.013107
+2382 5573   0.004754
+2382 5575  -1.000000
+2383 4   0.031010
+2383 5564   1.000000
+2383 5566   0.039363
+2383 5570  -0.013107
+2383 5574   0.004754
+2383 5576  -1.000000
+2384 4   0.128990
+2384 5565   0.078885
+2384 5567   1.000000
+2384 5569   0.058415
+2384 5573  -0.008310
+2384 5575  -1.000000
+2385 4   0.128990
+2385 5566   0.078885
+2385 5568   1.000000
+2385 5570   0.058415
+2385 5574  -0.008310
+2385 5576  -1.000000
+2386 4   0.200000
+2386 5565   0.075281
+2386 5569   0.102497
+2386 5571   1.000000
+2386 5573   0.022222
+2386 5575  -1.000000
+2387 4   0.200000
+2387 5566   0.075281
+2387 5570   0.102497
+2387 5572   1.000000
+2387 5574   0.022222
+2387 5576  -1.000000
+2388 4   0.031010
+2388 5577   1.000000
+2388 5579   0.039363
+2388 5583  -0.013107
+2388 5587   0.004754
+2388 5589  -1.000000
+2389 4   0.031010
+2389 5578   1.000000
+2389 5580   0.039363
+2389 5584  -0.013107
+2389 5588   0.004754
+2389 5590  -1.000000
+2390 4   0.128990
+2390 5579   0.078885
+2390 5581   1.000000
+2390 5583   0.058415
+2390 5587  -0.008310
+2390 5589  -1.000000
+2391 4   0.128990
+2391 5580   0.078885
+2391 5582   1.000000
+2391 5584   0.058415
+2391 5588  -0.008310
+2391 5590  -1.000000
+2392 4   0.200000
+2392 5579   0.075281
+2392 5583   0.102497
+2392 5585   1.000000
+2392 5587   0.022222
+2392 5589  -1.000000
+2393 4   0.200000
+2393 5580   0.075281
+2393 5584   0.102497
+2393 5586   1.000000
+2393 5588   0.022222
+2393 5590  -1.000000
+2394 4   0.031010
+2394 5591   1.000000
+2394 5593   0.039363
+2394 5597  -0.013107
+2394 5601   0.004754
+2394 5603  -1.000000
+2395 4   0.031010
+2395 5592   1.000000
+2395 5594   0.039363
+2395 5598  -0.013107
+2395 5602   0.004754
+2395 5604  -1.000000
+2396 4   0.128990
+2396 5593   0.078885
+2396 5595   1.000000
+2396 5597   0.058415
+2396 5601  -0.008310
+2396 5603  -1.000000
+2397 4   0.128990
+2397 5594   0.078885
+2397 5596   1.000000
+2397 5598   0.058415
+2397 5602  -0.008310
+2397 5604  -1.000000
+2398 4   0.200000
+2398 5593   0.075281
+2398 5597   0.102497
+2398 5599   1.000000
+2398 5601   0.022222
+2398 5603  -1.000000
+2399 4   0.200000
+2399 5594   0.075281
+2399 5598   0.102497
+2399 5600   1.000000
+2399 5602   0.022222
+2399 5604  -1.000000
+2400 4   0.031010
+2400 5605   1.000000
+2400 5607   0.039363
+2400 5611  -0.013107
+2400 5615   0.004754
+2400 5617  -1.000000
+2401 4   0.031010
+2401 5606   1.000000
+2401 5608   0.039363
+2401 5612  -0.013107
+2401 5616   0.004754
+2401 5618  -1.000000
+2402 4   0.128990
+2402 5607   0.078885
+2402 5609   1.000000
+2402 5611   0.058415
+2402 5615  -0.008310
+2402 5617  -1.000000
+2403 4   0.128990
+2403 5608   0.078885
+2403 5610   1.000000
+2403 5612   0.058415
+2403 5616  -0.008310
+2403 5618  -1.000000
+2404 4   0.200000
+2404 5607   0.075281
+2404 5611   0.102497
+2404 5613   1.000000
+2404 5615   0.022222
+2404 5617  -1.000000
+2405 4   0.200000
+2405 5608   0.075281
+2405 5612   0.102497
+2405 5614   1.000000
+2405 5616   0.022222
+2405 5618  -1.000000
+2406 4   0.031010
+2406 5619   1.000000
+2406 5621   0.039363
+2406 5625  -0.013107
+2406 5629   0.004754
+2406 5631  -1.000000
+2407 4   0.031010
+2407 5620   1.000000
+2407 5622   0.039363
+2407 5626  -0.013107
+2407 5630   0.004754
+2407 5632  -1.000000
+2408 4   0.128990
+2408 5621   0.078885
+2408 5623   1.000000
+2408 5625   0.058415
+2408 5629  -0.008310
+2408 5631  -1.000000
+2409 4   0.128990
+2409 5622   0.078885
+2409 5624   1.000000
+2409 5626   0.058415
+2409 5630  -0.008310
+2409 5632  -1.000000
+2410 4   0.200000
+2410 5621   0.075281
+2410 5625   0.102497
+2410 5627   1.000000
+2410 5629   0.022222
+2410 5631  -1.000000
+2411 4   0.200000
+2411 5622   0.075281
+2411 5626   0.102497
+2411 5628   1.000000
+2411 5630   0.022222
+2411 5632  -1.000000
+2412 4   0.031010
+2412 5633   1.000000
+2412 5635   0.039363
+2412 5639  -0.013107
+2412 5643   0.004754
+2412 5645  -1.000000
+2413 4   0.031010
+2413 5634   1.000000
+2413 5636   0.039363
+2413 5640  -0.013107
+2413 5644   0.004754
+2413 5646  -1.000000
+2414 4   0.128990
+2414 5635   0.078885
+2414 5637   1.000000
+2414 5639   0.058415
+2414 5643  -0.008310
+2414 5645  -1.000000
+2415 4   0.128990
+2415 5636   0.078885
+2415 5638   1.000000
+2415 5640   0.058415
+2415 5644  -0.008310
+2415 5646  -1.000000
+2416 4   0.200000
+2416 5635   0.075281
+2416 5639   0.102497
+2416 5641   1.000000
+2416 5643   0.022222
+2416 5645  -1.000000
+2417 4   0.200000
+2417 5636   0.075281
+2417 5640   0.102497
+2417 5642   1.000000
+2417 5644   0.022222
+2417 5646  -1.000000
+2418 4   0.031010
+2418 5647   1.000000
+2418 5649   0.039363
+2418 5653  -0.013107
+2418 5657   0.004754
+2418 5659  -1.000000
+2419 4   0.031010
+2419 5648   1.000000
+2419 5650   0.039363
+2419 5654  -0.013107
+2419 5658   0.004754
+2419 5660  -1.000000
+2420 4   0.128990
+2420 5649   0.078885
+2420 5651   1.000000
+2420 5653   0.058415
+2420 5657  -0.008310
+2420 5659  -1.000000
+2421 4   0.128990
+2421 5650   0.078885
+2421 5652   1.000000
+2421 5654   0.058415
+2421 5658  -0.008310
+2421 5660  -1.000000
+2422 4   0.200000
+2422 5649   0.075281
+2422 5653   0.102497
+2422 5655   1.000000
+2422 5657   0.022222
+2422 5659  -1.000000
+2423 4   0.200000
+2423 5650   0.075281
+2423 5654   0.102497
+2423 5656   1.000000
+2423 5658   0.022222
+2423 5660  -1.000000
+2424 4   0.031010
+2424 5661   1.000000
+2424 5663   0.039363
+2424 5667  -0.013107
+2424 5671   0.004754
+2424 5673  -1.000000
+2425 4   0.031010
+2425 5662   1.000000
+2425 5664   0.039363
+2425 5668  -0.013107
+2425 5672   0.004754
+2425 5674  -1.000000
+2426 4   0.128990
+2426 5663   0.078885
+2426 5665   1.000000
+2426 5667   0.058415
+2426 5671  -0.008310
+2426 5673  -1.000000
+2427 4   0.128990
+2427 5664   0.078885
+2427 5666   1.000000
+2427 5668   0.058415
+2427 5672  -0.008310
+2427 5674  -1.000000
+2428 4   0.200000
+2428 5663   0.075281
+2428 5667   0.102497
+2428 5669   1.000000
+2428 5671   0.022222
+2428 5673  -1.000000
+2429 4   0.200000
+2429 5664   0.075281
+2429 5668   0.102497
+2429 5670   1.000000
+2429 5672   0.022222
+2429 5674  -1.000000
+2430 4   0.031010
+2430 5675   1.000000
+2430 5677   0.039363
+2430 5681  -0.013107
+2430 5685   0.004754
+2430 5687  -1.000000
+2431 4   0.031010
+2431 5676   1.000000
+2431 5678   0.039363
+2431 5682  -0.013107
+2431 5686   0.004754
+2431 5688  -1.000000
+2432 4   0.128990
+2432 5677   0.078885
+2432 5679   1.000000
+2432 5681   0.058415
+2432 5685  -0.008310
+2432 5687  -1.000000
+2433 4   0.128990
+2433 5678   0.078885
+2433 5680   1.000000
+2433 5682   0.058415
+2433 5686  -0.008310
+2433 5688  -1.000000
+2434 4   0.200000
+2434 5677   0.075281
+2434 5681   0.102497
+2434 5683   1.000000
+2434 5685   0.022222
+2434 5687  -1.000000
+2435 4   0.200000
+2435 5678   0.075281
+2435 5682   0.102497
+2435 5684   1.000000
+2435 5686   0.022222
+2435 5688  -1.000000
+2436 4   0.031010
+2436 5689   1.000000
+2436 5691   0.039363
+2436 5695  -0.013107
+2436 5699   0.004754
+2436 5701  -1.000000
+2437 4   0.031010
+2437 5690   1.000000
+2437 5692   0.039363
+2437 5696  -0.013107
+2437 5700   0.004754
+2437 5702  -1.000000
+2438 4   0.128990
+2438 5691   0.078885
+2438 5693   1.000000
+2438 5695   0.058415
+2438 5699  -0.008310
+2438 5701  -1.000000
+2439 4   0.128990
+2439 5692   0.078885
+2439 5694   1.000000
+2439 5696   0.058415
+2439 5700  -0.008310
+2439 5702  -1.000000
+2440 4   0.200000
+2440 5691   0.075281
+2440 5695   0.102497
+2440 5697   1.000000
+2440 5699   0.022222
+2440 5701  -1.000000
+2441 4   0.200000
+2441 5692   0.075281
+2441 5696   0.102497
+2441 5698   1.000000
+2441 5700   0.022222
+2441 5702  -1.000000
+2442 4   0.031010
+2442 5703   1.000000
+2442 5705   0.039363
+2442 5709  -0.013107
+2442 5713   0.004754
+2442 5715  -1.000000
+2443 4   0.031010
+2443 5704   1.000000
+2443 5706   0.039363
+2443 5710  -0.013107
+2443 5714   0.004754
+2443 5716  -1.000000
+2444 4   0.128990
+2444 5705   0.078885
+2444 5707   1.000000
+2444 5709   0.058415
+2444 5713  -0.008310
+2444 5715  -1.000000
+2445 4   0.128990
+2445 5706   0.078885
+2445 5708   1.000000
+2445 5710   0.058415
+2445 5714  -0.008310
+2445 5716  -1.000000
+2446 4   0.200000
+2446 5705   0.075281
+2446 5709   0.102497
+2446 5711   1.000000
+2446 5713   0.022222
+2446 5715  -1.000000
+2447 4   0.200000
+2447 5706   0.075281
+2447 5710   0.102497
+2447 5712   1.000000
+2447 5714   0.022222
+2447 5716  -1.000000
+2448 4   0.031010
+2448 5717   1.000000
+2448 5719   0.039363
+2448 5723  -0.013107
+2448 5727   0.004754
+2448 5729  -1.000000
+2449 4   0.031010
+2449 5718   1.000000
+2449 5720   0.039363
+2449 5724  -0.013107
+2449 5728   0.004754
+2449 5730  -1.000000
+2450 4   0.128990
+2450 5719   0.078885
+2450 5721   1.000000
+2450 5723   0.058415
+2450 5727  -0.008310
+2450 5729  -1.000000
+2451 4   0.128990
+2451 5720   0.078885
+2451 5722   1.000000
+2451 5724   0.058415
+2451 5728  -0.008310
+2451 5730  -1.000000
+2452 4   0.200000
+2452 5719   0.075281
+2452 5723   0.102497
+2452 5725   1.000000
+2452 5727   0.022222
+2452 5729  -1.000000
+2453 4   0.200000
+2453 5720   0.075281
+2453 5724   0.102497
+2453 5726   1.000000
+2453 5728   0.022222
+2453 5730  -1.000000
+2454 4   0.031010
+2454 5731   1.000000
+2454 5733   0.039363
+2454 5737  -0.013107
+2454 5741   0.004754
+2454 5743  -1.000000
+2455 4   0.031010
+2455 5732   1.000000
+2455 5734   0.039363
+2455 5738  -0.013107
+2455 5742   0.004754
+2455 5744  -1.000000
+2456 4   0.128990
+2456 5733   0.078885
+2456 5735   1.000000
+2456 5737   0.058415
+2456 5741  -0.008310
+2456 5743  -1.000000
+2457 4   0.128990
+2457 5734   0.078885
+2457 5736   1.000000
+2457 5738   0.058415
+2457 5742  -0.008310
+2457 5744  -1.000000
+2458 4   0.200000
+2458 5733   0.075281
+2458 5737   0.102497
+2458 5739   1.000000
+2458 5741   0.022222
+2458 5743  -1.000000
+2459 4   0.200000
+2459 5734   0.075281
+2459 5738   0.102497
+2459 5740   1.000000
+2459 5742   0.022222
+2459 5744  -1.000000
+2460 4   0.031010
+2460 5745   1.000000
+2460 5747   0.039363
+2460 5751  -0.013107
+2460 5755   0.004754
+2460 5757  -1.000000
+2461 4   0.031010
+2461 5746   1.000000
+2461 5748   0.039363
+2461 5752  -0.013107
+2461 5756   0.004754
+2461 5758  -1.000000
+2462 4   0.128990
+2462 5747   0.078885
+2462 5749   1.000000
+2462 5751   0.058415
+2462 5755  -0.008310
+2462 5757  -1.000000
+2463 4   0.128990
+2463 5748   0.078885
+2463 5750   1.000000
+2463 5752   0.058415
+2463 5756  -0.008310
+2463 5758  -1.000000
+2464 4   0.200000
+2464 5747   0.075281
+2464 5751   0.102497
+2464 5753   1.000000
+2464 5755   0.022222
+2464 5757  -1.000000
+2465 4   0.200000
+2465 5748   0.075281
+2465 5752   0.102497
+2465 5754   1.000000
+2465 5756   0.022222
+2465 5758  -1.000000
+2466 4   0.031010
+2466 5759   1.000000
+2466 5761   0.039363
+2466 5765  -0.013107
+2466 5769   0.004754
+2466 5771  -1.000000
+2467 4   0.031010
+2467 5760   1.000000
+2467 5762   0.039363
+2467 5766  -0.013107
+2467 5770   0.004754
+2467 5772  -1.000000
+2468 4   0.128990
+2468 5761   0.078885
+2468 5763   1.000000
+2468 5765   0.058415
+2468 5769  -0.008310
+2468 5771  -1.000000
+2469 4   0.128990
+2469 5762   0.078885
+2469 5764   1.000000
+2469 5766   0.058415
+2469 5770  -0.008310
+2469 5772  -1.000000
+2470 4   0.200000
+2470 5761   0.075281
+2470 5765   0.102497
+2470 5767   1.000000
+2470 5769   0.022222
+2470 5771  -1.000000
+2471 4   0.200000
+2471 5762   0.075281
+2471 5766   0.102497
+2471 5768   1.000000
+2471 5770   0.022222
+2471 5772  -1.000000
+2472 4   0.031010
+2472 5773   1.000000
+2472 5775   0.039363
+2472 5779  -0.013107
+2472 5783   0.004754
+2472 5785  -1.000000
+2473 4   0.031010
+2473 5774   1.000000
+2473 5776   0.039363
+2473 5780  -0.013107
+2473 5784   0.004754
+2473 5786  -1.000000
+2474 4   0.128990
+2474 5775   0.078885
+2474 5777   1.000000
+2474 5779   0.058415
+2474 5783  -0.008310
+2474 5785  -1.000000
+2475 4   0.128990
+2475 5776   0.078885
+2475 5778   1.000000
+2475 5780   0.058415
+2475 5784  -0.008310
+2475 5786  -1.000000
+2476 4   0.200000
+2476 5775   0.075281
+2476 5779   0.102497
+2476 5781   1.000000
+2476 5783   0.022222
+2476 5785  -1.000000
+2477 4   0.200000
+2477 5776   0.075281
+2477 5780   0.102497
+2477 5782   1.000000
+2477 5784   0.022222
+2477 5786  -1.000000
+2478 4   0.031010
+2478 5787   1.000000
+2478 5789   0.039363
+2478 5793  -0.013107
+2478 5797   0.004754
+2478 5799  -1.000000
+2479 4   0.031010
+2479 5788   1.000000
+2479 5790   0.039363
+2479 5794  -0.013107
+2479 5798   0.004754
+2479 5800  -1.000000
+2480 4   0.128990
+2480 5789   0.078885
+2480 5791   1.000000
+2480 5793   0.058415
+2480 5797  -0.008310
+2480 5799  -1.000000
+2481 4   0.128990
+2481 5790   0.078885
+2481 5792   1.000000
+2481 5794   0.058415
+2481 5798  -0.008310
+2481 5800  -1.000000
+2482 4   0.200000
+2482 5789   0.075281
+2482 5793   0.102497
+2482 5795   1.000000
+2482 5797   0.022222
+2482 5799  -1.000000
+2483 4   0.200000
+2483 5790   0.075281
+2483 5794   0.102497
+2483 5796   1.000000
+2483 5798   0.022222
+2483 5800  -1.000000
+2484 4   0.031010
+2484 5801   1.000000
+2484 5803   0.039363
+2484 5807  -0.013107
+2484 5811   0.004754
+2484 5813  -1.000000
+2485 4   0.031010
+2485 5802   1.000000
+2485 5804   0.039363
+2485 5808  -0.013107
+2485 5812   0.004754
+2485 5814  -1.000000
+2486 4   0.128990
+2486 5803   0.078885
+2486 5805   1.000000
+2486 5807   0.058415
+2486 5811  -0.008310
+2486 5813  -1.000000
+2487 4   0.128990
+2487 5804   0.078885
+2487 5806   1.000000
+2487 5808   0.058415
+2487 5812  -0.008310
+2487 5814  -1.000000
+2488 4   0.200000
+2488 5803   0.075281
+2488 5807   0.102497
+2488 5809   1.000000
+2488 5811   0.022222
+2488 5813  -1.000000
+2489 4   0.200000
+2489 5804   0.075281
+2489 5808   0.102497
+2489 5810   1.000000
+2489 5812   0.022222
+2489 5814  -1.000000
+2490 4   0.031010
+2490 5815   1.000000
+2490 5817   0.039363
+2490 5821  -0.013107
+2490 5825   0.004754
+2490 5827  -1.000000
+2491 4   0.031010
+2491 5816   1.000000
+2491 5818   0.039363
+2491 5822  -0.013107
+2491 5826   0.004754
+2491 5828  -1.000000
+2492 4   0.128990
+2492 5817   0.078885
+2492 5819   1.000000
+2492 5821   0.058415
+2492 5825  -0.008310
+2492 5827  -1.000000
+2493 4   0.128990
+2493 5818   0.078885
+2493 5820   1.000000
+2493 5822   0.058415
+2493 5826  -0.008310
+2493 5828  -1.000000
+2494 4   0.200000
+2494 5817   0.075281
+2494 5821   0.102497
+2494 5823   1.000000
+2494 5825   0.022222
+2494 5827  -1.000000
+2495 4   0.200000
+2495 5818   0.075281
+2495 5822   0.102497
+2495 5824   1.000000
+2495 5826   0.022222
+2495 5828  -1.000000
+2496 4   0.031010
+2496 5829   1.000000
+2496 5831   0.039363
+2496 5835  -0.013107
+2496 5839   0.004754
+2496 5841  -1.000000
+2497 4   0.031010
+2497 5830   1.000000
+2497 5832   0.039363
+2497 5836  -0.013107
+2497 5840   0.004754
+2497 5842  -1.000000
+2498 4   0.128990
+2498 5831   0.078885
+2498 5833   1.000000
+2498 5835   0.058415
+2498 5839  -0.008310
+2498 5841  -1.000000
+2499 4   0.128990
+2499 5832   0.078885
+2499 5834   1.000000
+2499 5836   0.058415
+2499 5840  -0.008310
+2499 5842  -1.000000
+2500 4   0.200000
+2500 5831   0.075281
+2500 5835   0.102497
+2500 5837   1.000000
+2500 5839   0.022222
+2500 5841  -1.000000
+2501 4   0.200000
+2501 5832   0.075281
+2501 5836   0.102497
+2501 5838   1.000000
+2501 5840   0.022222
+2501 5842  -1.000000
+2502 4   0.031010
+2502 5843   1.000000
+2502 5845   0.039363
+2502 5849  -0.013107
+2502 5853   0.004754
+2502 5855  -1.000000
+2503 4   0.031010
+2503 5844   1.000000
+2503 5846   0.039363
+2503 5850  -0.013107
+2503 5854   0.004754
+2503 5856  -1.000000
+2504 4   0.128990
+2504 5845   0.078885
+2504 5847   1.000000
+2504 5849   0.058415
+2504 5853  -0.008310
+2504 5855  -1.000000
+2505 4   0.128990
+2505 5846   0.078885
+2505 5848   1.000000
+2505 5850   0.058415
+2505 5854  -0.008310
+2505 5856  -1.000000
+2506 4   0.200000
+2506 5845   0.075281
+2506 5849   0.102497
+2506 5851   1.000000
+2506 5853   0.022222
+2506 5855  -1.000000
+2507 4   0.200000
+2507 5846   0.075281
+2507 5850   0.102497
+2507 5852   1.000000
+2507 5854   0.022222
+2507 5856  -1.000000
+2508 4   0.031010
+2508 5857   1.000000
+2508 5859   0.039363
+2508 5863  -0.013107
+2508 5867   0.004754
+2508 5869  -1.000000
+2509 4   0.031010
+2509 5858   1.000000
+2509 5860   0.039363
+2509 5864  -0.013107
+2509 5868   0.004754
+2509 5870  -1.000000
+2510 4   0.128990
+2510 5859   0.078885
+2510 5861   1.000000
+2510 5863   0.058415
+2510 5867  -0.008310
+2510 5869  -1.000000
+2511 4   0.128990
+2511 5860   0.078885
+2511 5862   1.000000
+2511 5864   0.058415
+2511 5868  -0.008310
+2511 5870  -1.000000
+2512 4   0.200000
+2512 5859   0.075281
+2512 5863   0.102497
+2512 5865   1.000000
+2512 5867   0.022222
+2512 5869  -1.000000
+2513 4   0.200000
+2513 5860   0.075281
+2513 5864   0.102497
+2513 5866   1.000000
+2513 5868   0.022222
+2513 5870  -1.000000
+2514 4   0.031010
+2514 5871   1.000000
+2514 5873   0.039363
+2514 5877  -0.013107
+2514 5881   0.004754
+2514 5883  -1.000000
+2515 4   0.031010
+2515 5872   1.000000
+2515 5874   0.039363
+2515 5878  -0.013107
+2515 5882   0.004754
+2515 5884  -1.000000
+2516 4   0.128990
+2516 5873   0.078885
+2516 5875   1.000000
+2516 5877   0.058415
+2516 5881  -0.008310
+2516 5883  -1.000000
+2517 4   0.128990
+2517 5874   0.078885
+2517 5876   1.000000
+2517 5878   0.058415
+2517 5882  -0.008310
+2517 5884  -1.000000
+2518 4   0.200000
+2518 5873   0.075281
+2518 5877   0.102497
+2518 5879   1.000000
+2518 5881   0.022222
+2518 5883  -1.000000
+2519 4   0.200000
+2519 5874   0.075281
+2519 5878   0.102497
+2519 5880   1.000000
+2519 5882   0.022222
+2519 5884  -1.000000
+2520 4   0.031010
+2520 5885   1.000000
+2520 5887   0.039363
+2520 5891  -0.013107
+2520 5895   0.004754
+2520 5897  -1.000000
+2521 4   0.031010
+2521 5886   1.000000
+2521 5888   0.039363
+2521 5892  -0.013107
+2521 5896   0.004754
+2521 5898  -1.000000
+2522 4   0.128990
+2522 5887   0.078885
+2522 5889   1.000000
+2522 5891   0.058415
+2522 5895  -0.008310
+2522 5897  -1.000000
+2523 4   0.128990
+2523 5888   0.078885
+2523 5890   1.000000
+2523 5892   0.058415
+2523 5896  -0.008310
+2523 5898  -1.000000
+2524 4   0.200000
+2524 5887   0.075281
+2524 5891   0.102497
+2524 5893   1.000000
+2524 5895   0.022222
+2524 5897  -1.000000
+2525 4   0.200000
+2525 5888   0.075281
+2525 5892   0.102497
+2525 5894   1.000000
+2525 5896   0.022222
+2525 5898  -1.000000
+2526 4   0.031010
+2526 5899   1.000000
+2526 5901   0.039363
+2526 5905  -0.013107
+2526 5909   0.004754
+2526 5911  -1.000000
+2527 4   0.031010
+2527 5900   1.000000
+2527 5902   0.039363
+2527 5906  -0.013107
+2527 5910   0.004754
+2527 5912  -1.000000
+2528 4   0.128990
+2528 5901   0.078885
+2528 5903   1.000000
+2528 5905   0.058415
+2528 5909  -0.008310
+2528 5911  -1.000000
+2529 4   0.128990
+2529 5902   0.078885
+2529 5904   1.000000
+2529 5906   0.058415
+2529 5910  -0.008310
+2529 5912  -1.000000
+2530 4   0.200000
+2530 5901   0.075281
+2530 5905   0.102497
+2530 5907   1.000000
+2530 5909   0.022222
+2530 5911  -1.000000
+2531 4   0.200000
+2531 5902   0.075281
+2531 5906   0.102497
+2531 5908   1.000000
+2531 5910   0.022222
+2531 5912  -1.000000
+2532 4   0.031010
+2532 5913   1.000000
+2532 5915   0.039363
+2532 5919  -0.013107
+2532 5923   0.004754
+2532 5925  -1.000000
+2533 4   0.031010
+2533 5914   1.000000
+2533 5916   0.039363
+2533 5920  -0.013107
+2533 5924   0.004754
+2533 5926  -1.000000
+2534 4   0.128990
+2534 5915   0.078885
+2534 5917   1.000000
+2534 5919   0.058415
+2534 5923  -0.008310
+2534 5925  -1.000000
+2535 4   0.128990
+2535 5916   0.078885
+2535 5918   1.000000
+2535 5920   0.058415
+2535 5924  -0.008310
+2535 5926  -1.000000
+2536 4   0.200000
+2536 5915   0.075281
+2536 5919   0.102497
+2536 5921   1.000000
+2536 5923   0.022222
+2536 5925  -1.000000
+2537 4   0.200000
+2537 5916   0.075281
+2537 5920   0.102497
+2537 5922   1.000000
+2537 5924   0.022222
+2537 5926  -1.000000
+2538 4   0.031010
+2538 5927   1.000000
+2538 5929   0.039363
+2538 5933  -0.013107
+2538 5937   0.004754
+2538 5939  -1.000000
+2539 4   0.031010
+2539 5928   1.000000
+2539 5930   0.039363
+2539 5934  -0.013107
+2539 5938   0.004754
+2539 5940  -1.000000
+2540 4   0.128990
+2540 5929   0.078885
+2540 5931   1.000000
+2540 5933   0.058415
+2540 5937  -0.008310
+2540 5939  -1.000000
+2541 4   0.128990
+2541 5930   0.078885
+2541 5932   1.000000
+2541 5934   0.058415
+2541 5938  -0.008310
+2541 5940  -1.000000
+2542 4   0.200000
+2542 5929   0.075281
+2542 5933   0.102497
+2542 5935   1.000000
+2542 5937   0.022222
+2542 5939  -1.000000
+2543 4   0.200000
+2543 5930   0.075281
+2543 5934   0.102497
+2543 5936   1.000000
+2543 5938   0.022222
+2543 5940  -1.000000
+2544 4   0.031010
+2544 5941   1.000000
+2544 5943   0.039363
+2544 5947  -0.013107
+2544 5951   0.004754
+2544 5953  -1.000000
+2545 4   0.031010
+2545 5942   1.000000
+2545 5944   0.039363
+2545 5948  -0.013107
+2545 5952   0.004754
+2545 5954  -1.000000
+2546 4   0.128990
+2546 5943   0.078885
+2546 5945   1.000000
+2546 5947   0.058415
+2546 5951  -0.008310
+2546 5953  -1.000000
+2547 4   0.128990
+2547 5944   0.078885
+2547 5946   1.000000
+2547 5948   0.058415
+2547 5952  -0.008310
+2547 5954  -1.000000
+2548 4   0.200000
+2548 5943   0.075281
+2548 5947   0.102497
+2548 5949   1.000000
+2548 5951   0.022222
+2548 5953  -1.000000
+2549 4   0.200000
+2549 5944   0.075281
+2549 5948   0.102497
+2549 5950   1.000000
+2549 5952   0.022222
+2549 5954  -1.000000
+2550 4   0.031010
+2550 5955   1.000000
+2550 5957   0.039363
+2550 5961  -0.013107
+2550 5965   0.004754
+2550 5967  -1.000000
+2551 4   0.031010
+2551 5956   1.000000
+2551 5958   0.039363
+2551 5962  -0.013107
+2551 5966   0.004754
+2551 5968  -1.000000
+2552 4   0.128990
+2552 5957   0.078885
+2552 5959   1.000000
+2552 5961   0.058415
+2552 5965  -0.008310
+2552 5967  -1.000000
+2553 4   0.128990
+2553 5958   0.078885
+2553 5960   1.000000
+2553 5962   0.058415
+2553 5966  -0.008310
+2553 5968  -1.000000
+2554 4   0.200000
+2554 5957   0.075281
+2554 5961   0.102497
+2554 5963   1.000000
+2554 5965   0.022222
+2554 5967  -1.000000
+2555 4   0.200000
+2555 5958   0.075281
+2555 5962   0.102497
+2555 5964   1.000000
+2555 5966   0.022222
+2555 5968  -1.000000
+2556 4   0.031010
+2556 5969   1.000000
+2556 5971   0.039363
+2556 5975  -0.013107
+2556 5979   0.004754
+2556 5981  -1.000000
+2557 4   0.031010
+2557 5970   1.000000
+2557 5972   0.039363
+2557 5976  -0.013107
+2557 5980   0.004754
+2557 5982  -1.000000
+2558 4   0.128990
+2558 5971   0.078885
+2558 5973   1.000000
+2558 5975   0.058415
+2558 5979  -0.008310
+2558 5981  -1.000000
+2559 4   0.128990
+2559 5972   0.078885
+2559 5974   1.000000
+2559 5976   0.058415
+2559 5980  -0.008310
+2559 5982  -1.000000
+2560 4   0.200000
+2560 5971   0.075281
+2560 5975   0.102497
+2560 5977   1.000000
+2560 5979   0.022222
+2560 5981  -1.000000
+2561 4   0.200000
+2561 5972   0.075281
+2561 5976   0.102497
+2561 5978   1.000000
+2561 5980   0.022222
+2561 5982  -1.000000
+2562 4   0.031010
+2562 5983   1.000000
+2562 5985   0.039363
+2562 5989  -0.013107
+2562 5993   0.004754
+2562 5995  -1.000000
+2563 4   0.031010
+2563 5984   1.000000
+2563 5986   0.039363
+2563 5990  -0.013107
+2563 5994   0.004754
+2563 5996  -1.000000
+2564 4   0.128990
+2564 5985   0.078885
+2564 5987   1.000000
+2564 5989   0.058415
+2564 5993  -0.008310
+2564 5995  -1.000000
+2565 4   0.128990
+2565 5986   0.078885
+2565 5988   1.000000
+2565 5990   0.058415
+2565 5994  -0.008310
+2565 5996  -1.000000
+2566 4   0.200000
+2566 5985   0.075281
+2566 5989   0.102497
+2566 5991   1.000000
+2566 5993   0.022222
+2566 5995  -1.000000
+2567 4   0.200000
+2567 5986   0.075281
+2567 5990   0.102497
+2567 5992   1.000000
+2567 5994   0.022222
+2567 5996  -1.000000
+2568 4   0.031010
+2568 5997   1.000000
+2568 5999   0.039363
+2568 6003  -0.013107
+2568 6007   0.004754
+2568 6009  -1.000000
+2569 4   0.031010
+2569 5998   1.000000
+2569 6000   0.039363
+2569 6004  -0.013107
+2569 6008   0.004754
+2569 6010  -1.000000
+2570 4   0.128990
+2570 5999   0.078885
+2570 6001   1.000000
+2570 6003   0.058415
+2570 6007  -0.008310
+2570 6009  -1.000000
+2571 4   0.128990
+2571 6000   0.078885
+2571 6002   1.000000
+2571 6004   0.058415
+2571 6008  -0.008310
+2571 6010  -1.000000
+2572 4   0.200000
+2572 5999   0.075281
+2572 6003   0.102497
+2572 6005   1.000000
+2572 6007   0.022222
+2572 6009  -1.000000
+2573 4   0.200000
+2573 6000   0.075281
+2573 6004   0.102497
+2573 6006   1.000000
+2573 6008   0.022222
+2573 6010  -1.000000
+2574 4   0.031010
+2574 6011   1.000000
+2574 6013   0.039363
+2574 6017  -0.013107
+2574 6021   0.004754
+2574 6023  -1.000000
+2575 4   0.031010
+2575 6012   1.000000
+2575 6014   0.039363
+2575 6018  -0.013107
+2575 6022   0.004754
+2575 6024  -1.000000
+2576 4   0.128990
+2576 6013   0.078885
+2576 6015   1.000000
+2576 6017   0.058415
+2576 6021  -0.008310
+2576 6023  -1.000000
+2577 4   0.128990
+2577 6014   0.078885
+2577 6016   1.000000
+2577 6018   0.058415
+2577 6022  -0.008310
+2577 6024  -1.000000
+2578 4   0.200000
+2578 6013   0.075281
+2578 6017   0.102497
+2578 6019   1.000000
+2578 6021   0.022222
+2578 6023  -1.000000
+2579 4   0.200000
+2579 6014   0.075281
+2579 6018   0.102497
+2579 6020   1.000000
+2579 6022   0.022222
+2579 6024  -1.000000
+2580 4   0.031010
+2580 6025   1.000000
+2580 6027   0.039363
+2580 6031  -0.013107
+2580 6035   0.004754
+2580 6037  -1.000000
+2581 4   0.031010
+2581 6026   1.000000
+2581 6028   0.039363
+2581 6032  -0.013107
+2581 6036   0.004754
+2581 6038  -1.000000
+2582 4   0.128990
+2582 6027   0.078885
+2582 6029   1.000000
+2582 6031   0.058415
+2582 6035  -0.008310
+2582 6037  -1.000000
+2583 4   0.128990
+2583 6028   0.078885
+2583 6030   1.000000
+2583 6032   0.058415
+2583 6036  -0.008310
+2583 6038  -1.000000
+2584 4   0.200000
+2584 6027   0.075281
+2584 6031   0.102497
+2584 6033   1.000000
+2584 6035   0.022222
+2584 6037  -1.000000
+2585 4   0.200000
+2585 6028   0.075281
+2585 6032   0.102497
+2585 6034   1.000000
+2585 6036   0.022222
+2585 6038  -1.000000
+2586 4   0.031010
+2586 6039   1.000000
+2586 6041   0.039363
+2586 6045  -0.013107
+2586 6049   0.004754
+2586 6051  -1.000000
+2587 4   0.031010
+2587 6040   1.000000
+2587 6042   0.039363
+2587 6046  -0.013107
+2587 6050   0.004754
+2587 6052  -1.000000
+2588 4   0.128990
+2588 6041   0.078885
+2588 6043   1.000000
+2588 6045   0.058415
+2588 6049  -0.008310
+2588 6051  -1.000000
+2589 4   0.128990
+2589 6042   0.078885
+2589 6044   1.000000
+2589 6046   0.058415
+2589 6050  -0.008310
+2589 6052  -1.000000
+2590 4   0.200000
+2590 6041   0.075281
+2590 6045   0.102497
+2590 6047   1.000000
+2590 6049   0.022222
+2590 6051  -1.000000
+2591 4   0.200000
+2591 6042   0.075281
+2591 6046   0.102497
+2591 6048   1.000000
+2591 6050   0.022222
+2591 6052  -1.000000
+2592 4   0.031010
+2592 6053   1.000000
+2592 6055   0.039363
+2592 6059  -0.013107
+2592 6063   0.004754
+2592 6065  -1.000000
+2593 4   0.031010
+2593 6054   1.000000
+2593 6056   0.039363
+2593 6060  -0.013107
+2593 6064   0.004754
+2593 6066  -1.000000
+2594 4   0.128990
+2594 6055   0.078885
+2594 6057   1.000000
+2594 6059   0.058415
+2594 6063  -0.008310
+2594 6065  -1.000000
+2595 4   0.128990
+2595 6056   0.078885
+2595 6058   1.000000
+2595 6060   0.058415
+2595 6064  -0.008310
+2595 6066  -1.000000
+2596 4   0.200000
+2596 6055   0.075281
+2596 6059   0.102497
+2596 6061   1.000000
+2596 6063   0.022222
+2596 6065  -1.000000
+2597 4   0.200000
+2597 6056   0.075281
+2597 6060   0.102497
+2597 6062   1.000000
+2597 6064   0.022222
+2597 6066  -1.000000
+2598 4   0.031010
+2598 6067   1.000000
+2598 6069   0.039363
+2598 6073  -0.013107
+2598 6077   0.004754
+2598 6079  -1.000000
+2599 4   0.031010
+2599 6068   1.000000
+2599 6070   0.039363
+2599 6074  -0.013107
+2599 6078   0.004754
+2599 6080  -1.000000
+2600 4   0.128990
+2600 6069   0.078885
+2600 6071   1.000000
+2600 6073   0.058415
+2600 6077  -0.008310
+2600 6079  -1.000000
+2601 4   0.128990
+2601 6070   0.078885
+2601 6072   1.000000
+2601 6074   0.058415
+2601 6078  -0.008310
+2601 6080  -1.000000
+2602 4   0.200000
+2602 6069   0.075281
+2602 6073   0.102497
+2602 6075   1.000000
+2602 6077   0.022222
+2602 6079  -1.000000
+2603 4   0.200000
+2603 6070   0.075281
+2603 6074   0.102497
+2603 6076   1.000000
+2603 6078   0.022222
+2603 6080  -1.000000
+2604 4   0.031010
+2604 6081   1.000000
+2604 6083   0.039363
+2604 6087  -0.013107
+2604 6091   0.004754
+2604 6093  -1.000000
+2605 4   0.031010
+2605 6082   1.000000
+2605 6084   0.039363
+2605 6088  -0.013107
+2605 6092   0.004754
+2605 6094  -1.000000
+2606 4   0.128990
+2606 6083   0.078885
+2606 6085   1.000000
+2606 6087   0.058415
+2606 6091  -0.008310
+2606 6093  -1.000000
+2607 4   0.128990
+2607 6084   0.078885
+2607 6086   1.000000
+2607 6088   0.058415
+2607 6092  -0.008310
+2607 6094  -1.000000
+2608 4   0.200000
+2608 6083   0.075281
+2608 6087   0.102497
+2608 6089   1.000000
+2608 6091   0.022222
+2608 6093  -1.000000
+2609 4   0.200000
+2609 6084   0.075281
+2609 6088   0.102497
+2609 6090   1.000000
+2609 6092   0.022222
+2609 6094  -1.000000
+2610 4   0.031010
+2610 6095   1.000000
+2610 6097   0.039363
+2610 6101  -0.013107
+2610 6105   0.004754
+2610 6107  -1.000000
+2611 4   0.031010
+2611 6096   1.000000
+2611 6098   0.039363
+2611 6102  -0.013107
+2611 6106   0.004754
+2611 6108  -1.000000
+2612 4   0.128990
+2612 6097   0.078885
+2612 6099   1.000000
+2612 6101   0.058415
+2612 6105  -0.008310
+2612 6107  -1.000000
+2613 4   0.128990
+2613 6098   0.078885
+2613 6100   1.000000
+2613 6102   0.058415
+2613 6106  -0.008310
+2613 6108  -1.000000
+2614 4   0.200000
+2614 6097   0.075281
+2614 6101   0.102497
+2614 6103   1.000000
+2614 6105   0.022222
+2614 6107  -1.000000
+2615 4   0.200000
+2615 6098   0.075281
+2615 6102   0.102497
+2615 6104   1.000000
+2615 6106   0.022222
+2615 6108  -1.000000
+2616 4   0.031010
+2616 6109   1.000000
+2616 6111   0.039363
+2616 6115  -0.013107
+2616 6119   0.004754
+2616 6121  -1.000000
+2617 4   0.031010
+2617 6110   1.000000
+2617 6112   0.039363
+2617 6116  -0.013107
+2617 6120   0.004754
+2617 6122  -1.000000
+2618 4   0.128990
+2618 6111   0.078885
+2618 6113   1.000000
+2618 6115   0.058415
+2618 6119  -0.008310
+2618 6121  -1.000000
+2619 4   0.128990
+2619 6112   0.078885
+2619 6114   1.000000
+2619 6116   0.058415
+2619 6120  -0.008310
+2619 6122  -1.000000
+2620 4   0.200000
+2620 6111   0.075281
+2620 6115   0.102497
+2620 6117   1.000000
+2620 6119   0.022222
+2620 6121  -1.000000
+2621 4   0.200000
+2621 6112   0.075281
+2621 6116   0.102497
+2621 6118   1.000000
+2621 6120   0.022222
+2621 6122  -1.000000
+2622 4   0.031010
+2622 6123   1.000000
+2622 6125   0.039363
+2622 6129  -0.013107
+2622 6133   0.004754
+2622 6135  -1.000000
+2623 4   0.031010
+2623 6124   1.000000
+2623 6126   0.039363
+2623 6130  -0.013107
+2623 6134   0.004754
+2623 6136  -1.000000
+2624 4   0.128990
+2624 6125   0.078885
+2624 6127   1.000000
+2624 6129   0.058415
+2624 6133  -0.008310
+2624 6135  -1.000000
+2625 4   0.128990
+2625 6126   0.078885
+2625 6128   1.000000
+2625 6130   0.058415
+2625 6134  -0.008310
+2625 6136  -1.000000
+2626 4   0.200000
+2626 6125   0.075281
+2626 6129   0.102497
+2626 6131   1.000000
+2626 6133   0.022222
+2626 6135  -1.000000
+2627 4   0.200000
+2627 6126   0.075281
+2627 6130   0.102497
+2627 6132   1.000000
+2627 6134   0.022222
+2627 6136  -1.000000
+2628 4   0.031010
+2628 6137   1.000000
+2628 6139   0.039363
+2628 6143  -0.013107
+2628 6147   0.004754
+2628 6149  -1.000000
+2629 4   0.031010
+2629 6138   1.000000
+2629 6140   0.039363
+2629 6144  -0.013107
+2629 6148   0.004754
+2629 6150  -1.000000
+2630 4   0.128990
+2630 6139   0.078885
+2630 6141   1.000000
+2630 6143   0.058415
+2630 6147  -0.008310
+2630 6149  -1.000000
+2631 4   0.128990
+2631 6140   0.078885
+2631 6142   1.000000
+2631 6144   0.058415
+2631 6148  -0.008310
+2631 6150  -1.000000
+2632 4   0.200000
+2632 6139   0.075281
+2632 6143   0.102497
+2632 6145   1.000000
+2632 6147   0.022222
+2632 6149  -1.000000
+2633 4   0.200000
+2633 6140   0.075281
+2633 6144   0.102497
+2633 6146   1.000000
+2633 6148   0.022222
+2633 6150  -1.000000
+2634 4   0.031010
+2634 6151   1.000000
+2634 6153   0.039363
+2634 6157  -0.013107
+2634 6161   0.004754
+2634 6163  -1.000000
+2635 4   0.031010
+2635 6152   1.000000
+2635 6154   0.039363
+2635 6158  -0.013107
+2635 6162   0.004754
+2635 6164  -1.000000
+2636 4   0.128990
+2636 6153   0.078885
+2636 6155   1.000000
+2636 6157   0.058415
+2636 6161  -0.008310
+2636 6163  -1.000000
+2637 4   0.128990
+2637 6154   0.078885
+2637 6156   1.000000
+2637 6158   0.058415
+2637 6162  -0.008310
+2637 6164  -1.000000
+2638 4   0.200000
+2638 6153   0.075281
+2638 6157   0.102497
+2638 6159   1.000000
+2638 6161   0.022222
+2638 6163  -1.000000
+2639 4   0.200000
+2639 6154   0.075281
+2639 6158   0.102497
+2639 6160   1.000000
+2639 6162   0.022222
+2639 6164  -1.000000
+2640 4   0.031010
+2640 6165   1.000000
+2640 6167   0.039363
+2640 6171  -0.013107
+2640 6175   0.004754
+2640 6177  -1.000000
+2641 4   0.031010
+2641 6166   1.000000
+2641 6168   0.039363
+2641 6172  -0.013107
+2641 6176   0.004754
+2641 6178  -1.000000
+2642 4   0.128990
+2642 6167   0.078885
+2642 6169   1.000000
+2642 6171   0.058415
+2642 6175  -0.008310
+2642 6177  -1.000000
+2643 4   0.128990
+2643 6168   0.078885
+2643 6170   1.000000
+2643 6172   0.058415
+2643 6176  -0.008310
+2643 6178  -1.000000
+2644 4   0.200000
+2644 6167   0.075281
+2644 6171   0.102497
+2644 6173   1.000000
+2644 6175   0.022222
+2644 6177  -1.000000
+2645 4   0.200000
+2645 6168   0.075281
+2645 6172   0.102497
+2645 6174   1.000000
+2645 6176   0.022222
+2645 6178  -1.000000
+2646 4   0.031010
+2646 6179   1.000000
+2646 6181   0.039363
+2646 6185  -0.013107
+2646 6189   0.004754
+2646 6191  -1.000000
+2647 4   0.031010
+2647 6180   1.000000
+2647 6182   0.039363
+2647 6186  -0.013107
+2647 6190   0.004754
+2647 6192  -1.000000
+2648 4   0.128990
+2648 6181   0.078885
+2648 6183   1.000000
+2648 6185   0.058415
+2648 6189  -0.008310
+2648 6191  -1.000000
+2649 4   0.128990
+2649 6182   0.078885
+2649 6184   1.000000
+2649 6186   0.058415
+2649 6190  -0.008310
+2649 6192  -1.000000
+2650 4   0.200000
+2650 6181   0.075281
+2650 6185   0.102497
+2650 6187   1.000000
+2650 6189   0.022222
+2650 6191  -1.000000
+2651 4   0.200000
+2651 6182   0.075281
+2651 6186   0.102497
+2651 6188   1.000000
+2651 6190   0.022222
+2651 6192  -1.000000
+2652 4   0.031010
+2652 6193   1.000000
+2652 6195   0.039363
+2652 6199  -0.013107
+2652 6203   0.004754
+2652 6205  -1.000000
+2653 4   0.031010
+2653 6194   1.000000
+2653 6196   0.039363
+2653 6200  -0.013107
+2653 6204   0.004754
+2653 6206  -1.000000
+2654 4   0.128990
+2654 6195   0.078885
+2654 6197   1.000000
+2654 6199   0.058415
+2654 6203  -0.008310
+2654 6205  -1.000000
+2655 4   0.128990
+2655 6196   0.078885
+2655 6198   1.000000
+2655 6200   0.058415
+2655 6204  -0.008310
+2655 6206  -1.000000
+2656 4   0.200000
+2656 6195   0.075281
+2656 6199   0.102497
+2656 6201   1.000000
+2656 6203   0.022222
+2656 6205  -1.000000
+2657 4   0.200000
+2657 6196   0.075281
+2657 6200   0.102497
+2657 6202   1.000000
+2657 6204   0.022222
+2657 6206  -1.000000
+2658 4   0.031010
+2658 6207   1.000000
+2658 6209   0.039363
+2658 6213  -0.013107
+2658 6217   0.004754
+2658 6219  -1.000000
+2659 4   0.031010
+2659 6208   1.000000
+2659 6210   0.039363
+2659 6214  -0.013107
+2659 6218   0.004754
+2659 6220  -1.000000
+2660 4   0.128990
+2660 6209   0.078885
+2660 6211   1.000000
+2660 6213   0.058415
+2660 6217  -0.008310
+2660 6219  -1.000000
+2661 4   0.128990
+2661 6210   0.078885
+2661 6212   1.000000
+2661 6214   0.058415
+2661 6218  -0.008310
+2661 6220  -1.000000
+2662 4   0.200000
+2662 6209   0.075281
+2662 6213   0.102497
+2662 6215   1.000000
+2662 6217   0.022222
+2662 6219  -1.000000
+2663 4   0.200000
+2663 6210   0.075281
+2663 6214   0.102497
+2663 6216   1.000000
+2663 6218   0.022222
+2663 6220  -1.000000
+2664 4   0.031010
+2664 6221   1.000000
+2664 6223   0.039363
+2664 6227  -0.013107
+2664 6231   0.004754
+2664 6233  -1.000000
+2665 4   0.031010
+2665 6222   1.000000
+2665 6224   0.039363
+2665 6228  -0.013107
+2665 6232   0.004754
+2665 6234  -1.000000
+2666 4   0.128990
+2666 6223   0.078885
+2666 6225   1.000000
+2666 6227   0.058415
+2666 6231  -0.008310
+2666 6233  -1.000000
+2667 4   0.128990
+2667 6224   0.078885
+2667 6226   1.000000
+2667 6228   0.058415
+2667 6232  -0.008310
+2667 6234  -1.000000
+2668 4   0.200000
+2668 6223   0.075281
+2668 6227   0.102497
+2668 6229   1.000000
+2668 6231   0.022222
+2668 6233  -1.000000
+2669 4   0.200000
+2669 6224   0.075281
+2669 6228   0.102497
+2669 6230   1.000000
+2669 6232   0.022222
+2669 6234  -1.000000
+2670 4   0.031010
+2670 6235   1.000000
+2670 6237   0.039363
+2670 6241  -0.013107
+2670 6245   0.004754
+2670 6247  -1.000000
+2671 4   0.031010
+2671 6236   1.000000
+2671 6238   0.039363
+2671 6242  -0.013107
+2671 6246   0.004754
+2671 6248  -1.000000
+2672 4   0.128990
+2672 6237   0.078885
+2672 6239   1.000000
+2672 6241   0.058415
+2672 6245  -0.008310
+2672 6247  -1.000000
+2673 4   0.128990
+2673 6238   0.078885
+2673 6240   1.000000
+2673 6242   0.058415
+2673 6246  -0.008310
+2673 6248  -1.000000
+2674 4   0.200000
+2674 6237   0.075281
+2674 6241   0.102497
+2674 6243   1.000000
+2674 6245   0.022222
+2674 6247  -1.000000
+2675 4   0.200000
+2675 6238   0.075281
+2675 6242   0.102497
+2675 6244   1.000000
+2675 6246   0.022222
+2675 6248  -1.000000
+2676 4   0.031010
+2676 6249   1.000000
+2676 6251   0.039363
+2676 6255  -0.013107
+2676 6259   0.004754
+2676 6261  -1.000000
+2677 4   0.031010
+2677 6250   1.000000
+2677 6252   0.039363
+2677 6256  -0.013107
+2677 6260   0.004754
+2677 6262  -1.000000
+2678 4   0.128990
+2678 6251   0.078885
+2678 6253   1.000000
+2678 6255   0.058415
+2678 6259  -0.008310
+2678 6261  -1.000000
+2679 4   0.128990
+2679 6252   0.078885
+2679 6254   1.000000
+2679 6256   0.058415
+2679 6260  -0.008310
+2679 6262  -1.000000
+2680 4   0.200000
+2680 6251   0.075281
+2680 6255   0.102497
+2680 6257   1.000000
+2680 6259   0.022222
+2680 6261  -1.000000
+2681 4   0.200000
+2681 6252   0.075281
+2681 6256   0.102497
+2681 6258   1.000000
+2681 6260   0.022222
+2681 6262  -1.000000
+2682 4   0.031010
+2682 6263   1.000000
+2682 6265   0.039363
+2682 6269  -0.013107
+2682 6273   0.004754
+2682 6275  -1.000000
+2683 4   0.031010
+2683 6264   1.000000
+2683 6266   0.039363
+2683 6270  -0.013107
+2683 6274   0.004754
+2683 6276  -1.000000
+2684 4   0.128990
+2684 6265   0.078885
+2684 6267   1.000000
+2684 6269   0.058415
+2684 6273  -0.008310
+2684 6275  -1.000000
+2685 4   0.128990
+2685 6266   0.078885
+2685 6268   1.000000
+2685 6270   0.058415
+2685 6274  -0.008310
+2685 6276  -1.000000
+2686 4   0.200000
+2686 6265   0.075281
+2686 6269   0.102497
+2686 6271   1.000000
+2686 6273   0.022222
+2686 6275  -1.000000
+2687 4   0.200000
+2687 6266   0.075281
+2687 6270   0.102497
+2687 6272   1.000000
+2687 6274   0.022222
+2687 6276  -1.000000
+2688 4   0.031010
+2688 6277   1.000000
+2688 6279   0.039363
+2688 6283  -0.013107
+2688 6287   0.004754
+2688 6289  -1.000000
+2689 4   0.031010
+2689 6278   1.000000
+2689 6280   0.039363
+2689 6284  -0.013107
+2689 6288   0.004754
+2689 6290  -1.000000
+2690 4   0.128990
+2690 6279   0.078885
+2690 6281   1.000000
+2690 6283   0.058415
+2690 6287  -0.008310
+2690 6289  -1.000000
+2691 4   0.128990
+2691 6280   0.078885
+2691 6282   1.000000
+2691 6284   0.058415
+2691 6288  -0.008310
+2691 6290  -1.000000
+2692 4   0.200000
+2692 6279   0.075281
+2692 6283   0.102497
+2692 6285   1.000000
+2692 6287   0.022222
+2692 6289  -1.000000
+2693 4   0.200000
+2693 6280   0.075281
+2693 6284   0.102497
+2693 6286   1.000000
+2693 6288   0.022222
+2693 6290  -1.000000
+2694 4   0.031010
+2694 6291   1.000000
+2694 6293   0.039363
+2694 6297  -0.013107
+2694 6301   0.004754
+2694 6303  -1.000000
+2695 4   0.031010
+2695 6292   1.000000
+2695 6294   0.039363
+2695 6298  -0.013107
+2695 6302   0.004754
+2695 6304  -1.000000
+2696 4   0.128990
+2696 6293   0.078885
+2696 6295   1.000000
+2696 6297   0.058415
+2696 6301  -0.008310
+2696 6303  -1.000000
+2697 4   0.128990
+2697 6294   0.078885
+2697 6296   1.000000
+2697 6298   0.058415
+2697 6302  -0.008310
+2697 6304  -1.000000
+2698 4   0.200000
+2698 6293   0.075281
+2698 6297   0.102497
+2698 6299   1.000000
+2698 6301   0.022222
+2698 6303  -1.000000
+2699 4   0.200000
+2699 6294   0.075281
+2699 6298   0.102497
+2699 6300   1.000000
+2699 6302   0.022222
+2699 6304  -1.000000
+2700 4   0.031010
+2700 6305   1.000000
+2700 6307   0.039363
+2700 6311  -0.013107
+2700 6315   0.004754
+2700 6317  -1.000000
+2701 4   0.031010
+2701 6306   1.000000
+2701 6308   0.039363
+2701 6312  -0.013107
+2701 6316   0.004754
+2701 6318  -1.000000
+2702 4   0.128990
+2702 6307   0.078885
+2702 6309   1.000000
+2702 6311   0.058415
+2702 6315  -0.008310
+2702 6317  -1.000000
+2703 4   0.128990
+2703 6308   0.078885
+2703 6310   1.000000
+2703 6312   0.058415
+2703 6316  -0.008310
+2703 6318  -1.000000
+2704 4   0.200000
+2704 6307   0.075281
+2704 6311   0.102497
+2704 6313   1.000000
+2704 6315   0.022222
+2704 6317  -1.000000
+2705 4   0.200000
+2705 6308   0.075281
+2705 6312   0.102497
+2705 6314   1.000000
+2705 6316   0.022222
+2705 6318  -1.000000
+2706 4   0.031010
+2706 6319   1.000000
+2706 6321   0.039363
+2706 6325  -0.013107
+2706 6329   0.004754
+2706 6331  -1.000000
+2707 4   0.031010
+2707 6320   1.000000
+2707 6322   0.039363
+2707 6326  -0.013107
+2707 6330   0.004754
+2707 6332  -1.000000
+2708 4   0.128990
+2708 6321   0.078885
+2708 6323   1.000000
+2708 6325   0.058415
+2708 6329  -0.008310
+2708 6331  -1.000000
+2709 4   0.128990
+2709 6322   0.078885
+2709 6324   1.000000
+2709 6326   0.058415
+2709 6330  -0.008310
+2709 6332  -1.000000
+2710 4   0.200000
+2710 6321   0.075281
+2710 6325   0.102497
+2710 6327   1.000000
+2710 6329   0.022222
+2710 6331  -1.000000
+2711 4   0.200000
+2711 6322   0.075281
+2711 6326   0.102497
+2711 6328   1.000000
+2711 6330   0.022222
+2711 6332  -1.000000
+2712 4   0.031010
+2712 6333   1.000000
+2712 6335   0.039363
+2712 6339  -0.013107
+2712 6343   0.004754
+2712 6345  -1.000000
+2713 4   0.031010
+2713 6334   1.000000
+2713 6336   0.039363
+2713 6340  -0.013107
+2713 6344   0.004754
+2713 6346  -1.000000
+2714 4   0.128990
+2714 6335   0.078885
+2714 6337   1.000000
+2714 6339   0.058415
+2714 6343  -0.008310
+2714 6345  -1.000000
+2715 4   0.128990
+2715 6336   0.078885
+2715 6338   1.000000
+2715 6340   0.058415
+2715 6344  -0.008310
+2715 6346  -1.000000
+2716 4   0.200000
+2716 6335   0.075281
+2716 6339   0.102497
+2716 6341   1.000000
+2716 6343   0.022222
+2716 6345  -1.000000
+2717 4   0.200000
+2717 6336   0.075281
+2717 6340   0.102497
+2717 6342   1.000000
+2717 6344   0.022222
+2717 6346  -1.000000
+2718 4   0.031010
+2718 6347   1.000000
+2718 6349   0.039363
+2718 6353  -0.013107
+2718 6357   0.004754
+2718 6359  -1.000000
+2719 4   0.031010
+2719 6348   1.000000
+2719 6350   0.039363
+2719 6354  -0.013107
+2719 6358   0.004754
+2719 6360  -1.000000
+2720 4   0.128990
+2720 6349   0.078885
+2720 6351   1.000000
+2720 6353   0.058415
+2720 6357  -0.008310
+2720 6359  -1.000000
+2721 4   0.128990
+2721 6350   0.078885
+2721 6352   1.000000
+2721 6354   0.058415
+2721 6358  -0.008310
+2721 6360  -1.000000
+2722 4   0.200000
+2722 6349   0.075281
+2722 6353   0.102497
+2722 6355   1.000000
+2722 6357   0.022222
+2722 6359  -1.000000
+2723 4   0.200000
+2723 6350   0.075281
+2723 6354   0.102497
+2723 6356   1.000000
+2723 6358   0.022222
+2723 6360  -1.000000
+2724 4   0.031010
+2724 6361   1.000000
+2724 6363   0.039363
+2724 6367  -0.013107
+2724 6371   0.004754
+2724 6373  -1.000000
+2725 4   0.031010
+2725 6362   1.000000
+2725 6364   0.039363
+2725 6368  -0.013107
+2725 6372   0.004754
+2725 6374  -1.000000
+2726 4   0.128990
+2726 6363   0.078885
+2726 6365   1.000000
+2726 6367   0.058415
+2726 6371  -0.008310
+2726 6373  -1.000000
+2727 4   0.128990
+2727 6364   0.078885
+2727 6366   1.000000
+2727 6368   0.058415
+2727 6372  -0.008310
+2727 6374  -1.000000
+2728 4   0.200000
+2728 6363   0.075281
+2728 6367   0.102497
+2728 6369   1.000000
+2728 6371   0.022222
+2728 6373  -1.000000
+2729 4   0.200000
+2729 6364   0.075281
+2729 6368   0.102497
+2729 6370   1.000000
+2729 6372   0.022222
+2729 6374  -1.000000
+2730 4   0.031010
+2730 6375   1.000000
+2730 6377   0.039363
+2730 6381  -0.013107
+2730 6385   0.004754
+2730 6387  -1.000000
+2731 4   0.031010
+2731 6376   1.000000
+2731 6378   0.039363
+2731 6382  -0.013107
+2731 6386   0.004754
+2731 6388  -1.000000
+2732 4   0.128990
+2732 6377   0.078885
+2732 6379   1.000000
+2732 6381   0.058415
+2732 6385  -0.008310
+2732 6387  -1.000000
+2733 4   0.128990
+2733 6378   0.078885
+2733 6380   1.000000
+2733 6382   0.058415
+2733 6386  -0.008310
+2733 6388  -1.000000
+2734 4   0.200000
+2734 6377   0.075281
+2734 6381   0.102497
+2734 6383   1.000000
+2734 6385   0.022222
+2734 6387  -1.000000
+2735 4   0.200000
+2735 6378   0.075281
+2735 6382   0.102497
+2735 6384   1.000000
+2735 6386   0.022222
+2735 6388  -1.000000
+2736 4   0.031010
+2736 6389   1.000000
+2736 6391   0.039363
+2736 6395  -0.013107
+2736 6399   0.004754
+2736 6401  -1.000000
+2737 4   0.031010
+2737 6390   1.000000
+2737 6392   0.039363
+2737 6396  -0.013107
+2737 6400   0.004754
+2737 6402  -1.000000
+2738 4   0.128990
+2738 6391   0.078885
+2738 6393   1.000000
+2738 6395   0.058415
+2738 6399  -0.008310
+2738 6401  -1.000000
+2739 4   0.128990
+2739 6392   0.078885
+2739 6394   1.000000
+2739 6396   0.058415
+2739 6400  -0.008310
+2739 6402  -1.000000
+2740 4   0.200000
+2740 6391   0.075281
+2740 6395   0.102497
+2740 6397   1.000000
+2740 6399   0.022222
+2740 6401  -1.000000
+2741 4   0.200000
+2741 6392   0.075281
+2741 6396   0.102497
+2741 6398   1.000000
+2741 6400   0.022222
+2741 6402  -1.000000
+2742 4   0.031010
+2742 6403   1.000000
+2742 6405   0.039363
+2742 6409  -0.013107
+2742 6413   0.004754
+2742 6415  -1.000000
+2743 4   0.031010
+2743 6404   1.000000
+2743 6406   0.039363
+2743 6410  -0.013107
+2743 6414   0.004754
+2743 6416  -1.000000
+2744 4   0.128990
+2744 6405   0.078885
+2744 6407   1.000000
+2744 6409   0.058415
+2744 6413  -0.008310
+2744 6415  -1.000000
+2745 4   0.128990
+2745 6406   0.078885
+2745 6408   1.000000
+2745 6410   0.058415
+2745 6414  -0.008310
+2745 6416  -1.000000
+2746 4   0.200000
+2746 6405   0.075281
+2746 6409   0.102497
+2746 6411   1.000000
+2746 6413   0.022222
+2746 6415  -1.000000
+2747 4   0.200000
+2747 6406   0.075281
+2747 6410   0.102497
+2747 6412   1.000000
+2747 6414   0.022222
+2747 6416  -1.000000
+2748 4   0.031010
+2748 6417   1.000000
+2748 6419   0.039363
+2748 6423  -0.013107
+2748 6427   0.004754
+2748 6429  -1.000000
+2749 4   0.031010
+2749 6418   1.000000
+2749 6420   0.039363
+2749 6424  -0.013107
+2749 6428   0.004754
+2749 6430  -1.000000
+2750 4   0.128990
+2750 6419   0.078885
+2750 6421   1.000000
+2750 6423   0.058415
+2750 6427  -0.008310
+2750 6429  -1.000000
+2751 4   0.128990
+2751 6420   0.078885
+2751 6422   1.000000
+2751 6424   0.058415
+2751 6428  -0.008310
+2751 6430  -1.000000
+2752 4   0.200000
+2752 6419   0.075281
+2752 6423   0.102497
+2752 6425   1.000000
+2752 6427   0.022222
+2752 6429  -1.000000
+2753 4   0.200000
+2753 6420   0.075281
+2753 6424   0.102497
+2753 6426   1.000000
+2753 6428   0.022222
+2753 6430  -1.000000
+2754 4   0.031010
+2754 6431   1.000000
+2754 6433   0.039363
+2754 6437  -0.013107
+2754 6441   0.004754
+2754 6443  -1.000000
+2755 4   0.031010
+2755 6432   1.000000
+2755 6434   0.039363
+2755 6438  -0.013107
+2755 6442   0.004754
+2755 6444  -1.000000
+2756 4   0.128990
+2756 6433   0.078885
+2756 6435   1.000000
+2756 6437   0.058415
+2756 6441  -0.008310
+2756 6443  -1.000000
+2757 4   0.128990
+2757 6434   0.078885
+2757 6436   1.000000
+2757 6438   0.058415
+2757 6442  -0.008310
+2757 6444  -1.000000
+2758 4   0.200000
+2758 6433   0.075281
+2758 6437   0.102497
+2758 6439   1.000000
+2758 6441   0.022222
+2758 6443  -1.000000
+2759 4   0.200000
+2759 6434   0.075281
+2759 6438   0.102497
+2759 6440   1.000000
+2759 6442   0.022222
+2759 6444  -1.000000
+2760 4   0.031010
+2760 6445   1.000000
+2760 6447   0.039363
+2760 6451  -0.013107
+2760 6455   0.004754
+2760 6457  -1.000000
+2761 4   0.031010
+2761 6446   1.000000
+2761 6448   0.039363
+2761 6452  -0.013107
+2761 6456   0.004754
+2761 6458  -1.000000
+2762 4   0.128990
+2762 6447   0.078885
+2762 6449   1.000000
+2762 6451   0.058415
+2762 6455  -0.008310
+2762 6457  -1.000000
+2763 4   0.128990
+2763 6448   0.078885
+2763 6450   1.000000
+2763 6452   0.058415
+2763 6456  -0.008310
+2763 6458  -1.000000
+2764 4   0.200000
+2764 6447   0.075281
+2764 6451   0.102497
+2764 6453   1.000000
+2764 6455   0.022222
+2764 6457  -1.000000
+2765 4   0.200000
+2765 6448   0.075281
+2765 6452   0.102497
+2765 6454   1.000000
+2765 6456   0.022222
+2765 6458  -1.000000
+2766 4   0.031010
+2766 6459   1.000000
+2766 6461   0.039363
+2766 6465  -0.013107
+2766 6469   0.004754
+2766 6471  -1.000000
+2767 4   0.031010
+2767 6460   1.000000
+2767 6462   0.039363
+2767 6466  -0.013107
+2767 6470   0.004754
+2767 6472  -1.000000
+2768 4   0.128990
+2768 6461   0.078885
+2768 6463   1.000000
+2768 6465   0.058415
+2768 6469  -0.008310
+2768 6471  -1.000000
+2769 4   0.128990
+2769 6462   0.078885
+2769 6464   1.000000
+2769 6466   0.058415
+2769 6470  -0.008310
+2769 6472  -1.000000
+2770 4   0.200000
+2770 6461   0.075281
+2770 6465   0.102497
+2770 6467   1.000000
+2770 6469   0.022222
+2770 6471  -1.000000
+2771 4   0.200000
+2771 6462   0.075281
+2771 6466   0.102497
+2771 6468   1.000000
+2771 6470   0.022222
+2771 6472  -1.000000
+2772 4   0.031010
+2772 6473   1.000000
+2772 6475   0.039363
+2772 6479  -0.013107
+2772 6483   0.004754
+2772 6485  -1.000000
+2773 4   0.031010
+2773 6474   1.000000
+2773 6476   0.039363
+2773 6480  -0.013107
+2773 6484   0.004754
+2773 6486  -1.000000
+2774 4   0.128990
+2774 6475   0.078885
+2774 6477   1.000000
+2774 6479   0.058415
+2774 6483  -0.008310
+2774 6485  -1.000000
+2775 4   0.128990
+2775 6476   0.078885
+2775 6478   1.000000
+2775 6480   0.058415
+2775 6484  -0.008310
+2775 6486  -1.000000
+2776 4   0.200000
+2776 6475   0.075281
+2776 6479   0.102497
+2776 6481   1.000000
+2776 6483   0.022222
+2776 6485  -1.000000
+2777 4   0.200000
+2777 6476   0.075281
+2777 6480   0.102497
+2777 6482   1.000000
+2777 6484   0.022222
+2777 6486  -1.000000
+2778 4   0.031010
+2778 6487   1.000000
+2778 6489   0.039363
+2778 6493  -0.013107
+2778 6497   0.004754
+2778 6499  -1.000000
+2779 4   0.031010
+2779 6488   1.000000
+2779 6490   0.039363
+2779 6494  -0.013107
+2779 6498   0.004754
+2779 6500  -1.000000
+2780 4   0.128990
+2780 6489   0.078885
+2780 6491   1.000000
+2780 6493   0.058415
+2780 6497  -0.008310
+2780 6499  -1.000000
+2781 4   0.128990
+2781 6490   0.078885
+2781 6492   1.000000
+2781 6494   0.058415
+2781 6498  -0.008310
+2781 6500  -1.000000
+2782 4   0.200000
+2782 6489   0.075281
+2782 6493   0.102497
+2782 6495   1.000000
+2782 6497   0.022222
+2782 6499  -1.000000
+2783 4   0.200000
+2783 6490   0.075281
+2783 6494   0.102497
+2783 6496   1.000000
+2783 6498   0.022222
+2783 6500  -1.000000
+2784 4   0.031010
+2784 6501   1.000000
+2784 6503   0.039363
+2784 6507  -0.013107
+2784 6511   0.004754
+2784 6513  -1.000000
+2785 4   0.031010
+2785 6502   1.000000
+2785 6504   0.039363
+2785 6508  -0.013107
+2785 6512   0.004754
+2785 6514  -1.000000
+2786 4   0.128990
+2786 6503   0.078885
+2786 6505   1.000000
+2786 6507   0.058415
+2786 6511  -0.008310
+2786 6513  -1.000000
+2787 4   0.128990
+2787 6504   0.078885
+2787 6506   1.000000
+2787 6508   0.058415
+2787 6512  -0.008310
+2787 6514  -1.000000
+2788 4   0.200000
+2788 6503   0.075281
+2788 6507   0.102497
+2788 6509   1.000000
+2788 6511   0.022222
+2788 6513  -1.000000
+2789 4   0.200000
+2789 6504   0.075281
+2789 6508   0.102497
+2789 6510   1.000000
+2789 6512   0.022222
+2789 6514  -1.000000
+2790 4   0.031010
+2790 6515   1.000000
+2790 6517   0.039363
+2790 6521  -0.013107
+2790 6525   0.004754
+2790 6527  -1.000000
+2791 4   0.031010
+2791 6516   1.000000
+2791 6518   0.039363
+2791 6522  -0.013107
+2791 6526   0.004754
+2791 6528  -1.000000
+2792 4   0.128990
+2792 6517   0.078885
+2792 6519   1.000000
+2792 6521   0.058415
+2792 6525  -0.008310
+2792 6527  -1.000000
+2793 4   0.128990
+2793 6518   0.078885
+2793 6520   1.000000
+2793 6522   0.058415
+2793 6526  -0.008310
+2793 6528  -1.000000
+2794 4   0.200000
+2794 6517   0.075281
+2794 6521   0.102497
+2794 6523   1.000000
+2794 6525   0.022222
+2794 6527  -1.000000
+2795 4   0.200000
+2795 6518   0.075281
+2795 6522   0.102497
+2795 6524   1.000000
+2795 6526   0.022222
+2795 6528  -1.000000
+2796 4   0.031010
+2796 6529   1.000000
+2796 6531   0.039363
+2796 6535  -0.013107
+2796 6539   0.004754
+2796 6541  -1.000000
+2797 4   0.031010
+2797 6530   1.000000
+2797 6532   0.039363
+2797 6536  -0.013107
+2797 6540   0.004754
+2797 6542  -1.000000
+2798 4   0.128990
+2798 6531   0.078885
+2798 6533   1.000000
+2798 6535   0.058415
+2798 6539  -0.008310
+2798 6541  -1.000000
+2799 4   0.128990
+2799 6532   0.078885
+2799 6534   1.000000
+2799 6536   0.058415
+2799 6540  -0.008310
+2799 6542  -1.000000
+2800 4   0.200000
+2800 6531   0.075281
+2800 6535   0.102497
+2800 6537   1.000000
+2800 6539   0.022222
+2800 6541  -1.000000
+2801 4   0.200000
+2801 6532   0.075281
+2801 6536   0.102497
+2801 6538   1.000000
+2801 6540   0.022222
+2801 6542  -1.000000
+2802 4   0.031010
+2802 6543   1.000000
+2802 6545   0.039363
+2802 6549  -0.013107
+2802 6553   0.004754
+2802 6555  -1.000000
+2803 4   0.031010
+2803 6544   1.000000
+2803 6546   0.039363
+2803 6550  -0.013107
+2803 6554   0.004754
+2803 6556  -1.000000
+2804 4   0.128990
+2804 6545   0.078885
+2804 6547   1.000000
+2804 6549   0.058415
+2804 6553  -0.008310
+2804 6555  -1.000000
+2805 4   0.128990
+2805 6546   0.078885
+2805 6548   1.000000
+2805 6550   0.058415
+2805 6554  -0.008310
+2805 6556  -1.000000
+2806 4   0.200000
+2806 6545   0.075281
+2806 6549   0.102497
+2806 6551   1.000000
+2806 6553   0.022222
+2806 6555  -1.000000
+2807 4   0.200000
+2807 6546   0.075281
+2807 6550   0.102497
+2807 6552   1.000000
+2807 6554   0.022222
+2807 6556  -1.000000
+2808 4   0.031010
+2808 6557   1.000000
+2808 6559   0.039363
+2808 6563  -0.013107
+2808 6567   0.004754
+2808 6569  -1.000000
+2809 4   0.031010
+2809 6558   1.000000
+2809 6560   0.039363
+2809 6564  -0.013107
+2809 6568   0.004754
+2809 6570  -1.000000
+2810 4   0.128990
+2810 6559   0.078885
+2810 6561   1.000000
+2810 6563   0.058415
+2810 6567  -0.008310
+2810 6569  -1.000000
+2811 4   0.128990
+2811 6560   0.078885
+2811 6562   1.000000
+2811 6564   0.058415
+2811 6568  -0.008310
+2811 6570  -1.000000
+2812 4   0.200000
+2812 6559   0.075281
+2812 6563   0.102497
+2812 6565   1.000000
+2812 6567   0.022222
+2812 6569  -1.000000
+2813 4   0.200000
+2813 6560   0.075281
+2813 6564   0.102497
+2813 6566   1.000000
+2813 6568   0.022222
+2813 6570  -1.000000
+2814 4   0.031010
+2814 6571   1.000000
+2814 6573   0.039363
+2814 6577  -0.013107
+2814 6581   0.004754
+2814 6583  -1.000000
+2815 4   0.031010
+2815 6572   1.000000
+2815 6574   0.039363
+2815 6578  -0.013107
+2815 6582   0.004754
+2815 6584  -1.000000
+2816 4   0.128990
+2816 6573   0.078885
+2816 6575   1.000000
+2816 6577   0.058415
+2816 6581  -0.008310
+2816 6583  -1.000000
+2817 4   0.128990
+2817 6574   0.078885
+2817 6576   1.000000
+2817 6578   0.058415
+2817 6582  -0.008310
+2817 6584  -1.000000
+2818 4   0.200000
+2818 6573   0.075281
+2818 6577   0.102497
+2818 6579   1.000000
+2818 6581   0.022222
+2818 6583  -1.000000
+2819 4   0.200000
+2819 6574   0.075281
+2819 6578   0.102497
+2819 6580   1.000000
+2819 6582   0.022222
+2819 6584  -1.000000
+2820 4   0.031010
+2820 6585   1.000000
+2820 6587   0.039363
+2820 6591  -0.013107
+2820 6595   0.004754
+2820 6597  -1.000000
+2821 4   0.031010
+2821 6586   1.000000
+2821 6588   0.039363
+2821 6592  -0.013107
+2821 6596   0.004754
+2821 6598  -1.000000
+2822 4   0.128990
+2822 6587   0.078885
+2822 6589   1.000000
+2822 6591   0.058415
+2822 6595  -0.008310
+2822 6597  -1.000000
+2823 4   0.128990
+2823 6588   0.078885
+2823 6590   1.000000
+2823 6592   0.058415
+2823 6596  -0.008310
+2823 6598  -1.000000
+2824 4   0.200000
+2824 6587   0.075281
+2824 6591   0.102497
+2824 6593   1.000000
+2824 6595   0.022222
+2824 6597  -1.000000
+2825 4   0.200000
+2825 6588   0.075281
+2825 6592   0.102497
+2825 6594   1.000000
+2825 6596   0.022222
+2825 6598  -1.000000
+2826 4   0.031010
+2826 6599   1.000000
+2826 6601   0.039363
+2826 6605  -0.013107
+2826 6609   0.004754
+2826 6611  -1.000000
+2827 4   0.031010
+2827 6600   1.000000
+2827 6602   0.039363
+2827 6606  -0.013107
+2827 6610   0.004754
+2827 6612  -1.000000
+2828 4   0.128990
+2828 6601   0.078885
+2828 6603   1.000000
+2828 6605   0.058415
+2828 6609  -0.008310
+2828 6611  -1.000000
+2829 4   0.128990
+2829 6602   0.078885
+2829 6604   1.000000
+2829 6606   0.058415
+2829 6610  -0.008310
+2829 6612  -1.000000
+2830 4   0.200000
+2830 6601   0.075281
+2830 6605   0.102497
+2830 6607   1.000000
+2830 6609   0.022222
+2830 6611  -1.000000
+2831 4   0.200000
+2831 6602   0.075281
+2831 6606   0.102497
+2831 6608   1.000000
+2831 6610   0.022222
+2831 6612  -1.000000
+2832 4   0.031010
+2832 6613   1.000000
+2832 6615   0.039363
+2832 6619  -0.013107
+2832 6623   0.004754
+2832 6625  -1.000000
+2833 4   0.031010
+2833 6614   1.000000
+2833 6616   0.039363
+2833 6620  -0.013107
+2833 6624   0.004754
+2833 6626  -1.000000
+2834 4   0.128990
+2834 6615   0.078885
+2834 6617   1.000000
+2834 6619   0.058415
+2834 6623  -0.008310
+2834 6625  -1.000000
+2835 4   0.128990
+2835 6616   0.078885
+2835 6618   1.000000
+2835 6620   0.058415
+2835 6624  -0.008310
+2835 6626  -1.000000
+2836 4   0.200000
+2836 6615   0.075281
+2836 6619   0.102497
+2836 6621   1.000000
+2836 6623   0.022222
+2836 6625  -1.000000
+2837 4   0.200000
+2837 6616   0.075281
+2837 6620   0.102497
+2837 6622   1.000000
+2837 6624   0.022222
+2837 6626  -1.000000
+2838 4   0.031010
+2838 6627   1.000000
+2838 6629   0.039363
+2838 6633  -0.013107
+2838 6637   0.004754
+2838 6639  -1.000000
+2839 4   0.031010
+2839 6628   1.000000
+2839 6630   0.039363
+2839 6634  -0.013107
+2839 6638   0.004754
+2839 6640  -1.000000
+2840 4   0.128990
+2840 6629   0.078885
+2840 6631   1.000000
+2840 6633   0.058415
+2840 6637  -0.008310
+2840 6639  -1.000000
+2841 4   0.128990
+2841 6630   0.078885
+2841 6632   1.000000
+2841 6634   0.058415
+2841 6638  -0.008310
+2841 6640  -1.000000
+2842 4   0.200000
+2842 6629   0.075281
+2842 6633   0.102497
+2842 6635   1.000000
+2842 6637   0.022222
+2842 6639  -1.000000
+2843 4   0.200000
+2843 6630   0.075281
+2843 6634   0.102497
+2843 6636   1.000000
+2843 6638   0.022222
+2843 6640  -1.000000
+2844 4   0.031010
+2844 6641   1.000000
+2844 6643   0.039363
+2844 6647  -0.013107
+2844 6651   0.004754
+2844 6653  -1.000000
+2845 4   0.031010
+2845 6642   1.000000
+2845 6644   0.039363
+2845 6648  -0.013107
+2845 6652   0.004754
+2845 6654  -1.000000
+2846 4   0.128990
+2846 6643   0.078885
+2846 6645   1.000000
+2846 6647   0.058415
+2846 6651  -0.008310
+2846 6653  -1.000000
+2847 4   0.128990
+2847 6644   0.078885
+2847 6646   1.000000
+2847 6648   0.058415
+2847 6652  -0.008310
+2847 6654  -1.000000
+2848 4   0.200000
+2848 6643   0.075281
+2848 6647   0.102497
+2848 6649   1.000000
+2848 6651   0.022222
+2848 6653  -1.000000
+2849 4   0.200000
+2849 6644   0.075281
+2849 6648   0.102497
+2849 6650   1.000000
+2849 6652   0.022222
+2849 6654  -1.000000
+2850 4   0.031010
+2850 6655   1.000000
+2850 6657   0.039363
+2850 6661  -0.013107
+2850 6665   0.004754
+2850 6667  -1.000000
+2851 4   0.031010
+2851 6656   1.000000
+2851 6658   0.039363
+2851 6662  -0.013107
+2851 6666   0.004754
+2851 6668  -1.000000
+2852 4   0.128990
+2852 6657   0.078885
+2852 6659   1.000000
+2852 6661   0.058415
+2852 6665  -0.008310
+2852 6667  -1.000000
+2853 4   0.128990
+2853 6658   0.078885
+2853 6660   1.000000
+2853 6662   0.058415
+2853 6666  -0.008310
+2853 6668  -1.000000
+2854 4   0.200000
+2854 6657   0.075281
+2854 6661   0.102497
+2854 6663   1.000000
+2854 6665   0.022222
+2854 6667  -1.000000
+2855 4   0.200000
+2855 6658   0.075281
+2855 6662   0.102497
+2855 6664   1.000000
+2855 6666   0.022222
+2855 6668  -1.000000
+2856 4   0.031010
+2856 6669   1.000000
+2856 6671   0.039363
+2856 6675  -0.013107
+2856 6679   0.004754
+2856 6681  -1.000000
+2857 4   0.031010
+2857 6670   1.000000
+2857 6672   0.039363
+2857 6676  -0.013107
+2857 6680   0.004754
+2857 6682  -1.000000
+2858 4   0.128990
+2858 6671   0.078885
+2858 6673   1.000000
+2858 6675   0.058415
+2858 6679  -0.008310
+2858 6681  -1.000000
+2859 4   0.128990
+2859 6672   0.078885
+2859 6674   1.000000
+2859 6676   0.058415
+2859 6680  -0.008310
+2859 6682  -1.000000
+2860 4   0.200000
+2860 6671   0.075281
+2860 6675   0.102497
+2860 6677   1.000000
+2860 6679   0.022222
+2860 6681  -1.000000
+2861 4   0.200000
+2861 6672   0.075281
+2861 6676   0.102497
+2861 6678   1.000000
+2861 6680   0.022222
+2861 6682  -1.000000
+2862 4   0.031010
+2862 6683   1.000000
+2862 6685   0.039363
+2862 6689  -0.013107
+2862 6693   0.004754
+2862 6695  -1.000000
+2863 4   0.031010
+2863 6684   1.000000
+2863 6686   0.039363
+2863 6690  -0.013107
+2863 6694   0.004754
+2863 6696  -1.000000
+2864 4   0.128990
+2864 6685   0.078885
+2864 6687   1.000000
+2864 6689   0.058415
+2864 6693  -0.008310
+2864 6695  -1.000000
+2865 4   0.128990
+2865 6686   0.078885
+2865 6688   1.000000
+2865 6690   0.058415
+2865 6694  -0.008310
+2865 6696  -1.000000
+2866 4   0.200000
+2866 6685   0.075281
+2866 6689   0.102497
+2866 6691   1.000000
+2866 6693   0.022222
+2866 6695  -1.000000
+2867 4   0.200000
+2867 6686   0.075281
+2867 6690   0.102497
+2867 6692   1.000000
+2867 6694   0.022222
+2867 6696  -1.000000
+2868 4   0.031010
+2868 6697   1.000000
+2868 6699   0.039363
+2868 6703  -0.013107
+2868 6707   0.004754
+2868 6709  -1.000000
+2869 4   0.031010
+2869 6698   1.000000
+2869 6700   0.039363
+2869 6704  -0.013107
+2869 6708   0.004754
+2869 6710  -1.000000
+2870 4   0.128990
+2870 6699   0.078885
+2870 6701   1.000000
+2870 6703   0.058415
+2870 6707  -0.008310
+2870 6709  -1.000000
+2871 4   0.128990
+2871 6700   0.078885
+2871 6702   1.000000
+2871 6704   0.058415
+2871 6708  -0.008310
+2871 6710  -1.000000
+2872 4   0.200000
+2872 6699   0.075281
+2872 6703   0.102497
+2872 6705   1.000000
+2872 6707   0.022222
+2872 6709  -1.000000
+2873 4   0.200000
+2873 6700   0.075281
+2873 6704   0.102497
+2873 6706   1.000000
+2873 6708   0.022222
+2873 6710  -1.000000
+2874 4   0.031010
+2874 6711   1.000000
+2874 6713   0.039363
+2874 6717  -0.013107
+2874 6721   0.004754
+2874 6723  -1.000000
+2875 4   0.031010
+2875 6712   1.000000
+2875 6714   0.039363
+2875 6718  -0.013107
+2875 6722   0.004754
+2875 6724  -1.000000
+2876 4   0.128990
+2876 6713   0.078885
+2876 6715   1.000000
+2876 6717   0.058415
+2876 6721  -0.008310
+2876 6723  -1.000000
+2877 4   0.128990
+2877 6714   0.078885
+2877 6716   1.000000
+2877 6718   0.058415
+2877 6722  -0.008310
+2877 6724  -1.000000
+2878 4   0.200000
+2878 6713   0.075281
+2878 6717   0.102497
+2878 6719   1.000000
+2878 6721   0.022222
+2878 6723  -1.000000
+2879 4   0.200000
+2879 6714   0.075281
+2879 6718   0.102497
+2879 6720   1.000000
+2879 6722   0.022222
+2879 6724  -1.000000
+2880 4   0.031010
+2880 6725   1.000000
+2880 6727   0.039363
+2880 6731  -0.013107
+2880 6735   0.004754
+2880 6737  -1.000000
+2881 4   0.031010
+2881 6726   1.000000
+2881 6728   0.039363
+2881 6732  -0.013107
+2881 6736   0.004754
+2881 6738  -1.000000
+2882 4   0.128990
+2882 6727   0.078885
+2882 6729   1.000000
+2882 6731   0.058415
+2882 6735  -0.008310
+2882 6737  -1.000000
+2883 4   0.128990
+2883 6728   0.078885
+2883 6730   1.000000
+2883 6732   0.058415
+2883 6736  -0.008310
+2883 6738  -1.000000
+2884 4   0.200000
+2884 6727   0.075281
+2884 6731   0.102497
+2884 6733   1.000000
+2884 6735   0.022222
+2884 6737  -1.000000
+2885 4   0.200000
+2885 6728   0.075281
+2885 6732   0.102497
+2885 6734   1.000000
+2885 6736   0.022222
+2885 6738  -1.000000
+2886 4   0.031010
+2886 6739   1.000000
+2886 6741   0.039363
+2886 6745  -0.013107
+2886 6749   0.004754
+2886 6751  -1.000000
+2887 4   0.031010
+2887 6740   1.000000
+2887 6742   0.039363
+2887 6746  -0.013107
+2887 6750   0.004754
+2887 6752  -1.000000
+2888 4   0.128990
+2888 6741   0.078885
+2888 6743   1.000000
+2888 6745   0.058415
+2888 6749  -0.008310
+2888 6751  -1.000000
+2889 4   0.128990
+2889 6742   0.078885
+2889 6744   1.000000
+2889 6746   0.058415
+2889 6750  -0.008310
+2889 6752  -1.000000
+2890 4   0.200000
+2890 6741   0.075281
+2890 6745   0.102497
+2890 6747   1.000000
+2890 6749   0.022222
+2890 6751  -1.000000
+2891 4   0.200000
+2891 6742   0.075281
+2891 6746   0.102497
+2891 6748   1.000000
+2891 6750   0.022222
+2891 6752  -1.000000
+2892 4   0.031010
+2892 6753   1.000000
+2892 6755   0.039363
+2892 6759  -0.013107
+2892 6763   0.004754
+2892 6765  -1.000000
+2893 4   0.031010
+2893 6754   1.000000
+2893 6756   0.039363
+2893 6760  -0.013107
+2893 6764   0.004754
+2893 6766  -1.000000
+2894 4   0.128990
+2894 6755   0.078885
+2894 6757   1.000000
+2894 6759   0.058415
+2894 6763  -0.008310
+2894 6765  -1.000000
+2895 4   0.128990
+2895 6756   0.078885
+2895 6758   1.000000
+2895 6760   0.058415
+2895 6764  -0.008310
+2895 6766  -1.000000
+2896 4   0.200000
+2896 6755   0.075281
+2896 6759   0.102497
+2896 6761   1.000000
+2896 6763   0.022222
+2896 6765  -1.000000
+2897 4   0.200000
+2897 6756   0.075281
+2897 6760   0.102497
+2897 6762   1.000000
+2897 6764   0.022222
+2897 6766  -1.000000
+2898 4   0.031010
+2898 6767   1.000000
+2898 6769   0.039363
+2898 6773  -0.013107
+2898 6777   0.004754
+2898 6779  -1.000000
+2899 4   0.031010
+2899 6768   1.000000
+2899 6770   0.039363
+2899 6774  -0.013107
+2899 6778   0.004754
+2899 6780  -1.000000
+2900 4   0.128990
+2900 6769   0.078885
+2900 6771   1.000000
+2900 6773   0.058415
+2900 6777  -0.008310
+2900 6779  -1.000000
+2901 4   0.128990
+2901 6770   0.078885
+2901 6772   1.000000
+2901 6774   0.058415
+2901 6778  -0.008310
+2901 6780  -1.000000
+2902 4   0.200000
+2902 6769   0.075281
+2902 6773   0.102497
+2902 6775   1.000000
+2902 6777   0.022222
+2902 6779  -1.000000
+2903 4   0.200000
+2903 6770   0.075281
+2903 6774   0.102497
+2903 6776   1.000000
+2903 6778   0.022222
+2903 6780  -1.000000
+2904 4   0.031010
+2904 6781   1.000000
+2904 6783   0.039363
+2904 6787  -0.013107
+2904 6791   0.004754
+2904 6793  -1.000000
+2905 4   0.031010
+2905 6782   1.000000
+2905 6784   0.039363
+2905 6788  -0.013107
+2905 6792   0.004754
+2905 6794  -1.000000
+2906 4   0.128990
+2906 6783   0.078885
+2906 6785   1.000000
+2906 6787   0.058415
+2906 6791  -0.008310
+2906 6793  -1.000000
+2907 4   0.128990
+2907 6784   0.078885
+2907 6786   1.000000
+2907 6788   0.058415
+2907 6792  -0.008310
+2907 6794  -1.000000
+2908 4   0.200000
+2908 6783   0.075281
+2908 6787   0.102497
+2908 6789   1.000000
+2908 6791   0.022222
+2908 6793  -1.000000
+2909 4   0.200000
+2909 6784   0.075281
+2909 6788   0.102497
+2909 6790   1.000000
+2909 6792   0.022222
+2909 6794  -1.000000
+2910 4   0.031010
+2910 6795   1.000000
+2910 6797   0.039363
+2910 6801  -0.013107
+2910 6805   0.004754
+2910 6807  -1.000000
+2911 4   0.031010
+2911 6796   1.000000
+2911 6798   0.039363
+2911 6802  -0.013107
+2911 6806   0.004754
+2911 6808  -1.000000
+2912 4   0.128990
+2912 6797   0.078885
+2912 6799   1.000000
+2912 6801   0.058415
+2912 6805  -0.008310
+2912 6807  -1.000000
+2913 4   0.128990
+2913 6798   0.078885
+2913 6800   1.000000
+2913 6802   0.058415
+2913 6806  -0.008310
+2913 6808  -1.000000
+2914 4   0.200000
+2914 6797   0.075281
+2914 6801   0.102497
+2914 6803   1.000000
+2914 6805   0.022222
+2914 6807  -1.000000
+2915 4   0.200000
+2915 6798   0.075281
+2915 6802   0.102497
+2915 6804   1.000000
+2915 6806   0.022222
+2915 6808  -1.000000
+2916 4   0.031010
+2916 6809   1.000000
+2916 6811   0.039363
+2916 6815  -0.013107
+2916 6819   0.004754
+2916 6821  -1.000000
+2917 4   0.031010
+2917 6810   1.000000
+2917 6812   0.039363
+2917 6816  -0.013107
+2917 6820   0.004754
+2917 6822  -1.000000
+2918 4   0.128990
+2918 6811   0.078885
+2918 6813   1.000000
+2918 6815   0.058415
+2918 6819  -0.008310
+2918 6821  -1.000000
+2919 4   0.128990
+2919 6812   0.078885
+2919 6814   1.000000
+2919 6816   0.058415
+2919 6820  -0.008310
+2919 6822  -1.000000
+2920 4   0.200000
+2920 6811   0.075281
+2920 6815   0.102497
+2920 6817   1.000000
+2920 6819   0.022222
+2920 6821  -1.000000
+2921 4   0.200000
+2921 6812   0.075281
+2921 6816   0.102497
+2921 6818   1.000000
+2921 6820   0.022222
+2921 6822  -1.000000
+2922 4   0.031010
+2922 6823   1.000000
+2922 6825   0.039363
+2922 6829  -0.013107
+2922 6833   0.004754
+2922 6835  -1.000000
+2923 4   0.031010
+2923 6824   1.000000
+2923 6826   0.039363
+2923 6830  -0.013107
+2923 6834   0.004754
+2923 6836  -1.000000
+2924 4   0.128990
+2924 6825   0.078885
+2924 6827   1.000000
+2924 6829   0.058415
+2924 6833  -0.008310
+2924 6835  -1.000000
+2925 4   0.128990
+2925 6826   0.078885
+2925 6828   1.000000
+2925 6830   0.058415
+2925 6834  -0.008310
+2925 6836  -1.000000
+2926 4   0.200000
+2926 6825   0.075281
+2926 6829   0.102497
+2926 6831   1.000000
+2926 6833   0.022222
+2926 6835  -1.000000
+2927 4   0.200000
+2927 6826   0.075281
+2927 6830   0.102497
+2927 6832   1.000000
+2927 6834   0.022222
+2927 6836  -1.000000
+2928 4   0.031010
+2928 6837   1.000000
+2928 6839   0.039363
+2928 6843  -0.013107
+2928 6847   0.004754
+2928 6849  -1.000000
+2929 4   0.031010
+2929 6838   1.000000
+2929 6840   0.039363
+2929 6844  -0.013107
+2929 6848   0.004754
+2929 6850  -1.000000
+2930 4   0.128990
+2930 6839   0.078885
+2930 6841   1.000000
+2930 6843   0.058415
+2930 6847  -0.008310
+2930 6849  -1.000000
+2931 4   0.128990
+2931 6840   0.078885
+2931 6842   1.000000
+2931 6844   0.058415
+2931 6848  -0.008310
+2931 6850  -1.000000
+2932 4   0.200000
+2932 6839   0.075281
+2932 6843   0.102497
+2932 6845   1.000000
+2932 6847   0.022222
+2932 6849  -1.000000
+2933 4   0.200000
+2933 6840   0.075281
+2933 6844   0.102497
+2933 6846   1.000000
+2933 6848   0.022222
+2933 6850  -1.000000
+2934 4   0.031010
+2934 6851   1.000000
+2934 6853   0.039363
+2934 6857  -0.013107
+2934 6861   0.004754
+2934 6863  -1.000000
+2935 4   0.031010
+2935 6852   1.000000
+2935 6854   0.039363
+2935 6858  -0.013107
+2935 6862   0.004754
+2935 6864  -1.000000
+2936 4   0.128990
+2936 6853   0.078885
+2936 6855   1.000000
+2936 6857   0.058415
+2936 6861  -0.008310
+2936 6863  -1.000000
+2937 4   0.128990
+2937 6854   0.078885
+2937 6856   1.000000
+2937 6858   0.058415
+2937 6862  -0.008310
+2937 6864  -1.000000
+2938 4   0.200000
+2938 6853   0.075281
+2938 6857   0.102497
+2938 6859   1.000000
+2938 6861   0.022222
+2938 6863  -1.000000
+2939 4   0.200000
+2939 6854   0.075281
+2939 6858   0.102497
+2939 6860   1.000000
+2939 6862   0.022222
+2939 6864  -1.000000
+2940 4   0.031010
+2940 6865   1.000000
+2940 6867   0.039363
+2940 6871  -0.013107
+2940 6875   0.004754
+2940 6877  -1.000000
+2941 4   0.031010
+2941 6866   1.000000
+2941 6868   0.039363
+2941 6872  -0.013107
+2941 6876   0.004754
+2941 6878  -1.000000
+2942 4   0.128990
+2942 6867   0.078885
+2942 6869   1.000000
+2942 6871   0.058415
+2942 6875  -0.008310
+2942 6877  -1.000000
+2943 4   0.128990
+2943 6868   0.078885
+2943 6870   1.000000
+2943 6872   0.058415
+2943 6876  -0.008310
+2943 6878  -1.000000
+2944 4   0.200000
+2944 6867   0.075281
+2944 6871   0.102497
+2944 6873   1.000000
+2944 6875   0.022222
+2944 6877  -1.000000
+2945 4   0.200000
+2945 6868   0.075281
+2945 6872   0.102497
+2945 6874   1.000000
+2945 6876   0.022222
+2945 6878  -1.000000
+2946 4   0.031010
+2946 6879   1.000000
+2946 6881   0.039363
+2946 6885  -0.013107
+2946 6889   0.004754
+2946 6891  -1.000000
+2947 4   0.031010
+2947 6880   1.000000
+2947 6882   0.039363
+2947 6886  -0.013107
+2947 6890   0.004754
+2947 6892  -1.000000
+2948 4   0.128990
+2948 6881   0.078885
+2948 6883   1.000000
+2948 6885   0.058415
+2948 6889  -0.008310
+2948 6891  -1.000000
+2949 4   0.128990
+2949 6882   0.078885
+2949 6884   1.000000
+2949 6886   0.058415
+2949 6890  -0.008310
+2949 6892  -1.000000
+2950 4   0.200000
+2950 6881   0.075281
+2950 6885   0.102497
+2950 6887   1.000000
+2950 6889   0.022222
+2950 6891  -1.000000
+2951 4   0.200000
+2951 6882   0.075281
+2951 6886   0.102497
+2951 6888   1.000000
+2951 6890   0.022222
+2951 6892  -1.000000
+2952 4   0.031010
+2952 6893   1.000000
+2952 6895   0.039363
+2952 6899  -0.013107
+2952 6903   0.004754
+2952 6905  -1.000000
+2953 4   0.031010
+2953 6894   1.000000
+2953 6896   0.039363
+2953 6900  -0.013107
+2953 6904   0.004754
+2953 6906  -1.000000
+2954 4   0.128990
+2954 6895   0.078885
+2954 6897   1.000000
+2954 6899   0.058415
+2954 6903  -0.008310
+2954 6905  -1.000000
+2955 4   0.128990
+2955 6896   0.078885
+2955 6898   1.000000
+2955 6900   0.058415
+2955 6904  -0.008310
+2955 6906  -1.000000
+2956 4   0.200000
+2956 6895   0.075281
+2956 6899   0.102497
+2956 6901   1.000000
+2956 6903   0.022222
+2956 6905  -1.000000
+2957 4   0.200000
+2957 6896   0.075281
+2957 6900   0.102497
+2957 6902   1.000000
+2957 6904   0.022222
+2957 6906  -1.000000
+2958 4   0.031010
+2958 6907   1.000000
+2958 6909   0.039363
+2958 6913  -0.013107
+2958 6917   0.004754
+2958 6919  -1.000000
+2959 4   0.031010
+2959 6908   1.000000
+2959 6910   0.039363
+2959 6914  -0.013107
+2959 6918   0.004754
+2959 6920  -1.000000
+2960 4   0.128990
+2960 6909   0.078885
+2960 6911   1.000000
+2960 6913   0.058415
+2960 6917  -0.008310
+2960 6919  -1.000000
+2961 4   0.128990
+2961 6910   0.078885
+2961 6912   1.000000
+2961 6914   0.058415
+2961 6918  -0.008310
+2961 6920  -1.000000
+2962 4   0.200000
+2962 6909   0.075281
+2962 6913   0.102497
+2962 6915   1.000000
+2962 6917   0.022222
+2962 6919  -1.000000
+2963 4   0.200000
+2963 6910   0.075281
+2963 6914   0.102497
+2963 6916   1.000000
+2963 6918   0.022222
+2963 6920  -1.000000
+2964 4   0.031010
+2964 6921   1.000000
+2964 6923   0.039363
+2964 6927  -0.013107
+2964 6931   0.004754
+2964 6933  -1.000000
+2965 4   0.031010
+2965 6922   1.000000
+2965 6924   0.039363
+2965 6928  -0.013107
+2965 6932   0.004754
+2965 6934  -1.000000
+2966 4   0.128990
+2966 6923   0.078885
+2966 6925   1.000000
+2966 6927   0.058415
+2966 6931  -0.008310
+2966 6933  -1.000000
+2967 4   0.128990
+2967 6924   0.078885
+2967 6926   1.000000
+2967 6928   0.058415
+2967 6932  -0.008310
+2967 6934  -1.000000
+2968 4   0.200000
+2968 6923   0.075281
+2968 6927   0.102497
+2968 6929   1.000000
+2968 6931   0.022222
+2968 6933  -1.000000
+2969 4   0.200000
+2969 6924   0.075281
+2969 6928   0.102497
+2969 6930   1.000000
+2969 6932   0.022222
+2969 6934  -1.000000
+2970 4   0.031010
+2970 6935   1.000000
+2970 6937   0.039363
+2970 6941  -0.013107
+2970 6945   0.004754
+2970 6947  -1.000000
+2971 4   0.031010
+2971 6936   1.000000
+2971 6938   0.039363
+2971 6942  -0.013107
+2971 6946   0.004754
+2971 6948  -1.000000
+2972 4   0.128990
+2972 6937   0.078885
+2972 6939   1.000000
+2972 6941   0.058415
+2972 6945  -0.008310
+2972 6947  -1.000000
+2973 4   0.128990
+2973 6938   0.078885
+2973 6940   1.000000
+2973 6942   0.058415
+2973 6946  -0.008310
+2973 6948  -1.000000
+2974 4   0.200000
+2974 6937   0.075281
+2974 6941   0.102497
+2974 6943   1.000000
+2974 6945   0.022222
+2974 6947  -1.000000
+2975 4   0.200000
+2975 6938   0.075281
+2975 6942   0.102497
+2975 6944   1.000000
+2975 6946   0.022222
+2975 6948  -1.000000
+2976 4   0.031010
+2976 6949   1.000000
+2976 6951   0.039363
+2976 6955  -0.013107
+2976 6959   0.004754
+2976 6961  -1.000000
+2977 4   0.031010
+2977 6950   1.000000
+2977 6952   0.039363
+2977 6956  -0.013107
+2977 6960   0.004754
+2977 6962  -1.000000
+2978 4   0.128990
+2978 6951   0.078885
+2978 6953   1.000000
+2978 6955   0.058415
+2978 6959  -0.008310
+2978 6961  -1.000000
+2979 4   0.128990
+2979 6952   0.078885
+2979 6954   1.000000
+2979 6956   0.058415
+2979 6960  -0.008310
+2979 6962  -1.000000
+2980 4   0.200000
+2980 6951   0.075281
+2980 6955   0.102497
+2980 6957   1.000000
+2980 6959   0.022222
+2980 6961  -1.000000
+2981 4   0.200000
+2981 6952   0.075281
+2981 6956   0.102497
+2981 6958   1.000000
+2981 6960   0.022222
+2981 6962  -1.000000
+2982 4   0.031010
+2982 6963   1.000000
+2982 6965   0.039363
+2982 6969  -0.013107
+2982 6973   0.004754
+2982 6975  -1.000000
+2983 4   0.031010
+2983 6964   1.000000
+2983 6966   0.039363
+2983 6970  -0.013107
+2983 6974   0.004754
+2983 6976  -1.000000
+2984 4   0.128990
+2984 6965   0.078885
+2984 6967   1.000000
+2984 6969   0.058415
+2984 6973  -0.008310
+2984 6975  -1.000000
+2985 4   0.128990
+2985 6966   0.078885
+2985 6968   1.000000
+2985 6970   0.058415
+2985 6974  -0.008310
+2985 6976  -1.000000
+2986 4   0.200000
+2986 6965   0.075281
+2986 6969   0.102497
+2986 6971   1.000000
+2986 6973   0.022222
+2986 6975  -1.000000
+2987 4   0.200000
+2987 6966   0.075281
+2987 6970   0.102497
+2987 6972   1.000000
+2987 6974   0.022222
+2987 6976  -1.000000
+2988 4   0.031010
+2988 6977   1.000000
+2988 6979   0.039363
+2988 6983  -0.013107
+2988 6987   0.004754
+2988 6989  -1.000000
+2989 4   0.031010
+2989 6978   1.000000
+2989 6980   0.039363
+2989 6984  -0.013107
+2989 6988   0.004754
+2989 6990  -1.000000
+2990 4   0.128990
+2990 6979   0.078885
+2990 6981   1.000000
+2990 6983   0.058415
+2990 6987  -0.008310
+2990 6989  -1.000000
+2991 4   0.128990
+2991 6980   0.078885
+2991 6982   1.000000
+2991 6984   0.058415
+2991 6988  -0.008310
+2991 6990  -1.000000
+2992 4   0.200000
+2992 6979   0.075281
+2992 6983   0.102497
+2992 6985   1.000000
+2992 6987   0.022222
+2992 6989  -1.000000
+2993 4   0.200000
+2993 6980   0.075281
+2993 6984   0.102497
+2993 6986   1.000000
+2993 6988   0.022222
+2993 6990  -1.000000
+2994 4   0.031010
+2994 6991   1.000000
+2994 6993   0.039363
+2994 6997  -0.013107
+2994 7001   0.004754
+2994 7003  -1.000000
+2995 4   0.031010
+2995 6992   1.000000
+2995 6994   0.039363
+2995 6998  -0.013107
+2995 7002   0.004754
+2995 7004  -1.000000
+2996 4   0.128990
+2996 6993   0.078885
+2996 6995   1.000000
+2996 6997   0.058415
+2996 7001  -0.008310
+2996 7003  -1.000000
+2997 4   0.128990
+2997 6994   0.078885
+2997 6996   1.000000
+2997 6998   0.058415
+2997 7002  -0.008310
+2997 7004  -1.000000
+2998 4   0.200000
+2998 6993   0.075281
+2998 6997   0.102497
+2998 6999   1.000000
+2998 7001   0.022222
+2998 7003  -1.000000
+2999 4   0.200000
+2999 6994   0.075281
+2999 6998   0.102497
+2999 7000   1.000000
+2999 7002   0.022222
+2999 7004  -1.000000
+3000 4   0.031010
+3000 7005   1.000000
+3000 7007   0.039363
+3000 7011  -0.013107
+3000 7015   0.004754
+3000 7017  -1.000000
+3001 4   0.031010
+3001 7006   1.000000
+3001 7008   0.039363
+3001 7012  -0.013107
+3001 7016   0.004754
+3001 7018  -1.000000
+3002 4   0.128990
+3002 7007   0.078885
+3002 7009   1.000000
+3002 7011   0.058415
+3002 7015  -0.008310
+3002 7017  -1.000000
+3003 4   0.128990
+3003 7008   0.078885
+3003 7010   1.000000
+3003 7012   0.058415
+3003 7016  -0.008310
+3003 7018  -1.000000
+3004 4   0.200000
+3004 7007   0.075281
+3004 7011   0.102497
+3004 7013   1.000000
+3004 7015   0.022222
+3004 7017  -1.000000
+3005 4   0.200000
+3005 7008   0.075281
+3005 7012   0.102497
+3005 7014   1.000000
+3005 7016   0.022222
+3005 7018  -1.000000
+3006 4   0.031010
+3006 7019   1.000000
+3006 7021   0.039363
+3006 7025  -0.013107
+3006 7029   0.004754
+3006 7031  -1.000000
+3007 4   0.031010
+3007 7020   1.000000
+3007 7022   0.039363
+3007 7026  -0.013107
+3007 7030   0.004754
+3007 7032  -1.000000
+3008 4   0.128990
+3008 7021   0.078885
+3008 7023   1.000000
+3008 7025   0.058415
+3008 7029  -0.008310
+3008 7031  -1.000000
+3009 4   0.128990
+3009 7022   0.078885
+3009 7024   1.000000
+3009 7026   0.058415
+3009 7030  -0.008310
+3009 7032  -1.000000
+3010 4   0.200000
+3010 7021   0.075281
+3010 7025   0.102497
+3010 7027   1.000000
+3010 7029   0.022222
+3010 7031  -1.000000
+3011 4   0.200000
+3011 7022   0.075281
+3011 7026   0.102497
+3011 7028   1.000000
+3011 7030   0.022222
+3011 7032  -1.000000
+3012 4   0.031010
+3012 7033   1.000000
+3012 7035   0.039363
+3012 7039  -0.013107
+3012 7043   0.004754
+3012 7045  -1.000000
+3013 4   0.031010
+3013 7034   1.000000
+3013 7036   0.039363
+3013 7040  -0.013107
+3013 7044   0.004754
+3013 7046  -1.000000
+3014 4   0.128990
+3014 7035   0.078885
+3014 7037   1.000000
+3014 7039   0.058415
+3014 7043  -0.008310
+3014 7045  -1.000000
+3015 4   0.128990
+3015 7036   0.078885
+3015 7038   1.000000
+3015 7040   0.058415
+3015 7044  -0.008310
+3015 7046  -1.000000
+3016 4   0.200000
+3016 7035   0.075281
+3016 7039   0.102497
+3016 7041   1.000000
+3016 7043   0.022222
+3016 7045  -1.000000
+3017 4   0.200000
+3017 7036   0.075281
+3017 7040   0.102497
+3017 7042   1.000000
+3017 7044   0.022222
+3017 7046  -1.000000
+3018 4   0.031010
+3018 7047   1.000000
+3018 7049   0.039363
+3018 7053  -0.013107
+3018 7057   0.004754
+3018 7059  -1.000000
+3019 4   0.031010
+3019 7048   1.000000
+3019 7050   0.039363
+3019 7054  -0.013107
+3019 7058   0.004754
+3019 7060  -1.000000
+3020 4   0.128990
+3020 7049   0.078885
+3020 7051   1.000000
+3020 7053   0.058415
+3020 7057  -0.008310
+3020 7059  -1.000000
+3021 4   0.128990
+3021 7050   0.078885
+3021 7052   1.000000
+3021 7054   0.058415
+3021 7058  -0.008310
+3021 7060  -1.000000
+3022 4   0.200000
+3022 7049   0.075281
+3022 7053   0.102497
+3022 7055   1.000000
+3022 7057   0.022222
+3022 7059  -1.000000
+3023 4   0.200000
+3023 7050   0.075281
+3023 7054   0.102497
+3023 7056   1.000000
+3023 7058   0.022222
+3023 7060  -1.000000
+3024 4   0.031010
+3024 7061   1.000000
+3024 7063   0.039363
+3024 7067  -0.013107
+3024 7071   0.004754
+3024 7073  -1.000000
+3025 4   0.031010
+3025 7062   1.000000
+3025 7064   0.039363
+3025 7068  -0.013107
+3025 7072   0.004754
+3025 7074  -1.000000
+3026 4   0.128990
+3026 7063   0.078885
+3026 7065   1.000000
+3026 7067   0.058415
+3026 7071  -0.008310
+3026 7073  -1.000000
+3027 4   0.128990
+3027 7064   0.078885
+3027 7066   1.000000
+3027 7068   0.058415
+3027 7072  -0.008310
+3027 7074  -1.000000
+3028 4   0.200000
+3028 7063   0.075281
+3028 7067   0.102497
+3028 7069   1.000000
+3028 7071   0.022222
+3028 7073  -1.000000
+3029 4   0.200000
+3029 7064   0.075281
+3029 7068   0.102497
+3029 7070   1.000000
+3029 7072   0.022222
+3029 7074  -1.000000
+3030 4   0.031010
+3030 7075   1.000000
+3030 7077   0.039363
+3030 7081  -0.013107
+3030 7085   0.004754
+3030 7087  -1.000000
+3031 4   0.031010
+3031 7076   1.000000
+3031 7078   0.039363
+3031 7082  -0.013107
+3031 7086   0.004754
+3031 7088  -1.000000
+3032 4   0.128990
+3032 7077   0.078885
+3032 7079   1.000000
+3032 7081   0.058415
+3032 7085  -0.008310
+3032 7087  -1.000000
+3033 4   0.128990
+3033 7078   0.078885
+3033 7080   1.000000
+3033 7082   0.058415
+3033 7086  -0.008310
+3033 7088  -1.000000
+3034 4   0.200000
+3034 7077   0.075281
+3034 7081   0.102497
+3034 7083   1.000000
+3034 7085   0.022222
+3034 7087  -1.000000
+3035 4   0.200000
+3035 7078   0.075281
+3035 7082   0.102497
+3035 7084   1.000000
+3035 7086   0.022222
+3035 7088  -1.000000
+3036 4   0.031010
+3036 7089   1.000000
+3036 7091   0.039363
+3036 7095  -0.013107
+3036 7099   0.004754
+3036 7101  -1.000000
+3037 4   0.031010
+3037 7090   1.000000
+3037 7092   0.039363
+3037 7096  -0.013107
+3037 7100   0.004754
+3037 7102  -1.000000
+3038 4   0.128990
+3038 7091   0.078885
+3038 7093   1.000000
+3038 7095   0.058415
+3038 7099  -0.008310
+3038 7101  -1.000000
+3039 4   0.128990
+3039 7092   0.078885
+3039 7094   1.000000
+3039 7096   0.058415
+3039 7100  -0.008310
+3039 7102  -1.000000
+3040 4   0.200000
+3040 7091   0.075281
+3040 7095   0.102497
+3040 7097   1.000000
+3040 7099   0.022222
+3040 7101  -1.000000
+3041 4   0.200000
+3041 7092   0.075281
+3041 7096   0.102497
+3041 7098   1.000000
+3041 7100   0.022222
+3041 7102  -1.000000
+3042 4   0.031010
+3042 7103   1.000000
+3042 7105   0.039363
+3042 7109  -0.013107
+3042 7113   0.004754
+3042 7115  -1.000000
+3043 4   0.031010
+3043 7104   1.000000
+3043 7106   0.039363
+3043 7110  -0.013107
+3043 7114   0.004754
+3043 7116  -1.000000
+3044 4   0.128990
+3044 7105   0.078885
+3044 7107   1.000000
+3044 7109   0.058415
+3044 7113  -0.008310
+3044 7115  -1.000000
+3045 4   0.128990
+3045 7106   0.078885
+3045 7108   1.000000
+3045 7110   0.058415
+3045 7114  -0.008310
+3045 7116  -1.000000
+3046 4   0.200000
+3046 7105   0.075281
+3046 7109   0.102497
+3046 7111   1.000000
+3046 7113   0.022222
+3046 7115  -1.000000
+3047 4   0.200000
+3047 7106   0.075281
+3047 7110   0.102497
+3047 7112   1.000000
+3047 7114   0.022222
+3047 7116  -1.000000
+3048 4   0.031010
+3048 7117   1.000000
+3048 7119   0.039363
+3048 7123  -0.013107
+3048 7127   0.004754
+3048 7129  -1.000000
+3049 4   0.031010
+3049 7118   1.000000
+3049 7120   0.039363
+3049 7124  -0.013107
+3049 7128   0.004754
+3049 7130  -1.000000
+3050 4   0.128990
+3050 7119   0.078885
+3050 7121   1.000000
+3050 7123   0.058415
+3050 7127  -0.008310
+3050 7129  -1.000000
+3051 4   0.128990
+3051 7120   0.078885
+3051 7122   1.000000
+3051 7124   0.058415
+3051 7128  -0.008310
+3051 7130  -1.000000
+3052 4   0.200000
+3052 7119   0.075281
+3052 7123   0.102497
+3052 7125   1.000000
+3052 7127   0.022222
+3052 7129  -1.000000
+3053 4   0.200000
+3053 7120   0.075281
+3053 7124   0.102497
+3053 7126   1.000000
+3053 7128   0.022222
+3053 7130  -1.000000
+3054 4   0.031010
+3054 7131   1.000000
+3054 7133   0.039363
+3054 7137  -0.013107
+3054 7141   0.004754
+3054 7143  -1.000000
+3055 4   0.031010
+3055 7132   1.000000
+3055 7134   0.039363
+3055 7138  -0.013107
+3055 7142   0.004754
+3055 7144  -1.000000
+3056 4   0.128990
+3056 7133   0.078885
+3056 7135   1.000000
+3056 7137   0.058415
+3056 7141  -0.008310
+3056 7143  -1.000000
+3057 4   0.128990
+3057 7134   0.078885
+3057 7136   1.000000
+3057 7138   0.058415
+3057 7142  -0.008310
+3057 7144  -1.000000
+3058 4   0.200000
+3058 7133   0.075281
+3058 7137   0.102497
+3058 7139   1.000000
+3058 7141   0.022222
+3058 7143  -1.000000
+3059 4   0.200000
+3059 7134   0.075281
+3059 7138   0.102497
+3059 7140   1.000000
+3059 7142   0.022222
+3059 7144  -1.000000
+3060 4   0.031010
+3060 7145   1.000000
+3060 7147   0.039363
+3060 7151  -0.013107
+3060 7155   0.004754
+3060 7157  -1.000000
+3061 4   0.031010
+3061 7146   1.000000
+3061 7148   0.039363
+3061 7152  -0.013107
+3061 7156   0.004754
+3061 7158  -1.000000
+3062 4   0.128990
+3062 7147   0.078885
+3062 7149   1.000000
+3062 7151   0.058415
+3062 7155  -0.008310
+3062 7157  -1.000000
+3063 4   0.128990
+3063 7148   0.078885
+3063 7150   1.000000
+3063 7152   0.058415
+3063 7156  -0.008310
+3063 7158  -1.000000
+3064 4   0.200000
+3064 7147   0.075281
+3064 7151   0.102497
+3064 7153   1.000000
+3064 7155   0.022222
+3064 7157  -1.000000
+3065 4   0.200000
+3065 7148   0.075281
+3065 7152   0.102497
+3065 7154   1.000000
+3065 7156   0.022222
+3065 7158  -1.000000
+3066 4   0.031010
+3066 7159   1.000000
+3066 7161   0.039363
+3066 7165  -0.013107
+3066 7169   0.004754
+3066 7171  -1.000000
+3067 4   0.031010
+3067 7160   1.000000
+3067 7162   0.039363
+3067 7166  -0.013107
+3067 7170   0.004754
+3067 7172  -1.000000
+3068 4   0.128990
+3068 7161   0.078885
+3068 7163   1.000000
+3068 7165   0.058415
+3068 7169  -0.008310
+3068 7171  -1.000000
+3069 4   0.128990
+3069 7162   0.078885
+3069 7164   1.000000
+3069 7166   0.058415
+3069 7170  -0.008310
+3069 7172  -1.000000
+3070 4   0.200000
+3070 7161   0.075281
+3070 7165   0.102497
+3070 7167   1.000000
+3070 7169   0.022222
+3070 7171  -1.000000
+3071 4   0.200000
+3071 7162   0.075281
+3071 7166   0.102497
+3071 7168   1.000000
+3071 7170   0.022222
+3071 7172  -1.000000
+3072 4   0.031010
+3072 7173   1.000000
+3072 7175   0.039363
+3072 7179  -0.013107
+3072 7183   0.004754
+3072 7185  -1.000000
+3073 4   0.031010
+3073 7174   1.000000
+3073 7176   0.039363
+3073 7180  -0.013107
+3073 7184   0.004754
+3073 7186  -1.000000
+3074 4   0.128990
+3074 7175   0.078885
+3074 7177   1.000000
+3074 7179   0.058415
+3074 7183  -0.008310
+3074 7185  -1.000000
+3075 4   0.128990
+3075 7176   0.078885
+3075 7178   1.000000
+3075 7180   0.058415
+3075 7184  -0.008310
+3075 7186  -1.000000
+3076 4   0.200000
+3076 7175   0.075281
+3076 7179   0.102497
+3076 7181   1.000000
+3076 7183   0.022222
+3076 7185  -1.000000
+3077 4   0.200000
+3077 7176   0.075281
+3077 7180   0.102497
+3077 7182   1.000000
+3077 7184   0.022222
+3077 7186  -1.000000
+3078 4   0.031010
+3078 7187   1.000000
+3078 7189   0.039363
+3078 7193  -0.013107
+3078 7197   0.004754
+3078 7199  -1.000000
+3079 4   0.031010
+3079 7188   1.000000
+3079 7190   0.039363
+3079 7194  -0.013107
+3079 7198   0.004754
+3079 7200  -1.000000
+3080 4   0.128990
+3080 7189   0.078885
+3080 7191   1.000000
+3080 7193   0.058415
+3080 7197  -0.008310
+3080 7199  -1.000000
+3081 4   0.128990
+3081 7190   0.078885
+3081 7192   1.000000
+3081 7194   0.058415
+3081 7198  -0.008310
+3081 7200  -1.000000
+3082 4   0.200000
+3082 7189   0.075281
+3082 7193   0.102497
+3082 7195   1.000000
+3082 7197   0.022222
+3082 7199  -1.000000
+3083 4   0.200000
+3083 7190   0.075281
+3083 7194   0.102497
+3083 7196   1.000000
+3083 7198   0.022222
+3083 7200  -1.000000
+3084 4   0.031010
+3084 7201   1.000000
+3084 7203   0.039363
+3084 7207  -0.013107
+3084 7211   0.004754
+3084 7213  -1.000000
+3085 4   0.031010
+3085 7202   1.000000
+3085 7204   0.039363
+3085 7208  -0.013107
+3085 7212   0.004754
+3085 7214  -1.000000
+3086 4   0.128990
+3086 7203   0.078885
+3086 7205   1.000000
+3086 7207   0.058415
+3086 7211  -0.008310
+3086 7213  -1.000000
+3087 4   0.128990
+3087 7204   0.078885
+3087 7206   1.000000
+3087 7208   0.058415
+3087 7212  -0.008310
+3087 7214  -1.000000
+3088 4   0.200000
+3088 7203   0.075281
+3088 7207   0.102497
+3088 7209   1.000000
+3088 7211   0.022222
+3088 7213  -1.000000
+3089 4   0.200000
+3089 7204   0.075281
+3089 7208   0.102497
+3089 7210   1.000000
+3089 7212   0.022222
+3089 7214  -1.000000
+3090 4   0.031010
+3090 7215   1.000000
+3090 7217   0.039363
+3090 7221  -0.013107
+3090 7225   0.004754
+3090 7227  -1.000000
+3091 4   0.031010
+3091 7216   1.000000
+3091 7218   0.039363
+3091 7222  -0.013107
+3091 7226   0.004754
+3091 7228  -1.000000
+3092 4   0.128990
+3092 7217   0.078885
+3092 7219   1.000000
+3092 7221   0.058415
+3092 7225  -0.008310
+3092 7227  -1.000000
+3093 4   0.128990
+3093 7218   0.078885
+3093 7220   1.000000
+3093 7222   0.058415
+3093 7226  -0.008310
+3093 7228  -1.000000
+3094 4   0.200000
+3094 7217   0.075281
+3094 7221   0.102497
+3094 7223   1.000000
+3094 7225   0.022222
+3094 7227  -1.000000
+3095 4   0.200000
+3095 7218   0.075281
+3095 7222   0.102497
+3095 7224   1.000000
+3095 7226   0.022222
+3095 7228  -1.000000
+3096 4   0.031010
+3096 7229   1.000000
+3096 7231   0.039363
+3096 7235  -0.013107
+3096 7239   0.004754
+3096 7241  -1.000000
+3097 4   0.031010
+3097 7230   1.000000
+3097 7232   0.039363
+3097 7236  -0.013107
+3097 7240   0.004754
+3097 7242  -1.000000
+3098 4   0.128990
+3098 7231   0.078885
+3098 7233   1.000000
+3098 7235   0.058415
+3098 7239  -0.008310
+3098 7241  -1.000000
+3099 4   0.128990
+3099 7232   0.078885
+3099 7234   1.000000
+3099 7236   0.058415
+3099 7240  -0.008310
+3099 7242  -1.000000
+3100 4   0.200000
+3100 7231   0.075281
+3100 7235   0.102497
+3100 7237   1.000000
+3100 7239   0.022222
+3100 7241  -1.000000
+3101 4   0.200000
+3101 7232   0.075281
+3101 7236   0.102497
+3101 7238   1.000000
+3101 7240   0.022222
+3101 7242  -1.000000
+3102 4   0.031010
+3102 7243   1.000000
+3102 7245   0.039363
+3102 7249  -0.013107
+3102 7253   0.004754
+3102 7255  -1.000000
+3103 4   0.031010
+3103 7244   1.000000
+3103 7246   0.039363
+3103 7250  -0.013107
+3103 7254   0.004754
+3103 7256  -1.000000
+3104 4   0.128990
+3104 7245   0.078885
+3104 7247   1.000000
+3104 7249   0.058415
+3104 7253  -0.008310
+3104 7255  -1.000000
+3105 4   0.128990
+3105 7246   0.078885
+3105 7248   1.000000
+3105 7250   0.058415
+3105 7254  -0.008310
+3105 7256  -1.000000
+3106 4   0.200000
+3106 7245   0.075281
+3106 7249   0.102497
+3106 7251   1.000000
+3106 7253   0.022222
+3106 7255  -1.000000
+3107 4   0.200000
+3107 7246   0.075281
+3107 7250   0.102497
+3107 7252   1.000000
+3107 7254   0.022222
+3107 7256  -1.000000
+3108 4   0.031010
+3108 7257   1.000000
+3108 7259   0.039363
+3108 7263  -0.013107
+3108 7267   0.004754
+3108 7269  -1.000000
+3109 4   0.031010
+3109 7258   1.000000
+3109 7260   0.039363
+3109 7264  -0.013107
+3109 7268   0.004754
+3109 7270  -1.000000
+3110 4   0.128990
+3110 7259   0.078885
+3110 7261   1.000000
+3110 7263   0.058415
+3110 7267  -0.008310
+3110 7269  -1.000000
+3111 4   0.128990
+3111 7260   0.078885
+3111 7262   1.000000
+3111 7264   0.058415
+3111 7268  -0.008310
+3111 7270  -1.000000
+3112 4   0.200000
+3112 7259   0.075281
+3112 7263   0.102497
+3112 7265   1.000000
+3112 7267   0.022222
+3112 7269  -1.000000
+3113 4   0.200000
+3113 7260   0.075281
+3113 7264   0.102497
+3113 7266   1.000000
+3113 7268   0.022222
+3113 7270  -1.000000
+3114 4   0.031010
+3114 7271   1.000000
+3114 7273   0.039363
+3114 7277  -0.013107
+3114 7281   0.004754
+3114 7283  -1.000000
+3115 4   0.031010
+3115 7272   1.000000
+3115 7274   0.039363
+3115 7278  -0.013107
+3115 7282   0.004754
+3115 7284  -1.000000
+3116 4   0.128990
+3116 7273   0.078885
+3116 7275   1.000000
+3116 7277   0.058415
+3116 7281  -0.008310
+3116 7283  -1.000000
+3117 4   0.128990
+3117 7274   0.078885
+3117 7276   1.000000
+3117 7278   0.058415
+3117 7282  -0.008310
+3117 7284  -1.000000
+3118 4   0.200000
+3118 7273   0.075281
+3118 7277   0.102497
+3118 7279   1.000000
+3118 7281   0.022222
+3118 7283  -1.000000
+3119 4   0.200000
+3119 7274   0.075281
+3119 7278   0.102497
+3119 7280   1.000000
+3119 7282   0.022222
+3119 7284  -1.000000
+3120 4   0.031010
+3120 7285   1.000000
+3120 7287   0.039363
+3120 7291  -0.013107
+3120 7295   0.004754
+3120 7297  -1.000000
+3121 4   0.031010
+3121 7286   1.000000
+3121 7288   0.039363
+3121 7292  -0.013107
+3121 7296   0.004754
+3121 7298  -1.000000
+3122 4   0.128990
+3122 7287   0.078885
+3122 7289   1.000000
+3122 7291   0.058415
+3122 7295  -0.008310
+3122 7297  -1.000000
+3123 4   0.128990
+3123 7288   0.078885
+3123 7290   1.000000
+3123 7292   0.058415
+3123 7296  -0.008310
+3123 7298  -1.000000
+3124 4   0.200000
+3124 7287   0.075281
+3124 7291   0.102497
+3124 7293   1.000000
+3124 7295   0.022222
+3124 7297  -1.000000
+3125 4   0.200000
+3125 7288   0.075281
+3125 7292   0.102497
+3125 7294   1.000000
+3125 7296   0.022222
+3125 7298  -1.000000
+3126 4   0.031010
+3126 7299   1.000000
+3126 7301   0.039363
+3126 7305  -0.013107
+3126 7309   0.004754
+3126 7311  -1.000000
+3127 4   0.031010
+3127 7300   1.000000
+3127 7302   0.039363
+3127 7306  -0.013107
+3127 7310   0.004754
+3127 7312  -1.000000
+3128 4   0.128990
+3128 7301   0.078885
+3128 7303   1.000000
+3128 7305   0.058415
+3128 7309  -0.008310
+3128 7311  -1.000000
+3129 4   0.128990
+3129 7302   0.078885
+3129 7304   1.000000
+3129 7306   0.058415
+3129 7310  -0.008310
+3129 7312  -1.000000
+3130 4   0.200000
+3130 7301   0.075281
+3130 7305   0.102497
+3130 7307   1.000000
+3130 7309   0.022222
+3130 7311  -1.000000
+3131 4   0.200000
+3131 7302   0.075281
+3131 7306   0.102497
+3131 7308   1.000000
+3131 7310   0.022222
+3131 7312  -1.000000
+3132 4   0.031010
+3132 7313   1.000000
+3132 7315   0.039363
+3132 7319  -0.013107
+3132 7323   0.004754
+3132 7325  -1.000000
+3133 4   0.031010
+3133 7314   1.000000
+3133 7316   0.039363
+3133 7320  -0.013107
+3133 7324   0.004754
+3133 7326  -1.000000
+3134 4   0.128990
+3134 7315   0.078885
+3134 7317   1.000000
+3134 7319   0.058415
+3134 7323  -0.008310
+3134 7325  -1.000000
+3135 4   0.128990
+3135 7316   0.078885
+3135 7318   1.000000
+3135 7320   0.058415
+3135 7324  -0.008310
+3135 7326  -1.000000
+3136 4   0.200000
+3136 7315   0.075281
+3136 7319   0.102497
+3136 7321   1.000000
+3136 7323   0.022222
+3136 7325  -1.000000
+3137 4   0.200000
+3137 7316   0.075281
+3137 7320   0.102497
+3137 7322   1.000000
+3137 7324   0.022222
+3137 7326  -1.000000
+3138 4   0.031010
+3138 7327   1.000000
+3138 7329   0.039363
+3138 7333  -0.013107
+3138 7337   0.004754
+3138 7339  -1.000000
+3139 4   0.031010
+3139 7328   1.000000
+3139 7330   0.039363
+3139 7334  -0.013107
+3139 7338   0.004754
+3139 7340  -1.000000
+3140 4   0.128990
+3140 7329   0.078885
+3140 7331   1.000000
+3140 7333   0.058415
+3140 7337  -0.008310
+3140 7339  -1.000000
+3141 4   0.128990
+3141 7330   0.078885
+3141 7332   1.000000
+3141 7334   0.058415
+3141 7338  -0.008310
+3141 7340  -1.000000
+3142 4   0.200000
+3142 7329   0.075281
+3142 7333   0.102497
+3142 7335   1.000000
+3142 7337   0.022222
+3142 7339  -1.000000
+3143 4   0.200000
+3143 7330   0.075281
+3143 7334   0.102497
+3143 7336   1.000000
+3143 7338   0.022222
+3143 7340  -1.000000
+3144 4   0.031010
+3144 7341   1.000000
+3144 7343   0.039363
+3144 7347  -0.013107
+3144 7351   0.004754
+3144 7353  -1.000000
+3145 4   0.031010
+3145 7342   1.000000
+3145 7344   0.039363
+3145 7348  -0.013107
+3145 7352   0.004754
+3145 7354  -1.000000
+3146 4   0.128990
+3146 7343   0.078885
+3146 7345   1.000000
+3146 7347   0.058415
+3146 7351  -0.008310
+3146 7353  -1.000000
+3147 4   0.128990
+3147 7344   0.078885
+3147 7346   1.000000
+3147 7348   0.058415
+3147 7352  -0.008310
+3147 7354  -1.000000
+3148 4   0.200000
+3148 7343   0.075281
+3148 7347   0.102497
+3148 7349   1.000000
+3148 7351   0.022222
+3148 7353  -1.000000
+3149 4   0.200000
+3149 7344   0.075281
+3149 7348   0.102497
+3149 7350   1.000000
+3149 7352   0.022222
+3149 7354  -1.000000
+3150 4   0.031010
+3150 7355   1.000000
+3150 7357   0.039363
+3150 7361  -0.013107
+3150 7365   0.004754
+3150 7367  -1.000000
+3151 4   0.031010
+3151 7356   1.000000
+3151 7358   0.039363
+3151 7362  -0.013107
+3151 7366   0.004754
+3151 7368  -1.000000
+3152 4   0.128990
+3152 7357   0.078885
+3152 7359   1.000000
+3152 7361   0.058415
+3152 7365  -0.008310
+3152 7367  -1.000000
+3153 4   0.128990
+3153 7358   0.078885
+3153 7360   1.000000
+3153 7362   0.058415
+3153 7366  -0.008310
+3153 7368  -1.000000
+3154 4   0.200000
+3154 7357   0.075281
+3154 7361   0.102497
+3154 7363   1.000000
+3154 7365   0.022222
+3154 7367  -1.000000
+3155 4   0.200000
+3155 7358   0.075281
+3155 7362   0.102497
+3155 7364   1.000000
+3155 7366   0.022222
+3155 7368  -1.000000
+3156 4   0.031010
+3156 7369   1.000000
+3156 7371   0.039363
+3156 7375  -0.013107
+3156 7379   0.004754
+3156 7381  -1.000000
+3157 4   0.031010
+3157 7370   1.000000
+3157 7372   0.039363
+3157 7376  -0.013107
+3157 7380   0.004754
+3157 7382  -1.000000
+3158 4   0.128990
+3158 7371   0.078885
+3158 7373   1.000000
+3158 7375   0.058415
+3158 7379  -0.008310
+3158 7381  -1.000000
+3159 4   0.128990
+3159 7372   0.078885
+3159 7374   1.000000
+3159 7376   0.058415
+3159 7380  -0.008310
+3159 7382  -1.000000
+3160 4   0.200000
+3160 7371   0.075281
+3160 7375   0.102497
+3160 7377   1.000000
+3160 7379   0.022222
+3160 7381  -1.000000
+3161 4   0.200000
+3161 7372   0.075281
+3161 7376   0.102497
+3161 7378   1.000000
+3161 7380   0.022222
+3161 7382  -1.000000
+3162 4   0.031010
+3162 7383   1.000000
+3162 7385   0.039363
+3162 7389  -0.013107
+3162 7393   0.004754
+3162 7395  -1.000000
+3163 4   0.031010
+3163 7384   1.000000
+3163 7386   0.039363
+3163 7390  -0.013107
+3163 7394   0.004754
+3163 7396  -1.000000
+3164 4   0.128990
+3164 7385   0.078885
+3164 7387   1.000000
+3164 7389   0.058415
+3164 7393  -0.008310
+3164 7395  -1.000000
+3165 4   0.128990
+3165 7386   0.078885
+3165 7388   1.000000
+3165 7390   0.058415
+3165 7394  -0.008310
+3165 7396  -1.000000
+3166 4   0.200000
+3166 7385   0.075281
+3166 7389   0.102497
+3166 7391   1.000000
+3166 7393   0.022222
+3166 7395  -1.000000
+3167 4   0.200000
+3167 7386   0.075281
+3167 7390   0.102497
+3167 7392   1.000000
+3167 7394   0.022222
+3167 7396  -1.000000
+3168 4   0.031010
+3168 7397   1.000000
+3168 7399   0.039363
+3168 7403  -0.013107
+3168 7407   0.004754
+3168 7409  -1.000000
+3169 4   0.031010
+3169 7398   1.000000
+3169 7400   0.039363
+3169 7404  -0.013107
+3169 7408   0.004754
+3169 7410  -1.000000
+3170 4   0.128990
+3170 7399   0.078885
+3170 7401   1.000000
+3170 7403   0.058415
+3170 7407  -0.008310
+3170 7409  -1.000000
+3171 4   0.128990
+3171 7400   0.078885
+3171 7402   1.000000
+3171 7404   0.058415
+3171 7408  -0.008310
+3171 7410  -1.000000
+3172 4   0.200000
+3172 7399   0.075281
+3172 7403   0.102497
+3172 7405   1.000000
+3172 7407   0.022222
+3172 7409  -1.000000
+3173 4   0.200000
+3173 7400   0.075281
+3173 7404   0.102497
+3173 7406   1.000000
+3173 7408   0.022222
+3173 7410  -1.000000
+3174 4   0.031010
+3174 7411   1.000000
+3174 7413   0.039363
+3174 7417  -0.013107
+3174 7421   0.004754
+3174 7423  -1.000000
+3175 4   0.031010
+3175 7412   1.000000
+3175 7414   0.039363
+3175 7418  -0.013107
+3175 7422   0.004754
+3175 7424  -1.000000
+3176 4   0.128990
+3176 7413   0.078885
+3176 7415   1.000000
+3176 7417   0.058415
+3176 7421  -0.008310
+3176 7423  -1.000000
+3177 4   0.128990
+3177 7414   0.078885
+3177 7416   1.000000
+3177 7418   0.058415
+3177 7422  -0.008310
+3177 7424  -1.000000
+3178 4   0.200000
+3178 7413   0.075281
+3178 7417   0.102497
+3178 7419   1.000000
+3178 7421   0.022222
+3178 7423  -1.000000
+3179 4   0.200000
+3179 7414   0.075281
+3179 7418   0.102497
+3179 7420   1.000000
+3179 7422   0.022222
+3179 7424  -1.000000
+3180 4   0.031010
+3180 7425   1.000000
+3180 7427   0.039363
+3180 7431  -0.013107
+3180 7435   0.004754
+3180 7437  -1.000000
+3181 4   0.031010
+3181 7426   1.000000
+3181 7428   0.039363
+3181 7432  -0.013107
+3181 7436   0.004754
+3181 7438  -1.000000
+3182 4   0.128990
+3182 7427   0.078885
+3182 7429   1.000000
+3182 7431   0.058415
+3182 7435  -0.008310
+3182 7437  -1.000000
+3183 4   0.128990
+3183 7428   0.078885
+3183 7430   1.000000
+3183 7432   0.058415
+3183 7436  -0.008310
+3183 7438  -1.000000
+3184 4   0.200000
+3184 7427   0.075281
+3184 7431   0.102497
+3184 7433   1.000000
+3184 7435   0.022222
+3184 7437  -1.000000
+3185 4   0.200000
+3185 7428   0.075281
+3185 7432   0.102497
+3185 7434   1.000000
+3185 7436   0.022222
+3185 7438  -1.000000
+3186 4   0.031010
+3186 7439   1.000000
+3186 7441   0.039363
+3186 7445  -0.013107
+3186 7449   0.004754
+3186 7451  -1.000000
+3187 4   0.031010
+3187 7440   1.000000
+3187 7442   0.039363
+3187 7446  -0.013107
+3187 7450   0.004754
+3187 7452  -1.000000
+3188 4   0.128990
+3188 7441   0.078885
+3188 7443   1.000000
+3188 7445   0.058415
+3188 7449  -0.008310
+3188 7451  -1.000000
+3189 4   0.128990
+3189 7442   0.078885
+3189 7444   1.000000
+3189 7446   0.058415
+3189 7450  -0.008310
+3189 7452  -1.000000
+3190 4   0.200000
+3190 7441   0.075281
+3190 7445   0.102497
+3190 7447   1.000000
+3190 7449   0.022222
+3190 7451  -1.000000
+3191 4   0.200000
+3191 7442   0.075281
+3191 7446   0.102497
+3191 7448   1.000000
+3191 7450   0.022222
+3191 7452  -1.000000
+3192 4   0.031010
+3192 7453   1.000000
+3192 7455   0.039363
+3192 7459  -0.013107
+3192 7463   0.004754
+3192 7465  -1.000000
+3193 4   0.031010
+3193 7454   1.000000
+3193 7456   0.039363
+3193 7460  -0.013107
+3193 7464   0.004754
+3193 7466  -1.000000
+3194 4   0.128990
+3194 7455   0.078885
+3194 7457   1.000000
+3194 7459   0.058415
+3194 7463  -0.008310
+3194 7465  -1.000000
+3195 4   0.128990
+3195 7456   0.078885
+3195 7458   1.000000
+3195 7460   0.058415
+3195 7464  -0.008310
+3195 7466  -1.000000
+3196 4   0.200000
+3196 7455   0.075281
+3196 7459   0.102497
+3196 7461   1.000000
+3196 7463   0.022222
+3196 7465  -1.000000
+3197 4   0.200000
+3197 7456   0.075281
+3197 7460   0.102497
+3197 7462   1.000000
+3197 7464   0.022222
+3197 7466  -1.000000
+3198 4   0.031010
+3198 7467   1.000000
+3198 7469   0.039363
+3198 7473  -0.013107
+3198 7477   0.004754
+3198 7479  -1.000000
+3199 4   0.031010
+3199 7468   1.000000
+3199 7470   0.039363
+3199 7474  -0.013107
+3199 7478   0.004754
+3199 7480  -1.000000
+3200 4   0.128990
+3200 7469   0.078885
+3200 7471   1.000000
+3200 7473   0.058415
+3200 7477  -0.008310
+3200 7479  -1.000000
+3201 4   0.128990
+3201 7470   0.078885
+3201 7472   1.000000
+3201 7474   0.058415
+3201 7478  -0.008310
+3201 7480  -1.000000
+3202 4   0.200000
+3202 7469   0.075281
+3202 7473   0.102497
+3202 7475   1.000000
+3202 7477   0.022222
+3202 7479  -1.000000
+3203 4   0.200000
+3203 7470   0.075281
+3203 7474   0.102497
+3203 7476   1.000000
+3203 7478   0.022222
+3203 7480  -1.000000
+3204 4   0.031010
+3204 7481   1.000000
+3204 7483   0.039363
+3204 7487  -0.013107
+3204 7491   0.004754
+3204 7493  -1.000000
+3205 4   0.031010
+3205 7482   1.000000
+3205 7484   0.039363
+3205 7488  -0.013107
+3205 7492   0.004754
+3205 7494  -1.000000
+3206 4   0.128990
+3206 7483   0.078885
+3206 7485   1.000000
+3206 7487   0.058415
+3206 7491  -0.008310
+3206 7493  -1.000000
+3207 4   0.128990
+3207 7484   0.078885
+3207 7486   1.000000
+3207 7488   0.058415
+3207 7492  -0.008310
+3207 7494  -1.000000
+3208 4   0.200000
+3208 7483   0.075281
+3208 7487   0.102497
+3208 7489   1.000000
+3208 7491   0.022222
+3208 7493  -1.000000
+3209 4   0.200000
+3209 7484   0.075281
+3209 7488   0.102497
+3209 7490   1.000000
+3209 7492   0.022222
+3209 7494  -1.000000
+3210 4   0.031010
+3210 7495   1.000000
+3210 7497   0.039363
+3210 7501  -0.013107
+3210 7505   0.004754
+3210 7507  -1.000000
+3211 4   0.031010
+3211 7496   1.000000
+3211 7498   0.039363
+3211 7502  -0.013107
+3211 7506   0.004754
+3211 7508  -1.000000
+3212 4   0.128990
+3212 7497   0.078885
+3212 7499   1.000000
+3212 7501   0.058415
+3212 7505  -0.008310
+3212 7507  -1.000000
+3213 4   0.128990
+3213 7498   0.078885
+3213 7500   1.000000
+3213 7502   0.058415
+3213 7506  -0.008310
+3213 7508  -1.000000
+3214 4   0.200000
+3214 7497   0.075281
+3214 7501   0.102497
+3214 7503   1.000000
+3214 7505   0.022222
+3214 7507  -1.000000
+3215 4   0.200000
+3215 7498   0.075281
+3215 7502   0.102497
+3215 7504   1.000000
+3215 7506   0.022222
+3215 7508  -1.000000
+3216 4   0.031010
+3216 7509   1.000000
+3216 7511   0.039363
+3216 7515  -0.013107
+3216 7519   0.004754
+3216 7521  -1.000000
+3217 4   0.031010
+3217 7510   1.000000
+3217 7512   0.039363
+3217 7516  -0.013107
+3217 7520   0.004754
+3217 7522  -1.000000
+3218 4   0.128990
+3218 7511   0.078885
+3218 7513   1.000000
+3218 7515   0.058415
+3218 7519  -0.008310
+3218 7521  -1.000000
+3219 4   0.128990
+3219 7512   0.078885
+3219 7514   1.000000
+3219 7516   0.058415
+3219 7520  -0.008310
+3219 7522  -1.000000
+3220 4   0.200000
+3220 7511   0.075281
+3220 7515   0.102497
+3220 7517   1.000000
+3220 7519   0.022222
+3220 7521  -1.000000
+3221 4   0.200000
+3221 7512   0.075281
+3221 7516   0.102497
+3221 7518   1.000000
+3221 7520   0.022222
+3221 7522  -1.000000
+3222 4   0.031010
+3222 7523   1.000000
+3222 7525   0.039363
+3222 7529  -0.013107
+3222 7533   0.004754
+3222 7535  -1.000000
+3223 4   0.031010
+3223 7524   1.000000
+3223 7526   0.039363
+3223 7530  -0.013107
+3223 7534   0.004754
+3223 7536  -1.000000
+3224 4   0.128990
+3224 7525   0.078885
+3224 7527   1.000000
+3224 7529   0.058415
+3224 7533  -0.008310
+3224 7535  -1.000000
+3225 4   0.128990
+3225 7526   0.078885
+3225 7528   1.000000
+3225 7530   0.058415
+3225 7534  -0.008310
+3225 7536  -1.000000
+3226 4   0.200000
+3226 7525   0.075281
+3226 7529   0.102497
+3226 7531   1.000000
+3226 7533   0.022222
+3226 7535  -1.000000
+3227 4   0.200000
+3227 7526   0.075281
+3227 7530   0.102497
+3227 7532   1.000000
+3227 7534   0.022222
+3227 7536  -1.000000
+3228 4   0.031010
+3228 7537   1.000000
+3228 7539   0.039363
+3228 7543  -0.013107
+3228 7547   0.004754
+3228 7549  -1.000000
+3229 4   0.031010
+3229 7538   1.000000
+3229 7540   0.039363
+3229 7544  -0.013107
+3229 7548   0.004754
+3229 7550  -1.000000
+3230 4   0.128990
+3230 7539   0.078885
+3230 7541   1.000000
+3230 7543   0.058415
+3230 7547  -0.008310
+3230 7549  -1.000000
+3231 4   0.128990
+3231 7540   0.078885
+3231 7542   1.000000
+3231 7544   0.058415
+3231 7548  -0.008310
+3231 7550  -1.000000
+3232 4   0.200000
+3232 7539   0.075281
+3232 7543   0.102497
+3232 7545   1.000000
+3232 7547   0.022222
+3232 7549  -1.000000
+3233 4   0.200000
+3233 7540   0.075281
+3233 7544   0.102497
+3233 7546   1.000000
+3233 7548   0.022222
+3233 7550  -1.000000
+3234 4   0.031010
+3234 7551   1.000000
+3234 7553   0.039363
+3234 7557  -0.013107
+3234 7561   0.004754
+3234 7563  -1.000000
+3235 4   0.031010
+3235 7552   1.000000
+3235 7554   0.039363
+3235 7558  -0.013107
+3235 7562   0.004754
+3235 7564  -1.000000
+3236 4   0.128990
+3236 7553   0.078885
+3236 7555   1.000000
+3236 7557   0.058415
+3236 7561  -0.008310
+3236 7563  -1.000000
+3237 4   0.128990
+3237 7554   0.078885
+3237 7556   1.000000
+3237 7558   0.058415
+3237 7562  -0.008310
+3237 7564  -1.000000
+3238 4   0.200000
+3238 7553   0.075281
+3238 7557   0.102497
+3238 7559   1.000000
+3238 7561   0.022222
+3238 7563  -1.000000
+3239 4   0.200000
+3239 7554   0.075281
+3239 7558   0.102497
+3239 7560   1.000000
+3239 7562   0.022222
+3239 7564  -1.000000
+3240 4   0.031010
+3240 7565   1.000000
+3240 7567   0.039363
+3240 7571  -0.013107
+3240 7575   0.004754
+3240 7577  -1.000000
+3241 4   0.031010
+3241 7566   1.000000
+3241 7568   0.039363
+3241 7572  -0.013107
+3241 7576   0.004754
+3241 7578  -1.000000
+3242 4   0.128990
+3242 7567   0.078885
+3242 7569   1.000000
+3242 7571   0.058415
+3242 7575  -0.008310
+3242 7577  -1.000000
+3243 4   0.128990
+3243 7568   0.078885
+3243 7570   1.000000
+3243 7572   0.058415
+3243 7576  -0.008310
+3243 7578  -1.000000
+3244 4   0.200000
+3244 7567   0.075281
+3244 7571   0.102497
+3244 7573   1.000000
+3244 7575   0.022222
+3244 7577  -1.000000
+3245 4   0.200000
+3245 7568   0.075281
+3245 7572   0.102497
+3245 7574   1.000000
+3245 7576   0.022222
+3245 7578  -1.000000
+3246 4   0.031010
+3246 7579   1.000000
+3246 7581   0.039363
+3246 7585  -0.013107
+3246 7589   0.004754
+3246 7591  -1.000000
+3247 4   0.031010
+3247 7580   1.000000
+3247 7582   0.039363
+3247 7586  -0.013107
+3247 7590   0.004754
+3247 7592  -1.000000
+3248 4   0.128990
+3248 7581   0.078885
+3248 7583   1.000000
+3248 7585   0.058415
+3248 7589  -0.008310
+3248 7591  -1.000000
+3249 4   0.128990
+3249 7582   0.078885
+3249 7584   1.000000
+3249 7586   0.058415
+3249 7590  -0.008310
+3249 7592  -1.000000
+3250 4   0.200000
+3250 7581   0.075281
+3250 7585   0.102497
+3250 7587   1.000000
+3250 7589   0.022222
+3250 7591  -1.000000
+3251 4   0.200000
+3251 7582   0.075281
+3251 7586   0.102497
+3251 7588   1.000000
+3251 7590   0.022222
+3251 7592  -1.000000
+3252 4   0.031010
+3252 7593   1.000000
+3252 7595   0.039363
+3252 7599  -0.013107
+3252 7603   0.004754
+3252 7605  -1.000000
+3253 4   0.031010
+3253 7594   1.000000
+3253 7596   0.039363
+3253 7600  -0.013107
+3253 7604   0.004754
+3253 7606  -1.000000
+3254 4   0.128990
+3254 7595   0.078885
+3254 7597   1.000000
+3254 7599   0.058415
+3254 7603  -0.008310
+3254 7605  -1.000000
+3255 4   0.128990
+3255 7596   0.078885
+3255 7598   1.000000
+3255 7600   0.058415
+3255 7604  -0.008310
+3255 7606  -1.000000
+3256 4   0.200000
+3256 7595   0.075281
+3256 7599   0.102497
+3256 7601   1.000000
+3256 7603   0.022222
+3256 7605  -1.000000
+3257 4   0.200000
+3257 7596   0.075281
+3257 7600   0.102497
+3257 7602   1.000000
+3257 7604   0.022222
+3257 7606  -1.000000
+3258 4   0.031010
+3258 7607   1.000000
+3258 7609   0.039363
+3258 7613  -0.013107
+3258 7617   0.004754
+3258 7619  -1.000000
+3259 4   0.031010
+3259 7608   1.000000
+3259 7610   0.039363
+3259 7614  -0.013107
+3259 7618   0.004754
+3259 7620  -1.000000
+3260 4   0.128990
+3260 7609   0.078885
+3260 7611   1.000000
+3260 7613   0.058415
+3260 7617  -0.008310
+3260 7619  -1.000000
+3261 4   0.128990
+3261 7610   0.078885
+3261 7612   1.000000
+3261 7614   0.058415
+3261 7618  -0.008310
+3261 7620  -1.000000
+3262 4   0.200000
+3262 7609   0.075281
+3262 7613   0.102497
+3262 7615   1.000000
+3262 7617   0.022222
+3262 7619  -1.000000
+3263 4   0.200000
+3263 7610   0.075281
+3263 7614   0.102497
+3263 7616   1.000000
+3263 7618   0.022222
+3263 7620  -1.000000
+3264 4   0.031010
+3264 7621   1.000000
+3264 7623   0.039363
+3264 7627  -0.013107
+3264 7631   0.004754
+3264 7633  -1.000000
+3265 4   0.031010
+3265 7622   1.000000
+3265 7624   0.039363
+3265 7628  -0.013107
+3265 7632   0.004754
+3265 7634  -1.000000
+3266 4   0.128990
+3266 7623   0.078885
+3266 7625   1.000000
+3266 7627   0.058415
+3266 7631  -0.008310
+3266 7633  -1.000000
+3267 4   0.128990
+3267 7624   0.078885
+3267 7626   1.000000
+3267 7628   0.058415
+3267 7632  -0.008310
+3267 7634  -1.000000
+3268 4   0.200000
+3268 7623   0.075281
+3268 7627   0.102497
+3268 7629   1.000000
+3268 7631   0.022222
+3268 7633  -1.000000
+3269 4   0.200000
+3269 7624   0.075281
+3269 7628   0.102497
+3269 7630   1.000000
+3269 7632   0.022222
+3269 7634  -1.000000
+3270 4   0.031010
+3270 7635   1.000000
+3270 7637   0.039363
+3270 7641  -0.013107
+3270 7645   0.004754
+3270 7647  -1.000000
+3271 4   0.031010
+3271 7636   1.000000
+3271 7638   0.039363
+3271 7642  -0.013107
+3271 7646   0.004754
+3271 7648  -1.000000
+3272 4   0.128990
+3272 7637   0.078885
+3272 7639   1.000000
+3272 7641   0.058415
+3272 7645  -0.008310
+3272 7647  -1.000000
+3273 4   0.128990
+3273 7638   0.078885
+3273 7640   1.000000
+3273 7642   0.058415
+3273 7646  -0.008310
+3273 7648  -1.000000
+3274 4   0.200000
+3274 7637   0.075281
+3274 7641   0.102497
+3274 7643   1.000000
+3274 7645   0.022222
+3274 7647  -1.000000
+3275 4   0.200000
+3275 7638   0.075281
+3275 7642   0.102497
+3275 7644   1.000000
+3275 7646   0.022222
+3275 7648  -1.000000
+3276 4   0.031010
+3276 7649   1.000000
+3276 7651   0.039363
+3276 7655  -0.013107
+3276 7659   0.004754
+3276 7661  -1.000000
+3277 4   0.031010
+3277 7650   1.000000
+3277 7652   0.039363
+3277 7656  -0.013107
+3277 7660   0.004754
+3277 7662  -1.000000
+3278 4   0.128990
+3278 7651   0.078885
+3278 7653   1.000000
+3278 7655   0.058415
+3278 7659  -0.008310
+3278 7661  -1.000000
+3279 4   0.128990
+3279 7652   0.078885
+3279 7654   1.000000
+3279 7656   0.058415
+3279 7660  -0.008310
+3279 7662  -1.000000
+3280 4   0.200000
+3280 7651   0.075281
+3280 7655   0.102497
+3280 7657   1.000000
+3280 7659   0.022222
+3280 7661  -1.000000
+3281 4   0.200000
+3281 7652   0.075281
+3281 7656   0.102497
+3281 7658   1.000000
+3281 7660   0.022222
+3281 7662  -1.000000
+3282 4   0.031010
+3282 7663   1.000000
+3282 7665   0.039363
+3282 7669  -0.013107
+3282 7673   0.004754
+3282 7675  -1.000000
+3283 4   0.031010
+3283 7664   1.000000
+3283 7666   0.039363
+3283 7670  -0.013107
+3283 7674   0.004754
+3283 7676  -1.000000
+3284 4   0.128990
+3284 7665   0.078885
+3284 7667   1.000000
+3284 7669   0.058415
+3284 7673  -0.008310
+3284 7675  -1.000000
+3285 4   0.128990
+3285 7666   0.078885
+3285 7668   1.000000
+3285 7670   0.058415
+3285 7674  -0.008310
+3285 7676  -1.000000
+3286 4   0.200000
+3286 7665   0.075281
+3286 7669   0.102497
+3286 7671   1.000000
+3286 7673   0.022222
+3286 7675  -1.000000
+3287 4   0.200000
+3287 7666   0.075281
+3287 7670   0.102497
+3287 7672   1.000000
+3287 7674   0.022222
+3287 7676  -1.000000
+3288 4   0.031010
+3288 7677   1.000000
+3288 7679   0.039363
+3288 7683  -0.013107
+3288 7687   0.004754
+3288 7689  -1.000000
+3289 4   0.031010
+3289 7678   1.000000
+3289 7680   0.039363
+3289 7684  -0.013107
+3289 7688   0.004754
+3289 7690  -1.000000
+3290 4   0.128990
+3290 7679   0.078885
+3290 7681   1.000000
+3290 7683   0.058415
+3290 7687  -0.008310
+3290 7689  -1.000000
+3291 4   0.128990
+3291 7680   0.078885
+3291 7682   1.000000
+3291 7684   0.058415
+3291 7688  -0.008310
+3291 7690  -1.000000
+3292 4   0.200000
+3292 7679   0.075281
+3292 7683   0.102497
+3292 7685   1.000000
+3292 7687   0.022222
+3292 7689  -1.000000
+3293 4   0.200000
+3293 7680   0.075281
+3293 7684   0.102497
+3293 7686   1.000000
+3293 7688   0.022222
+3293 7690  -1.000000
+3294 4   0.031010
+3294 7691   1.000000
+3294 7693   0.039363
+3294 7697  -0.013107
+3294 7701   0.004754
+3294 7703  -1.000000
+3295 4   0.031010
+3295 7692   1.000000
+3295 7694   0.039363
+3295 7698  -0.013107
+3295 7702   0.004754
+3295 7704  -1.000000
+3296 4   0.128990
+3296 7693   0.078885
+3296 7695   1.000000
+3296 7697   0.058415
+3296 7701  -0.008310
+3296 7703  -1.000000
+3297 4   0.128990
+3297 7694   0.078885
+3297 7696   1.000000
+3297 7698   0.058415
+3297 7702  -0.008310
+3297 7704  -1.000000
+3298 4   0.200000
+3298 7693   0.075281
+3298 7697   0.102497
+3298 7699   1.000000
+3298 7701   0.022222
+3298 7703  -1.000000
+3299 4   0.200000
+3299 7694   0.075281
+3299 7698   0.102497
+3299 7700   1.000000
+3299 7702   0.022222
+3299 7704  -1.000000
+3300 4   0.031010
+3300 7705   1.000000
+3300 7707   0.039363
+3300 7711  -0.013107
+3300 7715   0.004754
+3300 7717  -1.000000
+3301 4   0.031010
+3301 7706   1.000000
+3301 7708   0.039363
+3301 7712  -0.013107
+3301 7716   0.004754
+3301 7718  -1.000000
+3302 4   0.128990
+3302 7707   0.078885
+3302 7709   1.000000
+3302 7711   0.058415
+3302 7715  -0.008310
+3302 7717  -1.000000
+3303 4   0.128990
+3303 7708   0.078885
+3303 7710   1.000000
+3303 7712   0.058415
+3303 7716  -0.008310
+3303 7718  -1.000000
+3304 4   0.200000
+3304 7707   0.075281
+3304 7711   0.102497
+3304 7713   1.000000
+3304 7715   0.022222
+3304 7717  -1.000000
+3305 4   0.200000
+3305 7708   0.075281
+3305 7712   0.102497
+3305 7714   1.000000
+3305 7716   0.022222
+3305 7718  -1.000000
+3306 4   0.031010
+3306 7719   1.000000
+3306 7721   0.039363
+3306 7725  -0.013107
+3306 7729   0.004754
+3306 7731  -1.000000
+3307 4   0.031010
+3307 7720   1.000000
+3307 7722   0.039363
+3307 7726  -0.013107
+3307 7730   0.004754
+3307 7732  -1.000000
+3308 4   0.128990
+3308 7721   0.078885
+3308 7723   1.000000
+3308 7725   0.058415
+3308 7729  -0.008310
+3308 7731  -1.000000
+3309 4   0.128990
+3309 7722   0.078885
+3309 7724   1.000000
+3309 7726   0.058415
+3309 7730  -0.008310
+3309 7732  -1.000000
+3310 4   0.200000
+3310 7721   0.075281
+3310 7725   0.102497
+3310 7727   1.000000
+3310 7729   0.022222
+3310 7731  -1.000000
+3311 4   0.200000
+3311 7722   0.075281
+3311 7726   0.102497
+3311 7728   1.000000
+3311 7730   0.022222
+3311 7732  -1.000000
+3312 4   0.031010
+3312 7733   1.000000
+3312 7735   0.039363
+3312 7739  -0.013107
+3312 7743   0.004754
+3312 7745  -1.000000
+3313 4   0.031010
+3313 7734   1.000000
+3313 7736   0.039363
+3313 7740  -0.013107
+3313 7744   0.004754
+3313 7746  -1.000000
+3314 4   0.128990
+3314 7735   0.078885
+3314 7737   1.000000
+3314 7739   0.058415
+3314 7743  -0.008310
+3314 7745  -1.000000
+3315 4   0.128990
+3315 7736   0.078885
+3315 7738   1.000000
+3315 7740   0.058415
+3315 7744  -0.008310
+3315 7746  -1.000000
+3316 4   0.200000
+3316 7735   0.075281
+3316 7739   0.102497
+3316 7741   1.000000
+3316 7743   0.022222
+3316 7745  -1.000000
+3317 4   0.200000
+3317 7736   0.075281
+3317 7740   0.102497
+3317 7742   1.000000
+3317 7744   0.022222
+3317 7746  -1.000000
+3318 4   0.031010
+3318 7747   1.000000
+3318 7749   0.039363
+3318 7753  -0.013107
+3318 7757   0.004754
+3318 7759  -1.000000
+3319 4   0.031010
+3319 7748   1.000000
+3319 7750   0.039363
+3319 7754  -0.013107
+3319 7758   0.004754
+3319 7760  -1.000000
+3320 4   0.128990
+3320 7749   0.078885
+3320 7751   1.000000
+3320 7753   0.058415
+3320 7757  -0.008310
+3320 7759  -1.000000
+3321 4   0.128990
+3321 7750   0.078885
+3321 7752   1.000000
+3321 7754   0.058415
+3321 7758  -0.008310
+3321 7760  -1.000000
+3322 4   0.200000
+3322 7749   0.075281
+3322 7753   0.102497
+3322 7755   1.000000
+3322 7757   0.022222
+3322 7759  -1.000000
+3323 4   0.200000
+3323 7750   0.075281
+3323 7754   0.102497
+3323 7756   1.000000
+3323 7758   0.022222
+3323 7760  -1.000000
+3324 4   0.031010
+3324 7761   1.000000
+3324 7763   0.039363
+3324 7767  -0.013107
+3324 7771   0.004754
+3324 7773  -1.000000
+3325 4   0.031010
+3325 7762   1.000000
+3325 7764   0.039363
+3325 7768  -0.013107
+3325 7772   0.004754
+3325 7774  -1.000000
+3326 4   0.128990
+3326 7763   0.078885
+3326 7765   1.000000
+3326 7767   0.058415
+3326 7771  -0.008310
+3326 7773  -1.000000
+3327 4   0.128990
+3327 7764   0.078885
+3327 7766   1.000000
+3327 7768   0.058415
+3327 7772  -0.008310
+3327 7774  -1.000000
+3328 4   0.200000
+3328 7763   0.075281
+3328 7767   0.102497
+3328 7769   1.000000
+3328 7771   0.022222
+3328 7773  -1.000000
+3329 4   0.200000
+3329 7764   0.075281
+3329 7768   0.102497
+3329 7770   1.000000
+3329 7772   0.022222
+3329 7774  -1.000000
+3330 4   0.031010
+3330 7775   1.000000
+3330 7777   0.039363
+3330 7781  -0.013107
+3330 7785   0.004754
+3330 7787  -1.000000
+3331 4   0.031010
+3331 7776   1.000000
+3331 7778   0.039363
+3331 7782  -0.013107
+3331 7786   0.004754
+3331 7788  -1.000000
+3332 4   0.128990
+3332 7777   0.078885
+3332 7779   1.000000
+3332 7781   0.058415
+3332 7785  -0.008310
+3332 7787  -1.000000
+3333 4   0.128990
+3333 7778   0.078885
+3333 7780   1.000000
+3333 7782   0.058415
+3333 7786  -0.008310
+3333 7788  -1.000000
+3334 4   0.200000
+3334 7777   0.075281
+3334 7781   0.102497
+3334 7783   1.000000
+3334 7785   0.022222
+3334 7787  -1.000000
+3335 4   0.200000
+3335 7778   0.075281
+3335 7782   0.102497
+3335 7784   1.000000
+3335 7786   0.022222
+3335 7788  -1.000000
+3336 4   0.031010
+3336 7789   1.000000
+3336 7791   0.039363
+3336 7795  -0.013107
+3336 7799   0.004754
+3336 7801  -1.000000
+3337 4   0.031010
+3337 7790   1.000000
+3337 7792   0.039363
+3337 7796  -0.013107
+3337 7800   0.004754
+3337 7802  -1.000000
+3338 4   0.128990
+3338 7791   0.078885
+3338 7793   1.000000
+3338 7795   0.058415
+3338 7799  -0.008310
+3338 7801  -1.000000
+3339 4   0.128990
+3339 7792   0.078885
+3339 7794   1.000000
+3339 7796   0.058415
+3339 7800  -0.008310
+3339 7802  -1.000000
+3340 4   0.200000
+3340 7791   0.075281
+3340 7795   0.102497
+3340 7797   1.000000
+3340 7799   0.022222
+3340 7801  -1.000000
+3341 4   0.200000
+3341 7792   0.075281
+3341 7796   0.102497
+3341 7798   1.000000
+3341 7800   0.022222
+3341 7802  -1.000000
+3342 4   0.031010
+3342 7803   1.000000
+3342 7805   0.039363
+3342 7809  -0.013107
+3342 7813   0.004754
+3342 7815  -1.000000
+3343 4   0.031010
+3343 7804   1.000000
+3343 7806   0.039363
+3343 7810  -0.013107
+3343 7814   0.004754
+3343 7816  -1.000000
+3344 4   0.128990
+3344 7805   0.078885
+3344 7807   1.000000
+3344 7809   0.058415
+3344 7813  -0.008310
+3344 7815  -1.000000
+3345 4   0.128990
+3345 7806   0.078885
+3345 7808   1.000000
+3345 7810   0.058415
+3345 7814  -0.008310
+3345 7816  -1.000000
+3346 4   0.200000
+3346 7805   0.075281
+3346 7809   0.102497
+3346 7811   1.000000
+3346 7813   0.022222
+3346 7815  -1.000000
+3347 4   0.200000
+3347 7806   0.075281
+3347 7810   0.102497
+3347 7812   1.000000
+3347 7814   0.022222
+3347 7816  -1.000000
+3348 4   0.031010
+3348 7817   1.000000
+3348 7819   0.039363
+3348 7823  -0.013107
+3348 7827   0.004754
+3348 7829  -1.000000
+3349 4   0.031010
+3349 7818   1.000000
+3349 7820   0.039363
+3349 7824  -0.013107
+3349 7828   0.004754
+3349 7830  -1.000000
+3350 4   0.128990
+3350 7819   0.078885
+3350 7821   1.000000
+3350 7823   0.058415
+3350 7827  -0.008310
+3350 7829  -1.000000
+3351 4   0.128990
+3351 7820   0.078885
+3351 7822   1.000000
+3351 7824   0.058415
+3351 7828  -0.008310
+3351 7830  -1.000000
+3352 4   0.200000
+3352 7819   0.075281
+3352 7823   0.102497
+3352 7825   1.000000
+3352 7827   0.022222
+3352 7829  -1.000000
+3353 4   0.200000
+3353 7820   0.075281
+3353 7824   0.102497
+3353 7826   1.000000
+3353 7828   0.022222
+3353 7830  -1.000000
+3354 4   0.031010
+3354 7831   1.000000
+3354 7833   0.039363
+3354 7837  -0.013107
+3354 7841   0.004754
+3354 7843  -1.000000
+3355 4   0.031010
+3355 7832   1.000000
+3355 7834   0.039363
+3355 7838  -0.013107
+3355 7842   0.004754
+3355 7844  -1.000000
+3356 4   0.128990
+3356 7833   0.078885
+3356 7835   1.000000
+3356 7837   0.058415
+3356 7841  -0.008310
+3356 7843  -1.000000
+3357 4   0.128990
+3357 7834   0.078885
+3357 7836   1.000000
+3357 7838   0.058415
+3357 7842  -0.008310
+3357 7844  -1.000000
+3358 4   0.200000
+3358 7833   0.075281
+3358 7837   0.102497
+3358 7839   1.000000
+3358 7841   0.022222
+3358 7843  -1.000000
+3359 4   0.200000
+3359 7834   0.075281
+3359 7838   0.102497
+3359 7840   1.000000
+3359 7842   0.022222
+3359 7844  -1.000000
+3360 4   0.031010
+3360 7845   1.000000
+3360 7847   0.039363
+3360 7851  -0.013107
+3360 7855   0.004754
+3360 7857  -1.000000
+3361 4   0.031010
+3361 7846   1.000000
+3361 7848   0.039363
+3361 7852  -0.013107
+3361 7856   0.004754
+3361 7858  -1.000000
+3362 4   0.128990
+3362 7847   0.078885
+3362 7849   1.000000
+3362 7851   0.058415
+3362 7855  -0.008310
+3362 7857  -1.000000
+3363 4   0.128990
+3363 7848   0.078885
+3363 7850   1.000000
+3363 7852   0.058415
+3363 7856  -0.008310
+3363 7858  -1.000000
+3364 4   0.200000
+3364 7847   0.075281
+3364 7851   0.102497
+3364 7853   1.000000
+3364 7855   0.022222
+3364 7857  -1.000000
+3365 4   0.200000
+3365 7848   0.075281
+3365 7852   0.102497
+3365 7854   1.000000
+3365 7856   0.022222
+3365 7858  -1.000000
+3366 4   0.031010
+3366 7859   1.000000
+3366 7861   0.039363
+3366 7865  -0.013107
+3366 7869   0.004754
+3366 7871  -1.000000
+3367 4   0.031010
+3367 7860   1.000000
+3367 7862   0.039363
+3367 7866  -0.013107
+3367 7870   0.004754
+3367 7872  -1.000000
+3368 4   0.128990
+3368 7861   0.078885
+3368 7863   1.000000
+3368 7865   0.058415
+3368 7869  -0.008310
+3368 7871  -1.000000
+3369 4   0.128990
+3369 7862   0.078885
+3369 7864   1.000000
+3369 7866   0.058415
+3369 7870  -0.008310
+3369 7872  -1.000000
+3370 4   0.200000
+3370 7861   0.075281
+3370 7865   0.102497
+3370 7867   1.000000
+3370 7869   0.022222
+3370 7871  -1.000000
+3371 4   0.200000
+3371 7862   0.075281
+3371 7866   0.102497
+3371 7868   1.000000
+3371 7870   0.022222
+3371 7872  -1.000000
+3372 4   0.031010
+3372 7873   1.000000
+3372 7875   0.039363
+3372 7879  -0.013107
+3372 7883   0.004754
+3372 7885  -1.000000
+3373 4   0.031010
+3373 7874   1.000000
+3373 7876   0.039363
+3373 7880  -0.013107
+3373 7884   0.004754
+3373 7886  -1.000000
+3374 4   0.128990
+3374 7875   0.078885
+3374 7877   1.000000
+3374 7879   0.058415
+3374 7883  -0.008310
+3374 7885  -1.000000
+3375 4   0.128990
+3375 7876   0.078885
+3375 7878   1.000000
+3375 7880   0.058415
+3375 7884  -0.008310
+3375 7886  -1.000000
+3376 4   0.200000
+3376 7875   0.075281
+3376 7879   0.102497
+3376 7881   1.000000
+3376 7883   0.022222
+3376 7885  -1.000000
+3377 4   0.200000
+3377 7876   0.075281
+3377 7880   0.102497
+3377 7882   1.000000
+3377 7884   0.022222
+3377 7886  -1.000000
+3378 4   0.031010
+3378 7887   1.000000
+3378 7889   0.039363
+3378 7893  -0.013107
+3378 7897   0.004754
+3378 7899  -1.000000
+3379 4   0.031010
+3379 7888   1.000000
+3379 7890   0.039363
+3379 7894  -0.013107
+3379 7898   0.004754
+3379 7900  -1.000000
+3380 4   0.128990
+3380 7889   0.078885
+3380 7891   1.000000
+3380 7893   0.058415
+3380 7897  -0.008310
+3380 7899  -1.000000
+3381 4   0.128990
+3381 7890   0.078885
+3381 7892   1.000000
+3381 7894   0.058415
+3381 7898  -0.008310
+3381 7900  -1.000000
+3382 4   0.200000
+3382 7889   0.075281
+3382 7893   0.102497
+3382 7895   1.000000
+3382 7897   0.022222
+3382 7899  -1.000000
+3383 4   0.200000
+3383 7890   0.075281
+3383 7894   0.102497
+3383 7896   1.000000
+3383 7898   0.022222
+3383 7900  -1.000000
+3384 4   0.031010
+3384 7901   1.000000
+3384 7903   0.039363
+3384 7907  -0.013107
+3384 7911   0.004754
+3384 7913  -1.000000
+3385 4   0.031010
+3385 7902   1.000000
+3385 7904   0.039363
+3385 7908  -0.013107
+3385 7912   0.004754
+3385 7914  -1.000000
+3386 4   0.128990
+3386 7903   0.078885
+3386 7905   1.000000
+3386 7907   0.058415
+3386 7911  -0.008310
+3386 7913  -1.000000
+3387 4   0.128990
+3387 7904   0.078885
+3387 7906   1.000000
+3387 7908   0.058415
+3387 7912  -0.008310
+3387 7914  -1.000000
+3388 4   0.200000
+3388 7903   0.075281
+3388 7907   0.102497
+3388 7909   1.000000
+3388 7911   0.022222
+3388 7913  -1.000000
+3389 4   0.200000
+3389 7904   0.075281
+3389 7908   0.102497
+3389 7910   1.000000
+3389 7912   0.022222
+3389 7914  -1.000000
+3390 4   0.031010
+3390 7915   1.000000
+3390 7917   0.039363
+3390 7921  -0.013107
+3390 7925   0.004754
+3390 7927  -1.000000
+3391 4   0.031010
+3391 7916   1.000000
+3391 7918   0.039363
+3391 7922  -0.013107
+3391 7926   0.004754
+3391 7928  -1.000000
+3392 4   0.128990
+3392 7917   0.078885
+3392 7919   1.000000
+3392 7921   0.058415
+3392 7925  -0.008310
+3392 7927  -1.000000
+3393 4   0.128990
+3393 7918   0.078885
+3393 7920   1.000000
+3393 7922   0.058415
+3393 7926  -0.008310
+3393 7928  -1.000000
+3394 4   0.200000
+3394 7917   0.075281
+3394 7921   0.102497
+3394 7923   1.000000
+3394 7925   0.022222
+3394 7927  -1.000000
+3395 4   0.200000
+3395 7918   0.075281
+3395 7922   0.102497
+3395 7924   1.000000
+3395 7926   0.022222
+3395 7928  -1.000000
+3396 4   0.031010
+3396 7929   1.000000
+3396 7931   0.039363
+3396 7935  -0.013107
+3396 7939   0.004754
+3396 7941  -1.000000
+3397 4   0.031010
+3397 7930   1.000000
+3397 7932   0.039363
+3397 7936  -0.013107
+3397 7940   0.004754
+3397 7942  -1.000000
+3398 4   0.128990
+3398 7931   0.078885
+3398 7933   1.000000
+3398 7935   0.058415
+3398 7939  -0.008310
+3398 7941  -1.000000
+3399 4   0.128990
+3399 7932   0.078885
+3399 7934   1.000000
+3399 7936   0.058415
+3399 7940  -0.008310
+3399 7942  -1.000000
+3400 4   0.200000
+3400 7931   0.075281
+3400 7935   0.102497
+3400 7937   1.000000
+3400 7939   0.022222
+3400 7941  -1.000000
+3401 4   0.200000
+3401 7932   0.075281
+3401 7936   0.102497
+3401 7938   1.000000
+3401 7940   0.022222
+3401 7942  -1.000000
+3402 4   0.031010
+3402 7943   1.000000
+3402 7945   0.039363
+3402 7949  -0.013107
+3402 7953   0.004754
+3402 7955  -1.000000
+3403 4   0.031010
+3403 7944   1.000000
+3403 7946   0.039363
+3403 7950  -0.013107
+3403 7954   0.004754
+3403 7956  -1.000000
+3404 4   0.128990
+3404 7945   0.078885
+3404 7947   1.000000
+3404 7949   0.058415
+3404 7953  -0.008310
+3404 7955  -1.000000
+3405 4   0.128990
+3405 7946   0.078885
+3405 7948   1.000000
+3405 7950   0.058415
+3405 7954  -0.008310
+3405 7956  -1.000000
+3406 4   0.200000
+3406 7945   0.075281
+3406 7949   0.102497
+3406 7951   1.000000
+3406 7953   0.022222
+3406 7955  -1.000000
+3407 4   0.200000
+3407 7946   0.075281
+3407 7950   0.102497
+3407 7952   1.000000
+3407 7954   0.022222
+3407 7956  -1.000000
+3408 4   0.031010
+3408 7957   1.000000
+3408 7959   0.039363
+3408 7963  -0.013107
+3408 7967   0.004754
+3408 7969  -1.000000
+3409 4   0.031010
+3409 7958   1.000000
+3409 7960   0.039363
+3409 7964  -0.013107
+3409 7968   0.004754
+3409 7970  -1.000000
+3410 4   0.128990
+3410 7959   0.078885
+3410 7961   1.000000
+3410 7963   0.058415
+3410 7967  -0.008310
+3410 7969  -1.000000
+3411 4   0.128990
+3411 7960   0.078885
+3411 7962   1.000000
+3411 7964   0.058415
+3411 7968  -0.008310
+3411 7970  -1.000000
+3412 4   0.200000
+3412 7959   0.075281
+3412 7963   0.102497
+3412 7965   1.000000
+3412 7967   0.022222
+3412 7969  -1.000000
+3413 4   0.200000
+3413 7960   0.075281
+3413 7964   0.102497
+3413 7966   1.000000
+3413 7968   0.022222
+3413 7970  -1.000000
+3414 4   0.031010
+3414 7971   1.000000
+3414 7973   0.039363
+3414 7977  -0.013107
+3414 7981   0.004754
+3414 7983  -1.000000
+3415 4   0.031010
+3415 7972   1.000000
+3415 7974   0.039363
+3415 7978  -0.013107
+3415 7982   0.004754
+3415 7984  -1.000000
+3416 4   0.128990
+3416 7973   0.078885
+3416 7975   1.000000
+3416 7977   0.058415
+3416 7981  -0.008310
+3416 7983  -1.000000
+3417 4   0.128990
+3417 7974   0.078885
+3417 7976   1.000000
+3417 7978   0.058415
+3417 7982  -0.008310
+3417 7984  -1.000000
+3418 4   0.200000
+3418 7973   0.075281
+3418 7977   0.102497
+3418 7979   1.000000
+3418 7981   0.022222
+3418 7983  -1.000000
+3419 4   0.200000
+3419 7974   0.075281
+3419 7978   0.102497
+3419 7980   1.000000
+3419 7982   0.022222
+3419 7984  -1.000000
+3420 4   0.031010
+3420 7985   1.000000
+3420 7987   0.039363
+3420 7991  -0.013107
+3420 7995   0.004754
+3420 7997  -1.000000
+3421 4   0.031010
+3421 7986   1.000000
+3421 7988   0.039363
+3421 7992  -0.013107
+3421 7996   0.004754
+3421 7998  -1.000000
+3422 4   0.128990
+3422 7987   0.078885
+3422 7989   1.000000
+3422 7991   0.058415
+3422 7995  -0.008310
+3422 7997  -1.000000
+3423 4   0.128990
+3423 7988   0.078885
+3423 7990   1.000000
+3423 7992   0.058415
+3423 7996  -0.008310
+3423 7998  -1.000000
+3424 4   0.200000
+3424 7987   0.075281
+3424 7991   0.102497
+3424 7993   1.000000
+3424 7995   0.022222
+3424 7997  -1.000000
+3425 4   0.200000
+3425 7988   0.075281
+3425 7992   0.102497
+3425 7994   1.000000
+3425 7996   0.022222
+3425 7998  -1.000000
+3426 4   0.031010
+3426 7999   1.000000
+3426 8001   0.039363
+3426 8005  -0.013107
+3426 8009   0.004754
+3426 8011  -1.000000
+3427 4   0.031010
+3427 8000   1.000000
+3427 8002   0.039363
+3427 8006  -0.013107
+3427 8010   0.004754
+3427 8012  -1.000000
+3428 4   0.128990
+3428 8001   0.078885
+3428 8003   1.000000
+3428 8005   0.058415
+3428 8009  -0.008310
+3428 8011  -1.000000
+3429 4   0.128990
+3429 8002   0.078885
+3429 8004   1.000000
+3429 8006   0.058415
+3429 8010  -0.008310
+3429 8012  -1.000000
+3430 4   0.200000
+3430 8001   0.075281
+3430 8005   0.102497
+3430 8007   1.000000
+3430 8009   0.022222
+3430 8011  -1.000000
+3431 4   0.200000
+3431 8002   0.075281
+3431 8006   0.102497
+3431 8008   1.000000
+3431 8010   0.022222
+3431 8012  -1.000000
+3432 4   0.031010
+3432 8013   1.000000
+3432 8015   0.039363
+3432 8019  -0.013107
+3432 8023   0.004754
+3432 8025  -1.000000
+3433 4   0.031010
+3433 8014   1.000000
+3433 8016   0.039363
+3433 8020  -0.013107
+3433 8024   0.004754
+3433 8026  -1.000000
+3434 4   0.128990
+3434 8015   0.078885
+3434 8017   1.000000
+3434 8019   0.058415
+3434 8023  -0.008310
+3434 8025  -1.000000
+3435 4   0.128990
+3435 8016   0.078885
+3435 8018   1.000000
+3435 8020   0.058415
+3435 8024  -0.008310
+3435 8026  -1.000000
+3436 4   0.200000
+3436 8015   0.075281
+3436 8019   0.102497
+3436 8021   1.000000
+3436 8023   0.022222
+3436 8025  -1.000000
+3437 4   0.200000
+3437 8016   0.075281
+3437 8020   0.102497
+3437 8022   1.000000
+3437 8024   0.022222
+3437 8026  -1.000000
+3438 4   0.031010
+3438 8027   1.000000
+3438 8029   0.039363
+3438 8033  -0.013107
+3438 8037   0.004754
+3438 8039  -1.000000
+3439 4   0.031010
+3439 8028   1.000000
+3439 8030   0.039363
+3439 8034  -0.013107
+3439 8038   0.004754
+3439 8040  -1.000000
+3440 4   0.128990
+3440 8029   0.078885
+3440 8031   1.000000
+3440 8033   0.058415
+3440 8037  -0.008310
+3440 8039  -1.000000
+3441 4   0.128990
+3441 8030   0.078885
+3441 8032   1.000000
+3441 8034   0.058415
+3441 8038  -0.008310
+3441 8040  -1.000000
+3442 4   0.200000
+3442 8029   0.075281
+3442 8033   0.102497
+3442 8035   1.000000
+3442 8037   0.022222
+3442 8039  -1.000000
+3443 4   0.200000
+3443 8030   0.075281
+3443 8034   0.102497
+3443 8036   1.000000
+3443 8038   0.022222
+3443 8040  -1.000000
+3444 4   0.031010
+3444 8041   1.000000
+3444 8043   0.039363
+3444 8047  -0.013107
+3444 8051   0.004754
+3444 8053  -1.000000
+3445 4   0.031010
+3445 8042   1.000000
+3445 8044   0.039363
+3445 8048  -0.013107
+3445 8052   0.004754
+3445 8054  -1.000000
+3446 4   0.128990
+3446 8043   0.078885
+3446 8045   1.000000
+3446 8047   0.058415
+3446 8051  -0.008310
+3446 8053  -1.000000
+3447 4   0.128990
+3447 8044   0.078885
+3447 8046   1.000000
+3447 8048   0.058415
+3447 8052  -0.008310
+3447 8054  -1.000000
+3448 4   0.200000
+3448 8043   0.075281
+3448 8047   0.102497
+3448 8049   1.000000
+3448 8051   0.022222
+3448 8053  -1.000000
+3449 4   0.200000
+3449 8044   0.075281
+3449 8048   0.102497
+3449 8050   1.000000
+3449 8052   0.022222
+3449 8054  -1.000000
+3450 4   0.031010
+3450 8055   1.000000
+3450 8057   0.039363
+3450 8061  -0.013107
+3450 8065   0.004754
+3450 8067  -1.000000
+3451 4   0.031010
+3451 8056   1.000000
+3451 8058   0.039363
+3451 8062  -0.013107
+3451 8066   0.004754
+3451 8068  -1.000000
+3452 4   0.128990
+3452 8057   0.078885
+3452 8059   1.000000
+3452 8061   0.058415
+3452 8065  -0.008310
+3452 8067  -1.000000
+3453 4   0.128990
+3453 8058   0.078885
+3453 8060   1.000000
+3453 8062   0.058415
+3453 8066  -0.008310
+3453 8068  -1.000000
+3454 4   0.200000
+3454 8057   0.075281
+3454 8061   0.102497
+3454 8063   1.000000
+3454 8065   0.022222
+3454 8067  -1.000000
+3455 4   0.200000
+3455 8058   0.075281
+3455 8062   0.102497
+3455 8064   1.000000
+3455 8066   0.022222
+3455 8068  -1.000000
+3456 4   0.031010
+3456 8069   1.000000
+3456 8071   0.039363
+3456 8075  -0.013107
+3456 8079   0.004754
+3456 8081  -1.000000
+3457 4   0.031010
+3457 8070   1.000000
+3457 8072   0.039363
+3457 8076  -0.013107
+3457 8080   0.004754
+3457 8082  -1.000000
+3458 4   0.128990
+3458 8071   0.078885
+3458 8073   1.000000
+3458 8075   0.058415
+3458 8079  -0.008310
+3458 8081  -1.000000
+3459 4   0.128990
+3459 8072   0.078885
+3459 8074   1.000000
+3459 8076   0.058415
+3459 8080  -0.008310
+3459 8082  -1.000000
+3460 4   0.200000
+3460 8071   0.075281
+3460 8075   0.102497
+3460 8077   1.000000
+3460 8079   0.022222
+3460 8081  -1.000000
+3461 4   0.200000
+3461 8072   0.075281
+3461 8076   0.102497
+3461 8078   1.000000
+3461 8080   0.022222
+3461 8082  -1.000000
+3462 4   0.031010
+3462 8083   1.000000
+3462 8085   0.039363
+3462 8089  -0.013107
+3462 8093   0.004754
+3462 8095  -1.000000
+3463 4   0.031010
+3463 8084   1.000000
+3463 8086   0.039363
+3463 8090  -0.013107
+3463 8094   0.004754
+3463 8096  -1.000000
+3464 4   0.128990
+3464 8085   0.078885
+3464 8087   1.000000
+3464 8089   0.058415
+3464 8093  -0.008310
+3464 8095  -1.000000
+3465 4   0.128990
+3465 8086   0.078885
+3465 8088   1.000000
+3465 8090   0.058415
+3465 8094  -0.008310
+3465 8096  -1.000000
+3466 4   0.200000
+3466 8085   0.075281
+3466 8089   0.102497
+3466 8091   1.000000
+3466 8093   0.022222
+3466 8095  -1.000000
+3467 4   0.200000
+3467 8086   0.075281
+3467 8090   0.102497
+3467 8092   1.000000
+3467 8094   0.022222
+3467 8096  -1.000000
+3468 4   0.031010
+3468 8097   1.000000
+3468 8099   0.039363
+3468 8103  -0.013107
+3468 8107   0.004754
+3468 8109  -1.000000
+3469 4   0.031010
+3469 8098   1.000000
+3469 8100   0.039363
+3469 8104  -0.013107
+3469 8108   0.004754
+3469 8110  -1.000000
+3470 4   0.128990
+3470 8099   0.078885
+3470 8101   1.000000
+3470 8103   0.058415
+3470 8107  -0.008310
+3470 8109  -1.000000
+3471 4   0.128990
+3471 8100   0.078885
+3471 8102   1.000000
+3471 8104   0.058415
+3471 8108  -0.008310
+3471 8110  -1.000000
+3472 4   0.200000
+3472 8099   0.075281
+3472 8103   0.102497
+3472 8105   1.000000
+3472 8107   0.022222
+3472 8109  -1.000000
+3473 4   0.200000
+3473 8100   0.075281
+3473 8104   0.102497
+3473 8106   1.000000
+3473 8108   0.022222
+3473 8110  -1.000000
+3474 4   0.031010
+3474 8111   1.000000
+3474 8113   0.039363
+3474 8117  -0.013107
+3474 8121   0.004754
+3474 8123  -1.000000
+3475 4   0.031010
+3475 8112   1.000000
+3475 8114   0.039363
+3475 8118  -0.013107
+3475 8122   0.004754
+3475 8124  -1.000000
+3476 4   0.128990
+3476 8113   0.078885
+3476 8115   1.000000
+3476 8117   0.058415
+3476 8121  -0.008310
+3476 8123  -1.000000
+3477 4   0.128990
+3477 8114   0.078885
+3477 8116   1.000000
+3477 8118   0.058415
+3477 8122  -0.008310
+3477 8124  -1.000000
+3478 4   0.200000
+3478 8113   0.075281
+3478 8117   0.102497
+3478 8119   1.000000
+3478 8121   0.022222
+3478 8123  -1.000000
+3479 4   0.200000
+3479 8114   0.075281
+3479 8118   0.102497
+3479 8120   1.000000
+3479 8122   0.022222
+3479 8124  -1.000000
+3480 4   0.031010
+3480 8125   1.000000
+3480 8127   0.039363
+3480 8131  -0.013107
+3480 8135   0.004754
+3480 8137  -1.000000
+3481 4   0.031010
+3481 8126   1.000000
+3481 8128   0.039363
+3481 8132  -0.013107
+3481 8136   0.004754
+3481 8138  -1.000000
+3482 4   0.128990
+3482 8127   0.078885
+3482 8129   1.000000
+3482 8131   0.058415
+3482 8135  -0.008310
+3482 8137  -1.000000
+3483 4   0.128990
+3483 8128   0.078885
+3483 8130   1.000000
+3483 8132   0.058415
+3483 8136  -0.008310
+3483 8138  -1.000000
+3484 4   0.200000
+3484 8127   0.075281
+3484 8131   0.102497
+3484 8133   1.000000
+3484 8135   0.022222
+3484 8137  -1.000000
+3485 4   0.200000
+3485 8128   0.075281
+3485 8132   0.102497
+3485 8134   1.000000
+3485 8136   0.022222
+3485 8138  -1.000000
+3486 4   0.031010
+3486 8139   1.000000
+3486 8141   0.039363
+3486 8145  -0.013107
+3486 8149   0.004754
+3486 8151  -1.000000
+3487 4   0.031010
+3487 8140   1.000000
+3487 8142   0.039363
+3487 8146  -0.013107
+3487 8150   0.004754
+3487 8152  -1.000000
+3488 4   0.128990
+3488 8141   0.078885
+3488 8143   1.000000
+3488 8145   0.058415
+3488 8149  -0.008310
+3488 8151  -1.000000
+3489 4   0.128990
+3489 8142   0.078885
+3489 8144   1.000000
+3489 8146   0.058415
+3489 8150  -0.008310
+3489 8152  -1.000000
+3490 4   0.200000
+3490 8141   0.075281
+3490 8145   0.102497
+3490 8147   1.000000
+3490 8149   0.022222
+3490 8151  -1.000000
+3491 4   0.200000
+3491 8142   0.075281
+3491 8146   0.102497
+3491 8148   1.000000
+3491 8150   0.022222
+3491 8152  -1.000000
+3492 4   0.031010
+3492 8153   1.000000
+3492 8155   0.039363
+3492 8159  -0.013107
+3492 8163   0.004754
+3492 8165  -1.000000
+3493 4   0.031010
+3493 8154   1.000000
+3493 8156   0.039363
+3493 8160  -0.013107
+3493 8164   0.004754
+3493 8166  -1.000000
+3494 4   0.128990
+3494 8155   0.078885
+3494 8157   1.000000
+3494 8159   0.058415
+3494 8163  -0.008310
+3494 8165  -1.000000
+3495 4   0.128990
+3495 8156   0.078885
+3495 8158   1.000000
+3495 8160   0.058415
+3495 8164  -0.008310
+3495 8166  -1.000000
+3496 4   0.200000
+3496 8155   0.075281
+3496 8159   0.102497
+3496 8161   1.000000
+3496 8163   0.022222
+3496 8165  -1.000000
+3497 4   0.200000
+3497 8156   0.075281
+3497 8160   0.102497
+3497 8162   1.000000
+3497 8164   0.022222
+3497 8166  -1.000000
+3498 4   0.031010
+3498 8167   1.000000
+3498 8169   0.039363
+3498 8173  -0.013107
+3498 8177   0.004754
+3498 8179  -1.000000
+3499 4   0.031010
+3499 8168   1.000000
+3499 8170   0.039363
+3499 8174  -0.013107
+3499 8178   0.004754
+3499 8180  -1.000000
+3500 4   0.128990
+3500 8169   0.078885
+3500 8171   1.000000
+3500 8173   0.058415
+3500 8177  -0.008310
+3500 8179  -1.000000
+3501 4   0.128990
+3501 8170   0.078885
+3501 8172   1.000000
+3501 8174   0.058415
+3501 8178  -0.008310
+3501 8180  -1.000000
+3502 4   0.200000
+3502 8169   0.075281
+3502 8173   0.102497
+3502 8175   1.000000
+3502 8177   0.022222
+3502 8179  -1.000000
+3503 4   0.200000
+3503 8170   0.075281
+3503 8174   0.102497
+3503 8176   1.000000
+3503 8178   0.022222
+3503 8180  -1.000000
+3504 4   0.031010
+3504 8181   1.000000
+3504 8183   0.039363
+3504 8187  -0.013107
+3504 8191   0.004754
+3504 8193  -1.000000
+3505 4   0.031010
+3505 8182   1.000000
+3505 8184   0.039363
+3505 8188  -0.013107
+3505 8192   0.004754
+3505 8194  -1.000000
+3506 4   0.128990
+3506 8183   0.078885
+3506 8185   1.000000
+3506 8187   0.058415
+3506 8191  -0.008310
+3506 8193  -1.000000
+3507 4   0.128990
+3507 8184   0.078885
+3507 8186   1.000000
+3507 8188   0.058415
+3507 8192  -0.008310
+3507 8194  -1.000000
+3508 4   0.200000
+3508 8183   0.075281
+3508 8187   0.102497
+3508 8189   1.000000
+3508 8191   0.022222
+3508 8193  -1.000000
+3509 4   0.200000
+3509 8184   0.075281
+3509 8188   0.102497
+3509 8190   1.000000
+3509 8192   0.022222
+3509 8194  -1.000000
+3510 4   0.031010
+3510 8195   1.000000
+3510 8197   0.039363
+3510 8201  -0.013107
+3510 8205   0.004754
+3510 8207  -1.000000
+3511 4   0.031010
+3511 8196   1.000000
+3511 8198   0.039363
+3511 8202  -0.013107
+3511 8206   0.004754
+3511 8208  -1.000000
+3512 4   0.128990
+3512 8197   0.078885
+3512 8199   1.000000
+3512 8201   0.058415
+3512 8205  -0.008310
+3512 8207  -1.000000
+3513 4   0.128990
+3513 8198   0.078885
+3513 8200   1.000000
+3513 8202   0.058415
+3513 8206  -0.008310
+3513 8208  -1.000000
+3514 4   0.200000
+3514 8197   0.075281
+3514 8201   0.102497
+3514 8203   1.000000
+3514 8205   0.022222
+3514 8207  -1.000000
+3515 4   0.200000
+3515 8198   0.075281
+3515 8202   0.102497
+3515 8204   1.000000
+3515 8206   0.022222
+3515 8208  -1.000000
+3516 4   0.031010
+3516 8209   1.000000
+3516 8211   0.039363
+3516 8215  -0.013107
+3516 8219   0.004754
+3516 8221  -1.000000
+3517 4   0.031010
+3517 8210   1.000000
+3517 8212   0.039363
+3517 8216  -0.013107
+3517 8220   0.004754
+3517 8222  -1.000000
+3518 4   0.128990
+3518 8211   0.078885
+3518 8213   1.000000
+3518 8215   0.058415
+3518 8219  -0.008310
+3518 8221  -1.000000
+3519 4   0.128990
+3519 8212   0.078885
+3519 8214   1.000000
+3519 8216   0.058415
+3519 8220  -0.008310
+3519 8222  -1.000000
+3520 4   0.200000
+3520 8211   0.075281
+3520 8215   0.102497
+3520 8217   1.000000
+3520 8219   0.022222
+3520 8221  -1.000000
+3521 4   0.200000
+3521 8212   0.075281
+3521 8216   0.102497
+3521 8218   1.000000
+3521 8220   0.022222
+3521 8222  -1.000000
+3522 4   0.031010
+3522 8223   1.000000
+3522 8225   0.039363
+3522 8229  -0.013107
+3522 8233   0.004754
+3522 8235  -1.000000
+3523 4   0.031010
+3523 8224   1.000000
+3523 8226   0.039363
+3523 8230  -0.013107
+3523 8234   0.004754
+3523 8236  -1.000000
+3524 4   0.128990
+3524 8225   0.078885
+3524 8227   1.000000
+3524 8229   0.058415
+3524 8233  -0.008310
+3524 8235  -1.000000
+3525 4   0.128990
+3525 8226   0.078885
+3525 8228   1.000000
+3525 8230   0.058415
+3525 8234  -0.008310
+3525 8236  -1.000000
+3526 4   0.200000
+3526 8225   0.075281
+3526 8229   0.102497
+3526 8231   1.000000
+3526 8233   0.022222
+3526 8235  -1.000000
+3527 4   0.200000
+3527 8226   0.075281
+3527 8230   0.102497
+3527 8232   1.000000
+3527 8234   0.022222
+3527 8236  -1.000000
+3528 4   0.031010
+3528 8237   1.000000
+3528 8239   0.039363
+3528 8243  -0.013107
+3528 8247   0.004754
+3528 8249  -1.000000
+3529 4   0.031010
+3529 8238   1.000000
+3529 8240   0.039363
+3529 8244  -0.013107
+3529 8248   0.004754
+3529 8250  -1.000000
+3530 4   0.128990
+3530 8239   0.078885
+3530 8241   1.000000
+3530 8243   0.058415
+3530 8247  -0.008310
+3530 8249  -1.000000
+3531 4   0.128990
+3531 8240   0.078885
+3531 8242   1.000000
+3531 8244   0.058415
+3531 8248  -0.008310
+3531 8250  -1.000000
+3532 4   0.200000
+3532 8239   0.075281
+3532 8243   0.102497
+3532 8245   1.000000
+3532 8247   0.022222
+3532 8249  -1.000000
+3533 4   0.200000
+3533 8240   0.075281
+3533 8244   0.102497
+3533 8246   1.000000
+3533 8248   0.022222
+3533 8250  -1.000000
+3534 4   0.031010
+3534 8251   1.000000
+3534 8253   0.039363
+3534 8257  -0.013107
+3534 8261   0.004754
+3534 8263  -1.000000
+3535 4   0.031010
+3535 8252   1.000000
+3535 8254   0.039363
+3535 8258  -0.013107
+3535 8262   0.004754
+3535 8264  -1.000000
+3536 4   0.128990
+3536 8253   0.078885
+3536 8255   1.000000
+3536 8257   0.058415
+3536 8261  -0.008310
+3536 8263  -1.000000
+3537 4   0.128990
+3537 8254   0.078885
+3537 8256   1.000000
+3537 8258   0.058415
+3537 8262  -0.008310
+3537 8264  -1.000000
+3538 4   0.200000
+3538 8253   0.075281
+3538 8257   0.102497
+3538 8259   1.000000
+3538 8261   0.022222
+3538 8263  -1.000000
+3539 4   0.200000
+3539 8254   0.075281
+3539 8258   0.102497
+3539 8260   1.000000
+3539 8262   0.022222
+3539 8264  -1.000000
+3540 4   0.031010
+3540 8265   1.000000
+3540 8267   0.039363
+3540 8271  -0.013107
+3540 8275   0.004754
+3540 8277  -1.000000
+3541 4   0.031010
+3541 8266   1.000000
+3541 8268   0.039363
+3541 8272  -0.013107
+3541 8276   0.004754
+3541 8278  -1.000000
+3542 4   0.128990
+3542 8267   0.078885
+3542 8269   1.000000
+3542 8271   0.058415
+3542 8275  -0.008310
+3542 8277  -1.000000
+3543 4   0.128990
+3543 8268   0.078885
+3543 8270   1.000000
+3543 8272   0.058415
+3543 8276  -0.008310
+3543 8278  -1.000000
+3544 4   0.200000
+3544 8267   0.075281
+3544 8271   0.102497
+3544 8273   1.000000
+3544 8275   0.022222
+3544 8277  -1.000000
+3545 4   0.200000
+3545 8268   0.075281
+3545 8272   0.102497
+3545 8274   1.000000
+3545 8276   0.022222
+3545 8278  -1.000000
+3546 4   0.031010
+3546 8279   1.000000
+3546 8281   0.039363
+3546 8285  -0.013107
+3546 8289   0.004754
+3546 8291  -1.000000
+3547 4   0.031010
+3547 8280   1.000000
+3547 8282   0.039363
+3547 8286  -0.013107
+3547 8290   0.004754
+3547 8292  -1.000000
+3548 4   0.128990
+3548 8281   0.078885
+3548 8283   1.000000
+3548 8285   0.058415
+3548 8289  -0.008310
+3548 8291  -1.000000
+3549 4   0.128990
+3549 8282   0.078885
+3549 8284   1.000000
+3549 8286   0.058415
+3549 8290  -0.008310
+3549 8292  -1.000000
+3550 4   0.200000
+3550 8281   0.075281
+3550 8285   0.102497
+3550 8287   1.000000
+3550 8289   0.022222
+3550 8291  -1.000000
+3551 4   0.200000
+3551 8282   0.075281
+3551 8286   0.102497
+3551 8288   1.000000
+3551 8290   0.022222
+3551 8292  -1.000000
+3552 4   0.031010
+3552 8293   1.000000
+3552 8295   0.039363
+3552 8299  -0.013107
+3552 8303   0.004754
+3552 8305  -1.000000
+3553 4   0.031010
+3553 8294   1.000000
+3553 8296   0.039363
+3553 8300  -0.013107
+3553 8304   0.004754
+3553 8306  -1.000000
+3554 4   0.128990
+3554 8295   0.078885
+3554 8297   1.000000
+3554 8299   0.058415
+3554 8303  -0.008310
+3554 8305  -1.000000
+3555 4   0.128990
+3555 8296   0.078885
+3555 8298   1.000000
+3555 8300   0.058415
+3555 8304  -0.008310
+3555 8306  -1.000000
+3556 4   0.200000
+3556 8295   0.075281
+3556 8299   0.102497
+3556 8301   1.000000
+3556 8303   0.022222
+3556 8305  -1.000000
+3557 4   0.200000
+3557 8296   0.075281
+3557 8300   0.102497
+3557 8302   1.000000
+3557 8304   0.022222
+3557 8306  -1.000000
+3558 4   0.031010
+3558 8307   1.000000
+3558 8309   0.039363
+3558 8313  -0.013107
+3558 8317   0.004754
+3558 8319  -1.000000
+3559 4   0.031010
+3559 8308   1.000000
+3559 8310   0.039363
+3559 8314  -0.013107
+3559 8318   0.004754
+3559 8320  -1.000000
+3560 4   0.128990
+3560 8309   0.078885
+3560 8311   1.000000
+3560 8313   0.058415
+3560 8317  -0.008310
+3560 8319  -1.000000
+3561 4   0.128990
+3561 8310   0.078885
+3561 8312   1.000000
+3561 8314   0.058415
+3561 8318  -0.008310
+3561 8320  -1.000000
+3562 4   0.200000
+3562 8309   0.075281
+3562 8313   0.102497
+3562 8315   1.000000
+3562 8317   0.022222
+3562 8319  -1.000000
+3563 4   0.200000
+3563 8310   0.075281
+3563 8314   0.102497
+3563 8316   1.000000
+3563 8318   0.022222
+3563 8320  -1.000000
+3564 4   0.031010
+3564 8321   1.000000
+3564 8323   0.039363
+3564 8327  -0.013107
+3564 8331   0.004754
+3564 8333  -1.000000
+3565 4   0.031010
+3565 8322   1.000000
+3565 8324   0.039363
+3565 8328  -0.013107
+3565 8332   0.004754
+3565 8334  -1.000000
+3566 4   0.128990
+3566 8323   0.078885
+3566 8325   1.000000
+3566 8327   0.058415
+3566 8331  -0.008310
+3566 8333  -1.000000
+3567 4   0.128990
+3567 8324   0.078885
+3567 8326   1.000000
+3567 8328   0.058415
+3567 8332  -0.008310
+3567 8334  -1.000000
+3568 4   0.200000
+3568 8323   0.075281
+3568 8327   0.102497
+3568 8329   1.000000
+3568 8331   0.022222
+3568 8333  -1.000000
+3569 4   0.200000
+3569 8324   0.075281
+3569 8328   0.102497
+3569 8330   1.000000
+3569 8332   0.022222
+3569 8334  -1.000000
+3570 4   0.031010
+3570 8335   1.000000
+3570 8337   0.039363
+3570 8341  -0.013107
+3570 8345   0.004754
+3570 8347  -1.000000
+3571 4   0.031010
+3571 8336   1.000000
+3571 8338   0.039363
+3571 8342  -0.013107
+3571 8346   0.004754
+3571 8348  -1.000000
+3572 4   0.128990
+3572 8337   0.078885
+3572 8339   1.000000
+3572 8341   0.058415
+3572 8345  -0.008310
+3572 8347  -1.000000
+3573 4   0.128990
+3573 8338   0.078885
+3573 8340   1.000000
+3573 8342   0.058415
+3573 8346  -0.008310
+3573 8348  -1.000000
+3574 4   0.200000
+3574 8337   0.075281
+3574 8341   0.102497
+3574 8343   1.000000
+3574 8345   0.022222
+3574 8347  -1.000000
+3575 4   0.200000
+3575 8338   0.075281
+3575 8342   0.102497
+3575 8344   1.000000
+3575 8346   0.022222
+3575 8348  -1.000000
+3576 4   0.031010
+3576 8349   1.000000
+3576 8351   0.039363
+3576 8355  -0.013107
+3576 8359   0.004754
+3576 8361  -1.000000
+3577 4   0.031010
+3577 8350   1.000000
+3577 8352   0.039363
+3577 8356  -0.013107
+3577 8360   0.004754
+3577 8362  -1.000000
+3578 4   0.128990
+3578 8351   0.078885
+3578 8353   1.000000
+3578 8355   0.058415
+3578 8359  -0.008310
+3578 8361  -1.000000
+3579 4   0.128990
+3579 8352   0.078885
+3579 8354   1.000000
+3579 8356   0.058415
+3579 8360  -0.008310
+3579 8362  -1.000000
+3580 4   0.200000
+3580 8351   0.075281
+3580 8355   0.102497
+3580 8357   1.000000
+3580 8359   0.022222
+3580 8361  -1.000000
+3581 4   0.200000
+3581 8352   0.075281
+3581 8356   0.102497
+3581 8358   1.000000
+3581 8360   0.022222
+3581 8362  -1.000000
+3582 4   0.031010
+3582 8363   1.000000
+3582 8365   0.039363
+3582 8369  -0.013107
+3582 8373   0.004754
+3582 8375  -1.000000
+3583 4   0.031010
+3583 8364   1.000000
+3583 8366   0.039363
+3583 8370  -0.013107
+3583 8374   0.004754
+3583 8376  -1.000000
+3584 4   0.128990
+3584 8365   0.078885
+3584 8367   1.000000
+3584 8369   0.058415
+3584 8373  -0.008310
+3584 8375  -1.000000
+3585 4   0.128990
+3585 8366   0.078885
+3585 8368   1.000000
+3585 8370   0.058415
+3585 8374  -0.008310
+3585 8376  -1.000000
+3586 4   0.200000
+3586 8365   0.075281
+3586 8369   0.102497
+3586 8371   1.000000
+3586 8373   0.022222
+3586 8375  -1.000000
+3587 4   0.200000
+3587 8366   0.075281
+3587 8370   0.102497
+3587 8372   1.000000
+3587 8374   0.022222
+3587 8376  -1.000000
+3588 4   0.031010
+3588 8377   1.000000
+3588 8379   0.039363
+3588 8383  -0.013107
+3588 8387   0.004754
+3588 8389  -1.000000
+3589 4   0.031010
+3589 8378   1.000000
+3589 8380   0.039363
+3589 8384  -0.013107
+3589 8388   0.004754
+3589 8390  -1.000000
+3590 4   0.128990
+3590 8379   0.078885
+3590 8381   1.000000
+3590 8383   0.058415
+3590 8387  -0.008310
+3590 8389  -1.000000
+3591 4   0.128990
+3591 8380   0.078885
+3591 8382   1.000000
+3591 8384   0.058415
+3591 8388  -0.008310
+3591 8390  -1.000000
+3592 4   0.200000
+3592 8379   0.075281
+3592 8383   0.102497
+3592 8385   1.000000
+3592 8387   0.022222
+3592 8389  -1.000000
+3593 4   0.200000
+3593 8380   0.075281
+3593 8384   0.102497
+3593 8386   1.000000
+3593 8388   0.022222
+3593 8390  -1.000000
+3594 4   0.031010
+3594 8391   1.000000
+3594 8393   0.039363
+3594 8397  -0.013107
+3594 8401   0.004754
+3594 8403  -1.000000
+3595 4   0.031010
+3595 8392   1.000000
+3595 8394   0.039363
+3595 8398  -0.013107
+3595 8402   0.004754
+3595 8404  -1.000000
+3596 4   0.128990
+3596 8393   0.078885
+3596 8395   1.000000
+3596 8397   0.058415
+3596 8401  -0.008310
+3596 8403  -1.000000
+3597 4   0.128990
+3597 8394   0.078885
+3597 8396   1.000000
+3597 8398   0.058415
+3597 8402  -0.008310
+3597 8404  -1.000000
+3598 4   0.200000
+3598 8393   0.075281
+3598 8397   0.102497
+3598 8399   1.000000
+3598 8401   0.022222
+3598 8403  -1.000000
+3599 4   0.200000
+3599 8394   0.075281
+3599 8398   0.102497
+3599 8400   1.000000
+3599 8402   0.022222
+3599 8404  -1.000000
+3600 4   0.200000
+3600 7   0.075281
+3600 11   0.102497
+3600 15   0.022222
+3600 17  -1.000000
+3600 31   1.000000
+3601 4   0.200000
+3601 8   0.075281
+3601 12   0.102497
+3601 16   0.022222
+3601 18  -1.000000
+3601 32   1.000000
+3602 4   0.200000
+3602 21   0.075281
+3602 25   0.102497
+3602 29   0.022222
+3602 31  -1.000000
+3602 45   1.000000
+3603 4   0.200000
+3603 22   0.075281
+3603 26   0.102497
+3603 30   0.022222
+3603 32  -1.000000
+3603 46   1.000000
+3604 4   0.200000
+3604 35   0.075281
+3604 39   0.102497
+3604 43   0.022222
+3604 45  -1.000000
+3604 59   1.000000
+3605 4   0.200000
+3605 36   0.075281
+3605 40   0.102497
+3605 44   0.022222
+3605 46  -1.000000
+3605 60   1.000000
+3606 4   0.200000
+3606 49   0.075281
+3606 53   0.102497
+3606 57   0.022222
+3606 59  -1.000000
+3606 73   1.000000
+3607 4   0.200000
+3607 50   0.075281
+3607 54   0.102497
+3607 58   0.022222
+3607 60  -1.000000
+3607 74   1.000000
+3608 4   0.200000
+3608 77   0.075281
+3608 81   0.102497
+3608 85   0.022222
+3608 87  -1.000000
+3608 101   1.000000
+3609 4   0.200000
+3609 78   0.075281
+3609 82   0.102497
+3609 86   0.022222
+3609 88  -1.000000
+3609 102   1.000000
+3610 4   0.200000
+3610 91   0.075281
+3610 95   0.102497
+3610 99   0.022222
+3610 101  -1.000000
+3610 115   1.000000
+3611 4   0.200000
+3611 92   0.075281
+3611 96   0.102497
+3611 100   0.022222
+3611 102  -1.000000
+3611 116   1.000000
+3612 4   0.200000
+3612 105   0.075281
+3612 109   0.102497
+3612 113   0.022222
+3612 115  -1.000000
+3612 129   1.000000
+3613 4   0.200000
+3613 106   0.075281
+3613 110   0.102497
+3613 114   0.022222
+3613 116  -1.000000
+3613 130   1.000000
+3614 4   0.200000
+3614 119   0.075281
+3614 123   0.102497
+3614 127   0.022222
+3614 129  -1.000000
+3614 143   1.000000
+3615 4   0.200000
+3615 120   0.075281
+3615 124   0.102497
+3615 128   0.022222
+3615 130  -1.000000
+3615 144   1.000000
+3616 4   0.200000
+3616 147   0.075281
+3616 151   0.102497
+3616 155   0.022222
+3616 157  -1.000000
+3616 171   1.000000
+3617 4   0.200000
+3617 148   0.075281
+3617 152   0.102497
+3617 156   0.022222
+3617 158  -1.000000
+3617 172   1.000000
+3618 4   0.200000
+3618 161   0.075281
+3618 165   0.102497
+3618 169   0.022222
+3618 171  -1.000000
+3618 185   1.000000
+3619 4   0.200000
+3619 162   0.075281
+3619 166   0.102497
+3619 170   0.022222
+3619 172  -1.000000
+3619 186   1.000000
+3620 4   0.200000
+3620 175   0.075281
+3620 179   0.102497
+3620 183   0.022222
+3620 185  -1.000000
+3620 199   1.000000
+3621 4   0.200000
+3621 176   0.075281
+3621 180   0.102497
+3621 184   0.022222
+3621 186  -1.000000
+3621 200   1.000000
+3622 4   0.200000
+3622 189   0.075281
+3622 193   0.102497
+3622 197   0.022222
+3622 199  -1.000000
+3622 213   1.000000
+3623 4   0.200000
+3623 190   0.075281
+3623 194   0.102497
+3623 198   0.022222
+3623 200  -1.000000
+3623 214   1.000000
+3624 4   0.200000
+3624 217   0.075281
+3624 221   0.102497
+3624 225   0.022222
+3624 227  -1.000000
+3624 241   1.000000
+3625 4   0.200000
+3625 218   0.075281
+3625 222   0.102497
+3625 226   0.022222
+3625 228  -1.000000
+3625 242   1.000000
+3626 4   0.200000
+3626 231   0.075281
+3626 235   0.102497
+3626 239   0.022222
+3626 241  -1.000000
+3626 255   1.000000
+3627 4   0.200000
+3627 232   0.075281
+3627 236   0.102497
+3627 240   0.022222
+3627 242  -1.000000
+3627 256   1.000000
+3628 4   0.200000
+3628 245   0.075281
+3628 249   0.102497
+3628 253   0.022222
+3628 255  -1.000000
+3628 269   1.000000
+3629 4   0.200000
+3629 246   0.075281
+3629 250   0.102497
+3629 254   0.022222
+3629 256  -1.000000
+3629 270   1.000000
+3630 4   0.200000
+3630 259   0.075281
+3630 263   0.102497
+3630 267   0.022222
+3630 269  -1.000000
+3630 283   1.000000
+3631 4   0.200000
+3631 260   0.075281
+3631 264   0.102497
+3631 268   0.022222
+3631 270  -1.000000
+3631 284   1.000000
+3632 4   0.200000
+3632 287   0.075281
+3632 291   0.102497
+3632 295   0.022222
+3632 297  -1.000000
+3632 311   1.000000
+3633 4   0.200000
+3633 288   0.075281
+3633 292   0.102497
+3633 296   0.022222
+3633 298  -1.000000
+3633 312   1.000000
+3634 4   0.200000
+3634 301   0.075281
+3634 305   0.102497
+3634 309   0.022222
+3634 311  -1.000000
+3634 325   1.000000
+3635 4   0.200000
+3635 302   0.075281
+3635 306   0.102497
+3635 310   0.022222
+3635 312  -1.000000
+3635 326   1.000000
+3636 4   0.200000
+3636 315   0.075281
+3636 319   0.102497
+3636 323   0.022222
+3636 325  -1.000000
+3636 339   1.000000
+3637 4   0.200000
+3637 316   0.075281
+3637 320   0.102497
+3637 324   0.022222
+3637 326  -1.000000
+3637 340   1.000000
+3638 4   0.200000
+3638 329   0.075281
+3638 333   0.102497
+3638 337   0.022222
+3638 339  -1.000000
+3638 353   1.000000
+3639 4   0.200000
+3639 330   0.075281
+3639 334   0.102497
+3639 338   0.022222
+3639 340  -1.000000
+3639 354   1.000000
+3640 4   0.200000
+3640 357   0.075281
+3640 361   0.102497
+3640 365   0.022222
+3640 367  -1.000000
+3640 381   1.000000
+3641 4   0.200000
+3641 358   0.075281
+3641 362   0.102497
+3641 366   0.022222
+3641 368  -1.000000
+3641 382   1.000000
+3642 4   0.200000
+3642 371   0.075281
+3642 375   0.102497
+3642 379   0.022222
+3642 381  -1.000000
+3642 395   1.000000
+3643 4   0.200000
+3643 372   0.075281
+3643 376   0.102497
+3643 380   0.022222
+3643 382  -1.000000
+3643 396   1.000000
+3644 4   0.200000
+3644 385   0.075281
+3644 389   0.102497
+3644 393   0.022222
+3644 395  -1.000000
+3644 409   1.000000
+3645 4   0.200000
+3645 386   0.075281
+3645 390   0.102497
+3645 394   0.022222
+3645 396  -1.000000
+3645 410   1.000000
+3646 4   0.200000
+3646 399   0.075281
+3646 403   0.102497
+3646 407   0.022222
+3646 409  -1.000000
+3646 423   1.000000
+3647 4   0.200000
+3647 400   0.075281
+3647 404   0.102497
+3647 408   0.022222
+3647 410  -1.000000
+3647 424   1.000000
+3648 4   0.200000
+3648 427   0.075281
+3648 431   0.102497
+3648 435   0.022222
+3648 437  -1.000000
+3648 451   1.000000
+3649 4   0.200000
+3649 428   0.075281
+3649 432   0.102497
+3649 436   0.022222
+3649 438  -1.000000
+3649 452   1.000000
+3650 4   0.200000
+3650 441   0.075281
+3650 445   0.102497
+3650 449   0.022222
+3650 451  -1.000000
+3650 465   1.000000
+3651 4   0.200000
+3651 442   0.075281
+3651 446   0.102497
+3651 450   0.022222
+3651 452  -1.000000
+3651 466   1.000000
+3652 4   0.200000
+3652 455   0.075281
+3652 459   0.102497
+3652 463   0.022222
+3652 465  -1.000000
+3652 479   1.000000
+3653 4   0.200000
+3653 456   0.075281
+3653 460   0.102497
+3653 464   0.022222
+3653 466  -1.000000
+3653 480   1.000000
+3654 4   0.200000
+3654 469   0.075281
+3654 473   0.102497
+3654 477   0.022222
+3654 479  -1.000000
+3654 493   1.000000
+3655 4   0.200000
+3655 470   0.075281
+3655 474   0.102497
+3655 478   0.022222
+3655 480  -1.000000
+3655 494   1.000000
+3656 4   0.200000
+3656 497   0.075281
+3656 501   0.102497
+3656 505   0.022222
+3656 507  -1.000000
+3656 521   1.000000
+3657 4   0.200000
+3657 498   0.075281
+3657 502   0.102497
+3657 506   0.022222
+3657 508  -1.000000
+3657 522   1.000000
+3658 4   0.200000
+3658 511   0.075281
+3658 515   0.102497
+3658 519   0.022222
+3658 521  -1.000000
+3658 535   1.000000
+3659 4   0.200000
+3659 512   0.075281
+3659 516   0.102497
+3659 520   0.022222
+3659 522  -1.000000
+3659 536   1.000000
+3660 4   0.200000
+3660 525   0.075281
+3660 529   0.102497
+3660 533   0.022222
+3660 535  -1.000000
+3660 549   1.000000
+3661 4   0.200000
+3661 526   0.075281
+3661 530   0.102497
+3661 534   0.022222
+3661 536  -1.000000
+3661 550   1.000000
+3662 4   0.200000
+3662 539   0.075281
+3662 543   0.102497
+3662 547   0.022222
+3662 549  -1.000000
+3662 563   1.000000
+3663 4   0.200000
+3663 540   0.075281
+3663 544   0.102497
+3663 548   0.022222
+3663 550  -1.000000
+3663 564   1.000000
+3664 4   0.200000
+3664 567   0.075281
+3664 571   0.102497
+3664 575   0.022222
+3664 577  -1.000000
+3664 591   1.000000
+3665 4   0.200000
+3665 568   0.075281
+3665 572   0.102497
+3665 576   0.022222
+3665 578  -1.000000
+3665 592   1.000000
+3666 4   0.200000
+3666 581   0.075281
+3666 585   0.102497
+3666 589   0.022222
+3666 591  -1.000000
+3666 605   1.000000
+3667 4   0.200000
+3667 582   0.075281
+3667 586   0.102497
+3667 590   0.022222
+3667 592  -1.000000
+3667 606   1.000000
+3668 4   0.200000
+3668 595   0.075281
+3668 599   0.102497
+3668 603   0.022222
+3668 605  -1.000000
+3668 619   1.000000
+3669 4   0.200000
+3669 596   0.075281
+3669 600   0.102497
+3669 604   0.022222
+3669 606  -1.000000
+3669 620   1.000000
+3670 4   0.200000
+3670 609   0.075281
+3670 613   0.102497
+3670 617   0.022222
+3670 619  -1.000000
+3670 633   1.000000
+3671 4   0.200000
+3671 610   0.075281
+3671 614   0.102497
+3671 618   0.022222
+3671 620  -1.000000
+3671 634   1.000000
+3672 4   0.200000
+3672 637   0.075281
+3672 641   0.102497
+3672 645   0.022222
+3672 647  -1.000000
+3672 661   1.000000
+3673 4   0.200000
+3673 638   0.075281
+3673 642   0.102497
+3673 646   0.022222
+3673 648  -1.000000
+3673 662   1.000000
+3674 4   0.200000
+3674 651   0.075281
+3674 655   0.102497
+3674 659   0.022222
+3674 661  -1.000000
+3674 675   1.000000
+3675 4   0.200000
+3675 652   0.075281
+3675 656   0.102497
+3675 660   0.022222
+3675 662  -1.000000
+3675 676   1.000000
+3676 4   0.200000
+3676 665   0.075281
+3676 669   0.102497
+3676 673   0.022222
+3676 675  -1.000000
+3676 689   1.000000
+3677 4   0.200000
+3677 666   0.075281
+3677 670   0.102497
+3677 674   0.022222
+3677 676  -1.000000
+3677 690   1.000000
+3678 4   0.200000
+3678 679   0.075281
+3678 683   0.102497
+3678 687   0.022222
+3678 689  -1.000000
+3678 703   1.000000
+3679 4   0.200000
+3679 680   0.075281
+3679 684   0.102497
+3679 688   0.022222
+3679 690  -1.000000
+3679 704   1.000000
+3680 4   0.200000
+3680 707   0.075281
+3680 711   0.102497
+3680 715   0.022222
+3680 717  -1.000000
+3680 731   1.000000
+3681 4   0.200000
+3681 708   0.075281
+3681 712   0.102497
+3681 716   0.022222
+3681 718  -1.000000
+3681 732   1.000000
+3682 4   0.200000
+3682 721   0.075281
+3682 725   0.102497
+3682 729   0.022222
+3682 731  -1.000000
+3682 745   1.000000
+3683 4   0.200000
+3683 722   0.075281
+3683 726   0.102497
+3683 730   0.022222
+3683 732  -1.000000
+3683 746   1.000000
+3684 4   0.200000
+3684 735   0.075281
+3684 739   0.102497
+3684 743   0.022222
+3684 745  -1.000000
+3684 759   1.000000
+3685 4   0.200000
+3685 736   0.075281
+3685 740   0.102497
+3685 744   0.022222
+3685 746  -1.000000
+3685 760   1.000000
+3686 4   0.200000
+3686 749   0.075281
+3686 753   0.102497
+3686 757   0.022222
+3686 759  -1.000000
+3686 773   1.000000
+3687 4   0.200000
+3687 750   0.075281
+3687 754   0.102497
+3687 758   0.022222
+3687 760  -1.000000
+3687 774   1.000000
+3688 4   0.200000
+3688 777   0.075281
+3688 781   0.102497
+3688 785   0.022222
+3688 787  -1.000000
+3688 801   1.000000
+3689 4   0.200000
+3689 778   0.075281
+3689 782   0.102497
+3689 786   0.022222
+3689 788  -1.000000
+3689 802   1.000000
+3690 4   0.200000
+3690 791   0.075281
+3690 795   0.102497
+3690 799   0.022222
+3690 801  -1.000000
+3690 815   1.000000
+3691 4   0.200000
+3691 792   0.075281
+3691 796   0.102497
+3691 800   0.022222
+3691 802  -1.000000
+3691 816   1.000000
+3692 4   0.200000
+3692 805   0.075281
+3692 809   0.102497
+3692 813   0.022222
+3692 815  -1.000000
+3692 829   1.000000
+3693 4   0.200000
+3693 806   0.075281
+3693 810   0.102497
+3693 814   0.022222
+3693 816  -1.000000
+3693 830   1.000000
+3694 4   0.200000
+3694 819   0.075281
+3694 823   0.102497
+3694 827   0.022222
+3694 829  -1.000000
+3694 843   1.000000
+3695 4   0.200000
+3695 820   0.075281
+3695 824   0.102497
+3695 828   0.022222
+3695 830  -1.000000
+3695 844   1.000000
+3696 4   0.200000
+3696 847   0.075281
+3696 851   0.102497
+3696 855   0.022222
+3696 857  -1.000000
+3696 871   1.000000
+3697 4   0.200000
+3697 848   0.075281
+3697 852   0.102497
+3697 856   0.022222
+3697 858  -1.000000
+3697 872   1.000000
+3698 4   0.200000
+3698 861   0.075281
+3698 865   0.102497
+3698 869   0.022222
+3698 871  -1.000000
+3698 885   1.000000
+3699 4   0.200000
+3699 862   0.075281
+3699 866   0.102497
+3699 870   0.022222
+3699 872  -1.000000
+3699 886   1.000000
+3700 4   0.200000
+3700 875   0.075281
+3700 879   0.102497
+3700 883   0.022222
+3700 885  -1.000000
+3700 899   1.000000
+3701 4   0.200000
+3701 876   0.075281
+3701 880   0.102497
+3701 884   0.022222
+3701 886  -1.000000
+3701 900   1.000000
+3702 4   0.200000
+3702 889   0.075281
+3702 893   0.102497
+3702 897   0.022222
+3702 899  -1.000000
+3702 913   1.000000
+3703 4   0.200000
+3703 890   0.075281
+3703 894   0.102497
+3703 898   0.022222
+3703 900  -1.000000
+3703 914   1.000000
+3704 4   0.200000
+3704 917   0.075281
+3704 921   0.102497
+3704 925   0.022222
+3704 927  -1.000000
+3704 941   1.000000
+3705 4   0.200000
+3705 918   0.075281
+3705 922   0.102497
+3705 926   0.022222
+3705 928  -1.000000
+3705 942   1.000000
+3706 4   0.200000
+3706 931   0.075281
+3706 935   0.102497
+3706 939   0.022222
+3706 941  -1.000000
+3706 955   1.000000
+3707 4   0.200000
+3707 932   0.075281
+3707 936   0.102497
+3707 940   0.022222
+3707 942  -1.000000
+3707 956   1.000000
+3708 4   0.200000
+3708 945   0.075281
+3708 949   0.102497
+3708 953   0.022222
+3708 955  -1.000000
+3708 969   1.000000
+3709 4   0.200000
+3709 946   0.075281
+3709 950   0.102497
+3709 954   0.022222
+3709 956  -1.000000
+3709 970   1.000000
+3710 4   0.200000
+3710 959   0.075281
+3710 963   0.102497
+3710 967   0.022222
+3710 969  -1.000000
+3710 983   1.000000
+3711 4   0.200000
+3711 960   0.075281
+3711 964   0.102497
+3711 968   0.022222
+3711 970  -1.000000
+3711 984   1.000000
+3712 4   0.200000
+3712 987   0.075281
+3712 991   0.102497
+3712 995   0.022222
+3712 997  -1.000000
+3712 1011   1.000000
+3713 4   0.200000
+3713 988   0.075281
+3713 992   0.102497
+3713 996   0.022222
+3713 998  -1.000000
+3713 1012   1.000000
+3714 4   0.200000
+3714 1001   0.075281
+3714 1005   0.102497
+3714 1009   0.022222
+3714 1011  -1.000000
+3714 1025   1.000000
+3715 4   0.200000
+3715 1002   0.075281
+3715 1006   0.102497
+3715 1010   0.022222
+3715 1012  -1.000000
+3715 1026   1.000000
+3716 4   0.200000
+3716 1015   0.075281
+3716 1019   0.102497
+3716 1023   0.022222
+3716 1025  -1.000000
+3716 1039   1.000000
+3717 4   0.200000
+3717 1016   0.075281
+3717 1020   0.102497
+3717 1024   0.022222
+3717 1026  -1.000000
+3717 1040   1.000000
+3718 4   0.200000
+3718 1029   0.075281
+3718 1033   0.102497
+3718 1037   0.022222
+3718 1039  -1.000000
+3718 1053   1.000000
+3719 4   0.200000
+3719 1030   0.075281
+3719 1034   0.102497
+3719 1038   0.022222
+3719 1040  -1.000000
+3719 1054   1.000000
+3720 4   0.200000
+3720 1057   0.075281
+3720 1061   0.102497
+3720 1065   0.022222
+3720 1067  -1.000000
+3720 1081   1.000000
+3721 4   0.200000
+3721 1058   0.075281
+3721 1062   0.102497
+3721 1066   0.022222
+3721 1068  -1.000000
+3721 1082   1.000000
+3722 4   0.200000
+3722 1071   0.075281
+3722 1075   0.102497
+3722 1079   0.022222
+3722 1081  -1.000000
+3722 1095   1.000000
+3723 4   0.200000
+3723 1072   0.075281
+3723 1076   0.102497
+3723 1080   0.022222
+3723 1082  -1.000000
+3723 1096   1.000000
+3724 4   0.200000
+3724 1085   0.075281
+3724 1089   0.102497
+3724 1093   0.022222
+3724 1095  -1.000000
+3724 1109   1.000000
+3725 4   0.200000
+3725 1086   0.075281
+3725 1090   0.102497
+3725 1094   0.022222
+3725 1096  -1.000000
+3725 1110   1.000000
+3726 4   0.200000
+3726 1099   0.075281
+3726 1103   0.102497
+3726 1107   0.022222
+3726 1109  -1.000000
+3726 1123   1.000000
+3727 4   0.200000
+3727 1100   0.075281
+3727 1104   0.102497
+3727 1108   0.022222
+3727 1110  -1.000000
+3727 1124   1.000000
+3728 4   0.200000
+3728 1127   0.075281
+3728 1131   0.102497
+3728 1135   0.022222
+3728 1137  -1.000000
+3728 1151   1.000000
+3729 4   0.200000
+3729 1128   0.075281
+3729 1132   0.102497
+3729 1136   0.022222
+3729 1138  -1.000000
+3729 1152   1.000000
+3730 4   0.200000
+3730 1141   0.075281
+3730 1145   0.102497
+3730 1149   0.022222
+3730 1151  -1.000000
+3730 1165   1.000000
+3731 4   0.200000
+3731 1142   0.075281
+3731 1146   0.102497
+3731 1150   0.022222
+3731 1152  -1.000000
+3731 1166   1.000000
+3732 4   0.200000
+3732 1155   0.075281
+3732 1159   0.102497
+3732 1163   0.022222
+3732 1165  -1.000000
+3732 1179   1.000000
+3733 4   0.200000
+3733 1156   0.075281
+3733 1160   0.102497
+3733 1164   0.022222
+3733 1166  -1.000000
+3733 1180   1.000000
+3734 4   0.200000
+3734 1169   0.075281
+3734 1173   0.102497
+3734 1177   0.022222
+3734 1179  -1.000000
+3734 1193   1.000000
+3735 4   0.200000
+3735 1170   0.075281
+3735 1174   0.102497
+3735 1178   0.022222
+3735 1180  -1.000000
+3735 1194   1.000000
+3736 4   0.200000
+3736 1197   0.075281
+3736 1201   0.102497
+3736 1205   0.022222
+3736 1207  -1.000000
+3736 1221   1.000000
+3737 4   0.200000
+3737 1198   0.075281
+3737 1202   0.102497
+3737 1206   0.022222
+3737 1208  -1.000000
+3737 1222   1.000000
+3738 4   0.200000
+3738 1211   0.075281
+3738 1215   0.102497
+3738 1219   0.022222
+3738 1221  -1.000000
+3738 1235   1.000000
+3739 4   0.200000
+3739 1212   0.075281
+3739 1216   0.102497
+3739 1220   0.022222
+3739 1222  -1.000000
+3739 1236   1.000000
+3740 4   0.200000
+3740 1225   0.075281
+3740 1229   0.102497
+3740 1233   0.022222
+3740 1235  -1.000000
+3740 1249   1.000000
+3741 4   0.200000
+3741 1226   0.075281
+3741 1230   0.102497
+3741 1234   0.022222
+3741 1236  -1.000000
+3741 1250   1.000000
+3742 4   0.200000
+3742 1239   0.075281
+3742 1243   0.102497
+3742 1247   0.022222
+3742 1249  -1.000000
+3742 1263   1.000000
+3743 4   0.200000
+3743 1240   0.075281
+3743 1244   0.102497
+3743 1248   0.022222
+3743 1250  -1.000000
+3743 1264   1.000000
+3744 4   0.200000
+3744 1267   0.075281
+3744 1271   0.102497
+3744 1275   0.022222
+3744 1277  -1.000000
+3744 1291   1.000000
+3745 4   0.200000
+3745 1268   0.075281
+3745 1272   0.102497
+3745 1276   0.022222
+3745 1278  -1.000000
+3745 1292   1.000000
+3746 4   0.200000
+3746 1281   0.075281
+3746 1285   0.102497
+3746 1289   0.022222
+3746 1291  -1.000000
+3746 1305   1.000000
+3747 4   0.200000
+3747 1282   0.075281
+3747 1286   0.102497
+3747 1290   0.022222
+3747 1292  -1.000000
+3747 1306   1.000000
+3748 4   0.200000
+3748 1295   0.075281
+3748 1299   0.102497
+3748 1303   0.022222
+3748 1305  -1.000000
+3748 1319   1.000000
+3749 4   0.200000
+3749 1296   0.075281
+3749 1300   0.102497
+3749 1304   0.022222
+3749 1306  -1.000000
+3749 1320   1.000000
+3750 4   0.200000
+3750 1309   0.075281
+3750 1313   0.102497
+3750 1317   0.022222
+3750 1319  -1.000000
+3750 1333   1.000000
+3751 4   0.200000
+3751 1310   0.075281
+3751 1314   0.102497
+3751 1318   0.022222
+3751 1320  -1.000000
+3751 1334   1.000000
+3752 4   0.200000
+3752 1337   0.075281
+3752 1341   0.102497
+3752 1345   0.022222
+3752 1347  -1.000000
+3752 1361   1.000000
+3753 4   0.200000
+3753 1338   0.075281
+3753 1342   0.102497
+3753 1346   0.022222
+3753 1348  -1.000000
+3753 1362   1.000000
+3754 4   0.200000
+3754 1351   0.075281
+3754 1355   0.102497
+3754 1359   0.022222
+3754 1361  -1.000000
+3754 1375   1.000000
+3755 4   0.200000
+3755 1352   0.075281
+3755 1356   0.102497
+3755 1360   0.022222
+3755 1362  -1.000000
+3755 1376   1.000000
+3756 4   0.200000
+3756 1365   0.075281
+3756 1369   0.102497
+3756 1373   0.022222
+3756 1375  -1.000000
+3756 1389   1.000000
+3757 4   0.200000
+3757 1366   0.075281
+3757 1370   0.102497
+3757 1374   0.022222
+3757 1376  -1.000000
+3757 1390   1.000000
+3758 4   0.200000
+3758 1379   0.075281
+3758 1383   0.102497
+3758 1387   0.022222
+3758 1389  -1.000000
+3758 1403   1.000000
+3759 4   0.200000
+3759 1380   0.075281
+3759 1384   0.102497
+3759 1388   0.022222
+3759 1390  -1.000000
+3759 1404   1.000000
+3760 4   0.200000
+3760 1407   0.075281
+3760 1411   0.102497
+3760 1415   0.022222
+3760 1417  -1.000000
+3760 1431   1.000000
+3761 4   0.200000
+3761 1408   0.075281
+3761 1412   0.102497
+3761 1416   0.022222
+3761 1418  -1.000000
+3761 1432   1.000000
+3762 4   0.200000
+3762 1421   0.075281
+3762 1425   0.102497
+3762 1429   0.022222
+3762 1431  -1.000000
+3762 1445   1.000000
+3763 4   0.200000
+3763 1422   0.075281
+3763 1426   0.102497
+3763 1430   0.022222
+3763 1432  -1.000000
+3763 1446   1.000000
+3764 4   0.200000
+3764 1435   0.075281
+3764 1439   0.102497
+3764 1443   0.022222
+3764 1445  -1.000000
+3764 1459   1.000000
+3765 4   0.200000
+3765 1436   0.075281
+3765 1440   0.102497
+3765 1444   0.022222
+3765 1446  -1.000000
+3765 1460   1.000000
+3766 4   0.200000
+3766 1449   0.075281
+3766 1453   0.102497
+3766 1457   0.022222
+3766 1459  -1.000000
+3766 1473   1.000000
+3767 4   0.200000
+3767 1450   0.075281
+3767 1454   0.102497
+3767 1458   0.022222
+3767 1460  -1.000000
+3767 1474   1.000000
+3768 4   0.200000
+3768 1477   0.075281
+3768 1481   0.102497
+3768 1485   0.022222
+3768 1487  -1.000000
+3768 1501   1.000000
+3769 4   0.200000
+3769 1478   0.075281
+3769 1482   0.102497
+3769 1486   0.022222
+3769 1488  -1.000000
+3769 1502   1.000000
+3770 4   0.200000
+3770 1491   0.075281
+3770 1495   0.102497
+3770 1499   0.022222
+3770 1501  -1.000000
+3770 1515   1.000000
+3771 4   0.200000
+3771 1492   0.075281
+3771 1496   0.102497
+3771 1500   0.022222
+3771 1502  -1.000000
+3771 1516   1.000000
+3772 4   0.200000
+3772 1505   0.075281
+3772 1509   0.102497
+3772 1513   0.022222
+3772 1515  -1.000000
+3772 1529   1.000000
+3773 4   0.200000
+3773 1506   0.075281
+3773 1510   0.102497
+3773 1514   0.022222
+3773 1516  -1.000000
+3773 1530   1.000000
+3774 4   0.200000
+3774 1519   0.075281
+3774 1523   0.102497
+3774 1527   0.022222
+3774 1529  -1.000000
+3774 1543   1.000000
+3775 4   0.200000
+3775 1520   0.075281
+3775 1524   0.102497
+3775 1528   0.022222
+3775 1530  -1.000000
+3775 1544   1.000000
+3776 4   0.200000
+3776 1547   0.075281
+3776 1551   0.102497
+3776 1555   0.022222
+3776 1557  -1.000000
+3776 1571   1.000000
+3777 4   0.200000
+3777 1548   0.075281
+3777 1552   0.102497
+3777 1556   0.022222
+3777 1558  -1.000000
+3777 1572   1.000000
+3778 4   0.200000
+3778 1561   0.075281
+3778 1565   0.102497
+3778 1569   0.022222
+3778 1571  -1.000000
+3778 1585   1.000000
+3779 4   0.200000
+3779 1562   0.075281
+3779 1566   0.102497
+3779 1570   0.022222
+3779 1572  -1.000000
+3779 1586   1.000000
+3780 4   0.200000
+3780 1575   0.075281
+3780 1579   0.102497
+3780 1583   0.022222
+3780 1585  -1.000000
+3780 1599   1.000000
+3781 4   0.200000
+3781 1576   0.075281
+3781 1580   0.102497
+3781 1584   0.022222
+3781 1586  -1.000000
+3781 1600   1.000000
+3782 4   0.200000
+3782 1589   0.075281
+3782 1593   0.102497
+3782 1597   0.022222
+3782 1599  -1.000000
+3782 1613   1.000000
+3783 4   0.200000
+3783 1590   0.075281
+3783 1594   0.102497
+3783 1598   0.022222
+3783 1600  -1.000000
+3783 1614   1.000000
+3784 4   0.200000
+3784 1617   0.075281
+3784 1621   0.102497
+3784 1625   0.022222
+3784 1627  -1.000000
+3784 1641   1.000000
+3785 4   0.200000
+3785 1618   0.075281
+3785 1622   0.102497
+3785 1626   0.022222
+3785 1628  -1.000000
+3785 1642   1.000000
+3786 4   0.200000
+3786 1631   0.075281
+3786 1635   0.102497
+3786 1639   0.022222
+3786 1641  -1.000000
+3786 1655   1.000000
+3787 4   0.200000
+3787 1632   0.075281
+3787 1636   0.102497
+3787 1640   0.022222
+3787 1642  -1.000000
+3787 1656   1.000000
+3788 4   0.200000
+3788 1645   0.075281
+3788 1649   0.102497
+3788 1653   0.022222
+3788 1655  -1.000000
+3788 1669   1.000000
+3789 4   0.200000
+3789 1646   0.075281
+3789 1650   0.102497
+3789 1654   0.022222
+3789 1656  -1.000000
+3789 1670   1.000000
+3790 4   0.200000
+3790 1659   0.075281
+3790 1663   0.102497
+3790 1667   0.022222
+3790 1669  -1.000000
+3790 1683   1.000000
+3791 4   0.200000
+3791 1660   0.075281
+3791 1664   0.102497
+3791 1668   0.022222
+3791 1670  -1.000000
+3791 1684   1.000000
+3792 4   0.200000
+3792 1687   0.075281
+3792 1691   0.102497
+3792 1695   0.022222
+3792 1697  -1.000000
+3792 1711   1.000000
+3793 4   0.200000
+3793 1688   0.075281
+3793 1692   0.102497
+3793 1696   0.022222
+3793 1698  -1.000000
+3793 1712   1.000000
+3794 4   0.200000
+3794 1701   0.075281
+3794 1705   0.102497
+3794 1709   0.022222
+3794 1711  -1.000000
+3794 1725   1.000000
+3795 4   0.200000
+3795 1702   0.075281
+3795 1706   0.102497
+3795 1710   0.022222
+3795 1712  -1.000000
+3795 1726   1.000000
+3796 4   0.200000
+3796 1715   0.075281
+3796 1719   0.102497
+3796 1723   0.022222
+3796 1725  -1.000000
+3796 1739   1.000000
+3797 4   0.200000
+3797 1716   0.075281
+3797 1720   0.102497
+3797 1724   0.022222
+3797 1726  -1.000000
+3797 1740   1.000000
+3798 4   0.200000
+3798 1729   0.075281
+3798 1733   0.102497
+3798 1737   0.022222
+3798 1739  -1.000000
+3798 1753   1.000000
+3799 4   0.200000
+3799 1730   0.075281
+3799 1734   0.102497
+3799 1738   0.022222
+3799 1740  -1.000000
+3799 1754   1.000000
+3800 4   0.200000
+3800 1757   0.075281
+3800 1761   0.102497
+3800 1765   0.022222
+3800 1767  -1.000000
+3800 1781   1.000000
+3801 4   0.200000
+3801 1758   0.075281
+3801 1762   0.102497
+3801 1766   0.022222
+3801 1768  -1.000000
+3801 1782   1.000000
+3802 4   0.200000
+3802 1771   0.075281
+3802 1775   0.102497
+3802 1779   0.022222
+3802 1781  -1.000000
+3802 1795   1.000000
+3803 4   0.200000
+3803 1772   0.075281
+3803 1776   0.102497
+3803 1780   0.022222
+3803 1782  -1.000000
+3803 1796   1.000000
+3804 4   0.200000
+3804 1785   0.075281
+3804 1789   0.102497
+3804 1793   0.022222
+3804 1795  -1.000000
+3804 1809   1.000000
+3805 4   0.200000
+3805 1786   0.075281
+3805 1790   0.102497
+3805 1794   0.022222
+3805 1796  -1.000000
+3805 1810   1.000000
+3806 4   0.200000
+3806 1799   0.075281
+3806 1803   0.102497
+3806 1807   0.022222
+3806 1809  -1.000000
+3806 1823   1.000000
+3807 4   0.200000
+3807 1800   0.075281
+3807 1804   0.102497
+3807 1808   0.022222
+3807 1810  -1.000000
+3807 1824   1.000000
+3808 4   0.200000
+3808 1827   0.075281
+3808 1831   0.102497
+3808 1835   0.022222
+3808 1837  -1.000000
+3808 1851   1.000000
+3809 4   0.200000
+3809 1828   0.075281
+3809 1832   0.102497
+3809 1836   0.022222
+3809 1838  -1.000000
+3809 1852   1.000000
+3810 4   0.200000
+3810 1841   0.075281
+3810 1845   0.102497
+3810 1849   0.022222
+3810 1851  -1.000000
+3810 1865   1.000000
+3811 4   0.200000
+3811 1842   0.075281
+3811 1846   0.102497
+3811 1850   0.022222
+3811 1852  -1.000000
+3811 1866   1.000000
+3812 4   0.200000
+3812 1855   0.075281
+3812 1859   0.102497
+3812 1863   0.022222
+3812 1865  -1.000000
+3812 1879   1.000000
+3813 4   0.200000
+3813 1856   0.075281
+3813 1860   0.102497
+3813 1864   0.022222
+3813 1866  -1.000000
+3813 1880   1.000000
+3814 4   0.200000
+3814 1869   0.075281
+3814 1873   0.102497
+3814 1877   0.022222
+3814 1879  -1.000000
+3814 1893   1.000000
+3815 4   0.200000
+3815 1870   0.075281
+3815 1874   0.102497
+3815 1878   0.022222
+3815 1880  -1.000000
+3815 1894   1.000000
+3816 4   0.200000
+3816 1897   0.075281
+3816 1901   0.102497
+3816 1905   0.022222
+3816 1907  -1.000000
+3816 1921   1.000000
+3817 4   0.200000
+3817 1898   0.075281
+3817 1902   0.102497
+3817 1906   0.022222
+3817 1908  -1.000000
+3817 1922   1.000000
+3818 4   0.200000
+3818 1911   0.075281
+3818 1915   0.102497
+3818 1919   0.022222
+3818 1921  -1.000000
+3818 1935   1.000000
+3819 4   0.200000
+3819 1912   0.075281
+3819 1916   0.102497
+3819 1920   0.022222
+3819 1922  -1.000000
+3819 1936   1.000000
+3820 4   0.200000
+3820 1925   0.075281
+3820 1929   0.102497
+3820 1933   0.022222
+3820 1935  -1.000000
+3820 1949   1.000000
+3821 4   0.200000
+3821 1926   0.075281
+3821 1930   0.102497
+3821 1934   0.022222
+3821 1936  -1.000000
+3821 1950   1.000000
+3822 4   0.200000
+3822 1939   0.075281
+3822 1943   0.102497
+3822 1947   0.022222
+3822 1949  -1.000000
+3822 1963   1.000000
+3823 4   0.200000
+3823 1940   0.075281
+3823 1944   0.102497
+3823 1948   0.022222
+3823 1950  -1.000000
+3823 1964   1.000000
+3824 4   0.200000
+3824 1967   0.075281
+3824 1971   0.102497
+3824 1975   0.022222
+3824 1977  -1.000000
+3824 1991   1.000000
+3825 4   0.200000
+3825 1968   0.075281
+3825 1972   0.102497
+3825 1976   0.022222
+3825 1978  -1.000000
+3825 1992   1.000000
+3826 4   0.200000
+3826 1981   0.075281
+3826 1985   0.102497
+3826 1989   0.022222
+3826 1991  -1.000000
+3826 2005   1.000000
+3827 4   0.200000
+3827 1982   0.075281
+3827 1986   0.102497
+3827 1990   0.022222
+3827 1992  -1.000000
+3827 2006   1.000000
+3828 4   0.200000
+3828 1995   0.075281
+3828 1999   0.102497
+3828 2003   0.022222
+3828 2005  -1.000000
+3828 2019   1.000000
+3829 4   0.200000
+3829 1996   0.075281
+3829 2000   0.102497
+3829 2004   0.022222
+3829 2006  -1.000000
+3829 2020   1.000000
+3830 4   0.200000
+3830 2009   0.075281
+3830 2013   0.102497
+3830 2017   0.022222
+3830 2019  -1.000000
+3830 2033   1.000000
+3831 4   0.200000
+3831 2010   0.075281
+3831 2014   0.102497
+3831 2018   0.022222
+3831 2020  -1.000000
+3831 2034   1.000000
+3832 4   0.200000
+3832 2037   0.075281
+3832 2041   0.102497
+3832 2045   0.022222
+3832 2047  -1.000000
+3832 2061   1.000000
+3833 4   0.200000
+3833 2038   0.075281
+3833 2042   0.102497
+3833 2046   0.022222
+3833 2048  -1.000000
+3833 2062   1.000000
+3834 4   0.200000
+3834 2051   0.075281
+3834 2055   0.102497
+3834 2059   0.022222
+3834 2061  -1.000000
+3834 2075   1.000000
+3835 4   0.200000
+3835 2052   0.075281
+3835 2056   0.102497
+3835 2060   0.022222
+3835 2062  -1.000000
+3835 2076   1.000000
+3836 4   0.200000
+3836 2065   0.075281
+3836 2069   0.102497
+3836 2073   0.022222
+3836 2075  -1.000000
+3836 2089   1.000000
+3837 4   0.200000
+3837 2066   0.075281
+3837 2070   0.102497
+3837 2074   0.022222
+3837 2076  -1.000000
+3837 2090   1.000000
+3838 4   0.200000
+3838 2079   0.075281
+3838 2083   0.102497
+3838 2087   0.022222
+3838 2089  -1.000000
+3838 2103   1.000000
+3839 4   0.200000
+3839 2080   0.075281
+3839 2084   0.102497
+3839 2088   0.022222
+3839 2090  -1.000000
+3839 2104   1.000000
+3840 4   0.200000
+3840 2107   0.075281
+3840 2111   0.102497
+3840 2115   0.022222
+3840 2117  -1.000000
+3840 2131   1.000000
+3841 4   0.200000
+3841 2108   0.075281
+3841 2112   0.102497
+3841 2116   0.022222
+3841 2118  -1.000000
+3841 2132   1.000000
+3842 4   0.200000
+3842 2121   0.075281
+3842 2125   0.102497
+3842 2129   0.022222
+3842 2131  -1.000000
+3842 2145   1.000000
+3843 4   0.200000
+3843 2122   0.075281
+3843 2126   0.102497
+3843 2130   0.022222
+3843 2132  -1.000000
+3843 2146   1.000000
+3844 4   0.200000
+3844 2135   0.075281
+3844 2139   0.102497
+3844 2143   0.022222
+3844 2145  -1.000000
+3844 2159   1.000000
+3845 4   0.200000
+3845 2136   0.075281
+3845 2140   0.102497
+3845 2144   0.022222
+3845 2146  -1.000000
+3845 2160   1.000000
+3846 4   0.200000
+3846 2149   0.075281
+3846 2153   0.102497
+3846 2157   0.022222
+3846 2159  -1.000000
+3846 2173   1.000000
+3847 4   0.200000
+3847 2150   0.075281
+3847 2154   0.102497
+3847 2158   0.022222
+3847 2160  -1.000000
+3847 2174   1.000000
+3848 4   0.200000
+3848 2177   0.075281
+3848 2181   0.102497
+3848 2185   0.022222
+3848 2187  -1.000000
+3848 2201   1.000000
+3849 4   0.200000
+3849 2178   0.075281
+3849 2182   0.102497
+3849 2186   0.022222
+3849 2188  -1.000000
+3849 2202   1.000000
+3850 4   0.200000
+3850 2191   0.075281
+3850 2195   0.102497
+3850 2199   0.022222
+3850 2201  -1.000000
+3850 2215   1.000000
+3851 4   0.200000
+3851 2192   0.075281
+3851 2196   0.102497
+3851 2200   0.022222
+3851 2202  -1.000000
+3851 2216   1.000000
+3852 4   0.200000
+3852 2205   0.075281
+3852 2209   0.102497
+3852 2213   0.022222
+3852 2215  -1.000000
+3852 2229   1.000000
+3853 4   0.200000
+3853 2206   0.075281
+3853 2210   0.102497
+3853 2214   0.022222
+3853 2216  -1.000000
+3853 2230   1.000000
+3854 4   0.200000
+3854 2219   0.075281
+3854 2223   0.102497
+3854 2227   0.022222
+3854 2229  -1.000000
+3854 2243   1.000000
+3855 4   0.200000
+3855 2220   0.075281
+3855 2224   0.102497
+3855 2228   0.022222
+3855 2230  -1.000000
+3855 2244   1.000000
+3856 4   0.200000
+3856 2247   0.075281
+3856 2251   0.102497
+3856 2255   0.022222
+3856 2257  -1.000000
+3856 2271   1.000000
+3857 4   0.200000
+3857 2248   0.075281
+3857 2252   0.102497
+3857 2256   0.022222
+3857 2258  -1.000000
+3857 2272   1.000000
+3858 4   0.200000
+3858 2261   0.075281
+3858 2265   0.102497
+3858 2269   0.022222
+3858 2271  -1.000000
+3858 2285   1.000000
+3859 4   0.200000
+3859 2262   0.075281
+3859 2266   0.102497
+3859 2270   0.022222
+3859 2272  -1.000000
+3859 2286   1.000000
+3860 4   0.200000
+3860 2275   0.075281
+3860 2279   0.102497
+3860 2283   0.022222
+3860 2285  -1.000000
+3860 2299   1.000000
+3861 4   0.200000
+3861 2276   0.075281
+3861 2280   0.102497
+3861 2284   0.022222
+3861 2286  -1.000000
+3861 2300   1.000000
+3862 4   0.200000
+3862 2289   0.075281
+3862 2293   0.102497
+3862 2297   0.022222
+3862 2299  -1.000000
+3862 2313   1.000000
+3863 4   0.200000
+3863 2290   0.075281
+3863 2294   0.102497
+3863 2298   0.022222
+3863 2300  -1.000000
+3863 2314   1.000000
+3864 4   0.200000
+3864 2317   0.075281
+3864 2321   0.102497
+3864 2325   0.022222
+3864 2327  -1.000000
+3864 2341   1.000000
+3865 4   0.200000
+3865 2318   0.075281
+3865 2322   0.102497
+3865 2326   0.022222
+3865 2328  -1.000000
+3865 2342   1.000000
+3866 4   0.200000
+3866 2331   0.075281
+3866 2335   0.102497
+3866 2339   0.022222
+3866 2341  -1.000000
+3866 2355   1.000000
+3867 4   0.200000
+3867 2332   0.075281
+3867 2336   0.102497
+3867 2340   0.022222
+3867 2342  -1.000000
+3867 2356   1.000000
+3868 4   0.200000
+3868 2345   0.075281
+3868 2349   0.102497
+3868 2353   0.022222
+3868 2355  -1.000000
+3868 2369   1.000000
+3869 4   0.200000
+3869 2346   0.075281
+3869 2350   0.102497
+3869 2354   0.022222
+3869 2356  -1.000000
+3869 2370   1.000000
+3870 4   0.200000
+3870 2359   0.075281
+3870 2363   0.102497
+3870 2367   0.022222
+3870 2369  -1.000000
+3870 2383   1.000000
+3871 4   0.200000
+3871 2360   0.075281
+3871 2364   0.102497
+3871 2368   0.022222
+3871 2370  -1.000000
+3871 2384   1.000000
+3872 4   0.200000
+3872 2387   0.075281
+3872 2391   0.102497
+3872 2395   0.022222
+3872 2397  -1.000000
+3872 2411   1.000000
+3873 4   0.200000
+3873 2388   0.075281
+3873 2392   0.102497
+3873 2396   0.022222
+3873 2398  -1.000000
+3873 2412   1.000000
+3874 4   0.200000
+3874 2401   0.075281
+3874 2405   0.102497
+3874 2409   0.022222
+3874 2411  -1.000000
+3874 2425   1.000000
+3875 4   0.200000
+3875 2402   0.075281
+3875 2406   0.102497
+3875 2410   0.022222
+3875 2412  -1.000000
+3875 2426   1.000000
+3876 4   0.200000
+3876 2415   0.075281
+3876 2419   0.102497
+3876 2423   0.022222
+3876 2425  -1.000000
+3876 2439   1.000000
+3877 4   0.200000
+3877 2416   0.075281
+3877 2420   0.102497
+3877 2424   0.022222
+3877 2426  -1.000000
+3877 2440   1.000000
+3878 4   0.200000
+3878 2429   0.075281
+3878 2433   0.102497
+3878 2437   0.022222
+3878 2439  -1.000000
+3878 2453   1.000000
+3879 4   0.200000
+3879 2430   0.075281
+3879 2434   0.102497
+3879 2438   0.022222
+3879 2440  -1.000000
+3879 2454   1.000000
+3880 4   0.200000
+3880 2457   0.075281
+3880 2461   0.102497
+3880 2465   0.022222
+3880 2467  -1.000000
+3880 2481   1.000000
+3881 4   0.200000
+3881 2458   0.075281
+3881 2462   0.102497
+3881 2466   0.022222
+3881 2468  -1.000000
+3881 2482   1.000000
+3882 4   0.200000
+3882 2471   0.075281
+3882 2475   0.102497
+3882 2479   0.022222
+3882 2481  -1.000000
+3882 2495   1.000000
+3883 4   0.200000
+3883 2472   0.075281
+3883 2476   0.102497
+3883 2480   0.022222
+3883 2482  -1.000000
+3883 2496   1.000000
+3884 4   0.200000
+3884 2485   0.075281
+3884 2489   0.102497
+3884 2493   0.022222
+3884 2495  -1.000000
+3884 2509   1.000000
+3885 4   0.200000
+3885 2486   0.075281
+3885 2490   0.102497
+3885 2494   0.022222
+3885 2496  -1.000000
+3885 2510   1.000000
+3886 4   0.200000
+3886 2499   0.075281
+3886 2503   0.102497
+3886 2507   0.022222
+3886 2509  -1.000000
+3886 2523   1.000000
+3887 4   0.200000
+3887 2500   0.075281
+3887 2504   0.102497
+3887 2508   0.022222
+3887 2510  -1.000000
+3887 2524   1.000000
+3888 4   0.200000
+3888 2527   0.075281
+3888 2531   0.102497
+3888 2535   0.022222
+3888 2537  -1.000000
+3888 2551   1.000000
+3889 4   0.200000
+3889 2528   0.075281
+3889 2532   0.102497
+3889 2536   0.022222
+3889 2538  -1.000000
+3889 2552   1.000000
+3890 4   0.200000
+3890 2541   0.075281
+3890 2545   0.102497
+3890 2549   0.022222
+3890 2551  -1.000000
+3890 2565   1.000000
+3891 4   0.200000
+3891 2542   0.075281
+3891 2546   0.102497
+3891 2550   0.022222
+3891 2552  -1.000000
+3891 2566   1.000000
+3892 4   0.200000
+3892 2555   0.075281
+3892 2559   0.102497
+3892 2563   0.022222
+3892 2565  -1.000000
+3892 2579   1.000000
+3893 4   0.200000
+3893 2556   0.075281
+3893 2560   0.102497
+3893 2564   0.022222
+3893 2566  -1.000000
+3893 2580   1.000000
+3894 4   0.200000
+3894 2569   0.075281
+3894 2573   0.102497
+3894 2577   0.022222
+3894 2579  -1.000000
+3894 2593   1.000000
+3895 4   0.200000
+3895 2570   0.075281
+3895 2574   0.102497
+3895 2578   0.022222
+3895 2580  -1.000000
+3895 2594   1.000000
+3896 4   0.200000
+3896 2597   0.075281
+3896 2601   0.102497
+3896 2605   0.022222
+3896 2607  -1.000000
+3896 2621   1.000000
+3897 4   0.200000
+3897 2598   0.075281
+3897 2602   0.102497
+3897 2606   0.022222
+3897 2608  -1.000000
+3897 2622   1.000000
+3898 4   0.200000
+3898 2611   0.075281
+3898 2615   0.102497
+3898 2619   0.022222
+3898 2621  -1.000000
+3898 2635   1.000000
+3899 4   0.200000
+3899 2612   0.075281
+3899 2616   0.102497
+3899 2620   0.022222
+3899 2622  -1.000000
+3899 2636   1.000000
+3900 4   0.200000
+3900 2625   0.075281
+3900 2629   0.102497
+3900 2633   0.022222
+3900 2635  -1.000000
+3900 2649   1.000000
+3901 4   0.200000
+3901 2626   0.075281
+3901 2630   0.102497
+3901 2634   0.022222
+3901 2636  -1.000000
+3901 2650   1.000000
+3902 4   0.200000
+3902 2639   0.075281
+3902 2643   0.102497
+3902 2647   0.022222
+3902 2649  -1.000000
+3902 2663   1.000000
+3903 4   0.200000
+3903 2640   0.075281
+3903 2644   0.102497
+3903 2648   0.022222
+3903 2650  -1.000000
+3903 2664   1.000000
+3904 4   0.200000
+3904 2667   0.075281
+3904 2671   0.102497
+3904 2675   0.022222
+3904 2677  -1.000000
+3904 2691   1.000000
+3905 4   0.200000
+3905 2668   0.075281
+3905 2672   0.102497
+3905 2676   0.022222
+3905 2678  -1.000000
+3905 2692   1.000000
+3906 4   0.200000
+3906 2681   0.075281
+3906 2685   0.102497
+3906 2689   0.022222
+3906 2691  -1.000000
+3906 2705   1.000000
+3907 4   0.200000
+3907 2682   0.075281
+3907 2686   0.102497
+3907 2690   0.022222
+3907 2692  -1.000000
+3907 2706   1.000000
+3908 4   0.200000
+3908 2695   0.075281
+3908 2699   0.102497
+3908 2703   0.022222
+3908 2705  -1.000000
+3908 2719   1.000000
+3909 4   0.200000
+3909 2696   0.075281
+3909 2700   0.102497
+3909 2704   0.022222
+3909 2706  -1.000000
+3909 2720   1.000000
+3910 4   0.200000
+3910 2709   0.075281
+3910 2713   0.102497
+3910 2717   0.022222
+3910 2719  -1.000000
+3910 2733   1.000000
+3911 4   0.200000
+3911 2710   0.075281
+3911 2714   0.102497
+3911 2718   0.022222
+3911 2720  -1.000000
+3911 2734   1.000000
+3912 4   0.200000
+3912 2737   0.075281
+3912 2741   0.102497
+3912 2745   0.022222
+3912 2747  -1.000000
+3912 2761   1.000000
+3913 4   0.200000
+3913 2738   0.075281
+3913 2742   0.102497
+3913 2746   0.022222
+3913 2748  -1.000000
+3913 2762   1.000000
+3914 4   0.200000
+3914 2751   0.075281
+3914 2755   0.102497
+3914 2759   0.022222
+3914 2761  -1.000000
+3914 2775   1.000000
+3915 4   0.200000
+3915 2752   0.075281
+3915 2756   0.102497
+3915 2760   0.022222
+3915 2762  -1.000000
+3915 2776   1.000000
+3916 4   0.200000
+3916 2765   0.075281
+3916 2769   0.102497
+3916 2773   0.022222
+3916 2775  -1.000000
+3916 2789   1.000000
+3917 4   0.200000
+3917 2766   0.075281
+3917 2770   0.102497
+3917 2774   0.022222
+3917 2776  -1.000000
+3917 2790   1.000000
+3918 4   0.200000
+3918 2779   0.075281
+3918 2783   0.102497
+3918 2787   0.022222
+3918 2789  -1.000000
+3918 2803   1.000000
+3919 4   0.200000
+3919 2780   0.075281
+3919 2784   0.102497
+3919 2788   0.022222
+3919 2790  -1.000000
+3919 2804   1.000000
+3920 4   0.200000
+3920 2807   0.075281
+3920 2811   0.102497
+3920 2815   0.022222
+3920 2817  -1.000000
+3920 2831   1.000000
+3921 4   0.200000
+3921 2808   0.075281
+3921 2812   0.102497
+3921 2816   0.022222
+3921 2818  -1.000000
+3921 2832   1.000000
+3922 4   0.200000
+3922 2821   0.075281
+3922 2825   0.102497
+3922 2829   0.022222
+3922 2831  -1.000000
+3922 2845   1.000000
+3923 4   0.200000
+3923 2822   0.075281
+3923 2826   0.102497
+3923 2830   0.022222
+3923 2832  -1.000000
+3923 2846   1.000000
+3924 4   0.200000
+3924 2835   0.075281
+3924 2839   0.102497
+3924 2843   0.022222
+3924 2845  -1.000000
+3924 2859   1.000000
+3925 4   0.200000
+3925 2836   0.075281
+3925 2840   0.102497
+3925 2844   0.022222
+3925 2846  -1.000000
+3925 2860   1.000000
+3926 4   0.200000
+3926 2849   0.075281
+3926 2853   0.102497
+3926 2857   0.022222
+3926 2859  -1.000000
+3926 2873   1.000000
+3927 4   0.200000
+3927 2850   0.075281
+3927 2854   0.102497
+3927 2858   0.022222
+3927 2860  -1.000000
+3927 2874   1.000000
+3928 4   0.200000
+3928 2877   0.075281
+3928 2881   0.102497
+3928 2885   0.022222
+3928 2887  -1.000000
+3928 2901   1.000000
+3929 4   0.200000
+3929 2878   0.075281
+3929 2882   0.102497
+3929 2886   0.022222
+3929 2888  -1.000000
+3929 2902   1.000000
+3930 4   0.200000
+3930 2891   0.075281
+3930 2895   0.102497
+3930 2899   0.022222
+3930 2901  -1.000000
+3930 2915   1.000000
+3931 4   0.200000
+3931 2892   0.075281
+3931 2896   0.102497
+3931 2900   0.022222
+3931 2902  -1.000000
+3931 2916   1.000000
+3932 4   0.200000
+3932 2905   0.075281
+3932 2909   0.102497
+3932 2913   0.022222
+3932 2915  -1.000000
+3932 2929   1.000000
+3933 4   0.200000
+3933 2906   0.075281
+3933 2910   0.102497
+3933 2914   0.022222
+3933 2916  -1.000000
+3933 2930   1.000000
+3934 4   0.200000
+3934 2919   0.075281
+3934 2923   0.102497
+3934 2927   0.022222
+3934 2929  -1.000000
+3934 2943   1.000000
+3935 4   0.200000
+3935 2920   0.075281
+3935 2924   0.102497
+3935 2928   0.022222
+3935 2930  -1.000000
+3935 2944   1.000000
+3936 4   0.200000
+3936 2947   0.075281
+3936 2951   0.102497
+3936 2955   0.022222
+3936 2957  -1.000000
+3936 2971   1.000000
+3937 4   0.200000
+3937 2948   0.075281
+3937 2952   0.102497
+3937 2956   0.022222
+3937 2958  -1.000000
+3937 2972   1.000000
+3938 4   0.200000
+3938 2961   0.075281
+3938 2965   0.102497
+3938 2969   0.022222
+3938 2971  -1.000000
+3938 2985   1.000000
+3939 4   0.200000
+3939 2962   0.075281
+3939 2966   0.102497
+3939 2970   0.022222
+3939 2972  -1.000000
+3939 2986   1.000000
+3940 4   0.200000
+3940 2975   0.075281
+3940 2979   0.102497
+3940 2983   0.022222
+3940 2985  -1.000000
+3940 2999   1.000000
+3941 4   0.200000
+3941 2976   0.075281
+3941 2980   0.102497
+3941 2984   0.022222
+3941 2986  -1.000000
+3941 3000   1.000000
+3942 4   0.200000
+3942 2989   0.075281
+3942 2993   0.102497
+3942 2997   0.022222
+3942 2999  -1.000000
+3942 3013   1.000000
+3943 4   0.200000
+3943 2990   0.075281
+3943 2994   0.102497
+3943 2998   0.022222
+3943 3000  -1.000000
+3943 3014   1.000000
+3944 4   0.200000
+3944 3017   0.075281
+3944 3021   0.102497
+3944 3025   0.022222
+3944 3027  -1.000000
+3944 3041   1.000000
+3945 4   0.200000
+3945 3018   0.075281
+3945 3022   0.102497
+3945 3026   0.022222
+3945 3028  -1.000000
+3945 3042   1.000000
+3946 4   0.200000
+3946 3031   0.075281
+3946 3035   0.102497
+3946 3039   0.022222
+3946 3041  -1.000000
+3946 3055   1.000000
+3947 4   0.200000
+3947 3032   0.075281
+3947 3036   0.102497
+3947 3040   0.022222
+3947 3042  -1.000000
+3947 3056   1.000000
+3948 4   0.200000
+3948 3045   0.075281
+3948 3049   0.102497
+3948 3053   0.022222
+3948 3055  -1.000000
+3948 3069   1.000000
+3949 4   0.200000
+3949 3046   0.075281
+3949 3050   0.102497
+3949 3054   0.022222
+3949 3056  -1.000000
+3949 3070   1.000000
+3950 4   0.200000
+3950 3059   0.075281
+3950 3063   0.102497
+3950 3067   0.022222
+3950 3069  -1.000000
+3950 3083   1.000000
+3951 4   0.200000
+3951 3060   0.075281
+3951 3064   0.102497
+3951 3068   0.022222
+3951 3070  -1.000000
+3951 3084   1.000000
+3952 4   0.200000
+3952 3087   0.075281
+3952 3091   0.102497
+3952 3095   0.022222
+3952 3097  -1.000000
+3952 3111   1.000000
+3953 4   0.200000
+3953 3088   0.075281
+3953 3092   0.102497
+3953 3096   0.022222
+3953 3098  -1.000000
+3953 3112   1.000000
+3954 4   0.200000
+3954 3101   0.075281
+3954 3105   0.102497
+3954 3109   0.022222
+3954 3111  -1.000000
+3954 3125   1.000000
+3955 4   0.200000
+3955 3102   0.075281
+3955 3106   0.102497
+3955 3110   0.022222
+3955 3112  -1.000000
+3955 3126   1.000000
+3956 4   0.200000
+3956 3115   0.075281
+3956 3119   0.102497
+3956 3123   0.022222
+3956 3125  -1.000000
+3956 3139   1.000000
+3957 4   0.200000
+3957 3116   0.075281
+3957 3120   0.102497
+3957 3124   0.022222
+3957 3126  -1.000000
+3957 3140   1.000000
+3958 4   0.200000
+3958 3129   0.075281
+3958 3133   0.102497
+3958 3137   0.022222
+3958 3139  -1.000000
+3958 3153   1.000000
+3959 4   0.200000
+3959 3130   0.075281
+3959 3134   0.102497
+3959 3138   0.022222
+3959 3140  -1.000000
+3959 3154   1.000000
+3960 4   0.200000
+3960 3157   0.075281
+3960 3161   0.102497
+3960 3165   0.022222
+3960 3167  -1.000000
+3960 3181   1.000000
+3961 4   0.200000
+3961 3158   0.075281
+3961 3162   0.102497
+3961 3166   0.022222
+3961 3168  -1.000000
+3961 3182   1.000000
+3962 4   0.200000
+3962 3171   0.075281
+3962 3175   0.102497
+3962 3179   0.022222
+3962 3181  -1.000000
+3962 3195   1.000000
+3963 4   0.200000
+3963 3172   0.075281
+3963 3176   0.102497
+3963 3180   0.022222
+3963 3182  -1.000000
+3963 3196   1.000000
+3964 4   0.200000
+3964 3185   0.075281
+3964 3189   0.102497
+3964 3193   0.022222
+3964 3195  -1.000000
+3964 3209   1.000000
+3965 4   0.200000
+3965 3186   0.075281
+3965 3190   0.102497
+3965 3194   0.022222
+3965 3196  -1.000000
+3965 3210   1.000000
+3966 4   0.200000
+3966 3199   0.075281
+3966 3203   0.102497
+3966 3207   0.022222
+3966 3209  -1.000000
+3966 3223   1.000000
+3967 4   0.200000
+3967 3200   0.075281
+3967 3204   0.102497
+3967 3208   0.022222
+3967 3210  -1.000000
+3967 3224   1.000000
+3968 4   0.200000
+3968 3227   0.075281
+3968 3231   0.102497
+3968 3235   0.022222
+3968 3237  -1.000000
+3968 3251   1.000000
+3969 4   0.200000
+3969 3228   0.075281
+3969 3232   0.102497
+3969 3236   0.022222
+3969 3238  -1.000000
+3969 3252   1.000000
+3970 4   0.200000
+3970 3241   0.075281
+3970 3245   0.102497
+3970 3249   0.022222
+3970 3251  -1.000000
+3970 3265   1.000000
+3971 4   0.200000
+3971 3242   0.075281
+3971 3246   0.102497
+3971 3250   0.022222
+3971 3252  -1.000000
+3971 3266   1.000000
+3972 4   0.200000
+3972 3255   0.075281
+3972 3259   0.102497
+3972 3263   0.022222
+3972 3265  -1.000000
+3972 3279   1.000000
+3973 4   0.200000
+3973 3256   0.075281
+3973 3260   0.102497
+3973 3264   0.022222
+3973 3266  -1.000000
+3973 3280   1.000000
+3974 4   0.200000
+3974 3269   0.075281
+3974 3273   0.102497
+3974 3277   0.022222
+3974 3279  -1.000000
+3974 3293   1.000000
+3975 4   0.200000
+3975 3270   0.075281
+3975 3274   0.102497
+3975 3278   0.022222
+3975 3280  -1.000000
+3975 3294   1.000000
+3976 4   0.200000
+3976 3297   0.075281
+3976 3301   0.102497
+3976 3305   0.022222
+3976 3307  -1.000000
+3976 3321   1.000000
+3977 4   0.200000
+3977 3298   0.075281
+3977 3302   0.102497
+3977 3306   0.022222
+3977 3308  -1.000000
+3977 3322   1.000000
+3978 4   0.200000
+3978 3311   0.075281
+3978 3315   0.102497
+3978 3319   0.022222
+3978 3321  -1.000000
+3978 3335   1.000000
+3979 4   0.200000
+3979 3312   0.075281
+3979 3316   0.102497
+3979 3320   0.022222
+3979 3322  -1.000000
+3979 3336   1.000000
+3980 4   0.200000
+3980 3325   0.075281
+3980 3329   0.102497
+3980 3333   0.022222
+3980 3335  -1.000000
+3980 3349   1.000000
+3981 4   0.200000
+3981 3326   0.075281
+3981 3330   0.102497
+3981 3334   0.022222
+3981 3336  -1.000000
+3981 3350   1.000000
+3982 4   0.200000
+3982 3339   0.075281
+3982 3343   0.102497
+3982 3347   0.022222
+3982 3349  -1.000000
+3982 3363   1.000000
+3983 4   0.200000
+3983 3340   0.075281
+3983 3344   0.102497
+3983 3348   0.022222
+3983 3350  -1.000000
+3983 3364   1.000000
+3984 4   0.200000
+3984 3367   0.075281
+3984 3371   0.102497
+3984 3375   0.022222
+3984 3377  -1.000000
+3984 3391   1.000000
+3985 4   0.200000
+3985 3368   0.075281
+3985 3372   0.102497
+3985 3376   0.022222
+3985 3378  -1.000000
+3985 3392   1.000000
+3986 4   0.200000
+3986 3381   0.075281
+3986 3385   0.102497
+3986 3389   0.022222
+3986 3391  -1.000000
+3986 3405   1.000000
+3987 4   0.200000
+3987 3382   0.075281
+3987 3386   0.102497
+3987 3390   0.022222
+3987 3392  -1.000000
+3987 3406   1.000000
+3988 4   0.200000
+3988 3395   0.075281
+3988 3399   0.102497
+3988 3403   0.022222
+3988 3405  -1.000000
+3988 3419   1.000000
+3989 4   0.200000
+3989 3396   0.075281
+3989 3400   0.102497
+3989 3404   0.022222
+3989 3406  -1.000000
+3989 3420   1.000000
+3990 4   0.200000
+3990 3409   0.075281
+3990 3413   0.102497
+3990 3417   0.022222
+3990 3419  -1.000000
+3990 3433   1.000000
+3991 4   0.200000
+3991 3410   0.075281
+3991 3414   0.102497
+3991 3418   0.022222
+3991 3420  -1.000000
+3991 3434   1.000000
+3992 4   0.200000
+3992 3437   0.075281
+3992 3441   0.102497
+3992 3445   0.022222
+3992 3447  -1.000000
+3992 3461   1.000000
+3993 4   0.200000
+3993 3438   0.075281
+3993 3442   0.102497
+3993 3446   0.022222
+3993 3448  -1.000000
+3993 3462   1.000000
+3994 4   0.200000
+3994 3451   0.075281
+3994 3455   0.102497
+3994 3459   0.022222
+3994 3461  -1.000000
+3994 3475   1.000000
+3995 4   0.200000
+3995 3452   0.075281
+3995 3456   0.102497
+3995 3460   0.022222
+3995 3462  -1.000000
+3995 3476   1.000000
+3996 4   0.200000
+3996 3465   0.075281
+3996 3469   0.102497
+3996 3473   0.022222
+3996 3475  -1.000000
+3996 3489   1.000000
+3997 4   0.200000
+3997 3466   0.075281
+3997 3470   0.102497
+3997 3474   0.022222
+3997 3476  -1.000000
+3997 3490   1.000000
+3998 4   0.200000
+3998 3479   0.075281
+3998 3483   0.102497
+3998 3487   0.022222
+3998 3489  -1.000000
+3998 3503   1.000000
+3999 4   0.200000
+3999 3480   0.075281
+3999 3484   0.102497
+3999 3488   0.022222
+3999 3490  -1.000000
+3999 3504   1.000000
+4000 4   0.200000
+4000 3507   0.075281
+4000 3511   0.102497
+4000 3515   0.022222
+4000 3517  -1.000000
+4000 3531   1.000000
+4001 4   0.200000
+4001 3508   0.075281
+4001 3512   0.102497
+4001 3516   0.022222
+4001 3518  -1.000000
+4001 3532   1.000000
+4002 4   0.200000
+4002 3521   0.075281
+4002 3525   0.102497
+4002 3529   0.022222
+4002 3531  -1.000000
+4002 3545   1.000000
+4003 4   0.200000
+4003 3522   0.075281
+4003 3526   0.102497
+4003 3530   0.022222
+4003 3532  -1.000000
+4003 3546   1.000000
+4004 4   0.200000
+4004 3535   0.075281
+4004 3539   0.102497
+4004 3543   0.022222
+4004 3545  -1.000000
+4004 3559   1.000000
+4005 4   0.200000
+4005 3536   0.075281
+4005 3540   0.102497
+4005 3544   0.022222
+4005 3546  -1.000000
+4005 3560   1.000000
+4006 4   0.200000
+4006 3549   0.075281
+4006 3553   0.102497
+4006 3557   0.022222
+4006 3559  -1.000000
+4006 3573   1.000000
+4007 4   0.200000
+4007 3550   0.075281
+4007 3554   0.102497
+4007 3558   0.022222
+4007 3560  -1.000000
+4007 3574   1.000000
+4008 4   0.200000
+4008 3577   0.075281
+4008 3581   0.102497
+4008 3585   0.022222
+4008 3587  -1.000000
+4008 3601   1.000000
+4009 4   0.200000
+4009 3578   0.075281
+4009 3582   0.102497
+4009 3586   0.022222
+4009 3588  -1.000000
+4009 3602   1.000000
+4010 4   0.200000
+4010 3591   0.075281
+4010 3595   0.102497
+4010 3599   0.022222
+4010 3601  -1.000000
+4010 3615   1.000000
+4011 4   0.200000
+4011 3592   0.075281
+4011 3596   0.102497
+4011 3600   0.022222
+4011 3602  -1.000000
+4011 3616   1.000000
+4012 4   0.200000
+4012 3605   0.075281
+4012 3609   0.102497
+4012 3613   0.022222
+4012 3615  -1.000000
+4012 3629   1.000000
+4013 4   0.200000
+4013 3606   0.075281
+4013 3610   0.102497
+4013 3614   0.022222
+4013 3616  -1.000000
+4013 3630   1.000000
+4014 4   0.200000
+4014 3619   0.075281
+4014 3623   0.102497
+4014 3627   0.022222
+4014 3629  -1.000000
+4014 3643   1.000000
+4015 4   0.200000
+4015 3620   0.075281
+4015 3624   0.102497
+4015 3628   0.022222
+4015 3630  -1.000000
+4015 3644   1.000000
+4016 4   0.200000
+4016 3647   0.075281
+4016 3651   0.102497
+4016 3655   0.022222
+4016 3657  -1.000000
+4016 3671   1.000000
+4017 4   0.200000
+4017 3648   0.075281
+4017 3652   0.102497
+4017 3656   0.022222
+4017 3658  -1.000000
+4017 3672   1.000000
+4018 4   0.200000
+4018 3661   0.075281
+4018 3665   0.102497
+4018 3669   0.022222
+4018 3671  -1.000000
+4018 3685   1.000000
+4019 4   0.200000
+4019 3662   0.075281
+4019 3666   0.102497
+4019 3670   0.022222
+4019 3672  -1.000000
+4019 3686   1.000000
+4020 4   0.200000
+4020 3675   0.075281
+4020 3679   0.102497
+4020 3683   0.022222
+4020 3685  -1.000000
+4020 3699   1.000000
+4021 4   0.200000
+4021 3676   0.075281
+4021 3680   0.102497
+4021 3684   0.022222
+4021 3686  -1.000000
+4021 3700   1.000000
+4022 4   0.200000
+4022 3689   0.075281
+4022 3693   0.102497
+4022 3697   0.022222
+4022 3699  -1.000000
+4022 3713   1.000000
+4023 4   0.200000
+4023 3690   0.075281
+4023 3694   0.102497
+4023 3698   0.022222
+4023 3700  -1.000000
+4023 3714   1.000000
+4024 4   0.200000
+4024 3717   0.075281
+4024 3721   0.102497
+4024 3725   0.022222
+4024 3727  -1.000000
+4024 3741   1.000000
+4025 4   0.200000
+4025 3718   0.075281
+4025 3722   0.102497
+4025 3726   0.022222
+4025 3728  -1.000000
+4025 3742   1.000000
+4026 4   0.200000
+4026 3731   0.075281
+4026 3735   0.102497
+4026 3739   0.022222
+4026 3741  -1.000000
+4026 3755   1.000000
+4027 4   0.200000
+4027 3732   0.075281
+4027 3736   0.102497
+4027 3740   0.022222
+4027 3742  -1.000000
+4027 3756   1.000000
+4028 4   0.200000
+4028 3745   0.075281
+4028 3749   0.102497
+4028 3753   0.022222
+4028 3755  -1.000000
+4028 3769   1.000000
+4029 4   0.200000
+4029 3746   0.075281
+4029 3750   0.102497
+4029 3754   0.022222
+4029 3756  -1.000000
+4029 3770   1.000000
+4030 4   0.200000
+4030 3759   0.075281
+4030 3763   0.102497
+4030 3767   0.022222
+4030 3769  -1.000000
+4030 3783   1.000000
+4031 4   0.200000
+4031 3760   0.075281
+4031 3764   0.102497
+4031 3768   0.022222
+4031 3770  -1.000000
+4031 3784   1.000000
+4032 4   0.200000
+4032 3787   0.075281
+4032 3791   0.102497
+4032 3795   0.022222
+4032 3797  -1.000000
+4032 3811   1.000000
+4033 4   0.200000
+4033 3788   0.075281
+4033 3792   0.102497
+4033 3796   0.022222
+4033 3798  -1.000000
+4033 3812   1.000000
+4034 4   0.200000
+4034 3801   0.075281
+4034 3805   0.102497
+4034 3809   0.022222
+4034 3811  -1.000000
+4034 3825   1.000000
+4035 4   0.200000
+4035 3802   0.075281
+4035 3806   0.102497
+4035 3810   0.022222
+4035 3812  -1.000000
+4035 3826   1.000000
+4036 4   0.200000
+4036 3815   0.075281
+4036 3819   0.102497
+4036 3823   0.022222
+4036 3825  -1.000000
+4036 3839   1.000000
+4037 4   0.200000
+4037 3816   0.075281
+4037 3820   0.102497
+4037 3824   0.022222
+4037 3826  -1.000000
+4037 3840   1.000000
+4038 4   0.200000
+4038 3829   0.075281
+4038 3833   0.102497
+4038 3837   0.022222
+4038 3839  -1.000000
+4038 3853   1.000000
+4039 4   0.200000
+4039 3830   0.075281
+4039 3834   0.102497
+4039 3838   0.022222
+4039 3840  -1.000000
+4039 3854   1.000000
+4040 4   0.200000
+4040 3857   0.075281
+4040 3861   0.102497
+4040 3865   0.022222
+4040 3867  -1.000000
+4040 3881   1.000000
+4041 4   0.200000
+4041 3858   0.075281
+4041 3862   0.102497
+4041 3866   0.022222
+4041 3868  -1.000000
+4041 3882   1.000000
+4042 4   0.200000
+4042 3871   0.075281
+4042 3875   0.102497
+4042 3879   0.022222
+4042 3881  -1.000000
+4042 3895   1.000000
+4043 4   0.200000
+4043 3872   0.075281
+4043 3876   0.102497
+4043 3880   0.022222
+4043 3882  -1.000000
+4043 3896   1.000000
+4044 4   0.200000
+4044 3885   0.075281
+4044 3889   0.102497
+4044 3893   0.022222
+4044 3895  -1.000000
+4044 3909   1.000000
+4045 4   0.200000
+4045 3886   0.075281
+4045 3890   0.102497
+4045 3894   0.022222
+4045 3896  -1.000000
+4045 3910   1.000000
+4046 4   0.200000
+4046 3899   0.075281
+4046 3903   0.102497
+4046 3907   0.022222
+4046 3909  -1.000000
+4046 3923   1.000000
+4047 4   0.200000
+4047 3900   0.075281
+4047 3904   0.102497
+4047 3908   0.022222
+4047 3910  -1.000000
+4047 3924   1.000000
+4048 4   0.200000
+4048 3927   0.075281
+4048 3931   0.102497
+4048 3935   0.022222
+4048 3937  -1.000000
+4048 3951   1.000000
+4049 4   0.200000
+4049 3928   0.075281
+4049 3932   0.102497
+4049 3936   0.022222
+4049 3938  -1.000000
+4049 3952   1.000000
+4050 4   0.200000
+4050 3941   0.075281
+4050 3945   0.102497
+4050 3949   0.022222
+4050 3951  -1.000000
+4050 3965   1.000000
+4051 4   0.200000
+4051 3942   0.075281
+4051 3946   0.102497
+4051 3950   0.022222
+4051 3952  -1.000000
+4051 3966   1.000000
+4052 4   0.200000
+4052 3955   0.075281
+4052 3959   0.102497
+4052 3963   0.022222
+4052 3965  -1.000000
+4052 3979   1.000000
+4053 4   0.200000
+4053 3956   0.075281
+4053 3960   0.102497
+4053 3964   0.022222
+4053 3966  -1.000000
+4053 3980   1.000000
+4054 4   0.200000
+4054 3969   0.075281
+4054 3973   0.102497
+4054 3977   0.022222
+4054 3979  -1.000000
+4054 3993   1.000000
+4055 4   0.200000
+4055 3970   0.075281
+4055 3974   0.102497
+4055 3978   0.022222
+4055 3980  -1.000000
+4055 3994   1.000000
+4056 4   0.200000
+4056 3997   0.075281
+4056 4001   0.102497
+4056 4005   0.022222
+4056 4007  -1.000000
+4056 4021   1.000000
+4057 4   0.200000
+4057 3998   0.075281
+4057 4002   0.102497
+4057 4006   0.022222
+4057 4008  -1.000000
+4057 4022   1.000000
+4058 4   0.200000
+4058 4011   0.075281
+4058 4015   0.102497
+4058 4019   0.022222
+4058 4021  -1.000000
+4058 4035   1.000000
+4059 4   0.200000
+4059 4012   0.075281
+4059 4016   0.102497
+4059 4020   0.022222
+4059 4022  -1.000000
+4059 4036   1.000000
+4060 4   0.200000
+4060 4025   0.075281
+4060 4029   0.102497
+4060 4033   0.022222
+4060 4035  -1.000000
+4060 4049   1.000000
+4061 4   0.200000
+4061 4026   0.075281
+4061 4030   0.102497
+4061 4034   0.022222
+4061 4036  -1.000000
+4061 4050   1.000000
+4062 4   0.200000
+4062 4039   0.075281
+4062 4043   0.102497
+4062 4047   0.022222
+4062 4049  -1.000000
+4062 4063   1.000000
+4063 4   0.200000
+4063 4040   0.075281
+4063 4044   0.102497
+4063 4048   0.022222
+4063 4050  -1.000000
+4063 4064   1.000000
+4064 4   0.200000
+4064 4067   0.075281
+4064 4071   0.102497
+4064 4075   0.022222
+4064 4077  -1.000000
+4064 4091   1.000000
+4065 4   0.200000
+4065 4068   0.075281
+4065 4072   0.102497
+4065 4076   0.022222
+4065 4078  -1.000000
+4065 4092   1.000000
+4066 4   0.200000
+4066 4081   0.075281
+4066 4085   0.102497
+4066 4089   0.022222
+4066 4091  -1.000000
+4066 4105   1.000000
+4067 4   0.200000
+4067 4082   0.075281
+4067 4086   0.102497
+4067 4090   0.022222
+4067 4092  -1.000000
+4067 4106   1.000000
+4068 4   0.200000
+4068 4095   0.075281
+4068 4099   0.102497
+4068 4103   0.022222
+4068 4105  -1.000000
+4068 4119   1.000000
+4069 4   0.200000
+4069 4096   0.075281
+4069 4100   0.102497
+4069 4104   0.022222
+4069 4106  -1.000000
+4069 4120   1.000000
+4070 4   0.200000
+4070 4109   0.075281
+4070 4113   0.102497
+4070 4117   0.022222
+4070 4119  -1.000000
+4070 4133   1.000000
+4071 4   0.200000
+4071 4110   0.075281
+4071 4114   0.102497
+4071 4118   0.022222
+4071 4120  -1.000000
+4071 4134   1.000000
+4072 4   0.200000
+4072 4137   0.075281
+4072 4141   0.102497
+4072 4145   0.022222
+4072 4147  -1.000000
+4072 4161   1.000000
+4073 4   0.200000
+4073 4138   0.075281
+4073 4142   0.102497
+4073 4146   0.022222
+4073 4148  -1.000000
+4073 4162   1.000000
+4074 4   0.200000
+4074 4151   0.075281
+4074 4155   0.102497
+4074 4159   0.022222
+4074 4161  -1.000000
+4074 4175   1.000000
+4075 4   0.200000
+4075 4152   0.075281
+4075 4156   0.102497
+4075 4160   0.022222
+4075 4162  -1.000000
+4075 4176   1.000000
+4076 4   0.200000
+4076 4165   0.075281
+4076 4169   0.102497
+4076 4173   0.022222
+4076 4175  -1.000000
+4076 4189   1.000000
+4077 4   0.200000
+4077 4166   0.075281
+4077 4170   0.102497
+4077 4174   0.022222
+4077 4176  -1.000000
+4077 4190   1.000000
+4078 4   0.200000
+4078 4179   0.075281
+4078 4183   0.102497
+4078 4187   0.022222
+4078 4189  -1.000000
+4078 4203   1.000000
+4079 4   0.200000
+4079 4180   0.075281
+4079 4184   0.102497
+4079 4188   0.022222
+4079 4190  -1.000000
+4079 4204   1.000000
+4080 4   0.200000
+4080 4207   0.075281
+4080 4211   0.102497
+4080 4215   0.022222
+4080 4217  -1.000000
+4080 4231   1.000000
+4081 4   0.200000
+4081 4208   0.075281
+4081 4212   0.102497
+4081 4216   0.022222
+4081 4218  -1.000000
+4081 4232   1.000000
+4082 4   0.200000
+4082 4221   0.075281
+4082 4225   0.102497
+4082 4229   0.022222
+4082 4231  -1.000000
+4082 4245   1.000000
+4083 4   0.200000
+4083 4222   0.075281
+4083 4226   0.102497
+4083 4230   0.022222
+4083 4232  -1.000000
+4083 4246   1.000000
+4084 4   0.200000
+4084 4235   0.075281
+4084 4239   0.102497
+4084 4243   0.022222
+4084 4245  -1.000000
+4084 4259   1.000000
+4085 4   0.200000
+4085 4236   0.075281
+4085 4240   0.102497
+4085 4244   0.022222
+4085 4246  -1.000000
+4085 4260   1.000000
+4086 4   0.200000
+4086 4249   0.075281
+4086 4253   0.102497
+4086 4257   0.022222
+4086 4259  -1.000000
+4086 4273   1.000000
+4087 4   0.200000
+4087 4250   0.075281
+4087 4254   0.102497
+4087 4258   0.022222
+4087 4260  -1.000000
+4087 4274   1.000000
+4088 4   0.200000
+4088 4277   0.075281
+4088 4281   0.102497
+4088 4285   0.022222
+4088 4287  -1.000000
+4088 4301   1.000000
+4089 4   0.200000
+4089 4278   0.075281
+4089 4282   0.102497
+4089 4286   0.022222
+4089 4288  -1.000000
+4089 4302   1.000000
+4090 4   0.200000
+4090 4291   0.075281
+4090 4295   0.102497
+4090 4299   0.022222
+4090 4301  -1.000000
+4090 4315   1.000000
+4091 4   0.200000
+4091 4292   0.075281
+4091 4296   0.102497
+4091 4300   0.022222
+4091 4302  -1.000000
+4091 4316   1.000000
+4092 4   0.200000
+4092 4305   0.075281
+4092 4309   0.102497
+4092 4313   0.022222
+4092 4315  -1.000000
+4092 4329   1.000000
+4093 4   0.200000
+4093 4306   0.075281
+4093 4310   0.102497
+4093 4314   0.022222
+4093 4316  -1.000000
+4093 4330   1.000000
+4094 4   0.200000
+4094 4319   0.075281
+4094 4323   0.102497
+4094 4327   0.022222
+4094 4329  -1.000000
+4094 4343   1.000000
+4095 4   0.200000
+4095 4320   0.075281
+4095 4324   0.102497
+4095 4328   0.022222
+4095 4330  -1.000000
+4095 4344   1.000000
+4096 4   0.200000
+4096 4347   0.075281
+4096 4351   0.102497
+4096 4355   0.022222
+4096 4357  -1.000000
+4096 4371   1.000000
+4097 4   0.200000
+4097 4348   0.075281
+4097 4352   0.102497
+4097 4356   0.022222
+4097 4358  -1.000000
+4097 4372   1.000000
+4098 4   0.200000
+4098 4361   0.075281
+4098 4365   0.102497
+4098 4369   0.022222
+4098 4371  -1.000000
+4098 4385   1.000000
+4099 4   0.200000
+4099 4362   0.075281
+4099 4366   0.102497
+4099 4370   0.022222
+4099 4372  -1.000000
+4099 4386   1.000000
+4100 4   0.200000
+4100 4375   0.075281
+4100 4379   0.102497
+4100 4383   0.022222
+4100 4385  -1.000000
+4100 4399   1.000000
+4101 4   0.200000
+4101 4376   0.075281
+4101 4380   0.102497
+4101 4384   0.022222
+4101 4386  -1.000000
+4101 4400   1.000000
+4102 4   0.200000
+4102 4389   0.075281
+4102 4393   0.102497
+4102 4397   0.022222
+4102 4399  -1.000000
+4102 4413   1.000000
+4103 4   0.200000
+4103 4390   0.075281
+4103 4394   0.102497
+4103 4398   0.022222
+4103 4400  -1.000000
+4103 4414   1.000000
+4104 4   0.200000
+4104 4417   0.075281
+4104 4421   0.102497
+4104 4425   0.022222
+4104 4427  -1.000000
+4104 4441   1.000000
+4105 4   0.200000
+4105 4418   0.075281
+4105 4422   0.102497
+4105 4426   0.022222
+4105 4428  -1.000000
+4105 4442   1.000000
+4106 4   0.200000
+4106 4431   0.075281
+4106 4435   0.102497
+4106 4439   0.022222
+4106 4441  -1.000000
+4106 4455   1.000000
+4107 4   0.200000
+4107 4432   0.075281
+4107 4436   0.102497
+4107 4440   0.022222
+4107 4442  -1.000000
+4107 4456   1.000000
+4108 4   0.200000
+4108 4445   0.075281
+4108 4449   0.102497
+4108 4453   0.022222
+4108 4455  -1.000000
+4108 4469   1.000000
+4109 4   0.200000
+4109 4446   0.075281
+4109 4450   0.102497
+4109 4454   0.022222
+4109 4456  -1.000000
+4109 4470   1.000000
+4110 4   0.200000
+4110 4459   0.075281
+4110 4463   0.102497
+4110 4467   0.022222
+4110 4469  -1.000000
+4110 4483   1.000000
+4111 4   0.200000
+4111 4460   0.075281
+4111 4464   0.102497
+4111 4468   0.022222
+4111 4470  -1.000000
+4111 4484   1.000000
+4112 4   0.200000
+4112 4487   0.075281
+4112 4491   0.102497
+4112 4495   0.022222
+4112 4497  -1.000000
+4112 4511   1.000000
+4113 4   0.200000
+4113 4488   0.075281
+4113 4492   0.102497
+4113 4496   0.022222
+4113 4498  -1.000000
+4113 4512   1.000000
+4114 4   0.200000
+4114 4501   0.075281
+4114 4505   0.102497
+4114 4509   0.022222
+4114 4511  -1.000000
+4114 4525   1.000000
+4115 4   0.200000
+4115 4502   0.075281
+4115 4506   0.102497
+4115 4510   0.022222
+4115 4512  -1.000000
+4115 4526   1.000000
+4116 4   0.200000
+4116 4515   0.075281
+4116 4519   0.102497
+4116 4523   0.022222
+4116 4525  -1.000000
+4116 4539   1.000000
+4117 4   0.200000
+4117 4516   0.075281
+4117 4520   0.102497
+4117 4524   0.022222
+4117 4526  -1.000000
+4117 4540   1.000000
+4118 4   0.200000
+4118 4529   0.075281
+4118 4533   0.102497
+4118 4537   0.022222
+4118 4539  -1.000000
+4118 4553   1.000000
+4119 4   0.200000
+4119 4530   0.075281
+4119 4534   0.102497
+4119 4538   0.022222
+4119 4540  -1.000000
+4119 4554   1.000000
+4120 4   0.200000
+4120 4557   0.075281
+4120 4561   0.102497
+4120 4565   0.022222
+4120 4567  -1.000000
+4120 4581   1.000000
+4121 4   0.200000
+4121 4558   0.075281
+4121 4562   0.102497
+4121 4566   0.022222
+4121 4568  -1.000000
+4121 4582   1.000000
+4122 4   0.200000
+4122 4571   0.075281
+4122 4575   0.102497
+4122 4579   0.022222
+4122 4581  -1.000000
+4122 4595   1.000000
+4123 4   0.200000
+4123 4572   0.075281
+4123 4576   0.102497
+4123 4580   0.022222
+4123 4582  -1.000000
+4123 4596   1.000000
+4124 4   0.200000
+4124 4585   0.075281
+4124 4589   0.102497
+4124 4593   0.022222
+4124 4595  -1.000000
+4124 4609   1.000000
+4125 4   0.200000
+4125 4586   0.075281
+4125 4590   0.102497
+4125 4594   0.022222
+4125 4596  -1.000000
+4125 4610   1.000000
+4126 4   0.200000
+4126 4599   0.075281
+4126 4603   0.102497
+4126 4607   0.022222
+4126 4609  -1.000000
+4126 4623   1.000000
+4127 4   0.200000
+4127 4600   0.075281
+4127 4604   0.102497
+4127 4608   0.022222
+4127 4610  -1.000000
+4127 4624   1.000000
+4128 4   0.200000
+4128 4627   0.075281
+4128 4631   0.102497
+4128 4635   0.022222
+4128 4637  -1.000000
+4128 4651   1.000000
+4129 4   0.200000
+4129 4628   0.075281
+4129 4632   0.102497
+4129 4636   0.022222
+4129 4638  -1.000000
+4129 4652   1.000000
+4130 4   0.200000
+4130 4641   0.075281
+4130 4645   0.102497
+4130 4649   0.022222
+4130 4651  -1.000000
+4130 4665   1.000000
+4131 4   0.200000
+4131 4642   0.075281
+4131 4646   0.102497
+4131 4650   0.022222
+4131 4652  -1.000000
+4131 4666   1.000000
+4132 4   0.200000
+4132 4655   0.075281
+4132 4659   0.102497
+4132 4663   0.022222
+4132 4665  -1.000000
+4132 4679   1.000000
+4133 4   0.200000
+4133 4656   0.075281
+4133 4660   0.102497
+4133 4664   0.022222
+4133 4666  -1.000000
+4133 4680   1.000000
+4134 4   0.200000
+4134 4669   0.075281
+4134 4673   0.102497
+4134 4677   0.022222
+4134 4679  -1.000000
+4134 4693   1.000000
+4135 4   0.200000
+4135 4670   0.075281
+4135 4674   0.102497
+4135 4678   0.022222
+4135 4680  -1.000000
+4135 4694   1.000000
+4136 4   0.200000
+4136 4697   0.075281
+4136 4701   0.102497
+4136 4705   0.022222
+4136 4707  -1.000000
+4136 4721   1.000000
+4137 4   0.200000
+4137 4698   0.075281
+4137 4702   0.102497
+4137 4706   0.022222
+4137 4708  -1.000000
+4137 4722   1.000000
+4138 4   0.200000
+4138 4711   0.075281
+4138 4715   0.102497
+4138 4719   0.022222
+4138 4721  -1.000000
+4138 4735   1.000000
+4139 4   0.200000
+4139 4712   0.075281
+4139 4716   0.102497
+4139 4720   0.022222
+4139 4722  -1.000000
+4139 4736   1.000000
+4140 4   0.200000
+4140 4725   0.075281
+4140 4729   0.102497
+4140 4733   0.022222
+4140 4735  -1.000000
+4140 4749   1.000000
+4141 4   0.200000
+4141 4726   0.075281
+4141 4730   0.102497
+4141 4734   0.022222
+4141 4736  -1.000000
+4141 4750   1.000000
+4142 4   0.200000
+4142 4739   0.075281
+4142 4743   0.102497
+4142 4747   0.022222
+4142 4749  -1.000000
+4142 4763   1.000000
+4143 4   0.200000
+4143 4740   0.075281
+4143 4744   0.102497
+4143 4748   0.022222
+4143 4750  -1.000000
+4143 4764   1.000000
+4144 4   0.200000
+4144 4767   0.075281
+4144 4771   0.102497
+4144 4775   0.022222
+4144 4777  -1.000000
+4144 4791   1.000000
+4145 4   0.200000
+4145 4768   0.075281
+4145 4772   0.102497
+4145 4776   0.022222
+4145 4778  -1.000000
+4145 4792   1.000000
+4146 4   0.200000
+4146 4781   0.075281
+4146 4785   0.102497
+4146 4789   0.022222
+4146 4791  -1.000000
+4146 4805   1.000000
+4147 4   0.200000
+4147 4782   0.075281
+4147 4786   0.102497
+4147 4790   0.022222
+4147 4792  -1.000000
+4147 4806   1.000000
+4148 4   0.200000
+4148 4795   0.075281
+4148 4799   0.102497
+4148 4803   0.022222
+4148 4805  -1.000000
+4148 4819   1.000000
+4149 4   0.200000
+4149 4796   0.075281
+4149 4800   0.102497
+4149 4804   0.022222
+4149 4806  -1.000000
+4149 4820   1.000000
+4150 4   0.200000
+4150 4809   0.075281
+4150 4813   0.102497
+4150 4817   0.022222
+4150 4819  -1.000000
+4150 4833   1.000000
+4151 4   0.200000
+4151 4810   0.075281
+4151 4814   0.102497
+4151 4818   0.022222
+4151 4820  -1.000000
+4151 4834   1.000000
+4152 4   0.200000
+4152 4837   0.075281
+4152 4841   0.102497
+4152 4845   0.022222
+4152 4847  -1.000000
+4152 4861   1.000000
+4153 4   0.200000
+4153 4838   0.075281
+4153 4842   0.102497
+4153 4846   0.022222
+4153 4848  -1.000000
+4153 4862   1.000000
+4154 4   0.200000
+4154 4851   0.075281
+4154 4855   0.102497
+4154 4859   0.022222
+4154 4861  -1.000000
+4154 4875   1.000000
+4155 4   0.200000
+4155 4852   0.075281
+4155 4856   0.102497
+4155 4860   0.022222
+4155 4862  -1.000000
+4155 4876   1.000000
+4156 4   0.200000
+4156 4865   0.075281
+4156 4869   0.102497
+4156 4873   0.022222
+4156 4875  -1.000000
+4156 4889   1.000000
+4157 4   0.200000
+4157 4866   0.075281
+4157 4870   0.102497
+4157 4874   0.022222
+4157 4876  -1.000000
+4157 4890   1.000000
+4158 4   0.200000
+4158 4879   0.075281
+4158 4883   0.102497
+4158 4887   0.022222
+4158 4889  -1.000000
+4158 4903   1.000000
+4159 4   0.200000
+4159 4880   0.075281
+4159 4884   0.102497
+4159 4888   0.022222
+4159 4890  -1.000000
+4159 4904   1.000000
+4160 4   0.200000
+4160 4907   0.075281
+4160 4911   0.102497
+4160 4915   0.022222
+4160 4917  -1.000000
+4160 4931   1.000000
+4161 4   0.200000
+4161 4908   0.075281
+4161 4912   0.102497
+4161 4916   0.022222
+4161 4918  -1.000000
+4161 4932   1.000000
+4162 4   0.200000
+4162 4921   0.075281
+4162 4925   0.102497
+4162 4929   0.022222
+4162 4931  -1.000000
+4162 4945   1.000000
+4163 4   0.200000
+4163 4922   0.075281
+4163 4926   0.102497
+4163 4930   0.022222
+4163 4932  -1.000000
+4163 4946   1.000000
+4164 4   0.200000
+4164 4935   0.075281
+4164 4939   0.102497
+4164 4943   0.022222
+4164 4945  -1.000000
+4164 4959   1.000000
+4165 4   0.200000
+4165 4936   0.075281
+4165 4940   0.102497
+4165 4944   0.022222
+4165 4946  -1.000000
+4165 4960   1.000000
+4166 4   0.200000
+4166 4949   0.075281
+4166 4953   0.102497
+4166 4957   0.022222
+4166 4959  -1.000000
+4166 4973   1.000000
+4167 4   0.200000
+4167 4950   0.075281
+4167 4954   0.102497
+4167 4958   0.022222
+4167 4960  -1.000000
+4167 4974   1.000000
+4168 4   0.200000
+4168 4977   0.075281
+4168 4981   0.102497
+4168 4985   0.022222
+4168 4987  -1.000000
+4168 5001   1.000000
+4169 4   0.200000
+4169 4978   0.075281
+4169 4982   0.102497
+4169 4986   0.022222
+4169 4988  -1.000000
+4169 5002   1.000000
+4170 4   0.200000
+4170 4991   0.075281
+4170 4995   0.102497
+4170 4999   0.022222
+4170 5001  -1.000000
+4170 5015   1.000000
+4171 4   0.200000
+4171 4992   0.075281
+4171 4996   0.102497
+4171 5000   0.022222
+4171 5002  -1.000000
+4171 5016   1.000000
+4172 4   0.200000
+4172 5005   0.075281
+4172 5009   0.102497
+4172 5013   0.022222
+4172 5015  -1.000000
+4172 5029   1.000000
+4173 4   0.200000
+4173 5006   0.075281
+4173 5010   0.102497
+4173 5014   0.022222
+4173 5016  -1.000000
+4173 5030   1.000000
+4174 4   0.200000
+4174 5019   0.075281
+4174 5023   0.102497
+4174 5027   0.022222
+4174 5029  -1.000000
+4174 5043   1.000000
+4175 4   0.200000
+4175 5020   0.075281
+4175 5024   0.102497
+4175 5028   0.022222
+4175 5030  -1.000000
+4175 5044   1.000000
+4176 4   0.200000
+4176 5047   0.075281
+4176 5051   0.102497
+4176 5055   0.022222
+4176 5057  -1.000000
+4176 5071   1.000000
+4177 4   0.200000
+4177 5048   0.075281
+4177 5052   0.102497
+4177 5056   0.022222
+4177 5058  -1.000000
+4177 5072   1.000000
+4178 4   0.200000
+4178 5061   0.075281
+4178 5065   0.102497
+4178 5069   0.022222
+4178 5071  -1.000000
+4178 5085   1.000000
+4179 4   0.200000
+4179 5062   0.075281
+4179 5066   0.102497
+4179 5070   0.022222
+4179 5072  -1.000000
+4179 5086   1.000000
+4180 4   0.200000
+4180 5075   0.075281
+4180 5079   0.102497
+4180 5083   0.022222
+4180 5085  -1.000000
+4180 5099   1.000000
+4181 4   0.200000
+4181 5076   0.075281
+4181 5080   0.102497
+4181 5084   0.022222
+4181 5086  -1.000000
+4181 5100   1.000000
+4182 4   0.200000
+4182 5089   0.075281
+4182 5093   0.102497
+4182 5097   0.022222
+4182 5099  -1.000000
+4182 5113   1.000000
+4183 4   0.200000
+4183 5090   0.075281
+4183 5094   0.102497
+4183 5098   0.022222
+4183 5100  -1.000000
+4183 5114   1.000000
+4184 4   0.200000
+4184 5117   0.075281
+4184 5121   0.102497
+4184 5125   0.022222
+4184 5127  -1.000000
+4184 5141   1.000000
+4185 4   0.200000
+4185 5118   0.075281
+4185 5122   0.102497
+4185 5126   0.022222
+4185 5128  -1.000000
+4185 5142   1.000000
+4186 4   0.200000
+4186 5131   0.075281
+4186 5135   0.102497
+4186 5139   0.022222
+4186 5141  -1.000000
+4186 5155   1.000000
+4187 4   0.200000
+4187 5132   0.075281
+4187 5136   0.102497
+4187 5140   0.022222
+4187 5142  -1.000000
+4187 5156   1.000000
+4188 4   0.200000
+4188 5145   0.075281
+4188 5149   0.102497
+4188 5153   0.022222
+4188 5155  -1.000000
+4188 5169   1.000000
+4189 4   0.200000
+4189 5146   0.075281
+4189 5150   0.102497
+4189 5154   0.022222
+4189 5156  -1.000000
+4189 5170   1.000000
+4190 4   0.200000
+4190 5159   0.075281
+4190 5163   0.102497
+4190 5167   0.022222
+4190 5169  -1.000000
+4190 5183   1.000000
+4191 4   0.200000
+4191 5160   0.075281
+4191 5164   0.102497
+4191 5168   0.022222
+4191 5170  -1.000000
+4191 5184   1.000000
+4192 4   0.200000
+4192 5187   0.075281
+4192 5191   0.102497
+4192 5195   0.022222
+4192 5197  -1.000000
+4192 5211   1.000000
+4193 4   0.200000
+4193 5188   0.075281
+4193 5192   0.102497
+4193 5196   0.022222
+4193 5198  -1.000000
+4193 5212   1.000000
+4194 4   0.200000
+4194 5201   0.075281
+4194 5205   0.102497
+4194 5209   0.022222
+4194 5211  -1.000000
+4194 5225   1.000000
+4195 4   0.200000
+4195 5202   0.075281
+4195 5206   0.102497
+4195 5210   0.022222
+4195 5212  -1.000000
+4195 5226   1.000000
+4196 4   0.200000
+4196 5215   0.075281
+4196 5219   0.102497
+4196 5223   0.022222
+4196 5225  -1.000000
+4196 5239   1.000000
+4197 4   0.200000
+4197 5216   0.075281
+4197 5220   0.102497
+4197 5224   0.022222
+4197 5226  -1.000000
+4197 5240   1.000000
+4198 4   0.200000
+4198 5229   0.075281
+4198 5233   0.102497
+4198 5237   0.022222
+4198 5239  -1.000000
+4198 5253   1.000000
+4199 4   0.200000
+4199 5230   0.075281
+4199 5234   0.102497
+4199 5238   0.022222
+4199 5240  -1.000000
+4199 5254   1.000000
+4200 4   0.200000
+4200 5257   0.075281
+4200 5261   0.102497
+4200 5265   0.022222
+4200 5267  -1.000000
+4200 5281   1.000000
+4201 4   0.200000
+4201 5258   0.075281
+4201 5262   0.102497
+4201 5266   0.022222
+4201 5268  -1.000000
+4201 5282   1.000000
+4202 4   0.200000
+4202 5271   0.075281
+4202 5275   0.102497
+4202 5279   0.022222
+4202 5281  -1.000000
+4202 5295   1.000000
+4203 4   0.200000
+4203 5272   0.075281
+4203 5276   0.102497
+4203 5280   0.022222
+4203 5282  -1.000000
+4203 5296   1.000000
+4204 4   0.200000
+4204 5285   0.075281
+4204 5289   0.102497
+4204 5293   0.022222
+4204 5295  -1.000000
+4204 5309   1.000000
+4205 4   0.200000
+4205 5286   0.075281
+4205 5290   0.102497
+4205 5294   0.022222
+4205 5296  -1.000000
+4205 5310   1.000000
+4206 4   0.200000
+4206 5299   0.075281
+4206 5303   0.102497
+4206 5307   0.022222
+4206 5309  -1.000000
+4206 5323   1.000000
+4207 4   0.200000
+4207 5300   0.075281
+4207 5304   0.102497
+4207 5308   0.022222
+4207 5310  -1.000000
+4207 5324   1.000000
+4208 4   0.200000
+4208 5327   0.075281
+4208 5331   0.102497
+4208 5335   0.022222
+4208 5337  -1.000000
+4208 5351   1.000000
+4209 4   0.200000
+4209 5328   0.075281
+4209 5332   0.102497
+4209 5336   0.022222
+4209 5338  -1.000000
+4209 5352   1.000000
+4210 4   0.200000
+4210 5341   0.075281
+4210 5345   0.102497
+4210 5349   0.022222
+4210 5351  -1.000000
+4210 5365   1.000000
+4211 4   0.200000
+4211 5342   0.075281
+4211 5346   0.102497
+4211 5350   0.022222
+4211 5352  -1.000000
+4211 5366   1.000000
+4212 4   0.200000
+4212 5355   0.075281
+4212 5359   0.102497
+4212 5363   0.022222
+4212 5365  -1.000000
+4212 5379   1.000000
+4213 4   0.200000
+4213 5356   0.075281
+4213 5360   0.102497
+4213 5364   0.022222
+4213 5366  -1.000000
+4213 5380   1.000000
+4214 4   0.200000
+4214 5369   0.075281
+4214 5373   0.102497
+4214 5377   0.022222
+4214 5379  -1.000000
+4214 5393   1.000000
+4215 4   0.200000
+4215 5370   0.075281
+4215 5374   0.102497
+4215 5378   0.022222
+4215 5380  -1.000000
+4215 5394   1.000000
+4216 4   0.200000
+4216 5397   0.075281
+4216 5401   0.102497
+4216 5405   0.022222
+4216 5407  -1.000000
+4216 5421   1.000000
+4217 4   0.200000
+4217 5398   0.075281
+4217 5402   0.102497
+4217 5406   0.022222
+4217 5408  -1.000000
+4217 5422   1.000000
+4218 4   0.200000
+4218 5411   0.075281
+4218 5415   0.102497
+4218 5419   0.022222
+4218 5421  -1.000000
+4218 5435   1.000000
+4219 4   0.200000
+4219 5412   0.075281
+4219 5416   0.102497
+4219 5420   0.022222
+4219 5422  -1.000000
+4219 5436   1.000000
+4220 4   0.200000
+4220 5425   0.075281
+4220 5429   0.102497
+4220 5433   0.022222
+4220 5435  -1.000000
+4220 5449   1.000000
+4221 4   0.200000
+4221 5426   0.075281
+4221 5430   0.102497
+4221 5434   0.022222
+4221 5436  -1.000000
+4221 5450   1.000000
+4222 4   0.200000
+4222 5439   0.075281
+4222 5443   0.102497
+4222 5447   0.022222
+4222 5449  -1.000000
+4222 5463   1.000000
+4223 4   0.200000
+4223 5440   0.075281
+4223 5444   0.102497
+4223 5448   0.022222
+4223 5450  -1.000000
+4223 5464   1.000000
+4224 4   0.200000
+4224 5467   0.075281
+4224 5471   0.102497
+4224 5475   0.022222
+4224 5477  -1.000000
+4224 5491   1.000000
+4225 4   0.200000
+4225 5468   0.075281
+4225 5472   0.102497
+4225 5476   0.022222
+4225 5478  -1.000000
+4225 5492   1.000000
+4226 4   0.200000
+4226 5481   0.075281
+4226 5485   0.102497
+4226 5489   0.022222
+4226 5491  -1.000000
+4226 5505   1.000000
+4227 4   0.200000
+4227 5482   0.075281
+4227 5486   0.102497
+4227 5490   0.022222
+4227 5492  -1.000000
+4227 5506   1.000000
+4228 4   0.200000
+4228 5495   0.075281
+4228 5499   0.102497
+4228 5503   0.022222
+4228 5505  -1.000000
+4228 5519   1.000000
+4229 4   0.200000
+4229 5496   0.075281
+4229 5500   0.102497
+4229 5504   0.022222
+4229 5506  -1.000000
+4229 5520   1.000000
+4230 4   0.200000
+4230 5509   0.075281
+4230 5513   0.102497
+4230 5517   0.022222
+4230 5519  -1.000000
+4230 5533   1.000000
+4231 4   0.200000
+4231 5510   0.075281
+4231 5514   0.102497
+4231 5518   0.022222
+4231 5520  -1.000000
+4231 5534   1.000000
+4232 4   0.200000
+4232 5537   0.075281
+4232 5541   0.102497
+4232 5545   0.022222
+4232 5547  -1.000000
+4232 5561   1.000000
+4233 4   0.200000
+4233 5538   0.075281
+4233 5542   0.102497
+4233 5546   0.022222
+4233 5548  -1.000000
+4233 5562   1.000000
+4234 4   0.200000
+4234 5551   0.075281
+4234 5555   0.102497
+4234 5559   0.022222
+4234 5561  -1.000000
+4234 5575   1.000000
+4235 4   0.200000
+4235 5552   0.075281
+4235 5556   0.102497
+4235 5560   0.022222
+4235 5562  -1.000000
+4235 5576   1.000000
+4236 4   0.200000
+4236 5565   0.075281
+4236 5569   0.102497
+4236 5573   0.022222
+4236 5575  -1.000000
+4236 5589   1.000000
+4237 4   0.200000
+4237 5566   0.075281
+4237 5570   0.102497
+4237 5574   0.022222
+4237 5576  -1.000000
+4237 5590   1.000000
+4238 4   0.200000
+4238 5579   0.075281
+4238 5583   0.102497
+4238 5587   0.022222
+4238 5589  -1.000000
+4238 5603   1.000000
+4239 4   0.200000
+4239 5580   0.075281
+4239 5584   0.102497
+4239 5588   0.022222
+4239 5590  -1.000000
+4239 5604   1.000000
+4240 4   0.200000
+4240 5607   0.075281
+4240 5611   0.102497
+4240 5615   0.022222
+4240 5617  -1.000000
+4240 5631   1.000000
+4241 4   0.200000
+4241 5608   0.075281
+4241 5612   0.102497
+4241 5616   0.022222
+4241 5618  -1.000000
+4241 5632   1.000000
+4242 4   0.200000
+4242 5621   0.075281
+4242 5625   0.102497
+4242 5629   0.022222
+4242 5631  -1.000000
+4242 5645   1.000000
+4243 4   0.200000
+4243 5622   0.075281
+4243 5626   0.102497
+4243 5630   0.022222
+4243 5632  -1.000000
+4243 5646   1.000000
+4244 4   0.200000
+4244 5635   0.075281
+4244 5639   0.102497
+4244 5643   0.022222
+4244 5645  -1.000000
+4244 5659   1.000000
+4245 4   0.200000
+4245 5636   0.075281
+4245 5640   0.102497
+4245 5644   0.022222
+4245 5646  -1.000000
+4245 5660   1.000000
+4246 4   0.200000
+4246 5649   0.075281
+4246 5653   0.102497
+4246 5657   0.022222
+4246 5659  -1.000000
+4246 5673   1.000000
+4247 4   0.200000
+4247 5650   0.075281
+4247 5654   0.102497
+4247 5658   0.022222
+4247 5660  -1.000000
+4247 5674   1.000000
+4248 4   0.200000
+4248 5677   0.075281
+4248 5681   0.102497
+4248 5685   0.022222
+4248 5687  -1.000000
+4248 5701   1.000000
+4249 4   0.200000
+4249 5678   0.075281
+4249 5682   0.102497
+4249 5686   0.022222
+4249 5688  -1.000000
+4249 5702   1.000000
+4250 4   0.200000
+4250 5691   0.075281
+4250 5695   0.102497
+4250 5699   0.022222
+4250 5701  -1.000000
+4250 5715   1.000000
+4251 4   0.200000
+4251 5692   0.075281
+4251 5696   0.102497
+4251 5700   0.022222
+4251 5702  -1.000000
+4251 5716   1.000000
+4252 4   0.200000
+4252 5705   0.075281
+4252 5709   0.102497
+4252 5713   0.022222
+4252 5715  -1.000000
+4252 5729   1.000000
+4253 4   0.200000
+4253 5706   0.075281
+4253 5710   0.102497
+4253 5714   0.022222
+4253 5716  -1.000000
+4253 5730   1.000000
+4254 4   0.200000
+4254 5719   0.075281
+4254 5723   0.102497
+4254 5727   0.022222
+4254 5729  -1.000000
+4254 5743   1.000000
+4255 4   0.200000
+4255 5720   0.075281
+4255 5724   0.102497
+4255 5728   0.022222
+4255 5730  -1.000000
+4255 5744   1.000000
+4256 4   0.200000
+4256 5747   0.075281
+4256 5751   0.102497
+4256 5755   0.022222
+4256 5757  -1.000000
+4256 5771   1.000000
+4257 4   0.200000
+4257 5748   0.075281
+4257 5752   0.102497
+4257 5756   0.022222
+4257 5758  -1.000000
+4257 5772   1.000000
+4258 4   0.200000
+4258 5761   0.075281
+4258 5765   0.102497
+4258 5769   0.022222
+4258 5771  -1.000000
+4258 5785   1.000000
+4259 4   0.200000
+4259 5762   0.075281
+4259 5766   0.102497
+4259 5770   0.022222
+4259 5772  -1.000000
+4259 5786   1.000000
+4260 4   0.200000
+4260 5775   0.075281
+4260 5779   0.102497
+4260 5783   0.022222
+4260 5785  -1.000000
+4260 5799   1.000000
+4261 4   0.200000
+4261 5776   0.075281
+4261 5780   0.102497
+4261 5784   0.022222
+4261 5786  -1.000000
+4261 5800   1.000000
+4262 4   0.200000
+4262 5789   0.075281
+4262 5793   0.102497
+4262 5797   0.022222
+4262 5799  -1.000000
+4262 5813   1.000000
+4263 4   0.200000
+4263 5790   0.075281
+4263 5794   0.102497
+4263 5798   0.022222
+4263 5800  -1.000000
+4263 5814   1.000000
+4264 4   0.200000
+4264 5817   0.075281
+4264 5821   0.102497
+4264 5825   0.022222
+4264 5827  -1.000000
+4264 5841   1.000000
+4265 4   0.200000
+4265 5818   0.075281
+4265 5822   0.102497
+4265 5826   0.022222
+4265 5828  -1.000000
+4265 5842   1.000000
+4266 4   0.200000
+4266 5831   0.075281
+4266 5835   0.102497
+4266 5839   0.022222
+4266 5841  -1.000000
+4266 5855   1.000000
+4267 4   0.200000
+4267 5832   0.075281
+4267 5836   0.102497
+4267 5840   0.022222
+4267 5842  -1.000000
+4267 5856   1.000000
+4268 4   0.200000
+4268 5845   0.075281
+4268 5849   0.102497
+4268 5853   0.022222
+4268 5855  -1.000000
+4268 5869   1.000000
+4269 4   0.200000
+4269 5846   0.075281
+4269 5850   0.102497
+4269 5854   0.022222
+4269 5856  -1.000000
+4269 5870   1.000000
+4270 4   0.200000
+4270 5859   0.075281
+4270 5863   0.102497
+4270 5867   0.022222
+4270 5869  -1.000000
+4270 5883   1.000000
+4271 4   0.200000
+4271 5860   0.075281
+4271 5864   0.102497
+4271 5868   0.022222
+4271 5870  -1.000000
+4271 5884   1.000000
+4272 4   0.200000
+4272 5887   0.075281
+4272 5891   0.102497
+4272 5895   0.022222
+4272 5897  -1.000000
+4272 5911   1.000000
+4273 4   0.200000
+4273 5888   0.075281
+4273 5892   0.102497
+4273 5896   0.022222
+4273 5898  -1.000000
+4273 5912   1.000000
+4274 4   0.200000
+4274 5901   0.075281
+4274 5905   0.102497
+4274 5909   0.022222
+4274 5911  -1.000000
+4274 5925   1.000000
+4275 4   0.200000
+4275 5902   0.075281
+4275 5906   0.102497
+4275 5910   0.022222
+4275 5912  -1.000000
+4275 5926   1.000000
+4276 4   0.200000
+4276 5915   0.075281
+4276 5919   0.102497
+4276 5923   0.022222
+4276 5925  -1.000000
+4276 5939   1.000000
+4277 4   0.200000
+4277 5916   0.075281
+4277 5920   0.102497
+4277 5924   0.022222
+4277 5926  -1.000000
+4277 5940   1.000000
+4278 4   0.200000
+4278 5929   0.075281
+4278 5933   0.102497
+4278 5937   0.022222
+4278 5939  -1.000000
+4278 5953   1.000000
+4279 4   0.200000
+4279 5930   0.075281
+4279 5934   0.102497
+4279 5938   0.022222
+4279 5940  -1.000000
+4279 5954   1.000000
+4280 4   0.200000
+4280 5957   0.075281
+4280 5961   0.102497
+4280 5965   0.022222
+4280 5967  -1.000000
+4280 5981   1.000000
+4281 4   0.200000
+4281 5958   0.075281
+4281 5962   0.102497
+4281 5966   0.022222
+4281 5968  -1.000000
+4281 5982   1.000000
+4282 4   0.200000
+4282 5971   0.075281
+4282 5975   0.102497
+4282 5979   0.022222
+4282 5981  -1.000000
+4282 5995   1.000000
+4283 4   0.200000
+4283 5972   0.075281
+4283 5976   0.102497
+4283 5980   0.022222
+4283 5982  -1.000000
+4283 5996   1.000000
+4284 4   0.200000
+4284 5985   0.075281
+4284 5989   0.102497
+4284 5993   0.022222
+4284 5995  -1.000000
+4284 6009   1.000000
+4285 4   0.200000
+4285 5986   0.075281
+4285 5990   0.102497
+4285 5994   0.022222
+4285 5996  -1.000000
+4285 6010   1.000000
+4286 4   0.200000
+4286 5999   0.075281
+4286 6003   0.102497
+4286 6007   0.022222
+4286 6009  -1.000000
+4286 6023   1.000000
+4287 4   0.200000
+4287 6000   0.075281
+4287 6004   0.102497
+4287 6008   0.022222
+4287 6010  -1.000000
+4287 6024   1.000000
+4288 4   0.200000
+4288 6027   0.075281
+4288 6031   0.102497
+4288 6035   0.022222
+4288 6037  -1.000000
+4288 6051   1.000000
+4289 4   0.200000
+4289 6028   0.075281
+4289 6032   0.102497
+4289 6036   0.022222
+4289 6038  -1.000000
+4289 6052   1.000000
+4290 4   0.200000
+4290 6041   0.075281
+4290 6045   0.102497
+4290 6049   0.022222
+4290 6051  -1.000000
+4290 6065   1.000000
+4291 4   0.200000
+4291 6042   0.075281
+4291 6046   0.102497
+4291 6050   0.022222
+4291 6052  -1.000000
+4291 6066   1.000000
+4292 4   0.200000
+4292 6055   0.075281
+4292 6059   0.102497
+4292 6063   0.022222
+4292 6065  -1.000000
+4292 6079   1.000000
+4293 4   0.200000
+4293 6056   0.075281
+4293 6060   0.102497
+4293 6064   0.022222
+4293 6066  -1.000000
+4293 6080   1.000000
+4294 4   0.200000
+4294 6069   0.075281
+4294 6073   0.102497
+4294 6077   0.022222
+4294 6079  -1.000000
+4294 6093   1.000000
+4295 4   0.200000
+4295 6070   0.075281
+4295 6074   0.102497
+4295 6078   0.022222
+4295 6080  -1.000000
+4295 6094   1.000000
+4296 4   0.200000
+4296 6097   0.075281
+4296 6101   0.102497
+4296 6105   0.022222
+4296 6107  -1.000000
+4296 6121   1.000000
+4297 4   0.200000
+4297 6098   0.075281
+4297 6102   0.102497
+4297 6106   0.022222
+4297 6108  -1.000000
+4297 6122   1.000000
+4298 4   0.200000
+4298 6111   0.075281
+4298 6115   0.102497
+4298 6119   0.022222
+4298 6121  -1.000000
+4298 6135   1.000000
+4299 4   0.200000
+4299 6112   0.075281
+4299 6116   0.102497
+4299 6120   0.022222
+4299 6122  -1.000000
+4299 6136   1.000000
+4300 4   0.200000
+4300 6125   0.075281
+4300 6129   0.102497
+4300 6133   0.022222
+4300 6135  -1.000000
+4300 6149   1.000000
+4301 4   0.200000
+4301 6126   0.075281
+4301 6130   0.102497
+4301 6134   0.022222
+4301 6136  -1.000000
+4301 6150   1.000000
+4302 4   0.200000
+4302 6139   0.075281
+4302 6143   0.102497
+4302 6147   0.022222
+4302 6149  -1.000000
+4302 6163   1.000000
+4303 4   0.200000
+4303 6140   0.075281
+4303 6144   0.102497
+4303 6148   0.022222
+4303 6150  -1.000000
+4303 6164   1.000000
+4304 4   0.200000
+4304 6167   0.075281
+4304 6171   0.102497
+4304 6175   0.022222
+4304 6177  -1.000000
+4304 6191   1.000000
+4305 4   0.200000
+4305 6168   0.075281
+4305 6172   0.102497
+4305 6176   0.022222
+4305 6178  -1.000000
+4305 6192   1.000000
+4306 4   0.200000
+4306 6181   0.075281
+4306 6185   0.102497
+4306 6189   0.022222
+4306 6191  -1.000000
+4306 6205   1.000000
+4307 4   0.200000
+4307 6182   0.075281
+4307 6186   0.102497
+4307 6190   0.022222
+4307 6192  -1.000000
+4307 6206   1.000000
+4308 4   0.200000
+4308 6195   0.075281
+4308 6199   0.102497
+4308 6203   0.022222
+4308 6205  -1.000000
+4308 6219   1.000000
+4309 4   0.200000
+4309 6196   0.075281
+4309 6200   0.102497
+4309 6204   0.022222
+4309 6206  -1.000000
+4309 6220   1.000000
+4310 4   0.200000
+4310 6209   0.075281
+4310 6213   0.102497
+4310 6217   0.022222
+4310 6219  -1.000000
+4310 6233   1.000000
+4311 4   0.200000
+4311 6210   0.075281
+4311 6214   0.102497
+4311 6218   0.022222
+4311 6220  -1.000000
+4311 6234   1.000000
+4312 4   0.200000
+4312 6237   0.075281
+4312 6241   0.102497
+4312 6245   0.022222
+4312 6247  -1.000000
+4312 6261   1.000000
+4313 4   0.200000
+4313 6238   0.075281
+4313 6242   0.102497
+4313 6246   0.022222
+4313 6248  -1.000000
+4313 6262   1.000000
+4314 4   0.200000
+4314 6251   0.075281
+4314 6255   0.102497
+4314 6259   0.022222
+4314 6261  -1.000000
+4314 6275   1.000000
+4315 4   0.200000
+4315 6252   0.075281
+4315 6256   0.102497
+4315 6260   0.022222
+4315 6262  -1.000000
+4315 6276   1.000000
+4316 4   0.200000
+4316 6265   0.075281
+4316 6269   0.102497
+4316 6273   0.022222
+4316 6275  -1.000000
+4316 6289   1.000000
+4317 4   0.200000
+4317 6266   0.075281
+4317 6270   0.102497
+4317 6274   0.022222
+4317 6276  -1.000000
+4317 6290   1.000000
+4318 4   0.200000
+4318 6279   0.075281
+4318 6283   0.102497
+4318 6287   0.022222
+4318 6289  -1.000000
+4318 6303   1.000000
+4319 4   0.200000
+4319 6280   0.075281
+4319 6284   0.102497
+4319 6288   0.022222
+4319 6290  -1.000000
+4319 6304   1.000000
+4320 4   0.200000
+4320 6307   0.075281
+4320 6311   0.102497
+4320 6315   0.022222
+4320 6317  -1.000000
+4320 6331   1.000000
+4321 4   0.200000
+4321 6308   0.075281
+4321 6312   0.102497
+4321 6316   0.022222
+4321 6318  -1.000000
+4321 6332   1.000000
+4322 4   0.200000
+4322 6321   0.075281
+4322 6325   0.102497
+4322 6329   0.022222
+4322 6331  -1.000000
+4322 6345   1.000000
+4323 4   0.200000
+4323 6322   0.075281
+4323 6326   0.102497
+4323 6330   0.022222
+4323 6332  -1.000000
+4323 6346   1.000000
+4324 4   0.200000
+4324 6335   0.075281
+4324 6339   0.102497
+4324 6343   0.022222
+4324 6345  -1.000000
+4324 6359   1.000000
+4325 4   0.200000
+4325 6336   0.075281
+4325 6340   0.102497
+4325 6344   0.022222
+4325 6346  -1.000000
+4325 6360   1.000000
+4326 4   0.200000
+4326 6349   0.075281
+4326 6353   0.102497
+4326 6357   0.022222
+4326 6359  -1.000000
+4326 6373   1.000000
+4327 4   0.200000
+4327 6350   0.075281
+4327 6354   0.102497
+4327 6358   0.022222
+4327 6360  -1.000000
+4327 6374   1.000000
+4328 4   0.200000
+4328 6377   0.075281
+4328 6381   0.102497
+4328 6385   0.022222
+4328 6387  -1.000000
+4328 6401   1.000000
+4329 4   0.200000
+4329 6378   0.075281
+4329 6382   0.102497
+4329 6386   0.022222
+4329 6388  -1.000000
+4329 6402   1.000000
+4330 4   0.200000
+4330 6391   0.075281
+4330 6395   0.102497
+4330 6399   0.022222
+4330 6401  -1.000000
+4330 6415   1.000000
+4331 4   0.200000
+4331 6392   0.075281
+4331 6396   0.102497
+4331 6400   0.022222
+4331 6402  -1.000000
+4331 6416   1.000000
+4332 4   0.200000
+4332 6405   0.075281
+4332 6409   0.102497
+4332 6413   0.022222
+4332 6415  -1.000000
+4332 6429   1.000000
+4333 4   0.200000
+4333 6406   0.075281
+4333 6410   0.102497
+4333 6414   0.022222
+4333 6416  -1.000000
+4333 6430   1.000000
+4334 4   0.200000
+4334 6419   0.075281
+4334 6423   0.102497
+4334 6427   0.022222
+4334 6429  -1.000000
+4334 6443   1.000000
+4335 4   0.200000
+4335 6420   0.075281
+4335 6424   0.102497
+4335 6428   0.022222
+4335 6430  -1.000000
+4335 6444   1.000000
+4336 4   0.200000
+4336 6447   0.075281
+4336 6451   0.102497
+4336 6455   0.022222
+4336 6457  -1.000000
+4336 6471   1.000000
+4337 4   0.200000
+4337 6448   0.075281
+4337 6452   0.102497
+4337 6456   0.022222
+4337 6458  -1.000000
+4337 6472   1.000000
+4338 4   0.200000
+4338 6461   0.075281
+4338 6465   0.102497
+4338 6469   0.022222
+4338 6471  -1.000000
+4338 6485   1.000000
+4339 4   0.200000
+4339 6462   0.075281
+4339 6466   0.102497
+4339 6470   0.022222
+4339 6472  -1.000000
+4339 6486   1.000000
+4340 4   0.200000
+4340 6475   0.075281
+4340 6479   0.102497
+4340 6483   0.022222
+4340 6485  -1.000000
+4340 6499   1.000000
+4341 4   0.200000
+4341 6476   0.075281
+4341 6480   0.102497
+4341 6484   0.022222
+4341 6486  -1.000000
+4341 6500   1.000000
+4342 4   0.200000
+4342 6489   0.075281
+4342 6493   0.102497
+4342 6497   0.022222
+4342 6499  -1.000000
+4342 6513   1.000000
+4343 4   0.200000
+4343 6490   0.075281
+4343 6494   0.102497
+4343 6498   0.022222
+4343 6500  -1.000000
+4343 6514   1.000000
+4344 4   0.200000
+4344 6517   0.075281
+4344 6521   0.102497
+4344 6525   0.022222
+4344 6527  -1.000000
+4344 6541   1.000000
+4345 4   0.200000
+4345 6518   0.075281
+4345 6522   0.102497
+4345 6526   0.022222
+4345 6528  -1.000000
+4345 6542   1.000000
+4346 4   0.200000
+4346 6531   0.075281
+4346 6535   0.102497
+4346 6539   0.022222
+4346 6541  -1.000000
+4346 6555   1.000000
+4347 4   0.200000
+4347 6532   0.075281
+4347 6536   0.102497
+4347 6540   0.022222
+4347 6542  -1.000000
+4347 6556   1.000000
+4348 4   0.200000
+4348 6545   0.075281
+4348 6549   0.102497
+4348 6553   0.022222
+4348 6555  -1.000000
+4348 6569   1.000000
+4349 4   0.200000
+4349 6546   0.075281
+4349 6550   0.102497
+4349 6554   0.022222
+4349 6556  -1.000000
+4349 6570   1.000000
+4350 4   0.200000
+4350 6559   0.075281
+4350 6563   0.102497
+4350 6567   0.022222
+4350 6569  -1.000000
+4350 6583   1.000000
+4351 4   0.200000
+4351 6560   0.075281
+4351 6564   0.102497
+4351 6568   0.022222
+4351 6570  -1.000000
+4351 6584   1.000000
+4352 4   0.200000
+4352 6587   0.075281
+4352 6591   0.102497
+4352 6595   0.022222
+4352 6597  -1.000000
+4352 6611   1.000000
+4353 4   0.200000
+4353 6588   0.075281
+4353 6592   0.102497
+4353 6596   0.022222
+4353 6598  -1.000000
+4353 6612   1.000000
+4354 4   0.200000
+4354 6601   0.075281
+4354 6605   0.102497
+4354 6609   0.022222
+4354 6611  -1.000000
+4354 6625   1.000000
+4355 4   0.200000
+4355 6602   0.075281
+4355 6606   0.102497
+4355 6610   0.022222
+4355 6612  -1.000000
+4355 6626   1.000000
+4356 4   0.200000
+4356 6615   0.075281
+4356 6619   0.102497
+4356 6623   0.022222
+4356 6625  -1.000000
+4356 6639   1.000000
+4357 4   0.200000
+4357 6616   0.075281
+4357 6620   0.102497
+4357 6624   0.022222
+4357 6626  -1.000000
+4357 6640   1.000000
+4358 4   0.200000
+4358 6629   0.075281
+4358 6633   0.102497
+4358 6637   0.022222
+4358 6639  -1.000000
+4358 6653   1.000000
+4359 4   0.200000
+4359 6630   0.075281
+4359 6634   0.102497
+4359 6638   0.022222
+4359 6640  -1.000000
+4359 6654   1.000000
+4360 4   0.200000
+4360 6657   0.075281
+4360 6661   0.102497
+4360 6665   0.022222
+4360 6667  -1.000000
+4360 6681   1.000000
+4361 4   0.200000
+4361 6658   0.075281
+4361 6662   0.102497
+4361 6666   0.022222
+4361 6668  -1.000000
+4361 6682   1.000000
+4362 4   0.200000
+4362 6671   0.075281
+4362 6675   0.102497
+4362 6679   0.022222
+4362 6681  -1.000000
+4362 6695   1.000000
+4363 4   0.200000
+4363 6672   0.075281
+4363 6676   0.102497
+4363 6680   0.022222
+4363 6682  -1.000000
+4363 6696   1.000000
+4364 4   0.200000
+4364 6685   0.075281
+4364 6689   0.102497
+4364 6693   0.022222
+4364 6695  -1.000000
+4364 6709   1.000000
+4365 4   0.200000
+4365 6686   0.075281
+4365 6690   0.102497
+4365 6694   0.022222
+4365 6696  -1.000000
+4365 6710   1.000000
+4366 4   0.200000
+4366 6699   0.075281
+4366 6703   0.102497
+4366 6707   0.022222
+4366 6709  -1.000000
+4366 6723   1.000000
+4367 4   0.200000
+4367 6700   0.075281
+4367 6704   0.102497
+4367 6708   0.022222
+4367 6710  -1.000000
+4367 6724   1.000000
+4368 4   0.200000
+4368 6727   0.075281
+4368 6731   0.102497
+4368 6735   0.022222
+4368 6737  -1.000000
+4368 6751   1.000000
+4369 4   0.200000
+4369 6728   0.075281
+4369 6732   0.102497
+4369 6736   0.022222
+4369 6738  -1.000000
+4369 6752   1.000000
+4370 4   0.200000
+4370 6741   0.075281
+4370 6745   0.102497
+4370 6749   0.022222
+4370 6751  -1.000000
+4370 6765   1.000000
+4371 4   0.200000
+4371 6742   0.075281
+4371 6746   0.102497
+4371 6750   0.022222
+4371 6752  -1.000000
+4371 6766   1.000000
+4372 4   0.200000
+4372 6755   0.075281
+4372 6759   0.102497
+4372 6763   0.022222
+4372 6765  -1.000000
+4372 6779   1.000000
+4373 4   0.200000
+4373 6756   0.075281
+4373 6760   0.102497
+4373 6764   0.022222
+4373 6766  -1.000000
+4373 6780   1.000000
+4374 4   0.200000
+4374 6769   0.075281
+4374 6773   0.102497
+4374 6777   0.022222
+4374 6779  -1.000000
+4374 6793   1.000000
+4375 4   0.200000
+4375 6770   0.075281
+4375 6774   0.102497
+4375 6778   0.022222
+4375 6780  -1.000000
+4375 6794   1.000000
+4376 4   0.200000
+4376 6797   0.075281
+4376 6801   0.102497
+4376 6805   0.022222
+4376 6807  -1.000000
+4376 6821   1.000000
+4377 4   0.200000
+4377 6798   0.075281
+4377 6802   0.102497
+4377 6806   0.022222
+4377 6808  -1.000000
+4377 6822   1.000000
+4378 4   0.200000
+4378 6811   0.075281
+4378 6815   0.102497
+4378 6819   0.022222
+4378 6821  -1.000000
+4378 6835   1.000000
+4379 4   0.200000
+4379 6812   0.075281
+4379 6816   0.102497
+4379 6820   0.022222
+4379 6822  -1.000000
+4379 6836   1.000000
+4380 4   0.200000
+4380 6825   0.075281
+4380 6829   0.102497
+4380 6833   0.022222
+4380 6835  -1.000000
+4380 6849   1.000000
+4381 4   0.200000
+4381 6826   0.075281
+4381 6830   0.102497
+4381 6834   0.022222
+4381 6836  -1.000000
+4381 6850   1.000000
+4382 4   0.200000
+4382 6839   0.075281
+4382 6843   0.102497
+4382 6847   0.022222
+4382 6849  -1.000000
+4382 6863   1.000000
+4383 4   0.200000
+4383 6840   0.075281
+4383 6844   0.102497
+4383 6848   0.022222
+4383 6850  -1.000000
+4383 6864   1.000000
+4384 4   0.200000
+4384 6867   0.075281
+4384 6871   0.102497
+4384 6875   0.022222
+4384 6877  -1.000000
+4384 6891   1.000000
+4385 4   0.200000
+4385 6868   0.075281
+4385 6872   0.102497
+4385 6876   0.022222
+4385 6878  -1.000000
+4385 6892   1.000000
+4386 4   0.200000
+4386 6881   0.075281
+4386 6885   0.102497
+4386 6889   0.022222
+4386 6891  -1.000000
+4386 6905   1.000000
+4387 4   0.200000
+4387 6882   0.075281
+4387 6886   0.102497
+4387 6890   0.022222
+4387 6892  -1.000000
+4387 6906   1.000000
+4388 4   0.200000
+4388 6895   0.075281
+4388 6899   0.102497
+4388 6903   0.022222
+4388 6905  -1.000000
+4388 6919   1.000000
+4389 4   0.200000
+4389 6896   0.075281
+4389 6900   0.102497
+4389 6904   0.022222
+4389 6906  -1.000000
+4389 6920   1.000000
+4390 4   0.200000
+4390 6909   0.075281
+4390 6913   0.102497
+4390 6917   0.022222
+4390 6919  -1.000000
+4390 6933   1.000000
+4391 4   0.200000
+4391 6910   0.075281
+4391 6914   0.102497
+4391 6918   0.022222
+4391 6920  -1.000000
+4391 6934   1.000000
+4392 4   0.200000
+4392 6937   0.075281
+4392 6941   0.102497
+4392 6945   0.022222
+4392 6947  -1.000000
+4392 6961   1.000000
+4393 4   0.200000
+4393 6938   0.075281
+4393 6942   0.102497
+4393 6946   0.022222
+4393 6948  -1.000000
+4393 6962   1.000000
+4394 4   0.200000
+4394 6951   0.075281
+4394 6955   0.102497
+4394 6959   0.022222
+4394 6961  -1.000000
+4394 6975   1.000000
+4395 4   0.200000
+4395 6952   0.075281
+4395 6956   0.102497
+4395 6960   0.022222
+4395 6962  -1.000000
+4395 6976   1.000000
+4396 4   0.200000
+4396 6965   0.075281
+4396 6969   0.102497
+4396 6973   0.022222
+4396 6975  -1.000000
+4396 6989   1.000000
+4397 4   0.200000
+4397 6966   0.075281
+4397 6970   0.102497
+4397 6974   0.022222
+4397 6976  -1.000000
+4397 6990   1.000000
+4398 4   0.200000
+4398 6979   0.075281
+4398 6983   0.102497
+4398 6987   0.022222
+4398 6989  -1.000000
+4398 7003   1.000000
+4399 4   0.200000
+4399 6980   0.075281
+4399 6984   0.102497
+4399 6988   0.022222
+4399 6990  -1.000000
+4399 7004   1.000000
+4400 4   0.200000
+4400 7007   0.075281
+4400 7011   0.102497
+4400 7015   0.022222
+4400 7017  -1.000000
+4400 7031   1.000000
+4401 4   0.200000
+4401 7008   0.075281
+4401 7012   0.102497
+4401 7016   0.022222
+4401 7018  -1.000000
+4401 7032   1.000000
+4402 4   0.200000
+4402 7021   0.075281
+4402 7025   0.102497
+4402 7029   0.022222
+4402 7031  -1.000000
+4402 7045   1.000000
+4403 4   0.200000
+4403 7022   0.075281
+4403 7026   0.102497
+4403 7030   0.022222
+4403 7032  -1.000000
+4403 7046   1.000000
+4404 4   0.200000
+4404 7035   0.075281
+4404 7039   0.102497
+4404 7043   0.022222
+4404 7045  -1.000000
+4404 7059   1.000000
+4405 4   0.200000
+4405 7036   0.075281
+4405 7040   0.102497
+4405 7044   0.022222
+4405 7046  -1.000000
+4405 7060   1.000000
+4406 4   0.200000
+4406 7049   0.075281
+4406 7053   0.102497
+4406 7057   0.022222
+4406 7059  -1.000000
+4406 7073   1.000000
+4407 4   0.200000
+4407 7050   0.075281
+4407 7054   0.102497
+4407 7058   0.022222
+4407 7060  -1.000000
+4407 7074   1.000000
+4408 4   0.200000
+4408 7077   0.075281
+4408 7081   0.102497
+4408 7085   0.022222
+4408 7087  -1.000000
+4408 7101   1.000000
+4409 4   0.200000
+4409 7078   0.075281
+4409 7082   0.102497
+4409 7086   0.022222
+4409 7088  -1.000000
+4409 7102   1.000000
+4410 4   0.200000
+4410 7091   0.075281
+4410 7095   0.102497
+4410 7099   0.022222
+4410 7101  -1.000000
+4410 7115   1.000000
+4411 4   0.200000
+4411 7092   0.075281
+4411 7096   0.102497
+4411 7100   0.022222
+4411 7102  -1.000000
+4411 7116   1.000000
+4412 4   0.200000
+4412 7105   0.075281
+4412 7109   0.102497
+4412 7113   0.022222
+4412 7115  -1.000000
+4412 7129   1.000000
+4413 4   0.200000
+4413 7106   0.075281
+4413 7110   0.102497
+4413 7114   0.022222
+4413 7116  -1.000000
+4413 7130   1.000000
+4414 4   0.200000
+4414 7119   0.075281
+4414 7123   0.102497
+4414 7127   0.022222
+4414 7129  -1.000000
+4414 7143   1.000000
+4415 4   0.200000
+4415 7120   0.075281
+4415 7124   0.102497
+4415 7128   0.022222
+4415 7130  -1.000000
+4415 7144   1.000000
+4416 4   0.200000
+4416 7147   0.075281
+4416 7151   0.102497
+4416 7155   0.022222
+4416 7157  -1.000000
+4416 7171   1.000000
+4417 4   0.200000
+4417 7148   0.075281
+4417 7152   0.102497
+4417 7156   0.022222
+4417 7158  -1.000000
+4417 7172   1.000000
+4418 4   0.200000
+4418 7161   0.075281
+4418 7165   0.102497
+4418 7169   0.022222
+4418 7171  -1.000000
+4418 7185   1.000000
+4419 4   0.200000
+4419 7162   0.075281
+4419 7166   0.102497
+4419 7170   0.022222
+4419 7172  -1.000000
+4419 7186   1.000000
+4420 4   0.200000
+4420 7175   0.075281
+4420 7179   0.102497
+4420 7183   0.022222
+4420 7185  -1.000000
+4420 7199   1.000000
+4421 4   0.200000
+4421 7176   0.075281
+4421 7180   0.102497
+4421 7184   0.022222
+4421 7186  -1.000000
+4421 7200   1.000000
+4422 4   0.200000
+4422 7189   0.075281
+4422 7193   0.102497
+4422 7197   0.022222
+4422 7199  -1.000000
+4422 7213   1.000000
+4423 4   0.200000
+4423 7190   0.075281
+4423 7194   0.102497
+4423 7198   0.022222
+4423 7200  -1.000000
+4423 7214   1.000000
+4424 4   0.200000
+4424 7217   0.075281
+4424 7221   0.102497
+4424 7225   0.022222
+4424 7227  -1.000000
+4424 7241   1.000000
+4425 4   0.200000
+4425 7218   0.075281
+4425 7222   0.102497
+4425 7226   0.022222
+4425 7228  -1.000000
+4425 7242   1.000000
+4426 4   0.200000
+4426 7231   0.075281
+4426 7235   0.102497
+4426 7239   0.022222
+4426 7241  -1.000000
+4426 7255   1.000000
+4427 4   0.200000
+4427 7232   0.075281
+4427 7236   0.102497
+4427 7240   0.022222
+4427 7242  -1.000000
+4427 7256   1.000000
+4428 4   0.200000
+4428 7245   0.075281
+4428 7249   0.102497
+4428 7253   0.022222
+4428 7255  -1.000000
+4428 7269   1.000000
+4429 4   0.200000
+4429 7246   0.075281
+4429 7250   0.102497
+4429 7254   0.022222
+4429 7256  -1.000000
+4429 7270   1.000000
+4430 4   0.200000
+4430 7259   0.075281
+4430 7263   0.102497
+4430 7267   0.022222
+4430 7269  -1.000000
+4430 7283   1.000000
+4431 4   0.200000
+4431 7260   0.075281
+4431 7264   0.102497
+4431 7268   0.022222
+4431 7270  -1.000000
+4431 7284   1.000000
+4432 4   0.200000
+4432 7287   0.075281
+4432 7291   0.102497
+4432 7295   0.022222
+4432 7297  -1.000000
+4432 7311   1.000000
+4433 4   0.200000
+4433 7288   0.075281
+4433 7292   0.102497
+4433 7296   0.022222
+4433 7298  -1.000000
+4433 7312   1.000000
+4434 4   0.200000
+4434 7301   0.075281
+4434 7305   0.102497
+4434 7309   0.022222
+4434 7311  -1.000000
+4434 7325   1.000000
+4435 4   0.200000
+4435 7302   0.075281
+4435 7306   0.102497
+4435 7310   0.022222
+4435 7312  -1.000000
+4435 7326   1.000000
+4436 4   0.200000
+4436 7315   0.075281
+4436 7319   0.102497
+4436 7323   0.022222
+4436 7325  -1.000000
+4436 7339   1.000000
+4437 4   0.200000
+4437 7316   0.075281
+4437 7320   0.102497
+4437 7324   0.022222
+4437 7326  -1.000000
+4437 7340   1.000000
+4438 4   0.200000
+4438 7329   0.075281
+4438 7333   0.102497
+4438 7337   0.022222
+4438 7339  -1.000000
+4438 7353   1.000000
+4439 4   0.200000
+4439 7330   0.075281
+4439 7334   0.102497
+4439 7338   0.022222
+4439 7340  -1.000000
+4439 7354   1.000000
+4440 4   0.200000
+4440 7357   0.075281
+4440 7361   0.102497
+4440 7365   0.022222
+4440 7367  -1.000000
+4440 7381   1.000000
+4441 4   0.200000
+4441 7358   0.075281
+4441 7362   0.102497
+4441 7366   0.022222
+4441 7368  -1.000000
+4441 7382   1.000000
+4442 4   0.200000
+4442 7371   0.075281
+4442 7375   0.102497
+4442 7379   0.022222
+4442 7381  -1.000000
+4442 7395   1.000000
+4443 4   0.200000
+4443 7372   0.075281
+4443 7376   0.102497
+4443 7380   0.022222
+4443 7382  -1.000000
+4443 7396   1.000000
+4444 4   0.200000
+4444 7385   0.075281
+4444 7389   0.102497
+4444 7393   0.022222
+4444 7395  -1.000000
+4444 7409   1.000000
+4445 4   0.200000
+4445 7386   0.075281
+4445 7390   0.102497
+4445 7394   0.022222
+4445 7396  -1.000000
+4445 7410   1.000000
+4446 4   0.200000
+4446 7399   0.075281
+4446 7403   0.102497
+4446 7407   0.022222
+4446 7409  -1.000000
+4446 7423   1.000000
+4447 4   0.200000
+4447 7400   0.075281
+4447 7404   0.102497
+4447 7408   0.022222
+4447 7410  -1.000000
+4447 7424   1.000000
+4448 4   0.200000
+4448 7427   0.075281
+4448 7431   0.102497
+4448 7435   0.022222
+4448 7437  -1.000000
+4448 7451   1.000000
+4449 4   0.200000
+4449 7428   0.075281
+4449 7432   0.102497
+4449 7436   0.022222
+4449 7438  -1.000000
+4449 7452   1.000000
+4450 4   0.200000
+4450 7441   0.075281
+4450 7445   0.102497
+4450 7449   0.022222
+4450 7451  -1.000000
+4450 7465   1.000000
+4451 4   0.200000
+4451 7442   0.075281
+4451 7446   0.102497
+4451 7450   0.022222
+4451 7452  -1.000000
+4451 7466   1.000000
+4452 4   0.200000
+4452 7455   0.075281
+4452 7459   0.102497
+4452 7463   0.022222
+4452 7465  -1.000000
+4452 7479   1.000000
+4453 4   0.200000
+4453 7456   0.075281
+4453 7460   0.102497
+4453 7464   0.022222
+4453 7466  -1.000000
+4453 7480   1.000000
+4454 4   0.200000
+4454 7469   0.075281
+4454 7473   0.102497
+4454 7477   0.022222
+4454 7479  -1.000000
+4454 7493   1.000000
+4455 4   0.200000
+4455 7470   0.075281
+4455 7474   0.102497
+4455 7478   0.022222
+4455 7480  -1.000000
+4455 7494   1.000000
+4456 4   0.200000
+4456 7497   0.075281
+4456 7501   0.102497
+4456 7505   0.022222
+4456 7507  -1.000000
+4456 7521   1.000000
+4457 4   0.200000
+4457 7498   0.075281
+4457 7502   0.102497
+4457 7506   0.022222
+4457 7508  -1.000000
+4457 7522   1.000000
+4458 4   0.200000
+4458 7511   0.075281
+4458 7515   0.102497
+4458 7519   0.022222
+4458 7521  -1.000000
+4458 7535   1.000000
+4459 4   0.200000
+4459 7512   0.075281
+4459 7516   0.102497
+4459 7520   0.022222
+4459 7522  -1.000000
+4459 7536   1.000000
+4460 4   0.200000
+4460 7525   0.075281
+4460 7529   0.102497
+4460 7533   0.022222
+4460 7535  -1.000000
+4460 7549   1.000000
+4461 4   0.200000
+4461 7526   0.075281
+4461 7530   0.102497
+4461 7534   0.022222
+4461 7536  -1.000000
+4461 7550   1.000000
+4462 4   0.200000
+4462 7539   0.075281
+4462 7543   0.102497
+4462 7547   0.022222
+4462 7549  -1.000000
+4462 7563   1.000000
+4463 4   0.200000
+4463 7540   0.075281
+4463 7544   0.102497
+4463 7548   0.022222
+4463 7550  -1.000000
+4463 7564   1.000000
+4464 4   0.200000
+4464 7567   0.075281
+4464 7571   0.102497
+4464 7575   0.022222
+4464 7577  -1.000000
+4464 7591   1.000000
+4465 4   0.200000
+4465 7568   0.075281
+4465 7572   0.102497
+4465 7576   0.022222
+4465 7578  -1.000000
+4465 7592   1.000000
+4466 4   0.200000
+4466 7581   0.075281
+4466 7585   0.102497
+4466 7589   0.022222
+4466 7591  -1.000000
+4466 7605   1.000000
+4467 4   0.200000
+4467 7582   0.075281
+4467 7586   0.102497
+4467 7590   0.022222
+4467 7592  -1.000000
+4467 7606   1.000000
+4468 4   0.200000
+4468 7595   0.075281
+4468 7599   0.102497
+4468 7603   0.022222
+4468 7605  -1.000000
+4468 7619   1.000000
+4469 4   0.200000
+4469 7596   0.075281
+4469 7600   0.102497
+4469 7604   0.022222
+4469 7606  -1.000000
+4469 7620   1.000000
+4470 4   0.200000
+4470 7609   0.075281
+4470 7613   0.102497
+4470 7617   0.022222
+4470 7619  -1.000000
+4470 7633   1.000000
+4471 4   0.200000
+4471 7610   0.075281
+4471 7614   0.102497
+4471 7618   0.022222
+4471 7620  -1.000000
+4471 7634   1.000000
+4472 4   0.200000
+4472 7637   0.075281
+4472 7641   0.102497
+4472 7645   0.022222
+4472 7647  -1.000000
+4472 7661   1.000000
+4473 4   0.200000
+4473 7638   0.075281
+4473 7642   0.102497
+4473 7646   0.022222
+4473 7648  -1.000000
+4473 7662   1.000000
+4474 4   0.200000
+4474 7651   0.075281
+4474 7655   0.102497
+4474 7659   0.022222
+4474 7661  -1.000000
+4474 7675   1.000000
+4475 4   0.200000
+4475 7652   0.075281
+4475 7656   0.102497
+4475 7660   0.022222
+4475 7662  -1.000000
+4475 7676   1.000000
+4476 4   0.200000
+4476 7665   0.075281
+4476 7669   0.102497
+4476 7673   0.022222
+4476 7675  -1.000000
+4476 7689   1.000000
+4477 4   0.200000
+4477 7666   0.075281
+4477 7670   0.102497
+4477 7674   0.022222
+4477 7676  -1.000000
+4477 7690   1.000000
+4478 4   0.200000
+4478 7679   0.075281
+4478 7683   0.102497
+4478 7687   0.022222
+4478 7689  -1.000000
+4478 7703   1.000000
+4479 4   0.200000
+4479 7680   0.075281
+4479 7684   0.102497
+4479 7688   0.022222
+4479 7690  -1.000000
+4479 7704   1.000000
+4480 4   0.200000
+4480 7707   0.075281
+4480 7711   0.102497
+4480 7715   0.022222
+4480 7717  -1.000000
+4480 7731   1.000000
+4481 4   0.200000
+4481 7708   0.075281
+4481 7712   0.102497
+4481 7716   0.022222
+4481 7718  -1.000000
+4481 7732   1.000000
+4482 4   0.200000
+4482 7721   0.075281
+4482 7725   0.102497
+4482 7729   0.022222
+4482 7731  -1.000000
+4482 7745   1.000000
+4483 4   0.200000
+4483 7722   0.075281
+4483 7726   0.102497
+4483 7730   0.022222
+4483 7732  -1.000000
+4483 7746   1.000000
+4484 4   0.200000
+4484 7735   0.075281
+4484 7739   0.102497
+4484 7743   0.022222
+4484 7745  -1.000000
+4484 7759   1.000000
+4485 4   0.200000
+4485 7736   0.075281
+4485 7740   0.102497
+4485 7744   0.022222
+4485 7746  -1.000000
+4485 7760   1.000000
+4486 4   0.200000
+4486 7749   0.075281
+4486 7753   0.102497
+4486 7757   0.022222
+4486 7759  -1.000000
+4486 7773   1.000000
+4487 4   0.200000
+4487 7750   0.075281
+4487 7754   0.102497
+4487 7758   0.022222
+4487 7760  -1.000000
+4487 7774   1.000000
+4488 4   0.200000
+4488 7777   0.075281
+4488 7781   0.102497
+4488 7785   0.022222
+4488 7787  -1.000000
+4488 7801   1.000000
+4489 4   0.200000
+4489 7778   0.075281
+4489 7782   0.102497
+4489 7786   0.022222
+4489 7788  -1.000000
+4489 7802   1.000000
+4490 4   0.200000
+4490 7791   0.075281
+4490 7795   0.102497
+4490 7799   0.022222
+4490 7801  -1.000000
+4490 7815   1.000000
+4491 4   0.200000
+4491 7792   0.075281
+4491 7796   0.102497
+4491 7800   0.022222
+4491 7802  -1.000000
+4491 7816   1.000000
+4492 4   0.200000
+4492 7805   0.075281
+4492 7809   0.102497
+4492 7813   0.022222
+4492 7815  -1.000000
+4492 7829   1.000000
+4493 4   0.200000
+4493 7806   0.075281
+4493 7810   0.102497
+4493 7814   0.022222
+4493 7816  -1.000000
+4493 7830   1.000000
+4494 4   0.200000
+4494 7819   0.075281
+4494 7823   0.102497
+4494 7827   0.022222
+4494 7829  -1.000000
+4494 7843   1.000000
+4495 4   0.200000
+4495 7820   0.075281
+4495 7824   0.102497
+4495 7828   0.022222
+4495 7830  -1.000000
+4495 7844   1.000000
+4496 4   0.200000
+4496 7847   0.075281
+4496 7851   0.102497
+4496 7855   0.022222
+4496 7857  -1.000000
+4496 7871   1.000000
+4497 4   0.200000
+4497 7848   0.075281
+4497 7852   0.102497
+4497 7856   0.022222
+4497 7858  -1.000000
+4497 7872   1.000000
+4498 4   0.200000
+4498 7861   0.075281
+4498 7865   0.102497
+4498 7869   0.022222
+4498 7871  -1.000000
+4498 7885   1.000000
+4499 4   0.200000
+4499 7862   0.075281
+4499 7866   0.102497
+4499 7870   0.022222
+4499 7872  -1.000000
+4499 7886   1.000000
+4500 4   0.200000
+4500 7875   0.075281
+4500 7879   0.102497
+4500 7883   0.022222
+4500 7885  -1.000000
+4500 7899   1.000000
+4501 4   0.200000
+4501 7876   0.075281
+4501 7880   0.102497
+4501 7884   0.022222
+4501 7886  -1.000000
+4501 7900   1.000000
+4502 4   0.200000
+4502 7889   0.075281
+4502 7893   0.102497
+4502 7897   0.022222
+4502 7899  -1.000000
+4502 7913   1.000000
+4503 4   0.200000
+4503 7890   0.075281
+4503 7894   0.102497
+4503 7898   0.022222
+4503 7900  -1.000000
+4503 7914   1.000000
+4504 4   0.200000
+4504 7917   0.075281
+4504 7921   0.102497
+4504 7925   0.022222
+4504 7927  -1.000000
+4504 7941   1.000000
+4505 4   0.200000
+4505 7918   0.075281
+4505 7922   0.102497
+4505 7926   0.022222
+4505 7928  -1.000000
+4505 7942   1.000000
+4506 4   0.200000
+4506 7931   0.075281
+4506 7935   0.102497
+4506 7939   0.022222
+4506 7941  -1.000000
+4506 7955   1.000000
+4507 4   0.200000
+4507 7932   0.075281
+4507 7936   0.102497
+4507 7940   0.022222
+4507 7942  -1.000000
+4507 7956   1.000000
+4508 4   0.200000
+4508 7945   0.075281
+4508 7949   0.102497
+4508 7953   0.022222
+4508 7955  -1.000000
+4508 7969   1.000000
+4509 4   0.200000
+4509 7946   0.075281
+4509 7950   0.102497
+4509 7954   0.022222
+4509 7956  -1.000000
+4509 7970   1.000000
+4510 4   0.200000
+4510 7959   0.075281
+4510 7963   0.102497
+4510 7967   0.022222
+4510 7969  -1.000000
+4510 7983   1.000000
+4511 4   0.200000
+4511 7960   0.075281
+4511 7964   0.102497
+4511 7968   0.022222
+4511 7970  -1.000000
+4511 7984   1.000000
+4512 4   0.200000
+4512 7987   0.075281
+4512 7991   0.102497
+4512 7995   0.022222
+4512 7997  -1.000000
+4512 8011   1.000000
+4513 4   0.200000
+4513 7988   0.075281
+4513 7992   0.102497
+4513 7996   0.022222
+4513 7998  -1.000000
+4513 8012   1.000000
+4514 4   0.200000
+4514 8001   0.075281
+4514 8005   0.102497
+4514 8009   0.022222
+4514 8011  -1.000000
+4514 8025   1.000000
+4515 4   0.200000
+4515 8002   0.075281
+4515 8006   0.102497
+4515 8010   0.022222
+4515 8012  -1.000000
+4515 8026   1.000000
+4516 4   0.200000
+4516 8015   0.075281
+4516 8019   0.102497
+4516 8023   0.022222
+4516 8025  -1.000000
+4516 8039   1.000000
+4517 4   0.200000
+4517 8016   0.075281
+4517 8020   0.102497
+4517 8024   0.022222
+4517 8026  -1.000000
+4517 8040   1.000000
+4518 4   0.200000
+4518 8029   0.075281
+4518 8033   0.102497
+4518 8037   0.022222
+4518 8039  -1.000000
+4518 8053   1.000000
+4519 4   0.200000
+4519 8030   0.075281
+4519 8034   0.102497
+4519 8038   0.022222
+4519 8040  -1.000000
+4519 8054   1.000000
+4520 4   0.200000
+4520 8057   0.075281
+4520 8061   0.102497
+4520 8065   0.022222
+4520 8067  -1.000000
+4520 8081   1.000000
+4521 4   0.200000
+4521 8058   0.075281
+4521 8062   0.102497
+4521 8066   0.022222
+4521 8068  -1.000000
+4521 8082   1.000000
+4522 4   0.200000
+4522 8071   0.075281
+4522 8075   0.102497
+4522 8079   0.022222
+4522 8081  -1.000000
+4522 8095   1.000000
+4523 4   0.200000
+4523 8072   0.075281
+4523 8076   0.102497
+4523 8080   0.022222
+4523 8082  -1.000000
+4523 8096   1.000000
+4524 4   0.200000
+4524 8085   0.075281
+4524 8089   0.102497
+4524 8093   0.022222
+4524 8095  -1.000000
+4524 8109   1.000000
+4525 4   0.200000
+4525 8086   0.075281
+4525 8090   0.102497
+4525 8094   0.022222
+4525 8096  -1.000000
+4525 8110   1.000000
+4526 4   0.200000
+4526 8099   0.075281
+4526 8103   0.102497
+4526 8107   0.022222
+4526 8109  -1.000000
+4526 8123   1.000000
+4527 4   0.200000
+4527 8100   0.075281
+4527 8104   0.102497
+4527 8108   0.022222
+4527 8110  -1.000000
+4527 8124   1.000000
+4528 4   0.200000
+4528 8127   0.075281
+4528 8131   0.102497
+4528 8135   0.022222
+4528 8137  -1.000000
+4528 8151   1.000000
+4529 4   0.200000
+4529 8128   0.075281
+4529 8132   0.102497
+4529 8136   0.022222
+4529 8138  -1.000000
+4529 8152   1.000000
+4530 4   0.200000
+4530 8141   0.075281
+4530 8145   0.102497
+4530 8149   0.022222
+4530 8151  -1.000000
+4530 8165   1.000000
+4531 4   0.200000
+4531 8142   0.075281
+4531 8146   0.102497
+4531 8150   0.022222
+4531 8152  -1.000000
+4531 8166   1.000000
+4532 4   0.200000
+4532 8155   0.075281
+4532 8159   0.102497
+4532 8163   0.022222
+4532 8165  -1.000000
+4532 8179   1.000000
+4533 4   0.200000
+4533 8156   0.075281
+4533 8160   0.102497
+4533 8164   0.022222
+4533 8166  -1.000000
+4533 8180   1.000000
+4534 4   0.200000
+4534 8169   0.075281
+4534 8173   0.102497
+4534 8177   0.022222
+4534 8179  -1.000000
+4534 8193   1.000000
+4535 4   0.200000
+4535 8170   0.075281
+4535 8174   0.102497
+4535 8178   0.022222
+4535 8180  -1.000000
+4535 8194   1.000000
+4536 4   0.200000
+4536 8197   0.075281
+4536 8201   0.102497
+4536 8205   0.022222
+4536 8207  -1.000000
+4536 8221   1.000000
+4537 4   0.200000
+4537 8198   0.075281
+4537 8202   0.102497
+4537 8206   0.022222
+4537 8208  -1.000000
+4537 8222   1.000000
+4538 4   0.200000
+4538 8211   0.075281
+4538 8215   0.102497
+4538 8219   0.022222
+4538 8221  -1.000000
+4538 8235   1.000000
+4539 4   0.200000
+4539 8212   0.075281
+4539 8216   0.102497
+4539 8220   0.022222
+4539 8222  -1.000000
+4539 8236   1.000000
+4540 4   0.200000
+4540 8225   0.075281
+4540 8229   0.102497
+4540 8233   0.022222
+4540 8235  -1.000000
+4540 8249   1.000000
+4541 4   0.200000
+4541 8226   0.075281
+4541 8230   0.102497
+4541 8234   0.022222
+4541 8236  -1.000000
+4541 8250   1.000000
+4542 4   0.200000
+4542 8239   0.075281
+4542 8243   0.102497
+4542 8247   0.022222
+4542 8249  -1.000000
+4542 8263   1.000000
+4543 4   0.200000
+4543 8240   0.075281
+4543 8244   0.102497
+4543 8248   0.022222
+4543 8250  -1.000000
+4543 8264   1.000000
+4544 4   0.200000
+4544 8267   0.075281
+4544 8271   0.102497
+4544 8275   0.022222
+4544 8277  -1.000000
+4544 8291   1.000000
+4545 4   0.200000
+4545 8268   0.075281
+4545 8272   0.102497
+4545 8276   0.022222
+4545 8278  -1.000000
+4545 8292   1.000000
+4546 4   0.200000
+4546 8281   0.075281
+4546 8285   0.102497
+4546 8289   0.022222
+4546 8291  -1.000000
+4546 8305   1.000000
+4547 4   0.200000
+4547 8282   0.075281
+4547 8286   0.102497
+4547 8290   0.022222
+4547 8292  -1.000000
+4547 8306   1.000000
+4548 4   0.200000
+4548 8295   0.075281
+4548 8299   0.102497
+4548 8303   0.022222
+4548 8305  -1.000000
+4548 8319   1.000000
+4549 4   0.200000
+4549 8296   0.075281
+4549 8300   0.102497
+4549 8304   0.022222
+4549 8306  -1.000000
+4549 8320   1.000000
+4550 4   0.200000
+4550 8309   0.075281
+4550 8313   0.102497
+4550 8317   0.022222
+4550 8319  -1.000000
+4550 8333   1.000000
+4551 4   0.200000
+4551 8310   0.075281
+4551 8314   0.102497
+4551 8318   0.022222
+4551 8320  -1.000000
+4551 8334   1.000000
+4552 4   0.200000
+4552 8337   0.075281
+4552 8341   0.102497
+4552 8345   0.022222
+4552 8347  -1.000000
+4552 8361   1.000000
+4553 4   0.200000
+4553 8338   0.075281
+4553 8342   0.102497
+4553 8346   0.022222
+4553 8348  -1.000000
+4553 8362   1.000000
+4554 4   0.200000
+4554 8351   0.075281
+4554 8355   0.102497
+4554 8359   0.022222
+4554 8361  -1.000000
+4554 8375   1.000000
+4555 4   0.200000
+4555 8352   0.075281
+4555 8356   0.102497
+4555 8360   0.022222
+4555 8362  -1.000000
+4555 8376   1.000000
+4556 4   0.200000
+4556 8365   0.075281
+4556 8369   0.102497
+4556 8373   0.022222
+4556 8375  -1.000000
+4556 8389   1.000000
+4557 4   0.200000
+4557 8366   0.075281
+4557 8370   0.102497
+4557 8374   0.022222
+4557 8376  -1.000000
+4557 8390   1.000000
+4558 4   0.200000
+4558 8379   0.075281
+4558 8383   0.102497
+4558 8387   0.022222
+4558 8389  -1.000000
+4558 8403   1.000000
+4559 4   0.200000
+4559 8380   0.075281
+4559 8384   0.102497
+4559 8388   0.022222
+4559 8390  -1.000000
+4559 8404   1.000000
+4560 4   0.031010
+4560 8405   1.000000
+4560 8407   0.039363
+4560 8417  -0.013107
+4560 8427   0.004754
+4560 8435  -1.000000
+4561 4   0.031010
+4561 8406   1.000000
+4561 8408   0.039363
+4561 8418  -0.013107
+4561 8428   0.004754
+4561 8436  -1.000000
+4562 4   0.031010
+4562 8409   1.000000
+4562 8411   0.039363
+4562 8421  -0.013107
+4562 8431   0.004754
+4562 8437  -1.000000
+4563 4   0.031010
+4563 8410   1.000000
+4563 8412   0.039363
+4563 8422  -0.013107
+4563 8432   0.004754
+4563 8438  -1.000000
+4564 4   0.031010
+4564 8413   1.000000
+4564 8414   0.039363
+4564 8424  -0.013107
+4564 8434   0.004754
+4564 8439  -1.000000
+4565 0   0.000000
+4565 1   4.000000
+4565 5  80.000000
+4565 7   1.000000
+4565 8335 -60.000000
+4566 0   0.000000
+4566 1   2.000000
+4566 6  40.000000
+4566 8   1.000000
+4566 8336 -30.000000
+4567 0   0.000000
+4567 2   0.000000
+4567 3   0.000000
+4567 4135 -60.000000
+4567 4205  80.000000
+4567 4207   1.000000
+4568 0   0.000000
+4568 2   0.000000
+4568 3   0.000000
+4568 4136 -30.000000
+4568 4206  40.000000
+4568 4208   1.000000
+4569 3  -0.100000
+4569 1335  -0.500000
+4569 8407   1.000000
+4570 3  -0.100000
+4570 1336  -0.500000
+4570 8408   1.000000
+4571 1  -0.100000
+4571 2  -0.100000
+4571 3   0.100000
+4571 6935  -0.500000
+4571 8411   1.000000
+4572 1  -0.100000
+4572 2  -0.100000
+4572 3   0.100000
+4572 6936  -0.500000
+4572 8412   1.000000
+4573 2  -1.000000
+4573 8414   1.000000
+4574 4   0.128990
+4574 8407   0.078885
+4574 8415   1.000000
+4574 8417   0.058415
+4574 8427  -0.008310
+4574 8435  -1.000000
+4575 4   0.128990
+4575 8408   0.078885
+4575 8416   1.000000
+4575 8418   0.058415
+4575 8428  -0.008310
+4575 8436  -1.000000
+4576 4   0.128990
+4576 8411   0.078885
+4576 8419   1.000000
+4576 8421   0.058415
+4576 8431  -0.008310
+4576 8437  -1.000000
+4577 4   0.128990
+4577 8412   0.078885
+4577 8420   1.000000
+4577 8422   0.058415
+4577 8432  -0.008310
+4577 8438  -1.000000
+4578 4   0.128990
+4578 8414   0.078885
+4578 8423   1.000000
+4578 8424   0.058415
+4578 8434  -0.008310
+4578 8439  -1.000000
+4579 0   0.000000
+4579 1   4.000000
+4579 9  80.000000
+4579 11   1.000000
+4579 8339 -60.000000
+4580 0   0.000000
+4580 1   2.000000
+4580 10  40.000000
+4580 12   1.000000
+4580 8340 -30.000000
+4581 0   0.000000
+4581 2   0.000000
+4581 3   0.000000
+4581 4139 -60.000000
+4581 4209  80.000000
+4581 4211   1.000000
+4582 0   0.000000
+4582 2   0.000000
+4582 3   0.000000
+4582 4140 -30.000000
+4582 4210  40.000000
+4582 4212   1.000000
+4583 3  -0.100000
+4583 1339  -0.500000
+4583 8417   1.000000
+4584 3  -0.100000
+4584 1340  -0.500000
+4584 8418   1.000000
+4585 1  -0.100000
+4585 2  -0.100000
+4585 3   0.100000
+4585 6939  -0.500000
+4585 8421   1.000000
+4586 1  -0.100000
+4586 2  -0.100000
+4586 3   0.100000
+4586 6940  -0.500000
+4586 8422   1.000000
+4587 2  -1.000000
+4587 8424   1.000000
+4588 4   0.200000
+4588 8407   0.075281
+4588 8417   0.102497
+4588 8425   1.000000
+4588 8427   0.022222
+4588 8435  -1.000000
+4589 4   0.200000
+4589 8408   0.075281
+4589 8418   0.102497
+4589 8426   1.000000
+4589 8428   0.022222
+4589 8436  -1.000000
+4590 4   0.200000
+4590 8411   0.075281
+4590 8421   0.102497
+4590 8429   1.000000
+4590 8431   0.022222
+4590 8437  -1.000000
+4591 4   0.200000
+4591 8412   0.075281
+4591 8422   0.102497
+4591 8430   1.000000
+4591 8432   0.022222
+4591 8438  -1.000000
+4592 4   0.200000
+4592 8414   0.075281
+4592 8424   0.102497
+4592 8433   1.000000
+4592 8434   0.022222
+4592 8439  -1.000000
+4593 0   0.000000
+4593 1   4.000000
+4593 13  80.000000
+4593 15   1.000000
+4593 8343 -60.000000
+4594 0   0.000000
+4594 1   2.000000
+4594 14  40.000000
+4594 16   1.000000
+4594 8344 -30.000000
+4595 0   0.000000
+4595 2   0.000000
+4595 3   0.000000
+4595 4143 -60.000000
+4595 4213  80.000000
+4595 4215   1.000000
+4596 0   0.000000
+4596 2   0.000000
+4596 3   0.000000
+4596 4144 -30.000000
+4596 4214  40.000000
+4596 4216   1.000000
+4597 3  -0.100000
+4597 1343  -0.500000
+4597 8427   1.000000
+4598 3  -0.100000
+4598 1344  -0.500000
+4598 8428   1.000000
+4599 1  -0.100000
+4599 2  -0.100000
+4599 3   0.100000
+4599 6943  -0.500000
+4599 8431   1.000000
+4600 1  -0.100000
+4600 2  -0.100000
+4600 3   0.100000
+4600 6944  -0.500000
+4600 8432   1.000000
+4601 2  -1.000000
+4601 8434   1.000000
+4602 4   0.031010
+4602 8440   1.000000
+4602 8442   0.039363
+4602 8452  -0.013107
+4602 8462   0.004754
+4602 8470  -1.000000
+4603 4   0.031010
+4603 8441   1.000000
+4603 8443   0.039363
+4603 8453  -0.013107
+4603 8463   0.004754
+4603 8471  -1.000000
+4604 4   0.031010
+4604 8444   1.000000
+4604 8446   0.039363
+4604 8456  -0.013107
+4604 8466   0.004754
+4604 8472  -1.000000
+4605 4   0.031010
+4605 8445   1.000000
+4605 8447   0.039363
+4605 8457  -0.013107
+4605 8467   0.004754
+4605 8473  -1.000000
+4606 4   0.031010
+4606 8448   1.000000
+4606 8449   0.039363
+4606 8459  -0.013107
+4606 8469   0.004754
+4606 8474  -1.000000
+4607 0   0.000000
+4607 1   4.000000
+4607 19  80.000000
+4607 21   1.000000
+4607 8349 -60.000000
+4608 0   0.000000
+4608 1   2.000000
+4608 20  40.000000
+4608 22   1.000000
+4608 8350 -30.000000
+4609 0   0.000000
+4609 2   0.000000
+4609 3   0.000000
+4609 4149 -60.000000
+4609 4219  80.000000
+4609 4221   1.000000
+4610 0   0.000000
+4610 2   0.000000
+4610 3   0.000000
+4610 4150 -30.000000
+4610 4220  40.000000
+4610 4222   1.000000
+4611 3  -0.100000
+4611 1349  -0.500000
+4611 8442   1.000000
+4612 3  -0.100000
+4612 1350  -0.500000
+4612 8443   1.000000
+4613 1  -0.100000
+4613 2  -0.100000
+4613 3   0.100000
+4613 6949  -0.500000
+4613 8446   1.000000
+4614 1  -0.100000
+4614 2  -0.100000
+4614 3   0.100000
+4614 6950  -0.500000
+4614 8447   1.000000
+4615 2  -1.000000
+4615 8449   1.000000
+4616 4   0.128990
+4616 8442   0.078885
+4616 8450   1.000000
+4616 8452   0.058415
+4616 8462  -0.008310
+4616 8470  -1.000000
+4617 4   0.128990
+4617 8443   0.078885
+4617 8451   1.000000
+4617 8453   0.058415
+4617 8463  -0.008310
+4617 8471  -1.000000
+4618 4   0.128990
+4618 8446   0.078885
+4618 8454   1.000000
+4618 8456   0.058415
+4618 8466  -0.008310
+4618 8472  -1.000000
+4619 4   0.128990
+4619 8447   0.078885
+4619 8455   1.000000
+4619 8457   0.058415
+4619 8467  -0.008310
+4619 8473  -1.000000
+4620 4   0.128990
+4620 8449   0.078885
+4620 8458   1.000000
+4620 8459   0.058415
+4620 8469  -0.008310
+4620 8474  -1.000000
+4621 0   0.000000
+4621 1   4.000000
+4621 23  80.000000
+4621 25   1.000000
+4621 8353 -60.000000
+4622 0   0.000000
+4622 1   2.000000
+4622 24  40.000000
+4622 26   1.000000
+4622 8354 -30.000000
+4623 0   0.000000
+4623 2   0.000000
+4623 3   0.000000
+4623 4153 -60.000000
+4623 4223  80.000000
+4623 4225   1.000000
+4624 0   0.000000
+4624 2   0.000000
+4624 3   0.000000
+4624 4154 -30.000000
+4624 4224  40.000000
+4624 4226   1.000000
+4625 3  -0.100000
+4625 1353  -0.500000
+4625 8452   1.000000
+4626 3  -0.100000
+4626 1354  -0.500000
+4626 8453   1.000000
+4627 1  -0.100000
+4627 2  -0.100000
+4627 3   0.100000
+4627 6953  -0.500000
+4627 8456   1.000000
+4628 1  -0.100000
+4628 2  -0.100000
+4628 3   0.100000
+4628 6954  -0.500000
+4628 8457   1.000000
+4629 2  -1.000000
+4629 8459   1.000000
+4630 4   0.200000
+4630 8442   0.075281
+4630 8452   0.102497
+4630 8460   1.000000
+4630 8462   0.022222
+4630 8470  -1.000000
+4631 4   0.200000
+4631 8443   0.075281
+4631 8453   0.102497
+4631 8461   1.000000
+4631 8463   0.022222
+4631 8471  -1.000000
+4632 4   0.200000
+4632 8446   0.075281
+4632 8456   0.102497
+4632 8464   1.000000
+4632 8466   0.022222
+4632 8472  -1.000000
+4633 4   0.200000
+4633 8447   0.075281
+4633 8457   0.102497
+4633 8465   1.000000
+4633 8467   0.022222
+4633 8473  -1.000000
+4634 4   0.200000
+4634 8449   0.075281
+4634 8459   0.102497
+4634 8468   1.000000
+4634 8469   0.022222
+4634 8474  -1.000000
+4635 0   0.000000
+4635 1   4.000000
+4635 27  80.000000
+4635 29   1.000000
+4635 8357 -60.000000
+4636 0   0.000000
+4636 1   2.000000
+4636 28  40.000000
+4636 30   1.000000
+4636 8358 -30.000000
+4637 0   0.000000
+4637 2   0.000000
+4637 3   0.000000
+4637 4157 -60.000000
+4637 4227  80.000000
+4637 4229   1.000000
+4638 0   0.000000
+4638 2   0.000000
+4638 3   0.000000
+4638 4158 -30.000000
+4638 4228  40.000000
+4638 4230   1.000000
+4639 3  -0.100000
+4639 1357  -0.500000
+4639 8462   1.000000
+4640 3  -0.100000
+4640 1358  -0.500000
+4640 8463   1.000000
+4641 1  -0.100000
+4641 2  -0.100000
+4641 3   0.100000
+4641 6957  -0.500000
+4641 8466   1.000000
+4642 1  -0.100000
+4642 2  -0.100000
+4642 3   0.100000
+4642 6958  -0.500000
+4642 8467   1.000000
+4643 2  -1.000000
+4643 8469   1.000000
+4644 4   0.031010
+4644 8475   1.000000
+4644 8477   0.039363
+4644 8487  -0.013107
+4644 8497   0.004754
+4644 8505  -1.000000
+4645 4   0.031010
+4645 8476   1.000000
+4645 8478   0.039363
+4645 8488  -0.013107
+4645 8498   0.004754
+4645 8506  -1.000000
+4646 4   0.031010
+4646 8479   1.000000
+4646 8481   0.039363
+4646 8491  -0.013107
+4646 8501   0.004754
+4646 8507  -1.000000
+4647 4   0.031010
+4647 8480   1.000000
+4647 8482   0.039363
+4647 8492  -0.013107
+4647 8502   0.004754
+4647 8508  -1.000000
+4648 4   0.031010
+4648 8483   1.000000
+4648 8484   0.039363
+4648 8494  -0.013107
+4648 8504   0.004754
+4648 8509  -1.000000
+4649 0   0.000000
+4649 1   4.000000
+4649 33  80.000000
+4649 35   1.000000
+4649 8363 -60.000000
+4650 0   0.000000
+4650 1   2.000000
+4650 34  40.000000
+4650 36   1.000000
+4650 8364 -30.000000
+4651 0   0.000000
+4651 2   0.000000
+4651 3   0.000000
+4651 4163 -60.000000
+4651 4233  80.000000
+4651 4235   1.000000
+4652 0   0.000000
+4652 2   0.000000
+4652 3   0.000000
+4652 4164 -30.000000
+4652 4234  40.000000
+4652 4236   1.000000
+4653 3  -0.100000
+4653 1363  -0.500000
+4653 8477   1.000000
+4654 3  -0.100000
+4654 1364  -0.500000
+4654 8478   1.000000
+4655 1  -0.100000
+4655 2  -0.100000
+4655 3   0.100000
+4655 6963  -0.500000
+4655 8481   1.000000
+4656 1  -0.100000
+4656 2  -0.100000
+4656 3   0.100000
+4656 6964  -0.500000
+4656 8482   1.000000
+4657 2  -1.000000
+4657 8484   1.000000
+4658 4   0.128990
+4658 8477   0.078885
+4658 8485   1.000000
+4658 8487   0.058415
+4658 8497  -0.008310
+4658 8505  -1.000000
+4659 4   0.128990
+4659 8478   0.078885
+4659 8486   1.000000
+4659 8488   0.058415
+4659 8498  -0.008310
+4659 8506  -1.000000
+4660 4   0.128990
+4660 8481   0.078885
+4660 8489   1.000000
+4660 8491   0.058415
+4660 8501  -0.008310
+4660 8507  -1.000000
+4661 4   0.128990
+4661 8482   0.078885
+4661 8490   1.000000
+4661 8492   0.058415
+4661 8502  -0.008310
+4661 8508  -1.000000
+4662 4   0.128990
+4662 8484   0.078885
+4662 8493   1.000000
+4662 8494   0.058415
+4662 8504  -0.008310
+4662 8509  -1.000000
+4663 0   0.000000
+4663 1   4.000000
+4663 37  80.000000
+4663 39   1.000000
+4663 8367 -60.000000
+4664 0   0.000000
+4664 1   2.000000
+4664 38  40.000000
+4664 40   1.000000
+4664 8368 -30.000000
+4665 0   0.000000
+4665 2   0.000000
+4665 3   0.000000
+4665 4167 -60.000000
+4665 4237  80.000000
+4665 4239   1.000000
+4666 0   0.000000
+4666 2   0.000000
+4666 3   0.000000
+4666 4168 -30.000000
+4666 4238  40.000000
+4666 4240   1.000000
+4667 3  -0.100000
+4667 1367  -0.500000
+4667 8487   1.000000
+4668 3  -0.100000
+4668 1368  -0.500000
+4668 8488   1.000000
+4669 1  -0.100000
+4669 2  -0.100000
+4669 3   0.100000
+4669 6967  -0.500000
+4669 8491   1.000000
+4670 1  -0.100000
+4670 2  -0.100000
+4670 3   0.100000
+4670 6968  -0.500000
+4670 8492   1.000000
+4671 2  -1.000000
+4671 8494   1.000000
+4672 4   0.200000
+4672 8477   0.075281
+4672 8487   0.102497
+4672 8495   1.000000
+4672 8497   0.022222
+4672 8505  -1.000000
+4673 4   0.200000
+4673 8478   0.075281
+4673 8488   0.102497
+4673 8496   1.000000
+4673 8498   0.022222
+4673 8506  -1.000000
+4674 4   0.200000
+4674 8481   0.075281
+4674 8491   0.102497
+4674 8499   1.000000
+4674 8501   0.022222
+4674 8507  -1.000000
+4675 4   0.200000
+4675 8482   0.075281
+4675 8492   0.102497
+4675 8500   1.000000
+4675 8502   0.022222
+4675 8508  -1.000000
+4676 4   0.200000
+4676 8484   0.075281
+4676 8494   0.102497
+4676 8503   1.000000
+4676 8504   0.022222
+4676 8509  -1.000000
+4677 0   0.000000
+4677 1   4.000000
+4677 41  80.000000
+4677 43   1.000000
+4677 8371 -60.000000
+4678 0   0.000000
+4678 1   2.000000
+4678 42  40.000000
+4678 44   1.000000
+4678 8372 -30.000000
+4679 0   0.000000
+4679 2   0.000000
+4679 3   0.000000
+4679 4171 -60.000000
+4679 4241  80.000000
+4679 4243   1.000000
+4680 0   0.000000
+4680 2   0.000000
+4680 3   0.000000
+4680 4172 -30.000000
+4680 4242  40.000000
+4680 4244   1.000000
+4681 3  -0.100000
+4681 1371  -0.500000
+4681 8497   1.000000
+4682 3  -0.100000
+4682 1372  -0.500000
+4682 8498   1.000000
+4683 1  -0.100000
+4683 2  -0.100000
+4683 3   0.100000
+4683 6971  -0.500000
+4683 8501   1.000000
+4684 1  -0.100000
+4684 2  -0.100000
+4684 3   0.100000
+4684 6972  -0.500000
+4684 8502   1.000000
+4685 2  -1.000000
+4685 8504   1.000000
+4686 4   0.031010
+4686 8510   1.000000
+4686 8512   0.039363
+4686 8522  -0.013107
+4686 8532   0.004754
+4686 8540  -1.000000
+4687 4   0.031010
+4687 8511   1.000000
+4687 8513   0.039363
+4687 8523  -0.013107
+4687 8533   0.004754
+4687 8541  -1.000000
+4688 4   0.031010
+4688 8514   1.000000
+4688 8516   0.039363
+4688 8526  -0.013107
+4688 8536   0.004754
+4688 8542  -1.000000
+4689 4   0.031010
+4689 8515   1.000000
+4689 8517   0.039363
+4689 8527  -0.013107
+4689 8537   0.004754
+4689 8543  -1.000000
+4690 4   0.031010
+4690 8518   1.000000
+4690 8519   0.039363
+4690 8529  -0.013107
+4690 8539   0.004754
+4690 8544  -1.000000
+4691 0   0.000000
+4691 1   4.000000
+4691 47  80.000000
+4691 49   1.000000
+4691 8377 -60.000000
+4692 0   0.000000
+4692 1   2.000000
+4692 48  40.000000
+4692 50   1.000000
+4692 8378 -30.000000
+4693 0   0.000000
+4693 2   0.000000
+4693 3   0.000000
+4693 4177 -60.000000
+4693 4247  80.000000
+4693 4249   1.000000
+4694 0   0.000000
+4694 2   0.000000
+4694 3   0.000000
+4694 4178 -30.000000
+4694 4248  40.000000
+4694 4250   1.000000
+4695 3  -0.100000
+4695 1377  -0.500000
+4695 8512   1.000000
+4696 3  -0.100000
+4696 1378  -0.500000
+4696 8513   1.000000
+4697 1  -0.100000
+4697 2  -0.100000
+4697 3   0.100000
+4697 6977  -0.500000
+4697 8516   1.000000
+4698 1  -0.100000
+4698 2  -0.100000
+4698 3   0.100000
+4698 6978  -0.500000
+4698 8517   1.000000
+4699 2  -1.000000
+4699 8519   1.000000
+4700 4   0.128990
+4700 8512   0.078885
+4700 8520   1.000000
+4700 8522   0.058415
+4700 8532  -0.008310
+4700 8540  -1.000000
+4701 4   0.128990
+4701 8513   0.078885
+4701 8521   1.000000
+4701 8523   0.058415
+4701 8533  -0.008310
+4701 8541  -1.000000
+4702 4   0.128990
+4702 8516   0.078885
+4702 8524   1.000000
+4702 8526   0.058415
+4702 8536  -0.008310
+4702 8542  -1.000000
+4703 4   0.128990
+4703 8517   0.078885
+4703 8525   1.000000
+4703 8527   0.058415
+4703 8537  -0.008310
+4703 8543  -1.000000
+4704 4   0.128990
+4704 8519   0.078885
+4704 8528   1.000000
+4704 8529   0.058415
+4704 8539  -0.008310
+4704 8544  -1.000000
+4705 0   0.000000
+4705 1   4.000000
+4705 51  80.000000
+4705 53   1.000000
+4705 8381 -60.000000
+4706 0   0.000000
+4706 1   2.000000
+4706 52  40.000000
+4706 54   1.000000
+4706 8382 -30.000000
+4707 0   0.000000
+4707 2   0.000000
+4707 3   0.000000
+4707 4181 -60.000000
+4707 4251  80.000000
+4707 4253   1.000000
+4708 0   0.000000
+4708 2   0.000000
+4708 3   0.000000
+4708 4182 -30.000000
+4708 4252  40.000000
+4708 4254   1.000000
+4709 3  -0.100000
+4709 1381  -0.500000
+4709 8522   1.000000
+4710 3  -0.100000
+4710 1382  -0.500000
+4710 8523   1.000000
+4711 1  -0.100000
+4711 2  -0.100000
+4711 3   0.100000
+4711 6981  -0.500000
+4711 8526   1.000000
+4712 1  -0.100000
+4712 2  -0.100000
+4712 3   0.100000
+4712 6982  -0.500000
+4712 8527   1.000000
+4713 2  -1.000000
+4713 8529   1.000000
+4714 4   0.200000
+4714 8512   0.075281
+4714 8522   0.102497
+4714 8530   1.000000
+4714 8532   0.022222
+4714 8540  -1.000000
+4715 4   0.200000
+4715 8513   0.075281
+4715 8523   0.102497
+4715 8531   1.000000
+4715 8533   0.022222
+4715 8541  -1.000000
+4716 4   0.200000
+4716 8516   0.075281
+4716 8526   0.102497
+4716 8534   1.000000
+4716 8536   0.022222
+4716 8542  -1.000000
+4717 4   0.200000
+4717 8517   0.075281
+4717 8527   0.102497
+4717 8535   1.000000
+4717 8537   0.022222
+4717 8543  -1.000000
+4718 4   0.200000
+4718 8519   0.075281
+4718 8529   0.102497
+4718 8538   1.000000
+4718 8539   0.022222
+4718 8544  -1.000000
+4719 0   0.000000
+4719 1   4.000000
+4719 55  80.000000
+4719 57   1.000000
+4719 8385 -60.000000
+4720 0   0.000000
+4720 1   2.000000
+4720 56  40.000000
+4720 58   1.000000
+4720 8386 -30.000000
+4721 0   0.000000
+4721 2   0.000000
+4721 3   0.000000
+4721 4185 -60.000000
+4721 4255  80.000000
+4721 4257   1.000000
+4722 0   0.000000
+4722 2   0.000000
+4722 3   0.000000
+4722 4186 -30.000000
+4722 4256  40.000000
+4722 4258   1.000000
+4723 3  -0.100000
+4723 1385  -0.500000
+4723 8532   1.000000
+4724 3  -0.100000
+4724 1386  -0.500000
+4724 8533   1.000000
+4725 1  -0.100000
+4725 2  -0.100000
+4725 3   0.100000
+4725 6985  -0.500000
+4725 8536   1.000000
+4726 1  -0.100000
+4726 2  -0.100000
+4726 3   0.100000
+4726 6986  -0.500000
+4726 8537   1.000000
+4727 2  -1.000000
+4727 8539   1.000000
+4728 4   0.031010
+4728 8545   1.000000
+4728 8547   0.039363
+4728 8557  -0.013107
+4728 8567   0.004754
+4728 8575  -1.000000
+4729 4   0.031010
+4729 8546   1.000000
+4729 8548   0.039363
+4729 8558  -0.013107
+4729 8568   0.004754
+4729 8576  -1.000000
+4730 4   0.031010
+4730 8549   1.000000
+4730 8551   0.039363
+4730 8561  -0.013107
+4730 8571   0.004754
+4730 8577  -1.000000
+4731 4   0.031010
+4731 8550   1.000000
+4731 8552   0.039363
+4731 8562  -0.013107
+4731 8572   0.004754
+4731 8578  -1.000000
+4732 4   0.031010
+4732 8553   1.000000
+4732 8554   0.039363
+4732 8564  -0.013107
+4732 8574   0.004754
+4732 8579  -1.000000
+4733 0   0.000000
+4733 1   4.000000
+4733 61  80.000000
+4733 63   1.000000
+4733 8391 -60.000000
+4734 0   0.000000
+4734 1   2.000000
+4734 62  40.000000
+4734 64   1.000000
+4734 8392 -30.000000
+4735 0   0.000000
+4735 2   0.000000
+4735 3   0.000000
+4735 4191 -60.000000
+4735 4261  80.000000
+4735 4263   1.000000
+4736 0   0.000000
+4736 2   0.000000
+4736 3   0.000000
+4736 4192 -30.000000
+4736 4262  40.000000
+4736 4264   1.000000
+4737 3  -0.100000
+4737 1391  -0.500000
+4737 8547   1.000000
+4738 3  -0.100000
+4738 1392  -0.500000
+4738 8548   1.000000
+4739 1  -0.100000
+4739 2  -0.100000
+4739 3   0.100000
+4739 6991  -0.500000
+4739 8551   1.000000
+4740 1  -0.100000
+4740 2  -0.100000
+4740 3   0.100000
+4740 6992  -0.500000
+4740 8552   1.000000
+4741 2  -1.000000
+4741 8554   1.000000
+4742 4   0.128990
+4742 8547   0.078885
+4742 8555   1.000000
+4742 8557   0.058415
+4742 8567  -0.008310
+4742 8575  -1.000000
+4743 4   0.128990
+4743 8548   0.078885
+4743 8556   1.000000
+4743 8558   0.058415
+4743 8568  -0.008310
+4743 8576  -1.000000
+4744 4   0.128990
+4744 8551   0.078885
+4744 8559   1.000000
+4744 8561   0.058415
+4744 8571  -0.008310
+4744 8577  -1.000000
+4745 4   0.128990
+4745 8552   0.078885
+4745 8560   1.000000
+4745 8562   0.058415
+4745 8572  -0.008310
+4745 8578  -1.000000
+4746 4   0.128990
+4746 8554   0.078885
+4746 8563   1.000000
+4746 8564   0.058415
+4746 8574  -0.008310
+4746 8579  -1.000000
+4747 0   0.000000
+4747 1   4.000000
+4747 65  80.000000
+4747 67   1.000000
+4747 8395 -60.000000
+4748 0   0.000000
+4748 1   2.000000
+4748 66  40.000000
+4748 68   1.000000
+4748 8396 -30.000000
+4749 0   0.000000
+4749 2   0.000000
+4749 3   0.000000
+4749 4195 -60.000000
+4749 4265  80.000000
+4749 4267   1.000000
+4750 0   0.000000
+4750 2   0.000000
+4750 3   0.000000
+4750 4196 -30.000000
+4750 4266  40.000000
+4750 4268   1.000000
+4751 3  -0.100000
+4751 1395  -0.500000
+4751 8557   1.000000
+4752 3  -0.100000
+4752 1396  -0.500000
+4752 8558   1.000000
+4753 1  -0.100000
+4753 2  -0.100000
+4753 3   0.100000
+4753 6995  -0.500000
+4753 8561   1.000000
+4754 1  -0.100000
+4754 2  -0.100000
+4754 3   0.100000
+4754 6996  -0.500000
+4754 8562   1.000000
+4755 2  -1.000000
+4755 8564   1.000000
+4756 4   0.200000
+4756 8547   0.075281
+4756 8557   0.102497
+4756 8565   1.000000
+4756 8567   0.022222
+4756 8575  -1.000000
+4757 4   0.200000
+4757 8548   0.075281
+4757 8558   0.102497
+4757 8566   1.000000
+4757 8568   0.022222
+4757 8576  -1.000000
+4758 4   0.200000
+4758 8551   0.075281
+4758 8561   0.102497
+4758 8569   1.000000
+4758 8571   0.022222
+4758 8577  -1.000000
+4759 4   0.200000
+4759 8552   0.075281
+4759 8562   0.102497
+4759 8570   1.000000
+4759 8572   0.022222
+4759 8578  -1.000000
+4760 4   0.200000
+4760 8554   0.075281
+4760 8564   0.102497
+4760 8573   1.000000
+4760 8574   0.022222
+4760 8579  -1.000000
+4761 0   0.000000
+4761 1   4.000000
+4761 69  80.000000
+4761 71   1.000000
+4761 8399 -60.000000
+4762 0   0.000000
+4762 1   2.000000
+4762 70  40.000000
+4762 72   1.000000
+4762 8400 -30.000000
+4763 0   0.000000
+4763 2   0.000000
+4763 3   0.000000
+4763 4199 -60.000000
+4763 4269  80.000000
+4763 4271   1.000000
+4764 0   0.000000
+4764 2   0.000000
+4764 3   0.000000
+4764 4200 -30.000000
+4764 4270  40.000000
+4764 4272   1.000000
+4765 3  -0.100000
+4765 1399  -0.500000
+4765 8567   1.000000
+4766 3  -0.100000
+4766 1400  -0.500000
+4766 8568   1.000000
+4767 1  -0.100000
+4767 2  -0.100000
+4767 3   0.100000
+4767 6999  -0.500000
+4767 8571   1.000000
+4768 1  -0.100000
+4768 2  -0.100000
+4768 3   0.100000
+4768 7000  -0.500000
+4768 8572   1.000000
+4769 2  -1.000000
+4769 8574   1.000000
+4770 4   0.200000
+4770 8407   0.075281
+4770 8417   0.102497
+4770 8427   0.022222
+4770 8435  -1.000000
+4770 8470   1.000000
+4771 4   0.200000
+4771 8408   0.075281
+4771 8418   0.102497
+4771 8428   0.022222
+4771 8436  -1.000000
+4771 8471   1.000000
+4772 4   0.200000
+4772 8411   0.075281
+4772 8421   0.102497
+4772 8431   0.022222
+4772 8437  -1.000000
+4772 8472   1.000000
+4773 4   0.200000
+4773 8412   0.075281
+4773 8422   0.102497
+4773 8432   0.022222
+4773 8438  -1.000000
+4773 8473   1.000000
+4774 4   0.200000
+4774 8414   0.075281
+4774 8424   0.102497
+4774 8434   0.022222
+4774 8439  -1.000000
+4774 8474   1.000000
+4775 4   0.200000
+4775 8442   0.075281
+4775 8452   0.102497
+4775 8462   0.022222
+4775 8470  -1.000000
+4775 8505   1.000000
+4776 4   0.200000
+4776 8443   0.075281
+4776 8453   0.102497
+4776 8463   0.022222
+4776 8471  -1.000000
+4776 8506   1.000000
+4777 4   0.200000
+4777 8446   0.075281
+4777 8456   0.102497
+4777 8466   0.022222
+4777 8472  -1.000000
+4777 8507   1.000000
+4778 4   0.200000
+4778 8447   0.075281
+4778 8457   0.102497
+4778 8467   0.022222
+4778 8473  -1.000000
+4778 8508   1.000000
+4779 4   0.200000
+4779 8449   0.075281
+4779 8459   0.102497
+4779 8469   0.022222
+4779 8474  -1.000000
+4779 8509   1.000000
+4780 4   0.200000
+4780 8477   0.075281
+4780 8487   0.102497
+4780 8497   0.022222
+4780 8505  -1.000000
+4780 8540   1.000000
+4781 4   0.200000
+4781 8478   0.075281
+4781 8488   0.102497
+4781 8498   0.022222
+4781 8506  -1.000000
+4781 8541   1.000000
+4782 4   0.200000
+4782 8481   0.075281
+4782 8491   0.102497
+4782 8501   0.022222
+4782 8507  -1.000000
+4782 8542   1.000000
+4783 4   0.200000
+4783 8482   0.075281
+4783 8492   0.102497
+4783 8502   0.022222
+4783 8508  -1.000000
+4783 8543   1.000000
+4784 4   0.200000
+4784 8484   0.075281
+4784 8494   0.102497
+4784 8504   0.022222
+4784 8509  -1.000000
+4784 8544   1.000000
+4785 4   0.200000
+4785 8512   0.075281
+4785 8522   0.102497
+4785 8532   0.022222
+4785 8540  -1.000000
+4785 8575   1.000000
+4786 4   0.200000
+4786 8513   0.075281
+4786 8523   0.102497
+4786 8533   0.022222
+4786 8541  -1.000000
+4786 8576   1.000000
+4787 4   0.200000
+4787 8516   0.075281
+4787 8526   0.102497
+4787 8536   0.022222
+4787 8542  -1.000000
+4787 8577   1.000000
+4788 4   0.200000
+4788 8517   0.075281
+4788 8527   0.102497
+4788 8537   0.022222
+4788 8543  -1.000000
+4788 8578   1.000000
+4789 4   0.200000
+4789 8519   0.075281
+4789 8529   0.102497
+4789 8539   0.022222
+4789 8544  -1.000000
+4789 8579   1.000000
+4790 0   0.000000
+4790 5 -80.000000
+4790 75  80.000000
+4790 77   1.000000
+4791 0   0.000000
+4791 6 -40.000000
+4791 76  40.000000
+4791 78   1.000000
+4792 0   0.000000
+4792 9 -80.000000
+4792 79  80.000000
+4792 81   1.000000
+4793 0   0.000000
+4793 10 -40.000000
+4793 80  40.000000
+4793 82   1.000000
+4794 0   0.000000
+4794 13 -80.000000
+4794 83  80.000000
+4794 85   1.000000
+4795 0   0.000000
+4795 14 -40.000000
+4795 84  40.000000
+4795 86   1.000000
+4796 0   0.000000
+4796 19 -80.000000
+4796 89  80.000000
+4796 91   1.000000
+4797 0   0.000000
+4797 20 -40.000000
+4797 90  40.000000
+4797 92   1.000000
+4798 0   0.000000
+4798 23 -80.000000
+4798 93  80.000000
+4798 95   1.000000
+4799 0   0.000000
+4799 24 -40.000000
+4799 94  40.000000
+4799 96   1.000000
+4800 0   0.000000
+4800 27 -80.000000
+4800 97  80.000000
+4800 99   1.000000
+4801 0   0.000000
+4801 28 -40.000000
+4801 98  40.000000
+4801 100   1.000000
+4802 0   0.000000
+4802 33 -80.000000
+4802 103  80.000000
+4802 105   1.000000
+4803 0   0.000000
+4803 34 -40.000000
+4803 104  40.000000
+4803 106   1.000000
+4804 0   0.000000
+4804 37 -80.000000
+4804 107  80.000000
+4804 109   1.000000
+4805 0   0.000000
+4805 38 -40.000000
+4805 108  40.000000
+4805 110   1.000000
+4806 0   0.000000
+4806 41 -80.000000
+4806 111  80.000000
+4806 113   1.000000
+4807 0   0.000000
+4807 42 -40.000000
+4807 112  40.000000
+4807 114   1.000000
+4808 0   0.000000
+4808 47 -80.000000
+4808 117  80.000000
+4808 119   1.000000
+4809 0   0.000000
+4809 48 -40.000000
+4809 118  40.000000
+4809 120   1.000000
+4810 0   0.000000
+4810 51 -80.000000
+4810 121  80.000000
+4810 123   1.000000
+4811 0   0.000000
+4811 52 -40.000000
+4811 122  40.000000
+4811 124   1.000000
+4812 0   0.000000
+4812 55 -80.000000
+4812 125  80.000000
+4812 127   1.000000
+4813 0   0.000000
+4813 56 -40.000000
+4813 126  40.000000
+4813 128   1.000000
+4814 0   0.000000
+4814 61 -80.000000
+4814 131  80.000000
+4814 133   1.000000
+4815 0   0.000000
+4815 62 -40.000000
+4815 132  40.000000
+4815 134   1.000000
+4816 0   0.000000
+4816 65 -80.000000
+4816 135  80.000000
+4816 137   1.000000
+4817 0   0.000000
+4817 66 -40.000000
+4817 136  40.000000
+4817 138   1.000000
+4818 0   0.000000
+4818 69 -80.000000
+4818 139  80.000000
+4818 141   1.000000
+4819 0   0.000000
+4819 70 -40.000000
+4819 140  40.000000
+4819 142   1.000000
+4820 0   0.000000
+4820 75 -80.000000
+4820 145  80.000000
+4820 147   1.000000
+4821 0   0.000000
+4821 76 -40.000000
+4821 146  40.000000
+4821 148   1.000000
+4822 0   0.000000
+4822 79 -80.000000
+4822 149  80.000000
+4822 151   1.000000
+4823 0   0.000000
+4823 80 -40.000000
+4823 150  40.000000
+4823 152   1.000000
+4824 0   0.000000
+4824 83 -80.000000
+4824 153  80.000000
+4824 155   1.000000
+4825 0   0.000000
+4825 84 -40.000000
+4825 154  40.000000
+4825 156   1.000000
+4826 0   0.000000
+4826 89 -80.000000
+4826 159  80.000000
+4826 161   1.000000
+4827 0   0.000000
+4827 90 -40.000000
+4827 160  40.000000
+4827 162   1.000000
+4828 0   0.000000
+4828 93 -80.000000
+4828 163  80.000000
+4828 165   1.000000
+4829 0   0.000000
+4829 94 -40.000000
+4829 164  40.000000
+4829 166   1.000000
+4830 0   0.000000
+4830 97 -80.000000
+4830 167  80.000000
+4830 169   1.000000
+4831 0   0.000000
+4831 98 -40.000000
+4831 168  40.000000
+4831 170   1.000000
+4832 0   0.000000
+4832 103 -80.000000
+4832 173  80.000000
+4832 175   1.000000
+4833 0   0.000000
+4833 104 -40.000000
+4833 174  40.000000
+4833 176   1.000000
+4834 0   0.000000
+4834 107 -80.000000
+4834 177  80.000000
+4834 179   1.000000
+4835 0   0.000000
+4835 108 -40.000000
+4835 178  40.000000
+4835 180   1.000000
+4836 0   0.000000
+4836 111 -80.000000
+4836 181  80.000000
+4836 183   1.000000
+4837 0   0.000000
+4837 112 -40.000000
+4837 182  40.000000
+4837 184   1.000000
+4838 0   0.000000
+4838 117 -80.000000
+4838 187  80.000000
+4838 189   1.000000
+4839 0   0.000000
+4839 118 -40.000000
+4839 188  40.000000
+4839 190   1.000000
+4840 0   0.000000
+4840 121 -80.000000
+4840 191  80.000000
+4840 193   1.000000
+4841 0   0.000000
+4841 122 -40.000000
+4841 192  40.000000
+4841 194   1.000000
+4842 0   0.000000
+4842 125 -80.000000
+4842 195  80.000000
+4842 197   1.000000
+4843 0   0.000000
+4843 126 -40.000000
+4843 196  40.000000
+4843 198   1.000000
+4844 0   0.000000
+4844 131 -80.000000
+4844 201  80.000000
+4844 203   1.000000
+4845 0   0.000000
+4845 132 -40.000000
+4845 202  40.000000
+4845 204   1.000000
+4846 0   0.000000
+4846 135 -80.000000
+4846 205  80.000000
+4846 207   1.000000
+4847 0   0.000000
+4847 136 -40.000000
+4847 206  40.000000
+4847 208   1.000000
+4848 0   0.000000
+4848 139 -80.000000
+4848 209  80.000000
+4848 211   1.000000
+4849 0   0.000000
+4849 140 -40.000000
+4849 210  40.000000
+4849 212   1.000000
+4850 0   0.000000
+4850 145 -80.000000
+4850 215  80.000000
+4850 217   1.000000
+4851 0   0.000000
+4851 146 -40.000000
+4851 216  40.000000
+4851 218   1.000000
+4852 0   0.000000
+4852 149 -80.000000
+4852 219  80.000000
+4852 221   1.000000
+4853 0   0.000000
+4853 150 -40.000000
+4853 220  40.000000
+4853 222   1.000000
+4854 0   0.000000
+4854 153 -80.000000
+4854 223  80.000000
+4854 225   1.000000
+4855 0   0.000000
+4855 154 -40.000000
+4855 224  40.000000
+4855 226   1.000000
+4856 0   0.000000
+4856 159 -80.000000
+4856 229  80.000000
+4856 231   1.000000
+4857 0   0.000000
+4857 160 -40.000000
+4857 230  40.000000
+4857 232   1.000000
+4858 0   0.000000
+4858 163 -80.000000
+4858 233  80.000000
+4858 235   1.000000
+4859 0   0.000000
+4859 164 -40.000000
+4859 234  40.000000
+4859 236   1.000000
+4860 0   0.000000
+4860 167 -80.000000
+4860 237  80.000000
+4860 239   1.000000
+4861 0   0.000000
+4861 168 -40.000000
+4861 238  40.000000
+4861 240   1.000000
+4862 0   0.000000
+4862 173 -80.000000
+4862 243  80.000000
+4862 245   1.000000
+4863 0   0.000000
+4863 174 -40.000000
+4863 244  40.000000
+4863 246   1.000000
+4864 0   0.000000
+4864 177 -80.000000
+4864 247  80.000000
+4864 249   1.000000
+4865 0   0.000000
+4865 178 -40.000000
+4865 248  40.000000
+4865 250   1.000000
+4866 0   0.000000
+4866 181 -80.000000
+4866 251  80.000000
+4866 253   1.000000
+4867 0   0.000000
+4867 182 -40.000000
+4867 252  40.000000
+4867 254   1.000000
+4868 0   0.000000
+4868 187 -80.000000
+4868 257  80.000000
+4868 259   1.000000
+4869 0   0.000000
+4869 188 -40.000000
+4869 258  40.000000
+4869 260   1.000000
+4870 0   0.000000
+4870 191 -80.000000
+4870 261  80.000000
+4870 263   1.000000
+4871 0   0.000000
+4871 192 -40.000000
+4871 262  40.000000
+4871 264   1.000000
+4872 0   0.000000
+4872 195 -80.000000
+4872 265  80.000000
+4872 267   1.000000
+4873 0   0.000000
+4873 196 -40.000000
+4873 266  40.000000
+4873 268   1.000000
+4874 0   0.000000
+4874 201 -80.000000
+4874 271  80.000000
+4874 273   1.000000
+4875 0   0.000000
+4875 202 -40.000000
+4875 272  40.000000
+4875 274   1.000000
+4876 0   0.000000
+4876 205 -80.000000
+4876 275  80.000000
+4876 277   1.000000
+4877 0   0.000000
+4877 206 -40.000000
+4877 276  40.000000
+4877 278   1.000000
+4878 0   0.000000
+4878 209 -80.000000
+4878 279  80.000000
+4878 281   1.000000
+4879 0   0.000000
+4879 210 -40.000000
+4879 280  40.000000
+4879 282   1.000000
+4880 0   0.000000
+4880 215 -80.000000
+4880 285  80.000000
+4880 287   1.000000
+4881 0   0.000000
+4881 216 -40.000000
+4881 286  40.000000
+4881 288   1.000000
+4882 0   0.000000
+4882 219 -80.000000
+4882 289  80.000000
+4882 291   1.000000
+4883 0   0.000000
+4883 220 -40.000000
+4883 290  40.000000
+4883 292   1.000000
+4884 0   0.000000
+4884 223 -80.000000
+4884 293  80.000000
+4884 295   1.000000
+4885 0   0.000000
+4885 224 -40.000000
+4885 294  40.000000
+4885 296   1.000000
+4886 0   0.000000
+4886 229 -80.000000
+4886 299  80.000000
+4886 301   1.000000
+4887 0   0.000000
+4887 230 -40.000000
+4887 300  40.000000
+4887 302   1.000000
+4888 0   0.000000
+4888 233 -80.000000
+4888 303  80.000000
+4888 305   1.000000
+4889 0   0.000000
+4889 234 -40.000000
+4889 304  40.000000
+4889 306   1.000000
+4890 0   0.000000
+4890 237 -80.000000
+4890 307  80.000000
+4890 309   1.000000
+4891 0   0.000000
+4891 238 -40.000000
+4891 308  40.000000
+4891 310   1.000000
+4892 0   0.000000
+4892 243 -80.000000
+4892 313  80.000000
+4892 315   1.000000
+4893 0   0.000000
+4893 244 -40.000000
+4893 314  40.000000
+4893 316   1.000000
+4894 0   0.000000
+4894 247 -80.000000
+4894 317  80.000000
+4894 319   1.000000
+4895 0   0.000000
+4895 248 -40.000000
+4895 318  40.000000
+4895 320   1.000000
+4896 0   0.000000
+4896 251 -80.000000
+4896 321  80.000000
+4896 323   1.000000
+4897 0   0.000000
+4897 252 -40.000000
+4897 322  40.000000
+4897 324   1.000000
+4898 0   0.000000
+4898 257 -80.000000
+4898 327  80.000000
+4898 329   1.000000
+4899 0   0.000000
+4899 258 -40.000000
+4899 328  40.000000
+4899 330   1.000000
+4900 0   0.000000
+4900 261 -80.000000
+4900 331  80.000000
+4900 333   1.000000
+4901 0   0.000000
+4901 262 -40.000000
+4901 332  40.000000
+4901 334   1.000000
+4902 0   0.000000
+4902 265 -80.000000
+4902 335  80.000000
+4902 337   1.000000
+4903 0   0.000000
+4903 266 -40.000000
+4903 336  40.000000
+4903 338   1.000000
+4904 0   0.000000
+4904 271 -80.000000
+4904 341  80.000000
+4904 343   1.000000
+4905 0   0.000000
+4905 272 -40.000000
+4905 342  40.000000
+4905 344   1.000000
+4906 0   0.000000
+4906 275 -80.000000
+4906 345  80.000000
+4906 347   1.000000
+4907 0   0.000000
+4907 276 -40.000000
+4907 346  40.000000
+4907 348   1.000000
+4908 0   0.000000
+4908 279 -80.000000
+4908 349  80.000000
+4908 351   1.000000
+4909 0   0.000000
+4909 280 -40.000000
+4909 350  40.000000
+4909 352   1.000000
+4910 0   0.000000
+4910 285 -80.000000
+4910 355  80.000000
+4910 357   1.000000
+4911 0   0.000000
+4911 286 -40.000000
+4911 356  40.000000
+4911 358   1.000000
+4912 0   0.000000
+4912 289 -80.000000
+4912 359  80.000000
+4912 361   1.000000
+4913 0   0.000000
+4913 290 -40.000000
+4913 360  40.000000
+4913 362   1.000000
+4914 0   0.000000
+4914 293 -80.000000
+4914 363  80.000000
+4914 365   1.000000
+4915 0   0.000000
+4915 294 -40.000000
+4915 364  40.000000
+4915 366   1.000000
+4916 0   0.000000
+4916 299 -80.000000
+4916 369  80.000000
+4916 371   1.000000
+4917 0   0.000000
+4917 300 -40.000000
+4917 370  40.000000
+4917 372   1.000000
+4918 0   0.000000
+4918 303 -80.000000
+4918 373  80.000000
+4918 375   1.000000
+4919 0   0.000000
+4919 304 -40.000000
+4919 374  40.000000
+4919 376   1.000000
+4920 0   0.000000
+4920 307 -80.000000
+4920 377  80.000000
+4920 379   1.000000
+4921 0   0.000000
+4921 308 -40.000000
+4921 378  40.000000
+4921 380   1.000000
+4922 0   0.000000
+4922 313 -80.000000
+4922 383  80.000000
+4922 385   1.000000
+4923 0   0.000000
+4923 314 -40.000000
+4923 384  40.000000
+4923 386   1.000000
+4924 0   0.000000
+4924 317 -80.000000
+4924 387  80.000000
+4924 389   1.000000
+4925 0   0.000000
+4925 318 -40.000000
+4925 388  40.000000
+4925 390   1.000000
+4926 0   0.000000
+4926 321 -80.000000
+4926 391  80.000000
+4926 393   1.000000
+4927 0   0.000000
+4927 322 -40.000000
+4927 392  40.000000
+4927 394   1.000000
+4928 0   0.000000
+4928 327 -80.000000
+4928 397  80.000000
+4928 399   1.000000
+4929 0   0.000000
+4929 328 -40.000000
+4929 398  40.000000
+4929 400   1.000000
+4930 0   0.000000
+4930 331 -80.000000
+4930 401  80.000000
+4930 403   1.000000
+4931 0   0.000000
+4931 332 -40.000000
+4931 402  40.000000
+4931 404   1.000000
+4932 0   0.000000
+4932 335 -80.000000
+4932 405  80.000000
+4932 407   1.000000
+4933 0   0.000000
+4933 336 -40.000000
+4933 406  40.000000
+4933 408   1.000000
+4934 0   0.000000
+4934 341 -80.000000
+4934 411  80.000000
+4934 413   1.000000
+4935 0   0.000000
+4935 342 -40.000000
+4935 412  40.000000
+4935 414   1.000000
+4936 0   0.000000
+4936 345 -80.000000
+4936 415  80.000000
+4936 417   1.000000
+4937 0   0.000000
+4937 346 -40.000000
+4937 416  40.000000
+4937 418   1.000000
+4938 0   0.000000
+4938 349 -80.000000
+4938 419  80.000000
+4938 421   1.000000
+4939 0   0.000000
+4939 350 -40.000000
+4939 420  40.000000
+4939 422   1.000000
+4940 0   0.000000
+4940 355 -80.000000
+4940 425  80.000000
+4940 427   1.000000
+4941 0   0.000000
+4941 356 -40.000000
+4941 426  40.000000
+4941 428   1.000000
+4942 0   0.000000
+4942 359 -80.000000
+4942 429  80.000000
+4942 431   1.000000
+4943 0   0.000000
+4943 360 -40.000000
+4943 430  40.000000
+4943 432   1.000000
+4944 0   0.000000
+4944 363 -80.000000
+4944 433  80.000000
+4944 435   1.000000
+4945 0   0.000000
+4945 364 -40.000000
+4945 434  40.000000
+4945 436   1.000000
+4946 0   0.000000
+4946 369 -80.000000
+4946 439  80.000000
+4946 441   1.000000
+4947 0   0.000000
+4947 370 -40.000000
+4947 440  40.000000
+4947 442   1.000000
+4948 0   0.000000
+4948 373 -80.000000
+4948 443  80.000000
+4948 445   1.000000
+4949 0   0.000000
+4949 374 -40.000000
+4949 444  40.000000
+4949 446   1.000000
+4950 0   0.000000
+4950 377 -80.000000
+4950 447  80.000000
+4950 449   1.000000
+4951 0   0.000000
+4951 378 -40.000000
+4951 448  40.000000
+4951 450   1.000000
+4952 0   0.000000
+4952 383 -80.000000
+4952 453  80.000000
+4952 455   1.000000
+4953 0   0.000000
+4953 384 -40.000000
+4953 454  40.000000
+4953 456   1.000000
+4954 0   0.000000
+4954 387 -80.000000
+4954 457  80.000000
+4954 459   1.000000
+4955 0   0.000000
+4955 388 -40.000000
+4955 458  40.000000
+4955 460   1.000000
+4956 0   0.000000
+4956 391 -80.000000
+4956 461  80.000000
+4956 463   1.000000
+4957 0   0.000000
+4957 392 -40.000000
+4957 462  40.000000
+4957 464   1.000000
+4958 0   0.000000
+4958 397 -80.000000
+4958 467  80.000000
+4958 469   1.000000
+4959 0   0.000000
+4959 398 -40.000000
+4959 468  40.000000
+4959 470   1.000000
+4960 0   0.000000
+4960 401 -80.000000
+4960 471  80.000000
+4960 473   1.000000
+4961 0   0.000000
+4961 402 -40.000000
+4961 472  40.000000
+4961 474   1.000000
+4962 0   0.000000
+4962 405 -80.000000
+4962 475  80.000000
+4962 477   1.000000
+4963 0   0.000000
+4963 406 -40.000000
+4963 476  40.000000
+4963 478   1.000000
+4964 0   0.000000
+4964 411 -80.000000
+4964 481  80.000000
+4964 483   1.000000
+4965 0   0.000000
+4965 412 -40.000000
+4965 482  40.000000
+4965 484   1.000000
+4966 0   0.000000
+4966 415 -80.000000
+4966 485  80.000000
+4966 487   1.000000
+4967 0   0.000000
+4967 416 -40.000000
+4967 486  40.000000
+4967 488   1.000000
+4968 0   0.000000
+4968 419 -80.000000
+4968 489  80.000000
+4968 491   1.000000
+4969 0   0.000000
+4969 420 -40.000000
+4969 490  40.000000
+4969 492   1.000000
+4970 0   0.000000
+4970 425 -80.000000
+4970 495  80.000000
+4970 497   1.000000
+4971 0   0.000000
+4971 426 -40.000000
+4971 496  40.000000
+4971 498   1.000000
+4972 0   0.000000
+4972 429 -80.000000
+4972 499  80.000000
+4972 501   1.000000
+4973 0   0.000000
+4973 430 -40.000000
+4973 500  40.000000
+4973 502   1.000000
+4974 0   0.000000
+4974 433 -80.000000
+4974 503  80.000000
+4974 505   1.000000
+4975 0   0.000000
+4975 434 -40.000000
+4975 504  40.000000
+4975 506   1.000000
+4976 0   0.000000
+4976 439 -80.000000
+4976 509  80.000000
+4976 511   1.000000
+4977 0   0.000000
+4977 440 -40.000000
+4977 510  40.000000
+4977 512   1.000000
+4978 0   0.000000
+4978 443 -80.000000
+4978 513  80.000000
+4978 515   1.000000
+4979 0   0.000000
+4979 444 -40.000000
+4979 514  40.000000
+4979 516   1.000000
+4980 0   0.000000
+4980 447 -80.000000
+4980 517  80.000000
+4980 519   1.000000
+4981 0   0.000000
+4981 448 -40.000000
+4981 518  40.000000
+4981 520   1.000000
+4982 0   0.000000
+4982 453 -80.000000
+4982 523  80.000000
+4982 525   1.000000
+4983 0   0.000000
+4983 454 -40.000000
+4983 524  40.000000
+4983 526   1.000000
+4984 0   0.000000
+4984 457 -80.000000
+4984 527  80.000000
+4984 529   1.000000
+4985 0   0.000000
+4985 458 -40.000000
+4985 528  40.000000
+4985 530   1.000000
+4986 0   0.000000
+4986 461 -80.000000
+4986 531  80.000000
+4986 533   1.000000
+4987 0   0.000000
+4987 462 -40.000000
+4987 532  40.000000
+4987 534   1.000000
+4988 0   0.000000
+4988 467 -80.000000
+4988 537  80.000000
+4988 539   1.000000
+4989 0   0.000000
+4989 468 -40.000000
+4989 538  40.000000
+4989 540   1.000000
+4990 0   0.000000
+4990 471 -80.000000
+4990 541  80.000000
+4990 543   1.000000
+4991 0   0.000000
+4991 472 -40.000000
+4991 542  40.000000
+4991 544   1.000000
+4992 0   0.000000
+4992 475 -80.000000
+4992 545  80.000000
+4992 547   1.000000
+4993 0   0.000000
+4993 476 -40.000000
+4993 546  40.000000
+4993 548   1.000000
+4994 0   0.000000
+4994 481 -80.000000
+4994 551  80.000000
+4994 553   1.000000
+4995 0   0.000000
+4995 482 -40.000000
+4995 552  40.000000
+4995 554   1.000000
+4996 0   0.000000
+4996 485 -80.000000
+4996 555  80.000000
+4996 557   1.000000
+4997 0   0.000000
+4997 486 -40.000000
+4997 556  40.000000
+4997 558   1.000000
+4998 0   0.000000
+4998 489 -80.000000
+4998 559  80.000000
+4998 561   1.000000
+4999 0   0.000000
+4999 490 -40.000000
+4999 560  40.000000
+4999 562   1.000000
+5000 0   0.000000
+5000 495 -80.000000
+5000 565  80.000000
+5000 567   1.000000
+5001 0   0.000000
+5001 496 -40.000000
+5001 566  40.000000
+5001 568   1.000000
+5002 0   0.000000
+5002 499 -80.000000
+5002 569  80.000000
+5002 571   1.000000
+5003 0   0.000000
+5003 500 -40.000000
+5003 570  40.000000
+5003 572   1.000000
+5004 0   0.000000
+5004 503 -80.000000
+5004 573  80.000000
+5004 575   1.000000
+5005 0   0.000000
+5005 504 -40.000000
+5005 574  40.000000
+5005 576   1.000000
+5006 0   0.000000
+5006 509 -80.000000
+5006 579  80.000000
+5006 581   1.000000
+5007 0   0.000000
+5007 510 -40.000000
+5007 580  40.000000
+5007 582   1.000000
+5008 0   0.000000
+5008 513 -80.000000
+5008 583  80.000000
+5008 585   1.000000
+5009 0   0.000000
+5009 514 -40.000000
+5009 584  40.000000
+5009 586   1.000000
+5010 0   0.000000
+5010 517 -80.000000
+5010 587  80.000000
+5010 589   1.000000
+5011 0   0.000000
+5011 518 -40.000000
+5011 588  40.000000
+5011 590   1.000000
+5012 0   0.000000
+5012 523 -80.000000
+5012 593  80.000000
+5012 595   1.000000
+5013 0   0.000000
+5013 524 -40.000000
+5013 594  40.000000
+5013 596   1.000000
+5014 0   0.000000
+5014 527 -80.000000
+5014 597  80.000000
+5014 599   1.000000
+5015 0   0.000000
+5015 528 -40.000000
+5015 598  40.000000
+5015 600   1.000000
+5016 0   0.000000
+5016 531 -80.000000
+5016 601  80.000000
+5016 603   1.000000
+5017 0   0.000000
+5017 532 -40.000000
+5017 602  40.000000
+5017 604   1.000000
+5018 0   0.000000
+5018 537 -80.000000
+5018 607  80.000000
+5018 609   1.000000
+5019 0   0.000000
+5019 538 -40.000000
+5019 608  40.000000
+5019 610   1.000000
+5020 0   0.000000
+5020 541 -80.000000
+5020 611  80.000000
+5020 613   1.000000
+5021 0   0.000000
+5021 542 -40.000000
+5021 612  40.000000
+5021 614   1.000000
+5022 0   0.000000
+5022 545 -80.000000
+5022 615  80.000000
+5022 617   1.000000
+5023 0   0.000000
+5023 546 -40.000000
+5023 616  40.000000
+5023 618   1.000000
+5024 0   0.000000
+5024 551 -80.000000
+5024 621  80.000000
+5024 623   1.000000
+5025 0   0.000000
+5025 552 -40.000000
+5025 622  40.000000
+5025 624   1.000000
+5026 0   0.000000
+5026 555 -80.000000
+5026 625  80.000000
+5026 627   1.000000
+5027 0   0.000000
+5027 556 -40.000000
+5027 626  40.000000
+5027 628   1.000000
+5028 0   0.000000
+5028 559 -80.000000
+5028 629  80.000000
+5028 631   1.000000
+5029 0   0.000000
+5029 560 -40.000000
+5029 630  40.000000
+5029 632   1.000000
+5030 0   0.000000
+5030 565 -80.000000
+5030 635  80.000000
+5030 637   1.000000
+5031 0   0.000000
+5031 566 -40.000000
+5031 636  40.000000
+5031 638   1.000000
+5032 0   0.000000
+5032 569 -80.000000
+5032 639  80.000000
+5032 641   1.000000
+5033 0   0.000000
+5033 570 -40.000000
+5033 640  40.000000
+5033 642   1.000000
+5034 0   0.000000
+5034 573 -80.000000
+5034 643  80.000000
+5034 645   1.000000
+5035 0   0.000000
+5035 574 -40.000000
+5035 644  40.000000
+5035 646   1.000000
+5036 0   0.000000
+5036 579 -80.000000
+5036 649  80.000000
+5036 651   1.000000
+5037 0   0.000000
+5037 580 -40.000000
+5037 650  40.000000
+5037 652   1.000000
+5038 0   0.000000
+5038 583 -80.000000
+5038 653  80.000000
+5038 655   1.000000
+5039 0   0.000000
+5039 584 -40.000000
+5039 654  40.000000
+5039 656   1.000000
+5040 0   0.000000
+5040 587 -80.000000
+5040 657  80.000000
+5040 659   1.000000
+5041 0   0.000000
+5041 588 -40.000000
+5041 658  40.000000
+5041 660   1.000000
+5042 0   0.000000
+5042 593 -80.000000
+5042 663  80.000000
+5042 665   1.000000
+5043 0   0.000000
+5043 594 -40.000000
+5043 664  40.000000
+5043 666   1.000000
+5044 0   0.000000
+5044 597 -80.000000
+5044 667  80.000000
+5044 669   1.000000
+5045 0   0.000000
+5045 598 -40.000000
+5045 668  40.000000
+5045 670   1.000000
+5046 0   0.000000
+5046 601 -80.000000
+5046 671  80.000000
+5046 673   1.000000
+5047 0   0.000000
+5047 602 -40.000000
+5047 672  40.000000
+5047 674   1.000000
+5048 0   0.000000
+5048 607 -80.000000
+5048 677  80.000000
+5048 679   1.000000
+5049 0   0.000000
+5049 608 -40.000000
+5049 678  40.000000
+5049 680   1.000000
+5050 0   0.000000
+5050 611 -80.000000
+5050 681  80.000000
+5050 683   1.000000
+5051 0   0.000000
+5051 612 -40.000000
+5051 682  40.000000
+5051 684   1.000000
+5052 0   0.000000
+5052 615 -80.000000
+5052 685  80.000000
+5052 687   1.000000
+5053 0   0.000000
+5053 616 -40.000000
+5053 686  40.000000
+5053 688   1.000000
+5054 0   0.000000
+5054 621 -80.000000
+5054 691  80.000000
+5054 693   1.000000
+5055 0   0.000000
+5055 622 -40.000000
+5055 692  40.000000
+5055 694   1.000000
+5056 0   0.000000
+5056 625 -80.000000
+5056 695  80.000000
+5056 697   1.000000
+5057 0   0.000000
+5057 626 -40.000000
+5057 696  40.000000
+5057 698   1.000000
+5058 0   0.000000
+5058 629 -80.000000
+5058 699  80.000000
+5058 701   1.000000
+5059 0   0.000000
+5059 630 -40.000000
+5059 700  40.000000
+5059 702   1.000000
+5060 0   0.000000
+5060 635 -80.000000
+5060 705  80.000000
+5060 707   1.000000
+5061 0   0.000000
+5061 636 -40.000000
+5061 706  40.000000
+5061 708   1.000000
+5062 0   0.000000
+5062 639 -80.000000
+5062 709  80.000000
+5062 711   1.000000
+5063 0   0.000000
+5063 640 -40.000000
+5063 710  40.000000
+5063 712   1.000000
+5064 0   0.000000
+5064 643 -80.000000
+5064 713  80.000000
+5064 715   1.000000
+5065 0   0.000000
+5065 644 -40.000000
+5065 714  40.000000
+5065 716   1.000000
+5066 0   0.000000
+5066 649 -80.000000
+5066 719  80.000000
+5066 721   1.000000
+5067 0   0.000000
+5067 650 -40.000000
+5067 720  40.000000
+5067 722   1.000000
+5068 0   0.000000
+5068 653 -80.000000
+5068 723  80.000000
+5068 725   1.000000
+5069 0   0.000000
+5069 654 -40.000000
+5069 724  40.000000
+5069 726   1.000000
+5070 0   0.000000
+5070 657 -80.000000
+5070 727  80.000000
+5070 729   1.000000
+5071 0   0.000000
+5071 658 -40.000000
+5071 728  40.000000
+5071 730   1.000000
+5072 0   0.000000
+5072 663 -80.000000
+5072 733  80.000000
+5072 735   1.000000
+5073 0   0.000000
+5073 664 -40.000000
+5073 734  40.000000
+5073 736   1.000000
+5074 0   0.000000
+5074 667 -80.000000
+5074 737  80.000000
+5074 739   1.000000
+5075 0   0.000000
+5075 668 -40.000000
+5075 738  40.000000
+5075 740   1.000000
+5076 0   0.000000
+5076 671 -80.000000
+5076 741  80.000000
+5076 743   1.000000
+5077 0   0.000000
+5077 672 -40.000000
+5077 742  40.000000
+5077 744   1.000000
+5078 0   0.000000
+5078 677 -80.000000
+5078 747  80.000000
+5078 749   1.000000
+5079 0   0.000000
+5079 678 -40.000000
+5079 748  40.000000
+5079 750   1.000000
+5080 0   0.000000
+5080 681 -80.000000
+5080 751  80.000000
+5080 753   1.000000
+5081 0   0.000000
+5081 682 -40.000000
+5081 752  40.000000
+5081 754   1.000000
+5082 0   0.000000
+5082 685 -80.000000
+5082 755  80.000000
+5082 757   1.000000
+5083 0   0.000000
+5083 686 -40.000000
+5083 756  40.000000
+5083 758   1.000000
+5084 0   0.000000
+5084 691 -80.000000
+5084 761  80.000000
+5084 763   1.000000
+5085 0   0.000000
+5085 692 -40.000000
+5085 762  40.000000
+5085 764   1.000000
+5086 0   0.000000
+5086 695 -80.000000
+5086 765  80.000000
+5086 767   1.000000
+5087 0   0.000000
+5087 696 -40.000000
+5087 766  40.000000
+5087 768   1.000000
+5088 0   0.000000
+5088 699 -80.000000
+5088 769  80.000000
+5088 771   1.000000
+5089 0   0.000000
+5089 700 -40.000000
+5089 770  40.000000
+5089 772   1.000000
+5090 0   0.000000
+5090 705 -80.000000
+5090 775  80.000000
+5090 777   1.000000
+5091 0   0.000000
+5091 706 -40.000000
+5091 776  40.000000
+5091 778   1.000000
+5092 0   0.000000
+5092 709 -80.000000
+5092 779  80.000000
+5092 781   1.000000
+5093 0   0.000000
+5093 710 -40.000000
+5093 780  40.000000
+5093 782   1.000000
+5094 0   0.000000
+5094 713 -80.000000
+5094 783  80.000000
+5094 785   1.000000
+5095 0   0.000000
+5095 714 -40.000000
+5095 784  40.000000
+5095 786   1.000000
+5096 0   0.000000
+5096 719 -80.000000
+5096 789  80.000000
+5096 791   1.000000
+5097 0   0.000000
+5097 720 -40.000000
+5097 790  40.000000
+5097 792   1.000000
+5098 0   0.000000
+5098 723 -80.000000
+5098 793  80.000000
+5098 795   1.000000
+5099 0   0.000000
+5099 724 -40.000000
+5099 794  40.000000
+5099 796   1.000000
+5100 0   0.000000
+5100 727 -80.000000
+5100 797  80.000000
+5100 799   1.000000
+5101 0   0.000000
+5101 728 -40.000000
+5101 798  40.000000
+5101 800   1.000000
+5102 0   0.000000
+5102 733 -80.000000
+5102 803  80.000000
+5102 805   1.000000
+5103 0   0.000000
+5103 734 -40.000000
+5103 804  40.000000
+5103 806   1.000000
+5104 0   0.000000
+5104 737 -80.000000
+5104 807  80.000000
+5104 809   1.000000
+5105 0   0.000000
+5105 738 -40.000000
+5105 808  40.000000
+5105 810   1.000000
+5106 0   0.000000
+5106 741 -80.000000
+5106 811  80.000000
+5106 813   1.000000
+5107 0   0.000000
+5107 742 -40.000000
+5107 812  40.000000
+5107 814   1.000000
+5108 0   0.000000
+5108 747 -80.000000
+5108 817  80.000000
+5108 819   1.000000
+5109 0   0.000000
+5109 748 -40.000000
+5109 818  40.000000
+5109 820   1.000000
+5110 0   0.000000
+5110 751 -80.000000
+5110 821  80.000000
+5110 823   1.000000
+5111 0   0.000000
+5111 752 -40.000000
+5111 822  40.000000
+5111 824   1.000000
+5112 0   0.000000
+5112 755 -80.000000
+5112 825  80.000000
+5112 827   1.000000
+5113 0   0.000000
+5113 756 -40.000000
+5113 826  40.000000
+5113 828   1.000000
+5114 0   0.000000
+5114 761 -80.000000
+5114 831  80.000000
+5114 833   1.000000
+5115 0   0.000000
+5115 762 -40.000000
+5115 832  40.000000
+5115 834   1.000000
+5116 0   0.000000
+5116 765 -80.000000
+5116 835  80.000000
+5116 837   1.000000
+5117 0   0.000000
+5117 766 -40.000000
+5117 836  40.000000
+5117 838   1.000000
+5118 0   0.000000
+5118 769 -80.000000
+5118 839  80.000000
+5118 841   1.000000
+5119 0   0.000000
+5119 770 -40.000000
+5119 840  40.000000
+5119 842   1.000000
+5120 0   0.000000
+5120 775 -80.000000
+5120 845  80.000000
+5120 847   1.000000
+5121 0   0.000000
+5121 776 -40.000000
+5121 846  40.000000
+5121 848   1.000000
+5122 0   0.000000
+5122 779 -80.000000
+5122 849  80.000000
+5122 851   1.000000
+5123 0   0.000000
+5123 780 -40.000000
+5123 850  40.000000
+5123 852   1.000000
+5124 0   0.000000
+5124 783 -80.000000
+5124 853  80.000000
+5124 855   1.000000
+5125 0   0.000000
+5125 784 -40.000000
+5125 854  40.000000
+5125 856   1.000000
+5126 0   0.000000
+5126 789 -80.000000
+5126 859  80.000000
+5126 861   1.000000
+5127 0   0.000000
+5127 790 -40.000000
+5127 860  40.000000
+5127 862   1.000000
+5128 0   0.000000
+5128 793 -80.000000
+5128 863  80.000000
+5128 865   1.000000
+5129 0   0.000000
+5129 794 -40.000000
+5129 864  40.000000
+5129 866   1.000000
+5130 0   0.000000
+5130 797 -80.000000
+5130 867  80.000000
+5130 869   1.000000
+5131 0   0.000000
+5131 798 -40.000000
+5131 868  40.000000
+5131 870   1.000000
+5132 0   0.000000
+5132 803 -80.000000
+5132 873  80.000000
+5132 875   1.000000
+5133 0   0.000000
+5133 804 -40.000000
+5133 874  40.000000
+5133 876   1.000000
+5134 0   0.000000
+5134 807 -80.000000
+5134 877  80.000000
+5134 879   1.000000
+5135 0   0.000000
+5135 808 -40.000000
+5135 878  40.000000
+5135 880   1.000000
+5136 0   0.000000
+5136 811 -80.000000
+5136 881  80.000000
+5136 883   1.000000
+5137 0   0.000000
+5137 812 -40.000000
+5137 882  40.000000
+5137 884   1.000000
+5138 0   0.000000
+5138 817 -80.000000
+5138 887  80.000000
+5138 889   1.000000
+5139 0   0.000000
+5139 818 -40.000000
+5139 888  40.000000
+5139 890   1.000000
+5140 0   0.000000
+5140 821 -80.000000
+5140 891  80.000000
+5140 893   1.000000
+5141 0   0.000000
+5141 822 -40.000000
+5141 892  40.000000
+5141 894   1.000000
+5142 0   0.000000
+5142 825 -80.000000
+5142 895  80.000000
+5142 897   1.000000
+5143 0   0.000000
+5143 826 -40.000000
+5143 896  40.000000
+5143 898   1.000000
+5144 0   0.000000
+5144 831 -80.000000
+5144 901  80.000000
+5144 903   1.000000
+5145 0   0.000000
+5145 832 -40.000000
+5145 902  40.000000
+5145 904   1.000000
+5146 0   0.000000
+5146 835 -80.000000
+5146 905  80.000000
+5146 907   1.000000
+5147 0   0.000000
+5147 836 -40.000000
+5147 906  40.000000
+5147 908   1.000000
+5148 0   0.000000
+5148 839 -80.000000
+5148 909  80.000000
+5148 911   1.000000
+5149 0   0.000000
+5149 840 -40.000000
+5149 910  40.000000
+5149 912   1.000000
+5150 0   0.000000
+5150 845 -80.000000
+5150 915  80.000000
+5150 917   1.000000
+5151 0   0.000000
+5151 846 -40.000000
+5151 916  40.000000
+5151 918   1.000000
+5152 0   0.000000
+5152 849 -80.000000
+5152 919  80.000000
+5152 921   1.000000
+5153 0   0.000000
+5153 850 -40.000000
+5153 920  40.000000
+5153 922   1.000000
+5154 0   0.000000
+5154 853 -80.000000
+5154 923  80.000000
+5154 925   1.000000
+5155 0   0.000000
+5155 854 -40.000000
+5155 924  40.000000
+5155 926   1.000000
+5156 0   0.000000
+5156 859 -80.000000
+5156 929  80.000000
+5156 931   1.000000
+5157 0   0.000000
+5157 860 -40.000000
+5157 930  40.000000
+5157 932   1.000000
+5158 0   0.000000
+5158 863 -80.000000
+5158 933  80.000000
+5158 935   1.000000
+5159 0   0.000000
+5159 864 -40.000000
+5159 934  40.000000
+5159 936   1.000000
+5160 0   0.000000
+5160 867 -80.000000
+5160 937  80.000000
+5160 939   1.000000
+5161 0   0.000000
+5161 868 -40.000000
+5161 938  40.000000
+5161 940   1.000000
+5162 0   0.000000
+5162 873 -80.000000
+5162 943  80.000000
+5162 945   1.000000
+5163 0   0.000000
+5163 874 -40.000000
+5163 944  40.000000
+5163 946   1.000000
+5164 0   0.000000
+5164 877 -80.000000
+5164 947  80.000000
+5164 949   1.000000
+5165 0   0.000000
+5165 878 -40.000000
+5165 948  40.000000
+5165 950   1.000000
+5166 0   0.000000
+5166 881 -80.000000
+5166 951  80.000000
+5166 953   1.000000
+5167 0   0.000000
+5167 882 -40.000000
+5167 952  40.000000
+5167 954   1.000000
+5168 0   0.000000
+5168 887 -80.000000
+5168 957  80.000000
+5168 959   1.000000
+5169 0   0.000000
+5169 888 -40.000000
+5169 958  40.000000
+5169 960   1.000000
+5170 0   0.000000
+5170 891 -80.000000
+5170 961  80.000000
+5170 963   1.000000
+5171 0   0.000000
+5171 892 -40.000000
+5171 962  40.000000
+5171 964   1.000000
+5172 0   0.000000
+5172 895 -80.000000
+5172 965  80.000000
+5172 967   1.000000
+5173 0   0.000000
+5173 896 -40.000000
+5173 966  40.000000
+5173 968   1.000000
+5174 0   0.000000
+5174 901 -80.000000
+5174 971  80.000000
+5174 973   1.000000
+5175 0   0.000000
+5175 902 -40.000000
+5175 972  40.000000
+5175 974   1.000000
+5176 0   0.000000
+5176 905 -80.000000
+5176 975  80.000000
+5176 977   1.000000
+5177 0   0.000000
+5177 906 -40.000000
+5177 976  40.000000
+5177 978   1.000000
+5178 0   0.000000
+5178 909 -80.000000
+5178 979  80.000000
+5178 981   1.000000
+5179 0   0.000000
+5179 910 -40.000000
+5179 980  40.000000
+5179 982   1.000000
+5180 0   0.000000
+5180 915 -80.000000
+5180 985  80.000000
+5180 987   1.000000
+5181 0   0.000000
+5181 916 -40.000000
+5181 986  40.000000
+5181 988   1.000000
+5182 0   0.000000
+5182 919 -80.000000
+5182 989  80.000000
+5182 991   1.000000
+5183 0   0.000000
+5183 920 -40.000000
+5183 990  40.000000
+5183 992   1.000000
+5184 0   0.000000
+5184 923 -80.000000
+5184 993  80.000000
+5184 995   1.000000
+5185 0   0.000000
+5185 924 -40.000000
+5185 994  40.000000
+5185 996   1.000000
+5186 0   0.000000
+5186 929 -80.000000
+5186 999  80.000000
+5186 1001   1.000000
+5187 0   0.000000
+5187 930 -40.000000
+5187 1000  40.000000
+5187 1002   1.000000
+5188 0   0.000000
+5188 933 -80.000000
+5188 1003  80.000000
+5188 1005   1.000000
+5189 0   0.000000
+5189 934 -40.000000
+5189 1004  40.000000
+5189 1006   1.000000
+5190 0   0.000000
+5190 937 -80.000000
+5190 1007  80.000000
+5190 1009   1.000000
+5191 0   0.000000
+5191 938 -40.000000
+5191 1008  40.000000
+5191 1010   1.000000
+5192 0   0.000000
+5192 943 -80.000000
+5192 1013  80.000000
+5192 1015   1.000000
+5193 0   0.000000
+5193 944 -40.000000
+5193 1014  40.000000
+5193 1016   1.000000
+5194 0   0.000000
+5194 947 -80.000000
+5194 1017  80.000000
+5194 1019   1.000000
+5195 0   0.000000
+5195 948 -40.000000
+5195 1018  40.000000
+5195 1020   1.000000
+5196 0   0.000000
+5196 951 -80.000000
+5196 1021  80.000000
+5196 1023   1.000000
+5197 0   0.000000
+5197 952 -40.000000
+5197 1022  40.000000
+5197 1024   1.000000
+5198 0   0.000000
+5198 957 -80.000000
+5198 1027  80.000000
+5198 1029   1.000000
+5199 0   0.000000
+5199 958 -40.000000
+5199 1028  40.000000
+5199 1030   1.000000
+5200 0   0.000000
+5200 961 -80.000000
+5200 1031  80.000000
+5200 1033   1.000000
+5201 0   0.000000
+5201 962 -40.000000
+5201 1032  40.000000
+5201 1034   1.000000
+5202 0   0.000000
+5202 965 -80.000000
+5202 1035  80.000000
+5202 1037   1.000000
+5203 0   0.000000
+5203 966 -40.000000
+5203 1036  40.000000
+5203 1038   1.000000
+5204 0   0.000000
+5204 971 -80.000000
+5204 1041  80.000000
+5204 1043   1.000000
+5205 0   0.000000
+5205 972 -40.000000
+5205 1042  40.000000
+5205 1044   1.000000
+5206 0   0.000000
+5206 975 -80.000000
+5206 1045  80.000000
+5206 1047   1.000000
+5207 0   0.000000
+5207 976 -40.000000
+5207 1046  40.000000
+5207 1048   1.000000
+5208 0   0.000000
+5208 979 -80.000000
+5208 1049  80.000000
+5208 1051   1.000000
+5209 0   0.000000
+5209 980 -40.000000
+5209 1050  40.000000
+5209 1052   1.000000
+5210 0   0.000000
+5210 985 -80.000000
+5210 1055  80.000000
+5210 1057   1.000000
+5211 0   0.000000
+5211 986 -40.000000
+5211 1056  40.000000
+5211 1058   1.000000
+5212 0   0.000000
+5212 989 -80.000000
+5212 1059  80.000000
+5212 1061   1.000000
+5213 0   0.000000
+5213 990 -40.000000
+5213 1060  40.000000
+5213 1062   1.000000
+5214 0   0.000000
+5214 993 -80.000000
+5214 1063  80.000000
+5214 1065   1.000000
+5215 0   0.000000
+5215 994 -40.000000
+5215 1064  40.000000
+5215 1066   1.000000
+5216 0   0.000000
+5216 999 -80.000000
+5216 1069  80.000000
+5216 1071   1.000000
+5217 0   0.000000
+5217 1000 -40.000000
+5217 1070  40.000000
+5217 1072   1.000000
+5218 0   0.000000
+5218 1003 -80.000000
+5218 1073  80.000000
+5218 1075   1.000000
+5219 0   0.000000
+5219 1004 -40.000000
+5219 1074  40.000000
+5219 1076   1.000000
+5220 0   0.000000
+5220 1007 -80.000000
+5220 1077  80.000000
+5220 1079   1.000000
+5221 0   0.000000
+5221 1008 -40.000000
+5221 1078  40.000000
+5221 1080   1.000000
+5222 0   0.000000
+5222 1013 -80.000000
+5222 1083  80.000000
+5222 1085   1.000000
+5223 0   0.000000
+5223 1014 -40.000000
+5223 1084  40.000000
+5223 1086   1.000000
+5224 0   0.000000
+5224 1017 -80.000000
+5224 1087  80.000000
+5224 1089   1.000000
+5225 0   0.000000
+5225 1018 -40.000000
+5225 1088  40.000000
+5225 1090   1.000000
+5226 0   0.000000
+5226 1021 -80.000000
+5226 1091  80.000000
+5226 1093   1.000000
+5227 0   0.000000
+5227 1022 -40.000000
+5227 1092  40.000000
+5227 1094   1.000000
+5228 0   0.000000
+5228 1027 -80.000000
+5228 1097  80.000000
+5228 1099   1.000000
+5229 0   0.000000
+5229 1028 -40.000000
+5229 1098  40.000000
+5229 1100   1.000000
+5230 0   0.000000
+5230 1031 -80.000000
+5230 1101  80.000000
+5230 1103   1.000000
+5231 0   0.000000
+5231 1032 -40.000000
+5231 1102  40.000000
+5231 1104   1.000000
+5232 0   0.000000
+5232 1035 -80.000000
+5232 1105  80.000000
+5232 1107   1.000000
+5233 0   0.000000
+5233 1036 -40.000000
+5233 1106  40.000000
+5233 1108   1.000000
+5234 0   0.000000
+5234 1041 -80.000000
+5234 1111  80.000000
+5234 1113   1.000000
+5235 0   0.000000
+5235 1042 -40.000000
+5235 1112  40.000000
+5235 1114   1.000000
+5236 0   0.000000
+5236 1045 -80.000000
+5236 1115  80.000000
+5236 1117   1.000000
+5237 0   0.000000
+5237 1046 -40.000000
+5237 1116  40.000000
+5237 1118   1.000000
+5238 0   0.000000
+5238 1049 -80.000000
+5238 1119  80.000000
+5238 1121   1.000000
+5239 0   0.000000
+5239 1050 -40.000000
+5239 1120  40.000000
+5239 1122   1.000000
+5240 0   0.000000
+5240 1055 -80.000000
+5240 1125  80.000000
+5240 1127   1.000000
+5241 0   0.000000
+5241 1056 -40.000000
+5241 1126  40.000000
+5241 1128   1.000000
+5242 0   0.000000
+5242 1059 -80.000000
+5242 1129  80.000000
+5242 1131   1.000000
+5243 0   0.000000
+5243 1060 -40.000000
+5243 1130  40.000000
+5243 1132   1.000000
+5244 0   0.000000
+5244 1063 -80.000000
+5244 1133  80.000000
+5244 1135   1.000000
+5245 0   0.000000
+5245 1064 -40.000000
+5245 1134  40.000000
+5245 1136   1.000000
+5246 0   0.000000
+5246 1069 -80.000000
+5246 1139  80.000000
+5246 1141   1.000000
+5247 0   0.000000
+5247 1070 -40.000000
+5247 1140  40.000000
+5247 1142   1.000000
+5248 0   0.000000
+5248 1073 -80.000000
+5248 1143  80.000000
+5248 1145   1.000000
+5249 0   0.000000
+5249 1074 -40.000000
+5249 1144  40.000000
+5249 1146   1.000000
+5250 0   0.000000
+5250 1077 -80.000000
+5250 1147  80.000000
+5250 1149   1.000000
+5251 0   0.000000
+5251 1078 -40.000000
+5251 1148  40.000000
+5251 1150   1.000000
+5252 0   0.000000
+5252 1083 -80.000000
+5252 1153  80.000000
+5252 1155   1.000000
+5253 0   0.000000
+5253 1084 -40.000000
+5253 1154  40.000000
+5253 1156   1.000000
+5254 0   0.000000
+5254 1087 -80.000000
+5254 1157  80.000000
+5254 1159   1.000000
+5255 0   0.000000
+5255 1088 -40.000000
+5255 1158  40.000000
+5255 1160   1.000000
+5256 0   0.000000
+5256 1091 -80.000000
+5256 1161  80.000000
+5256 1163   1.000000
+5257 0   0.000000
+5257 1092 -40.000000
+5257 1162  40.000000
+5257 1164   1.000000
+5258 0   0.000000
+5258 1097 -80.000000
+5258 1167  80.000000
+5258 1169   1.000000
+5259 0   0.000000
+5259 1098 -40.000000
+5259 1168  40.000000
+5259 1170   1.000000
+5260 0   0.000000
+5260 1101 -80.000000
+5260 1171  80.000000
+5260 1173   1.000000
+5261 0   0.000000
+5261 1102 -40.000000
+5261 1172  40.000000
+5261 1174   1.000000
+5262 0   0.000000
+5262 1105 -80.000000
+5262 1175  80.000000
+5262 1177   1.000000
+5263 0   0.000000
+5263 1106 -40.000000
+5263 1176  40.000000
+5263 1178   1.000000
+5264 0   0.000000
+5264 1111 -80.000000
+5264 1181  80.000000
+5264 1183   1.000000
+5265 0   0.000000
+5265 1112 -40.000000
+5265 1182  40.000000
+5265 1184   1.000000
+5266 0   0.000000
+5266 1115 -80.000000
+5266 1185  80.000000
+5266 1187   1.000000
+5267 0   0.000000
+5267 1116 -40.000000
+5267 1186  40.000000
+5267 1188   1.000000
+5268 0   0.000000
+5268 1119 -80.000000
+5268 1189  80.000000
+5268 1191   1.000000
+5269 0   0.000000
+5269 1120 -40.000000
+5269 1190  40.000000
+5269 1192   1.000000
+5270 0   0.000000
+5270 1125 -80.000000
+5270 1195  80.000000
+5270 1197   1.000000
+5271 0   0.000000
+5271 1126 -40.000000
+5271 1196  40.000000
+5271 1198   1.000000
+5272 0   0.000000
+5272 1129 -80.000000
+5272 1199  80.000000
+5272 1201   1.000000
+5273 0   0.000000
+5273 1130 -40.000000
+5273 1200  40.000000
+5273 1202   1.000000
+5274 0   0.000000
+5274 1133 -80.000000
+5274 1203  80.000000
+5274 1205   1.000000
+5275 0   0.000000
+5275 1134 -40.000000
+5275 1204  40.000000
+5275 1206   1.000000
+5276 0   0.000000
+5276 1139 -80.000000
+5276 1209  80.000000
+5276 1211   1.000000
+5277 0   0.000000
+5277 1140 -40.000000
+5277 1210  40.000000
+5277 1212   1.000000
+5278 0   0.000000
+5278 1143 -80.000000
+5278 1213  80.000000
+5278 1215   1.000000
+5279 0   0.000000
+5279 1144 -40.000000
+5279 1214  40.000000
+5279 1216   1.000000
+5280 0   0.000000
+5280 1147 -80.000000
+5280 1217  80.000000
+5280 1219   1.000000
+5281 0   0.000000
+5281 1148 -40.000000
+5281 1218  40.000000
+5281 1220   1.000000
+5282 0   0.000000
+5282 1153 -80.000000
+5282 1223  80.000000
+5282 1225   1.000000
+5283 0   0.000000
+5283 1154 -40.000000
+5283 1224  40.000000
+5283 1226   1.000000
+5284 0   0.000000
+5284 1157 -80.000000
+5284 1227  80.000000
+5284 1229   1.000000
+5285 0   0.000000
+5285 1158 -40.000000
+5285 1228  40.000000
+5285 1230   1.000000
+5286 0   0.000000
+5286 1161 -80.000000
+5286 1231  80.000000
+5286 1233   1.000000
+5287 0   0.000000
+5287 1162 -40.000000
+5287 1232  40.000000
+5287 1234   1.000000
+5288 0   0.000000
+5288 1167 -80.000000
+5288 1237  80.000000
+5288 1239   1.000000
+5289 0   0.000000
+5289 1168 -40.000000
+5289 1238  40.000000
+5289 1240   1.000000
+5290 0   0.000000
+5290 1171 -80.000000
+5290 1241  80.000000
+5290 1243   1.000000
+5291 0   0.000000
+5291 1172 -40.000000
+5291 1242  40.000000
+5291 1244   1.000000
+5292 0   0.000000
+5292 1175 -80.000000
+5292 1245  80.000000
+5292 1247   1.000000
+5293 0   0.000000
+5293 1176 -40.000000
+5293 1246  40.000000
+5293 1248   1.000000
+5294 0   0.000000
+5294 1181 -80.000000
+5294 1251  80.000000
+5294 1253   1.000000
+5295 0   0.000000
+5295 1182 -40.000000
+5295 1252  40.000000
+5295 1254   1.000000
+5296 0   0.000000
+5296 1185 -80.000000
+5296 1255  80.000000
+5296 1257   1.000000
+5297 0   0.000000
+5297 1186 -40.000000
+5297 1256  40.000000
+5297 1258   1.000000
+5298 0   0.000000
+5298 1189 -80.000000
+5298 1259  80.000000
+5298 1261   1.000000
+5299 0   0.000000
+5299 1190 -40.000000
+5299 1260  40.000000
+5299 1262   1.000000
+5300 0   0.000000
+5300 1195 -80.000000
+5300 1265  80.000000
+5300 1267   1.000000
+5301 0   0.000000
+5301 1196 -40.000000
+5301 1266  40.000000
+5301 1268   1.000000
+5302 0   0.000000
+5302 1199 -80.000000
+5302 1269  80.000000
+5302 1271   1.000000
+5303 0   0.000000
+5303 1200 -40.000000
+5303 1270  40.000000
+5303 1272   1.000000
+5304 0   0.000000
+5304 1203 -80.000000
+5304 1273  80.000000
+5304 1275   1.000000
+5305 0   0.000000
+5305 1204 -40.000000
+5305 1274  40.000000
+5305 1276   1.000000
+5306 0   0.000000
+5306 1209 -80.000000
+5306 1279  80.000000
+5306 1281   1.000000
+5307 0   0.000000
+5307 1210 -40.000000
+5307 1280  40.000000
+5307 1282   1.000000
+5308 0   0.000000
+5308 1213 -80.000000
+5308 1283  80.000000
+5308 1285   1.000000
+5309 0   0.000000
+5309 1214 -40.000000
+5309 1284  40.000000
+5309 1286   1.000000
+5310 0   0.000000
+5310 1217 -80.000000
+5310 1287  80.000000
+5310 1289   1.000000
+5311 0   0.000000
+5311 1218 -40.000000
+5311 1288  40.000000
+5311 1290   1.000000
+5312 0   0.000000
+5312 1223 -80.000000
+5312 1293  80.000000
+5312 1295   1.000000
+5313 0   0.000000
+5313 1224 -40.000000
+5313 1294  40.000000
+5313 1296   1.000000
+5314 0   0.000000
+5314 1227 -80.000000
+5314 1297  80.000000
+5314 1299   1.000000
+5315 0   0.000000
+5315 1228 -40.000000
+5315 1298  40.000000
+5315 1300   1.000000
+5316 0   0.000000
+5316 1231 -80.000000
+5316 1301  80.000000
+5316 1303   1.000000
+5317 0   0.000000
+5317 1232 -40.000000
+5317 1302  40.000000
+5317 1304   1.000000
+5318 0   0.000000
+5318 1237 -80.000000
+5318 1307  80.000000
+5318 1309   1.000000
+5319 0   0.000000
+5319 1238 -40.000000
+5319 1308  40.000000
+5319 1310   1.000000
+5320 0   0.000000
+5320 1241 -80.000000
+5320 1311  80.000000
+5320 1313   1.000000
+5321 0   0.000000
+5321 1242 -40.000000
+5321 1312  40.000000
+5321 1314   1.000000
+5322 0   0.000000
+5322 1245 -80.000000
+5322 1315  80.000000
+5322 1317   1.000000
+5323 0   0.000000
+5323 1246 -40.000000
+5323 1316  40.000000
+5323 1318   1.000000
+5324 0   0.000000
+5324 1251 -80.000000
+5324 1321  80.000000
+5324 1323   1.000000
+5325 0   0.000000
+5325 1252 -40.000000
+5325 1322  40.000000
+5325 1324   1.000000
+5326 0   0.000000
+5326 1255 -80.000000
+5326 1325  80.000000
+5326 1327   1.000000
+5327 0   0.000000
+5327 1256 -40.000000
+5327 1326  40.000000
+5327 1328   1.000000
+5328 0   0.000000
+5328 1259 -80.000000
+5328 1329  80.000000
+5328 1331   1.000000
+5329 0   0.000000
+5329 1260 -40.000000
+5329 1330  40.000000
+5329 1332   1.000000
+5330 0   0.000000
+5330 3   0.000000
+5330 1265 -60.000000
+5330 1335  60.000000
+5330 1337   1.000000
+5331 0   0.000000
+5331 3   0.000000
+5331 1266 -30.000000
+5331 1336  30.000000
+5331 1338   1.000000
+5332 0   0.000000
+5332 3   0.000000
+5332 1269 -60.000000
+5332 1339  60.000000
+5332 1341   1.000000
+5333 0   0.000000
+5333 3   0.000000
+5333 1270 -30.000000
+5333 1340  30.000000
+5333 1342   1.000000
+5334 0   0.000000
+5334 3   0.000000
+5334 1273 -60.000000
+5334 1343  60.000000
+5334 1345   1.000000
+5335 0   0.000000
+5335 3   0.000000
+5335 1274 -30.000000
+5335 1344  30.000000
+5335 1346   1.000000
+5336 0   0.000000
+5336 3   0.000000
+5336 1279 -60.000000
+5336 1349  60.000000
+5336 1351   1.000000
+5337 0   0.000000
+5337 3   0.000000
+5337 1280 -30.000000
+5337 1350  30.000000
+5337 1352   1.000000
+5338 0   0.000000
+5338 3   0.000000
+5338 1283 -60.000000
+5338 1353  60.000000
+5338 1355   1.000000
+5339 0   0.000000
+5339 3   0.000000
+5339 1284 -30.000000
+5339 1354  30.000000
+5339 1356   1.000000
+5340 0   0.000000
+5340 3   0.000000
+5340 1287 -60.000000
+5340 1357  60.000000
+5340 1359   1.000000
+5341 0   0.000000
+5341 3   0.000000
+5341 1288 -30.000000
+5341 1358  30.000000
+5341 1360   1.000000
+5342 0   0.000000
+5342 3   0.000000
+5342 1293 -60.000000
+5342 1363  60.000000
+5342 1365   1.000000
+5343 0   0.000000
+5343 3   0.000000
+5343 1294 -30.000000
+5343 1364  30.000000
+5343 1366   1.000000
+5344 0   0.000000
+5344 3   0.000000
+5344 1297 -60.000000
+5344 1367  60.000000
+5344 1369   1.000000
+5345 0   0.000000
+5345 3   0.000000
+5345 1298 -30.000000
+5345 1368  30.000000
+5345 1370   1.000000
+5346 0   0.000000
+5346 3   0.000000
+5346 1301 -60.000000
+5346 1371  60.000000
+5346 1373   1.000000
+5347 0   0.000000
+5347 3   0.000000
+5347 1302 -30.000000
+5347 1372  30.000000
+5347 1374   1.000000
+5348 0   0.000000
+5348 3   0.000000
+5348 1307 -60.000000
+5348 1377  60.000000
+5348 1379   1.000000
+5349 0   0.000000
+5349 3   0.000000
+5349 1308 -30.000000
+5349 1378  30.000000
+5349 1380   1.000000
+5350 0   0.000000
+5350 3   0.000000
+5350 1311 -60.000000
+5350 1381  60.000000
+5350 1383   1.000000
+5351 0   0.000000
+5351 3   0.000000
+5351 1312 -30.000000
+5351 1382  30.000000
+5351 1384   1.000000
+5352 0   0.000000
+5352 3   0.000000
+5352 1315 -60.000000
+5352 1385  60.000000
+5352 1387   1.000000
+5353 0   0.000000
+5353 3   0.000000
+5353 1316 -30.000000
+5353 1386  30.000000
+5353 1388   1.000000
+5354 0   0.000000
+5354 3   0.000000
+5354 1321 -60.000000
+5354 1391  60.000000
+5354 1393   1.000000
+5355 0   0.000000
+5355 3   0.000000
+5355 1322 -30.000000
+5355 1392  30.000000
+5355 1394   1.000000
+5356 0   0.000000
+5356 3   0.000000
+5356 1325 -60.000000
+5356 1395  60.000000
+5356 1397   1.000000
+5357 0   0.000000
+5357 3   0.000000
+5357 1326 -30.000000
+5357 1396  30.000000
+5357 1398   1.000000
+5358 0   0.000000
+5358 3   0.000000
+5358 1329 -60.000000
+5358 1399  60.000000
+5358 1401   1.000000
+5359 0   0.000000
+5359 3   0.000000
+5359 1330 -30.000000
+5359 1400  30.000000
+5359 1402   1.000000
+5360 0   0.000000
+5360 3   0.000000
+5360 1335 -60.000000
+5360 1405  60.000000
+5360 1407   1.000000
+5361 0   0.000000
+5361 3   0.000000
+5361 1336 -30.000000
+5361 1406  30.000000
+5361 1408   1.000000
+5362 0   0.000000
+5362 3   0.000000
+5362 1339 -60.000000
+5362 1409  60.000000
+5362 1411   1.000000
+5363 0   0.000000
+5363 3   0.000000
+5363 1340 -30.000000
+5363 1410  30.000000
+5363 1412   1.000000
+5364 0   0.000000
+5364 3   0.000000
+5364 1343 -60.000000
+5364 1413  60.000000
+5364 1415   1.000000
+5365 0   0.000000
+5365 3   0.000000
+5365 1344 -30.000000
+5365 1414  30.000000
+5365 1416   1.000000
+5366 0   0.000000
+5366 3   0.000000
+5366 1349 -60.000000
+5366 1419  60.000000
+5366 1421   1.000000
+5367 0   0.000000
+5367 3   0.000000
+5367 1350 -30.000000
+5367 1420  30.000000
+5367 1422   1.000000
+5368 0   0.000000
+5368 3   0.000000
+5368 1353 -60.000000
+5368 1423  60.000000
+5368 1425   1.000000
+5369 0   0.000000
+5369 3   0.000000
+5369 1354 -30.000000
+5369 1424  30.000000
+5369 1426   1.000000
+5370 0   0.000000
+5370 3   0.000000
+5370 1357 -60.000000
+5370 1427  60.000000
+5370 1429   1.000000
+5371 0   0.000000
+5371 3   0.000000
+5371 1358 -30.000000
+5371 1428  30.000000
+5371 1430   1.000000
+5372 0   0.000000
+5372 3   0.000000
+5372 1363 -60.000000
+5372 1433  60.000000
+5372 1435   1.000000
+5373 0   0.000000
+5373 3   0.000000
+5373 1364 -30.000000
+5373 1434  30.000000
+5373 1436   1.000000
+5374 0   0.000000
+5374 3   0.000000
+5374 1367 -60.000000
+5374 1437  60.000000
+5374 1439   1.000000
+5375 0   0.000000
+5375 3   0.000000
+5375 1368 -30.000000
+5375 1438  30.000000
+5375 1440   1.000000
+5376 0   0.000000
+5376 3   0.000000
+5376 1371 -60.000000
+5376 1441  60.000000
+5376 1443   1.000000
+5377 0   0.000000
+5377 3   0.000000
+5377 1372 -30.000000
+5377 1442  30.000000
+5377 1444   1.000000
+5378 0   0.000000
+5378 3   0.000000
+5378 1377 -60.000000
+5378 1447  60.000000
+5378 1449   1.000000
+5379 0   0.000000
+5379 3   0.000000
+5379 1378 -30.000000
+5379 1448  30.000000
+5379 1450   1.000000
+5380 0   0.000000
+5380 3   0.000000
+5380 1381 -60.000000
+5380 1451  60.000000
+5380 1453   1.000000
+5381 0   0.000000
+5381 3   0.000000
+5381 1382 -30.000000
+5381 1452  30.000000
+5381 1454   1.000000
+5382 0   0.000000
+5382 3   0.000000
+5382 1385 -60.000000
+5382 1455  60.000000
+5382 1457   1.000000
+5383 0   0.000000
+5383 3   0.000000
+5383 1386 -30.000000
+5383 1456  30.000000
+5383 1458   1.000000
+5384 0   0.000000
+5384 3   0.000000
+5384 1391 -60.000000
+5384 1461  60.000000
+5384 1463   1.000000
+5385 0   0.000000
+5385 3   0.000000
+5385 1392 -30.000000
+5385 1462  30.000000
+5385 1464   1.000000
+5386 0   0.000000
+5386 3   0.000000
+5386 1395 -60.000000
+5386 1465  60.000000
+5386 1467   1.000000
+5387 0   0.000000
+5387 3   0.000000
+5387 1396 -30.000000
+5387 1466  30.000000
+5387 1468   1.000000
+5388 0   0.000000
+5388 3   0.000000
+5388 1399 -60.000000
+5388 1469  60.000000
+5388 1471   1.000000
+5389 0   0.000000
+5389 3   0.000000
+5389 1400 -30.000000
+5389 1470  30.000000
+5389 1472   1.000000
+5390 0   0.000000
+5390 3   0.000000
+5390 1405 -60.000000
+5390 1475  60.000000
+5390 1477   1.000000
+5391 0   0.000000
+5391 3   0.000000
+5391 1406 -30.000000
+5391 1476  30.000000
+5391 1478   1.000000
+5392 0   0.000000
+5392 3   0.000000
+5392 1409 -60.000000
+5392 1479  60.000000
+5392 1481   1.000000
+5393 0   0.000000
+5393 3   0.000000
+5393 1410 -30.000000
+5393 1480  30.000000
+5393 1482   1.000000
+5394 0   0.000000
+5394 3   0.000000
+5394 1413 -60.000000
+5394 1483  60.000000
+5394 1485   1.000000
+5395 0   0.000000
+5395 3   0.000000
+5395 1414 -30.000000
+5395 1484  30.000000
+5395 1486   1.000000
+5396 0   0.000000
+5396 3   0.000000
+5396 1419 -60.000000
+5396 1489  60.000000
+5396 1491   1.000000
+5397 0   0.000000
+5397 3   0.000000
+5397 1420 -30.000000
+5397 1490  30.000000
+5397 1492   1.000000
+5398 0   0.000000
+5398 3   0.000000
+5398 1423 -60.000000
+5398 1493  60.000000
+5398 1495   1.000000
+5399 0   0.000000
+5399 3   0.000000
+5399 1424 -30.000000
+5399 1494  30.000000
+5399 1496   1.000000
+5400 0   0.000000
+5400 3   0.000000
+5400 1427 -60.000000
+5400 1497  60.000000
+5400 1499   1.000000
+5401 0   0.000000
+5401 3   0.000000
+5401 1428 -30.000000
+5401 1498  30.000000
+5401 1500   1.000000
+5402 0   0.000000
+5402 3   0.000000
+5402 1433 -60.000000
+5402 1503  60.000000
+5402 1505   1.000000
+5403 0   0.000000
+5403 3   0.000000
+5403 1434 -30.000000
+5403 1504  30.000000
+5403 1506   1.000000
+5404 0   0.000000
+5404 3   0.000000
+5404 1437 -60.000000
+5404 1507  60.000000
+5404 1509   1.000000
+5405 0   0.000000
+5405 3   0.000000
+5405 1438 -30.000000
+5405 1508  30.000000
+5405 1510   1.000000
+5406 0   0.000000
+5406 3   0.000000
+5406 1441 -60.000000
+5406 1511  60.000000
+5406 1513   1.000000
+5407 0   0.000000
+5407 3   0.000000
+5407 1442 -30.000000
+5407 1512  30.000000
+5407 1514   1.000000
+5408 0   0.000000
+5408 3   0.000000
+5408 1447 -60.000000
+5408 1517  60.000000
+5408 1519   1.000000
+5409 0   0.000000
+5409 3   0.000000
+5409 1448 -30.000000
+5409 1518  30.000000
+5409 1520   1.000000
+5410 0   0.000000
+5410 3   0.000000
+5410 1451 -60.000000
+5410 1521  60.000000
+5410 1523   1.000000
+5411 0   0.000000
+5411 3   0.000000
+5411 1452 -30.000000
+5411 1522  30.000000
+5411 1524   1.000000
+5412 0   0.000000
+5412 3   0.000000
+5412 1455 -60.000000
+5412 1525  60.000000
+5412 1527   1.000000
+5413 0   0.000000
+5413 3   0.000000
+5413 1456 -30.000000
+5413 1526  30.000000
+5413 1528   1.000000
+5414 0   0.000000
+5414 3   0.000000
+5414 1461 -60.000000
+5414 1531  60.000000
+5414 1533   1.000000
+5415 0   0.000000
+5415 3   0.000000
+5415 1462 -30.000000
+5415 1532  30.000000
+5415 1534   1.000000
+5416 0   0.000000
+5416 3   0.000000
+5416 1465 -60.000000
+5416 1535  60.000000
+5416 1537   1.000000
+5417 0   0.000000
+5417 3   0.000000
+5417 1466 -30.000000
+5417 1536  30.000000
+5417 1538   1.000000
+5418 0   0.000000
+5418 3   0.000000
+5418 1469 -60.000000
+5418 1539  60.000000
+5418 1541   1.000000
+5419 0   0.000000
+5419 3   0.000000
+5419 1470 -30.000000
+5419 1540  30.000000
+5419 1542   1.000000
+5420 0   0.000000
+5420 3   0.000000
+5420 1475 -60.000000
+5420 1545  60.000000
+5420 1547   1.000000
+5421 0   0.000000
+5421 3   0.000000
+5421 1476 -30.000000
+5421 1546  30.000000
+5421 1548   1.000000
+5422 0   0.000000
+5422 3   0.000000
+5422 1479 -60.000000
+5422 1549  60.000000
+5422 1551   1.000000
+5423 0   0.000000
+5423 3   0.000000
+5423 1480 -30.000000
+5423 1550  30.000000
+5423 1552   1.000000
+5424 0   0.000000
+5424 3   0.000000
+5424 1483 -60.000000
+5424 1553  60.000000
+5424 1555   1.000000
+5425 0   0.000000
+5425 3   0.000000
+5425 1484 -30.000000
+5425 1554  30.000000
+5425 1556   1.000000
+5426 0   0.000000
+5426 3   0.000000
+5426 1489 -60.000000
+5426 1559  60.000000
+5426 1561   1.000000
+5427 0   0.000000
+5427 3   0.000000
+5427 1490 -30.000000
+5427 1560  30.000000
+5427 1562   1.000000
+5428 0   0.000000
+5428 3   0.000000
+5428 1493 -60.000000
+5428 1563  60.000000
+5428 1565   1.000000
+5429 0   0.000000
+5429 3   0.000000
+5429 1494 -30.000000
+5429 1564  30.000000
+5429 1566   1.000000
+5430 0   0.000000
+5430 3   0.000000
+5430 1497 -60.000000
+5430 1567  60.000000
+5430 1569   1.000000
+5431 0   0.000000
+5431 3   0.000000
+5431 1498 -30.000000
+5431 1568  30.000000
+5431 1570   1.000000
+5432 0   0.000000
+5432 3   0.000000
+5432 1503 -60.000000
+5432 1573  60.000000
+5432 1575   1.000000
+5433 0   0.000000
+5433 3   0.000000
+5433 1504 -30.000000
+5433 1574  30.000000
+5433 1576   1.000000
+5434 0   0.000000
+5434 3   0.000000
+5434 1507 -60.000000
+5434 1577  60.000000
+5434 1579   1.000000
+5435 0   0.000000
+5435 3   0.000000
+5435 1508 -30.000000
+5435 1578  30.000000
+5435 1580   1.000000
+5436 0   0.000000
+5436 3   0.000000
+5436 1511 -60.000000
+5436 1581  60.000000
+5436 1583   1.000000
+5437 0   0.000000
+5437 3   0.000000
+5437 1512 -30.000000
+5437 1582  30.000000
+5437 1584   1.000000
+5438 0   0.000000
+5438 3   0.000000
+5438 1517 -60.000000
+5438 1587  60.000000
+5438 1589   1.000000
+5439 0   0.000000
+5439 3   0.000000
+5439 1518 -30.000000
+5439 1588  30.000000
+5439 1590   1.000000
+5440 0   0.000000
+5440 3   0.000000
+5440 1521 -60.000000
+5440 1591  60.000000
+5440 1593   1.000000
+5441 0   0.000000
+5441 3   0.000000
+5441 1522 -30.000000
+5441 1592  30.000000
+5441 1594   1.000000
+5442 0   0.000000
+5442 3   0.000000
+5442 1525 -60.000000
+5442 1595  60.000000
+5442 1597   1.000000
+5443 0   0.000000
+5443 3   0.000000
+5443 1526 -30.000000
+5443 1596  30.000000
+5443 1598   1.000000
+5444 0   0.000000
+5444 3   0.000000
+5444 1531 -60.000000
+5444 1601  60.000000
+5444 1603   1.000000
+5445 0   0.000000
+5445 3   0.000000
+5445 1532 -30.000000
+5445 1602  30.000000
+5445 1604   1.000000
+5446 0   0.000000
+5446 3   0.000000
+5446 1535 -60.000000
+5446 1605  60.000000
+5446 1607   1.000000
+5447 0   0.000000
+5447 3   0.000000
+5447 1536 -30.000000
+5447 1606  30.000000
+5447 1608   1.000000
+5448 0   0.000000
+5448 3   0.000000
+5448 1539 -60.000000
+5448 1609  60.000000
+5448 1611   1.000000
+5449 0   0.000000
+5449 3   0.000000
+5449 1540 -30.000000
+5449 1610  30.000000
+5449 1612   1.000000
+5450 0   0.000000
+5450 3   0.000000
+5450 1545 -60.000000
+5450 1615  60.000000
+5450 1617   1.000000
+5451 0   0.000000
+5451 3   0.000000
+5451 1546 -30.000000
+5451 1616  30.000000
+5451 1618   1.000000
+5452 0   0.000000
+5452 3   0.000000
+5452 1549 -60.000000
+5452 1619  60.000000
+5452 1621   1.000000
+5453 0   0.000000
+5453 3   0.000000
+5453 1550 -30.000000
+5453 1620  30.000000
+5453 1622   1.000000
+5454 0   0.000000
+5454 3   0.000000
+5454 1553 -60.000000
+5454 1623  60.000000
+5454 1625   1.000000
+5455 0   0.000000
+5455 3   0.000000
+5455 1554 -30.000000
+5455 1624  30.000000
+5455 1626   1.000000
+5456 0   0.000000
+5456 3   0.000000
+5456 1559 -60.000000
+5456 1629  60.000000
+5456 1631   1.000000
+5457 0   0.000000
+5457 3   0.000000
+5457 1560 -30.000000
+5457 1630  30.000000
+5457 1632   1.000000
+5458 0   0.000000
+5458 3   0.000000
+5458 1563 -60.000000
+5458 1633  60.000000
+5458 1635   1.000000
+5459 0   0.000000
+5459 3   0.000000
+5459 1564 -30.000000
+5459 1634  30.000000
+5459 1636   1.000000
+5460 0   0.000000
+5460 3   0.000000
+5460 1567 -60.000000
+5460 1637  60.000000
+5460 1639   1.000000
+5461 0   0.000000
+5461 3   0.000000
+5461 1568 -30.000000
+5461 1638  30.000000
+5461 1640   1.000000
+5462 0   0.000000
+5462 3   0.000000
+5462 1573 -60.000000
+5462 1643  60.000000
+5462 1645   1.000000
+5463 0   0.000000
+5463 3   0.000000
+5463 1574 -30.000000
+5463 1644  30.000000
+5463 1646   1.000000
+5464 0   0.000000
+5464 3   0.000000
+5464 1577 -60.000000
+5464 1647  60.000000
+5464 1649   1.000000
+5465 0   0.000000
+5465 3   0.000000
+5465 1578 -30.000000
+5465 1648  30.000000
+5465 1650   1.000000
+5466 0   0.000000
+5466 3   0.000000
+5466 1581 -60.000000
+5466 1651  60.000000
+5466 1653   1.000000
+5467 0   0.000000
+5467 3   0.000000
+5467 1582 -30.000000
+5467 1652  30.000000
+5467 1654   1.000000
+5468 0   0.000000
+5468 3   0.000000
+5468 1587 -60.000000
+5468 1657  60.000000
+5468 1659   1.000000
+5469 0   0.000000
+5469 3   0.000000
+5469 1588 -30.000000
+5469 1658  30.000000
+5469 1660   1.000000
+5470 0   0.000000
+5470 3   0.000000
+5470 1591 -60.000000
+5470 1661  60.000000
+5470 1663   1.000000
+5471 0   0.000000
+5471 3   0.000000
+5471 1592 -30.000000
+5471 1662  30.000000
+5471 1664   1.000000
+5472 0   0.000000
+5472 3   0.000000
+5472 1595 -60.000000
+5472 1665  60.000000
+5472 1667   1.000000
+5473 0   0.000000
+5473 3   0.000000
+5473 1596 -30.000000
+5473 1666  30.000000
+5473 1668   1.000000
+5474 0   0.000000
+5474 3   0.000000
+5474 1601 -60.000000
+5474 1671  60.000000
+5474 1673   1.000000
+5475 0   0.000000
+5475 3   0.000000
+5475 1602 -30.000000
+5475 1672  30.000000
+5475 1674   1.000000
+5476 0   0.000000
+5476 3   0.000000
+5476 1605 -60.000000
+5476 1675  60.000000
+5476 1677   1.000000
+5477 0   0.000000
+5477 3   0.000000
+5477 1606 -30.000000
+5477 1676  30.000000
+5477 1678   1.000000
+5478 0   0.000000
+5478 3   0.000000
+5478 1609 -60.000000
+5478 1679  60.000000
+5478 1681   1.000000
+5479 0   0.000000
+5479 3   0.000000
+5479 1610 -30.000000
+5479 1680  30.000000
+5479 1682   1.000000
+5480 0   0.000000
+5480 3   0.000000
+5480 1615 -60.000000
+5480 1685  60.000000
+5480 1687   1.000000
+5481 0   0.000000
+5481 3   0.000000
+5481 1616 -30.000000
+5481 1686  30.000000
+5481 1688   1.000000
+5482 0   0.000000
+5482 3   0.000000
+5482 1619 -60.000000
+5482 1689  60.000000
+5482 1691   1.000000
+5483 0   0.000000
+5483 3   0.000000
+5483 1620 -30.000000
+5483 1690  30.000000
+5483 1692   1.000000
+5484 0   0.000000
+5484 3   0.000000
+5484 1623 -60.000000
+5484 1693  60.000000
+5484 1695   1.000000
+5485 0   0.000000
+5485 3   0.000000
+5485 1624 -30.000000
+5485 1694  30.000000
+5485 1696   1.000000
+5486 0   0.000000
+5486 3   0.000000
+5486 1629 -60.000000
+5486 1699  60.000000
+5486 1701   1.000000
+5487 0   0.000000
+5487 3   0.000000
+5487 1630 -30.000000
+5487 1700  30.000000
+5487 1702   1.000000
+5488 0   0.000000
+5488 3   0.000000
+5488 1633 -60.000000
+5488 1703  60.000000
+5488 1705   1.000000
+5489 0   0.000000
+5489 3   0.000000
+5489 1634 -30.000000
+5489 1704  30.000000
+5489 1706   1.000000
+5490 0   0.000000
+5490 3   0.000000
+5490 1637 -60.000000
+5490 1707  60.000000
+5490 1709   1.000000
+5491 0   0.000000
+5491 3   0.000000
+5491 1638 -30.000000
+5491 1708  30.000000
+5491 1710   1.000000
+5492 0   0.000000
+5492 3   0.000000
+5492 1643 -60.000000
+5492 1713  60.000000
+5492 1715   1.000000
+5493 0   0.000000
+5493 3   0.000000
+5493 1644 -30.000000
+5493 1714  30.000000
+5493 1716   1.000000
+5494 0   0.000000
+5494 3   0.000000
+5494 1647 -60.000000
+5494 1717  60.000000
+5494 1719   1.000000
+5495 0   0.000000
+5495 3   0.000000
+5495 1648 -30.000000
+5495 1718  30.000000
+5495 1720   1.000000
+5496 0   0.000000
+5496 3   0.000000
+5496 1651 -60.000000
+5496 1721  60.000000
+5496 1723   1.000000
+5497 0   0.000000
+5497 3   0.000000
+5497 1652 -30.000000
+5497 1722  30.000000
+5497 1724   1.000000
+5498 0   0.000000
+5498 3   0.000000
+5498 1657 -60.000000
+5498 1727  60.000000
+5498 1729   1.000000
+5499 0   0.000000
+5499 3   0.000000
+5499 1658 -30.000000
+5499 1728  30.000000
+5499 1730   1.000000
+5500 0   0.000000
+5500 3   0.000000
+5500 1661 -60.000000
+5500 1731  60.000000
+5500 1733   1.000000
+5501 0   0.000000
+5501 3   0.000000
+5501 1662 -30.000000
+5501 1732  30.000000
+5501 1734   1.000000
+5502 0   0.000000
+5502 3   0.000000
+5502 1665 -60.000000
+5502 1735  60.000000
+5502 1737   1.000000
+5503 0   0.000000
+5503 3   0.000000
+5503 1666 -30.000000
+5503 1736  30.000000
+5503 1738   1.000000
+5504 0   0.000000
+5504 3   0.000000
+5504 1671 -60.000000
+5504 1741  60.000000
+5504 1743   1.000000
+5505 0   0.000000
+5505 3   0.000000
+5505 1672 -30.000000
+5505 1742  30.000000
+5505 1744   1.000000
+5506 0   0.000000
+5506 3   0.000000
+5506 1675 -60.000000
+5506 1745  60.000000
+5506 1747   1.000000
+5507 0   0.000000
+5507 3   0.000000
+5507 1676 -30.000000
+5507 1746  30.000000
+5507 1748   1.000000
+5508 0   0.000000
+5508 3   0.000000
+5508 1679 -60.000000
+5508 1749  60.000000
+5508 1751   1.000000
+5509 0   0.000000
+5509 3   0.000000
+5509 1680 -30.000000
+5509 1750  30.000000
+5509 1752   1.000000
+5510 0   0.000000
+5510 3   0.000000
+5510 1685 -60.000000
+5510 1755  60.000000
+5510 1757   1.000000
+5511 0   0.000000
+5511 3   0.000000
+5511 1686 -30.000000
+5511 1756  30.000000
+5511 1758   1.000000
+5512 0   0.000000
+5512 3   0.000000
+5512 1689 -60.000000
+5512 1759  60.000000
+5512 1761   1.000000
+5513 0   0.000000
+5513 3   0.000000
+5513 1690 -30.000000
+5513 1760  30.000000
+5513 1762   1.000000
+5514 0   0.000000
+5514 3   0.000000
+5514 1693 -60.000000
+5514 1763  60.000000
+5514 1765   1.000000
+5515 0   0.000000
+5515 3   0.000000
+5515 1694 -30.000000
+5515 1764  30.000000
+5515 1766   1.000000
+5516 0   0.000000
+5516 3   0.000000
+5516 1699 -60.000000
+5516 1769  60.000000
+5516 1771   1.000000
+5517 0   0.000000
+5517 3   0.000000
+5517 1700 -30.000000
+5517 1770  30.000000
+5517 1772   1.000000
+5518 0   0.000000
+5518 3   0.000000
+5518 1703 -60.000000
+5518 1773  60.000000
+5518 1775   1.000000
+5519 0   0.000000
+5519 3   0.000000
+5519 1704 -30.000000
+5519 1774  30.000000
+5519 1776   1.000000
+5520 0   0.000000
+5520 3   0.000000
+5520 1707 -60.000000
+5520 1777  60.000000
+5520 1779   1.000000
+5521 0   0.000000
+5521 3   0.000000
+5521 1708 -30.000000
+5521 1778  30.000000
+5521 1780   1.000000
+5522 0   0.000000
+5522 3   0.000000
+5522 1713 -60.000000
+5522 1783  60.000000
+5522 1785   1.000000
+5523 0   0.000000
+5523 3   0.000000
+5523 1714 -30.000000
+5523 1784  30.000000
+5523 1786   1.000000
+5524 0   0.000000
+5524 3   0.000000
+5524 1717 -60.000000
+5524 1787  60.000000
+5524 1789   1.000000
+5525 0   0.000000
+5525 3   0.000000
+5525 1718 -30.000000
+5525 1788  30.000000
+5525 1790   1.000000
+5526 0   0.000000
+5526 3   0.000000
+5526 1721 -60.000000
+5526 1791  60.000000
+5526 1793   1.000000
+5527 0   0.000000
+5527 3   0.000000
+5527 1722 -30.000000
+5527 1792  30.000000
+5527 1794   1.000000
+5528 0   0.000000
+5528 3   0.000000
+5528 1727 -60.000000
+5528 1797  60.000000
+5528 1799   1.000000
+5529 0   0.000000
+5529 3   0.000000
+5529 1728 -30.000000
+5529 1798  30.000000
+5529 1800   1.000000
+5530 0   0.000000
+5530 3   0.000000
+5530 1731 -60.000000
+5530 1801  60.000000
+5530 1803   1.000000
+5531 0   0.000000
+5531 3   0.000000
+5531 1732 -30.000000
+5531 1802  30.000000
+5531 1804   1.000000
+5532 0   0.000000
+5532 3   0.000000
+5532 1735 -60.000000
+5532 1805  60.000000
+5532 1807   1.000000
+5533 0   0.000000
+5533 3   0.000000
+5533 1736 -30.000000
+5533 1806  30.000000
+5533 1808   1.000000
+5534 0   0.000000
+5534 3   0.000000
+5534 1741 -60.000000
+5534 1811  60.000000
+5534 1813   1.000000
+5535 0   0.000000
+5535 3   0.000000
+5535 1742 -30.000000
+5535 1812  30.000000
+5535 1814   1.000000
+5536 0   0.000000
+5536 3   0.000000
+5536 1745 -60.000000
+5536 1815  60.000000
+5536 1817   1.000000
+5537 0   0.000000
+5537 3   0.000000
+5537 1746 -30.000000
+5537 1816  30.000000
+5537 1818   1.000000
+5538 0   0.000000
+5538 3   0.000000
+5538 1749 -60.000000
+5538 1819  60.000000
+5538 1821   1.000000
+5539 0   0.000000
+5539 3   0.000000
+5539 1750 -30.000000
+5539 1820  30.000000
+5539 1822   1.000000
+5540 0   0.000000
+5540 3   0.000000
+5540 1755 -60.000000
+5540 1825  60.000000
+5540 1827   1.000000
+5541 0   0.000000
+5541 3   0.000000
+5541 1756 -30.000000
+5541 1826  30.000000
+5541 1828   1.000000
+5542 0   0.000000
+5542 3   0.000000
+5542 1759 -60.000000
+5542 1829  60.000000
+5542 1831   1.000000
+5543 0   0.000000
+5543 3   0.000000
+5543 1760 -30.000000
+5543 1830  30.000000
+5543 1832   1.000000
+5544 0   0.000000
+5544 3   0.000000
+5544 1763 -60.000000
+5544 1833  60.000000
+5544 1835   1.000000
+5545 0   0.000000
+5545 3   0.000000
+5545 1764 -30.000000
+5545 1834  30.000000
+5545 1836   1.000000
+5546 0   0.000000
+5546 3   0.000000
+5546 1769 -60.000000
+5546 1839  60.000000
+5546 1841   1.000000
+5547 0   0.000000
+5547 3   0.000000
+5547 1770 -30.000000
+5547 1840  30.000000
+5547 1842   1.000000
+5548 0   0.000000
+5548 3   0.000000
+5548 1773 -60.000000
+5548 1843  60.000000
+5548 1845   1.000000
+5549 0   0.000000
+5549 3   0.000000
+5549 1774 -30.000000
+5549 1844  30.000000
+5549 1846   1.000000
+5550 0   0.000000
+5550 3   0.000000
+5550 1777 -60.000000
+5550 1847  60.000000
+5550 1849   1.000000
+5551 0   0.000000
+5551 3   0.000000
+5551 1778 -30.000000
+5551 1848  30.000000
+5551 1850   1.000000
+5552 0   0.000000
+5552 3   0.000000
+5552 1783 -60.000000
+5552 1853  60.000000
+5552 1855   1.000000
+5553 0   0.000000
+5553 3   0.000000
+5553 1784 -30.000000
+5553 1854  30.000000
+5553 1856   1.000000
+5554 0   0.000000
+5554 3   0.000000
+5554 1787 -60.000000
+5554 1857  60.000000
+5554 1859   1.000000
+5555 0   0.000000
+5555 3   0.000000
+5555 1788 -30.000000
+5555 1858  30.000000
+5555 1860   1.000000
+5556 0   0.000000
+5556 3   0.000000
+5556 1791 -60.000000
+5556 1861  60.000000
+5556 1863   1.000000
+5557 0   0.000000
+5557 3   0.000000
+5557 1792 -30.000000
+5557 1862  30.000000
+5557 1864   1.000000
+5558 0   0.000000
+5558 3   0.000000
+5558 1797 -60.000000
+5558 1867  60.000000
+5558 1869   1.000000
+5559 0   0.000000
+5559 3   0.000000
+5559 1798 -30.000000
+5559 1868  30.000000
+5559 1870   1.000000
+5560 0   0.000000
+5560 3   0.000000
+5560 1801 -60.000000
+5560 1871  60.000000
+5560 1873   1.000000
+5561 0   0.000000
+5561 3   0.000000
+5561 1802 -30.000000
+5561 1872  30.000000
+5561 1874   1.000000
+5562 0   0.000000
+5562 3   0.000000
+5562 1805 -60.000000
+5562 1875  60.000000
+5562 1877   1.000000
+5563 0   0.000000
+5563 3   0.000000
+5563 1806 -30.000000
+5563 1876  30.000000
+5563 1878   1.000000
+5564 0   0.000000
+5564 3   0.000000
+5564 1811 -60.000000
+5564 1881  60.000000
+5564 1883   1.000000
+5565 0   0.000000
+5565 3   0.000000
+5565 1812 -30.000000
+5565 1882  30.000000
+5565 1884   1.000000
+5566 0   0.000000
+5566 3   0.000000
+5566 1815 -60.000000
+5566 1885  60.000000
+5566 1887   1.000000
+5567 0   0.000000
+5567 3   0.000000
+5567 1816 -30.000000
+5567 1886  30.000000
+5567 1888   1.000000
+5568 0   0.000000
+5568 3   0.000000
+5568 1819 -60.000000
+5568 1889  60.000000
+5568 1891   1.000000
+5569 0   0.000000
+5569 3   0.000000
+5569 1820 -30.000000
+5569 1890  30.000000
+5569 1892   1.000000
+5570 0   0.000000
+5570 3   0.000000
+5570 1825 -60.000000
+5570 1895  60.000000
+5570 1897   1.000000
+5571 0   0.000000
+5571 3   0.000000
+5571 1826 -30.000000
+5571 1896  30.000000
+5571 1898   1.000000
+5572 0   0.000000
+5572 3   0.000000
+5572 1829 -60.000000
+5572 1899  60.000000
+5572 1901   1.000000
+5573 0   0.000000
+5573 3   0.000000
+5573 1830 -30.000000
+5573 1900  30.000000
+5573 1902   1.000000
+5574 0   0.000000
+5574 3   0.000000
+5574 1833 -60.000000
+5574 1903  60.000000
+5574 1905   1.000000
+5575 0   0.000000
+5575 3   0.000000
+5575 1834 -30.000000
+5575 1904  30.000000
+5575 1906   1.000000
+5576 0   0.000000
+5576 3   0.000000
+5576 1839 -60.000000
+5576 1909  60.000000
+5576 1911   1.000000
+5577 0   0.000000
+5577 3   0.000000
+5577 1840 -30.000000
+5577 1910  30.000000
+5577 1912   1.000000
+5578 0   0.000000
+5578 3   0.000000
+5578 1843 -60.000000
+5578 1913  60.000000
+5578 1915   1.000000
+5579 0   0.000000
+5579 3   0.000000
+5579 1844 -30.000000
+5579 1914  30.000000
+5579 1916   1.000000
+5580 0   0.000000
+5580 3   0.000000
+5580 1847 -60.000000
+5580 1917  60.000000
+5580 1919   1.000000
+5581 0   0.000000
+5581 3   0.000000
+5581 1848 -30.000000
+5581 1918  30.000000
+5581 1920   1.000000
+5582 0   0.000000
+5582 3   0.000000
+5582 1853 -60.000000
+5582 1923  60.000000
+5582 1925   1.000000
+5583 0   0.000000
+5583 3   0.000000
+5583 1854 -30.000000
+5583 1924  30.000000
+5583 1926   1.000000
+5584 0   0.000000
+5584 3   0.000000
+5584 1857 -60.000000
+5584 1927  60.000000
+5584 1929   1.000000
+5585 0   0.000000
+5585 3   0.000000
+5585 1858 -30.000000
+5585 1928  30.000000
+5585 1930   1.000000
+5586 0   0.000000
+5586 3   0.000000
+5586 1861 -60.000000
+5586 1931  60.000000
+5586 1933   1.000000
+5587 0   0.000000
+5587 3   0.000000
+5587 1862 -30.000000
+5587 1932  30.000000
+5587 1934   1.000000
+5588 0   0.000000
+5588 3   0.000000
+5588 1867 -60.000000
+5588 1937  60.000000
+5588 1939   1.000000
+5589 0   0.000000
+5589 3   0.000000
+5589 1868 -30.000000
+5589 1938  30.000000
+5589 1940   1.000000
+5590 0   0.000000
+5590 3   0.000000
+5590 1871 -60.000000
+5590 1941  60.000000
+5590 1943   1.000000
+5591 0   0.000000
+5591 3   0.000000
+5591 1872 -30.000000
+5591 1942  30.000000
+5591 1944   1.000000
+5592 0   0.000000
+5592 3   0.000000
+5592 1875 -60.000000
+5592 1945  60.000000
+5592 1947   1.000000
+5593 0   0.000000
+5593 3   0.000000
+5593 1876 -30.000000
+5593 1946  30.000000
+5593 1948   1.000000
+5594 0   0.000000
+5594 3   0.000000
+5594 1881 -60.000000
+5594 1951  60.000000
+5594 1953   1.000000
+5595 0   0.000000
+5595 3   0.000000
+5595 1882 -30.000000
+5595 1952  30.000000
+5595 1954   1.000000
+5596 0   0.000000
+5596 3   0.000000
+5596 1885 -60.000000
+5596 1955  60.000000
+5596 1957   1.000000
+5597 0   0.000000
+5597 3   0.000000
+5597 1886 -30.000000
+5597 1956  30.000000
+5597 1958   1.000000
+5598 0   0.000000
+5598 3   0.000000
+5598 1889 -60.000000
+5598 1959  60.000000
+5598 1961   1.000000
+5599 0   0.000000
+5599 3   0.000000
+5599 1890 -30.000000
+5599 1960  30.000000
+5599 1962   1.000000
+5600 0   0.000000
+5600 3   0.000000
+5600 1895 -60.000000
+5600 1965  60.000000
+5600 1967   1.000000
+5601 0   0.000000
+5601 3   0.000000
+5601 1896 -30.000000
+5601 1966  30.000000
+5601 1968   1.000000
+5602 0   0.000000
+5602 3   0.000000
+5602 1899 -60.000000
+5602 1969  60.000000
+5602 1971   1.000000
+5603 0   0.000000
+5603 3   0.000000
+5603 1900 -30.000000
+5603 1970  30.000000
+5603 1972   1.000000
+5604 0   0.000000
+5604 3   0.000000
+5604 1903 -60.000000
+5604 1973  60.000000
+5604 1975   1.000000
+5605 0   0.000000
+5605 3   0.000000
+5605 1904 -30.000000
+5605 1974  30.000000
+5605 1976   1.000000
+5606 0   0.000000
+5606 3   0.000000
+5606 1909 -60.000000
+5606 1979  60.000000
+5606 1981   1.000000
+5607 0   0.000000
+5607 3   0.000000
+5607 1910 -30.000000
+5607 1980  30.000000
+5607 1982   1.000000
+5608 0   0.000000
+5608 3   0.000000
+5608 1913 -60.000000
+5608 1983  60.000000
+5608 1985   1.000000
+5609 0   0.000000
+5609 3   0.000000
+5609 1914 -30.000000
+5609 1984  30.000000
+5609 1986   1.000000
+5610 0   0.000000
+5610 3   0.000000
+5610 1917 -60.000000
+5610 1987  60.000000
+5610 1989   1.000000
+5611 0   0.000000
+5611 3   0.000000
+5611 1918 -30.000000
+5611 1988  30.000000
+5611 1990   1.000000
+5612 0   0.000000
+5612 3   0.000000
+5612 1923 -60.000000
+5612 1993  60.000000
+5612 1995   1.000000
+5613 0   0.000000
+5613 3   0.000000
+5613 1924 -30.000000
+5613 1994  30.000000
+5613 1996   1.000000
+5614 0   0.000000
+5614 3   0.000000
+5614 1927 -60.000000
+5614 1997  60.000000
+5614 1999   1.000000
+5615 0   0.000000
+5615 3   0.000000
+5615 1928 -30.000000
+5615 1998  30.000000
+5615 2000   1.000000
+5616 0   0.000000
+5616 3   0.000000
+5616 1931 -60.000000
+5616 2001  60.000000
+5616 2003   1.000000
+5617 0   0.000000
+5617 3   0.000000
+5617 1932 -30.000000
+5617 2002  30.000000
+5617 2004   1.000000
+5618 0   0.000000
+5618 3   0.000000
+5618 1937 -60.000000
+5618 2007  60.000000
+5618 2009   1.000000
+5619 0   0.000000
+5619 3   0.000000
+5619 1938 -30.000000
+5619 2008  30.000000
+5619 2010   1.000000
+5620 0   0.000000
+5620 3   0.000000
+5620 1941 -60.000000
+5620 2011  60.000000
+5620 2013   1.000000
+5621 0   0.000000
+5621 3   0.000000
+5621 1942 -30.000000
+5621 2012  30.000000
+5621 2014   1.000000
+5622 0   0.000000
+5622 3   0.000000
+5622 1945 -60.000000
+5622 2015  60.000000
+5622 2017   1.000000
+5623 0   0.000000
+5623 3   0.000000
+5623 1946 -30.000000
+5623 2016  30.000000
+5623 2018   1.000000
+5624 0   0.000000
+5624 3   0.000000
+5624 1951 -60.000000
+5624 2021  60.000000
+5624 2023   1.000000
+5625 0   0.000000
+5625 3   0.000000
+5625 1952 -30.000000
+5625 2022  30.000000
+5625 2024   1.000000
+5626 0   0.000000
+5626 3   0.000000
+5626 1955 -60.000000
+5626 2025  60.000000
+5626 2027   1.000000
+5627 0   0.000000
+5627 3   0.000000
+5627 1956 -30.000000
+5627 2026  30.000000
+5627 2028   1.000000
+5628 0   0.000000
+5628 3   0.000000
+5628 1959 -60.000000
+5628 2029  60.000000
+5628 2031   1.000000
+5629 0   0.000000
+5629 3   0.000000
+5629 1960 -30.000000
+5629 2030  30.000000
+5629 2032   1.000000
+5630 0   0.000000
+5630 3   0.000000
+5630 1965 -60.000000
+5630 2035  60.000000
+5630 2037   1.000000
+5631 0   0.000000
+5631 3   0.000000
+5631 1966 -30.000000
+5631 2036  30.000000
+5631 2038   1.000000
+5632 0   0.000000
+5632 3   0.000000
+5632 1969 -60.000000
+5632 2039  60.000000
+5632 2041   1.000000
+5633 0   0.000000
+5633 3   0.000000
+5633 1970 -30.000000
+5633 2040  30.000000
+5633 2042   1.000000
+5634 0   0.000000
+5634 3   0.000000
+5634 1973 -60.000000
+5634 2043  60.000000
+5634 2045   1.000000
+5635 0   0.000000
+5635 3   0.000000
+5635 1974 -30.000000
+5635 2044  30.000000
+5635 2046   1.000000
+5636 0   0.000000
+5636 3   0.000000
+5636 1979 -60.000000
+5636 2049  60.000000
+5636 2051   1.000000
+5637 0   0.000000
+5637 3   0.000000
+5637 1980 -30.000000
+5637 2050  30.000000
+5637 2052   1.000000
+5638 0   0.000000
+5638 3   0.000000
+5638 1983 -60.000000
+5638 2053  60.000000
+5638 2055   1.000000
+5639 0   0.000000
+5639 3   0.000000
+5639 1984 -30.000000
+5639 2054  30.000000
+5639 2056   1.000000
+5640 0   0.000000
+5640 3   0.000000
+5640 1987 -60.000000
+5640 2057  60.000000
+5640 2059   1.000000
+5641 0   0.000000
+5641 3   0.000000
+5641 1988 -30.000000
+5641 2058  30.000000
+5641 2060   1.000000
+5642 0   0.000000
+5642 3   0.000000
+5642 1993 -60.000000
+5642 2063  60.000000
+5642 2065   1.000000
+5643 0   0.000000
+5643 3   0.000000
+5643 1994 -30.000000
+5643 2064  30.000000
+5643 2066   1.000000
+5644 0   0.000000
+5644 3   0.000000
+5644 1997 -60.000000
+5644 2067  60.000000
+5644 2069   1.000000
+5645 0   0.000000
+5645 3   0.000000
+5645 1998 -30.000000
+5645 2068  30.000000
+5645 2070   1.000000
+5646 0   0.000000
+5646 3   0.000000
+5646 2001 -60.000000
+5646 2071  60.000000
+5646 2073   1.000000
+5647 0   0.000000
+5647 3   0.000000
+5647 2002 -30.000000
+5647 2072  30.000000
+5647 2074   1.000000
+5648 0   0.000000
+5648 3   0.000000
+5648 2007 -60.000000
+5648 2077  60.000000
+5648 2079   1.000000
+5649 0   0.000000
+5649 3   0.000000
+5649 2008 -30.000000
+5649 2078  30.000000
+5649 2080   1.000000
+5650 0   0.000000
+5650 3   0.000000
+5650 2011 -60.000000
+5650 2081  60.000000
+5650 2083   1.000000
+5651 0   0.000000
+5651 3   0.000000
+5651 2012 -30.000000
+5651 2082  30.000000
+5651 2084   1.000000
+5652 0   0.000000
+5652 3   0.000000
+5652 2015 -60.000000
+5652 2085  60.000000
+5652 2087   1.000000
+5653 0   0.000000
+5653 3   0.000000
+5653 2016 -30.000000
+5653 2086  30.000000
+5653 2088   1.000000
+5654 0   0.000000
+5654 3   0.000000
+5654 2021 -60.000000
+5654 2091  60.000000
+5654 2093   1.000000
+5655 0   0.000000
+5655 3   0.000000
+5655 2022 -30.000000
+5655 2092  30.000000
+5655 2094   1.000000
+5656 0   0.000000
+5656 3   0.000000
+5656 2025 -60.000000
+5656 2095  60.000000
+5656 2097   1.000000
+5657 0   0.000000
+5657 3   0.000000
+5657 2026 -30.000000
+5657 2096  30.000000
+5657 2098   1.000000
+5658 0   0.000000
+5658 3   0.000000
+5658 2029 -60.000000
+5658 2099  60.000000
+5658 2101   1.000000
+5659 0   0.000000
+5659 3   0.000000
+5659 2030 -30.000000
+5659 2100  30.000000
+5659 2102   1.000000
+5660 0   0.000000
+5660 3   0.000000
+5660 2035 -60.000000
+5660 2105  60.000000
+5660 2107   1.000000
+5661 0   0.000000
+5661 3   0.000000
+5661 2036 -30.000000
+5661 2106  30.000000
+5661 2108   1.000000
+5662 0   0.000000
+5662 3   0.000000
+5662 2039 -60.000000
+5662 2109  60.000000
+5662 2111   1.000000
+5663 0   0.000000
+5663 3   0.000000
+5663 2040 -30.000000
+5663 2110  30.000000
+5663 2112   1.000000
+5664 0   0.000000
+5664 3   0.000000
+5664 2043 -60.000000
+5664 2113  60.000000
+5664 2115   1.000000
+5665 0   0.000000
+5665 3   0.000000
+5665 2044 -30.000000
+5665 2114  30.000000
+5665 2116   1.000000
+5666 0   0.000000
+5666 3   0.000000
+5666 2049 -60.000000
+5666 2119  60.000000
+5666 2121   1.000000
+5667 0   0.000000
+5667 3   0.000000
+5667 2050 -30.000000
+5667 2120  30.000000
+5667 2122   1.000000
+5668 0   0.000000
+5668 3   0.000000
+5668 2053 -60.000000
+5668 2123  60.000000
+5668 2125   1.000000
+5669 0   0.000000
+5669 3   0.000000
+5669 2054 -30.000000
+5669 2124  30.000000
+5669 2126   1.000000
+5670 0   0.000000
+5670 3   0.000000
+5670 2057 -60.000000
+5670 2127  60.000000
+5670 2129   1.000000
+5671 0   0.000000
+5671 3   0.000000
+5671 2058 -30.000000
+5671 2128  30.000000
+5671 2130   1.000000
+5672 0   0.000000
+5672 3   0.000000
+5672 2063 -60.000000
+5672 2133  60.000000
+5672 2135   1.000000
+5673 0   0.000000
+5673 3   0.000000
+5673 2064 -30.000000
+5673 2134  30.000000
+5673 2136   1.000000
+5674 0   0.000000
+5674 3   0.000000
+5674 2067 -60.000000
+5674 2137  60.000000
+5674 2139   1.000000
+5675 0   0.000000
+5675 3   0.000000
+5675 2068 -30.000000
+5675 2138  30.000000
+5675 2140   1.000000
+5676 0   0.000000
+5676 3   0.000000
+5676 2071 -60.000000
+5676 2141  60.000000
+5676 2143   1.000000
+5677 0   0.000000
+5677 3   0.000000
+5677 2072 -30.000000
+5677 2142  30.000000
+5677 2144   1.000000
+5678 0   0.000000
+5678 3   0.000000
+5678 2077 -60.000000
+5678 2147  60.000000
+5678 2149   1.000000
+5679 0   0.000000
+5679 3   0.000000
+5679 2078 -30.000000
+5679 2148  30.000000
+5679 2150   1.000000
+5680 0   0.000000
+5680 3   0.000000
+5680 2081 -60.000000
+5680 2151  60.000000
+5680 2153   1.000000
+5681 0   0.000000
+5681 3   0.000000
+5681 2082 -30.000000
+5681 2152  30.000000
+5681 2154   1.000000
+5682 0   0.000000
+5682 3   0.000000
+5682 2085 -60.000000
+5682 2155  60.000000
+5682 2157   1.000000
+5683 0   0.000000
+5683 3   0.000000
+5683 2086 -30.000000
+5683 2156  30.000000
+5683 2158   1.000000
+5684 0   0.000000
+5684 3   0.000000
+5684 2091 -60.000000
+5684 2161  60.000000
+5684 2163   1.000000
+5685 0   0.000000
+5685 3   0.000000
+5685 2092 -30.000000
+5685 2162  30.000000
+5685 2164   1.000000
+5686 0   0.000000
+5686 3   0.000000
+5686 2095 -60.000000
+5686 2165  60.000000
+5686 2167   1.000000
+5687 0   0.000000
+5687 3   0.000000
+5687 2096 -30.000000
+5687 2166  30.000000
+5687 2168   1.000000
+5688 0   0.000000
+5688 3   0.000000
+5688 2099 -60.000000
+5688 2169  60.000000
+5688 2171   1.000000
+5689 0   0.000000
+5689 3   0.000000
+5689 2100 -30.000000
+5689 2170  30.000000
+5689 2172   1.000000
+5690 0   0.000000
+5690 3   0.000000
+5690 2105 -60.000000
+5690 2175  60.000000
+5690 2177   1.000000
+5691 0   0.000000
+5691 3   0.000000
+5691 2106 -30.000000
+5691 2176  30.000000
+5691 2178   1.000000
+5692 0   0.000000
+5692 3   0.000000
+5692 2109 -60.000000
+5692 2179  60.000000
+5692 2181   1.000000
+5693 0   0.000000
+5693 3   0.000000
+5693 2110 -30.000000
+5693 2180  30.000000
+5693 2182   1.000000
+5694 0   0.000000
+5694 3   0.000000
+5694 2113 -60.000000
+5694 2183  60.000000
+5694 2185   1.000000
+5695 0   0.000000
+5695 3   0.000000
+5695 2114 -30.000000
+5695 2184  30.000000
+5695 2186   1.000000
+5696 0   0.000000
+5696 3   0.000000
+5696 2119 -60.000000
+5696 2189  60.000000
+5696 2191   1.000000
+5697 0   0.000000
+5697 3   0.000000
+5697 2120 -30.000000
+5697 2190  30.000000
+5697 2192   1.000000
+5698 0   0.000000
+5698 3   0.000000
+5698 2123 -60.000000
+5698 2193  60.000000
+5698 2195   1.000000
+5699 0   0.000000
+5699 3   0.000000
+5699 2124 -30.000000
+5699 2194  30.000000
+5699 2196   1.000000
+5700 0   0.000000
+5700 3   0.000000
+5700 2127 -60.000000
+5700 2197  60.000000
+5700 2199   1.000000
+5701 0   0.000000
+5701 3   0.000000
+5701 2128 -30.000000
+5701 2198  30.000000
+5701 2200   1.000000
+5702 0   0.000000
+5702 3   0.000000
+5702 2133 -60.000000
+5702 2203  60.000000
+5702 2205   1.000000
+5703 0   0.000000
+5703 3   0.000000
+5703 2134 -30.000000
+5703 2204  30.000000
+5703 2206   1.000000
+5704 0   0.000000
+5704 3   0.000000
+5704 2137 -60.000000
+5704 2207  60.000000
+5704 2209   1.000000
+5705 0   0.000000
+5705 3   0.000000
+5705 2138 -30.000000
+5705 2208  30.000000
+5705 2210   1.000000
+5706 0   0.000000
+5706 3   0.000000
+5706 2141 -60.000000
+5706 2211  60.000000
+5706 2213   1.000000
+5707 0   0.000000
+5707 3   0.000000
+5707 2142 -30.000000
+5707 2212  30.000000
+5707 2214   1.000000
+5708 0   0.000000
+5708 3   0.000000
+5708 2147 -60.000000
+5708 2217  60.000000
+5708 2219   1.000000
+5709 0   0.000000
+5709 3   0.000000
+5709 2148 -30.000000
+5709 2218  30.000000
+5709 2220   1.000000
+5710 0   0.000000
+5710 3   0.000000
+5710 2151 -60.000000
+5710 2221  60.000000
+5710 2223   1.000000
+5711 0   0.000000
+5711 3   0.000000
+5711 2152 -30.000000
+5711 2222  30.000000
+5711 2224   1.000000
+5712 0   0.000000
+5712 3   0.000000
+5712 2155 -60.000000
+5712 2225  60.000000
+5712 2227   1.000000
+5713 0   0.000000
+5713 3   0.000000
+5713 2156 -30.000000
+5713 2226  30.000000
+5713 2228   1.000000
+5714 0   0.000000
+5714 3   0.000000
+5714 2161 -60.000000
+5714 2231  60.000000
+5714 2233   1.000000
+5715 0   0.000000
+5715 3   0.000000
+5715 2162 -30.000000
+5715 2232  30.000000
+5715 2234   1.000000
+5716 0   0.000000
+5716 3   0.000000
+5716 2165 -60.000000
+5716 2235  60.000000
+5716 2237   1.000000
+5717 0   0.000000
+5717 3   0.000000
+5717 2166 -30.000000
+5717 2236  30.000000
+5717 2238   1.000000
+5718 0   0.000000
+5718 3   0.000000
+5718 2169 -60.000000
+5718 2239  60.000000
+5718 2241   1.000000
+5719 0   0.000000
+5719 3   0.000000
+5719 2170 -30.000000
+5719 2240  30.000000
+5719 2242   1.000000
+5720 0   0.000000
+5720 3   0.000000
+5720 2175 -60.000000
+5720 2245  60.000000
+5720 2247   1.000000
+5721 0   0.000000
+5721 3   0.000000
+5721 2176 -30.000000
+5721 2246  30.000000
+5721 2248   1.000000
+5722 0   0.000000
+5722 3   0.000000
+5722 2179 -60.000000
+5722 2249  60.000000
+5722 2251   1.000000
+5723 0   0.000000
+5723 3   0.000000
+5723 2180 -30.000000
+5723 2250  30.000000
+5723 2252   1.000000
+5724 0   0.000000
+5724 3   0.000000
+5724 2183 -60.000000
+5724 2253  60.000000
+5724 2255   1.000000
+5725 0   0.000000
+5725 3   0.000000
+5725 2184 -30.000000
+5725 2254  30.000000
+5725 2256   1.000000
+5726 0   0.000000
+5726 3   0.000000
+5726 2189 -60.000000
+5726 2259  60.000000
+5726 2261   1.000000
+5727 0   0.000000
+5727 3   0.000000
+5727 2190 -30.000000
+5727 2260  30.000000
+5727 2262   1.000000
+5728 0   0.000000
+5728 3   0.000000
+5728 2193 -60.000000
+5728 2263  60.000000
+5728 2265   1.000000
+5729 0   0.000000
+5729 3   0.000000
+5729 2194 -30.000000
+5729 2264  30.000000
+5729 2266   1.000000
+5730 0   0.000000
+5730 3   0.000000
+5730 2197 -60.000000
+5730 2267  60.000000
+5730 2269   1.000000
+5731 0   0.000000
+5731 3   0.000000
+5731 2198 -30.000000
+5731 2268  30.000000
+5731 2270   1.000000
+5732 0   0.000000
+5732 3   0.000000
+5732 2203 -60.000000
+5732 2273  60.000000
+5732 2275   1.000000
+5733 0   0.000000
+5733 3   0.000000
+5733 2204 -30.000000
+5733 2274  30.000000
+5733 2276   1.000000
+5734 0   0.000000
+5734 3   0.000000
+5734 2207 -60.000000
+5734 2277  60.000000
+5734 2279   1.000000
+5735 0   0.000000
+5735 3   0.000000
+5735 2208 -30.000000
+5735 2278  30.000000
+5735 2280   1.000000
+5736 0   0.000000
+5736 3   0.000000
+5736 2211 -60.000000
+5736 2281  60.000000
+5736 2283   1.000000
+5737 0   0.000000
+5737 3   0.000000
+5737 2212 -30.000000
+5737 2282  30.000000
+5737 2284   1.000000
+5738 0   0.000000
+5738 3   0.000000
+5738 2217 -60.000000
+5738 2287  60.000000
+5738 2289   1.000000
+5739 0   0.000000
+5739 3   0.000000
+5739 2218 -30.000000
+5739 2288  30.000000
+5739 2290   1.000000
+5740 0   0.000000
+5740 3   0.000000
+5740 2221 -60.000000
+5740 2291  60.000000
+5740 2293   1.000000
+5741 0   0.000000
+5741 3   0.000000
+5741 2222 -30.000000
+5741 2292  30.000000
+5741 2294   1.000000
+5742 0   0.000000
+5742 3   0.000000
+5742 2225 -60.000000
+5742 2295  60.000000
+5742 2297   1.000000
+5743 0   0.000000
+5743 3   0.000000
+5743 2226 -30.000000
+5743 2296  30.000000
+5743 2298   1.000000
+5744 0   0.000000
+5744 3   0.000000
+5744 2231 -60.000000
+5744 2301  60.000000
+5744 2303   1.000000
+5745 0   0.000000
+5745 3   0.000000
+5745 2232 -30.000000
+5745 2302  30.000000
+5745 2304   1.000000
+5746 0   0.000000
+5746 3   0.000000
+5746 2235 -60.000000
+5746 2305  60.000000
+5746 2307   1.000000
+5747 0   0.000000
+5747 3   0.000000
+5747 2236 -30.000000
+5747 2306  30.000000
+5747 2308   1.000000
+5748 0   0.000000
+5748 3   0.000000
+5748 2239 -60.000000
+5748 2309  60.000000
+5748 2311   1.000000
+5749 0   0.000000
+5749 3   0.000000
+5749 2240 -30.000000
+5749 2310  30.000000
+5749 2312   1.000000
+5750 0   0.000000
+5750 3   0.000000
+5750 2245 -60.000000
+5750 2315  60.000000
+5750 2317   1.000000
+5751 0   0.000000
+5751 3   0.000000
+5751 2246 -30.000000
+5751 2316  30.000000
+5751 2318   1.000000
+5752 0   0.000000
+5752 3   0.000000
+5752 2249 -60.000000
+5752 2319  60.000000
+5752 2321   1.000000
+5753 0   0.000000
+5753 3   0.000000
+5753 2250 -30.000000
+5753 2320  30.000000
+5753 2322   1.000000
+5754 0   0.000000
+5754 3   0.000000
+5754 2253 -60.000000
+5754 2323  60.000000
+5754 2325   1.000000
+5755 0   0.000000
+5755 3   0.000000
+5755 2254 -30.000000
+5755 2324  30.000000
+5755 2326   1.000000
+5756 0   0.000000
+5756 3   0.000000
+5756 2259 -60.000000
+5756 2329  60.000000
+5756 2331   1.000000
+5757 0   0.000000
+5757 3   0.000000
+5757 2260 -30.000000
+5757 2330  30.000000
+5757 2332   1.000000
+5758 0   0.000000
+5758 3   0.000000
+5758 2263 -60.000000
+5758 2333  60.000000
+5758 2335   1.000000
+5759 0   0.000000
+5759 3   0.000000
+5759 2264 -30.000000
+5759 2334  30.000000
+5759 2336   1.000000
+5760 0   0.000000
+5760 3   0.000000
+5760 2267 -60.000000
+5760 2337  60.000000
+5760 2339   1.000000
+5761 0   0.000000
+5761 3   0.000000
+5761 2268 -30.000000
+5761 2338  30.000000
+5761 2340   1.000000
+5762 0   0.000000
+5762 3   0.000000
+5762 2273 -60.000000
+5762 2343  60.000000
+5762 2345   1.000000
+5763 0   0.000000
+5763 3   0.000000
+5763 2274 -30.000000
+5763 2344  30.000000
+5763 2346   1.000000
+5764 0   0.000000
+5764 3   0.000000
+5764 2277 -60.000000
+5764 2347  60.000000
+5764 2349   1.000000
+5765 0   0.000000
+5765 3   0.000000
+5765 2278 -30.000000
+5765 2348  30.000000
+5765 2350   1.000000
+5766 0   0.000000
+5766 3   0.000000
+5766 2281 -60.000000
+5766 2351  60.000000
+5766 2353   1.000000
+5767 0   0.000000
+5767 3   0.000000
+5767 2282 -30.000000
+5767 2352  30.000000
+5767 2354   1.000000
+5768 0   0.000000
+5768 3   0.000000
+5768 2287 -60.000000
+5768 2357  60.000000
+5768 2359   1.000000
+5769 0   0.000000
+5769 3   0.000000
+5769 2288 -30.000000
+5769 2358  30.000000
+5769 2360   1.000000
+5770 0   0.000000
+5770 3   0.000000
+5770 2291 -60.000000
+5770 2361  60.000000
+5770 2363   1.000000
+5771 0   0.000000
+5771 3   0.000000
+5771 2292 -30.000000
+5771 2362  30.000000
+5771 2364   1.000000
+5772 0   0.000000
+5772 3   0.000000
+5772 2295 -60.000000
+5772 2365  60.000000
+5772 2367   1.000000
+5773 0   0.000000
+5773 3   0.000000
+5773 2296 -30.000000
+5773 2366  30.000000
+5773 2368   1.000000
+5774 0   0.000000
+5774 3   0.000000
+5774 2301 -60.000000
+5774 2371  60.000000
+5774 2373   1.000000
+5775 0   0.000000
+5775 3   0.000000
+5775 2302 -30.000000
+5775 2372  30.000000
+5775 2374   1.000000
+5776 0   0.000000
+5776 3   0.000000
+5776 2305 -60.000000
+5776 2375  60.000000
+5776 2377   1.000000
+5777 0   0.000000
+5777 3   0.000000
+5777 2306 -30.000000
+5777 2376  30.000000
+5777 2378   1.000000
+5778 0   0.000000
+5778 3   0.000000
+5778 2309 -60.000000
+5778 2379  60.000000
+5778 2381   1.000000
+5779 0   0.000000
+5779 3   0.000000
+5779 2310 -30.000000
+5779 2380  30.000000
+5779 2382   1.000000
+5780 0   0.000000
+5780 3   0.000000
+5780 2315 -60.000000
+5780 2385  60.000000
+5780 2387   1.000000
+5781 0   0.000000
+5781 3   0.000000
+5781 2316 -30.000000
+5781 2386  30.000000
+5781 2388   1.000000
+5782 0   0.000000
+5782 3   0.000000
+5782 2319 -60.000000
+5782 2389  60.000000
+5782 2391   1.000000
+5783 0   0.000000
+5783 3   0.000000
+5783 2320 -30.000000
+5783 2390  30.000000
+5783 2392   1.000000
+5784 0   0.000000
+5784 3   0.000000
+5784 2323 -60.000000
+5784 2393  60.000000
+5784 2395   1.000000
+5785 0   0.000000
+5785 3   0.000000
+5785 2324 -30.000000
+5785 2394  30.000000
+5785 2396   1.000000
+5786 0   0.000000
+5786 3   0.000000
+5786 2329 -60.000000
+5786 2399  60.000000
+5786 2401   1.000000
+5787 0   0.000000
+5787 3   0.000000
+5787 2330 -30.000000
+5787 2400  30.000000
+5787 2402   1.000000
+5788 0   0.000000
+5788 3   0.000000
+5788 2333 -60.000000
+5788 2403  60.000000
+5788 2405   1.000000
+5789 0   0.000000
+5789 3   0.000000
+5789 2334 -30.000000
+5789 2404  30.000000
+5789 2406   1.000000
+5790 0   0.000000
+5790 3   0.000000
+5790 2337 -60.000000
+5790 2407  60.000000
+5790 2409   1.000000
+5791 0   0.000000
+5791 3   0.000000
+5791 2338 -30.000000
+5791 2408  30.000000
+5791 2410   1.000000
+5792 0   0.000000
+5792 3   0.000000
+5792 2343 -60.000000
+5792 2413  60.000000
+5792 2415   1.000000
+5793 0   0.000000
+5793 3   0.000000
+5793 2344 -30.000000
+5793 2414  30.000000
+5793 2416   1.000000
+5794 0   0.000000
+5794 3   0.000000
+5794 2347 -60.000000
+5794 2417  60.000000
+5794 2419   1.000000
+5795 0   0.000000
+5795 3   0.000000
+5795 2348 -30.000000
+5795 2418  30.000000
+5795 2420   1.000000
+5796 0   0.000000
+5796 3   0.000000
+5796 2351 -60.000000
+5796 2421  60.000000
+5796 2423   1.000000
+5797 0   0.000000
+5797 3   0.000000
+5797 2352 -30.000000
+5797 2422  30.000000
+5797 2424   1.000000
+5798 0   0.000000
+5798 3   0.000000
+5798 2357 -60.000000
+5798 2427  60.000000
+5798 2429   1.000000
+5799 0   0.000000
+5799 3   0.000000
+5799 2358 -30.000000
+5799 2428  30.000000
+5799 2430   1.000000
+5800 0   0.000000
+5800 3   0.000000
+5800 2361 -60.000000
+5800 2431  60.000000
+5800 2433   1.000000
+5801 0   0.000000
+5801 3   0.000000
+5801 2362 -30.000000
+5801 2432  30.000000
+5801 2434   1.000000
+5802 0   0.000000
+5802 3   0.000000
+5802 2365 -60.000000
+5802 2435  60.000000
+5802 2437   1.000000
+5803 0   0.000000
+5803 3   0.000000
+5803 2366 -30.000000
+5803 2436  30.000000
+5803 2438   1.000000
+5804 0   0.000000
+5804 3   0.000000
+5804 2371 -60.000000
+5804 2441  60.000000
+5804 2443   1.000000
+5805 0   0.000000
+5805 3   0.000000
+5805 2372 -30.000000
+5805 2442  30.000000
+5805 2444   1.000000
+5806 0   0.000000
+5806 3   0.000000
+5806 2375 -60.000000
+5806 2445  60.000000
+5806 2447   1.000000
+5807 0   0.000000
+5807 3   0.000000
+5807 2376 -30.000000
+5807 2446  30.000000
+5807 2448   1.000000
+5808 0   0.000000
+5808 3   0.000000
+5808 2379 -60.000000
+5808 2449  60.000000
+5808 2451   1.000000
+5809 0   0.000000
+5809 3   0.000000
+5809 2380 -30.000000
+5809 2450  30.000000
+5809 2452   1.000000
+5810 0   0.000000
+5810 3   0.000000
+5810 2385 -60.000000
+5810 2455  60.000000
+5810 2457   1.000000
+5811 0   0.000000
+5811 3   0.000000
+5811 2386 -30.000000
+5811 2456  30.000000
+5811 2458   1.000000
+5812 0   0.000000
+5812 3   0.000000
+5812 2389 -60.000000
+5812 2459  60.000000
+5812 2461   1.000000
+5813 0   0.000000
+5813 3   0.000000
+5813 2390 -30.000000
+5813 2460  30.000000
+5813 2462   1.000000
+5814 0   0.000000
+5814 3   0.000000
+5814 2393 -60.000000
+5814 2463  60.000000
+5814 2465   1.000000
+5815 0   0.000000
+5815 3   0.000000
+5815 2394 -30.000000
+5815 2464  30.000000
+5815 2466   1.000000
+5816 0   0.000000
+5816 3   0.000000
+5816 2399 -60.000000
+5816 2469  60.000000
+5816 2471   1.000000
+5817 0   0.000000
+5817 3   0.000000
+5817 2400 -30.000000
+5817 2470  30.000000
+5817 2472   1.000000
+5818 0   0.000000
+5818 3   0.000000
+5818 2403 -60.000000
+5818 2473  60.000000
+5818 2475   1.000000
+5819 0   0.000000
+5819 3   0.000000
+5819 2404 -30.000000
+5819 2474  30.000000
+5819 2476   1.000000
+5820 0   0.000000
+5820 3   0.000000
+5820 2407 -60.000000
+5820 2477  60.000000
+5820 2479   1.000000
+5821 0   0.000000
+5821 3   0.000000
+5821 2408 -30.000000
+5821 2478  30.000000
+5821 2480   1.000000
+5822 0   0.000000
+5822 3   0.000000
+5822 2413 -60.000000
+5822 2483  60.000000
+5822 2485   1.000000
+5823 0   0.000000
+5823 3   0.000000
+5823 2414 -30.000000
+5823 2484  30.000000
+5823 2486   1.000000
+5824 0   0.000000
+5824 3   0.000000
+5824 2417 -60.000000
+5824 2487  60.000000
+5824 2489   1.000000
+5825 0   0.000000
+5825 3   0.000000
+5825 2418 -30.000000
+5825 2488  30.000000
+5825 2490   1.000000
+5826 0   0.000000
+5826 3   0.000000
+5826 2421 -60.000000
+5826 2491  60.000000
+5826 2493   1.000000
+5827 0   0.000000
+5827 3   0.000000
+5827 2422 -30.000000
+5827 2492  30.000000
+5827 2494   1.000000
+5828 0   0.000000
+5828 3   0.000000
+5828 2427 -60.000000
+5828 2497  60.000000
+5828 2499   1.000000
+5829 0   0.000000
+5829 3   0.000000
+5829 2428 -30.000000
+5829 2498  30.000000
+5829 2500   1.000000
+5830 0   0.000000
+5830 3   0.000000
+5830 2431 -60.000000
+5830 2501  60.000000
+5830 2503   1.000000
+5831 0   0.000000
+5831 3   0.000000
+5831 2432 -30.000000
+5831 2502  30.000000
+5831 2504   1.000000
+5832 0   0.000000
+5832 3   0.000000
+5832 2435 -60.000000
+5832 2505  60.000000
+5832 2507   1.000000
+5833 0   0.000000
+5833 3   0.000000
+5833 2436 -30.000000
+5833 2506  30.000000
+5833 2508   1.000000
+5834 0   0.000000
+5834 3   0.000000
+5834 2441 -60.000000
+5834 2511  60.000000
+5834 2513   1.000000
+5835 0   0.000000
+5835 3   0.000000
+5835 2442 -30.000000
+5835 2512  30.000000
+5835 2514   1.000000
+5836 0   0.000000
+5836 3   0.000000
+5836 2445 -60.000000
+5836 2515  60.000000
+5836 2517   1.000000
+5837 0   0.000000
+5837 3   0.000000
+5837 2446 -30.000000
+5837 2516  30.000000
+5837 2518   1.000000
+5838 0   0.000000
+5838 3   0.000000
+5838 2449 -60.000000
+5838 2519  60.000000
+5838 2521   1.000000
+5839 0   0.000000
+5839 3   0.000000
+5839 2450 -30.000000
+5839 2520  30.000000
+5839 2522   1.000000
+5840 0   0.000000
+5840 3   0.000000
+5840 2455 -60.000000
+5840 2525  60.000000
+5840 2527   1.000000
+5841 0   0.000000
+5841 3   0.000000
+5841 2456 -30.000000
+5841 2526  30.000000
+5841 2528   1.000000
+5842 0   0.000000
+5842 3   0.000000
+5842 2459 -60.000000
+5842 2529  60.000000
+5842 2531   1.000000
+5843 0   0.000000
+5843 3   0.000000
+5843 2460 -30.000000
+5843 2530  30.000000
+5843 2532   1.000000
+5844 0   0.000000
+5844 3   0.000000
+5844 2463 -60.000000
+5844 2533  60.000000
+5844 2535   1.000000
+5845 0   0.000000
+5845 3   0.000000
+5845 2464 -30.000000
+5845 2534  30.000000
+5845 2536   1.000000
+5846 0   0.000000
+5846 3   0.000000
+5846 2469 -60.000000
+5846 2539  60.000000
+5846 2541   1.000000
+5847 0   0.000000
+5847 3   0.000000
+5847 2470 -30.000000
+5847 2540  30.000000
+5847 2542   1.000000
+5848 0   0.000000
+5848 3   0.000000
+5848 2473 -60.000000
+5848 2543  60.000000
+5848 2545   1.000000
+5849 0   0.000000
+5849 3   0.000000
+5849 2474 -30.000000
+5849 2544  30.000000
+5849 2546   1.000000
+5850 0   0.000000
+5850 3   0.000000
+5850 2477 -60.000000
+5850 2547  60.000000
+5850 2549   1.000000
+5851 0   0.000000
+5851 3   0.000000
+5851 2478 -30.000000
+5851 2548  30.000000
+5851 2550   1.000000
+5852 0   0.000000
+5852 3   0.000000
+5852 2483 -60.000000
+5852 2553  60.000000
+5852 2555   1.000000
+5853 0   0.000000
+5853 3   0.000000
+5853 2484 -30.000000
+5853 2554  30.000000
+5853 2556   1.000000
+5854 0   0.000000
+5854 3   0.000000
+5854 2487 -60.000000
+5854 2557  60.000000
+5854 2559   1.000000
+5855 0   0.000000
+5855 3   0.000000
+5855 2488 -30.000000
+5855 2558  30.000000
+5855 2560   1.000000
+5856 0   0.000000
+5856 3   0.000000
+5856 2491 -60.000000
+5856 2561  60.000000
+5856 2563   1.000000
+5857 0   0.000000
+5857 3   0.000000
+5857 2492 -30.000000
+5857 2562  30.000000
+5857 2564   1.000000
+5858 0   0.000000
+5858 3   0.000000
+5858 2497 -60.000000
+5858 2567  60.000000
+5858 2569   1.000000
+5859 0   0.000000
+5859 3   0.000000
+5859 2498 -30.000000
+5859 2568  30.000000
+5859 2570   1.000000
+5860 0   0.000000
+5860 3   0.000000
+5860 2501 -60.000000
+5860 2571  60.000000
+5860 2573   1.000000
+5861 0   0.000000
+5861 3   0.000000
+5861 2502 -30.000000
+5861 2572  30.000000
+5861 2574   1.000000
+5862 0   0.000000
+5862 3   0.000000
+5862 2505 -60.000000
+5862 2575  60.000000
+5862 2577   1.000000
+5863 0   0.000000
+5863 3   0.000000
+5863 2506 -30.000000
+5863 2576  30.000000
+5863 2578   1.000000
+5864 0   0.000000
+5864 3   0.000000
+5864 2511 -60.000000
+5864 2581  60.000000
+5864 2583   1.000000
+5865 0   0.000000
+5865 3   0.000000
+5865 2512 -30.000000
+5865 2582  30.000000
+5865 2584   1.000000
+5866 0   0.000000
+5866 3   0.000000
+5866 2515 -60.000000
+5866 2585  60.000000
+5866 2587   1.000000
+5867 0   0.000000
+5867 3   0.000000
+5867 2516 -30.000000
+5867 2586  30.000000
+5867 2588   1.000000
+5868 0   0.000000
+5868 3   0.000000
+5868 2519 -60.000000
+5868 2589  60.000000
+5868 2591   1.000000
+5869 0   0.000000
+5869 3   0.000000
+5869 2520 -30.000000
+5869 2590  30.000000
+5869 2592   1.000000
+5870 0   0.000000
+5870 3   0.000000
+5870 2525 -60.000000
+5870 2595  60.000000
+5870 2597   1.000000
+5871 0   0.000000
+5871 3   0.000000
+5871 2526 -30.000000
+5871 2596  30.000000
+5871 2598   1.000000
+5872 0   0.000000
+5872 3   0.000000
+5872 2529 -60.000000
+5872 2599  60.000000
+5872 2601   1.000000
+5873 0   0.000000
+5873 3   0.000000
+5873 2530 -30.000000
+5873 2600  30.000000
+5873 2602   1.000000
+5874 0   0.000000
+5874 3   0.000000
+5874 2533 -60.000000
+5874 2603  60.000000
+5874 2605   1.000000
+5875 0   0.000000
+5875 3   0.000000
+5875 2534 -30.000000
+5875 2604  30.000000
+5875 2606   1.000000
+5876 0   0.000000
+5876 3   0.000000
+5876 2539 -60.000000
+5876 2609  60.000000
+5876 2611   1.000000
+5877 0   0.000000
+5877 3   0.000000
+5877 2540 -30.000000
+5877 2610  30.000000
+5877 2612   1.000000
+5878 0   0.000000
+5878 3   0.000000
+5878 2543 -60.000000
+5878 2613  60.000000
+5878 2615   1.000000
+5879 0   0.000000
+5879 3   0.000000
+5879 2544 -30.000000
+5879 2614  30.000000
+5879 2616   1.000000
+5880 0   0.000000
+5880 3   0.000000
+5880 2547 -60.000000
+5880 2617  60.000000
+5880 2619   1.000000
+5881 0   0.000000
+5881 3   0.000000
+5881 2548 -30.000000
+5881 2618  30.000000
+5881 2620   1.000000
+5882 0   0.000000
+5882 3   0.000000
+5882 2553 -60.000000
+5882 2623  60.000000
+5882 2625   1.000000
+5883 0   0.000000
+5883 3   0.000000
+5883 2554 -30.000000
+5883 2624  30.000000
+5883 2626   1.000000
+5884 0   0.000000
+5884 3   0.000000
+5884 2557 -60.000000
+5884 2627  60.000000
+5884 2629   1.000000
+5885 0   0.000000
+5885 3   0.000000
+5885 2558 -30.000000
+5885 2628  30.000000
+5885 2630   1.000000
+5886 0   0.000000
+5886 3   0.000000
+5886 2561 -60.000000
+5886 2631  60.000000
+5886 2633   1.000000
+5887 0   0.000000
+5887 3   0.000000
+5887 2562 -30.000000
+5887 2632  30.000000
+5887 2634   1.000000
+5888 0   0.000000
+5888 3   0.000000
+5888 2567 -60.000000
+5888 2637  60.000000
+5888 2639   1.000000
+5889 0   0.000000
+5889 3   0.000000
+5889 2568 -30.000000
+5889 2638  30.000000
+5889 2640   1.000000
+5890 0   0.000000
+5890 3   0.000000
+5890 2571 -60.000000
+5890 2641  60.000000
+5890 2643   1.000000
+5891 0   0.000000
+5891 3   0.000000
+5891 2572 -30.000000
+5891 2642  30.000000
+5891 2644   1.000000
+5892 0   0.000000
+5892 3   0.000000
+5892 2575 -60.000000
+5892 2645  60.000000
+5892 2647   1.000000
+5893 0   0.000000
+5893 3   0.000000
+5893 2576 -30.000000
+5893 2646  30.000000
+5893 2648   1.000000
+5894 0   0.000000
+5894 3   0.000000
+5894 2581 -60.000000
+5894 2651  60.000000
+5894 2653   1.000000
+5895 0   0.000000
+5895 3   0.000000
+5895 2582 -30.000000
+5895 2652  30.000000
+5895 2654   1.000000
+5896 0   0.000000
+5896 3   0.000000
+5896 2585 -60.000000
+5896 2655  60.000000
+5896 2657   1.000000
+5897 0   0.000000
+5897 3   0.000000
+5897 2586 -30.000000
+5897 2656  30.000000
+5897 2658   1.000000
+5898 0   0.000000
+5898 3   0.000000
+5898 2589 -60.000000
+5898 2659  60.000000
+5898 2661   1.000000
+5899 0   0.000000
+5899 3   0.000000
+5899 2590 -30.000000
+5899 2660  30.000000
+5899 2662   1.000000
+5900 0   0.000000
+5900 3   0.000000
+5900 2595 -60.000000
+5900 2665  60.000000
+5900 2667   1.000000
+5901 0   0.000000
+5901 3   0.000000
+5901 2596 -30.000000
+5901 2666  30.000000
+5901 2668   1.000000
+5902 0   0.000000
+5902 3   0.000000
+5902 2599 -60.000000
+5902 2669  60.000000
+5902 2671   1.000000
+5903 0   0.000000
+5903 3   0.000000
+5903 2600 -30.000000
+5903 2670  30.000000
+5903 2672   1.000000
+5904 0   0.000000
+5904 3   0.000000
+5904 2603 -60.000000
+5904 2673  60.000000
+5904 2675   1.000000
+5905 0   0.000000
+5905 3   0.000000
+5905 2604 -30.000000
+5905 2674  30.000000
+5905 2676   1.000000
+5906 0   0.000000
+5906 3   0.000000
+5906 2609 -60.000000
+5906 2679  60.000000
+5906 2681   1.000000
+5907 0   0.000000
+5907 3   0.000000
+5907 2610 -30.000000
+5907 2680  30.000000
+5907 2682   1.000000
+5908 0   0.000000
+5908 3   0.000000
+5908 2613 -60.000000
+5908 2683  60.000000
+5908 2685   1.000000
+5909 0   0.000000
+5909 3   0.000000
+5909 2614 -30.000000
+5909 2684  30.000000
+5909 2686   1.000000
+5910 0   0.000000
+5910 3   0.000000
+5910 2617 -60.000000
+5910 2687  60.000000
+5910 2689   1.000000
+5911 0   0.000000
+5911 3   0.000000
+5911 2618 -30.000000
+5911 2688  30.000000
+5911 2690   1.000000
+5912 0   0.000000
+5912 3   0.000000
+5912 2623 -60.000000
+5912 2693  60.000000
+5912 2695   1.000000
+5913 0   0.000000
+5913 3   0.000000
+5913 2624 -30.000000
+5913 2694  30.000000
+5913 2696   1.000000
+5914 0   0.000000
+5914 3   0.000000
+5914 2627 -60.000000
+5914 2697  60.000000
+5914 2699   1.000000
+5915 0   0.000000
+5915 3   0.000000
+5915 2628 -30.000000
+5915 2698  30.000000
+5915 2700   1.000000
+5916 0   0.000000
+5916 3   0.000000
+5916 2631 -60.000000
+5916 2701  60.000000
+5916 2703   1.000000
+5917 0   0.000000
+5917 3   0.000000
+5917 2632 -30.000000
+5917 2702  30.000000
+5917 2704   1.000000
+5918 0   0.000000
+5918 3   0.000000
+5918 2637 -60.000000
+5918 2707  60.000000
+5918 2709   1.000000
+5919 0   0.000000
+5919 3   0.000000
+5919 2638 -30.000000
+5919 2708  30.000000
+5919 2710   1.000000
+5920 0   0.000000
+5920 3   0.000000
+5920 2641 -60.000000
+5920 2711  60.000000
+5920 2713   1.000000
+5921 0   0.000000
+5921 3   0.000000
+5921 2642 -30.000000
+5921 2712  30.000000
+5921 2714   1.000000
+5922 0   0.000000
+5922 3   0.000000
+5922 2645 -60.000000
+5922 2715  60.000000
+5922 2717   1.000000
+5923 0   0.000000
+5923 3   0.000000
+5923 2646 -30.000000
+5923 2716  30.000000
+5923 2718   1.000000
+5924 0   0.000000
+5924 3   0.000000
+5924 2651 -60.000000
+5924 2721  60.000000
+5924 2723   1.000000
+5925 0   0.000000
+5925 3   0.000000
+5925 2652 -30.000000
+5925 2722  30.000000
+5925 2724   1.000000
+5926 0   0.000000
+5926 3   0.000000
+5926 2655 -60.000000
+5926 2725  60.000000
+5926 2727   1.000000
+5927 0   0.000000
+5927 3   0.000000
+5927 2656 -30.000000
+5927 2726  30.000000
+5927 2728   1.000000
+5928 0   0.000000
+5928 3   0.000000
+5928 2659 -60.000000
+5928 2729  60.000000
+5928 2731   1.000000
+5929 0   0.000000
+5929 3   0.000000
+5929 2660 -30.000000
+5929 2730  30.000000
+5929 2732   1.000000
+5930 0   0.000000
+5930 3   0.000000
+5930 2665 -60.000000
+5930 2735  60.000000
+5930 2737   1.000000
+5931 0   0.000000
+5931 3   0.000000
+5931 2666 -30.000000
+5931 2736  30.000000
+5931 2738   1.000000
+5932 0   0.000000
+5932 3   0.000000
+5932 2669 -60.000000
+5932 2739  60.000000
+5932 2741   1.000000
+5933 0   0.000000
+5933 3   0.000000
+5933 2670 -30.000000
+5933 2740  30.000000
+5933 2742   1.000000
+5934 0   0.000000
+5934 3   0.000000
+5934 2673 -60.000000
+5934 2743  60.000000
+5934 2745   1.000000
+5935 0   0.000000
+5935 3   0.000000
+5935 2674 -30.000000
+5935 2744  30.000000
+5935 2746   1.000000
+5936 0   0.000000
+5936 3   0.000000
+5936 2679 -60.000000
+5936 2749  60.000000
+5936 2751   1.000000
+5937 0   0.000000
+5937 3   0.000000
+5937 2680 -30.000000
+5937 2750  30.000000
+5937 2752   1.000000
+5938 0   0.000000
+5938 3   0.000000
+5938 2683 -60.000000
+5938 2753  60.000000
+5938 2755   1.000000
+5939 0   0.000000
+5939 3   0.000000
+5939 2684 -30.000000
+5939 2754  30.000000
+5939 2756   1.000000
+5940 0   0.000000
+5940 3   0.000000
+5940 2687 -60.000000
+5940 2757  60.000000
+5940 2759   1.000000
+5941 0   0.000000
+5941 3   0.000000
+5941 2688 -30.000000
+5941 2758  30.000000
+5941 2760   1.000000
+5942 0   0.000000
+5942 3   0.000000
+5942 2693 -60.000000
+5942 2763  60.000000
+5942 2765   1.000000
+5943 0   0.000000
+5943 3   0.000000
+5943 2694 -30.000000
+5943 2764  30.000000
+5943 2766   1.000000
+5944 0   0.000000
+5944 3   0.000000
+5944 2697 -60.000000
+5944 2767  60.000000
+5944 2769   1.000000
+5945 0   0.000000
+5945 3   0.000000
+5945 2698 -30.000000
+5945 2768  30.000000
+5945 2770   1.000000
+5946 0   0.000000
+5946 3   0.000000
+5946 2701 -60.000000
+5946 2771  60.000000
+5946 2773   1.000000
+5947 0   0.000000
+5947 3   0.000000
+5947 2702 -30.000000
+5947 2772  30.000000
+5947 2774   1.000000
+5948 0   0.000000
+5948 3   0.000000
+5948 2707 -60.000000
+5948 2777  60.000000
+5948 2779   1.000000
+5949 0   0.000000
+5949 3   0.000000
+5949 2708 -30.000000
+5949 2778  30.000000
+5949 2780   1.000000
+5950 0   0.000000
+5950 3   0.000000
+5950 2711 -60.000000
+5950 2781  60.000000
+5950 2783   1.000000
+5951 0   0.000000
+5951 3   0.000000
+5951 2712 -30.000000
+5951 2782  30.000000
+5951 2784   1.000000
+5952 0   0.000000
+5952 3   0.000000
+5952 2715 -60.000000
+5952 2785  60.000000
+5952 2787   1.000000
+5953 0   0.000000
+5953 3   0.000000
+5953 2716 -30.000000
+5953 2786  30.000000
+5953 2788   1.000000
+5954 0   0.000000
+5954 3   0.000000
+5954 2721 -60.000000
+5954 2791  60.000000
+5954 2793   1.000000
+5955 0   0.000000
+5955 3   0.000000
+5955 2722 -30.000000
+5955 2792  30.000000
+5955 2794   1.000000
+5956 0   0.000000
+5956 3   0.000000
+5956 2725 -60.000000
+5956 2795  60.000000
+5956 2797   1.000000
+5957 0   0.000000
+5957 3   0.000000
+5957 2726 -30.000000
+5957 2796  30.000000
+5957 2798   1.000000
+5958 0   0.000000
+5958 3   0.000000
+5958 2729 -60.000000
+5958 2799  60.000000
+5958 2801   1.000000
+5959 0   0.000000
+5959 3   0.000000
+5959 2730 -30.000000
+5959 2800  30.000000
+5959 2802   1.000000
+5960 0   0.000000
+5960 3   0.000000
+5960 2735 -60.000000
+5960 2805  60.000000
+5960 2807   1.000000
+5961 0   0.000000
+5961 3   0.000000
+5961 2736 -30.000000
+5961 2806  30.000000
+5961 2808   1.000000
+5962 0   0.000000
+5962 3   0.000000
+5962 2739 -60.000000
+5962 2809  60.000000
+5962 2811   1.000000
+5963 0   0.000000
+5963 3   0.000000
+5963 2740 -30.000000
+5963 2810  30.000000
+5963 2812   1.000000
+5964 0   0.000000
+5964 3   0.000000
+5964 2743 -60.000000
+5964 2813  60.000000
+5964 2815   1.000000
+5965 0   0.000000
+5965 3   0.000000
+5965 2744 -30.000000
+5965 2814  30.000000
+5965 2816   1.000000
+5966 0   0.000000
+5966 3   0.000000
+5966 2749 -60.000000
+5966 2819  60.000000
+5966 2821   1.000000
+5967 0   0.000000
+5967 3   0.000000
+5967 2750 -30.000000
+5967 2820  30.000000
+5967 2822   1.000000
+5968 0   0.000000
+5968 3   0.000000
+5968 2753 -60.000000
+5968 2823  60.000000
+5968 2825   1.000000
+5969 0   0.000000
+5969 3   0.000000
+5969 2754 -30.000000
+5969 2824  30.000000
+5969 2826   1.000000
+5970 0   0.000000
+5970 3   0.000000
+5970 2757 -60.000000
+5970 2827  60.000000
+5970 2829   1.000000
+5971 0   0.000000
+5971 3   0.000000
+5971 2758 -30.000000
+5971 2828  30.000000
+5971 2830   1.000000
+5972 0   0.000000
+5972 3   0.000000
+5972 2763 -60.000000
+5972 2833  60.000000
+5972 2835   1.000000
+5973 0   0.000000
+5973 3   0.000000
+5973 2764 -30.000000
+5973 2834  30.000000
+5973 2836   1.000000
+5974 0   0.000000
+5974 3   0.000000
+5974 2767 -60.000000
+5974 2837  60.000000
+5974 2839   1.000000
+5975 0   0.000000
+5975 3   0.000000
+5975 2768 -30.000000
+5975 2838  30.000000
+5975 2840   1.000000
+5976 0   0.000000
+5976 3   0.000000
+5976 2771 -60.000000
+5976 2841  60.000000
+5976 2843   1.000000
+5977 0   0.000000
+5977 3   0.000000
+5977 2772 -30.000000
+5977 2842  30.000000
+5977 2844   1.000000
+5978 0   0.000000
+5978 3   0.000000
+5978 2777 -60.000000
+5978 2847  60.000000
+5978 2849   1.000000
+5979 0   0.000000
+5979 3   0.000000
+5979 2778 -30.000000
+5979 2848  30.000000
+5979 2850   1.000000
+5980 0   0.000000
+5980 3   0.000000
+5980 2781 -60.000000
+5980 2851  60.000000
+5980 2853   1.000000
+5981 0   0.000000
+5981 3   0.000000
+5981 2782 -30.000000
+5981 2852  30.000000
+5981 2854   1.000000
+5982 0   0.000000
+5982 3   0.000000
+5982 2785 -60.000000
+5982 2855  60.000000
+5982 2857   1.000000
+5983 0   0.000000
+5983 3   0.000000
+5983 2786 -30.000000
+5983 2856  30.000000
+5983 2858   1.000000
+5984 0   0.000000
+5984 3   0.000000
+5984 2791 -60.000000
+5984 2861  60.000000
+5984 2863   1.000000
+5985 0   0.000000
+5985 3   0.000000
+5985 2792 -30.000000
+5985 2862  30.000000
+5985 2864   1.000000
+5986 0   0.000000
+5986 3   0.000000
+5986 2795 -60.000000
+5986 2865  60.000000
+5986 2867   1.000000
+5987 0   0.000000
+5987 3   0.000000
+5987 2796 -30.000000
+5987 2866  30.000000
+5987 2868   1.000000
+5988 0   0.000000
+5988 3   0.000000
+5988 2799 -60.000000
+5988 2869  60.000000
+5988 2871   1.000000
+5989 0   0.000000
+5989 3   0.000000
+5989 2800 -30.000000
+5989 2870  30.000000
+5989 2872   1.000000
+5990 0   0.000000
+5990 3   0.000000
+5990 2805 -60.000000
+5990 2875  60.000000
+5990 2877   1.000000
+5991 0   0.000000
+5991 3   0.000000
+5991 2806 -30.000000
+5991 2876  30.000000
+5991 2878   1.000000
+5992 0   0.000000
+5992 3   0.000000
+5992 2809 -60.000000
+5992 2879  60.000000
+5992 2881   1.000000
+5993 0   0.000000
+5993 3   0.000000
+5993 2810 -30.000000
+5993 2880  30.000000
+5993 2882   1.000000
+5994 0   0.000000
+5994 3   0.000000
+5994 2813 -60.000000
+5994 2883  60.000000
+5994 2885   1.000000
+5995 0   0.000000
+5995 3   0.000000
+5995 2814 -30.000000
+5995 2884  30.000000
+5995 2886   1.000000
+5996 0   0.000000
+5996 3   0.000000
+5996 2819 -60.000000
+5996 2889  60.000000
+5996 2891   1.000000
+5997 0   0.000000
+5997 3   0.000000
+5997 2820 -30.000000
+5997 2890  30.000000
+5997 2892   1.000000
+5998 0   0.000000
+5998 3   0.000000
+5998 2823 -60.000000
+5998 2893  60.000000
+5998 2895   1.000000
+5999 0   0.000000
+5999 3   0.000000
+5999 2824 -30.000000
+5999 2894  30.000000
+5999 2896   1.000000
+6000 0   0.000000
+6000 3   0.000000
+6000 2827 -60.000000
+6000 2897  60.000000
+6000 2899   1.000000
+6001 0   0.000000
+6001 3   0.000000
+6001 2828 -30.000000
+6001 2898  30.000000
+6001 2900   1.000000
+6002 0   0.000000
+6002 3   0.000000
+6002 2833 -60.000000
+6002 2903  60.000000
+6002 2905   1.000000
+6003 0   0.000000
+6003 3   0.000000
+6003 2834 -30.000000
+6003 2904  30.000000
+6003 2906   1.000000
+6004 0   0.000000
+6004 3   0.000000
+6004 2837 -60.000000
+6004 2907  60.000000
+6004 2909   1.000000
+6005 0   0.000000
+6005 3   0.000000
+6005 2838 -30.000000
+6005 2908  30.000000
+6005 2910   1.000000
+6006 0   0.000000
+6006 3   0.000000
+6006 2841 -60.000000
+6006 2911  60.000000
+6006 2913   1.000000
+6007 0   0.000000
+6007 3   0.000000
+6007 2842 -30.000000
+6007 2912  30.000000
+6007 2914   1.000000
+6008 0   0.000000
+6008 3   0.000000
+6008 2847 -60.000000
+6008 2917  60.000000
+6008 2919   1.000000
+6009 0   0.000000
+6009 3   0.000000
+6009 2848 -30.000000
+6009 2918  30.000000
+6009 2920   1.000000
+6010 0   0.000000
+6010 3   0.000000
+6010 2851 -60.000000
+6010 2921  60.000000
+6010 2923   1.000000
+6011 0   0.000000
+6011 3   0.000000
+6011 2852 -30.000000
+6011 2922  30.000000
+6011 2924   1.000000
+6012 0   0.000000
+6012 3   0.000000
+6012 2855 -60.000000
+6012 2925  60.000000
+6012 2927   1.000000
+6013 0   0.000000
+6013 3   0.000000
+6013 2856 -30.000000
+6013 2926  30.000000
+6013 2928   1.000000
+6014 0   0.000000
+6014 3   0.000000
+6014 2861 -60.000000
+6014 2931  60.000000
+6014 2933   1.000000
+6015 0   0.000000
+6015 3   0.000000
+6015 2862 -30.000000
+6015 2932  30.000000
+6015 2934   1.000000
+6016 0   0.000000
+6016 3   0.000000
+6016 2865 -60.000000
+6016 2935  60.000000
+6016 2937   1.000000
+6017 0   0.000000
+6017 3   0.000000
+6017 2866 -30.000000
+6017 2936  30.000000
+6017 2938   1.000000
+6018 0   0.000000
+6018 3   0.000000
+6018 2869 -60.000000
+6018 2939  60.000000
+6018 2941   1.000000
+6019 0   0.000000
+6019 3   0.000000
+6019 2870 -30.000000
+6019 2940  30.000000
+6019 2942   1.000000
+6020 0   0.000000
+6020 3   0.000000
+6020 2875 -60.000000
+6020 2945  60.000000
+6020 2947   1.000000
+6021 0   0.000000
+6021 3   0.000000
+6021 2876 -30.000000
+6021 2946  30.000000
+6021 2948   1.000000
+6022 0   0.000000
+6022 3   0.000000
+6022 2879 -60.000000
+6022 2949  60.000000
+6022 2951   1.000000
+6023 0   0.000000
+6023 3   0.000000
+6023 2880 -30.000000
+6023 2950  30.000000
+6023 2952   1.000000
+6024 0   0.000000
+6024 3   0.000000
+6024 2883 -60.000000
+6024 2953  60.000000
+6024 2955   1.000000
+6025 0   0.000000
+6025 3   0.000000
+6025 2884 -30.000000
+6025 2954  30.000000
+6025 2956   1.000000
+6026 0   0.000000
+6026 3   0.000000
+6026 2889 -60.000000
+6026 2959  60.000000
+6026 2961   1.000000
+6027 0   0.000000
+6027 3   0.000000
+6027 2890 -30.000000
+6027 2960  30.000000
+6027 2962   1.000000
+6028 0   0.000000
+6028 3   0.000000
+6028 2893 -60.000000
+6028 2963  60.000000
+6028 2965   1.000000
+6029 0   0.000000
+6029 3   0.000000
+6029 2894 -30.000000
+6029 2964  30.000000
+6029 2966   1.000000
+6030 0   0.000000
+6030 3   0.000000
+6030 2897 -60.000000
+6030 2967  60.000000
+6030 2969   1.000000
+6031 0   0.000000
+6031 3   0.000000
+6031 2898 -30.000000
+6031 2968  30.000000
+6031 2970   1.000000
+6032 0   0.000000
+6032 3   0.000000
+6032 2903 -60.000000
+6032 2973  60.000000
+6032 2975   1.000000
+6033 0   0.000000
+6033 3   0.000000
+6033 2904 -30.000000
+6033 2974  30.000000
+6033 2976   1.000000
+6034 0   0.000000
+6034 3   0.000000
+6034 2907 -60.000000
+6034 2977  60.000000
+6034 2979   1.000000
+6035 0   0.000000
+6035 3   0.000000
+6035 2908 -30.000000
+6035 2978  30.000000
+6035 2980   1.000000
+6036 0   0.000000
+6036 3   0.000000
+6036 2911 -60.000000
+6036 2981  60.000000
+6036 2983   1.000000
+6037 0   0.000000
+6037 3   0.000000
+6037 2912 -30.000000
+6037 2982  30.000000
+6037 2984   1.000000
+6038 0   0.000000
+6038 3   0.000000
+6038 2917 -60.000000
+6038 2987  60.000000
+6038 2989   1.000000
+6039 0   0.000000
+6039 3   0.000000
+6039 2918 -30.000000
+6039 2988  30.000000
+6039 2990   1.000000
+6040 0   0.000000
+6040 3   0.000000
+6040 2921 -60.000000
+6040 2991  60.000000
+6040 2993   1.000000
+6041 0   0.000000
+6041 3   0.000000
+6041 2922 -30.000000
+6041 2992  30.000000
+6041 2994   1.000000
+6042 0   0.000000
+6042 3   0.000000
+6042 2925 -60.000000
+6042 2995  60.000000
+6042 2997   1.000000
+6043 0   0.000000
+6043 3   0.000000
+6043 2926 -30.000000
+6043 2996  30.000000
+6043 2998   1.000000
+6044 0   0.000000
+6044 3   0.000000
+6044 2931 -60.000000
+6044 3001  60.000000
+6044 3003   1.000000
+6045 0   0.000000
+6045 3   0.000000
+6045 2932 -30.000000
+6045 3002  30.000000
+6045 3004   1.000000
+6046 0   0.000000
+6046 3   0.000000
+6046 2935 -60.000000
+6046 3005  60.000000
+6046 3007   1.000000
+6047 0   0.000000
+6047 3   0.000000
+6047 2936 -30.000000
+6047 3006  30.000000
+6047 3008   1.000000
+6048 0   0.000000
+6048 3   0.000000
+6048 2939 -60.000000
+6048 3009  60.000000
+6048 3011   1.000000
+6049 0   0.000000
+6049 3   0.000000
+6049 2940 -30.000000
+6049 3010  30.000000
+6049 3012   1.000000
+6050 0   0.000000
+6050 3   0.000000
+6050 2945 -60.000000
+6050 3015  60.000000
+6050 3017   1.000000
+6051 0   0.000000
+6051 3   0.000000
+6051 2946 -30.000000
+6051 3016  30.000000
+6051 3018   1.000000
+6052 0   0.000000
+6052 3   0.000000
+6052 2949 -60.000000
+6052 3019  60.000000
+6052 3021   1.000000
+6053 0   0.000000
+6053 3   0.000000
+6053 2950 -30.000000
+6053 3020  30.000000
+6053 3022   1.000000
+6054 0   0.000000
+6054 3   0.000000
+6054 2953 -60.000000
+6054 3023  60.000000
+6054 3025   1.000000
+6055 0   0.000000
+6055 3   0.000000
+6055 2954 -30.000000
+6055 3024  30.000000
+6055 3026   1.000000
+6056 0   0.000000
+6056 3   0.000000
+6056 2959 -60.000000
+6056 3029  60.000000
+6056 3031   1.000000
+6057 0   0.000000
+6057 3   0.000000
+6057 2960 -30.000000
+6057 3030  30.000000
+6057 3032   1.000000
+6058 0   0.000000
+6058 3   0.000000
+6058 2963 -60.000000
+6058 3033  60.000000
+6058 3035   1.000000
+6059 0   0.000000
+6059 3   0.000000
+6059 2964 -30.000000
+6059 3034  30.000000
+6059 3036   1.000000
+6060 0   0.000000
+6060 3   0.000000
+6060 2967 -60.000000
+6060 3037  60.000000
+6060 3039   1.000000
+6061 0   0.000000
+6061 3   0.000000
+6061 2968 -30.000000
+6061 3038  30.000000
+6061 3040   1.000000
+6062 0   0.000000
+6062 3   0.000000
+6062 2973 -60.000000
+6062 3043  60.000000
+6062 3045   1.000000
+6063 0   0.000000
+6063 3   0.000000
+6063 2974 -30.000000
+6063 3044  30.000000
+6063 3046   1.000000
+6064 0   0.000000
+6064 3   0.000000
+6064 2977 -60.000000
+6064 3047  60.000000
+6064 3049   1.000000
+6065 0   0.000000
+6065 3   0.000000
+6065 2978 -30.000000
+6065 3048  30.000000
+6065 3050   1.000000
+6066 0   0.000000
+6066 3   0.000000
+6066 2981 -60.000000
+6066 3051  60.000000
+6066 3053   1.000000
+6067 0   0.000000
+6067 3   0.000000
+6067 2982 -30.000000
+6067 3052  30.000000
+6067 3054   1.000000
+6068 0   0.000000
+6068 3   0.000000
+6068 2987 -60.000000
+6068 3057  60.000000
+6068 3059   1.000000
+6069 0   0.000000
+6069 3   0.000000
+6069 2988 -30.000000
+6069 3058  30.000000
+6069 3060   1.000000
+6070 0   0.000000
+6070 3   0.000000
+6070 2991 -60.000000
+6070 3061  60.000000
+6070 3063   1.000000
+6071 0   0.000000
+6071 3   0.000000
+6071 2992 -30.000000
+6071 3062  30.000000
+6071 3064   1.000000
+6072 0   0.000000
+6072 3   0.000000
+6072 2995 -60.000000
+6072 3065  60.000000
+6072 3067   1.000000
+6073 0   0.000000
+6073 3   0.000000
+6073 2996 -30.000000
+6073 3066  30.000000
+6073 3068   1.000000
+6074 0   0.000000
+6074 3   0.000000
+6074 3001 -60.000000
+6074 3071  60.000000
+6074 3073   1.000000
+6075 0   0.000000
+6075 3   0.000000
+6075 3002 -30.000000
+6075 3072  30.000000
+6075 3074   1.000000
+6076 0   0.000000
+6076 3   0.000000
+6076 3005 -60.000000
+6076 3075  60.000000
+6076 3077   1.000000
+6077 0   0.000000
+6077 3   0.000000
+6077 3006 -30.000000
+6077 3076  30.000000
+6077 3078   1.000000
+6078 0   0.000000
+6078 3   0.000000
+6078 3009 -60.000000
+6078 3079  60.000000
+6078 3081   1.000000
+6079 0   0.000000
+6079 3   0.000000
+6079 3010 -30.000000
+6079 3080  30.000000
+6079 3082   1.000000
+6080 0   0.000000
+6080 3   0.000000
+6080 3015 -60.000000
+6080 3085  60.000000
+6080 3087   1.000000
+6081 0   0.000000
+6081 3   0.000000
+6081 3016 -30.000000
+6081 3086  30.000000
+6081 3088   1.000000
+6082 0   0.000000
+6082 3   0.000000
+6082 3019 -60.000000
+6082 3089  60.000000
+6082 3091   1.000000
+6083 0   0.000000
+6083 3   0.000000
+6083 3020 -30.000000
+6083 3090  30.000000
+6083 3092   1.000000
+6084 0   0.000000
+6084 3   0.000000
+6084 3023 -60.000000
+6084 3093  60.000000
+6084 3095   1.000000
+6085 0   0.000000
+6085 3   0.000000
+6085 3024 -30.000000
+6085 3094  30.000000
+6085 3096   1.000000
+6086 0   0.000000
+6086 3   0.000000
+6086 3029 -60.000000
+6086 3099  60.000000
+6086 3101   1.000000
+6087 0   0.000000
+6087 3   0.000000
+6087 3030 -30.000000
+6087 3100  30.000000
+6087 3102   1.000000
+6088 0   0.000000
+6088 3   0.000000
+6088 3033 -60.000000
+6088 3103  60.000000
+6088 3105   1.000000
+6089 0   0.000000
+6089 3   0.000000
+6089 3034 -30.000000
+6089 3104  30.000000
+6089 3106   1.000000
+6090 0   0.000000
+6090 3   0.000000
+6090 3037 -60.000000
+6090 3107  60.000000
+6090 3109   1.000000
+6091 0   0.000000
+6091 3   0.000000
+6091 3038 -30.000000
+6091 3108  30.000000
+6091 3110   1.000000
+6092 0   0.000000
+6092 3   0.000000
+6092 3043 -60.000000
+6092 3113  60.000000
+6092 3115   1.000000
+6093 0   0.000000
+6093 3   0.000000
+6093 3044 -30.000000
+6093 3114  30.000000
+6093 3116   1.000000
+6094 0   0.000000
+6094 3   0.000000
+6094 3047 -60.000000
+6094 3117  60.000000
+6094 3119   1.000000
+6095 0   0.000000
+6095 3   0.000000
+6095 3048 -30.000000
+6095 3118  30.000000
+6095 3120   1.000000
+6096 0   0.000000
+6096 3   0.000000
+6096 3051 -60.000000
+6096 3121  60.000000
+6096 3123   1.000000
+6097 0   0.000000
+6097 3   0.000000
+6097 3052 -30.000000
+6097 3122  30.000000
+6097 3124   1.000000
+6098 0   0.000000
+6098 3   0.000000
+6098 3057 -60.000000
+6098 3127  60.000000
+6098 3129   1.000000
+6099 0   0.000000
+6099 3   0.000000
+6099 3058 -30.000000
+6099 3128  30.000000
+6099 3130   1.000000
+6100 0   0.000000
+6100 3   0.000000
+6100 3061 -60.000000
+6100 3131  60.000000
+6100 3133   1.000000
+6101 0   0.000000
+6101 3   0.000000
+6101 3062 -30.000000
+6101 3132  30.000000
+6101 3134   1.000000
+6102 0   0.000000
+6102 3   0.000000
+6102 3065 -60.000000
+6102 3135  60.000000
+6102 3137   1.000000
+6103 0   0.000000
+6103 3   0.000000
+6103 3066 -30.000000
+6103 3136  30.000000
+6103 3138   1.000000
+6104 0   0.000000
+6104 3   0.000000
+6104 3071 -60.000000
+6104 3141  60.000000
+6104 3143   1.000000
+6105 0   0.000000
+6105 3   0.000000
+6105 3072 -30.000000
+6105 3142  30.000000
+6105 3144   1.000000
+6106 0   0.000000
+6106 3   0.000000
+6106 3075 -60.000000
+6106 3145  60.000000
+6106 3147   1.000000
+6107 0   0.000000
+6107 3   0.000000
+6107 3076 -30.000000
+6107 3146  30.000000
+6107 3148   1.000000
+6108 0   0.000000
+6108 3   0.000000
+6108 3079 -60.000000
+6108 3149  60.000000
+6108 3151   1.000000
+6109 0   0.000000
+6109 3   0.000000
+6109 3080 -30.000000
+6109 3150  30.000000
+6109 3152   1.000000
+6110 0   0.000000
+6110 3   0.000000
+6110 3085 -60.000000
+6110 3155  60.000000
+6110 3157   1.000000
+6111 0   0.000000
+6111 3   0.000000
+6111 3086 -30.000000
+6111 3156  30.000000
+6111 3158   1.000000
+6112 0   0.000000
+6112 3   0.000000
+6112 3089 -60.000000
+6112 3159  60.000000
+6112 3161   1.000000
+6113 0   0.000000
+6113 3   0.000000
+6113 3090 -30.000000
+6113 3160  30.000000
+6113 3162   1.000000
+6114 0   0.000000
+6114 3   0.000000
+6114 3093 -60.000000
+6114 3163  60.000000
+6114 3165   1.000000
+6115 0   0.000000
+6115 3   0.000000
+6115 3094 -30.000000
+6115 3164  30.000000
+6115 3166   1.000000
+6116 0   0.000000
+6116 3   0.000000
+6116 3099 -60.000000
+6116 3169  60.000000
+6116 3171   1.000000
+6117 0   0.000000
+6117 3   0.000000
+6117 3100 -30.000000
+6117 3170  30.000000
+6117 3172   1.000000
+6118 0   0.000000
+6118 3   0.000000
+6118 3103 -60.000000
+6118 3173  60.000000
+6118 3175   1.000000
+6119 0   0.000000
+6119 3   0.000000
+6119 3104 -30.000000
+6119 3174  30.000000
+6119 3176   1.000000
+6120 0   0.000000
+6120 3   0.000000
+6120 3107 -60.000000
+6120 3177  60.000000
+6120 3179   1.000000
+6121 0   0.000000
+6121 3   0.000000
+6121 3108 -30.000000
+6121 3178  30.000000
+6121 3180   1.000000
+6122 0   0.000000
+6122 3   0.000000
+6122 3113 -60.000000
+6122 3183  60.000000
+6122 3185   1.000000
+6123 0   0.000000
+6123 3   0.000000
+6123 3114 -30.000000
+6123 3184  30.000000
+6123 3186   1.000000
+6124 0   0.000000
+6124 3   0.000000
+6124 3117 -60.000000
+6124 3187  60.000000
+6124 3189   1.000000
+6125 0   0.000000
+6125 3   0.000000
+6125 3118 -30.000000
+6125 3188  30.000000
+6125 3190   1.000000
+6126 0   0.000000
+6126 3   0.000000
+6126 3121 -60.000000
+6126 3191  60.000000
+6126 3193   1.000000
+6127 0   0.000000
+6127 3   0.000000
+6127 3122 -30.000000
+6127 3192  30.000000
+6127 3194   1.000000
+6128 0   0.000000
+6128 3   0.000000
+6128 3127 -60.000000
+6128 3197  60.000000
+6128 3199   1.000000
+6129 0   0.000000
+6129 3   0.000000
+6129 3128 -30.000000
+6129 3198  30.000000
+6129 3200   1.000000
+6130 0   0.000000
+6130 3   0.000000
+6130 3131 -60.000000
+6130 3201  60.000000
+6130 3203   1.000000
+6131 0   0.000000
+6131 3   0.000000
+6131 3132 -30.000000
+6131 3202  30.000000
+6131 3204   1.000000
+6132 0   0.000000
+6132 3   0.000000
+6132 3135 -60.000000
+6132 3205  60.000000
+6132 3207   1.000000
+6133 0   0.000000
+6133 3   0.000000
+6133 3136 -30.000000
+6133 3206  30.000000
+6133 3208   1.000000
+6134 0   0.000000
+6134 3   0.000000
+6134 3141 -60.000000
+6134 3211  60.000000
+6134 3213   1.000000
+6135 0   0.000000
+6135 3   0.000000
+6135 3142 -30.000000
+6135 3212  30.000000
+6135 3214   1.000000
+6136 0   0.000000
+6136 3   0.000000
+6136 3145 -60.000000
+6136 3215  60.000000
+6136 3217   1.000000
+6137 0   0.000000
+6137 3   0.000000
+6137 3146 -30.000000
+6137 3216  30.000000
+6137 3218   1.000000
+6138 0   0.000000
+6138 3   0.000000
+6138 3149 -60.000000
+6138 3219  60.000000
+6138 3221   1.000000
+6139 0   0.000000
+6139 3   0.000000
+6139 3150 -30.000000
+6139 3220  30.000000
+6139 3222   1.000000
+6140 0   0.000000
+6140 3   0.000000
+6140 3155 -60.000000
+6140 3225  60.000000
+6140 3227   1.000000
+6141 0   0.000000
+6141 3   0.000000
+6141 3156 -30.000000
+6141 3226  30.000000
+6141 3228   1.000000
+6142 0   0.000000
+6142 3   0.000000
+6142 3159 -60.000000
+6142 3229  60.000000
+6142 3231   1.000000
+6143 0   0.000000
+6143 3   0.000000
+6143 3160 -30.000000
+6143 3230  30.000000
+6143 3232   1.000000
+6144 0   0.000000
+6144 3   0.000000
+6144 3163 -60.000000
+6144 3233  60.000000
+6144 3235   1.000000
+6145 0   0.000000
+6145 3   0.000000
+6145 3164 -30.000000
+6145 3234  30.000000
+6145 3236   1.000000
+6146 0   0.000000
+6146 3   0.000000
+6146 3169 -60.000000
+6146 3239  60.000000
+6146 3241   1.000000
+6147 0   0.000000
+6147 3   0.000000
+6147 3170 -30.000000
+6147 3240  30.000000
+6147 3242   1.000000
+6148 0   0.000000
+6148 3   0.000000
+6148 3173 -60.000000
+6148 3243  60.000000
+6148 3245   1.000000
+6149 0   0.000000
+6149 3   0.000000
+6149 3174 -30.000000
+6149 3244  30.000000
+6149 3246   1.000000
+6150 0   0.000000
+6150 3   0.000000
+6150 3177 -60.000000
+6150 3247  60.000000
+6150 3249   1.000000
+6151 0   0.000000
+6151 3   0.000000
+6151 3178 -30.000000
+6151 3248  30.000000
+6151 3250   1.000000
+6152 0   0.000000
+6152 3   0.000000
+6152 3183 -60.000000
+6152 3253  60.000000
+6152 3255   1.000000
+6153 0   0.000000
+6153 3   0.000000
+6153 3184 -30.000000
+6153 3254  30.000000
+6153 3256   1.000000
+6154 0   0.000000
+6154 3   0.000000
+6154 3187 -60.000000
+6154 3257  60.000000
+6154 3259   1.000000
+6155 0   0.000000
+6155 3   0.000000
+6155 3188 -30.000000
+6155 3258  30.000000
+6155 3260   1.000000
+6156 0   0.000000
+6156 3   0.000000
+6156 3191 -60.000000
+6156 3261  60.000000
+6156 3263   1.000000
+6157 0   0.000000
+6157 3   0.000000
+6157 3192 -30.000000
+6157 3262  30.000000
+6157 3264   1.000000
+6158 0   0.000000
+6158 3   0.000000
+6158 3197 -60.000000
+6158 3267  60.000000
+6158 3269   1.000000
+6159 0   0.000000
+6159 3   0.000000
+6159 3198 -30.000000
+6159 3268  30.000000
+6159 3270   1.000000
+6160 0   0.000000
+6160 3   0.000000
+6160 3201 -60.000000
+6160 3271  60.000000
+6160 3273   1.000000
+6161 0   0.000000
+6161 3   0.000000
+6161 3202 -30.000000
+6161 3272  30.000000
+6161 3274   1.000000
+6162 0   0.000000
+6162 3   0.000000
+6162 3205 -60.000000
+6162 3275  60.000000
+6162 3277   1.000000
+6163 0   0.000000
+6163 3   0.000000
+6163 3206 -30.000000
+6163 3276  30.000000
+6163 3278   1.000000
+6164 0   0.000000
+6164 3   0.000000
+6164 3211 -60.000000
+6164 3281  60.000000
+6164 3283   1.000000
+6165 0   0.000000
+6165 3   0.000000
+6165 3212 -30.000000
+6165 3282  30.000000
+6165 3284   1.000000
+6166 0   0.000000
+6166 3   0.000000
+6166 3215 -60.000000
+6166 3285  60.000000
+6166 3287   1.000000
+6167 0   0.000000
+6167 3   0.000000
+6167 3216 -30.000000
+6167 3286  30.000000
+6167 3288   1.000000
+6168 0   0.000000
+6168 3   0.000000
+6168 3219 -60.000000
+6168 3289  60.000000
+6168 3291   1.000000
+6169 0   0.000000
+6169 3   0.000000
+6169 3220 -30.000000
+6169 3290  30.000000
+6169 3292   1.000000
+6170 0   0.000000
+6170 3   0.000000
+6170 3225 -60.000000
+6170 3295  60.000000
+6170 3297   1.000000
+6171 0   0.000000
+6171 3   0.000000
+6171 3226 -30.000000
+6171 3296  30.000000
+6171 3298   1.000000
+6172 0   0.000000
+6172 3   0.000000
+6172 3229 -60.000000
+6172 3299  60.000000
+6172 3301   1.000000
+6173 0   0.000000
+6173 3   0.000000
+6173 3230 -30.000000
+6173 3300  30.000000
+6173 3302   1.000000
+6174 0   0.000000
+6174 3   0.000000
+6174 3233 -60.000000
+6174 3303  60.000000
+6174 3305   1.000000
+6175 0   0.000000
+6175 3   0.000000
+6175 3234 -30.000000
+6175 3304  30.000000
+6175 3306   1.000000
+6176 0   0.000000
+6176 3   0.000000
+6176 3239 -60.000000
+6176 3309  60.000000
+6176 3311   1.000000
+6177 0   0.000000
+6177 3   0.000000
+6177 3240 -30.000000
+6177 3310  30.000000
+6177 3312   1.000000
+6178 0   0.000000
+6178 3   0.000000
+6178 3243 -60.000000
+6178 3313  60.000000
+6178 3315   1.000000
+6179 0   0.000000
+6179 3   0.000000
+6179 3244 -30.000000
+6179 3314  30.000000
+6179 3316   1.000000
+6180 0   0.000000
+6180 3   0.000000
+6180 3247 -60.000000
+6180 3317  60.000000
+6180 3319   1.000000
+6181 0   0.000000
+6181 3   0.000000
+6181 3248 -30.000000
+6181 3318  30.000000
+6181 3320   1.000000
+6182 0   0.000000
+6182 3   0.000000
+6182 3253 -60.000000
+6182 3323  60.000000
+6182 3325   1.000000
+6183 0   0.000000
+6183 3   0.000000
+6183 3254 -30.000000
+6183 3324  30.000000
+6183 3326   1.000000
+6184 0   0.000000
+6184 3   0.000000
+6184 3257 -60.000000
+6184 3327  60.000000
+6184 3329   1.000000
+6185 0   0.000000
+6185 3   0.000000
+6185 3258 -30.000000
+6185 3328  30.000000
+6185 3330   1.000000
+6186 0   0.000000
+6186 3   0.000000
+6186 3261 -60.000000
+6186 3331  60.000000
+6186 3333   1.000000
+6187 0   0.000000
+6187 3   0.000000
+6187 3262 -30.000000
+6187 3332  30.000000
+6187 3334   1.000000
+6188 0   0.000000
+6188 3   0.000000
+6188 3267 -60.000000
+6188 3337  60.000000
+6188 3339   1.000000
+6189 0   0.000000
+6189 3   0.000000
+6189 3268 -30.000000
+6189 3338  30.000000
+6189 3340   1.000000
+6190 0   0.000000
+6190 3   0.000000
+6190 3271 -60.000000
+6190 3341  60.000000
+6190 3343   1.000000
+6191 0   0.000000
+6191 3   0.000000
+6191 3272 -30.000000
+6191 3342  30.000000
+6191 3344   1.000000
+6192 0   0.000000
+6192 3   0.000000
+6192 3275 -60.000000
+6192 3345  60.000000
+6192 3347   1.000000
+6193 0   0.000000
+6193 3   0.000000
+6193 3276 -30.000000
+6193 3346  30.000000
+6193 3348   1.000000
+6194 0   0.000000
+6194 3   0.000000
+6194 3281 -60.000000
+6194 3351  60.000000
+6194 3353   1.000000
+6195 0   0.000000
+6195 3   0.000000
+6195 3282 -30.000000
+6195 3352  30.000000
+6195 3354   1.000000
+6196 0   0.000000
+6196 3   0.000000
+6196 3285 -60.000000
+6196 3355  60.000000
+6196 3357   1.000000
+6197 0   0.000000
+6197 3   0.000000
+6197 3286 -30.000000
+6197 3356  30.000000
+6197 3358   1.000000
+6198 0   0.000000
+6198 3   0.000000
+6198 3289 -60.000000
+6198 3359  60.000000
+6198 3361   1.000000
+6199 0   0.000000
+6199 3   0.000000
+6199 3290 -30.000000
+6199 3360  30.000000
+6199 3362   1.000000
+6200 0   0.000000
+6200 3   0.000000
+6200 3295 -60.000000
+6200 3365  60.000000
+6200 3367   1.000000
+6201 0   0.000000
+6201 3   0.000000
+6201 3296 -30.000000
+6201 3366  30.000000
+6201 3368   1.000000
+6202 0   0.000000
+6202 3   0.000000
+6202 3299 -60.000000
+6202 3369  60.000000
+6202 3371   1.000000
+6203 0   0.000000
+6203 3   0.000000
+6203 3300 -30.000000
+6203 3370  30.000000
+6203 3372   1.000000
+6204 0   0.000000
+6204 3   0.000000
+6204 3303 -60.000000
+6204 3373  60.000000
+6204 3375   1.000000
+6205 0   0.000000
+6205 3   0.000000
+6205 3304 -30.000000
+6205 3374  30.000000
+6205 3376   1.000000
+6206 0   0.000000
+6206 3   0.000000
+6206 3309 -60.000000
+6206 3379  60.000000
+6206 3381   1.000000
+6207 0   0.000000
+6207 3   0.000000
+6207 3310 -30.000000
+6207 3380  30.000000
+6207 3382   1.000000
+6208 0   0.000000
+6208 3   0.000000
+6208 3313 -60.000000
+6208 3383  60.000000
+6208 3385   1.000000
+6209 0   0.000000
+6209 3   0.000000
+6209 3314 -30.000000
+6209 3384  30.000000
+6209 3386   1.000000
+6210 0   0.000000
+6210 3   0.000000
+6210 3317 -60.000000
+6210 3387  60.000000
+6210 3389   1.000000
+6211 0   0.000000
+6211 3   0.000000
+6211 3318 -30.000000
+6211 3388  30.000000
+6211 3390   1.000000
+6212 0   0.000000
+6212 3   0.000000
+6212 3323 -60.000000
+6212 3393  60.000000
+6212 3395   1.000000
+6213 0   0.000000
+6213 3   0.000000
+6213 3324 -30.000000
+6213 3394  30.000000
+6213 3396   1.000000
+6214 0   0.000000
+6214 3   0.000000
+6214 3327 -60.000000
+6214 3397  60.000000
+6214 3399   1.000000
+6215 0   0.000000
+6215 3   0.000000
+6215 3328 -30.000000
+6215 3398  30.000000
+6215 3400   1.000000
+6216 0   0.000000
+6216 3   0.000000
+6216 3331 -60.000000
+6216 3401  60.000000
+6216 3403   1.000000
+6217 0   0.000000
+6217 3   0.000000
+6217 3332 -30.000000
+6217 3402  30.000000
+6217 3404   1.000000
+6218 0   0.000000
+6218 3   0.000000
+6218 3337 -60.000000
+6218 3407  60.000000
+6218 3409   1.000000
+6219 0   0.000000
+6219 3   0.000000
+6219 3338 -30.000000
+6219 3408  30.000000
+6219 3410   1.000000
+6220 0   0.000000
+6220 3   0.000000
+6220 3341 -60.000000
+6220 3411  60.000000
+6220 3413   1.000000
+6221 0   0.000000
+6221 3   0.000000
+6221 3342 -30.000000
+6221 3412  30.000000
+6221 3414   1.000000
+6222 0   0.000000
+6222 3   0.000000
+6222 3345 -60.000000
+6222 3415  60.000000
+6222 3417   1.000000
+6223 0   0.000000
+6223 3   0.000000
+6223 3346 -30.000000
+6223 3416  30.000000
+6223 3418   1.000000
+6224 0   0.000000
+6224 3   0.000000
+6224 3351 -60.000000
+6224 3421  60.000000
+6224 3423   1.000000
+6225 0   0.000000
+6225 3   0.000000
+6225 3352 -30.000000
+6225 3422  30.000000
+6225 3424   1.000000
+6226 0   0.000000
+6226 3   0.000000
+6226 3355 -60.000000
+6226 3425  60.000000
+6226 3427   1.000000
+6227 0   0.000000
+6227 3   0.000000
+6227 3356 -30.000000
+6227 3426  30.000000
+6227 3428   1.000000
+6228 0   0.000000
+6228 3   0.000000
+6228 3359 -60.000000
+6228 3429  60.000000
+6228 3431   1.000000
+6229 0   0.000000
+6229 3   0.000000
+6229 3360 -30.000000
+6229 3430  30.000000
+6229 3432   1.000000
+6230 0   0.000000
+6230 3   0.000000
+6230 3365 -60.000000
+6230 3435  60.000000
+6230 3437   1.000000
+6231 0   0.000000
+6231 3   0.000000
+6231 3366 -30.000000
+6231 3436  30.000000
+6231 3438   1.000000
+6232 0   0.000000
+6232 3   0.000000
+6232 3369 -60.000000
+6232 3439  60.000000
+6232 3441   1.000000
+6233 0   0.000000
+6233 3   0.000000
+6233 3370 -30.000000
+6233 3440  30.000000
+6233 3442   1.000000
+6234 0   0.000000
+6234 3   0.000000
+6234 3373 -60.000000
+6234 3443  60.000000
+6234 3445   1.000000
+6235 0   0.000000
+6235 3   0.000000
+6235 3374 -30.000000
+6235 3444  30.000000
+6235 3446   1.000000
+6236 0   0.000000
+6236 3   0.000000
+6236 3379 -60.000000
+6236 3449  60.000000
+6236 3451   1.000000
+6237 0   0.000000
+6237 3   0.000000
+6237 3380 -30.000000
+6237 3450  30.000000
+6237 3452   1.000000
+6238 0   0.000000
+6238 3   0.000000
+6238 3383 -60.000000
+6238 3453  60.000000
+6238 3455   1.000000
+6239 0   0.000000
+6239 3   0.000000
+6239 3384 -30.000000
+6239 3454  30.000000
+6239 3456   1.000000
+6240 0   0.000000
+6240 3   0.000000
+6240 3387 -60.000000
+6240 3457  60.000000
+6240 3459   1.000000
+6241 0   0.000000
+6241 3   0.000000
+6241 3388 -30.000000
+6241 3458  30.000000
+6241 3460   1.000000
+6242 0   0.000000
+6242 3   0.000000
+6242 3393 -60.000000
+6242 3463  60.000000
+6242 3465   1.000000
+6243 0   0.000000
+6243 3   0.000000
+6243 3394 -30.000000
+6243 3464  30.000000
+6243 3466   1.000000
+6244 0   0.000000
+6244 3   0.000000
+6244 3397 -60.000000
+6244 3467  60.000000
+6244 3469   1.000000
+6245 0   0.000000
+6245 3   0.000000
+6245 3398 -30.000000
+6245 3468  30.000000
+6245 3470   1.000000
+6246 0   0.000000
+6246 3   0.000000
+6246 3401 -60.000000
+6246 3471  60.000000
+6246 3473   1.000000
+6247 0   0.000000
+6247 3   0.000000
+6247 3402 -30.000000
+6247 3472  30.000000
+6247 3474   1.000000
+6248 0   0.000000
+6248 3   0.000000
+6248 3407 -60.000000
+6248 3477  60.000000
+6248 3479   1.000000
+6249 0   0.000000
+6249 3   0.000000
+6249 3408 -30.000000
+6249 3478  30.000000
+6249 3480   1.000000
+6250 0   0.000000
+6250 3   0.000000
+6250 3411 -60.000000
+6250 3481  60.000000
+6250 3483   1.000000
+6251 0   0.000000
+6251 3   0.000000
+6251 3412 -30.000000
+6251 3482  30.000000
+6251 3484   1.000000
+6252 0   0.000000
+6252 3   0.000000
+6252 3415 -60.000000
+6252 3485  60.000000
+6252 3487   1.000000
+6253 0   0.000000
+6253 3   0.000000
+6253 3416 -30.000000
+6253 3486  30.000000
+6253 3488   1.000000
+6254 0   0.000000
+6254 3   0.000000
+6254 3421 -60.000000
+6254 3491  60.000000
+6254 3493   1.000000
+6255 0   0.000000
+6255 3   0.000000
+6255 3422 -30.000000
+6255 3492  30.000000
+6255 3494   1.000000
+6256 0   0.000000
+6256 3   0.000000
+6256 3425 -60.000000
+6256 3495  60.000000
+6256 3497   1.000000
+6257 0   0.000000
+6257 3   0.000000
+6257 3426 -30.000000
+6257 3496  30.000000
+6257 3498   1.000000
+6258 0   0.000000
+6258 3   0.000000
+6258 3429 -60.000000
+6258 3499  60.000000
+6258 3501   1.000000
+6259 0   0.000000
+6259 3   0.000000
+6259 3430 -30.000000
+6259 3500  30.000000
+6259 3502   1.000000
+6260 0   0.000000
+6260 3   0.000000
+6260 3435 -60.000000
+6260 3505  60.000000
+6260 3507   1.000000
+6261 0   0.000000
+6261 3   0.000000
+6261 3436 -30.000000
+6261 3506  30.000000
+6261 3508   1.000000
+6262 0   0.000000
+6262 3   0.000000
+6262 3439 -60.000000
+6262 3509  60.000000
+6262 3511   1.000000
+6263 0   0.000000
+6263 3   0.000000
+6263 3440 -30.000000
+6263 3510  30.000000
+6263 3512   1.000000
+6264 0   0.000000
+6264 3   0.000000
+6264 3443 -60.000000
+6264 3513  60.000000
+6264 3515   1.000000
+6265 0   0.000000
+6265 3   0.000000
+6265 3444 -30.000000
+6265 3514  30.000000
+6265 3516   1.000000
+6266 0   0.000000
+6266 3   0.000000
+6266 3449 -60.000000
+6266 3519  60.000000
+6266 3521   1.000000
+6267 0   0.000000
+6267 3   0.000000
+6267 3450 -30.000000
+6267 3520  30.000000
+6267 3522   1.000000
+6268 0   0.000000
+6268 3   0.000000
+6268 3453 -60.000000
+6268 3523  60.000000
+6268 3525   1.000000
+6269 0   0.000000
+6269 3   0.000000
+6269 3454 -30.000000
+6269 3524  30.000000
+6269 3526   1.000000
+6270 0   0.000000
+6270 3   0.000000
+6270 3457 -60.000000
+6270 3527  60.000000
+6270 3529   1.000000
+6271 0   0.000000
+6271 3   0.000000
+6271 3458 -30.000000
+6271 3528  30.000000
+6271 3530   1.000000
+6272 0   0.000000
+6272 3   0.000000
+6272 3463 -60.000000
+6272 3533  60.000000
+6272 3535   1.000000
+6273 0   0.000000
+6273 3   0.000000
+6273 3464 -30.000000
+6273 3534  30.000000
+6273 3536   1.000000
+6274 0   0.000000
+6274 3   0.000000
+6274 3467 -60.000000
+6274 3537  60.000000
+6274 3539   1.000000
+6275 0   0.000000
+6275 3   0.000000
+6275 3468 -30.000000
+6275 3538  30.000000
+6275 3540   1.000000
+6276 0   0.000000
+6276 3   0.000000
+6276 3471 -60.000000
+6276 3541  60.000000
+6276 3543   1.000000
+6277 0   0.000000
+6277 3   0.000000
+6277 3472 -30.000000
+6277 3542  30.000000
+6277 3544   1.000000
+6278 0   0.000000
+6278 3   0.000000
+6278 3477 -60.000000
+6278 3547  60.000000
+6278 3549   1.000000
+6279 0   0.000000
+6279 3   0.000000
+6279 3478 -30.000000
+6279 3548  30.000000
+6279 3550   1.000000
+6280 0   0.000000
+6280 3   0.000000
+6280 3481 -60.000000
+6280 3551  60.000000
+6280 3553   1.000000
+6281 0   0.000000
+6281 3   0.000000
+6281 3482 -30.000000
+6281 3552  30.000000
+6281 3554   1.000000
+6282 0   0.000000
+6282 3   0.000000
+6282 3485 -60.000000
+6282 3555  60.000000
+6282 3557   1.000000
+6283 0   0.000000
+6283 3   0.000000
+6283 3486 -30.000000
+6283 3556  30.000000
+6283 3558   1.000000
+6284 0   0.000000
+6284 3   0.000000
+6284 3491 -60.000000
+6284 3561  60.000000
+6284 3563   1.000000
+6285 0   0.000000
+6285 3   0.000000
+6285 3492 -30.000000
+6285 3562  30.000000
+6285 3564   1.000000
+6286 0   0.000000
+6286 3   0.000000
+6286 3495 -60.000000
+6286 3565  60.000000
+6286 3567   1.000000
+6287 0   0.000000
+6287 3   0.000000
+6287 3496 -30.000000
+6287 3566  30.000000
+6287 3568   1.000000
+6288 0   0.000000
+6288 3   0.000000
+6288 3499 -60.000000
+6288 3569  60.000000
+6288 3571   1.000000
+6289 0   0.000000
+6289 3   0.000000
+6289 3500 -30.000000
+6289 3570  30.000000
+6289 3572   1.000000
+6290 0   0.000000
+6290 3   0.000000
+6290 3505 -60.000000
+6290 3575  60.000000
+6290 3577   1.000000
+6291 0   0.000000
+6291 3   0.000000
+6291 3506 -30.000000
+6291 3576  30.000000
+6291 3578   1.000000
+6292 0   0.000000
+6292 3   0.000000
+6292 3509 -60.000000
+6292 3579  60.000000
+6292 3581   1.000000
+6293 0   0.000000
+6293 3   0.000000
+6293 3510 -30.000000
+6293 3580  30.000000
+6293 3582   1.000000
+6294 0   0.000000
+6294 3   0.000000
+6294 3513 -60.000000
+6294 3583  60.000000
+6294 3585   1.000000
+6295 0   0.000000
+6295 3   0.000000
+6295 3514 -30.000000
+6295 3584  30.000000
+6295 3586   1.000000
+6296 0   0.000000
+6296 3   0.000000
+6296 3519 -60.000000
+6296 3589  60.000000
+6296 3591   1.000000
+6297 0   0.000000
+6297 3   0.000000
+6297 3520 -30.000000
+6297 3590  30.000000
+6297 3592   1.000000
+6298 0   0.000000
+6298 3   0.000000
+6298 3523 -60.000000
+6298 3593  60.000000
+6298 3595   1.000000
+6299 0   0.000000
+6299 3   0.000000
+6299 3524 -30.000000
+6299 3594  30.000000
+6299 3596   1.000000
+6300 0   0.000000
+6300 3   0.000000
+6300 3527 -60.000000
+6300 3597  60.000000
+6300 3599   1.000000
+6301 0   0.000000
+6301 3   0.000000
+6301 3528 -30.000000
+6301 3598  30.000000
+6301 3600   1.000000
+6302 0   0.000000
+6302 3   0.000000
+6302 3533 -60.000000
+6302 3603  60.000000
+6302 3605   1.000000
+6303 0   0.000000
+6303 3   0.000000
+6303 3534 -30.000000
+6303 3604  30.000000
+6303 3606   1.000000
+6304 0   0.000000
+6304 3   0.000000
+6304 3537 -60.000000
+6304 3607  60.000000
+6304 3609   1.000000
+6305 0   0.000000
+6305 3   0.000000
+6305 3538 -30.000000
+6305 3608  30.000000
+6305 3610   1.000000
+6306 0   0.000000
+6306 3   0.000000
+6306 3541 -60.000000
+6306 3611  60.000000
+6306 3613   1.000000
+6307 0   0.000000
+6307 3   0.000000
+6307 3542 -30.000000
+6307 3612  30.000000
+6307 3614   1.000000
+6308 0   0.000000
+6308 3   0.000000
+6308 3547 -60.000000
+6308 3617  60.000000
+6308 3619   1.000000
+6309 0   0.000000
+6309 3   0.000000
+6309 3548 -30.000000
+6309 3618  30.000000
+6309 3620   1.000000
+6310 0   0.000000
+6310 3   0.000000
+6310 3551 -60.000000
+6310 3621  60.000000
+6310 3623   1.000000
+6311 0   0.000000
+6311 3   0.000000
+6311 3552 -30.000000
+6311 3622  30.000000
+6311 3624   1.000000
+6312 0   0.000000
+6312 3   0.000000
+6312 3555 -60.000000
+6312 3625  60.000000
+6312 3627   1.000000
+6313 0   0.000000
+6313 3   0.000000
+6313 3556 -30.000000
+6313 3626  30.000000
+6313 3628   1.000000
+6314 0   0.000000
+6314 3   0.000000
+6314 3561 -60.000000
+6314 3631  60.000000
+6314 3633   1.000000
+6315 0   0.000000
+6315 3   0.000000
+6315 3562 -30.000000
+6315 3632  30.000000
+6315 3634   1.000000
+6316 0   0.000000
+6316 3   0.000000
+6316 3565 -60.000000
+6316 3635  60.000000
+6316 3637   1.000000
+6317 0   0.000000
+6317 3   0.000000
+6317 3566 -30.000000
+6317 3636  30.000000
+6317 3638   1.000000
+6318 0   0.000000
+6318 3   0.000000
+6318 3569 -60.000000
+6318 3639  60.000000
+6318 3641   1.000000
+6319 0   0.000000
+6319 3   0.000000
+6319 3570 -30.000000
+6319 3640  30.000000
+6319 3642   1.000000
+6320 0   0.000000
+6320 3   0.000000
+6320 3575 -60.000000
+6320 3645  60.000000
+6320 3647   1.000000
+6321 0   0.000000
+6321 3   0.000000
+6321 3576 -30.000000
+6321 3646  30.000000
+6321 3648   1.000000
+6322 0   0.000000
+6322 3   0.000000
+6322 3579 -60.000000
+6322 3649  60.000000
+6322 3651   1.000000
+6323 0   0.000000
+6323 3   0.000000
+6323 3580 -30.000000
+6323 3650  30.000000
+6323 3652   1.000000
+6324 0   0.000000
+6324 3   0.000000
+6324 3583 -60.000000
+6324 3653  60.000000
+6324 3655   1.000000
+6325 0   0.000000
+6325 3   0.000000
+6325 3584 -30.000000
+6325 3654  30.000000
+6325 3656   1.000000
+6326 0   0.000000
+6326 3   0.000000
+6326 3589 -60.000000
+6326 3659  60.000000
+6326 3661   1.000000
+6327 0   0.000000
+6327 3   0.000000
+6327 3590 -30.000000
+6327 3660  30.000000
+6327 3662   1.000000
+6328 0   0.000000
+6328 3   0.000000
+6328 3593 -60.000000
+6328 3663  60.000000
+6328 3665   1.000000
+6329 0   0.000000
+6329 3   0.000000
+6329 3594 -30.000000
+6329 3664  30.000000
+6329 3666   1.000000
+6330 0   0.000000
+6330 3   0.000000
+6330 3597 -60.000000
+6330 3667  60.000000
+6330 3669   1.000000
+6331 0   0.000000
+6331 3   0.000000
+6331 3598 -30.000000
+6331 3668  30.000000
+6331 3670   1.000000
+6332 0   0.000000
+6332 3   0.000000
+6332 3603 -60.000000
+6332 3673  60.000000
+6332 3675   1.000000
+6333 0   0.000000
+6333 3   0.000000
+6333 3604 -30.000000
+6333 3674  30.000000
+6333 3676   1.000000
+6334 0   0.000000
+6334 3   0.000000
+6334 3607 -60.000000
+6334 3677  60.000000
+6334 3679   1.000000
+6335 0   0.000000
+6335 3   0.000000
+6335 3608 -30.000000
+6335 3678  30.000000
+6335 3680   1.000000
+6336 0   0.000000
+6336 3   0.000000
+6336 3611 -60.000000
+6336 3681  60.000000
+6336 3683   1.000000
+6337 0   0.000000
+6337 3   0.000000
+6337 3612 -30.000000
+6337 3682  30.000000
+6337 3684   1.000000
+6338 0   0.000000
+6338 3   0.000000
+6338 3617 -60.000000
+6338 3687  60.000000
+6338 3689   1.000000
+6339 0   0.000000
+6339 3   0.000000
+6339 3618 -30.000000
+6339 3688  30.000000
+6339 3690   1.000000
+6340 0   0.000000
+6340 3   0.000000
+6340 3621 -60.000000
+6340 3691  60.000000
+6340 3693   1.000000
+6341 0   0.000000
+6341 3   0.000000
+6341 3622 -30.000000
+6341 3692  30.000000
+6341 3694   1.000000
+6342 0   0.000000
+6342 3   0.000000
+6342 3625 -60.000000
+6342 3695  60.000000
+6342 3697   1.000000
+6343 0   0.000000
+6343 3   0.000000
+6343 3626 -30.000000
+6343 3696  30.000000
+6343 3698   1.000000
+6344 0   0.000000
+6344 3   0.000000
+6344 3631 -60.000000
+6344 3701  60.000000
+6344 3703   1.000000
+6345 0   0.000000
+6345 3   0.000000
+6345 3632 -30.000000
+6345 3702  30.000000
+6345 3704   1.000000
+6346 0   0.000000
+6346 3   0.000000
+6346 3635 -60.000000
+6346 3705  60.000000
+6346 3707   1.000000
+6347 0   0.000000
+6347 3   0.000000
+6347 3636 -30.000000
+6347 3706  30.000000
+6347 3708   1.000000
+6348 0   0.000000
+6348 3   0.000000
+6348 3639 -60.000000
+6348 3709  60.000000
+6348 3711   1.000000
+6349 0   0.000000
+6349 3   0.000000
+6349 3640 -30.000000
+6349 3710  30.000000
+6349 3712   1.000000
+6350 0   0.000000
+6350 3   0.000000
+6350 3645 -60.000000
+6350 3715  60.000000
+6350 3717   1.000000
+6351 0   0.000000
+6351 3   0.000000
+6351 3646 -30.000000
+6351 3716  30.000000
+6351 3718   1.000000
+6352 0   0.000000
+6352 3   0.000000
+6352 3649 -60.000000
+6352 3719  60.000000
+6352 3721   1.000000
+6353 0   0.000000
+6353 3   0.000000
+6353 3650 -30.000000
+6353 3720  30.000000
+6353 3722   1.000000
+6354 0   0.000000
+6354 3   0.000000
+6354 3653 -60.000000
+6354 3723  60.000000
+6354 3725   1.000000
+6355 0   0.000000
+6355 3   0.000000
+6355 3654 -30.000000
+6355 3724  30.000000
+6355 3726   1.000000
+6356 0   0.000000
+6356 3   0.000000
+6356 3659 -60.000000
+6356 3729  60.000000
+6356 3731   1.000000
+6357 0   0.000000
+6357 3   0.000000
+6357 3660 -30.000000
+6357 3730  30.000000
+6357 3732   1.000000
+6358 0   0.000000
+6358 3   0.000000
+6358 3663 -60.000000
+6358 3733  60.000000
+6358 3735   1.000000
+6359 0   0.000000
+6359 3   0.000000
+6359 3664 -30.000000
+6359 3734  30.000000
+6359 3736   1.000000
+6360 0   0.000000
+6360 3   0.000000
+6360 3667 -60.000000
+6360 3737  60.000000
+6360 3739   1.000000
+6361 0   0.000000
+6361 3   0.000000
+6361 3668 -30.000000
+6361 3738  30.000000
+6361 3740   1.000000
+6362 0   0.000000
+6362 3   0.000000
+6362 3673 -60.000000
+6362 3743  60.000000
+6362 3745   1.000000
+6363 0   0.000000
+6363 3   0.000000
+6363 3674 -30.000000
+6363 3744  30.000000
+6363 3746   1.000000
+6364 0   0.000000
+6364 3   0.000000
+6364 3677 -60.000000
+6364 3747  60.000000
+6364 3749   1.000000
+6365 0   0.000000
+6365 3   0.000000
+6365 3678 -30.000000
+6365 3748  30.000000
+6365 3750   1.000000
+6366 0   0.000000
+6366 3   0.000000
+6366 3681 -60.000000
+6366 3751  60.000000
+6366 3753   1.000000
+6367 0   0.000000
+6367 3   0.000000
+6367 3682 -30.000000
+6367 3752  30.000000
+6367 3754   1.000000
+6368 0   0.000000
+6368 3   0.000000
+6368 3687 -60.000000
+6368 3757  60.000000
+6368 3759   1.000000
+6369 0   0.000000
+6369 3   0.000000
+6369 3688 -30.000000
+6369 3758  30.000000
+6369 3760   1.000000
+6370 0   0.000000
+6370 3   0.000000
+6370 3691 -60.000000
+6370 3761  60.000000
+6370 3763   1.000000
+6371 0   0.000000
+6371 3   0.000000
+6371 3692 -30.000000
+6371 3762  30.000000
+6371 3764   1.000000
+6372 0   0.000000
+6372 3   0.000000
+6372 3695 -60.000000
+6372 3765  60.000000
+6372 3767   1.000000
+6373 0   0.000000
+6373 3   0.000000
+6373 3696 -30.000000
+6373 3766  30.000000
+6373 3768   1.000000
+6374 0   0.000000
+6374 3   0.000000
+6374 3701 -60.000000
+6374 3771  60.000000
+6374 3773   1.000000
+6375 0   0.000000
+6375 3   0.000000
+6375 3702 -30.000000
+6375 3772  30.000000
+6375 3774   1.000000
+6376 0   0.000000
+6376 3   0.000000
+6376 3705 -60.000000
+6376 3775  60.000000
+6376 3777   1.000000
+6377 0   0.000000
+6377 3   0.000000
+6377 3706 -30.000000
+6377 3776  30.000000
+6377 3778   1.000000
+6378 0   0.000000
+6378 3   0.000000
+6378 3709 -60.000000
+6378 3779  60.000000
+6378 3781   1.000000
+6379 0   0.000000
+6379 3   0.000000
+6379 3710 -30.000000
+6379 3780  30.000000
+6379 3782   1.000000
+6380 0   0.000000
+6380 3   0.000000
+6380 3715 -60.000000
+6380 3785  60.000000
+6380 3787   1.000000
+6381 0   0.000000
+6381 3   0.000000
+6381 3716 -30.000000
+6381 3786  30.000000
+6381 3788   1.000000
+6382 0   0.000000
+6382 3   0.000000
+6382 3719 -60.000000
+6382 3789  60.000000
+6382 3791   1.000000
+6383 0   0.000000
+6383 3   0.000000
+6383 3720 -30.000000
+6383 3790  30.000000
+6383 3792   1.000000
+6384 0   0.000000
+6384 3   0.000000
+6384 3723 -60.000000
+6384 3793  60.000000
+6384 3795   1.000000
+6385 0   0.000000
+6385 3   0.000000
+6385 3724 -30.000000
+6385 3794  30.000000
+6385 3796   1.000000
+6386 0   0.000000
+6386 3   0.000000
+6386 3729 -60.000000
+6386 3799  60.000000
+6386 3801   1.000000
+6387 0   0.000000
+6387 3   0.000000
+6387 3730 -30.000000
+6387 3800  30.000000
+6387 3802   1.000000
+6388 0   0.000000
+6388 3   0.000000
+6388 3733 -60.000000
+6388 3803  60.000000
+6388 3805   1.000000
+6389 0   0.000000
+6389 3   0.000000
+6389 3734 -30.000000
+6389 3804  30.000000
+6389 3806   1.000000
+6390 0   0.000000
+6390 3   0.000000
+6390 3737 -60.000000
+6390 3807  60.000000
+6390 3809   1.000000
+6391 0   0.000000
+6391 3   0.000000
+6391 3738 -30.000000
+6391 3808  30.000000
+6391 3810   1.000000
+6392 0   0.000000
+6392 3   0.000000
+6392 3743 -60.000000
+6392 3813  60.000000
+6392 3815   1.000000
+6393 0   0.000000
+6393 3   0.000000
+6393 3744 -30.000000
+6393 3814  30.000000
+6393 3816   1.000000
+6394 0   0.000000
+6394 3   0.000000
+6394 3747 -60.000000
+6394 3817  60.000000
+6394 3819   1.000000
+6395 0   0.000000
+6395 3   0.000000
+6395 3748 -30.000000
+6395 3818  30.000000
+6395 3820   1.000000
+6396 0   0.000000
+6396 3   0.000000
+6396 3751 -60.000000
+6396 3821  60.000000
+6396 3823   1.000000
+6397 0   0.000000
+6397 3   0.000000
+6397 3752 -30.000000
+6397 3822  30.000000
+6397 3824   1.000000
+6398 0   0.000000
+6398 3   0.000000
+6398 3757 -60.000000
+6398 3827  60.000000
+6398 3829   1.000000
+6399 0   0.000000
+6399 3   0.000000
+6399 3758 -30.000000
+6399 3828  30.000000
+6399 3830   1.000000
+6400 0   0.000000
+6400 3   0.000000
+6400 3761 -60.000000
+6400 3831  60.000000
+6400 3833   1.000000
+6401 0   0.000000
+6401 3   0.000000
+6401 3762 -30.000000
+6401 3832  30.000000
+6401 3834   1.000000
+6402 0   0.000000
+6402 3   0.000000
+6402 3765 -60.000000
+6402 3835  60.000000
+6402 3837   1.000000
+6403 0   0.000000
+6403 3   0.000000
+6403 3766 -30.000000
+6403 3836  30.000000
+6403 3838   1.000000
+6404 0   0.000000
+6404 3   0.000000
+6404 3771 -60.000000
+6404 3841  60.000000
+6404 3843   1.000000
+6405 0   0.000000
+6405 3   0.000000
+6405 3772 -30.000000
+6405 3842  30.000000
+6405 3844   1.000000
+6406 0   0.000000
+6406 3   0.000000
+6406 3775 -60.000000
+6406 3845  60.000000
+6406 3847   1.000000
+6407 0   0.000000
+6407 3   0.000000
+6407 3776 -30.000000
+6407 3846  30.000000
+6407 3848   1.000000
+6408 0   0.000000
+6408 3   0.000000
+6408 3779 -60.000000
+6408 3849  60.000000
+6408 3851   1.000000
+6409 0   0.000000
+6409 3   0.000000
+6409 3780 -30.000000
+6409 3850  30.000000
+6409 3852   1.000000
+6410 0   0.000000
+6410 3   0.000000
+6410 3785 -60.000000
+6410 3855  60.000000
+6410 3857   1.000000
+6411 0   0.000000
+6411 3   0.000000
+6411 3786 -30.000000
+6411 3856  30.000000
+6411 3858   1.000000
+6412 0   0.000000
+6412 3   0.000000
+6412 3789 -60.000000
+6412 3859  60.000000
+6412 3861   1.000000
+6413 0   0.000000
+6413 3   0.000000
+6413 3790 -30.000000
+6413 3860  30.000000
+6413 3862   1.000000
+6414 0   0.000000
+6414 3   0.000000
+6414 3793 -60.000000
+6414 3863  60.000000
+6414 3865   1.000000
+6415 0   0.000000
+6415 3   0.000000
+6415 3794 -30.000000
+6415 3864  30.000000
+6415 3866   1.000000
+6416 0   0.000000
+6416 3   0.000000
+6416 3799 -60.000000
+6416 3869  60.000000
+6416 3871   1.000000
+6417 0   0.000000
+6417 3   0.000000
+6417 3800 -30.000000
+6417 3870  30.000000
+6417 3872   1.000000
+6418 0   0.000000
+6418 3   0.000000
+6418 3803 -60.000000
+6418 3873  60.000000
+6418 3875   1.000000
+6419 0   0.000000
+6419 3   0.000000
+6419 3804 -30.000000
+6419 3874  30.000000
+6419 3876   1.000000
+6420 0   0.000000
+6420 3   0.000000
+6420 3807 -60.000000
+6420 3877  60.000000
+6420 3879   1.000000
+6421 0   0.000000
+6421 3   0.000000
+6421 3808 -30.000000
+6421 3878  30.000000
+6421 3880   1.000000
+6422 0   0.000000
+6422 3   0.000000
+6422 3813 -60.000000
+6422 3883  60.000000
+6422 3885   1.000000
+6423 0   0.000000
+6423 3   0.000000
+6423 3814 -30.000000
+6423 3884  30.000000
+6423 3886   1.000000
+6424 0   0.000000
+6424 3   0.000000
+6424 3817 -60.000000
+6424 3887  60.000000
+6424 3889   1.000000
+6425 0   0.000000
+6425 3   0.000000
+6425 3818 -30.000000
+6425 3888  30.000000
+6425 3890   1.000000
+6426 0   0.000000
+6426 3   0.000000
+6426 3821 -60.000000
+6426 3891  60.000000
+6426 3893   1.000000
+6427 0   0.000000
+6427 3   0.000000
+6427 3822 -30.000000
+6427 3892  30.000000
+6427 3894   1.000000
+6428 0   0.000000
+6428 3   0.000000
+6428 3827 -60.000000
+6428 3897  60.000000
+6428 3899   1.000000
+6429 0   0.000000
+6429 3   0.000000
+6429 3828 -30.000000
+6429 3898  30.000000
+6429 3900   1.000000
+6430 0   0.000000
+6430 3   0.000000
+6430 3831 -60.000000
+6430 3901  60.000000
+6430 3903   1.000000
+6431 0   0.000000
+6431 3   0.000000
+6431 3832 -30.000000
+6431 3902  30.000000
+6431 3904   1.000000
+6432 0   0.000000
+6432 3   0.000000
+6432 3835 -60.000000
+6432 3905  60.000000
+6432 3907   1.000000
+6433 0   0.000000
+6433 3   0.000000
+6433 3836 -30.000000
+6433 3906  30.000000
+6433 3908   1.000000
+6434 0   0.000000
+6434 3   0.000000
+6434 3841 -60.000000
+6434 3911  60.000000
+6434 3913   1.000000
+6435 0   0.000000
+6435 3   0.000000
+6435 3842 -30.000000
+6435 3912  30.000000
+6435 3914   1.000000
+6436 0   0.000000
+6436 3   0.000000
+6436 3845 -60.000000
+6436 3915  60.000000
+6436 3917   1.000000
+6437 0   0.000000
+6437 3   0.000000
+6437 3846 -30.000000
+6437 3916  30.000000
+6437 3918   1.000000
+6438 0   0.000000
+6438 3   0.000000
+6438 3849 -60.000000
+6438 3919  60.000000
+6438 3921   1.000000
+6439 0   0.000000
+6439 3   0.000000
+6439 3850 -30.000000
+6439 3920  30.000000
+6439 3922   1.000000
+6440 0   0.000000
+6440 3   0.000000
+6440 3855 -60.000000
+6440 3925  60.000000
+6440 3927   1.000000
+6441 0   0.000000
+6441 3   0.000000
+6441 3856 -30.000000
+6441 3926  30.000000
+6441 3928   1.000000
+6442 0   0.000000
+6442 3   0.000000
+6442 3859 -60.000000
+6442 3929  60.000000
+6442 3931   1.000000
+6443 0   0.000000
+6443 3   0.000000
+6443 3860 -30.000000
+6443 3930  30.000000
+6443 3932   1.000000
+6444 0   0.000000
+6444 3   0.000000
+6444 3863 -60.000000
+6444 3933  60.000000
+6444 3935   1.000000
+6445 0   0.000000
+6445 3   0.000000
+6445 3864 -30.000000
+6445 3934  30.000000
+6445 3936   1.000000
+6446 0   0.000000
+6446 3   0.000000
+6446 3869 -60.000000
+6446 3939  60.000000
+6446 3941   1.000000
+6447 0   0.000000
+6447 3   0.000000
+6447 3870 -30.000000
+6447 3940  30.000000
+6447 3942   1.000000
+6448 0   0.000000
+6448 3   0.000000
+6448 3873 -60.000000
+6448 3943  60.000000
+6448 3945   1.000000
+6449 0   0.000000
+6449 3   0.000000
+6449 3874 -30.000000
+6449 3944  30.000000
+6449 3946   1.000000
+6450 0   0.000000
+6450 3   0.000000
+6450 3877 -60.000000
+6450 3947  60.000000
+6450 3949   1.000000
+6451 0   0.000000
+6451 3   0.000000
+6451 3878 -30.000000
+6451 3948  30.000000
+6451 3950   1.000000
+6452 0   0.000000
+6452 3   0.000000
+6452 3883 -60.000000
+6452 3953  60.000000
+6452 3955   1.000000
+6453 0   0.000000
+6453 3   0.000000
+6453 3884 -30.000000
+6453 3954  30.000000
+6453 3956   1.000000
+6454 0   0.000000
+6454 3   0.000000
+6454 3887 -60.000000
+6454 3957  60.000000
+6454 3959   1.000000
+6455 0   0.000000
+6455 3   0.000000
+6455 3888 -30.000000
+6455 3958  30.000000
+6455 3960   1.000000
+6456 0   0.000000
+6456 3   0.000000
+6456 3891 -60.000000
+6456 3961  60.000000
+6456 3963   1.000000
+6457 0   0.000000
+6457 3   0.000000
+6457 3892 -30.000000
+6457 3962  30.000000
+6457 3964   1.000000
+6458 0   0.000000
+6458 3   0.000000
+6458 3897 -60.000000
+6458 3967  60.000000
+6458 3969   1.000000
+6459 0   0.000000
+6459 3   0.000000
+6459 3898 -30.000000
+6459 3968  30.000000
+6459 3970   1.000000
+6460 0   0.000000
+6460 3   0.000000
+6460 3901 -60.000000
+6460 3971  60.000000
+6460 3973   1.000000
+6461 0   0.000000
+6461 3   0.000000
+6461 3902 -30.000000
+6461 3972  30.000000
+6461 3974   1.000000
+6462 0   0.000000
+6462 3   0.000000
+6462 3905 -60.000000
+6462 3975  60.000000
+6462 3977   1.000000
+6463 0   0.000000
+6463 3   0.000000
+6463 3906 -30.000000
+6463 3976  30.000000
+6463 3978   1.000000
+6464 0   0.000000
+6464 3   0.000000
+6464 3911 -60.000000
+6464 3981  60.000000
+6464 3983   1.000000
+6465 0   0.000000
+6465 3   0.000000
+6465 3912 -30.000000
+6465 3982  30.000000
+6465 3984   1.000000
+6466 0   0.000000
+6466 3   0.000000
+6466 3915 -60.000000
+6466 3985  60.000000
+6466 3987   1.000000
+6467 0   0.000000
+6467 3   0.000000
+6467 3916 -30.000000
+6467 3986  30.000000
+6467 3988   1.000000
+6468 0   0.000000
+6468 3   0.000000
+6468 3919 -60.000000
+6468 3989  60.000000
+6468 3991   1.000000
+6469 0   0.000000
+6469 3   0.000000
+6469 3920 -30.000000
+6469 3990  30.000000
+6469 3992   1.000000
+6470 0   0.000000
+6470 3   0.000000
+6470 3925 -60.000000
+6470 3995  60.000000
+6470 3997   1.000000
+6471 0   0.000000
+6471 3   0.000000
+6471 3926 -30.000000
+6471 3996  30.000000
+6471 3998   1.000000
+6472 0   0.000000
+6472 3   0.000000
+6472 3929 -60.000000
+6472 3999  60.000000
+6472 4001   1.000000
+6473 0   0.000000
+6473 3   0.000000
+6473 3930 -30.000000
+6473 4000  30.000000
+6473 4002   1.000000
+6474 0   0.000000
+6474 3   0.000000
+6474 3933 -60.000000
+6474 4003  60.000000
+6474 4005   1.000000
+6475 0   0.000000
+6475 3   0.000000
+6475 3934 -30.000000
+6475 4004  30.000000
+6475 4006   1.000000
+6476 0   0.000000
+6476 3   0.000000
+6476 3939 -60.000000
+6476 4009  60.000000
+6476 4011   1.000000
+6477 0   0.000000
+6477 3   0.000000
+6477 3940 -30.000000
+6477 4010  30.000000
+6477 4012   1.000000
+6478 0   0.000000
+6478 3   0.000000
+6478 3943 -60.000000
+6478 4013  60.000000
+6478 4015   1.000000
+6479 0   0.000000
+6479 3   0.000000
+6479 3944 -30.000000
+6479 4014  30.000000
+6479 4016   1.000000
+6480 0   0.000000
+6480 3   0.000000
+6480 3947 -60.000000
+6480 4017  60.000000
+6480 4019   1.000000
+6481 0   0.000000
+6481 3   0.000000
+6481 3948 -30.000000
+6481 4018  30.000000
+6481 4020   1.000000
+6482 0   0.000000
+6482 3   0.000000
+6482 3953 -60.000000
+6482 4023  60.000000
+6482 4025   1.000000
+6483 0   0.000000
+6483 3   0.000000
+6483 3954 -30.000000
+6483 4024  30.000000
+6483 4026   1.000000
+6484 0   0.000000
+6484 3   0.000000
+6484 3957 -60.000000
+6484 4027  60.000000
+6484 4029   1.000000
+6485 0   0.000000
+6485 3   0.000000
+6485 3958 -30.000000
+6485 4028  30.000000
+6485 4030   1.000000
+6486 0   0.000000
+6486 3   0.000000
+6486 3961 -60.000000
+6486 4031  60.000000
+6486 4033   1.000000
+6487 0   0.000000
+6487 3   0.000000
+6487 3962 -30.000000
+6487 4032  30.000000
+6487 4034   1.000000
+6488 0   0.000000
+6488 3   0.000000
+6488 3967 -60.000000
+6488 4037  60.000000
+6488 4039   1.000000
+6489 0   0.000000
+6489 3   0.000000
+6489 3968 -30.000000
+6489 4038  30.000000
+6489 4040   1.000000
+6490 0   0.000000
+6490 3   0.000000
+6490 3971 -60.000000
+6490 4041  60.000000
+6490 4043   1.000000
+6491 0   0.000000
+6491 3   0.000000
+6491 3972 -30.000000
+6491 4042  30.000000
+6491 4044   1.000000
+6492 0   0.000000
+6492 3   0.000000
+6492 3975 -60.000000
+6492 4045  60.000000
+6492 4047   1.000000
+6493 0   0.000000
+6493 3   0.000000
+6493 3976 -30.000000
+6493 4046  30.000000
+6493 4048   1.000000
+6494 0   0.000000
+6494 3   0.000000
+6494 3981 -60.000000
+6494 4051  60.000000
+6494 4053   1.000000
+6495 0   0.000000
+6495 3   0.000000
+6495 3982 -30.000000
+6495 4052  30.000000
+6495 4054   1.000000
+6496 0   0.000000
+6496 3   0.000000
+6496 3985 -60.000000
+6496 4055  60.000000
+6496 4057   1.000000
+6497 0   0.000000
+6497 3   0.000000
+6497 3986 -30.000000
+6497 4056  30.000000
+6497 4058   1.000000
+6498 0   0.000000
+6498 3   0.000000
+6498 3989 -60.000000
+6498 4059  60.000000
+6498 4061   1.000000
+6499 0   0.000000
+6499 3   0.000000
+6499 3990 -30.000000
+6499 4060  30.000000
+6499 4062   1.000000
+6500 0   0.000000
+6500 3   0.000000
+6500 3995 -60.000000
+6500 4065  60.000000
+6500 4067   1.000000
+6501 0   0.000000
+6501 3   0.000000
+6501 3996 -30.000000
+6501 4066  30.000000
+6501 4068   1.000000
+6502 0   0.000000
+6502 3   0.000000
+6502 3999 -60.000000
+6502 4069  60.000000
+6502 4071   1.000000
+6503 0   0.000000
+6503 3   0.000000
+6503 4000 -30.000000
+6503 4070  30.000000
+6503 4072   1.000000
+6504 0   0.000000
+6504 3   0.000000
+6504 4003 -60.000000
+6504 4073  60.000000
+6504 4075   1.000000
+6505 0   0.000000
+6505 3   0.000000
+6505 4004 -30.000000
+6505 4074  30.000000
+6505 4076   1.000000
+6506 0   0.000000
+6506 3   0.000000
+6506 4009 -60.000000
+6506 4079  60.000000
+6506 4081   1.000000
+6507 0   0.000000
+6507 3   0.000000
+6507 4010 -30.000000
+6507 4080  30.000000
+6507 4082   1.000000
+6508 0   0.000000
+6508 3   0.000000
+6508 4013 -60.000000
+6508 4083  60.000000
+6508 4085   1.000000
+6509 0   0.000000
+6509 3   0.000000
+6509 4014 -30.000000
+6509 4084  30.000000
+6509 4086   1.000000
+6510 0   0.000000
+6510 3   0.000000
+6510 4017 -60.000000
+6510 4087  60.000000
+6510 4089   1.000000
+6511 0   0.000000
+6511 3   0.000000
+6511 4018 -30.000000
+6511 4088  30.000000
+6511 4090   1.000000
+6512 0   0.000000
+6512 3   0.000000
+6512 4023 -60.000000
+6512 4093  60.000000
+6512 4095   1.000000
+6513 0   0.000000
+6513 3   0.000000
+6513 4024 -30.000000
+6513 4094  30.000000
+6513 4096   1.000000
+6514 0   0.000000
+6514 3   0.000000
+6514 4027 -60.000000
+6514 4097  60.000000
+6514 4099   1.000000
+6515 0   0.000000
+6515 3   0.000000
+6515 4028 -30.000000
+6515 4098  30.000000
+6515 4100   1.000000
+6516 0   0.000000
+6516 3   0.000000
+6516 4031 -60.000000
+6516 4101  60.000000
+6516 4103   1.000000
+6517 0   0.000000
+6517 3   0.000000
+6517 4032 -30.000000
+6517 4102  30.000000
+6517 4104   1.000000
+6518 0   0.000000
+6518 3   0.000000
+6518 4037 -60.000000
+6518 4107  60.000000
+6518 4109   1.000000
+6519 0   0.000000
+6519 3   0.000000
+6519 4038 -30.000000
+6519 4108  30.000000
+6519 4110   1.000000
+6520 0   0.000000
+6520 3   0.000000
+6520 4041 -60.000000
+6520 4111  60.000000
+6520 4113   1.000000
+6521 0   0.000000
+6521 3   0.000000
+6521 4042 -30.000000
+6521 4112  30.000000
+6521 4114   1.000000
+6522 0   0.000000
+6522 3   0.000000
+6522 4045 -60.000000
+6522 4115  60.000000
+6522 4117   1.000000
+6523 0   0.000000
+6523 3   0.000000
+6523 4046 -30.000000
+6523 4116  30.000000
+6523 4118   1.000000
+6524 0   0.000000
+6524 3   0.000000
+6524 4051 -60.000000
+6524 4121  60.000000
+6524 4123   1.000000
+6525 0   0.000000
+6525 3   0.000000
+6525 4052 -30.000000
+6525 4122  30.000000
+6525 4124   1.000000
+6526 0   0.000000
+6526 3   0.000000
+6526 4055 -60.000000
+6526 4125  60.000000
+6526 4127   1.000000
+6527 0   0.000000
+6527 3   0.000000
+6527 4056 -30.000000
+6527 4126  30.000000
+6527 4128   1.000000
+6528 0   0.000000
+6528 3   0.000000
+6528 4059 -60.000000
+6528 4129  60.000000
+6528 4131   1.000000
+6529 0   0.000000
+6529 3   0.000000
+6529 4060 -30.000000
+6529 4130  30.000000
+6529 4132   1.000000
+6530 0   0.000000
+6530 3   0.000000
+6530 4065 -60.000000
+6530 4135  60.000000
+6530 4137   1.000000
+6531 0   0.000000
+6531 3   0.000000
+6531 4066 -30.000000
+6531 4136  30.000000
+6531 4138   1.000000
+6532 0   0.000000
+6532 3   0.000000
+6532 4069 -60.000000
+6532 4139  60.000000
+6532 4141   1.000000
+6533 0   0.000000
+6533 3   0.000000
+6533 4070 -30.000000
+6533 4140  30.000000
+6533 4142   1.000000
+6534 0   0.000000
+6534 3   0.000000
+6534 4073 -60.000000
+6534 4143  60.000000
+6534 4145   1.000000
+6535 0   0.000000
+6535 3   0.000000
+6535 4074 -30.000000
+6535 4144  30.000000
+6535 4146   1.000000
+6536 0   0.000000
+6536 3   0.000000
+6536 4079 -60.000000
+6536 4149  60.000000
+6536 4151   1.000000
+6537 0   0.000000
+6537 3   0.000000
+6537 4080 -30.000000
+6537 4150  30.000000
+6537 4152   1.000000
+6538 0   0.000000
+6538 3   0.000000
+6538 4083 -60.000000
+6538 4153  60.000000
+6538 4155   1.000000
+6539 0   0.000000
+6539 3   0.000000
+6539 4084 -30.000000
+6539 4154  30.000000
+6539 4156   1.000000
+6540 0   0.000000
+6540 3   0.000000
+6540 4087 -60.000000
+6540 4157  60.000000
+6540 4159   1.000000
+6541 0   0.000000
+6541 3   0.000000
+6541 4088 -30.000000
+6541 4158  30.000000
+6541 4160   1.000000
+6542 0   0.000000
+6542 3   0.000000
+6542 4093 -60.000000
+6542 4163  60.000000
+6542 4165   1.000000
+6543 0   0.000000
+6543 3   0.000000
+6543 4094 -30.000000
+6543 4164  30.000000
+6543 4166   1.000000
+6544 0   0.000000
+6544 3   0.000000
+6544 4097 -60.000000
+6544 4167  60.000000
+6544 4169   1.000000
+6545 0   0.000000
+6545 3   0.000000
+6545 4098 -30.000000
+6545 4168  30.000000
+6545 4170   1.000000
+6546 0   0.000000
+6546 3   0.000000
+6546 4101 -60.000000
+6546 4171  60.000000
+6546 4173   1.000000
+6547 0   0.000000
+6547 3   0.000000
+6547 4102 -30.000000
+6547 4172  30.000000
+6547 4174   1.000000
+6548 0   0.000000
+6548 3   0.000000
+6548 4107 -60.000000
+6548 4177  60.000000
+6548 4179   1.000000
+6549 0   0.000000
+6549 3   0.000000
+6549 4108 -30.000000
+6549 4178  30.000000
+6549 4180   1.000000
+6550 0   0.000000
+6550 3   0.000000
+6550 4111 -60.000000
+6550 4181  60.000000
+6550 4183   1.000000
+6551 0   0.000000
+6551 3   0.000000
+6551 4112 -30.000000
+6551 4182  30.000000
+6551 4184   1.000000
+6552 0   0.000000
+6552 3   0.000000
+6552 4115 -60.000000
+6552 4185  60.000000
+6552 4187   1.000000
+6553 0   0.000000
+6553 3   0.000000
+6553 4116 -30.000000
+6553 4186  30.000000
+6553 4188   1.000000
+6554 0   0.000000
+6554 3   0.000000
+6554 4121 -60.000000
+6554 4191  60.000000
+6554 4193   1.000000
+6555 0   0.000000
+6555 3   0.000000
+6555 4122 -30.000000
+6555 4192  30.000000
+6555 4194   1.000000
+6556 0   0.000000
+6556 3   0.000000
+6556 4125 -60.000000
+6556 4195  60.000000
+6556 4197   1.000000
+6557 0   0.000000
+6557 3   0.000000
+6557 4126 -30.000000
+6557 4196  30.000000
+6557 4198   1.000000
+6558 0   0.000000
+6558 3   0.000000
+6558 4129 -60.000000
+6558 4199  60.000000
+6558 4201   1.000000
+6559 0   0.000000
+6559 3   0.000000
+6559 4130 -30.000000
+6559 4200  30.000000
+6559 4202   1.000000
+6560 0   0.000000
+6560 2   0.000000
+6560 3   0.000000
+6560 4205 -80.000000
+6560 4275  80.000000
+6560 4277   1.000000
+6561 0   0.000000
+6561 2   0.000000
+6561 3   0.000000
+6561 4206 -40.000000
+6561 4276  40.000000
+6561 4278   1.000000
+6562 0   0.000000
+6562 2   0.000000
+6562 3   0.000000
+6562 4209 -80.000000
+6562 4279  80.000000
+6562 4281   1.000000
+6563 0   0.000000
+6563 2   0.000000
+6563 3   0.000000
+6563 4210 -40.000000
+6563 4280  40.000000
+6563 4282   1.000000
+6564 0   0.000000
+6564 2   0.000000
+6564 3   0.000000
+6564 4213 -80.000000
+6564 4283  80.000000
+6564 4285   1.000000
+6565 0   0.000000
+6565 2   0.000000
+6565 3   0.000000
+6565 4214 -40.000000
+6565 4284  40.000000
+6565 4286   1.000000
+6566 0   0.000000
+6566 2   0.000000
+6566 3   0.000000
+6566 4219 -80.000000
+6566 4289  80.000000
+6566 4291   1.000000
+6567 0   0.000000
+6567 2   0.000000
+6567 3   0.000000
+6567 4220 -40.000000
+6567 4290  40.000000
+6567 4292   1.000000
+6568 0   0.000000
+6568 2   0.000000
+6568 3   0.000000
+6568 4223 -80.000000
+6568 4293  80.000000
+6568 4295   1.000000
+6569 0   0.000000
+6569 2   0.000000
+6569 3   0.000000
+6569 4224 -40.000000
+6569 4294  40.000000
+6569 4296   1.000000
+6570 0   0.000000
+6570 2   0.000000
+6570 3   0.000000
+6570 4227 -80.000000
+6570 4297  80.000000
+6570 4299   1.000000
+6571 0   0.000000
+6571 2   0.000000
+6571 3   0.000000
+6571 4228 -40.000000
+6571 4298  40.000000
+6571 4300   1.000000
+6572 0   0.000000
+6572 2   0.000000
+6572 3   0.000000
+6572 4233 -80.000000
+6572 4303  80.000000
+6572 4305   1.000000
+6573 0   0.000000
+6573 2   0.000000
+6573 3   0.000000
+6573 4234 -40.000000
+6573 4304  40.000000
+6573 4306   1.000000
+6574 0   0.000000
+6574 2   0.000000
+6574 3   0.000000
+6574 4237 -80.000000
+6574 4307  80.000000
+6574 4309   1.000000
+6575 0   0.000000
+6575 2   0.000000
+6575 3   0.000000
+6575 4238 -40.000000
+6575 4308  40.000000
+6575 4310   1.000000
+6576 0   0.000000
+6576 2   0.000000
+6576 3   0.000000
+6576 4241 -80.000000
+6576 4311  80.000000
+6576 4313   1.000000
+6577 0   0.000000
+6577 2   0.000000
+6577 3   0.000000
+6577 4242 -40.000000
+6577 4312  40.000000
+6577 4314   1.000000
+6578 0   0.000000
+6578 2   0.000000
+6578 3   0.000000
+6578 4247 -80.000000
+6578 4317  80.000000
+6578 4319   1.000000
+6579 0   0.000000
+6579 2   0.000000
+6579 3   0.000000
+6579 4248 -40.000000
+6579 4318  40.000000
+6579 4320   1.000000
+6580 0   0.000000
+6580 2   0.000000
+6580 3   0.000000
+6580 4251 -80.000000
+6580 4321  80.000000
+6580 4323   1.000000
+6581 0   0.000000
+6581 2   0.000000
+6581 3   0.000000
+6581 4252 -40.000000
+6581 4322  40.000000
+6581 4324   1.000000
+6582 0   0.000000
+6582 2   0.000000
+6582 3   0.000000
+6582 4255 -80.000000
+6582 4325  80.000000
+6582 4327   1.000000
+6583 0   0.000000
+6583 2   0.000000
+6583 3   0.000000
+6583 4256 -40.000000
+6583 4326  40.000000
+6583 4328   1.000000
+6584 0   0.000000
+6584 2   0.000000
+6584 3   0.000000
+6584 4261 -80.000000
+6584 4331  80.000000
+6584 4333   1.000000
+6585 0   0.000000
+6585 2   0.000000
+6585 3   0.000000
+6585 4262 -40.000000
+6585 4332  40.000000
+6585 4334   1.000000
+6586 0   0.000000
+6586 2   0.000000
+6586 3   0.000000
+6586 4265 -80.000000
+6586 4335  80.000000
+6586 4337   1.000000
+6587 0   0.000000
+6587 2   0.000000
+6587 3   0.000000
+6587 4266 -40.000000
+6587 4336  40.000000
+6587 4338   1.000000
+6588 0   0.000000
+6588 2   0.000000
+6588 3   0.000000
+6588 4269 -80.000000
+6588 4339  80.000000
+6588 4341   1.000000
+6589 0   0.000000
+6589 2   0.000000
+6589 3   0.000000
+6589 4270 -40.000000
+6589 4340  40.000000
+6589 4342   1.000000
+6590 0   0.000000
+6590 2   0.000000
+6590 3   0.000000
+6590 4275 -80.000000
+6590 4345  80.000000
+6590 4347   1.000000
+6591 0   0.000000
+6591 2   0.000000
+6591 3   0.000000
+6591 4276 -40.000000
+6591 4346  40.000000
+6591 4348   1.000000
+6592 0   0.000000
+6592 2   0.000000
+6592 3   0.000000
+6592 4279 -80.000000
+6592 4349  80.000000
+6592 4351   1.000000
+6593 0   0.000000
+6593 2   0.000000
+6593 3   0.000000
+6593 4280 -40.000000
+6593 4350  40.000000
+6593 4352   1.000000
+6594 0   0.000000
+6594 2   0.000000
+6594 3   0.000000
+6594 4283 -80.000000
+6594 4353  80.000000
+6594 4355   1.000000
+6595 0   0.000000
+6595 2   0.000000
+6595 3   0.000000
+6595 4284 -40.000000
+6595 4354  40.000000
+6595 4356   1.000000
+6596 0   0.000000
+6596 2   0.000000
+6596 3   0.000000
+6596 4289 -80.000000
+6596 4359  80.000000
+6596 4361   1.000000
+6597 0   0.000000
+6597 2   0.000000
+6597 3   0.000000
+6597 4290 -40.000000
+6597 4360  40.000000
+6597 4362   1.000000
+6598 0   0.000000
+6598 2   0.000000
+6598 3   0.000000
+6598 4293 -80.000000
+6598 4363  80.000000
+6598 4365   1.000000
+6599 0   0.000000
+6599 2   0.000000
+6599 3   0.000000
+6599 4294 -40.000000
+6599 4364  40.000000
+6599 4366   1.000000
+6600 0   0.000000
+6600 2   0.000000
+6600 3   0.000000
+6600 4297 -80.000000
+6600 4367  80.000000
+6600 4369   1.000000
+6601 0   0.000000
+6601 2   0.000000
+6601 3   0.000000
+6601 4298 -40.000000
+6601 4368  40.000000
+6601 4370   1.000000
+6602 0   0.000000
+6602 2   0.000000
+6602 3   0.000000
+6602 4303 -80.000000
+6602 4373  80.000000
+6602 4375   1.000000
+6603 0   0.000000
+6603 2   0.000000
+6603 3   0.000000
+6603 4304 -40.000000
+6603 4374  40.000000
+6603 4376   1.000000
+6604 0   0.000000
+6604 2   0.000000
+6604 3   0.000000
+6604 4307 -80.000000
+6604 4377  80.000000
+6604 4379   1.000000
+6605 0   0.000000
+6605 2   0.000000
+6605 3   0.000000
+6605 4308 -40.000000
+6605 4378  40.000000
+6605 4380   1.000000
+6606 0   0.000000
+6606 2   0.000000
+6606 3   0.000000
+6606 4311 -80.000000
+6606 4381  80.000000
+6606 4383   1.000000
+6607 0   0.000000
+6607 2   0.000000
+6607 3   0.000000
+6607 4312 -40.000000
+6607 4382  40.000000
+6607 4384   1.000000
+6608 0   0.000000
+6608 2   0.000000
+6608 3   0.000000
+6608 4317 -80.000000
+6608 4387  80.000000
+6608 4389   1.000000
+6609 0   0.000000
+6609 2   0.000000
+6609 3   0.000000
+6609 4318 -40.000000
+6609 4388  40.000000
+6609 4390   1.000000
+6610 0   0.000000
+6610 2   0.000000
+6610 3   0.000000
+6610 4321 -80.000000
+6610 4391  80.000000
+6610 4393   1.000000
+6611 0   0.000000
+6611 2   0.000000
+6611 3   0.000000
+6611 4322 -40.000000
+6611 4392  40.000000
+6611 4394   1.000000
+6612 0   0.000000
+6612 2   0.000000
+6612 3   0.000000
+6612 4325 -80.000000
+6612 4395  80.000000
+6612 4397   1.000000
+6613 0   0.000000
+6613 2   0.000000
+6613 3   0.000000
+6613 4326 -40.000000
+6613 4396  40.000000
+6613 4398   1.000000
+6614 0   0.000000
+6614 2   0.000000
+6614 3   0.000000
+6614 4331 -80.000000
+6614 4401  80.000000
+6614 4403   1.000000
+6615 0   0.000000
+6615 2   0.000000
+6615 3   0.000000
+6615 4332 -40.000000
+6615 4402  40.000000
+6615 4404   1.000000
+6616 0   0.000000
+6616 2   0.000000
+6616 3   0.000000
+6616 4335 -80.000000
+6616 4405  80.000000
+6616 4407   1.000000
+6617 0   0.000000
+6617 2   0.000000
+6617 3   0.000000
+6617 4336 -40.000000
+6617 4406  40.000000
+6617 4408   1.000000
+6618 0   0.000000
+6618 2   0.000000
+6618 3   0.000000
+6618 4339 -80.000000
+6618 4409  80.000000
+6618 4411   1.000000
+6619 0   0.000000
+6619 2   0.000000
+6619 3   0.000000
+6619 4340 -40.000000
+6619 4410  40.000000
+6619 4412   1.000000
+6620 0   0.000000
+6620 2   0.000000
+6620 3   0.000000
+6620 4345 -80.000000
+6620 4415  80.000000
+6620 4417   1.000000
+6621 0   0.000000
+6621 2   0.000000
+6621 3   0.000000
+6621 4346 -40.000000
+6621 4416  40.000000
+6621 4418   1.000000
+6622 0   0.000000
+6622 2   0.000000
+6622 3   0.000000
+6622 4349 -80.000000
+6622 4419  80.000000
+6622 4421   1.000000
+6623 0   0.000000
+6623 2   0.000000
+6623 3   0.000000
+6623 4350 -40.000000
+6623 4420  40.000000
+6623 4422   1.000000
+6624 0   0.000000
+6624 2   0.000000
+6624 3   0.000000
+6624 4353 -80.000000
+6624 4423  80.000000
+6624 4425   1.000000
+6625 0   0.000000
+6625 2   0.000000
+6625 3   0.000000
+6625 4354 -40.000000
+6625 4424  40.000000
+6625 4426   1.000000
+6626 0   0.000000
+6626 2   0.000000
+6626 3   0.000000
+6626 4359 -80.000000
+6626 4429  80.000000
+6626 4431   1.000000
+6627 0   0.000000
+6627 2   0.000000
+6627 3   0.000000
+6627 4360 -40.000000
+6627 4430  40.000000
+6627 4432   1.000000
+6628 0   0.000000
+6628 2   0.000000
+6628 3   0.000000
+6628 4363 -80.000000
+6628 4433  80.000000
+6628 4435   1.000000
+6629 0   0.000000
+6629 2   0.000000
+6629 3   0.000000
+6629 4364 -40.000000
+6629 4434  40.000000
+6629 4436   1.000000
+6630 0   0.000000
+6630 2   0.000000
+6630 3   0.000000
+6630 4367 -80.000000
+6630 4437  80.000000
+6630 4439   1.000000
+6631 0   0.000000
+6631 2   0.000000
+6631 3   0.000000
+6631 4368 -40.000000
+6631 4438  40.000000
+6631 4440   1.000000
+6632 0   0.000000
+6632 2   0.000000
+6632 3   0.000000
+6632 4373 -80.000000
+6632 4443  80.000000
+6632 4445   1.000000
+6633 0   0.000000
+6633 2   0.000000
+6633 3   0.000000
+6633 4374 -40.000000
+6633 4444  40.000000
+6633 4446   1.000000
+6634 0   0.000000
+6634 2   0.000000
+6634 3   0.000000
+6634 4377 -80.000000
+6634 4447  80.000000
+6634 4449   1.000000
+6635 0   0.000000
+6635 2   0.000000
+6635 3   0.000000
+6635 4378 -40.000000
+6635 4448  40.000000
+6635 4450   1.000000
+6636 0   0.000000
+6636 2   0.000000
+6636 3   0.000000
+6636 4381 -80.000000
+6636 4451  80.000000
+6636 4453   1.000000
+6637 0   0.000000
+6637 2   0.000000
+6637 3   0.000000
+6637 4382 -40.000000
+6637 4452  40.000000
+6637 4454   1.000000
+6638 0   0.000000
+6638 2   0.000000
+6638 3   0.000000
+6638 4387 -80.000000
+6638 4457  80.000000
+6638 4459   1.000000
+6639 0   0.000000
+6639 2   0.000000
+6639 3   0.000000
+6639 4388 -40.000000
+6639 4458  40.000000
+6639 4460   1.000000
+6640 0   0.000000
+6640 2   0.000000
+6640 3   0.000000
+6640 4391 -80.000000
+6640 4461  80.000000
+6640 4463   1.000000
+6641 0   0.000000
+6641 2   0.000000
+6641 3   0.000000
+6641 4392 -40.000000
+6641 4462  40.000000
+6641 4464   1.000000
+6642 0   0.000000
+6642 2   0.000000
+6642 3   0.000000
+6642 4395 -80.000000
+6642 4465  80.000000
+6642 4467   1.000000
+6643 0   0.000000
+6643 2   0.000000
+6643 3   0.000000
+6643 4396 -40.000000
+6643 4466  40.000000
+6643 4468   1.000000
+6644 0   0.000000
+6644 2   0.000000
+6644 3   0.000000
+6644 4401 -80.000000
+6644 4471  80.000000
+6644 4473   1.000000
+6645 0   0.000000
+6645 2   0.000000
+6645 3   0.000000
+6645 4402 -40.000000
+6645 4472  40.000000
+6645 4474   1.000000
+6646 0   0.000000
+6646 2   0.000000
+6646 3   0.000000
+6646 4405 -80.000000
+6646 4475  80.000000
+6646 4477   1.000000
+6647 0   0.000000
+6647 2   0.000000
+6647 3   0.000000
+6647 4406 -40.000000
+6647 4476  40.000000
+6647 4478   1.000000
+6648 0   0.000000
+6648 2   0.000000
+6648 3   0.000000
+6648 4409 -80.000000
+6648 4479  80.000000
+6648 4481   1.000000
+6649 0   0.000000
+6649 2   0.000000
+6649 3   0.000000
+6649 4410 -40.000000
+6649 4480  40.000000
+6649 4482   1.000000
+6650 0   0.000000
+6650 2   0.000000
+6650 3   0.000000
+6650 4415 -80.000000
+6650 4485  80.000000
+6650 4487   1.000000
+6651 0   0.000000
+6651 2   0.000000
+6651 3   0.000000
+6651 4416 -40.000000
+6651 4486  40.000000
+6651 4488   1.000000
+6652 0   0.000000
+6652 2   0.000000
+6652 3   0.000000
+6652 4419 -80.000000
+6652 4489  80.000000
+6652 4491   1.000000
+6653 0   0.000000
+6653 2   0.000000
+6653 3   0.000000
+6653 4420 -40.000000
+6653 4490  40.000000
+6653 4492   1.000000
+6654 0   0.000000
+6654 2   0.000000
+6654 3   0.000000
+6654 4423 -80.000000
+6654 4493  80.000000
+6654 4495   1.000000
+6655 0   0.000000
+6655 2   0.000000
+6655 3   0.000000
+6655 4424 -40.000000
+6655 4494  40.000000
+6655 4496   1.000000
+6656 0   0.000000
+6656 2   0.000000
+6656 3   0.000000
+6656 4429 -80.000000
+6656 4499  80.000000
+6656 4501   1.000000
+6657 0   0.000000
+6657 2   0.000000
+6657 3   0.000000
+6657 4430 -40.000000
+6657 4500  40.000000
+6657 4502   1.000000
+6658 0   0.000000
+6658 2   0.000000
+6658 3   0.000000
+6658 4433 -80.000000
+6658 4503  80.000000
+6658 4505   1.000000
+6659 0   0.000000
+6659 2   0.000000
+6659 3   0.000000
+6659 4434 -40.000000
+6659 4504  40.000000
+6659 4506   1.000000
+6660 0   0.000000
+6660 2   0.000000
+6660 3   0.000000
+6660 4437 -80.000000
+6660 4507  80.000000
+6660 4509   1.000000
+6661 0   0.000000
+6661 2   0.000000
+6661 3   0.000000
+6661 4438 -40.000000
+6661 4508  40.000000
+6661 4510   1.000000
+6662 0   0.000000
+6662 2   0.000000
+6662 3   0.000000
+6662 4443 -80.000000
+6662 4513  80.000000
+6662 4515   1.000000
+6663 0   0.000000
+6663 2   0.000000
+6663 3   0.000000
+6663 4444 -40.000000
+6663 4514  40.000000
+6663 4516   1.000000
+6664 0   0.000000
+6664 2   0.000000
+6664 3   0.000000
+6664 4447 -80.000000
+6664 4517  80.000000
+6664 4519   1.000000
+6665 0   0.000000
+6665 2   0.000000
+6665 3   0.000000
+6665 4448 -40.000000
+6665 4518  40.000000
+6665 4520   1.000000
+6666 0   0.000000
+6666 2   0.000000
+6666 3   0.000000
+6666 4451 -80.000000
+6666 4521  80.000000
+6666 4523   1.000000
+6667 0   0.000000
+6667 2   0.000000
+6667 3   0.000000
+6667 4452 -40.000000
+6667 4522  40.000000
+6667 4524   1.000000
+6668 0   0.000000
+6668 2   0.000000
+6668 3   0.000000
+6668 4457 -80.000000
+6668 4527  80.000000
+6668 4529   1.000000
+6669 0   0.000000
+6669 2   0.000000
+6669 3   0.000000
+6669 4458 -40.000000
+6669 4528  40.000000
+6669 4530   1.000000
+6670 0   0.000000
+6670 2   0.000000
+6670 3   0.000000
+6670 4461 -80.000000
+6670 4531  80.000000
+6670 4533   1.000000
+6671 0   0.000000
+6671 2   0.000000
+6671 3   0.000000
+6671 4462 -40.000000
+6671 4532  40.000000
+6671 4534   1.000000
+6672 0   0.000000
+6672 2   0.000000
+6672 3   0.000000
+6672 4465 -80.000000
+6672 4535  80.000000
+6672 4537   1.000000
+6673 0   0.000000
+6673 2   0.000000
+6673 3   0.000000
+6673 4466 -40.000000
+6673 4536  40.000000
+6673 4538   1.000000
+6674 0   0.000000
+6674 2   0.000000
+6674 3   0.000000
+6674 4471 -80.000000
+6674 4541  80.000000
+6674 4543   1.000000
+6675 0   0.000000
+6675 2   0.000000
+6675 3   0.000000
+6675 4472 -40.000000
+6675 4542  40.000000
+6675 4544   1.000000
+6676 0   0.000000
+6676 2   0.000000
+6676 3   0.000000
+6676 4475 -80.000000
+6676 4545  80.000000
+6676 4547   1.000000
+6677 0   0.000000
+6677 2   0.000000
+6677 3   0.000000
+6677 4476 -40.000000
+6677 4546  40.000000
+6677 4548   1.000000
+6678 0   0.000000
+6678 2   0.000000
+6678 3   0.000000
+6678 4479 -80.000000
+6678 4549  80.000000
+6678 4551   1.000000
+6679 0   0.000000
+6679 2   0.000000
+6679 3   0.000000
+6679 4480 -40.000000
+6679 4550  40.000000
+6679 4552   1.000000
+6680 0   0.000000
+6680 2   0.000000
+6680 3   0.000000
+6680 4485 -80.000000
+6680 4555  80.000000
+6680 4557   1.000000
+6681 0   0.000000
+6681 2   0.000000
+6681 3   0.000000
+6681 4486 -40.000000
+6681 4556  40.000000
+6681 4558   1.000000
+6682 0   0.000000
+6682 2   0.000000
+6682 3   0.000000
+6682 4489 -80.000000
+6682 4559  80.000000
+6682 4561   1.000000
+6683 0   0.000000
+6683 2   0.000000
+6683 3   0.000000
+6683 4490 -40.000000
+6683 4560  40.000000
+6683 4562   1.000000
+6684 0   0.000000
+6684 2   0.000000
+6684 3   0.000000
+6684 4493 -80.000000
+6684 4563  80.000000
+6684 4565   1.000000
+6685 0   0.000000
+6685 2   0.000000
+6685 3   0.000000
+6685 4494 -40.000000
+6685 4564  40.000000
+6685 4566   1.000000
+6686 0   0.000000
+6686 2   0.000000
+6686 3   0.000000
+6686 4499 -80.000000
+6686 4569  80.000000
+6686 4571   1.000000
+6687 0   0.000000
+6687 2   0.000000
+6687 3   0.000000
+6687 4500 -40.000000
+6687 4570  40.000000
+6687 4572   1.000000
+6688 0   0.000000
+6688 2   0.000000
+6688 3   0.000000
+6688 4503 -80.000000
+6688 4573  80.000000
+6688 4575   1.000000
+6689 0   0.000000
+6689 2   0.000000
+6689 3   0.000000
+6689 4504 -40.000000
+6689 4574  40.000000
+6689 4576   1.000000
+6690 0   0.000000
+6690 2   0.000000
+6690 3   0.000000
+6690 4507 -80.000000
+6690 4577  80.000000
+6690 4579   1.000000
+6691 0   0.000000
+6691 2   0.000000
+6691 3   0.000000
+6691 4508 -40.000000
+6691 4578  40.000000
+6691 4580   1.000000
+6692 0   0.000000
+6692 2   0.000000
+6692 3   0.000000
+6692 4513 -80.000000
+6692 4583  80.000000
+6692 4585   1.000000
+6693 0   0.000000
+6693 2   0.000000
+6693 3   0.000000
+6693 4514 -40.000000
+6693 4584  40.000000
+6693 4586   1.000000
+6694 0   0.000000
+6694 2   0.000000
+6694 3   0.000000
+6694 4517 -80.000000
+6694 4587  80.000000
+6694 4589   1.000000
+6695 0   0.000000
+6695 2   0.000000
+6695 3   0.000000
+6695 4518 -40.000000
+6695 4588  40.000000
+6695 4590   1.000000
+6696 0   0.000000
+6696 2   0.000000
+6696 3   0.000000
+6696 4521 -80.000000
+6696 4591  80.000000
+6696 4593   1.000000
+6697 0   0.000000
+6697 2   0.000000
+6697 3   0.000000
+6697 4522 -40.000000
+6697 4592  40.000000
+6697 4594   1.000000
+6698 0   0.000000
+6698 2   0.000000
+6698 3   0.000000
+6698 4527 -80.000000
+6698 4597  80.000000
+6698 4599   1.000000
+6699 0   0.000000
+6699 2   0.000000
+6699 3   0.000000
+6699 4528 -40.000000
+6699 4598  40.000000
+6699 4600   1.000000
+6700 0   0.000000
+6700 2   0.000000
+6700 3   0.000000
+6700 4531 -80.000000
+6700 4601  80.000000
+6700 4603   1.000000
+6701 0   0.000000
+6701 2   0.000000
+6701 3   0.000000
+6701 4532 -40.000000
+6701 4602  40.000000
+6701 4604   1.000000
+6702 0   0.000000
+6702 2   0.000000
+6702 3   0.000000
+6702 4535 -80.000000
+6702 4605  80.000000
+6702 4607   1.000000
+6703 0   0.000000
+6703 2   0.000000
+6703 3   0.000000
+6703 4536 -40.000000
+6703 4606  40.000000
+6703 4608   1.000000
+6704 0   0.000000
+6704 2   0.000000
+6704 3   0.000000
+6704 4541 -80.000000
+6704 4611  80.000000
+6704 4613   1.000000
+6705 0   0.000000
+6705 2   0.000000
+6705 3   0.000000
+6705 4542 -40.000000
+6705 4612  40.000000
+6705 4614   1.000000
+6706 0   0.000000
+6706 2   0.000000
+6706 3   0.000000
+6706 4545 -80.000000
+6706 4615  80.000000
+6706 4617   1.000000
+6707 0   0.000000
+6707 2   0.000000
+6707 3   0.000000
+6707 4546 -40.000000
+6707 4616  40.000000
+6707 4618   1.000000
+6708 0   0.000000
+6708 2   0.000000
+6708 3   0.000000
+6708 4549 -80.000000
+6708 4619  80.000000
+6708 4621   1.000000
+6709 0   0.000000
+6709 2   0.000000
+6709 3   0.000000
+6709 4550 -40.000000
+6709 4620  40.000000
+6709 4622   1.000000
+6710 0   0.000000
+6710 2   0.000000
+6710 3   0.000000
+6710 4555 -80.000000
+6710 4625  80.000000
+6710 4627   1.000000
+6711 0   0.000000
+6711 2   0.000000
+6711 3   0.000000
+6711 4556 -40.000000
+6711 4626  40.000000
+6711 4628   1.000000
+6712 0   0.000000
+6712 2   0.000000
+6712 3   0.000000
+6712 4559 -80.000000
+6712 4629  80.000000
+6712 4631   1.000000
+6713 0   0.000000
+6713 2   0.000000
+6713 3   0.000000
+6713 4560 -40.000000
+6713 4630  40.000000
+6713 4632   1.000000
+6714 0   0.000000
+6714 2   0.000000
+6714 3   0.000000
+6714 4563 -80.000000
+6714 4633  80.000000
+6714 4635   1.000000
+6715 0   0.000000
+6715 2   0.000000
+6715 3   0.000000
+6715 4564 -40.000000
+6715 4634  40.000000
+6715 4636   1.000000
+6716 0   0.000000
+6716 2   0.000000
+6716 3   0.000000
+6716 4569 -80.000000
+6716 4639  80.000000
+6716 4641   1.000000
+6717 0   0.000000
+6717 2   0.000000
+6717 3   0.000000
+6717 4570 -40.000000
+6717 4640  40.000000
+6717 4642   1.000000
+6718 0   0.000000
+6718 2   0.000000
+6718 3   0.000000
+6718 4573 -80.000000
+6718 4643  80.000000
+6718 4645   1.000000
+6719 0   0.000000
+6719 2   0.000000
+6719 3   0.000000
+6719 4574 -40.000000
+6719 4644  40.000000
+6719 4646   1.000000
+6720 0   0.000000
+6720 2   0.000000
+6720 3   0.000000
+6720 4577 -80.000000
+6720 4647  80.000000
+6720 4649   1.000000
+6721 0   0.000000
+6721 2   0.000000
+6721 3   0.000000
+6721 4578 -40.000000
+6721 4648  40.000000
+6721 4650   1.000000
+6722 0   0.000000
+6722 2   0.000000
+6722 3   0.000000
+6722 4583 -80.000000
+6722 4653  80.000000
+6722 4655   1.000000
+6723 0   0.000000
+6723 2   0.000000
+6723 3   0.000000
+6723 4584 -40.000000
+6723 4654  40.000000
+6723 4656   1.000000
+6724 0   0.000000
+6724 2   0.000000
+6724 3   0.000000
+6724 4587 -80.000000
+6724 4657  80.000000
+6724 4659   1.000000
+6725 0   0.000000
+6725 2   0.000000
+6725 3   0.000000
+6725 4588 -40.000000
+6725 4658  40.000000
+6725 4660   1.000000
+6726 0   0.000000
+6726 2   0.000000
+6726 3   0.000000
+6726 4591 -80.000000
+6726 4661  80.000000
+6726 4663   1.000000
+6727 0   0.000000
+6727 2   0.000000
+6727 3   0.000000
+6727 4592 -40.000000
+6727 4662  40.000000
+6727 4664   1.000000
+6728 0   0.000000
+6728 2   0.000000
+6728 3   0.000000
+6728 4597 -80.000000
+6728 4667  80.000000
+6728 4669   1.000000
+6729 0   0.000000
+6729 2   0.000000
+6729 3   0.000000
+6729 4598 -40.000000
+6729 4668  40.000000
+6729 4670   1.000000
+6730 0   0.000000
+6730 2   0.000000
+6730 3   0.000000
+6730 4601 -80.000000
+6730 4671  80.000000
+6730 4673   1.000000
+6731 0   0.000000
+6731 2   0.000000
+6731 3   0.000000
+6731 4602 -40.000000
+6731 4672  40.000000
+6731 4674   1.000000
+6732 0   0.000000
+6732 2   0.000000
+6732 3   0.000000
+6732 4605 -80.000000
+6732 4675  80.000000
+6732 4677   1.000000
+6733 0   0.000000
+6733 2   0.000000
+6733 3   0.000000
+6733 4606 -40.000000
+6733 4676  40.000000
+6733 4678   1.000000
+6734 0   0.000000
+6734 2   0.000000
+6734 3   0.000000
+6734 4611 -80.000000
+6734 4681  80.000000
+6734 4683   1.000000
+6735 0   0.000000
+6735 2   0.000000
+6735 3   0.000000
+6735 4612 -40.000000
+6735 4682  40.000000
+6735 4684   1.000000
+6736 0   0.000000
+6736 2   0.000000
+6736 3   0.000000
+6736 4615 -80.000000
+6736 4685  80.000000
+6736 4687   1.000000
+6737 0   0.000000
+6737 2   0.000000
+6737 3   0.000000
+6737 4616 -40.000000
+6737 4686  40.000000
+6737 4688   1.000000
+6738 0   0.000000
+6738 2   0.000000
+6738 3   0.000000
+6738 4619 -80.000000
+6738 4689  80.000000
+6738 4691   1.000000
+6739 0   0.000000
+6739 2   0.000000
+6739 3   0.000000
+6739 4620 -40.000000
+6739 4690  40.000000
+6739 4692   1.000000
+6740 0   0.000000
+6740 2   0.000000
+6740 3   0.000000
+6740 4625 -80.000000
+6740 4695  80.000000
+6740 4697   1.000000
+6741 0   0.000000
+6741 2   0.000000
+6741 3   0.000000
+6741 4626 -40.000000
+6741 4696  40.000000
+6741 4698   1.000000
+6742 0   0.000000
+6742 2   0.000000
+6742 3   0.000000
+6742 4629 -80.000000
+6742 4699  80.000000
+6742 4701   1.000000
+6743 0   0.000000
+6743 2   0.000000
+6743 3   0.000000
+6743 4630 -40.000000
+6743 4700  40.000000
+6743 4702   1.000000
+6744 0   0.000000
+6744 2   0.000000
+6744 3   0.000000
+6744 4633 -80.000000
+6744 4703  80.000000
+6744 4705   1.000000
+6745 0   0.000000
+6745 2   0.000000
+6745 3   0.000000
+6745 4634 -40.000000
+6745 4704  40.000000
+6745 4706   1.000000
+6746 0   0.000000
+6746 2   0.000000
+6746 3   0.000000
+6746 4639 -80.000000
+6746 4709  80.000000
+6746 4711   1.000000
+6747 0   0.000000
+6747 2   0.000000
+6747 3   0.000000
+6747 4640 -40.000000
+6747 4710  40.000000
+6747 4712   1.000000
+6748 0   0.000000
+6748 2   0.000000
+6748 3   0.000000
+6748 4643 -80.000000
+6748 4713  80.000000
+6748 4715   1.000000
+6749 0   0.000000
+6749 2   0.000000
+6749 3   0.000000
+6749 4644 -40.000000
+6749 4714  40.000000
+6749 4716   1.000000
+6750 0   0.000000
+6750 2   0.000000
+6750 3   0.000000
+6750 4647 -80.000000
+6750 4717  80.000000
+6750 4719   1.000000
+6751 0   0.000000
+6751 2   0.000000
+6751 3   0.000000
+6751 4648 -40.000000
+6751 4718  40.000000
+6751 4720   1.000000
+6752 0   0.000000
+6752 2   0.000000
+6752 3   0.000000
+6752 4653 -80.000000
+6752 4723  80.000000
+6752 4725   1.000000
+6753 0   0.000000
+6753 2   0.000000
+6753 3   0.000000
+6753 4654 -40.000000
+6753 4724  40.000000
+6753 4726   1.000000
+6754 0   0.000000
+6754 2   0.000000
+6754 3   0.000000
+6754 4657 -80.000000
+6754 4727  80.000000
+6754 4729   1.000000
+6755 0   0.000000
+6755 2   0.000000
+6755 3   0.000000
+6755 4658 -40.000000
+6755 4728  40.000000
+6755 4730   1.000000
+6756 0   0.000000
+6756 2   0.000000
+6756 3   0.000000
+6756 4661 -80.000000
+6756 4731  80.000000
+6756 4733   1.000000
+6757 0   0.000000
+6757 2   0.000000
+6757 3   0.000000
+6757 4662 -40.000000
+6757 4732  40.000000
+6757 4734   1.000000
+6758 0   0.000000
+6758 2   0.000000
+6758 3   0.000000
+6758 4667 -80.000000
+6758 4737  80.000000
+6758 4739   1.000000
+6759 0   0.000000
+6759 2   0.000000
+6759 3   0.000000
+6759 4668 -40.000000
+6759 4738  40.000000
+6759 4740   1.000000
+6760 0   0.000000
+6760 2   0.000000
+6760 3   0.000000
+6760 4671 -80.000000
+6760 4741  80.000000
+6760 4743   1.000000
+6761 0   0.000000
+6761 2   0.000000
+6761 3   0.000000
+6761 4672 -40.000000
+6761 4742  40.000000
+6761 4744   1.000000
+6762 0   0.000000
+6762 2   0.000000
+6762 3   0.000000
+6762 4675 -80.000000
+6762 4745  80.000000
+6762 4747   1.000000
+6763 0   0.000000
+6763 2   0.000000
+6763 3   0.000000
+6763 4676 -40.000000
+6763 4746  40.000000
+6763 4748   1.000000
+6764 0   0.000000
+6764 2   0.000000
+6764 3   0.000000
+6764 4681 -80.000000
+6764 4751  80.000000
+6764 4753   1.000000
+6765 0   0.000000
+6765 2   0.000000
+6765 3   0.000000
+6765 4682 -40.000000
+6765 4752  40.000000
+6765 4754   1.000000
+6766 0   0.000000
+6766 2   0.000000
+6766 3   0.000000
+6766 4685 -80.000000
+6766 4755  80.000000
+6766 4757   1.000000
+6767 0   0.000000
+6767 2   0.000000
+6767 3   0.000000
+6767 4686 -40.000000
+6767 4756  40.000000
+6767 4758   1.000000
+6768 0   0.000000
+6768 2   0.000000
+6768 3   0.000000
+6768 4689 -80.000000
+6768 4759  80.000000
+6768 4761   1.000000
+6769 0   0.000000
+6769 2   0.000000
+6769 3   0.000000
+6769 4690 -40.000000
+6769 4760  40.000000
+6769 4762   1.000000
+6770 0   0.000000
+6770 2   0.000000
+6770 3   0.000000
+6770 4695 -80.000000
+6770 4765  80.000000
+6770 4767   1.000000
+6771 0   0.000000
+6771 2   0.000000
+6771 3   0.000000
+6771 4696 -40.000000
+6771 4766  40.000000
+6771 4768   1.000000
+6772 0   0.000000
+6772 2   0.000000
+6772 3   0.000000
+6772 4699 -80.000000
+6772 4769  80.000000
+6772 4771   1.000000
+6773 0   0.000000
+6773 2   0.000000
+6773 3   0.000000
+6773 4700 -40.000000
+6773 4770  40.000000
+6773 4772   1.000000
+6774 0   0.000000
+6774 2   0.000000
+6774 3   0.000000
+6774 4703 -80.000000
+6774 4773  80.000000
+6774 4775   1.000000
+6775 0   0.000000
+6775 2   0.000000
+6775 3   0.000000
+6775 4704 -40.000000
+6775 4774  40.000000
+6775 4776   1.000000
+6776 0   0.000000
+6776 2   0.000000
+6776 3   0.000000
+6776 4709 -80.000000
+6776 4779  80.000000
+6776 4781   1.000000
+6777 0   0.000000
+6777 2   0.000000
+6777 3   0.000000
+6777 4710 -40.000000
+6777 4780  40.000000
+6777 4782   1.000000
+6778 0   0.000000
+6778 2   0.000000
+6778 3   0.000000
+6778 4713 -80.000000
+6778 4783  80.000000
+6778 4785   1.000000
+6779 0   0.000000
+6779 2   0.000000
+6779 3   0.000000
+6779 4714 -40.000000
+6779 4784  40.000000
+6779 4786   1.000000
+6780 0   0.000000
+6780 2   0.000000
+6780 3   0.000000
+6780 4717 -80.000000
+6780 4787  80.000000
+6780 4789   1.000000
+6781 0   0.000000
+6781 2   0.000000
+6781 3   0.000000
+6781 4718 -40.000000
+6781 4788  40.000000
+6781 4790   1.000000
+6782 0   0.000000
+6782 2   0.000000
+6782 3   0.000000
+6782 4723 -80.000000
+6782 4793  80.000000
+6782 4795   1.000000
+6783 0   0.000000
+6783 2   0.000000
+6783 3   0.000000
+6783 4724 -40.000000
+6783 4794  40.000000
+6783 4796   1.000000
+6784 0   0.000000
+6784 2   0.000000
+6784 3   0.000000
+6784 4727 -80.000000
+6784 4797  80.000000
+6784 4799   1.000000
+6785 0   0.000000
+6785 2   0.000000
+6785 3   0.000000
+6785 4728 -40.000000
+6785 4798  40.000000
+6785 4800   1.000000
+6786 0   0.000000
+6786 2   0.000000
+6786 3   0.000000
+6786 4731 -80.000000
+6786 4801  80.000000
+6786 4803   1.000000
+6787 0   0.000000
+6787 2   0.000000
+6787 3   0.000000
+6787 4732 -40.000000
+6787 4802  40.000000
+6787 4804   1.000000
+6788 0   0.000000
+6788 2   0.000000
+6788 3   0.000000
+6788 4737 -80.000000
+6788 4807  80.000000
+6788 4809   1.000000
+6789 0   0.000000
+6789 2   0.000000
+6789 3   0.000000
+6789 4738 -40.000000
+6789 4808  40.000000
+6789 4810   1.000000
+6790 0   0.000000
+6790 2   0.000000
+6790 3   0.000000
+6790 4741 -80.000000
+6790 4811  80.000000
+6790 4813   1.000000
+6791 0   0.000000
+6791 2   0.000000
+6791 3   0.000000
+6791 4742 -40.000000
+6791 4812  40.000000
+6791 4814   1.000000
+6792 0   0.000000
+6792 2   0.000000
+6792 3   0.000000
+6792 4745 -80.000000
+6792 4815  80.000000
+6792 4817   1.000000
+6793 0   0.000000
+6793 2   0.000000
+6793 3   0.000000
+6793 4746 -40.000000
+6793 4816  40.000000
+6793 4818   1.000000
+6794 0   0.000000
+6794 2   0.000000
+6794 3   0.000000
+6794 4751 -80.000000
+6794 4821  80.000000
+6794 4823   1.000000
+6795 0   0.000000
+6795 2   0.000000
+6795 3   0.000000
+6795 4752 -40.000000
+6795 4822  40.000000
+6795 4824   1.000000
+6796 0   0.000000
+6796 2   0.000000
+6796 3   0.000000
+6796 4755 -80.000000
+6796 4825  80.000000
+6796 4827   1.000000
+6797 0   0.000000
+6797 2   0.000000
+6797 3   0.000000
+6797 4756 -40.000000
+6797 4826  40.000000
+6797 4828   1.000000
+6798 0   0.000000
+6798 2   0.000000
+6798 3   0.000000
+6798 4759 -80.000000
+6798 4829  80.000000
+6798 4831   1.000000
+6799 0   0.000000
+6799 2   0.000000
+6799 3   0.000000
+6799 4760 -40.000000
+6799 4830  40.000000
+6799 4832   1.000000
+6800 0   0.000000
+6800 2   0.000000
+6800 3   0.000000
+6800 4765 -80.000000
+6800 4835  80.000000
+6800 4837   1.000000
+6801 0   0.000000
+6801 2   0.000000
+6801 3   0.000000
+6801 4766 -40.000000
+6801 4836  40.000000
+6801 4838   1.000000
+6802 0   0.000000
+6802 2   0.000000
+6802 3   0.000000
+6802 4769 -80.000000
+6802 4839  80.000000
+6802 4841   1.000000
+6803 0   0.000000
+6803 2   0.000000
+6803 3   0.000000
+6803 4770 -40.000000
+6803 4840  40.000000
+6803 4842   1.000000
+6804 0   0.000000
+6804 2   0.000000
+6804 3   0.000000
+6804 4773 -80.000000
+6804 4843  80.000000
+6804 4845   1.000000
+6805 0   0.000000
+6805 2   0.000000
+6805 3   0.000000
+6805 4774 -40.000000
+6805 4844  40.000000
+6805 4846   1.000000
+6806 0   0.000000
+6806 2   0.000000
+6806 3   0.000000
+6806 4779 -80.000000
+6806 4849  80.000000
+6806 4851   1.000000
+6807 0   0.000000
+6807 2   0.000000
+6807 3   0.000000
+6807 4780 -40.000000
+6807 4850  40.000000
+6807 4852   1.000000
+6808 0   0.000000
+6808 2   0.000000
+6808 3   0.000000
+6808 4783 -80.000000
+6808 4853  80.000000
+6808 4855   1.000000
+6809 0   0.000000
+6809 2   0.000000
+6809 3   0.000000
+6809 4784 -40.000000
+6809 4854  40.000000
+6809 4856   1.000000
+6810 0   0.000000
+6810 2   0.000000
+6810 3   0.000000
+6810 4787 -80.000000
+6810 4857  80.000000
+6810 4859   1.000000
+6811 0   0.000000
+6811 2   0.000000
+6811 3   0.000000
+6811 4788 -40.000000
+6811 4858  40.000000
+6811 4860   1.000000
+6812 0   0.000000
+6812 2   0.000000
+6812 3   0.000000
+6812 4793 -80.000000
+6812 4863  80.000000
+6812 4865   1.000000
+6813 0   0.000000
+6813 2   0.000000
+6813 3   0.000000
+6813 4794 -40.000000
+6813 4864  40.000000
+6813 4866   1.000000
+6814 0   0.000000
+6814 2   0.000000
+6814 3   0.000000
+6814 4797 -80.000000
+6814 4867  80.000000
+6814 4869   1.000000
+6815 0   0.000000
+6815 2   0.000000
+6815 3   0.000000
+6815 4798 -40.000000
+6815 4868  40.000000
+6815 4870   1.000000
+6816 0   0.000000
+6816 2   0.000000
+6816 3   0.000000
+6816 4801 -80.000000
+6816 4871  80.000000
+6816 4873   1.000000
+6817 0   0.000000
+6817 2   0.000000
+6817 3   0.000000
+6817 4802 -40.000000
+6817 4872  40.000000
+6817 4874   1.000000
+6818 0   0.000000
+6818 2   0.000000
+6818 3   0.000000
+6818 4807 -80.000000
+6818 4877  80.000000
+6818 4879   1.000000
+6819 0   0.000000
+6819 2   0.000000
+6819 3   0.000000
+6819 4808 -40.000000
+6819 4878  40.000000
+6819 4880   1.000000
+6820 0   0.000000
+6820 2   0.000000
+6820 3   0.000000
+6820 4811 -80.000000
+6820 4881  80.000000
+6820 4883   1.000000
+6821 0   0.000000
+6821 2   0.000000
+6821 3   0.000000
+6821 4812 -40.000000
+6821 4882  40.000000
+6821 4884   1.000000
+6822 0   0.000000
+6822 2   0.000000
+6822 3   0.000000
+6822 4815 -80.000000
+6822 4885  80.000000
+6822 4887   1.000000
+6823 0   0.000000
+6823 2   0.000000
+6823 3   0.000000
+6823 4816 -40.000000
+6823 4886  40.000000
+6823 4888   1.000000
+6824 0   0.000000
+6824 2   0.000000
+6824 3   0.000000
+6824 4821 -80.000000
+6824 4891  80.000000
+6824 4893   1.000000
+6825 0   0.000000
+6825 2   0.000000
+6825 3   0.000000
+6825 4822 -40.000000
+6825 4892  40.000000
+6825 4894   1.000000
+6826 0   0.000000
+6826 2   0.000000
+6826 3   0.000000
+6826 4825 -80.000000
+6826 4895  80.000000
+6826 4897   1.000000
+6827 0   0.000000
+6827 2   0.000000
+6827 3   0.000000
+6827 4826 -40.000000
+6827 4896  40.000000
+6827 4898   1.000000
+6828 0   0.000000
+6828 2   0.000000
+6828 3   0.000000
+6828 4829 -80.000000
+6828 4899  80.000000
+6828 4901   1.000000
+6829 0   0.000000
+6829 2   0.000000
+6829 3   0.000000
+6829 4830 -40.000000
+6829 4900  40.000000
+6829 4902   1.000000
+6830 0   0.000000
+6830 2   0.000000
+6830 3   0.000000
+6830 4835 -80.000000
+6830 4905  80.000000
+6830 4907   1.000000
+6831 0   0.000000
+6831 2   0.000000
+6831 3   0.000000
+6831 4836 -40.000000
+6831 4906  40.000000
+6831 4908   1.000000
+6832 0   0.000000
+6832 2   0.000000
+6832 3   0.000000
+6832 4839 -80.000000
+6832 4909  80.000000
+6832 4911   1.000000
+6833 0   0.000000
+6833 2   0.000000
+6833 3   0.000000
+6833 4840 -40.000000
+6833 4910  40.000000
+6833 4912   1.000000
+6834 0   0.000000
+6834 2   0.000000
+6834 3   0.000000
+6834 4843 -80.000000
+6834 4913  80.000000
+6834 4915   1.000000
+6835 0   0.000000
+6835 2   0.000000
+6835 3   0.000000
+6835 4844 -40.000000
+6835 4914  40.000000
+6835 4916   1.000000
+6836 0   0.000000
+6836 2   0.000000
+6836 3   0.000000
+6836 4849 -80.000000
+6836 4919  80.000000
+6836 4921   1.000000
+6837 0   0.000000
+6837 2   0.000000
+6837 3   0.000000
+6837 4850 -40.000000
+6837 4920  40.000000
+6837 4922   1.000000
+6838 0   0.000000
+6838 2   0.000000
+6838 3   0.000000
+6838 4853 -80.000000
+6838 4923  80.000000
+6838 4925   1.000000
+6839 0   0.000000
+6839 2   0.000000
+6839 3   0.000000
+6839 4854 -40.000000
+6839 4924  40.000000
+6839 4926   1.000000
+6840 0   0.000000
+6840 2   0.000000
+6840 3   0.000000
+6840 4857 -80.000000
+6840 4927  80.000000
+6840 4929   1.000000
+6841 0   0.000000
+6841 2   0.000000
+6841 3   0.000000
+6841 4858 -40.000000
+6841 4928  40.000000
+6841 4930   1.000000
+6842 0   0.000000
+6842 2   0.000000
+6842 3   0.000000
+6842 4863 -80.000000
+6842 4933  80.000000
+6842 4935   1.000000
+6843 0   0.000000
+6843 2   0.000000
+6843 3   0.000000
+6843 4864 -40.000000
+6843 4934  40.000000
+6843 4936   1.000000
+6844 0   0.000000
+6844 2   0.000000
+6844 3   0.000000
+6844 4867 -80.000000
+6844 4937  80.000000
+6844 4939   1.000000
+6845 0   0.000000
+6845 2   0.000000
+6845 3   0.000000
+6845 4868 -40.000000
+6845 4938  40.000000
+6845 4940   1.000000
+6846 0   0.000000
+6846 2   0.000000
+6846 3   0.000000
+6846 4871 -80.000000
+6846 4941  80.000000
+6846 4943   1.000000
+6847 0   0.000000
+6847 2   0.000000
+6847 3   0.000000
+6847 4872 -40.000000
+6847 4942  40.000000
+6847 4944   1.000000
+6848 0   0.000000
+6848 2   0.000000
+6848 3   0.000000
+6848 4877 -80.000000
+6848 4947  80.000000
+6848 4949   1.000000
+6849 0   0.000000
+6849 2   0.000000
+6849 3   0.000000
+6849 4878 -40.000000
+6849 4948  40.000000
+6849 4950   1.000000
+6850 0   0.000000
+6850 2   0.000000
+6850 3   0.000000
+6850 4881 -80.000000
+6850 4951  80.000000
+6850 4953   1.000000
+6851 0   0.000000
+6851 2   0.000000
+6851 3   0.000000
+6851 4882 -40.000000
+6851 4952  40.000000
+6851 4954   1.000000
+6852 0   0.000000
+6852 2   0.000000
+6852 3   0.000000
+6852 4885 -80.000000
+6852 4955  80.000000
+6852 4957   1.000000
+6853 0   0.000000
+6853 2   0.000000
+6853 3   0.000000
+6853 4886 -40.000000
+6853 4956  40.000000
+6853 4958   1.000000
+6854 0   0.000000
+6854 2   0.000000
+6854 3   0.000000
+6854 4891 -80.000000
+6854 4961  80.000000
+6854 4963   1.000000
+6855 0   0.000000
+6855 2   0.000000
+6855 3   0.000000
+6855 4892 -40.000000
+6855 4962  40.000000
+6855 4964   1.000000
+6856 0   0.000000
+6856 2   0.000000
+6856 3   0.000000
+6856 4895 -80.000000
+6856 4965  80.000000
+6856 4967   1.000000
+6857 0   0.000000
+6857 2   0.000000
+6857 3   0.000000
+6857 4896 -40.000000
+6857 4966  40.000000
+6857 4968   1.000000
+6858 0   0.000000
+6858 2   0.000000
+6858 3   0.000000
+6858 4899 -80.000000
+6858 4969  80.000000
+6858 4971   1.000000
+6859 0   0.000000
+6859 2   0.000000
+6859 3   0.000000
+6859 4900 -40.000000
+6859 4970  40.000000
+6859 4972   1.000000
+6860 0   0.000000
+6860 2   0.000000
+6860 3   0.000000
+6860 4905 -80.000000
+6860 4975  80.000000
+6860 4977   1.000000
+6861 0   0.000000
+6861 2   0.000000
+6861 3   0.000000
+6861 4906 -40.000000
+6861 4976  40.000000
+6861 4978   1.000000
+6862 0   0.000000
+6862 2   0.000000
+6862 3   0.000000
+6862 4909 -80.000000
+6862 4979  80.000000
+6862 4981   1.000000
+6863 0   0.000000
+6863 2   0.000000
+6863 3   0.000000
+6863 4910 -40.000000
+6863 4980  40.000000
+6863 4982   1.000000
+6864 0   0.000000
+6864 2   0.000000
+6864 3   0.000000
+6864 4913 -80.000000
+6864 4983  80.000000
+6864 4985   1.000000
+6865 0   0.000000
+6865 2   0.000000
+6865 3   0.000000
+6865 4914 -40.000000
+6865 4984  40.000000
+6865 4986   1.000000
+6866 0   0.000000
+6866 2   0.000000
+6866 3   0.000000
+6866 4919 -80.000000
+6866 4989  80.000000
+6866 4991   1.000000
+6867 0   0.000000
+6867 2   0.000000
+6867 3   0.000000
+6867 4920 -40.000000
+6867 4990  40.000000
+6867 4992   1.000000
+6868 0   0.000000
+6868 2   0.000000
+6868 3   0.000000
+6868 4923 -80.000000
+6868 4993  80.000000
+6868 4995   1.000000
+6869 0   0.000000
+6869 2   0.000000
+6869 3   0.000000
+6869 4924 -40.000000
+6869 4994  40.000000
+6869 4996   1.000000
+6870 0   0.000000
+6870 2   0.000000
+6870 3   0.000000
+6870 4927 -80.000000
+6870 4997  80.000000
+6870 4999   1.000000
+6871 0   0.000000
+6871 2   0.000000
+6871 3   0.000000
+6871 4928 -40.000000
+6871 4998  40.000000
+6871 5000   1.000000
+6872 0   0.000000
+6872 2   0.000000
+6872 3   0.000000
+6872 4933 -80.000000
+6872 5003  80.000000
+6872 5005   1.000000
+6873 0   0.000000
+6873 2   0.000000
+6873 3   0.000000
+6873 4934 -40.000000
+6873 5004  40.000000
+6873 5006   1.000000
+6874 0   0.000000
+6874 2   0.000000
+6874 3   0.000000
+6874 4937 -80.000000
+6874 5007  80.000000
+6874 5009   1.000000
+6875 0   0.000000
+6875 2   0.000000
+6875 3   0.000000
+6875 4938 -40.000000
+6875 5008  40.000000
+6875 5010   1.000000
+6876 0   0.000000
+6876 2   0.000000
+6876 3   0.000000
+6876 4941 -80.000000
+6876 5011  80.000000
+6876 5013   1.000000
+6877 0   0.000000
+6877 2   0.000000
+6877 3   0.000000
+6877 4942 -40.000000
+6877 5012  40.000000
+6877 5014   1.000000
+6878 0   0.000000
+6878 2   0.000000
+6878 3   0.000000
+6878 4947 -80.000000
+6878 5017  80.000000
+6878 5019   1.000000
+6879 0   0.000000
+6879 2   0.000000
+6879 3   0.000000
+6879 4948 -40.000000
+6879 5018  40.000000
+6879 5020   1.000000
+6880 0   0.000000
+6880 2   0.000000
+6880 3   0.000000
+6880 4951 -80.000000
+6880 5021  80.000000
+6880 5023   1.000000
+6881 0   0.000000
+6881 2   0.000000
+6881 3   0.000000
+6881 4952 -40.000000
+6881 5022  40.000000
+6881 5024   1.000000
+6882 0   0.000000
+6882 2   0.000000
+6882 3   0.000000
+6882 4955 -80.000000
+6882 5025  80.000000
+6882 5027   1.000000
+6883 0   0.000000
+6883 2   0.000000
+6883 3   0.000000
+6883 4956 -40.000000
+6883 5026  40.000000
+6883 5028   1.000000
+6884 0   0.000000
+6884 2   0.000000
+6884 3   0.000000
+6884 4961 -80.000000
+6884 5031  80.000000
+6884 5033   1.000000
+6885 0   0.000000
+6885 2   0.000000
+6885 3   0.000000
+6885 4962 -40.000000
+6885 5032  40.000000
+6885 5034   1.000000
+6886 0   0.000000
+6886 2   0.000000
+6886 3   0.000000
+6886 4965 -80.000000
+6886 5035  80.000000
+6886 5037   1.000000
+6887 0   0.000000
+6887 2   0.000000
+6887 3   0.000000
+6887 4966 -40.000000
+6887 5036  40.000000
+6887 5038   1.000000
+6888 0   0.000000
+6888 2   0.000000
+6888 3   0.000000
+6888 4969 -80.000000
+6888 5039  80.000000
+6888 5041   1.000000
+6889 0   0.000000
+6889 2   0.000000
+6889 3   0.000000
+6889 4970 -40.000000
+6889 5040  40.000000
+6889 5042   1.000000
+6890 0   0.000000
+6890 2   0.000000
+6890 3   0.000000
+6890 4975 -80.000000
+6890 5045  80.000000
+6890 5047   1.000000
+6891 0   0.000000
+6891 2   0.000000
+6891 3   0.000000
+6891 4976 -40.000000
+6891 5046  40.000000
+6891 5048   1.000000
+6892 0   0.000000
+6892 2   0.000000
+6892 3   0.000000
+6892 4979 -80.000000
+6892 5049  80.000000
+6892 5051   1.000000
+6893 0   0.000000
+6893 2   0.000000
+6893 3   0.000000
+6893 4980 -40.000000
+6893 5050  40.000000
+6893 5052   1.000000
+6894 0   0.000000
+6894 2   0.000000
+6894 3   0.000000
+6894 4983 -80.000000
+6894 5053  80.000000
+6894 5055   1.000000
+6895 0   0.000000
+6895 2   0.000000
+6895 3   0.000000
+6895 4984 -40.000000
+6895 5054  40.000000
+6895 5056   1.000000
+6896 0   0.000000
+6896 2   0.000000
+6896 3   0.000000
+6896 4989 -80.000000
+6896 5059  80.000000
+6896 5061   1.000000
+6897 0   0.000000
+6897 2   0.000000
+6897 3   0.000000
+6897 4990 -40.000000
+6897 5060  40.000000
+6897 5062   1.000000
+6898 0   0.000000
+6898 2   0.000000
+6898 3   0.000000
+6898 4993 -80.000000
+6898 5063  80.000000
+6898 5065   1.000000
+6899 0   0.000000
+6899 2   0.000000
+6899 3   0.000000
+6899 4994 -40.000000
+6899 5064  40.000000
+6899 5066   1.000000
+6900 0   0.000000
+6900 2   0.000000
+6900 3   0.000000
+6900 4997 -80.000000
+6900 5067  80.000000
+6900 5069   1.000000
+6901 0   0.000000
+6901 2   0.000000
+6901 3   0.000000
+6901 4998 -40.000000
+6901 5068  40.000000
+6901 5070   1.000000
+6902 0   0.000000
+6902 2   0.000000
+6902 3   0.000000
+6902 5003 -80.000000
+6902 5073  80.000000
+6902 5075   1.000000
+6903 0   0.000000
+6903 2   0.000000
+6903 3   0.000000
+6903 5004 -40.000000
+6903 5074  40.000000
+6903 5076   1.000000
+6904 0   0.000000
+6904 2   0.000000
+6904 3   0.000000
+6904 5007 -80.000000
+6904 5077  80.000000
+6904 5079   1.000000
+6905 0   0.000000
+6905 2   0.000000
+6905 3   0.000000
+6905 5008 -40.000000
+6905 5078  40.000000
+6905 5080   1.000000
+6906 0   0.000000
+6906 2   0.000000
+6906 3   0.000000
+6906 5011 -80.000000
+6906 5081  80.000000
+6906 5083   1.000000
+6907 0   0.000000
+6907 2   0.000000
+6907 3   0.000000
+6907 5012 -40.000000
+6907 5082  40.000000
+6907 5084   1.000000
+6908 0   0.000000
+6908 2   0.000000
+6908 3   0.000000
+6908 5017 -80.000000
+6908 5087  80.000000
+6908 5089   1.000000
+6909 0   0.000000
+6909 2   0.000000
+6909 3   0.000000
+6909 5018 -40.000000
+6909 5088  40.000000
+6909 5090   1.000000
+6910 0   0.000000
+6910 2   0.000000
+6910 3   0.000000
+6910 5021 -80.000000
+6910 5091  80.000000
+6910 5093   1.000000
+6911 0   0.000000
+6911 2   0.000000
+6911 3   0.000000
+6911 5022 -40.000000
+6911 5092  40.000000
+6911 5094   1.000000
+6912 0   0.000000
+6912 2   0.000000
+6912 3   0.000000
+6912 5025 -80.000000
+6912 5095  80.000000
+6912 5097   1.000000
+6913 0   0.000000
+6913 2   0.000000
+6913 3   0.000000
+6913 5026 -40.000000
+6913 5096  40.000000
+6913 5098   1.000000
+6914 0   0.000000
+6914 2   0.000000
+6914 3   0.000000
+6914 5031 -80.000000
+6914 5101  80.000000
+6914 5103   1.000000
+6915 0   0.000000
+6915 2   0.000000
+6915 3   0.000000
+6915 5032 -40.000000
+6915 5102  40.000000
+6915 5104   1.000000
+6916 0   0.000000
+6916 2   0.000000
+6916 3   0.000000
+6916 5035 -80.000000
+6916 5105  80.000000
+6916 5107   1.000000
+6917 0   0.000000
+6917 2   0.000000
+6917 3   0.000000
+6917 5036 -40.000000
+6917 5106  40.000000
+6917 5108   1.000000
+6918 0   0.000000
+6918 2   0.000000
+6918 3   0.000000
+6918 5039 -80.000000
+6918 5109  80.000000
+6918 5111   1.000000
+6919 0   0.000000
+6919 2   0.000000
+6919 3   0.000000
+6919 5040 -40.000000
+6919 5110  40.000000
+6919 5112   1.000000
+6920 0   0.000000
+6920 2   0.000000
+6920 3   0.000000
+6920 5045 -80.000000
+6920 5115  80.000000
+6920 5117   1.000000
+6921 0   0.000000
+6921 2   0.000000
+6921 3   0.000000
+6921 5046 -40.000000
+6921 5116  40.000000
+6921 5118   1.000000
+6922 0   0.000000
+6922 2   0.000000
+6922 3   0.000000
+6922 5049 -80.000000
+6922 5119  80.000000
+6922 5121   1.000000
+6923 0   0.000000
+6923 2   0.000000
+6923 3   0.000000
+6923 5050 -40.000000
+6923 5120  40.000000
+6923 5122   1.000000
+6924 0   0.000000
+6924 2   0.000000
+6924 3   0.000000
+6924 5053 -80.000000
+6924 5123  80.000000
+6924 5125   1.000000
+6925 0   0.000000
+6925 2   0.000000
+6925 3   0.000000
+6925 5054 -40.000000
+6925 5124  40.000000
+6925 5126   1.000000
+6926 0   0.000000
+6926 2   0.000000
+6926 3   0.000000
+6926 5059 -80.000000
+6926 5129  80.000000
+6926 5131   1.000000
+6927 0   0.000000
+6927 2   0.000000
+6927 3   0.000000
+6927 5060 -40.000000
+6927 5130  40.000000
+6927 5132   1.000000
+6928 0   0.000000
+6928 2   0.000000
+6928 3   0.000000
+6928 5063 -80.000000
+6928 5133  80.000000
+6928 5135   1.000000
+6929 0   0.000000
+6929 2   0.000000
+6929 3   0.000000
+6929 5064 -40.000000
+6929 5134  40.000000
+6929 5136   1.000000
+6930 0   0.000000
+6930 2   0.000000
+6930 3   0.000000
+6930 5067 -80.000000
+6930 5137  80.000000
+6930 5139   1.000000
+6931 0   0.000000
+6931 2   0.000000
+6931 3   0.000000
+6931 5068 -40.000000
+6931 5138  40.000000
+6931 5140   1.000000
+6932 0   0.000000
+6932 2   0.000000
+6932 3   0.000000
+6932 5073 -80.000000
+6932 5143  80.000000
+6932 5145   1.000000
+6933 0   0.000000
+6933 2   0.000000
+6933 3   0.000000
+6933 5074 -40.000000
+6933 5144  40.000000
+6933 5146   1.000000
+6934 0   0.000000
+6934 2   0.000000
+6934 3   0.000000
+6934 5077 -80.000000
+6934 5147  80.000000
+6934 5149   1.000000
+6935 0   0.000000
+6935 2   0.000000
+6935 3   0.000000
+6935 5078 -40.000000
+6935 5148  40.000000
+6935 5150   1.000000
+6936 0   0.000000
+6936 2   0.000000
+6936 3   0.000000
+6936 5081 -80.000000
+6936 5151  80.000000
+6936 5153   1.000000
+6937 0   0.000000
+6937 2   0.000000
+6937 3   0.000000
+6937 5082 -40.000000
+6937 5152  40.000000
+6937 5154   1.000000
+6938 0   0.000000
+6938 2   0.000000
+6938 3   0.000000
+6938 5087 -80.000000
+6938 5157  80.000000
+6938 5159   1.000000
+6939 0   0.000000
+6939 2   0.000000
+6939 3   0.000000
+6939 5088 -40.000000
+6939 5158  40.000000
+6939 5160   1.000000
+6940 0   0.000000
+6940 2   0.000000
+6940 3   0.000000
+6940 5091 -80.000000
+6940 5161  80.000000
+6940 5163   1.000000
+6941 0   0.000000
+6941 2   0.000000
+6941 3   0.000000
+6941 5092 -40.000000
+6941 5162  40.000000
+6941 5164   1.000000
+6942 0   0.000000
+6942 2   0.000000
+6942 3   0.000000
+6942 5095 -80.000000
+6942 5165  80.000000
+6942 5167   1.000000
+6943 0   0.000000
+6943 2   0.000000
+6943 3   0.000000
+6943 5096 -40.000000
+6943 5166  40.000000
+6943 5168   1.000000
+6944 0   0.000000
+6944 2   0.000000
+6944 3   0.000000
+6944 5101 -80.000000
+6944 5171  80.000000
+6944 5173   1.000000
+6945 0   0.000000
+6945 2   0.000000
+6945 3   0.000000
+6945 5102 -40.000000
+6945 5172  40.000000
+6945 5174   1.000000
+6946 0   0.000000
+6946 2   0.000000
+6946 3   0.000000
+6946 5105 -80.000000
+6946 5175  80.000000
+6946 5177   1.000000
+6947 0   0.000000
+6947 2   0.000000
+6947 3   0.000000
+6947 5106 -40.000000
+6947 5176  40.000000
+6947 5178   1.000000
+6948 0   0.000000
+6948 2   0.000000
+6948 3   0.000000
+6948 5109 -80.000000
+6948 5179  80.000000
+6948 5181   1.000000
+6949 0   0.000000
+6949 2   0.000000
+6949 3   0.000000
+6949 5110 -40.000000
+6949 5180  40.000000
+6949 5182   1.000000
+6950 0   0.000000
+6950 2   0.000000
+6950 3   0.000000
+6950 5115 -80.000000
+6950 5185  80.000000
+6950 5187   1.000000
+6951 0   0.000000
+6951 2   0.000000
+6951 3   0.000000
+6951 5116 -40.000000
+6951 5186  40.000000
+6951 5188   1.000000
+6952 0   0.000000
+6952 2   0.000000
+6952 3   0.000000
+6952 5119 -80.000000
+6952 5189  80.000000
+6952 5191   1.000000
+6953 0   0.000000
+6953 2   0.000000
+6953 3   0.000000
+6953 5120 -40.000000
+6953 5190  40.000000
+6953 5192   1.000000
+6954 0   0.000000
+6954 2   0.000000
+6954 3   0.000000
+6954 5123 -80.000000
+6954 5193  80.000000
+6954 5195   1.000000
+6955 0   0.000000
+6955 2   0.000000
+6955 3   0.000000
+6955 5124 -40.000000
+6955 5194  40.000000
+6955 5196   1.000000
+6956 0   0.000000
+6956 2   0.000000
+6956 3   0.000000
+6956 5129 -80.000000
+6956 5199  80.000000
+6956 5201   1.000000
+6957 0   0.000000
+6957 2   0.000000
+6957 3   0.000000
+6957 5130 -40.000000
+6957 5200  40.000000
+6957 5202   1.000000
+6958 0   0.000000
+6958 2   0.000000
+6958 3   0.000000
+6958 5133 -80.000000
+6958 5203  80.000000
+6958 5205   1.000000
+6959 0   0.000000
+6959 2   0.000000
+6959 3   0.000000
+6959 5134 -40.000000
+6959 5204  40.000000
+6959 5206   1.000000
+6960 0   0.000000
+6960 2   0.000000
+6960 3   0.000000
+6960 5137 -80.000000
+6960 5207  80.000000
+6960 5209   1.000000
+6961 0   0.000000
+6961 2   0.000000
+6961 3   0.000000
+6961 5138 -40.000000
+6961 5208  40.000000
+6961 5210   1.000000
+6962 0   0.000000
+6962 2   0.000000
+6962 3   0.000000
+6962 5143 -80.000000
+6962 5213  80.000000
+6962 5215   1.000000
+6963 0   0.000000
+6963 2   0.000000
+6963 3   0.000000
+6963 5144 -40.000000
+6963 5214  40.000000
+6963 5216   1.000000
+6964 0   0.000000
+6964 2   0.000000
+6964 3   0.000000
+6964 5147 -80.000000
+6964 5217  80.000000
+6964 5219   1.000000
+6965 0   0.000000
+6965 2   0.000000
+6965 3   0.000000
+6965 5148 -40.000000
+6965 5218  40.000000
+6965 5220   1.000000
+6966 0   0.000000
+6966 2   0.000000
+6966 3   0.000000
+6966 5151 -80.000000
+6966 5221  80.000000
+6966 5223   1.000000
+6967 0   0.000000
+6967 2   0.000000
+6967 3   0.000000
+6967 5152 -40.000000
+6967 5222  40.000000
+6967 5224   1.000000
+6968 0   0.000000
+6968 2   0.000000
+6968 3   0.000000
+6968 5157 -80.000000
+6968 5227  80.000000
+6968 5229   1.000000
+6969 0   0.000000
+6969 2   0.000000
+6969 3   0.000000
+6969 5158 -40.000000
+6969 5228  40.000000
+6969 5230   1.000000
+6970 0   0.000000
+6970 2   0.000000
+6970 3   0.000000
+6970 5161 -80.000000
+6970 5231  80.000000
+6970 5233   1.000000
+6971 0   0.000000
+6971 2   0.000000
+6971 3   0.000000
+6971 5162 -40.000000
+6971 5232  40.000000
+6971 5234   1.000000
+6972 0   0.000000
+6972 2   0.000000
+6972 3   0.000000
+6972 5165 -80.000000
+6972 5235  80.000000
+6972 5237   1.000000
+6973 0   0.000000
+6973 2   0.000000
+6973 3   0.000000
+6973 5166 -40.000000
+6973 5236  40.000000
+6973 5238   1.000000
+6974 0   0.000000
+6974 2   0.000000
+6974 3   0.000000
+6974 5171 -80.000000
+6974 5241  80.000000
+6974 5243   1.000000
+6975 0   0.000000
+6975 2   0.000000
+6975 3   0.000000
+6975 5172 -40.000000
+6975 5242  40.000000
+6975 5244   1.000000
+6976 0   0.000000
+6976 2   0.000000
+6976 3   0.000000
+6976 5175 -80.000000
+6976 5245  80.000000
+6976 5247   1.000000
+6977 0   0.000000
+6977 2   0.000000
+6977 3   0.000000
+6977 5176 -40.000000
+6977 5246  40.000000
+6977 5248   1.000000
+6978 0   0.000000
+6978 2   0.000000
+6978 3   0.000000
+6978 5179 -80.000000
+6978 5249  80.000000
+6978 5251   1.000000
+6979 0   0.000000
+6979 2   0.000000
+6979 3   0.000000
+6979 5180 -40.000000
+6979 5250  40.000000
+6979 5252   1.000000
+6980 0   0.000000
+6980 2   0.000000
+6980 3   0.000000
+6980 5185 -80.000000
+6980 5255  80.000000
+6980 5257   1.000000
+6981 0   0.000000
+6981 2   0.000000
+6981 3   0.000000
+6981 5186 -40.000000
+6981 5256  40.000000
+6981 5258   1.000000
+6982 0   0.000000
+6982 2   0.000000
+6982 3   0.000000
+6982 5189 -80.000000
+6982 5259  80.000000
+6982 5261   1.000000
+6983 0   0.000000
+6983 2   0.000000
+6983 3   0.000000
+6983 5190 -40.000000
+6983 5260  40.000000
+6983 5262   1.000000
+6984 0   0.000000
+6984 2   0.000000
+6984 3   0.000000
+6984 5193 -80.000000
+6984 5263  80.000000
+6984 5265   1.000000
+6985 0   0.000000
+6985 2   0.000000
+6985 3   0.000000
+6985 5194 -40.000000
+6985 5264  40.000000
+6985 5266   1.000000
+6986 0   0.000000
+6986 2   0.000000
+6986 3   0.000000
+6986 5199 -80.000000
+6986 5269  80.000000
+6986 5271   1.000000
+6987 0   0.000000
+6987 2   0.000000
+6987 3   0.000000
+6987 5200 -40.000000
+6987 5270  40.000000
+6987 5272   1.000000
+6988 0   0.000000
+6988 2   0.000000
+6988 3   0.000000
+6988 5203 -80.000000
+6988 5273  80.000000
+6988 5275   1.000000
+6989 0   0.000000
+6989 2   0.000000
+6989 3   0.000000
+6989 5204 -40.000000
+6989 5274  40.000000
+6989 5276   1.000000
+6990 0   0.000000
+6990 2   0.000000
+6990 3   0.000000
+6990 5207 -80.000000
+6990 5277  80.000000
+6990 5279   1.000000
+6991 0   0.000000
+6991 2   0.000000
+6991 3   0.000000
+6991 5208 -40.000000
+6991 5278  40.000000
+6991 5280   1.000000
+6992 0   0.000000
+6992 2   0.000000
+6992 3   0.000000
+6992 5213 -80.000000
+6992 5283  80.000000
+6992 5285   1.000000
+6993 0   0.000000
+6993 2   0.000000
+6993 3   0.000000
+6993 5214 -40.000000
+6993 5284  40.000000
+6993 5286   1.000000
+6994 0   0.000000
+6994 2   0.000000
+6994 3   0.000000
+6994 5217 -80.000000
+6994 5287  80.000000
+6994 5289   1.000000
+6995 0   0.000000
+6995 2   0.000000
+6995 3   0.000000
+6995 5218 -40.000000
+6995 5288  40.000000
+6995 5290   1.000000
+6996 0   0.000000
+6996 2   0.000000
+6996 3   0.000000
+6996 5221 -80.000000
+6996 5291  80.000000
+6996 5293   1.000000
+6997 0   0.000000
+6997 2   0.000000
+6997 3   0.000000
+6997 5222 -40.000000
+6997 5292  40.000000
+6997 5294   1.000000
+6998 0   0.000000
+6998 2   0.000000
+6998 3   0.000000
+6998 5227 -80.000000
+6998 5297  80.000000
+6998 5299   1.000000
+6999 0   0.000000
+6999 2   0.000000
+6999 3   0.000000
+6999 5228 -40.000000
+6999 5298  40.000000
+6999 5300   1.000000
+7000 0   0.000000
+7000 2   0.000000
+7000 3   0.000000
+7000 5231 -80.000000
+7000 5301  80.000000
+7000 5303   1.000000
+7001 0   0.000000
+7001 2   0.000000
+7001 3   0.000000
+7001 5232 -40.000000
+7001 5302  40.000000
+7001 5304   1.000000
+7002 0   0.000000
+7002 2   0.000000
+7002 3   0.000000
+7002 5235 -80.000000
+7002 5305  80.000000
+7002 5307   1.000000
+7003 0   0.000000
+7003 2   0.000000
+7003 3   0.000000
+7003 5236 -40.000000
+7003 5306  40.000000
+7003 5308   1.000000
+7004 0   0.000000
+7004 2   0.000000
+7004 3   0.000000
+7004 5241 -80.000000
+7004 5311  80.000000
+7004 5313   1.000000
+7005 0   0.000000
+7005 2   0.000000
+7005 3   0.000000
+7005 5242 -40.000000
+7005 5312  40.000000
+7005 5314   1.000000
+7006 0   0.000000
+7006 2   0.000000
+7006 3   0.000000
+7006 5245 -80.000000
+7006 5315  80.000000
+7006 5317   1.000000
+7007 0   0.000000
+7007 2   0.000000
+7007 3   0.000000
+7007 5246 -40.000000
+7007 5316  40.000000
+7007 5318   1.000000
+7008 0   0.000000
+7008 2   0.000000
+7008 3   0.000000
+7008 5249 -80.000000
+7008 5319  80.000000
+7008 5321   1.000000
+7009 0   0.000000
+7009 2   0.000000
+7009 3   0.000000
+7009 5250 -40.000000
+7009 5320  40.000000
+7009 5322   1.000000
+7010 0   0.000000
+7010 2   0.000000
+7010 3   0.000000
+7010 5255 -80.000000
+7010 5325  80.000000
+7010 5327   1.000000
+7011 0   0.000000
+7011 2   0.000000
+7011 3   0.000000
+7011 5256 -40.000000
+7011 5326  40.000000
+7011 5328   1.000000
+7012 0   0.000000
+7012 2   0.000000
+7012 3   0.000000
+7012 5259 -80.000000
+7012 5329  80.000000
+7012 5331   1.000000
+7013 0   0.000000
+7013 2   0.000000
+7013 3   0.000000
+7013 5260 -40.000000
+7013 5330  40.000000
+7013 5332   1.000000
+7014 0   0.000000
+7014 2   0.000000
+7014 3   0.000000
+7014 5263 -80.000000
+7014 5333  80.000000
+7014 5335   1.000000
+7015 0   0.000000
+7015 2   0.000000
+7015 3   0.000000
+7015 5264 -40.000000
+7015 5334  40.000000
+7015 5336   1.000000
+7016 0   0.000000
+7016 2   0.000000
+7016 3   0.000000
+7016 5269 -80.000000
+7016 5339  80.000000
+7016 5341   1.000000
+7017 0   0.000000
+7017 2   0.000000
+7017 3   0.000000
+7017 5270 -40.000000
+7017 5340  40.000000
+7017 5342   1.000000
+7018 0   0.000000
+7018 2   0.000000
+7018 3   0.000000
+7018 5273 -80.000000
+7018 5343  80.000000
+7018 5345   1.000000
+7019 0   0.000000
+7019 2   0.000000
+7019 3   0.000000
+7019 5274 -40.000000
+7019 5344  40.000000
+7019 5346   1.000000
+7020 0   0.000000
+7020 2   0.000000
+7020 3   0.000000
+7020 5277 -80.000000
+7020 5347  80.000000
+7020 5349   1.000000
+7021 0   0.000000
+7021 2   0.000000
+7021 3   0.000000
+7021 5278 -40.000000
+7021 5348  40.000000
+7021 5350   1.000000
+7022 0   0.000000
+7022 2   0.000000
+7022 3   0.000000
+7022 5283 -80.000000
+7022 5353  80.000000
+7022 5355   1.000000
+7023 0   0.000000
+7023 2   0.000000
+7023 3   0.000000
+7023 5284 -40.000000
+7023 5354  40.000000
+7023 5356   1.000000
+7024 0   0.000000
+7024 2   0.000000
+7024 3   0.000000
+7024 5287 -80.000000
+7024 5357  80.000000
+7024 5359   1.000000
+7025 0   0.000000
+7025 2   0.000000
+7025 3   0.000000
+7025 5288 -40.000000
+7025 5358  40.000000
+7025 5360   1.000000
+7026 0   0.000000
+7026 2   0.000000
+7026 3   0.000000
+7026 5291 -80.000000
+7026 5361  80.000000
+7026 5363   1.000000
+7027 0   0.000000
+7027 2   0.000000
+7027 3   0.000000
+7027 5292 -40.000000
+7027 5362  40.000000
+7027 5364   1.000000
+7028 0   0.000000
+7028 2   0.000000
+7028 3   0.000000
+7028 5297 -80.000000
+7028 5367  80.000000
+7028 5369   1.000000
+7029 0   0.000000
+7029 2   0.000000
+7029 3   0.000000
+7029 5298 -40.000000
+7029 5368  40.000000
+7029 5370   1.000000
+7030 0   0.000000
+7030 2   0.000000
+7030 3   0.000000
+7030 5301 -80.000000
+7030 5371  80.000000
+7030 5373   1.000000
+7031 0   0.000000
+7031 2   0.000000
+7031 3   0.000000
+7031 5302 -40.000000
+7031 5372  40.000000
+7031 5374   1.000000
+7032 0   0.000000
+7032 2   0.000000
+7032 3   0.000000
+7032 5305 -80.000000
+7032 5375  80.000000
+7032 5377   1.000000
+7033 0   0.000000
+7033 2   0.000000
+7033 3   0.000000
+7033 5306 -40.000000
+7033 5376  40.000000
+7033 5378   1.000000
+7034 0   0.000000
+7034 2   0.000000
+7034 3   0.000000
+7034 5311 -80.000000
+7034 5381  80.000000
+7034 5383   1.000000
+7035 0   0.000000
+7035 2   0.000000
+7035 3   0.000000
+7035 5312 -40.000000
+7035 5382  40.000000
+7035 5384   1.000000
+7036 0   0.000000
+7036 2   0.000000
+7036 3   0.000000
+7036 5315 -80.000000
+7036 5385  80.000000
+7036 5387   1.000000
+7037 0   0.000000
+7037 2   0.000000
+7037 3   0.000000
+7037 5316 -40.000000
+7037 5386  40.000000
+7037 5388   1.000000
+7038 0   0.000000
+7038 2   0.000000
+7038 3   0.000000
+7038 5319 -80.000000
+7038 5389  80.000000
+7038 5391   1.000000
+7039 0   0.000000
+7039 2   0.000000
+7039 3   0.000000
+7039 5320 -40.000000
+7039 5390  40.000000
+7039 5392   1.000000
+7040 0   0.000000
+7040 2   0.000000
+7040 3   0.000000
+7040 5325 -80.000000
+7040 5395  80.000000
+7040 5397   1.000000
+7041 0   0.000000
+7041 2   0.000000
+7041 3   0.000000
+7041 5326 -40.000000
+7041 5396  40.000000
+7041 5398   1.000000
+7042 0   0.000000
+7042 2   0.000000
+7042 3   0.000000
+7042 5329 -80.000000
+7042 5399  80.000000
+7042 5401   1.000000
+7043 0   0.000000
+7043 2   0.000000
+7043 3   0.000000
+7043 5330 -40.000000
+7043 5400  40.000000
+7043 5402   1.000000
+7044 0   0.000000
+7044 2   0.000000
+7044 3   0.000000
+7044 5333 -80.000000
+7044 5403  80.000000
+7044 5405   1.000000
+7045 0   0.000000
+7045 2   0.000000
+7045 3   0.000000
+7045 5334 -40.000000
+7045 5404  40.000000
+7045 5406   1.000000
+7046 0   0.000000
+7046 2   0.000000
+7046 3   0.000000
+7046 5339 -80.000000
+7046 5409  80.000000
+7046 5411   1.000000
+7047 0   0.000000
+7047 2   0.000000
+7047 3   0.000000
+7047 5340 -40.000000
+7047 5410  40.000000
+7047 5412   1.000000
+7048 0   0.000000
+7048 2   0.000000
+7048 3   0.000000
+7048 5343 -80.000000
+7048 5413  80.000000
+7048 5415   1.000000
+7049 0   0.000000
+7049 2   0.000000
+7049 3   0.000000
+7049 5344 -40.000000
+7049 5414  40.000000
+7049 5416   1.000000
+7050 0   0.000000
+7050 2   0.000000
+7050 3   0.000000
+7050 5347 -80.000000
+7050 5417  80.000000
+7050 5419   1.000000
+7051 0   0.000000
+7051 2   0.000000
+7051 3   0.000000
+7051 5348 -40.000000
+7051 5418  40.000000
+7051 5420   1.000000
+7052 0   0.000000
+7052 2   0.000000
+7052 3   0.000000
+7052 5353 -80.000000
+7052 5423  80.000000
+7052 5425   1.000000
+7053 0   0.000000
+7053 2   0.000000
+7053 3   0.000000
+7053 5354 -40.000000
+7053 5424  40.000000
+7053 5426   1.000000
+7054 0   0.000000
+7054 2   0.000000
+7054 3   0.000000
+7054 5357 -80.000000
+7054 5427  80.000000
+7054 5429   1.000000
+7055 0   0.000000
+7055 2   0.000000
+7055 3   0.000000
+7055 5358 -40.000000
+7055 5428  40.000000
+7055 5430   1.000000
+7056 0   0.000000
+7056 2   0.000000
+7056 3   0.000000
+7056 5361 -80.000000
+7056 5431  80.000000
+7056 5433   1.000000
+7057 0   0.000000
+7057 2   0.000000
+7057 3   0.000000
+7057 5362 -40.000000
+7057 5432  40.000000
+7057 5434   1.000000
+7058 0   0.000000
+7058 2   0.000000
+7058 3   0.000000
+7058 5367 -80.000000
+7058 5437  80.000000
+7058 5439   1.000000
+7059 0   0.000000
+7059 2   0.000000
+7059 3   0.000000
+7059 5368 -40.000000
+7059 5438  40.000000
+7059 5440   1.000000
+7060 0   0.000000
+7060 2   0.000000
+7060 3   0.000000
+7060 5371 -80.000000
+7060 5441  80.000000
+7060 5443   1.000000
+7061 0   0.000000
+7061 2   0.000000
+7061 3   0.000000
+7061 5372 -40.000000
+7061 5442  40.000000
+7061 5444   1.000000
+7062 0   0.000000
+7062 2   0.000000
+7062 3   0.000000
+7062 5375 -80.000000
+7062 5445  80.000000
+7062 5447   1.000000
+7063 0   0.000000
+7063 2   0.000000
+7063 3   0.000000
+7063 5376 -40.000000
+7063 5446  40.000000
+7063 5448   1.000000
+7064 0   0.000000
+7064 2   0.000000
+7064 3   0.000000
+7064 5381 -80.000000
+7064 5451  80.000000
+7064 5453   1.000000
+7065 0   0.000000
+7065 2   0.000000
+7065 3   0.000000
+7065 5382 -40.000000
+7065 5452  40.000000
+7065 5454   1.000000
+7066 0   0.000000
+7066 2   0.000000
+7066 3   0.000000
+7066 5385 -80.000000
+7066 5455  80.000000
+7066 5457   1.000000
+7067 0   0.000000
+7067 2   0.000000
+7067 3   0.000000
+7067 5386 -40.000000
+7067 5456  40.000000
+7067 5458   1.000000
+7068 0   0.000000
+7068 2   0.000000
+7068 3   0.000000
+7068 5389 -80.000000
+7068 5459  80.000000
+7068 5461   1.000000
+7069 0   0.000000
+7069 2   0.000000
+7069 3   0.000000
+7069 5390 -40.000000
+7069 5460  40.000000
+7069 5462   1.000000
+7070 0   0.000000
+7070 2   0.000000
+7070 3   0.000000
+7070 5395 -80.000000
+7070 5465  80.000000
+7070 5467   1.000000
+7071 0   0.000000
+7071 2   0.000000
+7071 3   0.000000
+7071 5396 -40.000000
+7071 5466  40.000000
+7071 5468   1.000000
+7072 0   0.000000
+7072 2   0.000000
+7072 3   0.000000
+7072 5399 -80.000000
+7072 5469  80.000000
+7072 5471   1.000000
+7073 0   0.000000
+7073 2   0.000000
+7073 3   0.000000
+7073 5400 -40.000000
+7073 5470  40.000000
+7073 5472   1.000000
+7074 0   0.000000
+7074 2   0.000000
+7074 3   0.000000
+7074 5403 -80.000000
+7074 5473  80.000000
+7074 5475   1.000000
+7075 0   0.000000
+7075 2   0.000000
+7075 3   0.000000
+7075 5404 -40.000000
+7075 5474  40.000000
+7075 5476   1.000000
+7076 0   0.000000
+7076 2   0.000000
+7076 3   0.000000
+7076 5409 -80.000000
+7076 5479  80.000000
+7076 5481   1.000000
+7077 0   0.000000
+7077 2   0.000000
+7077 3   0.000000
+7077 5410 -40.000000
+7077 5480  40.000000
+7077 5482   1.000000
+7078 0   0.000000
+7078 2   0.000000
+7078 3   0.000000
+7078 5413 -80.000000
+7078 5483  80.000000
+7078 5485   1.000000
+7079 0   0.000000
+7079 2   0.000000
+7079 3   0.000000
+7079 5414 -40.000000
+7079 5484  40.000000
+7079 5486   1.000000
+7080 0   0.000000
+7080 2   0.000000
+7080 3   0.000000
+7080 5417 -80.000000
+7080 5487  80.000000
+7080 5489   1.000000
+7081 0   0.000000
+7081 2   0.000000
+7081 3   0.000000
+7081 5418 -40.000000
+7081 5488  40.000000
+7081 5490   1.000000
+7082 0   0.000000
+7082 2   0.000000
+7082 3   0.000000
+7082 5423 -80.000000
+7082 5493  80.000000
+7082 5495   1.000000
+7083 0   0.000000
+7083 2   0.000000
+7083 3   0.000000
+7083 5424 -40.000000
+7083 5494  40.000000
+7083 5496   1.000000
+7084 0   0.000000
+7084 2   0.000000
+7084 3   0.000000
+7084 5427 -80.000000
+7084 5497  80.000000
+7084 5499   1.000000
+7085 0   0.000000
+7085 2   0.000000
+7085 3   0.000000
+7085 5428 -40.000000
+7085 5498  40.000000
+7085 5500   1.000000
+7086 0   0.000000
+7086 2   0.000000
+7086 3   0.000000
+7086 5431 -80.000000
+7086 5501  80.000000
+7086 5503   1.000000
+7087 0   0.000000
+7087 2   0.000000
+7087 3   0.000000
+7087 5432 -40.000000
+7087 5502  40.000000
+7087 5504   1.000000
+7088 0   0.000000
+7088 2   0.000000
+7088 3   0.000000
+7088 5437 -80.000000
+7088 5507  80.000000
+7088 5509   1.000000
+7089 0   0.000000
+7089 2   0.000000
+7089 3   0.000000
+7089 5438 -40.000000
+7089 5508  40.000000
+7089 5510   1.000000
+7090 0   0.000000
+7090 2   0.000000
+7090 3   0.000000
+7090 5441 -80.000000
+7090 5511  80.000000
+7090 5513   1.000000
+7091 0   0.000000
+7091 2   0.000000
+7091 3   0.000000
+7091 5442 -40.000000
+7091 5512  40.000000
+7091 5514   1.000000
+7092 0   0.000000
+7092 2   0.000000
+7092 3   0.000000
+7092 5445 -80.000000
+7092 5515  80.000000
+7092 5517   1.000000
+7093 0   0.000000
+7093 2   0.000000
+7093 3   0.000000
+7093 5446 -40.000000
+7093 5516  40.000000
+7093 5518   1.000000
+7094 0   0.000000
+7094 2   0.000000
+7094 3   0.000000
+7094 5451 -80.000000
+7094 5521  80.000000
+7094 5523   1.000000
+7095 0   0.000000
+7095 2   0.000000
+7095 3   0.000000
+7095 5452 -40.000000
+7095 5522  40.000000
+7095 5524   1.000000
+7096 0   0.000000
+7096 2   0.000000
+7096 3   0.000000
+7096 5455 -80.000000
+7096 5525  80.000000
+7096 5527   1.000000
+7097 0   0.000000
+7097 2   0.000000
+7097 3   0.000000
+7097 5456 -40.000000
+7097 5526  40.000000
+7097 5528   1.000000
+7098 0   0.000000
+7098 2   0.000000
+7098 3   0.000000
+7098 5459 -80.000000
+7098 5529  80.000000
+7098 5531   1.000000
+7099 0   0.000000
+7099 2   0.000000
+7099 3   0.000000
+7099 5460 -40.000000
+7099 5530  40.000000
+7099 5532   1.000000
+7100 0   0.000000
+7100 2   0.000000
+7100 3   0.000000
+7100 5465 -80.000000
+7100 5535  80.000000
+7100 5537   1.000000
+7101 0   0.000000
+7101 2   0.000000
+7101 3   0.000000
+7101 5466 -40.000000
+7101 5536  40.000000
+7101 5538   1.000000
+7102 0   0.000000
+7102 2   0.000000
+7102 3   0.000000
+7102 5469 -80.000000
+7102 5539  80.000000
+7102 5541   1.000000
+7103 0   0.000000
+7103 2   0.000000
+7103 3   0.000000
+7103 5470 -40.000000
+7103 5540  40.000000
+7103 5542   1.000000
+7104 0   0.000000
+7104 2   0.000000
+7104 3   0.000000
+7104 5473 -80.000000
+7104 5543  80.000000
+7104 5545   1.000000
+7105 0   0.000000
+7105 2   0.000000
+7105 3   0.000000
+7105 5474 -40.000000
+7105 5544  40.000000
+7105 5546   1.000000
+7106 0   0.000000
+7106 2   0.000000
+7106 3   0.000000
+7106 5479 -80.000000
+7106 5549  80.000000
+7106 5551   1.000000
+7107 0   0.000000
+7107 2   0.000000
+7107 3   0.000000
+7107 5480 -40.000000
+7107 5550  40.000000
+7107 5552   1.000000
+7108 0   0.000000
+7108 2   0.000000
+7108 3   0.000000
+7108 5483 -80.000000
+7108 5553  80.000000
+7108 5555   1.000000
+7109 0   0.000000
+7109 2   0.000000
+7109 3   0.000000
+7109 5484 -40.000000
+7109 5554  40.000000
+7109 5556   1.000000
+7110 0   0.000000
+7110 2   0.000000
+7110 3   0.000000
+7110 5487 -80.000000
+7110 5557  80.000000
+7110 5559   1.000000
+7111 0   0.000000
+7111 2   0.000000
+7111 3   0.000000
+7111 5488 -40.000000
+7111 5558  40.000000
+7111 5560   1.000000
+7112 0   0.000000
+7112 2   0.000000
+7112 3   0.000000
+7112 5493 -80.000000
+7112 5563  80.000000
+7112 5565   1.000000
+7113 0   0.000000
+7113 2   0.000000
+7113 3   0.000000
+7113 5494 -40.000000
+7113 5564  40.000000
+7113 5566   1.000000
+7114 0   0.000000
+7114 2   0.000000
+7114 3   0.000000
+7114 5497 -80.000000
+7114 5567  80.000000
+7114 5569   1.000000
+7115 0   0.000000
+7115 2   0.000000
+7115 3   0.000000
+7115 5498 -40.000000
+7115 5568  40.000000
+7115 5570   1.000000
+7116 0   0.000000
+7116 2   0.000000
+7116 3   0.000000
+7116 5501 -80.000000
+7116 5571  80.000000
+7116 5573   1.000000
+7117 0   0.000000
+7117 2   0.000000
+7117 3   0.000000
+7117 5502 -40.000000
+7117 5572  40.000000
+7117 5574   1.000000
+7118 0   0.000000
+7118 2   0.000000
+7118 3   0.000000
+7118 5507 -80.000000
+7118 5577  80.000000
+7118 5579   1.000000
+7119 0   0.000000
+7119 2   0.000000
+7119 3   0.000000
+7119 5508 -40.000000
+7119 5578  40.000000
+7119 5580   1.000000
+7120 0   0.000000
+7120 2   0.000000
+7120 3   0.000000
+7120 5511 -80.000000
+7120 5581  80.000000
+7120 5583   1.000000
+7121 0   0.000000
+7121 2   0.000000
+7121 3   0.000000
+7121 5512 -40.000000
+7121 5582  40.000000
+7121 5584   1.000000
+7122 0   0.000000
+7122 2   0.000000
+7122 3   0.000000
+7122 5515 -80.000000
+7122 5585  80.000000
+7122 5587   1.000000
+7123 0   0.000000
+7123 2   0.000000
+7123 3   0.000000
+7123 5516 -40.000000
+7123 5586  40.000000
+7123 5588   1.000000
+7124 0   0.000000
+7124 2   0.000000
+7124 3   0.000000
+7124 5521 -80.000000
+7124 5591  80.000000
+7124 5593   1.000000
+7125 0   0.000000
+7125 2   0.000000
+7125 3   0.000000
+7125 5522 -40.000000
+7125 5592  40.000000
+7125 5594   1.000000
+7126 0   0.000000
+7126 2   0.000000
+7126 3   0.000000
+7126 5525 -80.000000
+7126 5595  80.000000
+7126 5597   1.000000
+7127 0   0.000000
+7127 2   0.000000
+7127 3   0.000000
+7127 5526 -40.000000
+7127 5596  40.000000
+7127 5598   1.000000
+7128 0   0.000000
+7128 2   0.000000
+7128 3   0.000000
+7128 5529 -80.000000
+7128 5599  80.000000
+7128 5601   1.000000
+7129 0   0.000000
+7129 2   0.000000
+7129 3   0.000000
+7129 5530 -40.000000
+7129 5600  40.000000
+7129 5602   1.000000
+7130 0   0.000000
+7130 2   0.000000
+7130 3   0.000000
+7130 5535 -80.000000
+7130 5605  80.000000
+7130 5607   1.000000
+7131 0   0.000000
+7131 2   0.000000
+7131 3   0.000000
+7131 5536 -40.000000
+7131 5606  40.000000
+7131 5608   1.000000
+7132 0   0.000000
+7132 2   0.000000
+7132 3   0.000000
+7132 5539 -80.000000
+7132 5609  80.000000
+7132 5611   1.000000
+7133 0   0.000000
+7133 2   0.000000
+7133 3   0.000000
+7133 5540 -40.000000
+7133 5610  40.000000
+7133 5612   1.000000
+7134 0   0.000000
+7134 2   0.000000
+7134 3   0.000000
+7134 5543 -80.000000
+7134 5613  80.000000
+7134 5615   1.000000
+7135 0   0.000000
+7135 2   0.000000
+7135 3   0.000000
+7135 5544 -40.000000
+7135 5614  40.000000
+7135 5616   1.000000
+7136 0   0.000000
+7136 2   0.000000
+7136 3   0.000000
+7136 5549 -80.000000
+7136 5619  80.000000
+7136 5621   1.000000
+7137 0   0.000000
+7137 2   0.000000
+7137 3   0.000000
+7137 5550 -40.000000
+7137 5620  40.000000
+7137 5622   1.000000
+7138 0   0.000000
+7138 2   0.000000
+7138 3   0.000000
+7138 5553 -80.000000
+7138 5623  80.000000
+7138 5625   1.000000
+7139 0   0.000000
+7139 2   0.000000
+7139 3   0.000000
+7139 5554 -40.000000
+7139 5624  40.000000
+7139 5626   1.000000
+7140 0   0.000000
+7140 2   0.000000
+7140 3   0.000000
+7140 5557 -80.000000
+7140 5627  80.000000
+7140 5629   1.000000
+7141 0   0.000000
+7141 2   0.000000
+7141 3   0.000000
+7141 5558 -40.000000
+7141 5628  40.000000
+7141 5630   1.000000
+7142 0   0.000000
+7142 2   0.000000
+7142 3   0.000000
+7142 5563 -80.000000
+7142 5633  80.000000
+7142 5635   1.000000
+7143 0   0.000000
+7143 2   0.000000
+7143 3   0.000000
+7143 5564 -40.000000
+7143 5634  40.000000
+7143 5636   1.000000
+7144 0   0.000000
+7144 2   0.000000
+7144 3   0.000000
+7144 5567 -80.000000
+7144 5637  80.000000
+7144 5639   1.000000
+7145 0   0.000000
+7145 2   0.000000
+7145 3   0.000000
+7145 5568 -40.000000
+7145 5638  40.000000
+7145 5640   1.000000
+7146 0   0.000000
+7146 2   0.000000
+7146 3   0.000000
+7146 5571 -80.000000
+7146 5641  80.000000
+7146 5643   1.000000
+7147 0   0.000000
+7147 2   0.000000
+7147 3   0.000000
+7147 5572 -40.000000
+7147 5642  40.000000
+7147 5644   1.000000
+7148 0   0.000000
+7148 2   0.000000
+7148 3   0.000000
+7148 5577 -80.000000
+7148 5647  80.000000
+7148 5649   1.000000
+7149 0   0.000000
+7149 2   0.000000
+7149 3   0.000000
+7149 5578 -40.000000
+7149 5648  40.000000
+7149 5650   1.000000
+7150 0   0.000000
+7150 2   0.000000
+7150 3   0.000000
+7150 5581 -80.000000
+7150 5651  80.000000
+7150 5653   1.000000
+7151 0   0.000000
+7151 2   0.000000
+7151 3   0.000000
+7151 5582 -40.000000
+7151 5652  40.000000
+7151 5654   1.000000
+7152 0   0.000000
+7152 2   0.000000
+7152 3   0.000000
+7152 5585 -80.000000
+7152 5655  80.000000
+7152 5657   1.000000
+7153 0   0.000000
+7153 2   0.000000
+7153 3   0.000000
+7153 5586 -40.000000
+7153 5656  40.000000
+7153 5658   1.000000
+7154 0   0.000000
+7154 2   0.000000
+7154 3   0.000000
+7154 5591 -80.000000
+7154 5661  80.000000
+7154 5663   1.000000
+7155 0   0.000000
+7155 2   0.000000
+7155 3   0.000000
+7155 5592 -40.000000
+7155 5662  40.000000
+7155 5664   1.000000
+7156 0   0.000000
+7156 2   0.000000
+7156 3   0.000000
+7156 5595 -80.000000
+7156 5665  80.000000
+7156 5667   1.000000
+7157 0   0.000000
+7157 2   0.000000
+7157 3   0.000000
+7157 5596 -40.000000
+7157 5666  40.000000
+7157 5668   1.000000
+7158 0   0.000000
+7158 2   0.000000
+7158 3   0.000000
+7158 5599 -80.000000
+7158 5669  80.000000
+7158 5671   1.000000
+7159 0   0.000000
+7159 2   0.000000
+7159 3   0.000000
+7159 5600 -40.000000
+7159 5670  40.000000
+7159 5672   1.000000
+7160 0   0.000000
+7160 2   0.000000
+7160 3   0.000000
+7160 5605 -80.000000
+7160 5675  80.000000
+7160 5677   1.000000
+7161 0   0.000000
+7161 2   0.000000
+7161 3   0.000000
+7161 5606 -40.000000
+7161 5676  40.000000
+7161 5678   1.000000
+7162 0   0.000000
+7162 2   0.000000
+7162 3   0.000000
+7162 5609 -80.000000
+7162 5679  80.000000
+7162 5681   1.000000
+7163 0   0.000000
+7163 2   0.000000
+7163 3   0.000000
+7163 5610 -40.000000
+7163 5680  40.000000
+7163 5682   1.000000
+7164 0   0.000000
+7164 2   0.000000
+7164 3   0.000000
+7164 5613 -80.000000
+7164 5683  80.000000
+7164 5685   1.000000
+7165 0   0.000000
+7165 2   0.000000
+7165 3   0.000000
+7165 5614 -40.000000
+7165 5684  40.000000
+7165 5686   1.000000
+7166 0   0.000000
+7166 2   0.000000
+7166 3   0.000000
+7166 5619 -80.000000
+7166 5689  80.000000
+7166 5691   1.000000
+7167 0   0.000000
+7167 2   0.000000
+7167 3   0.000000
+7167 5620 -40.000000
+7167 5690  40.000000
+7167 5692   1.000000
+7168 0   0.000000
+7168 2   0.000000
+7168 3   0.000000
+7168 5623 -80.000000
+7168 5693  80.000000
+7168 5695   1.000000
+7169 0   0.000000
+7169 2   0.000000
+7169 3   0.000000
+7169 5624 -40.000000
+7169 5694  40.000000
+7169 5696   1.000000
+7170 0   0.000000
+7170 2   0.000000
+7170 3   0.000000
+7170 5627 -80.000000
+7170 5697  80.000000
+7170 5699   1.000000
+7171 0   0.000000
+7171 2   0.000000
+7171 3   0.000000
+7171 5628 -40.000000
+7171 5698  40.000000
+7171 5700   1.000000
+7172 0   0.000000
+7172 2   0.000000
+7172 3   0.000000
+7172 5633 -80.000000
+7172 5703  80.000000
+7172 5705   1.000000
+7173 0   0.000000
+7173 2   0.000000
+7173 3   0.000000
+7173 5634 -40.000000
+7173 5704  40.000000
+7173 5706   1.000000
+7174 0   0.000000
+7174 2   0.000000
+7174 3   0.000000
+7174 5637 -80.000000
+7174 5707  80.000000
+7174 5709   1.000000
+7175 0   0.000000
+7175 2   0.000000
+7175 3   0.000000
+7175 5638 -40.000000
+7175 5708  40.000000
+7175 5710   1.000000
+7176 0   0.000000
+7176 2   0.000000
+7176 3   0.000000
+7176 5641 -80.000000
+7176 5711  80.000000
+7176 5713   1.000000
+7177 0   0.000000
+7177 2   0.000000
+7177 3   0.000000
+7177 5642 -40.000000
+7177 5712  40.000000
+7177 5714   1.000000
+7178 0   0.000000
+7178 2   0.000000
+7178 3   0.000000
+7178 5647 -80.000000
+7178 5717  80.000000
+7178 5719   1.000000
+7179 0   0.000000
+7179 2   0.000000
+7179 3   0.000000
+7179 5648 -40.000000
+7179 5718  40.000000
+7179 5720   1.000000
+7180 0   0.000000
+7180 2   0.000000
+7180 3   0.000000
+7180 5651 -80.000000
+7180 5721  80.000000
+7180 5723   1.000000
+7181 0   0.000000
+7181 2   0.000000
+7181 3   0.000000
+7181 5652 -40.000000
+7181 5722  40.000000
+7181 5724   1.000000
+7182 0   0.000000
+7182 2   0.000000
+7182 3   0.000000
+7182 5655 -80.000000
+7182 5725  80.000000
+7182 5727   1.000000
+7183 0   0.000000
+7183 2   0.000000
+7183 3   0.000000
+7183 5656 -40.000000
+7183 5726  40.000000
+7183 5728   1.000000
+7184 0   0.000000
+7184 2   0.000000
+7184 3   0.000000
+7184 5661 -80.000000
+7184 5731  80.000000
+7184 5733   1.000000
+7185 0   0.000000
+7185 2   0.000000
+7185 3   0.000000
+7185 5662 -40.000000
+7185 5732  40.000000
+7185 5734   1.000000
+7186 0   0.000000
+7186 2   0.000000
+7186 3   0.000000
+7186 5665 -80.000000
+7186 5735  80.000000
+7186 5737   1.000000
+7187 0   0.000000
+7187 2   0.000000
+7187 3   0.000000
+7187 5666 -40.000000
+7187 5736  40.000000
+7187 5738   1.000000
+7188 0   0.000000
+7188 2   0.000000
+7188 3   0.000000
+7188 5669 -80.000000
+7188 5739  80.000000
+7188 5741   1.000000
+7189 0   0.000000
+7189 2   0.000000
+7189 3   0.000000
+7189 5670 -40.000000
+7189 5740  40.000000
+7189 5742   1.000000
+7190 0   0.000000
+7190 2   0.000000
+7190 3   0.000000
+7190 5675 -80.000000
+7190 5745  80.000000
+7190 5747   1.000000
+7191 0   0.000000
+7191 2   0.000000
+7191 3   0.000000
+7191 5676 -40.000000
+7191 5746  40.000000
+7191 5748   1.000000
+7192 0   0.000000
+7192 2   0.000000
+7192 3   0.000000
+7192 5679 -80.000000
+7192 5749  80.000000
+7192 5751   1.000000
+7193 0   0.000000
+7193 2   0.000000
+7193 3   0.000000
+7193 5680 -40.000000
+7193 5750  40.000000
+7193 5752   1.000000
+7194 0   0.000000
+7194 2   0.000000
+7194 3   0.000000
+7194 5683 -80.000000
+7194 5753  80.000000
+7194 5755   1.000000
+7195 0   0.000000
+7195 2   0.000000
+7195 3   0.000000
+7195 5684 -40.000000
+7195 5754  40.000000
+7195 5756   1.000000
+7196 0   0.000000
+7196 2   0.000000
+7196 3   0.000000
+7196 5689 -80.000000
+7196 5759  80.000000
+7196 5761   1.000000
+7197 0   0.000000
+7197 2   0.000000
+7197 3   0.000000
+7197 5690 -40.000000
+7197 5760  40.000000
+7197 5762   1.000000
+7198 0   0.000000
+7198 2   0.000000
+7198 3   0.000000
+7198 5693 -80.000000
+7198 5763  80.000000
+7198 5765   1.000000
+7199 0   0.000000
+7199 2   0.000000
+7199 3   0.000000
+7199 5694 -40.000000
+7199 5764  40.000000
+7199 5766   1.000000
+7200 0   0.000000
+7200 2   0.000000
+7200 3   0.000000
+7200 5697 -80.000000
+7200 5767  80.000000
+7200 5769   1.000000
+7201 0   0.000000
+7201 2   0.000000
+7201 3   0.000000
+7201 5698 -40.000000
+7201 5768  40.000000
+7201 5770   1.000000
+7202 0   0.000000
+7202 2   0.000000
+7202 3   0.000000
+7202 5703 -80.000000
+7202 5773  80.000000
+7202 5775   1.000000
+7203 0   0.000000
+7203 2   0.000000
+7203 3   0.000000
+7203 5704 -40.000000
+7203 5774  40.000000
+7203 5776   1.000000
+7204 0   0.000000
+7204 2   0.000000
+7204 3   0.000000
+7204 5707 -80.000000
+7204 5777  80.000000
+7204 5779   1.000000
+7205 0   0.000000
+7205 2   0.000000
+7205 3   0.000000
+7205 5708 -40.000000
+7205 5778  40.000000
+7205 5780   1.000000
+7206 0   0.000000
+7206 2   0.000000
+7206 3   0.000000
+7206 5711 -80.000000
+7206 5781  80.000000
+7206 5783   1.000000
+7207 0   0.000000
+7207 2   0.000000
+7207 3   0.000000
+7207 5712 -40.000000
+7207 5782  40.000000
+7207 5784   1.000000
+7208 0   0.000000
+7208 2   0.000000
+7208 3   0.000000
+7208 5717 -80.000000
+7208 5787  80.000000
+7208 5789   1.000000
+7209 0   0.000000
+7209 2   0.000000
+7209 3   0.000000
+7209 5718 -40.000000
+7209 5788  40.000000
+7209 5790   1.000000
+7210 0   0.000000
+7210 2   0.000000
+7210 3   0.000000
+7210 5721 -80.000000
+7210 5791  80.000000
+7210 5793   1.000000
+7211 0   0.000000
+7211 2   0.000000
+7211 3   0.000000
+7211 5722 -40.000000
+7211 5792  40.000000
+7211 5794   1.000000
+7212 0   0.000000
+7212 2   0.000000
+7212 3   0.000000
+7212 5725 -80.000000
+7212 5795  80.000000
+7212 5797   1.000000
+7213 0   0.000000
+7213 2   0.000000
+7213 3   0.000000
+7213 5726 -40.000000
+7213 5796  40.000000
+7213 5798   1.000000
+7214 0   0.000000
+7214 2   0.000000
+7214 3   0.000000
+7214 5731 -80.000000
+7214 5801  80.000000
+7214 5803   1.000000
+7215 0   0.000000
+7215 2   0.000000
+7215 3   0.000000
+7215 5732 -40.000000
+7215 5802  40.000000
+7215 5804   1.000000
+7216 0   0.000000
+7216 2   0.000000
+7216 3   0.000000
+7216 5735 -80.000000
+7216 5805  80.000000
+7216 5807   1.000000
+7217 0   0.000000
+7217 2   0.000000
+7217 3   0.000000
+7217 5736 -40.000000
+7217 5806  40.000000
+7217 5808   1.000000
+7218 0   0.000000
+7218 2   0.000000
+7218 3   0.000000
+7218 5739 -80.000000
+7218 5809  80.000000
+7218 5811   1.000000
+7219 0   0.000000
+7219 2   0.000000
+7219 3   0.000000
+7219 5740 -40.000000
+7219 5810  40.000000
+7219 5812   1.000000
+7220 0   0.000000
+7220 2   0.000000
+7220 3   0.000000
+7220 5745 -80.000000
+7220 5815  80.000000
+7220 5817   1.000000
+7221 0   0.000000
+7221 2   0.000000
+7221 3   0.000000
+7221 5746 -40.000000
+7221 5816  40.000000
+7221 5818   1.000000
+7222 0   0.000000
+7222 2   0.000000
+7222 3   0.000000
+7222 5749 -80.000000
+7222 5819  80.000000
+7222 5821   1.000000
+7223 0   0.000000
+7223 2   0.000000
+7223 3   0.000000
+7223 5750 -40.000000
+7223 5820  40.000000
+7223 5822   1.000000
+7224 0   0.000000
+7224 2   0.000000
+7224 3   0.000000
+7224 5753 -80.000000
+7224 5823  80.000000
+7224 5825   1.000000
+7225 0   0.000000
+7225 2   0.000000
+7225 3   0.000000
+7225 5754 -40.000000
+7225 5824  40.000000
+7225 5826   1.000000
+7226 0   0.000000
+7226 2   0.000000
+7226 3   0.000000
+7226 5759 -80.000000
+7226 5829  80.000000
+7226 5831   1.000000
+7227 0   0.000000
+7227 2   0.000000
+7227 3   0.000000
+7227 5760 -40.000000
+7227 5830  40.000000
+7227 5832   1.000000
+7228 0   0.000000
+7228 2   0.000000
+7228 3   0.000000
+7228 5763 -80.000000
+7228 5833  80.000000
+7228 5835   1.000000
+7229 0   0.000000
+7229 2   0.000000
+7229 3   0.000000
+7229 5764 -40.000000
+7229 5834  40.000000
+7229 5836   1.000000
+7230 0   0.000000
+7230 2   0.000000
+7230 3   0.000000
+7230 5767 -80.000000
+7230 5837  80.000000
+7230 5839   1.000000
+7231 0   0.000000
+7231 2   0.000000
+7231 3   0.000000
+7231 5768 -40.000000
+7231 5838  40.000000
+7231 5840   1.000000
+7232 0   0.000000
+7232 2   0.000000
+7232 3   0.000000
+7232 5773 -80.000000
+7232 5843  80.000000
+7232 5845   1.000000
+7233 0   0.000000
+7233 2   0.000000
+7233 3   0.000000
+7233 5774 -40.000000
+7233 5844  40.000000
+7233 5846   1.000000
+7234 0   0.000000
+7234 2   0.000000
+7234 3   0.000000
+7234 5777 -80.000000
+7234 5847  80.000000
+7234 5849   1.000000
+7235 0   0.000000
+7235 2   0.000000
+7235 3   0.000000
+7235 5778 -40.000000
+7235 5848  40.000000
+7235 5850   1.000000
+7236 0   0.000000
+7236 2   0.000000
+7236 3   0.000000
+7236 5781 -80.000000
+7236 5851  80.000000
+7236 5853   1.000000
+7237 0   0.000000
+7237 2   0.000000
+7237 3   0.000000
+7237 5782 -40.000000
+7237 5852  40.000000
+7237 5854   1.000000
+7238 0   0.000000
+7238 2   0.000000
+7238 3   0.000000
+7238 5787 -80.000000
+7238 5857  80.000000
+7238 5859   1.000000
+7239 0   0.000000
+7239 2   0.000000
+7239 3   0.000000
+7239 5788 -40.000000
+7239 5858  40.000000
+7239 5860   1.000000
+7240 0   0.000000
+7240 2   0.000000
+7240 3   0.000000
+7240 5791 -80.000000
+7240 5861  80.000000
+7240 5863   1.000000
+7241 0   0.000000
+7241 2   0.000000
+7241 3   0.000000
+7241 5792 -40.000000
+7241 5862  40.000000
+7241 5864   1.000000
+7242 0   0.000000
+7242 2   0.000000
+7242 3   0.000000
+7242 5795 -80.000000
+7242 5865  80.000000
+7242 5867   1.000000
+7243 0   0.000000
+7243 2   0.000000
+7243 3   0.000000
+7243 5796 -40.000000
+7243 5866  40.000000
+7243 5868   1.000000
+7244 0   0.000000
+7244 2   0.000000
+7244 3   0.000000
+7244 5801 -80.000000
+7244 5871  80.000000
+7244 5873   1.000000
+7245 0   0.000000
+7245 2   0.000000
+7245 3   0.000000
+7245 5802 -40.000000
+7245 5872  40.000000
+7245 5874   1.000000
+7246 0   0.000000
+7246 2   0.000000
+7246 3   0.000000
+7246 5805 -80.000000
+7246 5875  80.000000
+7246 5877   1.000000
+7247 0   0.000000
+7247 2   0.000000
+7247 3   0.000000
+7247 5806 -40.000000
+7247 5876  40.000000
+7247 5878   1.000000
+7248 0   0.000000
+7248 2   0.000000
+7248 3   0.000000
+7248 5809 -80.000000
+7248 5879  80.000000
+7248 5881   1.000000
+7249 0   0.000000
+7249 2   0.000000
+7249 3   0.000000
+7249 5810 -40.000000
+7249 5880  40.000000
+7249 5882   1.000000
+7250 0   0.000000
+7250 2   0.000000
+7250 3   0.000000
+7250 5815 -80.000000
+7250 5885  80.000000
+7250 5887   1.000000
+7251 0   0.000000
+7251 2   0.000000
+7251 3   0.000000
+7251 5816 -40.000000
+7251 5886  40.000000
+7251 5888   1.000000
+7252 0   0.000000
+7252 2   0.000000
+7252 3   0.000000
+7252 5819 -80.000000
+7252 5889  80.000000
+7252 5891   1.000000
+7253 0   0.000000
+7253 2   0.000000
+7253 3   0.000000
+7253 5820 -40.000000
+7253 5890  40.000000
+7253 5892   1.000000
+7254 0   0.000000
+7254 2   0.000000
+7254 3   0.000000
+7254 5823 -80.000000
+7254 5893  80.000000
+7254 5895   1.000000
+7255 0   0.000000
+7255 2   0.000000
+7255 3   0.000000
+7255 5824 -40.000000
+7255 5894  40.000000
+7255 5896   1.000000
+7256 0   0.000000
+7256 2   0.000000
+7256 3   0.000000
+7256 5829 -80.000000
+7256 5899  80.000000
+7256 5901   1.000000
+7257 0   0.000000
+7257 2   0.000000
+7257 3   0.000000
+7257 5830 -40.000000
+7257 5900  40.000000
+7257 5902   1.000000
+7258 0   0.000000
+7258 2   0.000000
+7258 3   0.000000
+7258 5833 -80.000000
+7258 5903  80.000000
+7258 5905   1.000000
+7259 0   0.000000
+7259 2   0.000000
+7259 3   0.000000
+7259 5834 -40.000000
+7259 5904  40.000000
+7259 5906   1.000000
+7260 0   0.000000
+7260 2   0.000000
+7260 3   0.000000
+7260 5837 -80.000000
+7260 5907  80.000000
+7260 5909   1.000000
+7261 0   0.000000
+7261 2   0.000000
+7261 3   0.000000
+7261 5838 -40.000000
+7261 5908  40.000000
+7261 5910   1.000000
+7262 0   0.000000
+7262 2   0.000000
+7262 3   0.000000
+7262 5843 -80.000000
+7262 5913  80.000000
+7262 5915   1.000000
+7263 0   0.000000
+7263 2   0.000000
+7263 3   0.000000
+7263 5844 -40.000000
+7263 5914  40.000000
+7263 5916   1.000000
+7264 0   0.000000
+7264 2   0.000000
+7264 3   0.000000
+7264 5847 -80.000000
+7264 5917  80.000000
+7264 5919   1.000000
+7265 0   0.000000
+7265 2   0.000000
+7265 3   0.000000
+7265 5848 -40.000000
+7265 5918  40.000000
+7265 5920   1.000000
+7266 0   0.000000
+7266 2   0.000000
+7266 3   0.000000
+7266 5851 -80.000000
+7266 5921  80.000000
+7266 5923   1.000000
+7267 0   0.000000
+7267 2   0.000000
+7267 3   0.000000
+7267 5852 -40.000000
+7267 5922  40.000000
+7267 5924   1.000000
+7268 0   0.000000
+7268 2   0.000000
+7268 3   0.000000
+7268 5857 -80.000000
+7268 5927  80.000000
+7268 5929   1.000000
+7269 0   0.000000
+7269 2   0.000000
+7269 3   0.000000
+7269 5858 -40.000000
+7269 5928  40.000000
+7269 5930   1.000000
+7270 0   0.000000
+7270 2   0.000000
+7270 3   0.000000
+7270 5861 -80.000000
+7270 5931  80.000000
+7270 5933   1.000000
+7271 0   0.000000
+7271 2   0.000000
+7271 3   0.000000
+7271 5862 -40.000000
+7271 5932  40.000000
+7271 5934   1.000000
+7272 0   0.000000
+7272 2   0.000000
+7272 3   0.000000
+7272 5865 -80.000000
+7272 5935  80.000000
+7272 5937   1.000000
+7273 0   0.000000
+7273 2   0.000000
+7273 3   0.000000
+7273 5866 -40.000000
+7273 5936  40.000000
+7273 5938   1.000000
+7274 0   0.000000
+7274 2   0.000000
+7274 3   0.000000
+7274 5871 -80.000000
+7274 5941  80.000000
+7274 5943   1.000000
+7275 0   0.000000
+7275 2   0.000000
+7275 3   0.000000
+7275 5872 -40.000000
+7275 5942  40.000000
+7275 5944   1.000000
+7276 0   0.000000
+7276 2   0.000000
+7276 3   0.000000
+7276 5875 -80.000000
+7276 5945  80.000000
+7276 5947   1.000000
+7277 0   0.000000
+7277 2   0.000000
+7277 3   0.000000
+7277 5876 -40.000000
+7277 5946  40.000000
+7277 5948   1.000000
+7278 0   0.000000
+7278 2   0.000000
+7278 3   0.000000
+7278 5879 -80.000000
+7278 5949  80.000000
+7278 5951   1.000000
+7279 0   0.000000
+7279 2   0.000000
+7279 3   0.000000
+7279 5880 -40.000000
+7279 5950  40.000000
+7279 5952   1.000000
+7280 0   0.000000
+7280 2   0.000000
+7280 3   0.000000
+7280 5885 -80.000000
+7280 5955  80.000000
+7280 5957   1.000000
+7281 0   0.000000
+7281 2   0.000000
+7281 3   0.000000
+7281 5886 -40.000000
+7281 5956  40.000000
+7281 5958   1.000000
+7282 0   0.000000
+7282 2   0.000000
+7282 3   0.000000
+7282 5889 -80.000000
+7282 5959  80.000000
+7282 5961   1.000000
+7283 0   0.000000
+7283 2   0.000000
+7283 3   0.000000
+7283 5890 -40.000000
+7283 5960  40.000000
+7283 5962   1.000000
+7284 0   0.000000
+7284 2   0.000000
+7284 3   0.000000
+7284 5893 -80.000000
+7284 5963  80.000000
+7284 5965   1.000000
+7285 0   0.000000
+7285 2   0.000000
+7285 3   0.000000
+7285 5894 -40.000000
+7285 5964  40.000000
+7285 5966   1.000000
+7286 0   0.000000
+7286 2   0.000000
+7286 3   0.000000
+7286 5899 -80.000000
+7286 5969  80.000000
+7286 5971   1.000000
+7287 0   0.000000
+7287 2   0.000000
+7287 3   0.000000
+7287 5900 -40.000000
+7287 5970  40.000000
+7287 5972   1.000000
+7288 0   0.000000
+7288 2   0.000000
+7288 3   0.000000
+7288 5903 -80.000000
+7288 5973  80.000000
+7288 5975   1.000000
+7289 0   0.000000
+7289 2   0.000000
+7289 3   0.000000
+7289 5904 -40.000000
+7289 5974  40.000000
+7289 5976   1.000000
+7290 0   0.000000
+7290 2   0.000000
+7290 3   0.000000
+7290 5907 -80.000000
+7290 5977  80.000000
+7290 5979   1.000000
+7291 0   0.000000
+7291 2   0.000000
+7291 3   0.000000
+7291 5908 -40.000000
+7291 5978  40.000000
+7291 5980   1.000000
+7292 0   0.000000
+7292 2   0.000000
+7292 3   0.000000
+7292 5913 -80.000000
+7292 5983  80.000000
+7292 5985   1.000000
+7293 0   0.000000
+7293 2   0.000000
+7293 3   0.000000
+7293 5914 -40.000000
+7293 5984  40.000000
+7293 5986   1.000000
+7294 0   0.000000
+7294 2   0.000000
+7294 3   0.000000
+7294 5917 -80.000000
+7294 5987  80.000000
+7294 5989   1.000000
+7295 0   0.000000
+7295 2   0.000000
+7295 3   0.000000
+7295 5918 -40.000000
+7295 5988  40.000000
+7295 5990   1.000000
+7296 0   0.000000
+7296 2   0.000000
+7296 3   0.000000
+7296 5921 -80.000000
+7296 5991  80.000000
+7296 5993   1.000000
+7297 0   0.000000
+7297 2   0.000000
+7297 3   0.000000
+7297 5922 -40.000000
+7297 5992  40.000000
+7297 5994   1.000000
+7298 0   0.000000
+7298 2   0.000000
+7298 3   0.000000
+7298 5927 -80.000000
+7298 5997  80.000000
+7298 5999   1.000000
+7299 0   0.000000
+7299 2   0.000000
+7299 3   0.000000
+7299 5928 -40.000000
+7299 5998  40.000000
+7299 6000   1.000000
+7300 0   0.000000
+7300 2   0.000000
+7300 3   0.000000
+7300 5931 -80.000000
+7300 6001  80.000000
+7300 6003   1.000000
+7301 0   0.000000
+7301 2   0.000000
+7301 3   0.000000
+7301 5932 -40.000000
+7301 6002  40.000000
+7301 6004   1.000000
+7302 0   0.000000
+7302 2   0.000000
+7302 3   0.000000
+7302 5935 -80.000000
+7302 6005  80.000000
+7302 6007   1.000000
+7303 0   0.000000
+7303 2   0.000000
+7303 3   0.000000
+7303 5936 -40.000000
+7303 6006  40.000000
+7303 6008   1.000000
+7304 0   0.000000
+7304 2   0.000000
+7304 3   0.000000
+7304 5941 -80.000000
+7304 6011  80.000000
+7304 6013   1.000000
+7305 0   0.000000
+7305 2   0.000000
+7305 3   0.000000
+7305 5942 -40.000000
+7305 6012  40.000000
+7305 6014   1.000000
+7306 0   0.000000
+7306 2   0.000000
+7306 3   0.000000
+7306 5945 -80.000000
+7306 6015  80.000000
+7306 6017   1.000000
+7307 0   0.000000
+7307 2   0.000000
+7307 3   0.000000
+7307 5946 -40.000000
+7307 6016  40.000000
+7307 6018   1.000000
+7308 0   0.000000
+7308 2   0.000000
+7308 3   0.000000
+7308 5949 -80.000000
+7308 6019  80.000000
+7308 6021   1.000000
+7309 0   0.000000
+7309 2   0.000000
+7309 3   0.000000
+7309 5950 -40.000000
+7309 6020  40.000000
+7309 6022   1.000000
+7310 0   0.000000
+7310 2   0.000000
+7310 3   0.000000
+7310 5955 -80.000000
+7310 6025  80.000000
+7310 6027   1.000000
+7311 0   0.000000
+7311 2   0.000000
+7311 3   0.000000
+7311 5956 -40.000000
+7311 6026  40.000000
+7311 6028   1.000000
+7312 0   0.000000
+7312 2   0.000000
+7312 3   0.000000
+7312 5959 -80.000000
+7312 6029  80.000000
+7312 6031   1.000000
+7313 0   0.000000
+7313 2   0.000000
+7313 3   0.000000
+7313 5960 -40.000000
+7313 6030  40.000000
+7313 6032   1.000000
+7314 0   0.000000
+7314 2   0.000000
+7314 3   0.000000
+7314 5963 -80.000000
+7314 6033  80.000000
+7314 6035   1.000000
+7315 0   0.000000
+7315 2   0.000000
+7315 3   0.000000
+7315 5964 -40.000000
+7315 6034  40.000000
+7315 6036   1.000000
+7316 0   0.000000
+7316 2   0.000000
+7316 3   0.000000
+7316 5969 -80.000000
+7316 6039  80.000000
+7316 6041   1.000000
+7317 0   0.000000
+7317 2   0.000000
+7317 3   0.000000
+7317 5970 -40.000000
+7317 6040  40.000000
+7317 6042   1.000000
+7318 0   0.000000
+7318 2   0.000000
+7318 3   0.000000
+7318 5973 -80.000000
+7318 6043  80.000000
+7318 6045   1.000000
+7319 0   0.000000
+7319 2   0.000000
+7319 3   0.000000
+7319 5974 -40.000000
+7319 6044  40.000000
+7319 6046   1.000000
+7320 0   0.000000
+7320 2   0.000000
+7320 3   0.000000
+7320 5977 -80.000000
+7320 6047  80.000000
+7320 6049   1.000000
+7321 0   0.000000
+7321 2   0.000000
+7321 3   0.000000
+7321 5978 -40.000000
+7321 6048  40.000000
+7321 6050   1.000000
+7322 0   0.000000
+7322 2   0.000000
+7322 3   0.000000
+7322 5983 -80.000000
+7322 6053  80.000000
+7322 6055   1.000000
+7323 0   0.000000
+7323 2   0.000000
+7323 3   0.000000
+7323 5984 -40.000000
+7323 6054  40.000000
+7323 6056   1.000000
+7324 0   0.000000
+7324 2   0.000000
+7324 3   0.000000
+7324 5987 -80.000000
+7324 6057  80.000000
+7324 6059   1.000000
+7325 0   0.000000
+7325 2   0.000000
+7325 3   0.000000
+7325 5988 -40.000000
+7325 6058  40.000000
+7325 6060   1.000000
+7326 0   0.000000
+7326 2   0.000000
+7326 3   0.000000
+7326 5991 -80.000000
+7326 6061  80.000000
+7326 6063   1.000000
+7327 0   0.000000
+7327 2   0.000000
+7327 3   0.000000
+7327 5992 -40.000000
+7327 6062  40.000000
+7327 6064   1.000000
+7328 0   0.000000
+7328 2   0.000000
+7328 3   0.000000
+7328 5997 -80.000000
+7328 6067  80.000000
+7328 6069   1.000000
+7329 0   0.000000
+7329 2   0.000000
+7329 3   0.000000
+7329 5998 -40.000000
+7329 6068  40.000000
+7329 6070   1.000000
+7330 0   0.000000
+7330 2   0.000000
+7330 3   0.000000
+7330 6001 -80.000000
+7330 6071  80.000000
+7330 6073   1.000000
+7331 0   0.000000
+7331 2   0.000000
+7331 3   0.000000
+7331 6002 -40.000000
+7331 6072  40.000000
+7331 6074   1.000000
+7332 0   0.000000
+7332 2   0.000000
+7332 3   0.000000
+7332 6005 -80.000000
+7332 6075  80.000000
+7332 6077   1.000000
+7333 0   0.000000
+7333 2   0.000000
+7333 3   0.000000
+7333 6006 -40.000000
+7333 6076  40.000000
+7333 6078   1.000000
+7334 0   0.000000
+7334 2   0.000000
+7334 3   0.000000
+7334 6011 -80.000000
+7334 6081  80.000000
+7334 6083   1.000000
+7335 0   0.000000
+7335 2   0.000000
+7335 3   0.000000
+7335 6012 -40.000000
+7335 6082  40.000000
+7335 6084   1.000000
+7336 0   0.000000
+7336 2   0.000000
+7336 3   0.000000
+7336 6015 -80.000000
+7336 6085  80.000000
+7336 6087   1.000000
+7337 0   0.000000
+7337 2   0.000000
+7337 3   0.000000
+7337 6016 -40.000000
+7337 6086  40.000000
+7337 6088   1.000000
+7338 0   0.000000
+7338 2   0.000000
+7338 3   0.000000
+7338 6019 -80.000000
+7338 6089  80.000000
+7338 6091   1.000000
+7339 0   0.000000
+7339 2   0.000000
+7339 3   0.000000
+7339 6020 -40.000000
+7339 6090  40.000000
+7339 6092   1.000000
+7340 0   0.000000
+7340 2   0.000000
+7340 3   0.000000
+7340 6025 -80.000000
+7340 6095  80.000000
+7340 6097   1.000000
+7341 0   0.000000
+7341 2   0.000000
+7341 3   0.000000
+7341 6026 -40.000000
+7341 6096  40.000000
+7341 6098   1.000000
+7342 0   0.000000
+7342 2   0.000000
+7342 3   0.000000
+7342 6029 -80.000000
+7342 6099  80.000000
+7342 6101   1.000000
+7343 0   0.000000
+7343 2   0.000000
+7343 3   0.000000
+7343 6030 -40.000000
+7343 6100  40.000000
+7343 6102   1.000000
+7344 0   0.000000
+7344 2   0.000000
+7344 3   0.000000
+7344 6033 -80.000000
+7344 6103  80.000000
+7344 6105   1.000000
+7345 0   0.000000
+7345 2   0.000000
+7345 3   0.000000
+7345 6034 -40.000000
+7345 6104  40.000000
+7345 6106   1.000000
+7346 0   0.000000
+7346 2   0.000000
+7346 3   0.000000
+7346 6039 -80.000000
+7346 6109  80.000000
+7346 6111   1.000000
+7347 0   0.000000
+7347 2   0.000000
+7347 3   0.000000
+7347 6040 -40.000000
+7347 6110  40.000000
+7347 6112   1.000000
+7348 0   0.000000
+7348 2   0.000000
+7348 3   0.000000
+7348 6043 -80.000000
+7348 6113  80.000000
+7348 6115   1.000000
+7349 0   0.000000
+7349 2   0.000000
+7349 3   0.000000
+7349 6044 -40.000000
+7349 6114  40.000000
+7349 6116   1.000000
+7350 0   0.000000
+7350 2   0.000000
+7350 3   0.000000
+7350 6047 -80.000000
+7350 6117  80.000000
+7350 6119   1.000000
+7351 0   0.000000
+7351 2   0.000000
+7351 3   0.000000
+7351 6048 -40.000000
+7351 6118  40.000000
+7351 6120   1.000000
+7352 0   0.000000
+7352 2   0.000000
+7352 3   0.000000
+7352 6053 -80.000000
+7352 6123  80.000000
+7352 6125   1.000000
+7353 0   0.000000
+7353 2   0.000000
+7353 3   0.000000
+7353 6054 -40.000000
+7353 6124  40.000000
+7353 6126   1.000000
+7354 0   0.000000
+7354 2   0.000000
+7354 3   0.000000
+7354 6057 -80.000000
+7354 6127  80.000000
+7354 6129   1.000000
+7355 0   0.000000
+7355 2   0.000000
+7355 3   0.000000
+7355 6058 -40.000000
+7355 6128  40.000000
+7355 6130   1.000000
+7356 0   0.000000
+7356 2   0.000000
+7356 3   0.000000
+7356 6061 -80.000000
+7356 6131  80.000000
+7356 6133   1.000000
+7357 0   0.000000
+7357 2   0.000000
+7357 3   0.000000
+7357 6062 -40.000000
+7357 6132  40.000000
+7357 6134   1.000000
+7358 0   0.000000
+7358 2   0.000000
+7358 3   0.000000
+7358 6067 -80.000000
+7358 6137  80.000000
+7358 6139   1.000000
+7359 0   0.000000
+7359 2   0.000000
+7359 3   0.000000
+7359 6068 -40.000000
+7359 6138  40.000000
+7359 6140   1.000000
+7360 0   0.000000
+7360 2   0.000000
+7360 3   0.000000
+7360 6071 -80.000000
+7360 6141  80.000000
+7360 6143   1.000000
+7361 0   0.000000
+7361 2   0.000000
+7361 3   0.000000
+7361 6072 -40.000000
+7361 6142  40.000000
+7361 6144   1.000000
+7362 0   0.000000
+7362 2   0.000000
+7362 3   0.000000
+7362 6075 -80.000000
+7362 6145  80.000000
+7362 6147   1.000000
+7363 0   0.000000
+7363 2   0.000000
+7363 3   0.000000
+7363 6076 -40.000000
+7363 6146  40.000000
+7363 6148   1.000000
+7364 0   0.000000
+7364 2   0.000000
+7364 3   0.000000
+7364 6081 -80.000000
+7364 6151  80.000000
+7364 6153   1.000000
+7365 0   0.000000
+7365 2   0.000000
+7365 3   0.000000
+7365 6082 -40.000000
+7365 6152  40.000000
+7365 6154   1.000000
+7366 0   0.000000
+7366 2   0.000000
+7366 3   0.000000
+7366 6085 -80.000000
+7366 6155  80.000000
+7366 6157   1.000000
+7367 0   0.000000
+7367 2   0.000000
+7367 3   0.000000
+7367 6086 -40.000000
+7367 6156  40.000000
+7367 6158   1.000000
+7368 0   0.000000
+7368 2   0.000000
+7368 3   0.000000
+7368 6089 -80.000000
+7368 6159  80.000000
+7368 6161   1.000000
+7369 0   0.000000
+7369 2   0.000000
+7369 3   0.000000
+7369 6090 -40.000000
+7369 6160  40.000000
+7369 6162   1.000000
+7370 0   0.000000
+7370 2   0.000000
+7370 3   0.000000
+7370 6095 -80.000000
+7370 6165  80.000000
+7370 6167   1.000000
+7371 0   0.000000
+7371 2   0.000000
+7371 3   0.000000
+7371 6096 -40.000000
+7371 6166  40.000000
+7371 6168   1.000000
+7372 0   0.000000
+7372 2   0.000000
+7372 3   0.000000
+7372 6099 -80.000000
+7372 6169  80.000000
+7372 6171   1.000000
+7373 0   0.000000
+7373 2   0.000000
+7373 3   0.000000
+7373 6100 -40.000000
+7373 6170  40.000000
+7373 6172   1.000000
+7374 0   0.000000
+7374 2   0.000000
+7374 3   0.000000
+7374 6103 -80.000000
+7374 6173  80.000000
+7374 6175   1.000000
+7375 0   0.000000
+7375 2   0.000000
+7375 3   0.000000
+7375 6104 -40.000000
+7375 6174  40.000000
+7375 6176   1.000000
+7376 0   0.000000
+7376 2   0.000000
+7376 3   0.000000
+7376 6109 -80.000000
+7376 6179  80.000000
+7376 6181   1.000000
+7377 0   0.000000
+7377 2   0.000000
+7377 3   0.000000
+7377 6110 -40.000000
+7377 6180  40.000000
+7377 6182   1.000000
+7378 0   0.000000
+7378 2   0.000000
+7378 3   0.000000
+7378 6113 -80.000000
+7378 6183  80.000000
+7378 6185   1.000000
+7379 0   0.000000
+7379 2   0.000000
+7379 3   0.000000
+7379 6114 -40.000000
+7379 6184  40.000000
+7379 6186   1.000000
+7380 0   0.000000
+7380 2   0.000000
+7380 3   0.000000
+7380 6117 -80.000000
+7380 6187  80.000000
+7380 6189   1.000000
+7381 0   0.000000
+7381 2   0.000000
+7381 3   0.000000
+7381 6118 -40.000000
+7381 6188  40.000000
+7381 6190   1.000000
+7382 0   0.000000
+7382 2   0.000000
+7382 3   0.000000
+7382 6123 -80.000000
+7382 6193  80.000000
+7382 6195   1.000000
+7383 0   0.000000
+7383 2   0.000000
+7383 3   0.000000
+7383 6124 -40.000000
+7383 6194  40.000000
+7383 6196   1.000000
+7384 0   0.000000
+7384 2   0.000000
+7384 3   0.000000
+7384 6127 -80.000000
+7384 6197  80.000000
+7384 6199   1.000000
+7385 0   0.000000
+7385 2   0.000000
+7385 3   0.000000
+7385 6128 -40.000000
+7385 6198  40.000000
+7385 6200   1.000000
+7386 0   0.000000
+7386 2   0.000000
+7386 3   0.000000
+7386 6131 -80.000000
+7386 6201  80.000000
+7386 6203   1.000000
+7387 0   0.000000
+7387 2   0.000000
+7387 3   0.000000
+7387 6132 -40.000000
+7387 6202  40.000000
+7387 6204   1.000000
+7388 0   0.000000
+7388 2   0.000000
+7388 3   0.000000
+7388 6137 -80.000000
+7388 6207  80.000000
+7388 6209   1.000000
+7389 0   0.000000
+7389 2   0.000000
+7389 3   0.000000
+7389 6138 -40.000000
+7389 6208  40.000000
+7389 6210   1.000000
+7390 0   0.000000
+7390 2   0.000000
+7390 3   0.000000
+7390 6141 -80.000000
+7390 6211  80.000000
+7390 6213   1.000000
+7391 0   0.000000
+7391 2   0.000000
+7391 3   0.000000
+7391 6142 -40.000000
+7391 6212  40.000000
+7391 6214   1.000000
+7392 0   0.000000
+7392 2   0.000000
+7392 3   0.000000
+7392 6145 -80.000000
+7392 6215  80.000000
+7392 6217   1.000000
+7393 0   0.000000
+7393 2   0.000000
+7393 3   0.000000
+7393 6146 -40.000000
+7393 6216  40.000000
+7393 6218   1.000000
+7394 0   0.000000
+7394 2   0.000000
+7394 3   0.000000
+7394 6151 -80.000000
+7394 6221  80.000000
+7394 6223   1.000000
+7395 0   0.000000
+7395 2   0.000000
+7395 3   0.000000
+7395 6152 -40.000000
+7395 6222  40.000000
+7395 6224   1.000000
+7396 0   0.000000
+7396 2   0.000000
+7396 3   0.000000
+7396 6155 -80.000000
+7396 6225  80.000000
+7396 6227   1.000000
+7397 0   0.000000
+7397 2   0.000000
+7397 3   0.000000
+7397 6156 -40.000000
+7397 6226  40.000000
+7397 6228   1.000000
+7398 0   0.000000
+7398 2   0.000000
+7398 3   0.000000
+7398 6159 -80.000000
+7398 6229  80.000000
+7398 6231   1.000000
+7399 0   0.000000
+7399 2   0.000000
+7399 3   0.000000
+7399 6160 -40.000000
+7399 6230  40.000000
+7399 6232   1.000000
+7400 0   0.000000
+7400 2   0.000000
+7400 3   0.000000
+7400 6165 -80.000000
+7400 6235  80.000000
+7400 6237   1.000000
+7401 0   0.000000
+7401 2   0.000000
+7401 3   0.000000
+7401 6166 -40.000000
+7401 6236  40.000000
+7401 6238   1.000000
+7402 0   0.000000
+7402 2   0.000000
+7402 3   0.000000
+7402 6169 -80.000000
+7402 6239  80.000000
+7402 6241   1.000000
+7403 0   0.000000
+7403 2   0.000000
+7403 3   0.000000
+7403 6170 -40.000000
+7403 6240  40.000000
+7403 6242   1.000000
+7404 0   0.000000
+7404 2   0.000000
+7404 3   0.000000
+7404 6173 -80.000000
+7404 6243  80.000000
+7404 6245   1.000000
+7405 0   0.000000
+7405 2   0.000000
+7405 3   0.000000
+7405 6174 -40.000000
+7405 6244  40.000000
+7405 6246   1.000000
+7406 0   0.000000
+7406 2   0.000000
+7406 3   0.000000
+7406 6179 -80.000000
+7406 6249  80.000000
+7406 6251   1.000000
+7407 0   0.000000
+7407 2   0.000000
+7407 3   0.000000
+7407 6180 -40.000000
+7407 6250  40.000000
+7407 6252   1.000000
+7408 0   0.000000
+7408 2   0.000000
+7408 3   0.000000
+7408 6183 -80.000000
+7408 6253  80.000000
+7408 6255   1.000000
+7409 0   0.000000
+7409 2   0.000000
+7409 3   0.000000
+7409 6184 -40.000000
+7409 6254  40.000000
+7409 6256   1.000000
+7410 0   0.000000
+7410 2   0.000000
+7410 3   0.000000
+7410 6187 -80.000000
+7410 6257  80.000000
+7410 6259   1.000000
+7411 0   0.000000
+7411 2   0.000000
+7411 3   0.000000
+7411 6188 -40.000000
+7411 6258  40.000000
+7411 6260   1.000000
+7412 0   0.000000
+7412 2   0.000000
+7412 3   0.000000
+7412 6193 -80.000000
+7412 6263  80.000000
+7412 6265   1.000000
+7413 0   0.000000
+7413 2   0.000000
+7413 3   0.000000
+7413 6194 -40.000000
+7413 6264  40.000000
+7413 6266   1.000000
+7414 0   0.000000
+7414 2   0.000000
+7414 3   0.000000
+7414 6197 -80.000000
+7414 6267  80.000000
+7414 6269   1.000000
+7415 0   0.000000
+7415 2   0.000000
+7415 3   0.000000
+7415 6198 -40.000000
+7415 6268  40.000000
+7415 6270   1.000000
+7416 0   0.000000
+7416 2   0.000000
+7416 3   0.000000
+7416 6201 -80.000000
+7416 6271  80.000000
+7416 6273   1.000000
+7417 0   0.000000
+7417 2   0.000000
+7417 3   0.000000
+7417 6202 -40.000000
+7417 6272  40.000000
+7417 6274   1.000000
+7418 0   0.000000
+7418 2   0.000000
+7418 3   0.000000
+7418 6207 -80.000000
+7418 6277  80.000000
+7418 6279   1.000000
+7419 0   0.000000
+7419 2   0.000000
+7419 3   0.000000
+7419 6208 -40.000000
+7419 6278  40.000000
+7419 6280   1.000000
+7420 0   0.000000
+7420 2   0.000000
+7420 3   0.000000
+7420 6211 -80.000000
+7420 6281  80.000000
+7420 6283   1.000000
+7421 0   0.000000
+7421 2   0.000000
+7421 3   0.000000
+7421 6212 -40.000000
+7421 6282  40.000000
+7421 6284   1.000000
+7422 0   0.000000
+7422 2   0.000000
+7422 3   0.000000
+7422 6215 -80.000000
+7422 6285  80.000000
+7422 6287   1.000000
+7423 0   0.000000
+7423 2   0.000000
+7423 3   0.000000
+7423 6216 -40.000000
+7423 6286  40.000000
+7423 6288   1.000000
+7424 0   0.000000
+7424 2   0.000000
+7424 3   0.000000
+7424 6221 -80.000000
+7424 6291  80.000000
+7424 6293   1.000000
+7425 0   0.000000
+7425 2   0.000000
+7425 3   0.000000
+7425 6222 -40.000000
+7425 6292  40.000000
+7425 6294   1.000000
+7426 0   0.000000
+7426 2   0.000000
+7426 3   0.000000
+7426 6225 -80.000000
+7426 6295  80.000000
+7426 6297   1.000000
+7427 0   0.000000
+7427 2   0.000000
+7427 3   0.000000
+7427 6226 -40.000000
+7427 6296  40.000000
+7427 6298   1.000000
+7428 0   0.000000
+7428 2   0.000000
+7428 3   0.000000
+7428 6229 -80.000000
+7428 6299  80.000000
+7428 6301   1.000000
+7429 0   0.000000
+7429 2   0.000000
+7429 3   0.000000
+7429 6230 -40.000000
+7429 6300  40.000000
+7429 6302   1.000000
+7430 0   0.000000
+7430 2   0.000000
+7430 3   0.000000
+7430 6235 -80.000000
+7430 6305  80.000000
+7430 6307   1.000000
+7431 0   0.000000
+7431 2   0.000000
+7431 3   0.000000
+7431 6236 -40.000000
+7431 6306  40.000000
+7431 6308   1.000000
+7432 0   0.000000
+7432 2   0.000000
+7432 3   0.000000
+7432 6239 -80.000000
+7432 6309  80.000000
+7432 6311   1.000000
+7433 0   0.000000
+7433 2   0.000000
+7433 3   0.000000
+7433 6240 -40.000000
+7433 6310  40.000000
+7433 6312   1.000000
+7434 0   0.000000
+7434 2   0.000000
+7434 3   0.000000
+7434 6243 -80.000000
+7434 6313  80.000000
+7434 6315   1.000000
+7435 0   0.000000
+7435 2   0.000000
+7435 3   0.000000
+7435 6244 -40.000000
+7435 6314  40.000000
+7435 6316   1.000000
+7436 0   0.000000
+7436 2   0.000000
+7436 3   0.000000
+7436 6249 -80.000000
+7436 6319  80.000000
+7436 6321   1.000000
+7437 0   0.000000
+7437 2   0.000000
+7437 3   0.000000
+7437 6250 -40.000000
+7437 6320  40.000000
+7437 6322   1.000000
+7438 0   0.000000
+7438 2   0.000000
+7438 3   0.000000
+7438 6253 -80.000000
+7438 6323  80.000000
+7438 6325   1.000000
+7439 0   0.000000
+7439 2   0.000000
+7439 3   0.000000
+7439 6254 -40.000000
+7439 6324  40.000000
+7439 6326   1.000000
+7440 0   0.000000
+7440 2   0.000000
+7440 3   0.000000
+7440 6257 -80.000000
+7440 6327  80.000000
+7440 6329   1.000000
+7441 0   0.000000
+7441 2   0.000000
+7441 3   0.000000
+7441 6258 -40.000000
+7441 6328  40.000000
+7441 6330   1.000000
+7442 0   0.000000
+7442 2   0.000000
+7442 3   0.000000
+7442 6263 -80.000000
+7442 6333  80.000000
+7442 6335   1.000000
+7443 0   0.000000
+7443 2   0.000000
+7443 3   0.000000
+7443 6264 -40.000000
+7443 6334  40.000000
+7443 6336   1.000000
+7444 0   0.000000
+7444 2   0.000000
+7444 3   0.000000
+7444 6267 -80.000000
+7444 6337  80.000000
+7444 6339   1.000000
+7445 0   0.000000
+7445 2   0.000000
+7445 3   0.000000
+7445 6268 -40.000000
+7445 6338  40.000000
+7445 6340   1.000000
+7446 0   0.000000
+7446 2   0.000000
+7446 3   0.000000
+7446 6271 -80.000000
+7446 6341  80.000000
+7446 6343   1.000000
+7447 0   0.000000
+7447 2   0.000000
+7447 3   0.000000
+7447 6272 -40.000000
+7447 6342  40.000000
+7447 6344   1.000000
+7448 0   0.000000
+7448 2   0.000000
+7448 3   0.000000
+7448 6277 -80.000000
+7448 6347  80.000000
+7448 6349   1.000000
+7449 0   0.000000
+7449 2   0.000000
+7449 3   0.000000
+7449 6278 -40.000000
+7449 6348  40.000000
+7449 6350   1.000000
+7450 0   0.000000
+7450 2   0.000000
+7450 3   0.000000
+7450 6281 -80.000000
+7450 6351  80.000000
+7450 6353   1.000000
+7451 0   0.000000
+7451 2   0.000000
+7451 3   0.000000
+7451 6282 -40.000000
+7451 6352  40.000000
+7451 6354   1.000000
+7452 0   0.000000
+7452 2   0.000000
+7452 3   0.000000
+7452 6285 -80.000000
+7452 6355  80.000000
+7452 6357   1.000000
+7453 0   0.000000
+7453 2   0.000000
+7453 3   0.000000
+7453 6286 -40.000000
+7453 6356  40.000000
+7453 6358   1.000000
+7454 0   0.000000
+7454 2   0.000000
+7454 3   0.000000
+7454 6291 -80.000000
+7454 6361  80.000000
+7454 6363   1.000000
+7455 0   0.000000
+7455 2   0.000000
+7455 3   0.000000
+7455 6292 -40.000000
+7455 6362  40.000000
+7455 6364   1.000000
+7456 0   0.000000
+7456 2   0.000000
+7456 3   0.000000
+7456 6295 -80.000000
+7456 6365  80.000000
+7456 6367   1.000000
+7457 0   0.000000
+7457 2   0.000000
+7457 3   0.000000
+7457 6296 -40.000000
+7457 6366  40.000000
+7457 6368   1.000000
+7458 0   0.000000
+7458 2   0.000000
+7458 3   0.000000
+7458 6299 -80.000000
+7458 6369  80.000000
+7458 6371   1.000000
+7459 0   0.000000
+7459 2   0.000000
+7459 3   0.000000
+7459 6300 -40.000000
+7459 6370  40.000000
+7459 6372   1.000000
+7460 0   0.000000
+7460 2   0.000000
+7460 3   0.000000
+7460 6305 -80.000000
+7460 6375  80.000000
+7460 6377   1.000000
+7461 0   0.000000
+7461 2   0.000000
+7461 3   0.000000
+7461 6306 -40.000000
+7461 6376  40.000000
+7461 6378   1.000000
+7462 0   0.000000
+7462 2   0.000000
+7462 3   0.000000
+7462 6309 -80.000000
+7462 6379  80.000000
+7462 6381   1.000000
+7463 0   0.000000
+7463 2   0.000000
+7463 3   0.000000
+7463 6310 -40.000000
+7463 6380  40.000000
+7463 6382   1.000000
+7464 0   0.000000
+7464 2   0.000000
+7464 3   0.000000
+7464 6313 -80.000000
+7464 6383  80.000000
+7464 6385   1.000000
+7465 0   0.000000
+7465 2   0.000000
+7465 3   0.000000
+7465 6314 -40.000000
+7465 6384  40.000000
+7465 6386   1.000000
+7466 0   0.000000
+7466 2   0.000000
+7466 3   0.000000
+7466 6319 -80.000000
+7466 6389  80.000000
+7466 6391   1.000000
+7467 0   0.000000
+7467 2   0.000000
+7467 3   0.000000
+7467 6320 -40.000000
+7467 6390  40.000000
+7467 6392   1.000000
+7468 0   0.000000
+7468 2   0.000000
+7468 3   0.000000
+7468 6323 -80.000000
+7468 6393  80.000000
+7468 6395   1.000000
+7469 0   0.000000
+7469 2   0.000000
+7469 3   0.000000
+7469 6324 -40.000000
+7469 6394  40.000000
+7469 6396   1.000000
+7470 0   0.000000
+7470 2   0.000000
+7470 3   0.000000
+7470 6327 -80.000000
+7470 6397  80.000000
+7470 6399   1.000000
+7471 0   0.000000
+7471 2   0.000000
+7471 3   0.000000
+7471 6328 -40.000000
+7471 6398  40.000000
+7471 6400   1.000000
+7472 0   0.000000
+7472 2   0.000000
+7472 3   0.000000
+7472 6333 -80.000000
+7472 6403  80.000000
+7472 6405   1.000000
+7473 0   0.000000
+7473 2   0.000000
+7473 3   0.000000
+7473 6334 -40.000000
+7473 6404  40.000000
+7473 6406   1.000000
+7474 0   0.000000
+7474 2   0.000000
+7474 3   0.000000
+7474 6337 -80.000000
+7474 6407  80.000000
+7474 6409   1.000000
+7475 0   0.000000
+7475 2   0.000000
+7475 3   0.000000
+7475 6338 -40.000000
+7475 6408  40.000000
+7475 6410   1.000000
+7476 0   0.000000
+7476 2   0.000000
+7476 3   0.000000
+7476 6341 -80.000000
+7476 6411  80.000000
+7476 6413   1.000000
+7477 0   0.000000
+7477 2   0.000000
+7477 3   0.000000
+7477 6342 -40.000000
+7477 6412  40.000000
+7477 6414   1.000000
+7478 0   0.000000
+7478 2   0.000000
+7478 3   0.000000
+7478 6347 -80.000000
+7478 6417  80.000000
+7478 6419   1.000000
+7479 0   0.000000
+7479 2   0.000000
+7479 3   0.000000
+7479 6348 -40.000000
+7479 6418  40.000000
+7479 6420   1.000000
+7480 0   0.000000
+7480 2   0.000000
+7480 3   0.000000
+7480 6351 -80.000000
+7480 6421  80.000000
+7480 6423   1.000000
+7481 0   0.000000
+7481 2   0.000000
+7481 3   0.000000
+7481 6352 -40.000000
+7481 6422  40.000000
+7481 6424   1.000000
+7482 0   0.000000
+7482 2   0.000000
+7482 3   0.000000
+7482 6355 -80.000000
+7482 6425  80.000000
+7482 6427   1.000000
+7483 0   0.000000
+7483 2   0.000000
+7483 3   0.000000
+7483 6356 -40.000000
+7483 6426  40.000000
+7483 6428   1.000000
+7484 0   0.000000
+7484 2   0.000000
+7484 3   0.000000
+7484 6361 -80.000000
+7484 6431  80.000000
+7484 6433   1.000000
+7485 0   0.000000
+7485 2   0.000000
+7485 3   0.000000
+7485 6362 -40.000000
+7485 6432  40.000000
+7485 6434   1.000000
+7486 0   0.000000
+7486 2   0.000000
+7486 3   0.000000
+7486 6365 -80.000000
+7486 6435  80.000000
+7486 6437   1.000000
+7487 0   0.000000
+7487 2   0.000000
+7487 3   0.000000
+7487 6366 -40.000000
+7487 6436  40.000000
+7487 6438   1.000000
+7488 0   0.000000
+7488 2   0.000000
+7488 3   0.000000
+7488 6369 -80.000000
+7488 6439  80.000000
+7488 6441   1.000000
+7489 0   0.000000
+7489 2   0.000000
+7489 3   0.000000
+7489 6370 -40.000000
+7489 6440  40.000000
+7489 6442   1.000000
+7490 0   0.000000
+7490 2   0.000000
+7490 3   0.000000
+7490 6375 -80.000000
+7490 6445  80.000000
+7490 6447   1.000000
+7491 0   0.000000
+7491 2   0.000000
+7491 3   0.000000
+7491 6376 -40.000000
+7491 6446  40.000000
+7491 6448   1.000000
+7492 0   0.000000
+7492 2   0.000000
+7492 3   0.000000
+7492 6379 -80.000000
+7492 6449  80.000000
+7492 6451   1.000000
+7493 0   0.000000
+7493 2   0.000000
+7493 3   0.000000
+7493 6380 -40.000000
+7493 6450  40.000000
+7493 6452   1.000000
+7494 0   0.000000
+7494 2   0.000000
+7494 3   0.000000
+7494 6383 -80.000000
+7494 6453  80.000000
+7494 6455   1.000000
+7495 0   0.000000
+7495 2   0.000000
+7495 3   0.000000
+7495 6384 -40.000000
+7495 6454  40.000000
+7495 6456   1.000000
+7496 0   0.000000
+7496 2   0.000000
+7496 3   0.000000
+7496 6389 -80.000000
+7496 6459  80.000000
+7496 6461   1.000000
+7497 0   0.000000
+7497 2   0.000000
+7497 3   0.000000
+7497 6390 -40.000000
+7497 6460  40.000000
+7497 6462   1.000000
+7498 0   0.000000
+7498 2   0.000000
+7498 3   0.000000
+7498 6393 -80.000000
+7498 6463  80.000000
+7498 6465   1.000000
+7499 0   0.000000
+7499 2   0.000000
+7499 3   0.000000
+7499 6394 -40.000000
+7499 6464  40.000000
+7499 6466   1.000000
+7500 0   0.000000
+7500 2   0.000000
+7500 3   0.000000
+7500 6397 -80.000000
+7500 6467  80.000000
+7500 6469   1.000000
+7501 0   0.000000
+7501 2   0.000000
+7501 3   0.000000
+7501 6398 -40.000000
+7501 6468  40.000000
+7501 6470   1.000000
+7502 0   0.000000
+7502 2   0.000000
+7502 3   0.000000
+7502 6403 -80.000000
+7502 6473  80.000000
+7502 6475   1.000000
+7503 0   0.000000
+7503 2   0.000000
+7503 3   0.000000
+7503 6404 -40.000000
+7503 6474  40.000000
+7503 6476   1.000000
+7504 0   0.000000
+7504 2   0.000000
+7504 3   0.000000
+7504 6407 -80.000000
+7504 6477  80.000000
+7504 6479   1.000000
+7505 0   0.000000
+7505 2   0.000000
+7505 3   0.000000
+7505 6408 -40.000000
+7505 6478  40.000000
+7505 6480   1.000000
+7506 0   0.000000
+7506 2   0.000000
+7506 3   0.000000
+7506 6411 -80.000000
+7506 6481  80.000000
+7506 6483   1.000000
+7507 0   0.000000
+7507 2   0.000000
+7507 3   0.000000
+7507 6412 -40.000000
+7507 6482  40.000000
+7507 6484   1.000000
+7508 0   0.000000
+7508 2   0.000000
+7508 3   0.000000
+7508 6417 -80.000000
+7508 6487  80.000000
+7508 6489   1.000000
+7509 0   0.000000
+7509 2   0.000000
+7509 3   0.000000
+7509 6418 -40.000000
+7509 6488  40.000000
+7509 6490   1.000000
+7510 0   0.000000
+7510 2   0.000000
+7510 3   0.000000
+7510 6421 -80.000000
+7510 6491  80.000000
+7510 6493   1.000000
+7511 0   0.000000
+7511 2   0.000000
+7511 3   0.000000
+7511 6422 -40.000000
+7511 6492  40.000000
+7511 6494   1.000000
+7512 0   0.000000
+7512 2   0.000000
+7512 3   0.000000
+7512 6425 -80.000000
+7512 6495  80.000000
+7512 6497   1.000000
+7513 0   0.000000
+7513 2   0.000000
+7513 3   0.000000
+7513 6426 -40.000000
+7513 6496  40.000000
+7513 6498   1.000000
+7514 0   0.000000
+7514 2   0.000000
+7514 3   0.000000
+7514 6431 -80.000000
+7514 6501  80.000000
+7514 6503   1.000000
+7515 0   0.000000
+7515 2   0.000000
+7515 3   0.000000
+7515 6432 -40.000000
+7515 6502  40.000000
+7515 6504   1.000000
+7516 0   0.000000
+7516 2   0.000000
+7516 3   0.000000
+7516 6435 -80.000000
+7516 6505  80.000000
+7516 6507   1.000000
+7517 0   0.000000
+7517 2   0.000000
+7517 3   0.000000
+7517 6436 -40.000000
+7517 6506  40.000000
+7517 6508   1.000000
+7518 0   0.000000
+7518 2   0.000000
+7518 3   0.000000
+7518 6439 -80.000000
+7518 6509  80.000000
+7518 6511   1.000000
+7519 0   0.000000
+7519 2   0.000000
+7519 3   0.000000
+7519 6440 -40.000000
+7519 6510  40.000000
+7519 6512   1.000000
+7520 0   0.000000
+7520 2   0.000000
+7520 3   0.000000
+7520 6445 -80.000000
+7520 6515  80.000000
+7520 6517   1.000000
+7521 0   0.000000
+7521 2   0.000000
+7521 3   0.000000
+7521 6446 -40.000000
+7521 6516  40.000000
+7521 6518   1.000000
+7522 0   0.000000
+7522 2   0.000000
+7522 3   0.000000
+7522 6449 -80.000000
+7522 6519  80.000000
+7522 6521   1.000000
+7523 0   0.000000
+7523 2   0.000000
+7523 3   0.000000
+7523 6450 -40.000000
+7523 6520  40.000000
+7523 6522   1.000000
+7524 0   0.000000
+7524 2   0.000000
+7524 3   0.000000
+7524 6453 -80.000000
+7524 6523  80.000000
+7524 6525   1.000000
+7525 0   0.000000
+7525 2   0.000000
+7525 3   0.000000
+7525 6454 -40.000000
+7525 6524  40.000000
+7525 6526   1.000000
+7526 0   0.000000
+7526 2   0.000000
+7526 3   0.000000
+7526 6459 -80.000000
+7526 6529  80.000000
+7526 6531   1.000000
+7527 0   0.000000
+7527 2   0.000000
+7527 3   0.000000
+7527 6460 -40.000000
+7527 6530  40.000000
+7527 6532   1.000000
+7528 0   0.000000
+7528 2   0.000000
+7528 3   0.000000
+7528 6463 -80.000000
+7528 6533  80.000000
+7528 6535   1.000000
+7529 0   0.000000
+7529 2   0.000000
+7529 3   0.000000
+7529 6464 -40.000000
+7529 6534  40.000000
+7529 6536   1.000000
+7530 0   0.000000
+7530 2   0.000000
+7530 3   0.000000
+7530 6467 -80.000000
+7530 6537  80.000000
+7530 6539   1.000000
+7531 0   0.000000
+7531 2   0.000000
+7531 3   0.000000
+7531 6468 -40.000000
+7531 6538  40.000000
+7531 6540   1.000000
+7532 0   0.000000
+7532 2   0.000000
+7532 3   0.000000
+7532 6473 -80.000000
+7532 6543  80.000000
+7532 6545   1.000000
+7533 0   0.000000
+7533 2   0.000000
+7533 3   0.000000
+7533 6474 -40.000000
+7533 6544  40.000000
+7533 6546   1.000000
+7534 0   0.000000
+7534 2   0.000000
+7534 3   0.000000
+7534 6477 -80.000000
+7534 6547  80.000000
+7534 6549   1.000000
+7535 0   0.000000
+7535 2   0.000000
+7535 3   0.000000
+7535 6478 -40.000000
+7535 6548  40.000000
+7535 6550   1.000000
+7536 0   0.000000
+7536 2   0.000000
+7536 3   0.000000
+7536 6481 -80.000000
+7536 6551  80.000000
+7536 6553   1.000000
+7537 0   0.000000
+7537 2   0.000000
+7537 3   0.000000
+7537 6482 -40.000000
+7537 6552  40.000000
+7537 6554   1.000000
+7538 0   0.000000
+7538 2   0.000000
+7538 3   0.000000
+7538 6487 -80.000000
+7538 6557  80.000000
+7538 6559   1.000000
+7539 0   0.000000
+7539 2   0.000000
+7539 3   0.000000
+7539 6488 -40.000000
+7539 6558  40.000000
+7539 6560   1.000000
+7540 0   0.000000
+7540 2   0.000000
+7540 3   0.000000
+7540 6491 -80.000000
+7540 6561  80.000000
+7540 6563   1.000000
+7541 0   0.000000
+7541 2   0.000000
+7541 3   0.000000
+7541 6492 -40.000000
+7541 6562  40.000000
+7541 6564   1.000000
+7542 0   0.000000
+7542 2   0.000000
+7542 3   0.000000
+7542 6495 -80.000000
+7542 6565  80.000000
+7542 6567   1.000000
+7543 0   0.000000
+7543 2   0.000000
+7543 3   0.000000
+7543 6496 -40.000000
+7543 6566  40.000000
+7543 6568   1.000000
+7544 0   0.000000
+7544 2   0.000000
+7544 3   0.000000
+7544 6501 -80.000000
+7544 6571  80.000000
+7544 6573   1.000000
+7545 0   0.000000
+7545 2   0.000000
+7545 3   0.000000
+7545 6502 -40.000000
+7545 6572  40.000000
+7545 6574   1.000000
+7546 0   0.000000
+7546 2   0.000000
+7546 3   0.000000
+7546 6505 -80.000000
+7546 6575  80.000000
+7546 6577   1.000000
+7547 0   0.000000
+7547 2   0.000000
+7547 3   0.000000
+7547 6506 -40.000000
+7547 6576  40.000000
+7547 6578   1.000000
+7548 0   0.000000
+7548 2   0.000000
+7548 3   0.000000
+7548 6509 -80.000000
+7548 6579  80.000000
+7548 6581   1.000000
+7549 0   0.000000
+7549 2   0.000000
+7549 3   0.000000
+7549 6510 -40.000000
+7549 6580  40.000000
+7549 6582   1.000000
+7550 0   0.000000
+7550 2   0.000000
+7550 3   0.000000
+7550 6515 -80.000000
+7550 6585  80.000000
+7550 6587   1.000000
+7551 0   0.000000
+7551 2   0.000000
+7551 3   0.000000
+7551 6516 -40.000000
+7551 6586  40.000000
+7551 6588   1.000000
+7552 0   0.000000
+7552 2   0.000000
+7552 3   0.000000
+7552 6519 -80.000000
+7552 6589  80.000000
+7552 6591   1.000000
+7553 0   0.000000
+7553 2   0.000000
+7553 3   0.000000
+7553 6520 -40.000000
+7553 6590  40.000000
+7553 6592   1.000000
+7554 0   0.000000
+7554 2   0.000000
+7554 3   0.000000
+7554 6523 -80.000000
+7554 6593  80.000000
+7554 6595   1.000000
+7555 0   0.000000
+7555 2   0.000000
+7555 3   0.000000
+7555 6524 -40.000000
+7555 6594  40.000000
+7555 6596   1.000000
+7556 0   0.000000
+7556 2   0.000000
+7556 3   0.000000
+7556 6529 -80.000000
+7556 6599  80.000000
+7556 6601   1.000000
+7557 0   0.000000
+7557 2   0.000000
+7557 3   0.000000
+7557 6530 -40.000000
+7557 6600  40.000000
+7557 6602   1.000000
+7558 0   0.000000
+7558 2   0.000000
+7558 3   0.000000
+7558 6533 -80.000000
+7558 6603  80.000000
+7558 6605   1.000000
+7559 0   0.000000
+7559 2   0.000000
+7559 3   0.000000
+7559 6534 -40.000000
+7559 6604  40.000000
+7559 6606   1.000000
+7560 0   0.000000
+7560 2   0.000000
+7560 3   0.000000
+7560 6537 -80.000000
+7560 6607  80.000000
+7560 6609   1.000000
+7561 0   0.000000
+7561 2   0.000000
+7561 3   0.000000
+7561 6538 -40.000000
+7561 6608  40.000000
+7561 6610   1.000000
+7562 0   0.000000
+7562 2   0.000000
+7562 3   0.000000
+7562 6543 -80.000000
+7562 6613  80.000000
+7562 6615   1.000000
+7563 0   0.000000
+7563 2   0.000000
+7563 3   0.000000
+7563 6544 -40.000000
+7563 6614  40.000000
+7563 6616   1.000000
+7564 0   0.000000
+7564 2   0.000000
+7564 3   0.000000
+7564 6547 -80.000000
+7564 6617  80.000000
+7564 6619   1.000000
+7565 0   0.000000
+7565 2   0.000000
+7565 3   0.000000
+7565 6548 -40.000000
+7565 6618  40.000000
+7565 6620   1.000000
+7566 0   0.000000
+7566 2   0.000000
+7566 3   0.000000
+7566 6551 -80.000000
+7566 6621  80.000000
+7566 6623   1.000000
+7567 0   0.000000
+7567 2   0.000000
+7567 3   0.000000
+7567 6552 -40.000000
+7567 6622  40.000000
+7567 6624   1.000000
+7568 0   0.000000
+7568 2   0.000000
+7568 3   0.000000
+7568 6557 -80.000000
+7568 6627  80.000000
+7568 6629   1.000000
+7569 0   0.000000
+7569 2   0.000000
+7569 3   0.000000
+7569 6558 -40.000000
+7569 6628  40.000000
+7569 6630   1.000000
+7570 0   0.000000
+7570 2   0.000000
+7570 3   0.000000
+7570 6561 -80.000000
+7570 6631  80.000000
+7570 6633   1.000000
+7571 0   0.000000
+7571 2   0.000000
+7571 3   0.000000
+7571 6562 -40.000000
+7571 6632  40.000000
+7571 6634   1.000000
+7572 0   0.000000
+7572 2   0.000000
+7572 3   0.000000
+7572 6565 -80.000000
+7572 6635  80.000000
+7572 6637   1.000000
+7573 0   0.000000
+7573 2   0.000000
+7573 3   0.000000
+7573 6566 -40.000000
+7573 6636  40.000000
+7573 6638   1.000000
+7574 0   0.000000
+7574 2   0.000000
+7574 3   0.000000
+7574 6571 -80.000000
+7574 6641  80.000000
+7574 6643   1.000000
+7575 0   0.000000
+7575 2   0.000000
+7575 3   0.000000
+7575 6572 -40.000000
+7575 6642  40.000000
+7575 6644   1.000000
+7576 0   0.000000
+7576 2   0.000000
+7576 3   0.000000
+7576 6575 -80.000000
+7576 6645  80.000000
+7576 6647   1.000000
+7577 0   0.000000
+7577 2   0.000000
+7577 3   0.000000
+7577 6576 -40.000000
+7577 6646  40.000000
+7577 6648   1.000000
+7578 0   0.000000
+7578 2   0.000000
+7578 3   0.000000
+7578 6579 -80.000000
+7578 6649  80.000000
+7578 6651   1.000000
+7579 0   0.000000
+7579 2   0.000000
+7579 3   0.000000
+7579 6580 -40.000000
+7579 6650  40.000000
+7579 6652   1.000000
+7580 0   0.000000
+7580 2   0.000000
+7580 3   0.000000
+7580 6585 -80.000000
+7580 6655  80.000000
+7580 6657   1.000000
+7581 0   0.000000
+7581 2   0.000000
+7581 3   0.000000
+7581 6586 -40.000000
+7581 6656  40.000000
+7581 6658   1.000000
+7582 0   0.000000
+7582 2   0.000000
+7582 3   0.000000
+7582 6589 -80.000000
+7582 6659  80.000000
+7582 6661   1.000000
+7583 0   0.000000
+7583 2   0.000000
+7583 3   0.000000
+7583 6590 -40.000000
+7583 6660  40.000000
+7583 6662   1.000000
+7584 0   0.000000
+7584 2   0.000000
+7584 3   0.000000
+7584 6593 -80.000000
+7584 6663  80.000000
+7584 6665   1.000000
+7585 0   0.000000
+7585 2   0.000000
+7585 3   0.000000
+7585 6594 -40.000000
+7585 6664  40.000000
+7585 6666   1.000000
+7586 0   0.000000
+7586 2   0.000000
+7586 3   0.000000
+7586 6599 -80.000000
+7586 6669  80.000000
+7586 6671   1.000000
+7587 0   0.000000
+7587 2   0.000000
+7587 3   0.000000
+7587 6600 -40.000000
+7587 6670  40.000000
+7587 6672   1.000000
+7588 0   0.000000
+7588 2   0.000000
+7588 3   0.000000
+7588 6603 -80.000000
+7588 6673  80.000000
+7588 6675   1.000000
+7589 0   0.000000
+7589 2   0.000000
+7589 3   0.000000
+7589 6604 -40.000000
+7589 6674  40.000000
+7589 6676   1.000000
+7590 0   0.000000
+7590 2   0.000000
+7590 3   0.000000
+7590 6607 -80.000000
+7590 6677  80.000000
+7590 6679   1.000000
+7591 0   0.000000
+7591 2   0.000000
+7591 3   0.000000
+7591 6608 -40.000000
+7591 6678  40.000000
+7591 6680   1.000000
+7592 0   0.000000
+7592 2   0.000000
+7592 3   0.000000
+7592 6613 -80.000000
+7592 6683  80.000000
+7592 6685   1.000000
+7593 0   0.000000
+7593 2   0.000000
+7593 3   0.000000
+7593 6614 -40.000000
+7593 6684  40.000000
+7593 6686   1.000000
+7594 0   0.000000
+7594 2   0.000000
+7594 3   0.000000
+7594 6617 -80.000000
+7594 6687  80.000000
+7594 6689   1.000000
+7595 0   0.000000
+7595 2   0.000000
+7595 3   0.000000
+7595 6618 -40.000000
+7595 6688  40.000000
+7595 6690   1.000000
+7596 0   0.000000
+7596 2   0.000000
+7596 3   0.000000
+7596 6621 -80.000000
+7596 6691  80.000000
+7596 6693   1.000000
+7597 0   0.000000
+7597 2   0.000000
+7597 3   0.000000
+7597 6622 -40.000000
+7597 6692  40.000000
+7597 6694   1.000000
+7598 0   0.000000
+7598 2   0.000000
+7598 3   0.000000
+7598 6627 -80.000000
+7598 6697  80.000000
+7598 6699   1.000000
+7599 0   0.000000
+7599 2   0.000000
+7599 3   0.000000
+7599 6628 -40.000000
+7599 6698  40.000000
+7599 6700   1.000000
+7600 0   0.000000
+7600 2   0.000000
+7600 3   0.000000
+7600 6631 -80.000000
+7600 6701  80.000000
+7600 6703   1.000000
+7601 0   0.000000
+7601 2   0.000000
+7601 3   0.000000
+7601 6632 -40.000000
+7601 6702  40.000000
+7601 6704   1.000000
+7602 0   0.000000
+7602 2   0.000000
+7602 3   0.000000
+7602 6635 -80.000000
+7602 6705  80.000000
+7602 6707   1.000000
+7603 0   0.000000
+7603 2   0.000000
+7603 3   0.000000
+7603 6636 -40.000000
+7603 6706  40.000000
+7603 6708   1.000000
+7604 0   0.000000
+7604 2   0.000000
+7604 3   0.000000
+7604 6641 -80.000000
+7604 6711  80.000000
+7604 6713   1.000000
+7605 0   0.000000
+7605 2   0.000000
+7605 3   0.000000
+7605 6642 -40.000000
+7605 6712  40.000000
+7605 6714   1.000000
+7606 0   0.000000
+7606 2   0.000000
+7606 3   0.000000
+7606 6645 -80.000000
+7606 6715  80.000000
+7606 6717   1.000000
+7607 0   0.000000
+7607 2   0.000000
+7607 3   0.000000
+7607 6646 -40.000000
+7607 6716  40.000000
+7607 6718   1.000000
+7608 0   0.000000
+7608 2   0.000000
+7608 3   0.000000
+7608 6649 -80.000000
+7608 6719  80.000000
+7608 6721   1.000000
+7609 0   0.000000
+7609 2   0.000000
+7609 3   0.000000
+7609 6650 -40.000000
+7609 6720  40.000000
+7609 6722   1.000000
+7610 0   0.000000
+7610 2   0.000000
+7610 3   0.000000
+7610 6655 -80.000000
+7610 6725  80.000000
+7610 6727   1.000000
+7611 0   0.000000
+7611 2   0.000000
+7611 3   0.000000
+7611 6656 -40.000000
+7611 6726  40.000000
+7611 6728   1.000000
+7612 0   0.000000
+7612 2   0.000000
+7612 3   0.000000
+7612 6659 -80.000000
+7612 6729  80.000000
+7612 6731   1.000000
+7613 0   0.000000
+7613 2   0.000000
+7613 3   0.000000
+7613 6660 -40.000000
+7613 6730  40.000000
+7613 6732   1.000000
+7614 0   0.000000
+7614 2   0.000000
+7614 3   0.000000
+7614 6663 -80.000000
+7614 6733  80.000000
+7614 6735   1.000000
+7615 0   0.000000
+7615 2   0.000000
+7615 3   0.000000
+7615 6664 -40.000000
+7615 6734  40.000000
+7615 6736   1.000000
+7616 0   0.000000
+7616 2   0.000000
+7616 3   0.000000
+7616 6669 -80.000000
+7616 6739  80.000000
+7616 6741   1.000000
+7617 0   0.000000
+7617 2   0.000000
+7617 3   0.000000
+7617 6670 -40.000000
+7617 6740  40.000000
+7617 6742   1.000000
+7618 0   0.000000
+7618 2   0.000000
+7618 3   0.000000
+7618 6673 -80.000000
+7618 6743  80.000000
+7618 6745   1.000000
+7619 0   0.000000
+7619 2   0.000000
+7619 3   0.000000
+7619 6674 -40.000000
+7619 6744  40.000000
+7619 6746   1.000000
+7620 0   0.000000
+7620 2   0.000000
+7620 3   0.000000
+7620 6677 -80.000000
+7620 6747  80.000000
+7620 6749   1.000000
+7621 0   0.000000
+7621 2   0.000000
+7621 3   0.000000
+7621 6678 -40.000000
+7621 6748  40.000000
+7621 6750   1.000000
+7622 0   0.000000
+7622 2   0.000000
+7622 3   0.000000
+7622 6683 -80.000000
+7622 6753  80.000000
+7622 6755   1.000000
+7623 0   0.000000
+7623 2   0.000000
+7623 3   0.000000
+7623 6684 -40.000000
+7623 6754  40.000000
+7623 6756   1.000000
+7624 0   0.000000
+7624 2   0.000000
+7624 3   0.000000
+7624 6687 -80.000000
+7624 6757  80.000000
+7624 6759   1.000000
+7625 0   0.000000
+7625 2   0.000000
+7625 3   0.000000
+7625 6688 -40.000000
+7625 6758  40.000000
+7625 6760   1.000000
+7626 0   0.000000
+7626 2   0.000000
+7626 3   0.000000
+7626 6691 -80.000000
+7626 6761  80.000000
+7626 6763   1.000000
+7627 0   0.000000
+7627 2   0.000000
+7627 3   0.000000
+7627 6692 -40.000000
+7627 6762  40.000000
+7627 6764   1.000000
+7628 0   0.000000
+7628 2   0.000000
+7628 3   0.000000
+7628 6697 -80.000000
+7628 6767  80.000000
+7628 6769   1.000000
+7629 0   0.000000
+7629 2   0.000000
+7629 3   0.000000
+7629 6698 -40.000000
+7629 6768  40.000000
+7629 6770   1.000000
+7630 0   0.000000
+7630 2   0.000000
+7630 3   0.000000
+7630 6701 -80.000000
+7630 6771  80.000000
+7630 6773   1.000000
+7631 0   0.000000
+7631 2   0.000000
+7631 3   0.000000
+7631 6702 -40.000000
+7631 6772  40.000000
+7631 6774   1.000000
+7632 0   0.000000
+7632 2   0.000000
+7632 3   0.000000
+7632 6705 -80.000000
+7632 6775  80.000000
+7632 6777   1.000000
+7633 0   0.000000
+7633 2   0.000000
+7633 3   0.000000
+7633 6706 -40.000000
+7633 6776  40.000000
+7633 6778   1.000000
+7634 0   0.000000
+7634 2   0.000000
+7634 3   0.000000
+7634 6711 -80.000000
+7634 6781  80.000000
+7634 6783   1.000000
+7635 0   0.000000
+7635 2   0.000000
+7635 3   0.000000
+7635 6712 -40.000000
+7635 6782  40.000000
+7635 6784   1.000000
+7636 0   0.000000
+7636 2   0.000000
+7636 3   0.000000
+7636 6715 -80.000000
+7636 6785  80.000000
+7636 6787   1.000000
+7637 0   0.000000
+7637 2   0.000000
+7637 3   0.000000
+7637 6716 -40.000000
+7637 6786  40.000000
+7637 6788   1.000000
+7638 0   0.000000
+7638 2   0.000000
+7638 3   0.000000
+7638 6719 -80.000000
+7638 6789  80.000000
+7638 6791   1.000000
+7639 0   0.000000
+7639 2   0.000000
+7639 3   0.000000
+7639 6720 -40.000000
+7639 6790  40.000000
+7639 6792   1.000000
+7640 0   0.000000
+7640 2   0.000000
+7640 3   0.000000
+7640 6725 -80.000000
+7640 6795  80.000000
+7640 6797   1.000000
+7641 0   0.000000
+7641 2   0.000000
+7641 3   0.000000
+7641 6726 -40.000000
+7641 6796  40.000000
+7641 6798   1.000000
+7642 0   0.000000
+7642 2   0.000000
+7642 3   0.000000
+7642 6729 -80.000000
+7642 6799  80.000000
+7642 6801   1.000000
+7643 0   0.000000
+7643 2   0.000000
+7643 3   0.000000
+7643 6730 -40.000000
+7643 6800  40.000000
+7643 6802   1.000000
+7644 0   0.000000
+7644 2   0.000000
+7644 3   0.000000
+7644 6733 -80.000000
+7644 6803  80.000000
+7644 6805   1.000000
+7645 0   0.000000
+7645 2   0.000000
+7645 3   0.000000
+7645 6734 -40.000000
+7645 6804  40.000000
+7645 6806   1.000000
+7646 0   0.000000
+7646 2   0.000000
+7646 3   0.000000
+7646 6739 -80.000000
+7646 6809  80.000000
+7646 6811   1.000000
+7647 0   0.000000
+7647 2   0.000000
+7647 3   0.000000
+7647 6740 -40.000000
+7647 6810  40.000000
+7647 6812   1.000000
+7648 0   0.000000
+7648 2   0.000000
+7648 3   0.000000
+7648 6743 -80.000000
+7648 6813  80.000000
+7648 6815   1.000000
+7649 0   0.000000
+7649 2   0.000000
+7649 3   0.000000
+7649 6744 -40.000000
+7649 6814  40.000000
+7649 6816   1.000000
+7650 0   0.000000
+7650 2   0.000000
+7650 3   0.000000
+7650 6747 -80.000000
+7650 6817  80.000000
+7650 6819   1.000000
+7651 0   0.000000
+7651 2   0.000000
+7651 3   0.000000
+7651 6748 -40.000000
+7651 6818  40.000000
+7651 6820   1.000000
+7652 0   0.000000
+7652 2   0.000000
+7652 3   0.000000
+7652 6753 -80.000000
+7652 6823  80.000000
+7652 6825   1.000000
+7653 0   0.000000
+7653 2   0.000000
+7653 3   0.000000
+7653 6754 -40.000000
+7653 6824  40.000000
+7653 6826   1.000000
+7654 0   0.000000
+7654 2   0.000000
+7654 3   0.000000
+7654 6757 -80.000000
+7654 6827  80.000000
+7654 6829   1.000000
+7655 0   0.000000
+7655 2   0.000000
+7655 3   0.000000
+7655 6758 -40.000000
+7655 6828  40.000000
+7655 6830   1.000000
+7656 0   0.000000
+7656 2   0.000000
+7656 3   0.000000
+7656 6761 -80.000000
+7656 6831  80.000000
+7656 6833   1.000000
+7657 0   0.000000
+7657 2   0.000000
+7657 3   0.000000
+7657 6762 -40.000000
+7657 6832  40.000000
+7657 6834   1.000000
+7658 0   0.000000
+7658 2   0.000000
+7658 3   0.000000
+7658 6767 -80.000000
+7658 6837  80.000000
+7658 6839   1.000000
+7659 0   0.000000
+7659 2   0.000000
+7659 3   0.000000
+7659 6768 -40.000000
+7659 6838  40.000000
+7659 6840   1.000000
+7660 0   0.000000
+7660 2   0.000000
+7660 3   0.000000
+7660 6771 -80.000000
+7660 6841  80.000000
+7660 6843   1.000000
+7661 0   0.000000
+7661 2   0.000000
+7661 3   0.000000
+7661 6772 -40.000000
+7661 6842  40.000000
+7661 6844   1.000000
+7662 0   0.000000
+7662 2   0.000000
+7662 3   0.000000
+7662 6775 -80.000000
+7662 6845  80.000000
+7662 6847   1.000000
+7663 0   0.000000
+7663 2   0.000000
+7663 3   0.000000
+7663 6776 -40.000000
+7663 6846  40.000000
+7663 6848   1.000000
+7664 0   0.000000
+7664 2   0.000000
+7664 3   0.000000
+7664 6781 -80.000000
+7664 6851  80.000000
+7664 6853   1.000000
+7665 0   0.000000
+7665 2   0.000000
+7665 3   0.000000
+7665 6782 -40.000000
+7665 6852  40.000000
+7665 6854   1.000000
+7666 0   0.000000
+7666 2   0.000000
+7666 3   0.000000
+7666 6785 -80.000000
+7666 6855  80.000000
+7666 6857   1.000000
+7667 0   0.000000
+7667 2   0.000000
+7667 3   0.000000
+7667 6786 -40.000000
+7667 6856  40.000000
+7667 6858   1.000000
+7668 0   0.000000
+7668 2   0.000000
+7668 3   0.000000
+7668 6789 -80.000000
+7668 6859  80.000000
+7668 6861   1.000000
+7669 0   0.000000
+7669 2   0.000000
+7669 3   0.000000
+7669 6790 -40.000000
+7669 6860  40.000000
+7669 6862   1.000000
+7670 0   0.000000
+7670 2   0.000000
+7670 3   0.000000
+7670 6795 -80.000000
+7670 6865  80.000000
+7670 6867   1.000000
+7671 0   0.000000
+7671 2   0.000000
+7671 3   0.000000
+7671 6796 -40.000000
+7671 6866  40.000000
+7671 6868   1.000000
+7672 0   0.000000
+7672 2   0.000000
+7672 3   0.000000
+7672 6799 -80.000000
+7672 6869  80.000000
+7672 6871   1.000000
+7673 0   0.000000
+7673 2   0.000000
+7673 3   0.000000
+7673 6800 -40.000000
+7673 6870  40.000000
+7673 6872   1.000000
+7674 0   0.000000
+7674 2   0.000000
+7674 3   0.000000
+7674 6803 -80.000000
+7674 6873  80.000000
+7674 6875   1.000000
+7675 0   0.000000
+7675 2   0.000000
+7675 3   0.000000
+7675 6804 -40.000000
+7675 6874  40.000000
+7675 6876   1.000000
+7676 0   0.000000
+7676 2   0.000000
+7676 3   0.000000
+7676 6809 -80.000000
+7676 6879  80.000000
+7676 6881   1.000000
+7677 0   0.000000
+7677 2   0.000000
+7677 3   0.000000
+7677 6810 -40.000000
+7677 6880  40.000000
+7677 6882   1.000000
+7678 0   0.000000
+7678 2   0.000000
+7678 3   0.000000
+7678 6813 -80.000000
+7678 6883  80.000000
+7678 6885   1.000000
+7679 0   0.000000
+7679 2   0.000000
+7679 3   0.000000
+7679 6814 -40.000000
+7679 6884  40.000000
+7679 6886   1.000000
+7680 0   0.000000
+7680 2   0.000000
+7680 3   0.000000
+7680 6817 -80.000000
+7680 6887  80.000000
+7680 6889   1.000000
+7681 0   0.000000
+7681 2   0.000000
+7681 3   0.000000
+7681 6818 -40.000000
+7681 6888  40.000000
+7681 6890   1.000000
+7682 0   0.000000
+7682 2   0.000000
+7682 3   0.000000
+7682 6823 -80.000000
+7682 6893  80.000000
+7682 6895   1.000000
+7683 0   0.000000
+7683 2   0.000000
+7683 3   0.000000
+7683 6824 -40.000000
+7683 6894  40.000000
+7683 6896   1.000000
+7684 0   0.000000
+7684 2   0.000000
+7684 3   0.000000
+7684 6827 -80.000000
+7684 6897  80.000000
+7684 6899   1.000000
+7685 0   0.000000
+7685 2   0.000000
+7685 3   0.000000
+7685 6828 -40.000000
+7685 6898  40.000000
+7685 6900   1.000000
+7686 0   0.000000
+7686 2   0.000000
+7686 3   0.000000
+7686 6831 -80.000000
+7686 6901  80.000000
+7686 6903   1.000000
+7687 0   0.000000
+7687 2   0.000000
+7687 3   0.000000
+7687 6832 -40.000000
+7687 6902  40.000000
+7687 6904   1.000000
+7688 0   0.000000
+7688 2   0.000000
+7688 3   0.000000
+7688 6837 -80.000000
+7688 6907  80.000000
+7688 6909   1.000000
+7689 0   0.000000
+7689 2   0.000000
+7689 3   0.000000
+7689 6838 -40.000000
+7689 6908  40.000000
+7689 6910   1.000000
+7690 0   0.000000
+7690 2   0.000000
+7690 3   0.000000
+7690 6841 -80.000000
+7690 6911  80.000000
+7690 6913   1.000000
+7691 0   0.000000
+7691 2   0.000000
+7691 3   0.000000
+7691 6842 -40.000000
+7691 6912  40.000000
+7691 6914   1.000000
+7692 0   0.000000
+7692 2   0.000000
+7692 3   0.000000
+7692 6845 -80.000000
+7692 6915  80.000000
+7692 6917   1.000000
+7693 0   0.000000
+7693 2   0.000000
+7693 3   0.000000
+7693 6846 -40.000000
+7693 6916  40.000000
+7693 6918   1.000000
+7694 0   0.000000
+7694 2   0.000000
+7694 3   0.000000
+7694 6851 -80.000000
+7694 6921  80.000000
+7694 6923   1.000000
+7695 0   0.000000
+7695 2   0.000000
+7695 3   0.000000
+7695 6852 -40.000000
+7695 6922  40.000000
+7695 6924   1.000000
+7696 0   0.000000
+7696 2   0.000000
+7696 3   0.000000
+7696 6855 -80.000000
+7696 6925  80.000000
+7696 6927   1.000000
+7697 0   0.000000
+7697 2   0.000000
+7697 3   0.000000
+7697 6856 -40.000000
+7697 6926  40.000000
+7697 6928   1.000000
+7698 0   0.000000
+7698 2   0.000000
+7698 3   0.000000
+7698 6859 -80.000000
+7698 6929  80.000000
+7698 6931   1.000000
+7699 0   0.000000
+7699 2   0.000000
+7699 3   0.000000
+7699 6860 -40.000000
+7699 6930  40.000000
+7699 6932   1.000000
+7700 0   0.000000
+7700 2   0.000000
+7700 3   0.000000
+7700 6865 -80.000000
+7700 6935  80.000000
+7700 6937   1.000000
+7701 0   0.000000
+7701 2   0.000000
+7701 3   0.000000
+7701 6866 -40.000000
+7701 6936  40.000000
+7701 6938   1.000000
+7702 0   0.000000
+7702 2   0.000000
+7702 3   0.000000
+7702 6869 -80.000000
+7702 6939  80.000000
+7702 6941   1.000000
+7703 0   0.000000
+7703 2   0.000000
+7703 3   0.000000
+7703 6870 -40.000000
+7703 6940  40.000000
+7703 6942   1.000000
+7704 0   0.000000
+7704 2   0.000000
+7704 3   0.000000
+7704 6873 -80.000000
+7704 6943  80.000000
+7704 6945   1.000000
+7705 0   0.000000
+7705 2   0.000000
+7705 3   0.000000
+7705 6874 -40.000000
+7705 6944  40.000000
+7705 6946   1.000000
+7706 0   0.000000
+7706 2   0.000000
+7706 3   0.000000
+7706 6879 -80.000000
+7706 6949  80.000000
+7706 6951   1.000000
+7707 0   0.000000
+7707 2   0.000000
+7707 3   0.000000
+7707 6880 -40.000000
+7707 6950  40.000000
+7707 6952   1.000000
+7708 0   0.000000
+7708 2   0.000000
+7708 3   0.000000
+7708 6883 -80.000000
+7708 6953  80.000000
+7708 6955   1.000000
+7709 0   0.000000
+7709 2   0.000000
+7709 3   0.000000
+7709 6884 -40.000000
+7709 6954  40.000000
+7709 6956   1.000000
+7710 0   0.000000
+7710 2   0.000000
+7710 3   0.000000
+7710 6887 -80.000000
+7710 6957  80.000000
+7710 6959   1.000000
+7711 0   0.000000
+7711 2   0.000000
+7711 3   0.000000
+7711 6888 -40.000000
+7711 6958  40.000000
+7711 6960   1.000000
+7712 0   0.000000
+7712 2   0.000000
+7712 3   0.000000
+7712 6893 -80.000000
+7712 6963  80.000000
+7712 6965   1.000000
+7713 0   0.000000
+7713 2   0.000000
+7713 3   0.000000
+7713 6894 -40.000000
+7713 6964  40.000000
+7713 6966   1.000000
+7714 0   0.000000
+7714 2   0.000000
+7714 3   0.000000
+7714 6897 -80.000000
+7714 6967  80.000000
+7714 6969   1.000000
+7715 0   0.000000
+7715 2   0.000000
+7715 3   0.000000
+7715 6898 -40.000000
+7715 6968  40.000000
+7715 6970   1.000000
+7716 0   0.000000
+7716 2   0.000000
+7716 3   0.000000
+7716 6901 -80.000000
+7716 6971  80.000000
+7716 6973   1.000000
+7717 0   0.000000
+7717 2   0.000000
+7717 3   0.000000
+7717 6902 -40.000000
+7717 6972  40.000000
+7717 6974   1.000000
+7718 0   0.000000
+7718 2   0.000000
+7718 3   0.000000
+7718 6907 -80.000000
+7718 6977  80.000000
+7718 6979   1.000000
+7719 0   0.000000
+7719 2   0.000000
+7719 3   0.000000
+7719 6908 -40.000000
+7719 6978  40.000000
+7719 6980   1.000000
+7720 0   0.000000
+7720 2   0.000000
+7720 3   0.000000
+7720 6911 -80.000000
+7720 6981  80.000000
+7720 6983   1.000000
+7721 0   0.000000
+7721 2   0.000000
+7721 3   0.000000
+7721 6912 -40.000000
+7721 6982  40.000000
+7721 6984   1.000000
+7722 0   0.000000
+7722 2   0.000000
+7722 3   0.000000
+7722 6915 -80.000000
+7722 6985  80.000000
+7722 6987   1.000000
+7723 0   0.000000
+7723 2   0.000000
+7723 3   0.000000
+7723 6916 -40.000000
+7723 6986  40.000000
+7723 6988   1.000000
+7724 0   0.000000
+7724 2   0.000000
+7724 3   0.000000
+7724 6921 -80.000000
+7724 6991  80.000000
+7724 6993   1.000000
+7725 0   0.000000
+7725 2   0.000000
+7725 3   0.000000
+7725 6922 -40.000000
+7725 6992  40.000000
+7725 6994   1.000000
+7726 0   0.000000
+7726 2   0.000000
+7726 3   0.000000
+7726 6925 -80.000000
+7726 6995  80.000000
+7726 6997   1.000000
+7727 0   0.000000
+7727 2   0.000000
+7727 3   0.000000
+7727 6926 -40.000000
+7727 6996  40.000000
+7727 6998   1.000000
+7728 0   0.000000
+7728 2   0.000000
+7728 3   0.000000
+7728 6929 -80.000000
+7728 6999  80.000000
+7728 7001   1.000000
+7729 0   0.000000
+7729 2   0.000000
+7729 3   0.000000
+7729 6930 -40.000000
+7729 7000  40.000000
+7729 7002   1.000000
+7730 0   0.000000
+7730 1   0.000000
+7730 6935 -60.000000
+7730 7005  60.000000
+7730 7007   1.000000
+7731 0   0.000000
+7731 1   0.000000
+7731 6936 -30.000000
+7731 7006  30.000000
+7731 7008   1.000000
+7732 0   0.000000
+7732 1   0.000000
+7732 6939 -60.000000
+7732 7009  60.000000
+7732 7011   1.000000
+7733 0   0.000000
+7733 1   0.000000
+7733 6940 -30.000000
+7733 7010  30.000000
+7733 7012   1.000000
+7734 0   0.000000
+7734 1   0.000000
+7734 6943 -60.000000
+7734 7013  60.000000
+7734 7015   1.000000
+7735 0   0.000000
+7735 1   0.000000
+7735 6944 -30.000000
+7735 7014  30.000000
+7735 7016   1.000000
+7736 0   0.000000
+7736 1   0.000000
+7736 6949 -60.000000
+7736 7019  60.000000
+7736 7021   1.000000
+7737 0   0.000000
+7737 1   0.000000
+7737 6950 -30.000000
+7737 7020  30.000000
+7737 7022   1.000000
+7738 0   0.000000
+7738 1   0.000000
+7738 6953 -60.000000
+7738 7023  60.000000
+7738 7025   1.000000
+7739 0   0.000000
+7739 1   0.000000
+7739 6954 -30.000000
+7739 7024  30.000000
+7739 7026   1.000000
+7740 0   0.000000
+7740 1   0.000000
+7740 6957 -60.000000
+7740 7027  60.000000
+7740 7029   1.000000
+7741 0   0.000000
+7741 1   0.000000
+7741 6958 -30.000000
+7741 7028  30.000000
+7741 7030   1.000000
+7742 0   0.000000
+7742 1   0.000000
+7742 6963 -60.000000
+7742 7033  60.000000
+7742 7035   1.000000
+7743 0   0.000000
+7743 1   0.000000
+7743 6964 -30.000000
+7743 7034  30.000000
+7743 7036   1.000000
+7744 0   0.000000
+7744 1   0.000000
+7744 6967 -60.000000
+7744 7037  60.000000
+7744 7039   1.000000
+7745 0   0.000000
+7745 1   0.000000
+7745 6968 -30.000000
+7745 7038  30.000000
+7745 7040   1.000000
+7746 0   0.000000
+7746 1   0.000000
+7746 6971 -60.000000
+7746 7041  60.000000
+7746 7043   1.000000
+7747 0   0.000000
+7747 1   0.000000
+7747 6972 -30.000000
+7747 7042  30.000000
+7747 7044   1.000000
+7748 0   0.000000
+7748 1   0.000000
+7748 6977 -60.000000
+7748 7047  60.000000
+7748 7049   1.000000
+7749 0   0.000000
+7749 1   0.000000
+7749 6978 -30.000000
+7749 7048  30.000000
+7749 7050   1.000000
+7750 0   0.000000
+7750 1   0.000000
+7750 6981 -60.000000
+7750 7051  60.000000
+7750 7053   1.000000
+7751 0   0.000000
+7751 1   0.000000
+7751 6982 -30.000000
+7751 7052  30.000000
+7751 7054   1.000000
+7752 0   0.000000
+7752 1   0.000000
+7752 6985 -60.000000
+7752 7055  60.000000
+7752 7057   1.000000
+7753 0   0.000000
+7753 1   0.000000
+7753 6986 -30.000000
+7753 7056  30.000000
+7753 7058   1.000000
+7754 0   0.000000
+7754 1   0.000000
+7754 6991 -60.000000
+7754 7061  60.000000
+7754 7063   1.000000
+7755 0   0.000000
+7755 1   0.000000
+7755 6992 -30.000000
+7755 7062  30.000000
+7755 7064   1.000000
+7756 0   0.000000
+7756 1   0.000000
+7756 6995 -60.000000
+7756 7065  60.000000
+7756 7067   1.000000
+7757 0   0.000000
+7757 1   0.000000
+7757 6996 -30.000000
+7757 7066  30.000000
+7757 7068   1.000000
+7758 0   0.000000
+7758 1   0.000000
+7758 6999 -60.000000
+7758 7069  60.000000
+7758 7071   1.000000
+7759 0   0.000000
+7759 1   0.000000
+7759 7000 -30.000000
+7759 7070  30.000000
+7759 7072   1.000000
+7760 69  -1.000000
+7760 7017   1.000000
+7761 70  -1.000000
+7761 7018   1.000000
+7762 0   0.000000
+7762 1   0.000000
+7762 7005 -60.000000
+7762 7075  60.000000
+7762 7077   1.000000
+7763 0   0.000000
+7763 1   0.000000
+7763 7006 -30.000000
+7763 7076  30.000000
+7763 7078   1.000000
+7764 0   0.000000
+7764 1   0.000000
+7764 7009 -60.000000
+7764 7079  60.000000
+7764 7081   1.000000
+7765 0   0.000000
+7765 1   0.000000
+7765 7010 -30.000000
+7765 7080  30.000000
+7765 7082   1.000000
+7766 0   0.000000
+7766 1   0.000000
+7766 7013 -60.000000
+7766 7083  60.000000
+7766 7085   1.000000
+7767 0   0.000000
+7767 1   0.000000
+7767 7014 -30.000000
+7767 7084  30.000000
+7767 7086   1.000000
+7768 0   0.000000
+7768 1   0.000000
+7768 7019 -60.000000
+7768 7089  60.000000
+7768 7091   1.000000
+7769 0   0.000000
+7769 1   0.000000
+7769 7020 -30.000000
+7769 7090  30.000000
+7769 7092   1.000000
+7770 0   0.000000
+7770 1   0.000000
+7770 7023 -60.000000
+7770 7093  60.000000
+7770 7095   1.000000
+7771 0   0.000000
+7771 1   0.000000
+7771 7024 -30.000000
+7771 7094  30.000000
+7771 7096   1.000000
+7772 0   0.000000
+7772 1   0.000000
+7772 7027 -60.000000
+7772 7097  60.000000
+7772 7099   1.000000
+7773 0   0.000000
+7773 1   0.000000
+7773 7028 -30.000000
+7773 7098  30.000000
+7773 7100   1.000000
+7774 0   0.000000
+7774 1   0.000000
+7774 7033 -60.000000
+7774 7103  60.000000
+7774 7105   1.000000
+7775 0   0.000000
+7775 1   0.000000
+7775 7034 -30.000000
+7775 7104  30.000000
+7775 7106   1.000000
+7776 0   0.000000
+7776 1   0.000000
+7776 7037 -60.000000
+7776 7107  60.000000
+7776 7109   1.000000
+7777 0   0.000000
+7777 1   0.000000
+7777 7038 -30.000000
+7777 7108  30.000000
+7777 7110   1.000000
+7778 0   0.000000
+7778 1   0.000000
+7778 7041 -60.000000
+7778 7111  60.000000
+7778 7113   1.000000
+7779 0   0.000000
+7779 1   0.000000
+7779 7042 -30.000000
+7779 7112  30.000000
+7779 7114   1.000000
+7780 0   0.000000
+7780 1   0.000000
+7780 7047 -60.000000
+7780 7117  60.000000
+7780 7119   1.000000
+7781 0   0.000000
+7781 1   0.000000
+7781 7048 -30.000000
+7781 7118  30.000000
+7781 7120   1.000000
+7782 0   0.000000
+7782 1   0.000000
+7782 7051 -60.000000
+7782 7121  60.000000
+7782 7123   1.000000
+7783 0   0.000000
+7783 1   0.000000
+7783 7052 -30.000000
+7783 7122  30.000000
+7783 7124   1.000000
+7784 0   0.000000
+7784 1   0.000000
+7784 7055 -60.000000
+7784 7125  60.000000
+7784 7127   1.000000
+7785 0   0.000000
+7785 1   0.000000
+7785 7056 -30.000000
+7785 7126  30.000000
+7785 7128   1.000000
+7786 0   0.000000
+7786 1   0.000000
+7786 7061 -60.000000
+7786 7131  60.000000
+7786 7133   1.000000
+7787 0   0.000000
+7787 1   0.000000
+7787 7062 -30.000000
+7787 7132  30.000000
+7787 7134   1.000000
+7788 0   0.000000
+7788 1   0.000000
+7788 7065 -60.000000
+7788 7135  60.000000
+7788 7137   1.000000
+7789 0   0.000000
+7789 1   0.000000
+7789 7066 -30.000000
+7789 7136  30.000000
+7789 7138   1.000000
+7790 0   0.000000
+7790 1   0.000000
+7790 7069 -60.000000
+7790 7139  60.000000
+7790 7141   1.000000
+7791 0   0.000000
+7791 1   0.000000
+7791 7070 -30.000000
+7791 7140  30.000000
+7791 7142   1.000000
+7792 139  -1.000000
+7792 7087   1.000000
+7793 140  -1.000000
+7793 7088   1.000000
+7794 0   0.000000
+7794 1   0.000000
+7794 7075 -60.000000
+7794 7145  60.000000
+7794 7147   1.000000
+7795 0   0.000000
+7795 1   0.000000
+7795 7076 -30.000000
+7795 7146  30.000000
+7795 7148   1.000000
+7796 0   0.000000
+7796 1   0.000000
+7796 7079 -60.000000
+7796 7149  60.000000
+7796 7151   1.000000
+7797 0   0.000000
+7797 1   0.000000
+7797 7080 -30.000000
+7797 7150  30.000000
+7797 7152   1.000000
+7798 0   0.000000
+7798 1   0.000000
+7798 7083 -60.000000
+7798 7153  60.000000
+7798 7155   1.000000
+7799 0   0.000000
+7799 1   0.000000
+7799 7084 -30.000000
+7799 7154  30.000000
+7799 7156   1.000000
+7800 0   0.000000
+7800 1   0.000000
+7800 7089 -60.000000
+7800 7159  60.000000
+7800 7161   1.000000
+7801 0   0.000000
+7801 1   0.000000
+7801 7090 -30.000000
+7801 7160  30.000000
+7801 7162   1.000000
+7802 0   0.000000
+7802 1   0.000000
+7802 7093 -60.000000
+7802 7163  60.000000
+7802 7165   1.000000
+7803 0   0.000000
+7803 1   0.000000
+7803 7094 -30.000000
+7803 7164  30.000000
+7803 7166   1.000000
+7804 0   0.000000
+7804 1   0.000000
+7804 7097 -60.000000
+7804 7167  60.000000
+7804 7169   1.000000
+7805 0   0.000000
+7805 1   0.000000
+7805 7098 -30.000000
+7805 7168  30.000000
+7805 7170   1.000000
+7806 0   0.000000
+7806 1   0.000000
+7806 7103 -60.000000
+7806 7173  60.000000
+7806 7175   1.000000
+7807 0   0.000000
+7807 1   0.000000
+7807 7104 -30.000000
+7807 7174  30.000000
+7807 7176   1.000000
+7808 0   0.000000
+7808 1   0.000000
+7808 7107 -60.000000
+7808 7177  60.000000
+7808 7179   1.000000
+7809 0   0.000000
+7809 1   0.000000
+7809 7108 -30.000000
+7809 7178  30.000000
+7809 7180   1.000000
+7810 0   0.000000
+7810 1   0.000000
+7810 7111 -60.000000
+7810 7181  60.000000
+7810 7183   1.000000
+7811 0   0.000000
+7811 1   0.000000
+7811 7112 -30.000000
+7811 7182  30.000000
+7811 7184   1.000000
+7812 0   0.000000
+7812 1   0.000000
+7812 7117 -60.000000
+7812 7187  60.000000
+7812 7189   1.000000
+7813 0   0.000000
+7813 1   0.000000
+7813 7118 -30.000000
+7813 7188  30.000000
+7813 7190   1.000000
+7814 0   0.000000
+7814 1   0.000000
+7814 7121 -60.000000
+7814 7191  60.000000
+7814 7193   1.000000
+7815 0   0.000000
+7815 1   0.000000
+7815 7122 -30.000000
+7815 7192  30.000000
+7815 7194   1.000000
+7816 0   0.000000
+7816 1   0.000000
+7816 7125 -60.000000
+7816 7195  60.000000
+7816 7197   1.000000
+7817 0   0.000000
+7817 1   0.000000
+7817 7126 -30.000000
+7817 7196  30.000000
+7817 7198   1.000000
+7818 0   0.000000
+7818 1   0.000000
+7818 7131 -60.000000
+7818 7201  60.000000
+7818 7203   1.000000
+7819 0   0.000000
+7819 1   0.000000
+7819 7132 -30.000000
+7819 7202  30.000000
+7819 7204   1.000000
+7820 0   0.000000
+7820 1   0.000000
+7820 7135 -60.000000
+7820 7205  60.000000
+7820 7207   1.000000
+7821 0   0.000000
+7821 1   0.000000
+7821 7136 -30.000000
+7821 7206  30.000000
+7821 7208   1.000000
+7822 0   0.000000
+7822 1   0.000000
+7822 7139 -60.000000
+7822 7209  60.000000
+7822 7211   1.000000
+7823 0   0.000000
+7823 1   0.000000
+7823 7140 -30.000000
+7823 7210  30.000000
+7823 7212   1.000000
+7824 209  -1.000000
+7824 7157   1.000000
+7825 210  -1.000000
+7825 7158   1.000000
+7826 0   0.000000
+7826 1   0.000000
+7826 7145 -60.000000
+7826 7215  60.000000
+7826 7217   1.000000
+7827 0   0.000000
+7827 1   0.000000
+7827 7146 -30.000000
+7827 7216  30.000000
+7827 7218   1.000000
+7828 0   0.000000
+7828 1   0.000000
+7828 7149 -60.000000
+7828 7219  60.000000
+7828 7221   1.000000
+7829 0   0.000000
+7829 1   0.000000
+7829 7150 -30.000000
+7829 7220  30.000000
+7829 7222   1.000000
+7830 0   0.000000
+7830 1   0.000000
+7830 7153 -60.000000
+7830 7223  60.000000
+7830 7225   1.000000
+7831 0   0.000000
+7831 1   0.000000
+7831 7154 -30.000000
+7831 7224  30.000000
+7831 7226   1.000000
+7832 0   0.000000
+7832 1   0.000000
+7832 7159 -60.000000
+7832 7229  60.000000
+7832 7231   1.000000
+7833 0   0.000000
+7833 1   0.000000
+7833 7160 -30.000000
+7833 7230  30.000000
+7833 7232   1.000000
+7834 0   0.000000
+7834 1   0.000000
+7834 7163 -60.000000
+7834 7233  60.000000
+7834 7235   1.000000
+7835 0   0.000000
+7835 1   0.000000
+7835 7164 -30.000000
+7835 7234  30.000000
+7835 7236   1.000000
+7836 0   0.000000
+7836 1   0.000000
+7836 7167 -60.000000
+7836 7237  60.000000
+7836 7239   1.000000
+7837 0   0.000000
+7837 1   0.000000
+7837 7168 -30.000000
+7837 7238  30.000000
+7837 7240   1.000000
+7838 0   0.000000
+7838 1   0.000000
+7838 7173 -60.000000
+7838 7243  60.000000
+7838 7245   1.000000
+7839 0   0.000000
+7839 1   0.000000
+7839 7174 -30.000000
+7839 7244  30.000000
+7839 7246   1.000000
+7840 0   0.000000
+7840 1   0.000000
+7840 7177 -60.000000
+7840 7247  60.000000
+7840 7249   1.000000
+7841 0   0.000000
+7841 1   0.000000
+7841 7178 -30.000000
+7841 7248  30.000000
+7841 7250   1.000000
+7842 0   0.000000
+7842 1   0.000000
+7842 7181 -60.000000
+7842 7251  60.000000
+7842 7253   1.000000
+7843 0   0.000000
+7843 1   0.000000
+7843 7182 -30.000000
+7843 7252  30.000000
+7843 7254   1.000000
+7844 0   0.000000
+7844 1   0.000000
+7844 7187 -60.000000
+7844 7257  60.000000
+7844 7259   1.000000
+7845 0   0.000000
+7845 1   0.000000
+7845 7188 -30.000000
+7845 7258  30.000000
+7845 7260   1.000000
+7846 0   0.000000
+7846 1   0.000000
+7846 7191 -60.000000
+7846 7261  60.000000
+7846 7263   1.000000
+7847 0   0.000000
+7847 1   0.000000
+7847 7192 -30.000000
+7847 7262  30.000000
+7847 7264   1.000000
+7848 0   0.000000
+7848 1   0.000000
+7848 7195 -60.000000
+7848 7265  60.000000
+7848 7267   1.000000
+7849 0   0.000000
+7849 1   0.000000
+7849 7196 -30.000000
+7849 7266  30.000000
+7849 7268   1.000000
+7850 0   0.000000
+7850 1   0.000000
+7850 7201 -60.000000
+7850 7271  60.000000
+7850 7273   1.000000
+7851 0   0.000000
+7851 1   0.000000
+7851 7202 -30.000000
+7851 7272  30.000000
+7851 7274   1.000000
+7852 0   0.000000
+7852 1   0.000000
+7852 7205 -60.000000
+7852 7275  60.000000
+7852 7277   1.000000
+7853 0   0.000000
+7853 1   0.000000
+7853 7206 -30.000000
+7853 7276  30.000000
+7853 7278   1.000000
+7854 0   0.000000
+7854 1   0.000000
+7854 7209 -60.000000
+7854 7279  60.000000
+7854 7281   1.000000
+7855 0   0.000000
+7855 1   0.000000
+7855 7210 -30.000000
+7855 7280  30.000000
+7855 7282   1.000000
+7856 279  -1.000000
+7856 7227   1.000000
+7857 280  -1.000000
+7857 7228   1.000000
+7858 0   0.000000
+7858 1   0.000000
+7858 7215 -60.000000
+7858 7285  60.000000
+7858 7287   1.000000
+7859 0   0.000000
+7859 1   0.000000
+7859 7216 -30.000000
+7859 7286  30.000000
+7859 7288   1.000000
+7860 0   0.000000
+7860 1   0.000000
+7860 7219 -60.000000
+7860 7289  60.000000
+7860 7291   1.000000
+7861 0   0.000000
+7861 1   0.000000
+7861 7220 -30.000000
+7861 7290  30.000000
+7861 7292   1.000000
+7862 0   0.000000
+7862 1   0.000000
+7862 7223 -60.000000
+7862 7293  60.000000
+7862 7295   1.000000
+7863 0   0.000000
+7863 1   0.000000
+7863 7224 -30.000000
+7863 7294  30.000000
+7863 7296   1.000000
+7864 0   0.000000
+7864 1   0.000000
+7864 7229 -60.000000
+7864 7299  60.000000
+7864 7301   1.000000
+7865 0   0.000000
+7865 1   0.000000
+7865 7230 -30.000000
+7865 7300  30.000000
+7865 7302   1.000000
+7866 0   0.000000
+7866 1   0.000000
+7866 7233 -60.000000
+7866 7303  60.000000
+7866 7305   1.000000
+7867 0   0.000000
+7867 1   0.000000
+7867 7234 -30.000000
+7867 7304  30.000000
+7867 7306   1.000000
+7868 0   0.000000
+7868 1   0.000000
+7868 7237 -60.000000
+7868 7307  60.000000
+7868 7309   1.000000
+7869 0   0.000000
+7869 1   0.000000
+7869 7238 -30.000000
+7869 7308  30.000000
+7869 7310   1.000000
+7870 0   0.000000
+7870 1   0.000000
+7870 7243 -60.000000
+7870 7313  60.000000
+7870 7315   1.000000
+7871 0   0.000000
+7871 1   0.000000
+7871 7244 -30.000000
+7871 7314  30.000000
+7871 7316   1.000000
+7872 0   0.000000
+7872 1   0.000000
+7872 7247 -60.000000
+7872 7317  60.000000
+7872 7319   1.000000
+7873 0   0.000000
+7873 1   0.000000
+7873 7248 -30.000000
+7873 7318  30.000000
+7873 7320   1.000000
+7874 0   0.000000
+7874 1   0.000000
+7874 7251 -60.000000
+7874 7321  60.000000
+7874 7323   1.000000
+7875 0   0.000000
+7875 1   0.000000
+7875 7252 -30.000000
+7875 7322  30.000000
+7875 7324   1.000000
+7876 0   0.000000
+7876 1   0.000000
+7876 7257 -60.000000
+7876 7327  60.000000
+7876 7329   1.000000
+7877 0   0.000000
+7877 1   0.000000
+7877 7258 -30.000000
+7877 7328  30.000000
+7877 7330   1.000000
+7878 0   0.000000
+7878 1   0.000000
+7878 7261 -60.000000
+7878 7331  60.000000
+7878 7333   1.000000
+7879 0   0.000000
+7879 1   0.000000
+7879 7262 -30.000000
+7879 7332  30.000000
+7879 7334   1.000000
+7880 0   0.000000
+7880 1   0.000000
+7880 7265 -60.000000
+7880 7335  60.000000
+7880 7337   1.000000
+7881 0   0.000000
+7881 1   0.000000
+7881 7266 -30.000000
+7881 7336  30.000000
+7881 7338   1.000000
+7882 0   0.000000
+7882 1   0.000000
+7882 7271 -60.000000
+7882 7341  60.000000
+7882 7343   1.000000
+7883 0   0.000000
+7883 1   0.000000
+7883 7272 -30.000000
+7883 7342  30.000000
+7883 7344   1.000000
+7884 0   0.000000
+7884 1   0.000000
+7884 7275 -60.000000
+7884 7345  60.000000
+7884 7347   1.000000
+7885 0   0.000000
+7885 1   0.000000
+7885 7276 -30.000000
+7885 7346  30.000000
+7885 7348   1.000000
+7886 0   0.000000
+7886 1   0.000000
+7886 7279 -60.000000
+7886 7349  60.000000
+7886 7351   1.000000
+7887 0   0.000000
+7887 1   0.000000
+7887 7280 -30.000000
+7887 7350  30.000000
+7887 7352   1.000000
+7888 349  -1.000000
+7888 7297   1.000000
+7889 350  -1.000000
+7889 7298   1.000000
+7890 0   0.000000
+7890 1   0.000000
+7890 7285 -60.000000
+7890 7355  60.000000
+7890 7357   1.000000
+7891 0   0.000000
+7891 1   0.000000
+7891 7286 -30.000000
+7891 7356  30.000000
+7891 7358   1.000000
+7892 0   0.000000
+7892 1   0.000000
+7892 7289 -60.000000
+7892 7359  60.000000
+7892 7361   1.000000
+7893 0   0.000000
+7893 1   0.000000
+7893 7290 -30.000000
+7893 7360  30.000000
+7893 7362   1.000000
+7894 0   0.000000
+7894 1   0.000000
+7894 7293 -60.000000
+7894 7363  60.000000
+7894 7365   1.000000
+7895 0   0.000000
+7895 1   0.000000
+7895 7294 -30.000000
+7895 7364  30.000000
+7895 7366   1.000000
+7896 0   0.000000
+7896 1   0.000000
+7896 7299 -60.000000
+7896 7369  60.000000
+7896 7371   1.000000
+7897 0   0.000000
+7897 1   0.000000
+7897 7300 -30.000000
+7897 7370  30.000000
+7897 7372   1.000000
+7898 0   0.000000
+7898 1   0.000000
+7898 7303 -60.000000
+7898 7373  60.000000
+7898 7375   1.000000
+7899 0   0.000000
+7899 1   0.000000
+7899 7304 -30.000000
+7899 7374  30.000000
+7899 7376   1.000000
+7900 0   0.000000
+7900 1   0.000000
+7900 7307 -60.000000
+7900 7377  60.000000
+7900 7379   1.000000
+7901 0   0.000000
+7901 1   0.000000
+7901 7308 -30.000000
+7901 7378  30.000000
+7901 7380   1.000000
+7902 0   0.000000
+7902 1   0.000000
+7902 7313 -60.000000
+7902 7383  60.000000
+7902 7385   1.000000
+7903 0   0.000000
+7903 1   0.000000
+7903 7314 -30.000000
+7903 7384  30.000000
+7903 7386   1.000000
+7904 0   0.000000
+7904 1   0.000000
+7904 7317 -60.000000
+7904 7387  60.000000
+7904 7389   1.000000
+7905 0   0.000000
+7905 1   0.000000
+7905 7318 -30.000000
+7905 7388  30.000000
+7905 7390   1.000000
+7906 0   0.000000
+7906 1   0.000000
+7906 7321 -60.000000
+7906 7391  60.000000
+7906 7393   1.000000
+7907 0   0.000000
+7907 1   0.000000
+7907 7322 -30.000000
+7907 7392  30.000000
+7907 7394   1.000000
+7908 0   0.000000
+7908 1   0.000000
+7908 7327 -60.000000
+7908 7397  60.000000
+7908 7399   1.000000
+7909 0   0.000000
+7909 1   0.000000
+7909 7328 -30.000000
+7909 7398  30.000000
+7909 7400   1.000000
+7910 0   0.000000
+7910 1   0.000000
+7910 7331 -60.000000
+7910 7401  60.000000
+7910 7403   1.000000
+7911 0   0.000000
+7911 1   0.000000
+7911 7332 -30.000000
+7911 7402  30.000000
+7911 7404   1.000000
+7912 0   0.000000
+7912 1   0.000000
+7912 7335 -60.000000
+7912 7405  60.000000
+7912 7407   1.000000
+7913 0   0.000000
+7913 1   0.000000
+7913 7336 -30.000000
+7913 7406  30.000000
+7913 7408   1.000000
+7914 0   0.000000
+7914 1   0.000000
+7914 7341 -60.000000
+7914 7411  60.000000
+7914 7413   1.000000
+7915 0   0.000000
+7915 1   0.000000
+7915 7342 -30.000000
+7915 7412  30.000000
+7915 7414   1.000000
+7916 0   0.000000
+7916 1   0.000000
+7916 7345 -60.000000
+7916 7415  60.000000
+7916 7417   1.000000
+7917 0   0.000000
+7917 1   0.000000
+7917 7346 -30.000000
+7917 7416  30.000000
+7917 7418   1.000000
+7918 0   0.000000
+7918 1   0.000000
+7918 7349 -60.000000
+7918 7419  60.000000
+7918 7421   1.000000
+7919 0   0.000000
+7919 1   0.000000
+7919 7350 -30.000000
+7919 7420  30.000000
+7919 7422   1.000000
+7920 419  -1.000000
+7920 7367   1.000000
+7921 420  -1.000000
+7921 7368   1.000000
+7922 0   0.000000
+7922 1   0.000000
+7922 7355 -60.000000
+7922 7425  60.000000
+7922 7427   1.000000
+7923 0   0.000000
+7923 1   0.000000
+7923 7356 -30.000000
+7923 7426  30.000000
+7923 7428   1.000000
+7924 0   0.000000
+7924 1   0.000000
+7924 7359 -60.000000
+7924 7429  60.000000
+7924 7431   1.000000
+7925 0   0.000000
+7925 1   0.000000
+7925 7360 -30.000000
+7925 7430  30.000000
+7925 7432   1.000000
+7926 0   0.000000
+7926 1   0.000000
+7926 7363 -60.000000
+7926 7433  60.000000
+7926 7435   1.000000
+7927 0   0.000000
+7927 1   0.000000
+7927 7364 -30.000000
+7927 7434  30.000000
+7927 7436   1.000000
+7928 0   0.000000
+7928 1   0.000000
+7928 7369 -60.000000
+7928 7439  60.000000
+7928 7441   1.000000
+7929 0   0.000000
+7929 1   0.000000
+7929 7370 -30.000000
+7929 7440  30.000000
+7929 7442   1.000000
+7930 0   0.000000
+7930 1   0.000000
+7930 7373 -60.000000
+7930 7443  60.000000
+7930 7445   1.000000
+7931 0   0.000000
+7931 1   0.000000
+7931 7374 -30.000000
+7931 7444  30.000000
+7931 7446   1.000000
+7932 0   0.000000
+7932 1   0.000000
+7932 7377 -60.000000
+7932 7447  60.000000
+7932 7449   1.000000
+7933 0   0.000000
+7933 1   0.000000
+7933 7378 -30.000000
+7933 7448  30.000000
+7933 7450   1.000000
+7934 0   0.000000
+7934 1   0.000000
+7934 7383 -60.000000
+7934 7453  60.000000
+7934 7455   1.000000
+7935 0   0.000000
+7935 1   0.000000
+7935 7384 -30.000000
+7935 7454  30.000000
+7935 7456   1.000000
+7936 0   0.000000
+7936 1   0.000000
+7936 7387 -60.000000
+7936 7457  60.000000
+7936 7459   1.000000
+7937 0   0.000000
+7937 1   0.000000
+7937 7388 -30.000000
+7937 7458  30.000000
+7937 7460   1.000000
+7938 0   0.000000
+7938 1   0.000000
+7938 7391 -60.000000
+7938 7461  60.000000
+7938 7463   1.000000
+7939 0   0.000000
+7939 1   0.000000
+7939 7392 -30.000000
+7939 7462  30.000000
+7939 7464   1.000000
+7940 0   0.000000
+7940 1   0.000000
+7940 7397 -60.000000
+7940 7467  60.000000
+7940 7469   1.000000
+7941 0   0.000000
+7941 1   0.000000
+7941 7398 -30.000000
+7941 7468  30.000000
+7941 7470   1.000000
+7942 0   0.000000
+7942 1   0.000000
+7942 7401 -60.000000
+7942 7471  60.000000
+7942 7473   1.000000
+7943 0   0.000000
+7943 1   0.000000
+7943 7402 -30.000000
+7943 7472  30.000000
+7943 7474   1.000000
+7944 0   0.000000
+7944 1   0.000000
+7944 7405 -60.000000
+7944 7475  60.000000
+7944 7477   1.000000
+7945 0   0.000000
+7945 1   0.000000
+7945 7406 -30.000000
+7945 7476  30.000000
+7945 7478   1.000000
+7946 0   0.000000
+7946 1   0.000000
+7946 7411 -60.000000
+7946 7481  60.000000
+7946 7483   1.000000
+7947 0   0.000000
+7947 1   0.000000
+7947 7412 -30.000000
+7947 7482  30.000000
+7947 7484   1.000000
+7948 0   0.000000
+7948 1   0.000000
+7948 7415 -60.000000
+7948 7485  60.000000
+7948 7487   1.000000
+7949 0   0.000000
+7949 1   0.000000
+7949 7416 -30.000000
+7949 7486  30.000000
+7949 7488   1.000000
+7950 0   0.000000
+7950 1   0.000000
+7950 7419 -60.000000
+7950 7489  60.000000
+7950 7491   1.000000
+7951 0   0.000000
+7951 1   0.000000
+7951 7420 -30.000000
+7951 7490  30.000000
+7951 7492   1.000000
+7952 489  -1.000000
+7952 7437   1.000000
+7953 490  -1.000000
+7953 7438   1.000000
+7954 0   0.000000
+7954 1   0.000000
+7954 7425 -60.000000
+7954 7495  60.000000
+7954 7497   1.000000
+7955 0   0.000000
+7955 1   0.000000
+7955 7426 -30.000000
+7955 7496  30.000000
+7955 7498   1.000000
+7956 0   0.000000
+7956 1   0.000000
+7956 7429 -60.000000
+7956 7499  60.000000
+7956 7501   1.000000
+7957 0   0.000000
+7957 1   0.000000
+7957 7430 -30.000000
+7957 7500  30.000000
+7957 7502   1.000000
+7958 0   0.000000
+7958 1   0.000000
+7958 7433 -60.000000
+7958 7503  60.000000
+7958 7505   1.000000
+7959 0   0.000000
+7959 1   0.000000
+7959 7434 -30.000000
+7959 7504  30.000000
+7959 7506   1.000000
+7960 0   0.000000
+7960 1   0.000000
+7960 7439 -60.000000
+7960 7509  60.000000
+7960 7511   1.000000
+7961 0   0.000000
+7961 1   0.000000
+7961 7440 -30.000000
+7961 7510  30.000000
+7961 7512   1.000000
+7962 0   0.000000
+7962 1   0.000000
+7962 7443 -60.000000
+7962 7513  60.000000
+7962 7515   1.000000
+7963 0   0.000000
+7963 1   0.000000
+7963 7444 -30.000000
+7963 7514  30.000000
+7963 7516   1.000000
+7964 0   0.000000
+7964 1   0.000000
+7964 7447 -60.000000
+7964 7517  60.000000
+7964 7519   1.000000
+7965 0   0.000000
+7965 1   0.000000
+7965 7448 -30.000000
+7965 7518  30.000000
+7965 7520   1.000000
+7966 0   0.000000
+7966 1   0.000000
+7966 7453 -60.000000
+7966 7523  60.000000
+7966 7525   1.000000
+7967 0   0.000000
+7967 1   0.000000
+7967 7454 -30.000000
+7967 7524  30.000000
+7967 7526   1.000000
+7968 0   0.000000
+7968 1   0.000000
+7968 7457 -60.000000
+7968 7527  60.000000
+7968 7529   1.000000
+7969 0   0.000000
+7969 1   0.000000
+7969 7458 -30.000000
+7969 7528  30.000000
+7969 7530   1.000000
+7970 0   0.000000
+7970 1   0.000000
+7970 7461 -60.000000
+7970 7531  60.000000
+7970 7533   1.000000
+7971 0   0.000000
+7971 1   0.000000
+7971 7462 -30.000000
+7971 7532  30.000000
+7971 7534   1.000000
+7972 0   0.000000
+7972 1   0.000000
+7972 7467 -60.000000
+7972 7537  60.000000
+7972 7539   1.000000
+7973 0   0.000000
+7973 1   0.000000
+7973 7468 -30.000000
+7973 7538  30.000000
+7973 7540   1.000000
+7974 0   0.000000
+7974 1   0.000000
+7974 7471 -60.000000
+7974 7541  60.000000
+7974 7543   1.000000
+7975 0   0.000000
+7975 1   0.000000
+7975 7472 -30.000000
+7975 7542  30.000000
+7975 7544   1.000000
+7976 0   0.000000
+7976 1   0.000000
+7976 7475 -60.000000
+7976 7545  60.000000
+7976 7547   1.000000
+7977 0   0.000000
+7977 1   0.000000
+7977 7476 -30.000000
+7977 7546  30.000000
+7977 7548   1.000000
+7978 0   0.000000
+7978 1   0.000000
+7978 7481 -60.000000
+7978 7551  60.000000
+7978 7553   1.000000
+7979 0   0.000000
+7979 1   0.000000
+7979 7482 -30.000000
+7979 7552  30.000000
+7979 7554   1.000000
+7980 0   0.000000
+7980 1   0.000000
+7980 7485 -60.000000
+7980 7555  60.000000
+7980 7557   1.000000
+7981 0   0.000000
+7981 1   0.000000
+7981 7486 -30.000000
+7981 7556  30.000000
+7981 7558   1.000000
+7982 0   0.000000
+7982 1   0.000000
+7982 7489 -60.000000
+7982 7559  60.000000
+7982 7561   1.000000
+7983 0   0.000000
+7983 1   0.000000
+7983 7490 -30.000000
+7983 7560  30.000000
+7983 7562   1.000000
+7984 559  -1.000000
+7984 7507   1.000000
+7985 560  -1.000000
+7985 7508   1.000000
+7986 0   0.000000
+7986 1   0.000000
+7986 7495 -60.000000
+7986 7565  60.000000
+7986 7567   1.000000
+7987 0   0.000000
+7987 1   0.000000
+7987 7496 -30.000000
+7987 7566  30.000000
+7987 7568   1.000000
+7988 0   0.000000
+7988 1   0.000000
+7988 7499 -60.000000
+7988 7569  60.000000
+7988 7571   1.000000
+7989 0   0.000000
+7989 1   0.000000
+7989 7500 -30.000000
+7989 7570  30.000000
+7989 7572   1.000000
+7990 0   0.000000
+7990 1   0.000000
+7990 7503 -60.000000
+7990 7573  60.000000
+7990 7575   1.000000
+7991 0   0.000000
+7991 1   0.000000
+7991 7504 -30.000000
+7991 7574  30.000000
+7991 7576   1.000000
+7992 0   0.000000
+7992 1   0.000000
+7992 7509 -60.000000
+7992 7579  60.000000
+7992 7581   1.000000
+7993 0   0.000000
+7993 1   0.000000
+7993 7510 -30.000000
+7993 7580  30.000000
+7993 7582   1.000000
+7994 0   0.000000
+7994 1   0.000000
+7994 7513 -60.000000
+7994 7583  60.000000
+7994 7585   1.000000
+7995 0   0.000000
+7995 1   0.000000
+7995 7514 -30.000000
+7995 7584  30.000000
+7995 7586   1.000000
+7996 0   0.000000
+7996 1   0.000000
+7996 7517 -60.000000
+7996 7587  60.000000
+7996 7589   1.000000
+7997 0   0.000000
+7997 1   0.000000
+7997 7518 -30.000000
+7997 7588  30.000000
+7997 7590   1.000000
+7998 0   0.000000
+7998 1   0.000000
+7998 7523 -60.000000
+7998 7593  60.000000
+7998 7595   1.000000
+7999 0   0.000000
+7999 1   0.000000
+7999 7524 -30.000000
+7999 7594  30.000000
+7999 7596   1.000000
+8000 0   0.000000
+8000 1   0.000000
+8000 7527 -60.000000
+8000 7597  60.000000
+8000 7599   1.000000
+8001 0   0.000000
+8001 1   0.000000
+8001 7528 -30.000000
+8001 7598  30.000000
+8001 7600   1.000000
+8002 0   0.000000
+8002 1   0.000000
+8002 7531 -60.000000
+8002 7601  60.000000
+8002 7603   1.000000
+8003 0   0.000000
+8003 1   0.000000
+8003 7532 -30.000000
+8003 7602  30.000000
+8003 7604   1.000000
+8004 0   0.000000
+8004 1   0.000000
+8004 7537 -60.000000
+8004 7607  60.000000
+8004 7609   1.000000
+8005 0   0.000000
+8005 1   0.000000
+8005 7538 -30.000000
+8005 7608  30.000000
+8005 7610   1.000000
+8006 0   0.000000
+8006 1   0.000000
+8006 7541 -60.000000
+8006 7611  60.000000
+8006 7613   1.000000
+8007 0   0.000000
+8007 1   0.000000
+8007 7542 -30.000000
+8007 7612  30.000000
+8007 7614   1.000000
+8008 0   0.000000
+8008 1   0.000000
+8008 7545 -60.000000
+8008 7615  60.000000
+8008 7617   1.000000
+8009 0   0.000000
+8009 1   0.000000
+8009 7546 -30.000000
+8009 7616  30.000000
+8009 7618   1.000000
+8010 0   0.000000
+8010 1   0.000000
+8010 7551 -60.000000
+8010 7621  60.000000
+8010 7623   1.000000
+8011 0   0.000000
+8011 1   0.000000
+8011 7552 -30.000000
+8011 7622  30.000000
+8011 7624   1.000000
+8012 0   0.000000
+8012 1   0.000000
+8012 7555 -60.000000
+8012 7625  60.000000
+8012 7627   1.000000
+8013 0   0.000000
+8013 1   0.000000
+8013 7556 -30.000000
+8013 7626  30.000000
+8013 7628   1.000000
+8014 0   0.000000
+8014 1   0.000000
+8014 7559 -60.000000
+8014 7629  60.000000
+8014 7631   1.000000
+8015 0   0.000000
+8015 1   0.000000
+8015 7560 -30.000000
+8015 7630  30.000000
+8015 7632   1.000000
+8016 629  -1.000000
+8016 7577   1.000000
+8017 630  -1.000000
+8017 7578   1.000000
+8018 0   0.000000
+8018 1   0.000000
+8018 7565 -60.000000
+8018 7635  60.000000
+8018 7637   1.000000
+8019 0   0.000000
+8019 1   0.000000
+8019 7566 -30.000000
+8019 7636  30.000000
+8019 7638   1.000000
+8020 0   0.000000
+8020 1   0.000000
+8020 7569 -60.000000
+8020 7639  60.000000
+8020 7641   1.000000
+8021 0   0.000000
+8021 1   0.000000
+8021 7570 -30.000000
+8021 7640  30.000000
+8021 7642   1.000000
+8022 0   0.000000
+8022 1   0.000000
+8022 7573 -60.000000
+8022 7643  60.000000
+8022 7645   1.000000
+8023 0   0.000000
+8023 1   0.000000
+8023 7574 -30.000000
+8023 7644  30.000000
+8023 7646   1.000000
+8024 0   0.000000
+8024 1   0.000000
+8024 7579 -60.000000
+8024 7649  60.000000
+8024 7651   1.000000
+8025 0   0.000000
+8025 1   0.000000
+8025 7580 -30.000000
+8025 7650  30.000000
+8025 7652   1.000000
+8026 0   0.000000
+8026 1   0.000000
+8026 7583 -60.000000
+8026 7653  60.000000
+8026 7655   1.000000
+8027 0   0.000000
+8027 1   0.000000
+8027 7584 -30.000000
+8027 7654  30.000000
+8027 7656   1.000000
+8028 0   0.000000
+8028 1   0.000000
+8028 7587 -60.000000
+8028 7657  60.000000
+8028 7659   1.000000
+8029 0   0.000000
+8029 1   0.000000
+8029 7588 -30.000000
+8029 7658  30.000000
+8029 7660   1.000000
+8030 0   0.000000
+8030 1   0.000000
+8030 7593 -60.000000
+8030 7663  60.000000
+8030 7665   1.000000
+8031 0   0.000000
+8031 1   0.000000
+8031 7594 -30.000000
+8031 7664  30.000000
+8031 7666   1.000000
+8032 0   0.000000
+8032 1   0.000000
+8032 7597 -60.000000
+8032 7667  60.000000
+8032 7669   1.000000
+8033 0   0.000000
+8033 1   0.000000
+8033 7598 -30.000000
+8033 7668  30.000000
+8033 7670   1.000000
+8034 0   0.000000
+8034 1   0.000000
+8034 7601 -60.000000
+8034 7671  60.000000
+8034 7673   1.000000
+8035 0   0.000000
+8035 1   0.000000
+8035 7602 -30.000000
+8035 7672  30.000000
+8035 7674   1.000000
+8036 0   0.000000
+8036 1   0.000000
+8036 7607 -60.000000
+8036 7677  60.000000
+8036 7679   1.000000
+8037 0   0.000000
+8037 1   0.000000
+8037 7608 -30.000000
+8037 7678  30.000000
+8037 7680   1.000000
+8038 0   0.000000
+8038 1   0.000000
+8038 7611 -60.000000
+8038 7681  60.000000
+8038 7683   1.000000
+8039 0   0.000000
+8039 1   0.000000
+8039 7612 -30.000000
+8039 7682  30.000000
+8039 7684   1.000000
+8040 0   0.000000
+8040 1   0.000000
+8040 7615 -60.000000
+8040 7685  60.000000
+8040 7687   1.000000
+8041 0   0.000000
+8041 1   0.000000
+8041 7616 -30.000000
+8041 7686  30.000000
+8041 7688   1.000000
+8042 0   0.000000
+8042 1   0.000000
+8042 7621 -60.000000
+8042 7691  60.000000
+8042 7693   1.000000
+8043 0   0.000000
+8043 1   0.000000
+8043 7622 -30.000000
+8043 7692  30.000000
+8043 7694   1.000000
+8044 0   0.000000
+8044 1   0.000000
+8044 7625 -60.000000
+8044 7695  60.000000
+8044 7697   1.000000
+8045 0   0.000000
+8045 1   0.000000
+8045 7626 -30.000000
+8045 7696  30.000000
+8045 7698   1.000000
+8046 0   0.000000
+8046 1   0.000000
+8046 7629 -60.000000
+8046 7699  60.000000
+8046 7701   1.000000
+8047 0   0.000000
+8047 1   0.000000
+8047 7630 -30.000000
+8047 7700  30.000000
+8047 7702   1.000000
+8048 699  -1.000000
+8048 7647   1.000000
+8049 700  -1.000000
+8049 7648   1.000000
+8050 0   0.000000
+8050 1   0.000000
+8050 7635 -60.000000
+8050 7705  60.000000
+8050 7707   1.000000
+8051 0   0.000000
+8051 1   0.000000
+8051 7636 -30.000000
+8051 7706  30.000000
+8051 7708   1.000000
+8052 0   0.000000
+8052 1   0.000000
+8052 7639 -60.000000
+8052 7709  60.000000
+8052 7711   1.000000
+8053 0   0.000000
+8053 1   0.000000
+8053 7640 -30.000000
+8053 7710  30.000000
+8053 7712   1.000000
+8054 0   0.000000
+8054 1   0.000000
+8054 7643 -60.000000
+8054 7713  60.000000
+8054 7715   1.000000
+8055 0   0.000000
+8055 1   0.000000
+8055 7644 -30.000000
+8055 7714  30.000000
+8055 7716   1.000000
+8056 0   0.000000
+8056 1   0.000000
+8056 7649 -60.000000
+8056 7719  60.000000
+8056 7721   1.000000
+8057 0   0.000000
+8057 1   0.000000
+8057 7650 -30.000000
+8057 7720  30.000000
+8057 7722   1.000000
+8058 0   0.000000
+8058 1   0.000000
+8058 7653 -60.000000
+8058 7723  60.000000
+8058 7725   1.000000
+8059 0   0.000000
+8059 1   0.000000
+8059 7654 -30.000000
+8059 7724  30.000000
+8059 7726   1.000000
+8060 0   0.000000
+8060 1   0.000000
+8060 7657 -60.000000
+8060 7727  60.000000
+8060 7729   1.000000
+8061 0   0.000000
+8061 1   0.000000
+8061 7658 -30.000000
+8061 7728  30.000000
+8061 7730   1.000000
+8062 0   0.000000
+8062 1   0.000000
+8062 7663 -60.000000
+8062 7733  60.000000
+8062 7735   1.000000
+8063 0   0.000000
+8063 1   0.000000
+8063 7664 -30.000000
+8063 7734  30.000000
+8063 7736   1.000000
+8064 0   0.000000
+8064 1   0.000000
+8064 7667 -60.000000
+8064 7737  60.000000
+8064 7739   1.000000
+8065 0   0.000000
+8065 1   0.000000
+8065 7668 -30.000000
+8065 7738  30.000000
+8065 7740   1.000000
+8066 0   0.000000
+8066 1   0.000000
+8066 7671 -60.000000
+8066 7741  60.000000
+8066 7743   1.000000
+8067 0   0.000000
+8067 1   0.000000
+8067 7672 -30.000000
+8067 7742  30.000000
+8067 7744   1.000000
+8068 0   0.000000
+8068 1   0.000000
+8068 7677 -60.000000
+8068 7747  60.000000
+8068 7749   1.000000
+8069 0   0.000000
+8069 1   0.000000
+8069 7678 -30.000000
+8069 7748  30.000000
+8069 7750   1.000000
+8070 0   0.000000
+8070 1   0.000000
+8070 7681 -60.000000
+8070 7751  60.000000
+8070 7753   1.000000
+8071 0   0.000000
+8071 1   0.000000
+8071 7682 -30.000000
+8071 7752  30.000000
+8071 7754   1.000000
+8072 0   0.000000
+8072 1   0.000000
+8072 7685 -60.000000
+8072 7755  60.000000
+8072 7757   1.000000
+8073 0   0.000000
+8073 1   0.000000
+8073 7686 -30.000000
+8073 7756  30.000000
+8073 7758   1.000000
+8074 0   0.000000
+8074 1   0.000000
+8074 7691 -60.000000
+8074 7761  60.000000
+8074 7763   1.000000
+8075 0   0.000000
+8075 1   0.000000
+8075 7692 -30.000000
+8075 7762  30.000000
+8075 7764   1.000000
+8076 0   0.000000
+8076 1   0.000000
+8076 7695 -60.000000
+8076 7765  60.000000
+8076 7767   1.000000
+8077 0   0.000000
+8077 1   0.000000
+8077 7696 -30.000000
+8077 7766  30.000000
+8077 7768   1.000000
+8078 0   0.000000
+8078 1   0.000000
+8078 7699 -60.000000
+8078 7769  60.000000
+8078 7771   1.000000
+8079 0   0.000000
+8079 1   0.000000
+8079 7700 -30.000000
+8079 7770  30.000000
+8079 7772   1.000000
+8080 769  -1.000000
+8080 7717   1.000000
+8081 770  -1.000000
+8081 7718   1.000000
+8082 0   0.000000
+8082 1   0.000000
+8082 7705 -60.000000
+8082 7775  60.000000
+8082 7777   1.000000
+8083 0   0.000000
+8083 1   0.000000
+8083 7706 -30.000000
+8083 7776  30.000000
+8083 7778   1.000000
+8084 0   0.000000
+8084 1   0.000000
+8084 7709 -60.000000
+8084 7779  60.000000
+8084 7781   1.000000
+8085 0   0.000000
+8085 1   0.000000
+8085 7710 -30.000000
+8085 7780  30.000000
+8085 7782   1.000000
+8086 0   0.000000
+8086 1   0.000000
+8086 7713 -60.000000
+8086 7783  60.000000
+8086 7785   1.000000
+8087 0   0.000000
+8087 1   0.000000
+8087 7714 -30.000000
+8087 7784  30.000000
+8087 7786   1.000000
+8088 0   0.000000
+8088 1   0.000000
+8088 7719 -60.000000
+8088 7789  60.000000
+8088 7791   1.000000
+8089 0   0.000000
+8089 1   0.000000
+8089 7720 -30.000000
+8089 7790  30.000000
+8089 7792   1.000000
+8090 0   0.000000
+8090 1   0.000000
+8090 7723 -60.000000
+8090 7793  60.000000
+8090 7795   1.000000
+8091 0   0.000000
+8091 1   0.000000
+8091 7724 -30.000000
+8091 7794  30.000000
+8091 7796   1.000000
+8092 0   0.000000
+8092 1   0.000000
+8092 7727 -60.000000
+8092 7797  60.000000
+8092 7799   1.000000
+8093 0   0.000000
+8093 1   0.000000
+8093 7728 -30.000000
+8093 7798  30.000000
+8093 7800   1.000000
+8094 0   0.000000
+8094 1   0.000000
+8094 7733 -60.000000
+8094 7803  60.000000
+8094 7805   1.000000
+8095 0   0.000000
+8095 1   0.000000
+8095 7734 -30.000000
+8095 7804  30.000000
+8095 7806   1.000000
+8096 0   0.000000
+8096 1   0.000000
+8096 7737 -60.000000
+8096 7807  60.000000
+8096 7809   1.000000
+8097 0   0.000000
+8097 1   0.000000
+8097 7738 -30.000000
+8097 7808  30.000000
+8097 7810   1.000000
+8098 0   0.000000
+8098 1   0.000000
+8098 7741 -60.000000
+8098 7811  60.000000
+8098 7813   1.000000
+8099 0   0.000000
+8099 1   0.000000
+8099 7742 -30.000000
+8099 7812  30.000000
+8099 7814   1.000000
+8100 0   0.000000
+8100 1   0.000000
+8100 7747 -60.000000
+8100 7817  60.000000
+8100 7819   1.000000
+8101 0   0.000000
+8101 1   0.000000
+8101 7748 -30.000000
+8101 7818  30.000000
+8101 7820   1.000000
+8102 0   0.000000
+8102 1   0.000000
+8102 7751 -60.000000
+8102 7821  60.000000
+8102 7823   1.000000
+8103 0   0.000000
+8103 1   0.000000
+8103 7752 -30.000000
+8103 7822  30.000000
+8103 7824   1.000000
+8104 0   0.000000
+8104 1   0.000000
+8104 7755 -60.000000
+8104 7825  60.000000
+8104 7827   1.000000
+8105 0   0.000000
+8105 1   0.000000
+8105 7756 -30.000000
+8105 7826  30.000000
+8105 7828   1.000000
+8106 0   0.000000
+8106 1   0.000000
+8106 7761 -60.000000
+8106 7831  60.000000
+8106 7833   1.000000
+8107 0   0.000000
+8107 1   0.000000
+8107 7762 -30.000000
+8107 7832  30.000000
+8107 7834   1.000000
+8108 0   0.000000
+8108 1   0.000000
+8108 7765 -60.000000
+8108 7835  60.000000
+8108 7837   1.000000
+8109 0   0.000000
+8109 1   0.000000
+8109 7766 -30.000000
+8109 7836  30.000000
+8109 7838   1.000000
+8110 0   0.000000
+8110 1   0.000000
+8110 7769 -60.000000
+8110 7839  60.000000
+8110 7841   1.000000
+8111 0   0.000000
+8111 1   0.000000
+8111 7770 -30.000000
+8111 7840  30.000000
+8111 7842   1.000000
+8112 839  -1.000000
+8112 7787   1.000000
+8113 840  -1.000000
+8113 7788   1.000000
+8114 0   0.000000
+8114 1   0.000000
+8114 7775 -60.000000
+8114 7845  60.000000
+8114 7847   1.000000
+8115 0   0.000000
+8115 1   0.000000
+8115 7776 -30.000000
+8115 7846  30.000000
+8115 7848   1.000000
+8116 0   0.000000
+8116 1   0.000000
+8116 7779 -60.000000
+8116 7849  60.000000
+8116 7851   1.000000
+8117 0   0.000000
+8117 1   0.000000
+8117 7780 -30.000000
+8117 7850  30.000000
+8117 7852   1.000000
+8118 0   0.000000
+8118 1   0.000000
+8118 7783 -60.000000
+8118 7853  60.000000
+8118 7855   1.000000
+8119 0   0.000000
+8119 1   0.000000
+8119 7784 -30.000000
+8119 7854  30.000000
+8119 7856   1.000000
+8120 0   0.000000
+8120 1   0.000000
+8120 7789 -60.000000
+8120 7859  60.000000
+8120 7861   1.000000
+8121 0   0.000000
+8121 1   0.000000
+8121 7790 -30.000000
+8121 7860  30.000000
+8121 7862   1.000000
+8122 0   0.000000
+8122 1   0.000000
+8122 7793 -60.000000
+8122 7863  60.000000
+8122 7865   1.000000
+8123 0   0.000000
+8123 1   0.000000
+8123 7794 -30.000000
+8123 7864  30.000000
+8123 7866   1.000000
+8124 0   0.000000
+8124 1   0.000000
+8124 7797 -60.000000
+8124 7867  60.000000
+8124 7869   1.000000
+8125 0   0.000000
+8125 1   0.000000
+8125 7798 -30.000000
+8125 7868  30.000000
+8125 7870   1.000000
+8126 0   0.000000
+8126 1   0.000000
+8126 7803 -60.000000
+8126 7873  60.000000
+8126 7875   1.000000
+8127 0   0.000000
+8127 1   0.000000
+8127 7804 -30.000000
+8127 7874  30.000000
+8127 7876   1.000000
+8128 0   0.000000
+8128 1   0.000000
+8128 7807 -60.000000
+8128 7877  60.000000
+8128 7879   1.000000
+8129 0   0.000000
+8129 1   0.000000
+8129 7808 -30.000000
+8129 7878  30.000000
+8129 7880   1.000000
+8130 0   0.000000
+8130 1   0.000000
+8130 7811 -60.000000
+8130 7881  60.000000
+8130 7883   1.000000
+8131 0   0.000000
+8131 1   0.000000
+8131 7812 -30.000000
+8131 7882  30.000000
+8131 7884   1.000000
+8132 0   0.000000
+8132 1   0.000000
+8132 7817 -60.000000
+8132 7887  60.000000
+8132 7889   1.000000
+8133 0   0.000000
+8133 1   0.000000
+8133 7818 -30.000000
+8133 7888  30.000000
+8133 7890   1.000000
+8134 0   0.000000
+8134 1   0.000000
+8134 7821 -60.000000
+8134 7891  60.000000
+8134 7893   1.000000
+8135 0   0.000000
+8135 1   0.000000
+8135 7822 -30.000000
+8135 7892  30.000000
+8135 7894   1.000000
+8136 0   0.000000
+8136 1   0.000000
+8136 7825 -60.000000
+8136 7895  60.000000
+8136 7897   1.000000
+8137 0   0.000000
+8137 1   0.000000
+8137 7826 -30.000000
+8137 7896  30.000000
+8137 7898   1.000000
+8138 0   0.000000
+8138 1   0.000000
+8138 7831 -60.000000
+8138 7901  60.000000
+8138 7903   1.000000
+8139 0   0.000000
+8139 1   0.000000
+8139 7832 -30.000000
+8139 7902  30.000000
+8139 7904   1.000000
+8140 0   0.000000
+8140 1   0.000000
+8140 7835 -60.000000
+8140 7905  60.000000
+8140 7907   1.000000
+8141 0   0.000000
+8141 1   0.000000
+8141 7836 -30.000000
+8141 7906  30.000000
+8141 7908   1.000000
+8142 0   0.000000
+8142 1   0.000000
+8142 7839 -60.000000
+8142 7909  60.000000
+8142 7911   1.000000
+8143 0   0.000000
+8143 1   0.000000
+8143 7840 -30.000000
+8143 7910  30.000000
+8143 7912   1.000000
+8144 909  -1.000000
+8144 7857   1.000000
+8145 910  -1.000000
+8145 7858   1.000000
+8146 0   0.000000
+8146 1   0.000000
+8146 7845 -60.000000
+8146 7915  60.000000
+8146 7917   1.000000
+8147 0   0.000000
+8147 1   0.000000
+8147 7846 -30.000000
+8147 7916  30.000000
+8147 7918   1.000000
+8148 0   0.000000
+8148 1   0.000000
+8148 7849 -60.000000
+8148 7919  60.000000
+8148 7921   1.000000
+8149 0   0.000000
+8149 1   0.000000
+8149 7850 -30.000000
+8149 7920  30.000000
+8149 7922   1.000000
+8150 0   0.000000
+8150 1   0.000000
+8150 7853 -60.000000
+8150 7923  60.000000
+8150 7925   1.000000
+8151 0   0.000000
+8151 1   0.000000
+8151 7854 -30.000000
+8151 7924  30.000000
+8151 7926   1.000000
+8152 0   0.000000
+8152 1   0.000000
+8152 7859 -60.000000
+8152 7929  60.000000
+8152 7931   1.000000
+8153 0   0.000000
+8153 1   0.000000
+8153 7860 -30.000000
+8153 7930  30.000000
+8153 7932   1.000000
+8154 0   0.000000
+8154 1   0.000000
+8154 7863 -60.000000
+8154 7933  60.000000
+8154 7935   1.000000
+8155 0   0.000000
+8155 1   0.000000
+8155 7864 -30.000000
+8155 7934  30.000000
+8155 7936   1.000000
+8156 0   0.000000
+8156 1   0.000000
+8156 7867 -60.000000
+8156 7937  60.000000
+8156 7939   1.000000
+8157 0   0.000000
+8157 1   0.000000
+8157 7868 -30.000000
+8157 7938  30.000000
+8157 7940   1.000000
+8158 0   0.000000
+8158 1   0.000000
+8158 7873 -60.000000
+8158 7943  60.000000
+8158 7945   1.000000
+8159 0   0.000000
+8159 1   0.000000
+8159 7874 -30.000000
+8159 7944  30.000000
+8159 7946   1.000000
+8160 0   0.000000
+8160 1   0.000000
+8160 7877 -60.000000
+8160 7947  60.000000
+8160 7949   1.000000
+8161 0   0.000000
+8161 1   0.000000
+8161 7878 -30.000000
+8161 7948  30.000000
+8161 7950   1.000000
+8162 0   0.000000
+8162 1   0.000000
+8162 7881 -60.000000
+8162 7951  60.000000
+8162 7953   1.000000
+8163 0   0.000000
+8163 1   0.000000
+8163 7882 -30.000000
+8163 7952  30.000000
+8163 7954   1.000000
+8164 0   0.000000
+8164 1   0.000000
+8164 7887 -60.000000
+8164 7957  60.000000
+8164 7959   1.000000
+8165 0   0.000000
+8165 1   0.000000
+8165 7888 -30.000000
+8165 7958  30.000000
+8165 7960   1.000000
+8166 0   0.000000
+8166 1   0.000000
+8166 7891 -60.000000
+8166 7961  60.000000
+8166 7963   1.000000
+8167 0   0.000000
+8167 1   0.000000
+8167 7892 -30.000000
+8167 7962  30.000000
+8167 7964   1.000000
+8168 0   0.000000
+8168 1   0.000000
+8168 7895 -60.000000
+8168 7965  60.000000
+8168 7967   1.000000
+8169 0   0.000000
+8169 1   0.000000
+8169 7896 -30.000000
+8169 7966  30.000000
+8169 7968   1.000000
+8170 0   0.000000
+8170 1   0.000000
+8170 7901 -60.000000
+8170 7971  60.000000
+8170 7973   1.000000
+8171 0   0.000000
+8171 1   0.000000
+8171 7902 -30.000000
+8171 7972  30.000000
+8171 7974   1.000000
+8172 0   0.000000
+8172 1   0.000000
+8172 7905 -60.000000
+8172 7975  60.000000
+8172 7977   1.000000
+8173 0   0.000000
+8173 1   0.000000
+8173 7906 -30.000000
+8173 7976  30.000000
+8173 7978   1.000000
+8174 0   0.000000
+8174 1   0.000000
+8174 7909 -60.000000
+8174 7979  60.000000
+8174 7981   1.000000
+8175 0   0.000000
+8175 1   0.000000
+8175 7910 -30.000000
+8175 7980  30.000000
+8175 7982   1.000000
+8176 979  -1.000000
+8176 7927   1.000000
+8177 980  -1.000000
+8177 7928   1.000000
+8178 0   0.000000
+8178 1   0.000000
+8178 7915 -60.000000
+8178 7985  60.000000
+8178 7987   1.000000
+8179 0   0.000000
+8179 1   0.000000
+8179 7916 -30.000000
+8179 7986  30.000000
+8179 7988   1.000000
+8180 0   0.000000
+8180 1   0.000000
+8180 7919 -60.000000
+8180 7989  60.000000
+8180 7991   1.000000
+8181 0   0.000000
+8181 1   0.000000
+8181 7920 -30.000000
+8181 7990  30.000000
+8181 7992   1.000000
+8182 0   0.000000
+8182 1   0.000000
+8182 7923 -60.000000
+8182 7993  60.000000
+8182 7995   1.000000
+8183 0   0.000000
+8183 1   0.000000
+8183 7924 -30.000000
+8183 7994  30.000000
+8183 7996   1.000000
+8184 0   0.000000
+8184 1   0.000000
+8184 7929 -60.000000
+8184 7999  60.000000
+8184 8001   1.000000
+8185 0   0.000000
+8185 1   0.000000
+8185 7930 -30.000000
+8185 8000  30.000000
+8185 8002   1.000000
+8186 0   0.000000
+8186 1   0.000000
+8186 7933 -60.000000
+8186 8003  60.000000
+8186 8005   1.000000
+8187 0   0.000000
+8187 1   0.000000
+8187 7934 -30.000000
+8187 8004  30.000000
+8187 8006   1.000000
+8188 0   0.000000
+8188 1   0.000000
+8188 7937 -60.000000
+8188 8007  60.000000
+8188 8009   1.000000
+8189 0   0.000000
+8189 1   0.000000
+8189 7938 -30.000000
+8189 8008  30.000000
+8189 8010   1.000000
+8190 0   0.000000
+8190 1   0.000000
+8190 7943 -60.000000
+8190 8013  60.000000
+8190 8015   1.000000
+8191 0   0.000000
+8191 1   0.000000
+8191 7944 -30.000000
+8191 8014  30.000000
+8191 8016   1.000000
+8192 0   0.000000
+8192 1   0.000000
+8192 7947 -60.000000
+8192 8017  60.000000
+8192 8019   1.000000
+8193 0   0.000000
+8193 1   0.000000
+8193 7948 -30.000000
+8193 8018  30.000000
+8193 8020   1.000000
+8194 0   0.000000
+8194 1   0.000000
+8194 7951 -60.000000
+8194 8021  60.000000
+8194 8023   1.000000
+8195 0   0.000000
+8195 1   0.000000
+8195 7952 -30.000000
+8195 8022  30.000000
+8195 8024   1.000000
+8196 0   0.000000
+8196 1   0.000000
+8196 7957 -60.000000
+8196 8027  60.000000
+8196 8029   1.000000
+8197 0   0.000000
+8197 1   0.000000
+8197 7958 -30.000000
+8197 8028  30.000000
+8197 8030   1.000000
+8198 0   0.000000
+8198 1   0.000000
+8198 7961 -60.000000
+8198 8031  60.000000
+8198 8033   1.000000
+8199 0   0.000000
+8199 1   0.000000
+8199 7962 -30.000000
+8199 8032  30.000000
+8199 8034   1.000000
+8200 0   0.000000
+8200 1   0.000000
+8200 7965 -60.000000
+8200 8035  60.000000
+8200 8037   1.000000
+8201 0   0.000000
+8201 1   0.000000
+8201 7966 -30.000000
+8201 8036  30.000000
+8201 8038   1.000000
+8202 0   0.000000
+8202 1   0.000000
+8202 7971 -60.000000
+8202 8041  60.000000
+8202 8043   1.000000
+8203 0   0.000000
+8203 1   0.000000
+8203 7972 -30.000000
+8203 8042  30.000000
+8203 8044   1.000000
+8204 0   0.000000
+8204 1   0.000000
+8204 7975 -60.000000
+8204 8045  60.000000
+8204 8047   1.000000
+8205 0   0.000000
+8205 1   0.000000
+8205 7976 -30.000000
+8205 8046  30.000000
+8205 8048   1.000000
+8206 0   0.000000
+8206 1   0.000000
+8206 7979 -60.000000
+8206 8049  60.000000
+8206 8051   1.000000
+8207 0   0.000000
+8207 1   0.000000
+8207 7980 -30.000000
+8207 8050  30.000000
+8207 8052   1.000000
+8208 1049  -1.000000
+8208 7997   1.000000
+8209 1050  -1.000000
+8209 7998   1.000000
+8210 0   0.000000
+8210 1   0.000000
+8210 7985 -60.000000
+8210 8055  60.000000
+8210 8057   1.000000
+8211 0   0.000000
+8211 1   0.000000
+8211 7986 -30.000000
+8211 8056  30.000000
+8211 8058   1.000000
+8212 0   0.000000
+8212 1   0.000000
+8212 7989 -60.000000
+8212 8059  60.000000
+8212 8061   1.000000
+8213 0   0.000000
+8213 1   0.000000
+8213 7990 -30.000000
+8213 8060  30.000000
+8213 8062   1.000000
+8214 0   0.000000
+8214 1   0.000000
+8214 7993 -60.000000
+8214 8063  60.000000
+8214 8065   1.000000
+8215 0   0.000000
+8215 1   0.000000
+8215 7994 -30.000000
+8215 8064  30.000000
+8215 8066   1.000000
+8216 0   0.000000
+8216 1   0.000000
+8216 7999 -60.000000
+8216 8069  60.000000
+8216 8071   1.000000
+8217 0   0.000000
+8217 1   0.000000
+8217 8000 -30.000000
+8217 8070  30.000000
+8217 8072   1.000000
+8218 0   0.000000
+8218 1   0.000000
+8218 8003 -60.000000
+8218 8073  60.000000
+8218 8075   1.000000
+8219 0   0.000000
+8219 1   0.000000
+8219 8004 -30.000000
+8219 8074  30.000000
+8219 8076   1.000000
+8220 0   0.000000
+8220 1   0.000000
+8220 8007 -60.000000
+8220 8077  60.000000
+8220 8079   1.000000
+8221 0   0.000000
+8221 1   0.000000
+8221 8008 -30.000000
+8221 8078  30.000000
+8221 8080   1.000000
+8222 0   0.000000
+8222 1   0.000000
+8222 8013 -60.000000
+8222 8083  60.000000
+8222 8085   1.000000
+8223 0   0.000000
+8223 1   0.000000
+8223 8014 -30.000000
+8223 8084  30.000000
+8223 8086   1.000000
+8224 0   0.000000
+8224 1   0.000000
+8224 8017 -60.000000
+8224 8087  60.000000
+8224 8089   1.000000
+8225 0   0.000000
+8225 1   0.000000
+8225 8018 -30.000000
+8225 8088  30.000000
+8225 8090   1.000000
+8226 0   0.000000
+8226 1   0.000000
+8226 8021 -60.000000
+8226 8091  60.000000
+8226 8093   1.000000
+8227 0   0.000000
+8227 1   0.000000
+8227 8022 -30.000000
+8227 8092  30.000000
+8227 8094   1.000000
+8228 0   0.000000
+8228 1   0.000000
+8228 8027 -60.000000
+8228 8097  60.000000
+8228 8099   1.000000
+8229 0   0.000000
+8229 1   0.000000
+8229 8028 -30.000000
+8229 8098  30.000000
+8229 8100   1.000000
+8230 0   0.000000
+8230 1   0.000000
+8230 8031 -60.000000
+8230 8101  60.000000
+8230 8103   1.000000
+8231 0   0.000000
+8231 1   0.000000
+8231 8032 -30.000000
+8231 8102  30.000000
+8231 8104   1.000000
+8232 0   0.000000
+8232 1   0.000000
+8232 8035 -60.000000
+8232 8105  60.000000
+8232 8107   1.000000
+8233 0   0.000000
+8233 1   0.000000
+8233 8036 -30.000000
+8233 8106  30.000000
+8233 8108   1.000000
+8234 0   0.000000
+8234 1   0.000000
+8234 8041 -60.000000
+8234 8111  60.000000
+8234 8113   1.000000
+8235 0   0.000000
+8235 1   0.000000
+8235 8042 -30.000000
+8235 8112  30.000000
+8235 8114   1.000000
+8236 0   0.000000
+8236 1   0.000000
+8236 8045 -60.000000
+8236 8115  60.000000
+8236 8117   1.000000
+8237 0   0.000000
+8237 1   0.000000
+8237 8046 -30.000000
+8237 8116  30.000000
+8237 8118   1.000000
+8238 0   0.000000
+8238 1   0.000000
+8238 8049 -60.000000
+8238 8119  60.000000
+8238 8121   1.000000
+8239 0   0.000000
+8239 1   0.000000
+8239 8050 -30.000000
+8239 8120  30.000000
+8239 8122   1.000000
+8240 1119  -1.000000
+8240 8067   1.000000
+8241 1120  -1.000000
+8241 8068   1.000000
+8242 0   0.000000
+8242 1   0.000000
+8242 8055 -60.000000
+8242 8125  60.000000
+8242 8127   1.000000
+8243 0   0.000000
+8243 1   0.000000
+8243 8056 -30.000000
+8243 8126  30.000000
+8243 8128   1.000000
+8244 0   0.000000
+8244 1   0.000000
+8244 8059 -60.000000
+8244 8129  60.000000
+8244 8131   1.000000
+8245 0   0.000000
+8245 1   0.000000
+8245 8060 -30.000000
+8245 8130  30.000000
+8245 8132   1.000000
+8246 0   0.000000
+8246 1   0.000000
+8246 8063 -60.000000
+8246 8133  60.000000
+8246 8135   1.000000
+8247 0   0.000000
+8247 1   0.000000
+8247 8064 -30.000000
+8247 8134  30.000000
+8247 8136   1.000000
+8248 0   0.000000
+8248 1   0.000000
+8248 8069 -60.000000
+8248 8139  60.000000
+8248 8141   1.000000
+8249 0   0.000000
+8249 1   0.000000
+8249 8070 -30.000000
+8249 8140  30.000000
+8249 8142   1.000000
+8250 0   0.000000
+8250 1   0.000000
+8250 8073 -60.000000
+8250 8143  60.000000
+8250 8145   1.000000
+8251 0   0.000000
+8251 1   0.000000
+8251 8074 -30.000000
+8251 8144  30.000000
+8251 8146   1.000000
+8252 0   0.000000
+8252 1   0.000000
+8252 8077 -60.000000
+8252 8147  60.000000
+8252 8149   1.000000
+8253 0   0.000000
+8253 1   0.000000
+8253 8078 -30.000000
+8253 8148  30.000000
+8253 8150   1.000000
+8254 0   0.000000
+8254 1   0.000000
+8254 8083 -60.000000
+8254 8153  60.000000
+8254 8155   1.000000
+8255 0   0.000000
+8255 1   0.000000
+8255 8084 -30.000000
+8255 8154  30.000000
+8255 8156   1.000000
+8256 0   0.000000
+8256 1   0.000000
+8256 8087 -60.000000
+8256 8157  60.000000
+8256 8159   1.000000
+8257 0   0.000000
+8257 1   0.000000
+8257 8088 -30.000000
+8257 8158  30.000000
+8257 8160   1.000000
+8258 0   0.000000
+8258 1   0.000000
+8258 8091 -60.000000
+8258 8161  60.000000
+8258 8163   1.000000
+8259 0   0.000000
+8259 1   0.000000
+8259 8092 -30.000000
+8259 8162  30.000000
+8259 8164   1.000000
+8260 0   0.000000
+8260 1   0.000000
+8260 8097 -60.000000
+8260 8167  60.000000
+8260 8169   1.000000
+8261 0   0.000000
+8261 1   0.000000
+8261 8098 -30.000000
+8261 8168  30.000000
+8261 8170   1.000000
+8262 0   0.000000
+8262 1   0.000000
+8262 8101 -60.000000
+8262 8171  60.000000
+8262 8173   1.000000
+8263 0   0.000000
+8263 1   0.000000
+8263 8102 -30.000000
+8263 8172  30.000000
+8263 8174   1.000000
+8264 0   0.000000
+8264 1   0.000000
+8264 8105 -60.000000
+8264 8175  60.000000
+8264 8177   1.000000
+8265 0   0.000000
+8265 1   0.000000
+8265 8106 -30.000000
+8265 8176  30.000000
+8265 8178   1.000000
+8266 0   0.000000
+8266 1   0.000000
+8266 8111 -60.000000
+8266 8181  60.000000
+8266 8183   1.000000
+8267 0   0.000000
+8267 1   0.000000
+8267 8112 -30.000000
+8267 8182  30.000000
+8267 8184   1.000000
+8268 0   0.000000
+8268 1   0.000000
+8268 8115 -60.000000
+8268 8185  60.000000
+8268 8187   1.000000
+8269 0   0.000000
+8269 1   0.000000
+8269 8116 -30.000000
+8269 8186  30.000000
+8269 8188   1.000000
+8270 0   0.000000
+8270 1   0.000000
+8270 8119 -60.000000
+8270 8189  60.000000
+8270 8191   1.000000
+8271 0   0.000000
+8271 1   0.000000
+8271 8120 -30.000000
+8271 8190  30.000000
+8271 8192   1.000000
+8272 1189  -1.000000
+8272 8137   1.000000
+8273 1190  -1.000000
+8273 8138   1.000000
+8274 0   0.000000
+8274 1   0.000000
+8274 8125 -60.000000
+8274 8195  60.000000
+8274 8197   1.000000
+8275 0   0.000000
+8275 1   0.000000
+8275 8126 -30.000000
+8275 8196  30.000000
+8275 8198   1.000000
+8276 0   0.000000
+8276 1   0.000000
+8276 8129 -60.000000
+8276 8199  60.000000
+8276 8201   1.000000
+8277 0   0.000000
+8277 1   0.000000
+8277 8130 -30.000000
+8277 8200  30.000000
+8277 8202   1.000000
+8278 0   0.000000
+8278 1   0.000000
+8278 8133 -60.000000
+8278 8203  60.000000
+8278 8205   1.000000
+8279 0   0.000000
+8279 1   0.000000
+8279 8134 -30.000000
+8279 8204  30.000000
+8279 8206   1.000000
+8280 0   0.000000
+8280 1   0.000000
+8280 8139 -60.000000
+8280 8209  60.000000
+8280 8211   1.000000
+8281 0   0.000000
+8281 1   0.000000
+8281 8140 -30.000000
+8281 8210  30.000000
+8281 8212   1.000000
+8282 0   0.000000
+8282 1   0.000000
+8282 8143 -60.000000
+8282 8213  60.000000
+8282 8215   1.000000
+8283 0   0.000000
+8283 1   0.000000
+8283 8144 -30.000000
+8283 8214  30.000000
+8283 8216   1.000000
+8284 0   0.000000
+8284 1   0.000000
+8284 8147 -60.000000
+8284 8217  60.000000
+8284 8219   1.000000
+8285 0   0.000000
+8285 1   0.000000
+8285 8148 -30.000000
+8285 8218  30.000000
+8285 8220   1.000000
+8286 0   0.000000
+8286 1   0.000000
+8286 8153 -60.000000
+8286 8223  60.000000
+8286 8225   1.000000
+8287 0   0.000000
+8287 1   0.000000
+8287 8154 -30.000000
+8287 8224  30.000000
+8287 8226   1.000000
+8288 0   0.000000
+8288 1   0.000000
+8288 8157 -60.000000
+8288 8227  60.000000
+8288 8229   1.000000
+8289 0   0.000000
+8289 1   0.000000
+8289 8158 -30.000000
+8289 8228  30.000000
+8289 8230   1.000000
+8290 0   0.000000
+8290 1   0.000000
+8290 8161 -60.000000
+8290 8231  60.000000
+8290 8233   1.000000
+8291 0   0.000000
+8291 1   0.000000
+8291 8162 -30.000000
+8291 8232  30.000000
+8291 8234   1.000000
+8292 0   0.000000
+8292 1   0.000000
+8292 8167 -60.000000
+8292 8237  60.000000
+8292 8239   1.000000
+8293 0   0.000000
+8293 1   0.000000
+8293 8168 -30.000000
+8293 8238  30.000000
+8293 8240   1.000000
+8294 0   0.000000
+8294 1   0.000000
+8294 8171 -60.000000
+8294 8241  60.000000
+8294 8243   1.000000
+8295 0   0.000000
+8295 1   0.000000
+8295 8172 -30.000000
+8295 8242  30.000000
+8295 8244   1.000000
+8296 0   0.000000
+8296 1   0.000000
+8296 8175 -60.000000
+8296 8245  60.000000
+8296 8247   1.000000
+8297 0   0.000000
+8297 1   0.000000
+8297 8176 -30.000000
+8297 8246  30.000000
+8297 8248   1.000000
+8298 0   0.000000
+8298 1   0.000000
+8298 8181 -60.000000
+8298 8251  60.000000
+8298 8253   1.000000
+8299 0   0.000000
+8299 1   0.000000
+8299 8182 -30.000000
+8299 8252  30.000000
+8299 8254   1.000000
+8300 0   0.000000
+8300 1   0.000000
+8300 8185 -60.000000
+8300 8255  60.000000
+8300 8257   1.000000
+8301 0   0.000000
+8301 1   0.000000
+8301 8186 -30.000000
+8301 8256  30.000000
+8301 8258   1.000000
+8302 0   0.000000
+8302 1   0.000000
+8302 8189 -60.000000
+8302 8259  60.000000
+8302 8261   1.000000
+8303 0   0.000000
+8303 1   0.000000
+8303 8190 -30.000000
+8303 8260  30.000000
+8303 8262   1.000000
+8304 1259  -1.000000
+8304 8207   1.000000
+8305 1260  -1.000000
+8305 8208   1.000000
+8306 0   0.000000
+8306 1   0.000000
+8306 8195 -60.000000
+8306 8265  60.000000
+8306 8267   1.000000
+8307 0   0.000000
+8307 1   0.000000
+8307 8196 -30.000000
+8307 8266  30.000000
+8307 8268   1.000000
+8308 0   0.000000
+8308 1   0.000000
+8308 8199 -60.000000
+8308 8269  60.000000
+8308 8271   1.000000
+8309 0   0.000000
+8309 1   0.000000
+8309 8200 -30.000000
+8309 8270  30.000000
+8309 8272   1.000000
+8310 0   0.000000
+8310 1   0.000000
+8310 8203 -60.000000
+8310 8273  60.000000
+8310 8275   1.000000
+8311 0   0.000000
+8311 1   0.000000
+8311 8204 -30.000000
+8311 8274  30.000000
+8311 8276   1.000000
+8312 0   0.000000
+8312 1   0.000000
+8312 8209 -60.000000
+8312 8279  60.000000
+8312 8281   1.000000
+8313 0   0.000000
+8313 1   0.000000
+8313 8210 -30.000000
+8313 8280  30.000000
+8313 8282   1.000000
+8314 0   0.000000
+8314 1   0.000000
+8314 8213 -60.000000
+8314 8283  60.000000
+8314 8285   1.000000
+8315 0   0.000000
+8315 1   0.000000
+8315 8214 -30.000000
+8315 8284  30.000000
+8315 8286   1.000000
+8316 0   0.000000
+8316 1   0.000000
+8316 8217 -60.000000
+8316 8287  60.000000
+8316 8289   1.000000
+8317 0   0.000000
+8317 1   0.000000
+8317 8218 -30.000000
+8317 8288  30.000000
+8317 8290   1.000000
+8318 0   0.000000
+8318 1   0.000000
+8318 8223 -60.000000
+8318 8293  60.000000
+8318 8295   1.000000
+8319 0   0.000000
+8319 1   0.000000
+8319 8224 -30.000000
+8319 8294  30.000000
+8319 8296   1.000000
+8320 0   0.000000
+8320 1   0.000000
+8320 8227 -60.000000
+8320 8297  60.000000
+8320 8299   1.000000
+8321 0   0.000000
+8321 1   0.000000
+8321 8228 -30.000000
+8321 8298  30.000000
+8321 8300   1.000000
+8322 0   0.000000
+8322 1   0.000000
+8322 8231 -60.000000
+8322 8301  60.000000
+8322 8303   1.000000
+8323 0   0.000000
+8323 1   0.000000
+8323 8232 -30.000000
+8323 8302  30.000000
+8323 8304   1.000000
+8324 0   0.000000
+8324 1   0.000000
+8324 8237 -60.000000
+8324 8307  60.000000
+8324 8309   1.000000
+8325 0   0.000000
+8325 1   0.000000
+8325 8238 -30.000000
+8325 8308  30.000000
+8325 8310   1.000000
+8326 0   0.000000
+8326 1   0.000000
+8326 8241 -60.000000
+8326 8311  60.000000
+8326 8313   1.000000
+8327 0   0.000000
+8327 1   0.000000
+8327 8242 -30.000000
+8327 8312  30.000000
+8327 8314   1.000000
+8328 0   0.000000
+8328 1   0.000000
+8328 8245 -60.000000
+8328 8315  60.000000
+8328 8317   1.000000
+8329 0   0.000000
+8329 1   0.000000
+8329 8246 -30.000000
+8329 8316  30.000000
+8329 8318   1.000000
+8330 0   0.000000
+8330 1   0.000000
+8330 8251 -60.000000
+8330 8321  60.000000
+8330 8323   1.000000
+8331 0   0.000000
+8331 1   0.000000
+8331 8252 -30.000000
+8331 8322  30.000000
+8331 8324   1.000000
+8332 0   0.000000
+8332 1   0.000000
+8332 8255 -60.000000
+8332 8325  60.000000
+8332 8327   1.000000
+8333 0   0.000000
+8333 1   0.000000
+8333 8256 -30.000000
+8333 8326  30.000000
+8333 8328   1.000000
+8334 0   0.000000
+8334 1   0.000000
+8334 8259 -60.000000
+8334 8329  60.000000
+8334 8331   1.000000
+8335 0   0.000000
+8335 1   0.000000
+8335 8260 -30.000000
+8335 8330  30.000000
+8335 8332   1.000000
+8336 1329  -1.000000
+8336 8277   1.000000
+8337 1330  -1.000000
+8337 8278   1.000000
+8338 0   0.000000
+8338 1   0.000000
+8338 8265 -60.000000
+8338 8335  60.000000
+8338 8337   1.000000
+8339 0   0.000000
+8339 1   0.000000
+8339 8266 -30.000000
+8339 8336  30.000000
+8339 8338   1.000000
+8340 0   0.000000
+8340 1   0.000000
+8340 8269 -60.000000
+8340 8339  60.000000
+8340 8341   1.000000
+8341 0   0.000000
+8341 1   0.000000
+8341 8270 -30.000000
+8341 8340  30.000000
+8341 8342   1.000000
+8342 0   0.000000
+8342 1   0.000000
+8342 8273 -60.000000
+8342 8343  60.000000
+8342 8345   1.000000
+8343 0   0.000000
+8343 1   0.000000
+8343 8274 -30.000000
+8343 8344  30.000000
+8343 8346   1.000000
+8344 0   0.000000
+8344 1   0.000000
+8344 8279 -60.000000
+8344 8349  60.000000
+8344 8351   1.000000
+8345 0   0.000000
+8345 1   0.000000
+8345 8280 -30.000000
+8345 8350  30.000000
+8345 8352   1.000000
+8346 0   0.000000
+8346 1   0.000000
+8346 8283 -60.000000
+8346 8353  60.000000
+8346 8355   1.000000
+8347 0   0.000000
+8347 1   0.000000
+8347 8284 -30.000000
+8347 8354  30.000000
+8347 8356   1.000000
+8348 0   0.000000
+8348 1   0.000000
+8348 8287 -60.000000
+8348 8357  60.000000
+8348 8359   1.000000
+8349 0   0.000000
+8349 1   0.000000
+8349 8288 -30.000000
+8349 8358  30.000000
+8349 8360   1.000000
+8350 0   0.000000
+8350 1   0.000000
+8350 8293 -60.000000
+8350 8363  60.000000
+8350 8365   1.000000
+8351 0   0.000000
+8351 1   0.000000
+8351 8294 -30.000000
+8351 8364  30.000000
+8351 8366   1.000000
+8352 0   0.000000
+8352 1   0.000000
+8352 8297 -60.000000
+8352 8367  60.000000
+8352 8369   1.000000
+8353 0   0.000000
+8353 1   0.000000
+8353 8298 -30.000000
+8353 8368  30.000000
+8353 8370   1.000000
+8354 0   0.000000
+8354 1   0.000000
+8354 8301 -60.000000
+8354 8371  60.000000
+8354 8373   1.000000
+8355 0   0.000000
+8355 1   0.000000
+8355 8302 -30.000000
+8355 8372  30.000000
+8355 8374   1.000000
+8356 0   0.000000
+8356 1   0.000000
+8356 8307 -60.000000
+8356 8377  60.000000
+8356 8379   1.000000
+8357 0   0.000000
+8357 1   0.000000
+8357 8308 -30.000000
+8357 8378  30.000000
+8357 8380   1.000000
+8358 0   0.000000
+8358 1   0.000000
+8358 8311 -60.000000
+8358 8381  60.000000
+8358 8383   1.000000
+8359 0   0.000000
+8359 1   0.000000
+8359 8312 -30.000000
+8359 8382  30.000000
+8359 8384   1.000000
+8360 0   0.000000
+8360 1   0.000000
+8360 8315 -60.000000
+8360 8385  60.000000
+8360 8387   1.000000
+8361 0   0.000000
+8361 1   0.000000
+8361 8316 -30.000000
+8361 8386  30.000000
+8361 8388   1.000000
+8362 0   0.000000
+8362 1   0.000000
+8362 8321 -60.000000
+8362 8391  60.000000
+8362 8393   1.000000
+8363 0   0.000000
+8363 1   0.000000
+8363 8322 -30.000000
+8363 8392  30.000000
+8363 8394   1.000000
+8364 0   0.000000
+8364 1   0.000000
+8364 8325 -60.000000
+8364 8395  60.000000
+8364 8397   1.000000
+8365 0   0.000000
+8365 1   0.000000
+8365 8326 -30.000000
+8365 8396  30.000000
+8365 8398   1.000000
+8366 0   0.000000
+8366 1   0.000000
+8366 8329 -60.000000
+8366 8399  60.000000
+8366 8401   1.000000
+8367 0   0.000000
+8367 1   0.000000
+8367 8330 -30.000000
+8367 8400  30.000000
+8367 8402   1.000000
+8368 1399  -1.000000
+8368 8347   1.000000
+8369 1400  -1.000000
+8369 8348   1.000000
+8370 17   1.000000
+8370 1469  -1.000000
+8371 18   1.000000
+8371 1470  -1.000000
+8372 87   1.000000
+8372 1539  -1.000000
+8373 88   1.000000
+8373 1540  -1.000000
+8374 157   1.000000
+8374 1609  -1.000000
+8375 158   1.000000
+8375 1610  -1.000000
+8376 227   1.000000
+8376 1679  -1.000000
+8377 228   1.000000
+8377 1680  -1.000000
+8378 297   1.000000
+8378 1749  -1.000000
+8379 298   1.000000
+8379 1750  -1.000000
+8380 367   1.000000
+8380 1819  -1.000000
+8381 368   1.000000
+8381 1820  -1.000000
+8382 437   1.000000
+8382 1889  -1.000000
+8383 438   1.000000
+8383 1890  -1.000000
+8384 507   1.000000
+8384 1959  -1.000000
+8385 508   1.000000
+8385 1960  -1.000000
+8386 577   1.000000
+8386 2029  -1.000000
+8387 578   1.000000
+8387 2030  -1.000000
+8388 647   1.000000
+8388 2099  -1.000000
+8389 648   1.000000
+8389 2100  -1.000000
+8390 717   1.000000
+8390 2169  -1.000000
+8391 718   1.000000
+8391 2170  -1.000000
+8392 787   1.000000
+8392 2239  -1.000000
+8393 788   1.000000
+8393 2240  -1.000000
+8394 857   1.000000
+8394 2309  -1.000000
+8395 858   1.000000
+8395 2310  -1.000000
+8396 927   1.000000
+8396 2379  -1.000000
+8397 928   1.000000
+8397 2380  -1.000000
+8398 997   1.000000
+8398 2449  -1.000000
+8399 998   1.000000
+8399 2450  -1.000000
+8400 1067   1.000000
+8400 2519  -1.000000
+8401 1068   1.000000
+8401 2520  -1.000000
+8402 1137   1.000000
+8402 2589  -1.000000
+8403 1138   1.000000
+8403 2590  -1.000000
+8404 1207   1.000000
+8404 2659  -1.000000
+8405 1208   1.000000
+8405 2660  -1.000000
+8406 1277   1.000000
+8406 2729  -1.000000
+8407 1278   1.000000
+8407 2730  -1.000000
+8408 1347   1.000000
+8408 2799  -1.000000
+8409 1348   1.000000
+8409 2800  -1.000000
+8410 1417   1.000000
+8410 2869  -1.000000
+8411 1418   1.000000
+8411 2870  -1.000000
+8412 1487   1.000000
+8412 2939  -1.000000
+8413 1488   1.000000
+8413 2940  -1.000000
+8414 1557   1.000000
+8414 3009  -1.000000
+8415 1558   1.000000
+8415 3010  -1.000000
+8416 1627   1.000000
+8416 3079  -1.000000
+8417 1628   1.000000
+8417 3080  -1.000000
+8418 1697   1.000000
+8418 3149  -1.000000
+8419 1698   1.000000
+8419 3150  -1.000000
+8420 1767   1.000000
+8420 3219  -1.000000
+8421 1768   1.000000
+8421 3220  -1.000000
+8422 1837   1.000000
+8422 3289  -1.000000
+8423 1838   1.000000
+8423 3290  -1.000000
+8424 1907   1.000000
+8424 3359  -1.000000
+8425 1908   1.000000
+8425 3360  -1.000000
+8426 1977   1.000000
+8426 3429  -1.000000
+8427 1978   1.000000
+8427 3430  -1.000000
+8428 2047   1.000000
+8428 3499  -1.000000
+8429 2048   1.000000
+8429 3500  -1.000000
+8430 2117   1.000000
+8430 3569  -1.000000
+8431 2118   1.000000
+8431 3570  -1.000000
+8432 2187   1.000000
+8432 3639  -1.000000
+8433 2188   1.000000
+8433 3640  -1.000000
+8434 2257   1.000000
+8434 3709  -1.000000
+8435 2258   1.000000
+8435 3710  -1.000000
+8436 2327   1.000000
+8436 3779  -1.000000
+8437 2328   1.000000
+8437 3780  -1.000000
+8438 2397   1.000000
+8438 3849  -1.000000
+8439 2398   1.000000
+8439 3850  -1.000000
+8440 2467   1.000000
+8440 3919  -1.000000
+8441 2468   1.000000
+8441 3920  -1.000000
+8442 2537   1.000000
+8442 3989  -1.000000
+8443 2538   1.000000
+8443 3990  -1.000000
+8444 2607   1.000000
+8444 4059  -1.000000
+8445 2608   1.000000
+8445 4060  -1.000000
+8446 2677   1.000000
+8446 4129  -1.000000
+8447 2678   1.000000
+8447 4130  -1.000000
+8448 2747   1.000000
+8448 4199  -1.000000
+8449 2748   1.000000
+8449 4200  -1.000000
+8450 2817   1.000000
+8450 4269  -1.000000
+8451 2818   1.000000
+8451 4270  -1.000000
+8452 2887   1.000000
+8452 4339  -1.000000
+8453 2888   1.000000
+8453 4340  -1.000000
+8454 2957   1.000000
+8454 4409  -1.000000
+8455 2958   1.000000
+8455 4410  -1.000000
+8456 3027   1.000000
+8456 4479  -1.000000
+8457 3028   1.000000
+8457 4480  -1.000000
+8458 3097   1.000000
+8458 4549  -1.000000
+8459 3098   1.000000
+8459 4550  -1.000000
+8460 3167   1.000000
+8460 4619  -1.000000
+8461 3168   1.000000
+8461 4620  -1.000000
+8462 3237   1.000000
+8462 4689  -1.000000
+8463 3238   1.000000
+8463 4690  -1.000000
+8464 3307   1.000000
+8464 4759  -1.000000
+8465 3308   1.000000
+8465 4760  -1.000000
+8466 3377   1.000000
+8466 4829  -1.000000
+8467 3378   1.000000
+8467 4830  -1.000000
+8468 3447   1.000000
+8468 4899  -1.000000
+8469 3448   1.000000
+8469 4900  -1.000000
+8470 3517   1.000000
+8470 4969  -1.000000
+8471 3518   1.000000
+8471 4970  -1.000000
+8472 3587   1.000000
+8472 5039  -1.000000
+8473 3588   1.000000
+8473 5040  -1.000000
+8474 3657   1.000000
+8474 5109  -1.000000
+8475 3658   1.000000
+8475 5110  -1.000000
+8476 3727   1.000000
+8476 5179  -1.000000
+8477 3728   1.000000
+8477 5180  -1.000000
+8478 3797   1.000000
+8478 5249  -1.000000
+8479 3798   1.000000
+8479 5250  -1.000000
+8480 3867   1.000000
+8480 5319  -1.000000
+8481 3868   1.000000
+8481 5320  -1.000000
+8482 3937   1.000000
+8482 5389  -1.000000
+8483 3938   1.000000
+8483 5390  -1.000000
+8484 4007   1.000000
+8484 5459  -1.000000
+8485 4008   1.000000
+8485 5460  -1.000000
+8486 4077   1.000000
+8486 5529  -1.000000
+8487 4078   1.000000
+8487 5530  -1.000000
+8488 4147   1.000000
+8488 5599  -1.000000
+8489 4148   1.000000
+8489 5600  -1.000000
+8490 4217   1.000000
+8490 5669  -1.000000
+8491 4218   1.000000
+8491 5670  -1.000000
+8492 4287   1.000000
+8492 5739  -1.000000
+8493 4288   1.000000
+8493 5740  -1.000000
+8494 4357   1.000000
+8494 5809  -1.000000
+8495 4358   1.000000
+8495 5810  -1.000000
+8496 4427   1.000000
+8496 5879  -1.000000
+8497 4428   1.000000
+8497 5880  -1.000000
+8498 4497   1.000000
+8498 5949  -1.000000
+8499 4498   1.000000
+8499 5950  -1.000000
+8500 4567   1.000000
+8500 6019  -1.000000
+8501 4568   1.000000
+8501 6020  -1.000000
+8502 4637   1.000000
+8502 6089  -1.000000
+8503 4638   1.000000
+8503 6090  -1.000000
+8504 4707   1.000000
+8504 6159  -1.000000
+8505 4708   1.000000
+8505 6160  -1.000000
+8506 4777   1.000000
+8506 6229  -1.000000
+8507 4778   1.000000
+8507 6230  -1.000000
+8508 4847   1.000000
+8508 6299  -1.000000
+8509 4848   1.000000
+8509 6300  -1.000000
+8510 4917   1.000000
+8510 6369  -1.000000
+8511 4918   1.000000
+8511 6370  -1.000000
+8512 4987   1.000000
+8512 6439  -1.000000
+8513 4988   1.000000
+8513 6440  -1.000000
+8514 5057   1.000000
+8514 6509  -1.000000
+8515 5058   1.000000
+8515 6510  -1.000000
+8516 5127   1.000000
+8516 6579  -1.000000
+8517 5128   1.000000
+8517 6580  -1.000000
+8518 5197   1.000000
+8518 6649  -1.000000
+8519 5198   1.000000
+8519 6650  -1.000000
+8520 5267   1.000000
+8520 6719  -1.000000
+8521 5268   1.000000
+8521 6720  -1.000000
+8522 5337   1.000000
+8522 6789  -1.000000
+8523 5338   1.000000
+8523 6790  -1.000000
+8524 5407   1.000000
+8524 6859  -1.000000
+8525 5408   1.000000
+8525 6860  -1.000000
+8526 5477   1.000000
+8526 6929  -1.000000
+8527 5478   1.000000
+8527 6930  -1.000000
+8528 5547   1.000000
+8528 6999  -1.000000
+8529 5548   1.000000
+8529 7000  -1.000000
+8530 5617   1.000000
+8530 7069  -1.000000
+8531 5618   1.000000
+8531 7070  -1.000000
+8532 5687   1.000000
+8532 7139  -1.000000
+8533 5688   1.000000
+8533 7140  -1.000000
+8534 5757   1.000000
+8534 7209  -1.000000
+8535 5758   1.000000
+8535 7210  -1.000000
+8536 5827   1.000000
+8536 7279  -1.000000
+8537 5828   1.000000
+8537 7280  -1.000000
+8538 5897   1.000000
+8538 7349  -1.000000
+8539 5898   1.000000
+8539 7350  -1.000000
+8540 5967   1.000000
+8540 7419  -1.000000
+8541 5968   1.000000
+8541 7420  -1.000000
+8542 6037   1.000000
+8542 7489  -1.000000
+8543 6038   1.000000
+8543 7490  -1.000000
+8544 6107   1.000000
+8544 7559  -1.000000
+8545 6108   1.000000
+8545 7560  -1.000000
+8546 6177   1.000000
+8546 7629  -1.000000
+8547 6178   1.000000
+8547 7630  -1.000000
+8548 6247   1.000000
+8548 7699  -1.000000
+8549 6248   1.000000
+8549 7700  -1.000000
+8550 6317   1.000000
+8550 7769  -1.000000
+8551 6318   1.000000
+8551 7770  -1.000000
+8552 6387   1.000000
+8552 7839  -1.000000
+8553 6388   1.000000
+8553 7840  -1.000000
+8554 6457   1.000000
+8554 7909  -1.000000
+8555 6458   1.000000
+8555 7910  -1.000000
+8556 6527   1.000000
+8556 7979  -1.000000
+8557 6528   1.000000
+8557 7980  -1.000000
+8558 6597   1.000000
+8558 8049  -1.000000
+8559 6598   1.000000
+8559 8050  -1.000000
+8560 6667   1.000000
+8560 8119  -1.000000
+8561 6668   1.000000
+8561 8120  -1.000000
+8562 6737   1.000000
+8562 8189  -1.000000
+8563 6738   1.000000
+8563 8190  -1.000000
+8564 6807   1.000000
+8564 8259  -1.000000
+8565 6808   1.000000
+8565 8260  -1.000000
+8566 6877   1.000000
+8566 8329  -1.000000
+8567 6878   1.000000
+8567 8330  -1.000000
+8568 6947   1.000000
+8568 8399  -1.000000
+8569 6948   1.000000
+8569 8400  -1.000000
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/legend.txt
@@ -0,0 +1,107 @@
+#define repnum 10
+    //repnum: repetition number: the number of times that a function will be re-executed
+      //used for accurate measurement of feval and ceval
+
+  int i, j, k, l, sum, n, m, nnz, direct = 1, found;
+    //tag_c:  #define tag_c 4	/* tape identification                       */
+    //m: init_dim(&n,&m); 	/* number of dependent variables             */
+    //n: init_dim(&n,&m);  	/* number of independent variables           */
+    //nnz: number of non-zeros in the matrix
+  double f;
+    //f: returned value of a function?
+  double *x, *c;
+    // x: vector input for function evaluation
+      //x: x =   (double*)  malloc(n*sizeof(double));  init_startpoint(x,n); /* independant variable values  */
+    // c: concentrations vector
+  adouble fad, *xad, *cad;
+    //fad: f active double
+    //xad: x active double array
+    //cad: c (concentrations) active double array
+  //double** Zpp;
+  //double** Zppf;
+  double** J;
+    //J: Jacobian matrix
+  double* s;	//!!!actually not used
+  int p_H_dir, p_H_indir;	//!!!actually not used
+  int tape_stats[11];	// For reading of tape statistics
+  int num;
+  FILE *fp_JP;	// File pointer for Jacobian Pattern
+
+  double **Seed_J, **Seed_J_C, **Seed_H;
+    //Seed_J: Seed of Jacobian
+    //Seed_J_C: Seed of Jacobian (using ColPack?)
+  double **Jc, **Jc_C, **H;
+    //Jc_C: compressed Jacobian (using ColPack?)
+    //Jc: compressed Jacobian
+  int p_J, p_J_C, p_H;
+    //p_J: essentially the number of colors needed to color the Jacobian
+    //p_J_C: essentially the number of colors needed to color the Jacobian (using ColPack)
+
+  // FLAGS
+  int recover = 1; //True: execute the recovery section
+  int jac_vec = 1; //True: compute Jacobian-matrix product?
+  int compute_full = 1; //True: compute the full Jacobian
+  int output_sparsity_pattern_J = 0; //True: write the sparsity_pattern of Jacobian into file
+  int output_sparsity_pattern_H = 1; //!!!actually not used. True: ?write the sparsity_pattern of Hessian into file
+  int use_direct_method = 1;	//!!!actually not used. True: ?use direct method of recovery
+  int output_direct = 0;	//!!!actually not used
+  int use_indirect_method = 1;	//!!!actually not used
+  int output_indirect = 0;	//!!!actually not used
+
+  double t_f_1, t_f_2, div_f=0, div_c=0, div_JP=0, div_JP2=0, div_Seed=0, div_Seed_C=0, div_Jc=0, div_Jc_C=0, div_rec=0, div_rec_C=0, div_J=0;
+    // t_f_1: starting time of the function
+    // t_f_2: ending time of the function
+    // div_...: time difference / execution time
+    // div_f: time to compute feval(x,n);
+    // div_c: time to compute ceval(x,c,n); used for calculating the ratio
+    // div_Jc: time to compute compressed Jacobian
+    // div_Jc_C: time to compute compressed Jacobian (using ColPack?)
+    // div_JP: The time needed for Jacobian pattern
+    // div_JP2: !!!actuall not currently used. The time needed for Jacobian pattern (for the alternative jac_pat_2)
+    // div_Seed: time for generate_seed_jac(m, n, JP, &Seed_J, &p_J,0);
+    // div_Seed_C: time to color and generate seed (using ColPack)
+    // div_rec: The time needed for Recovery (ADOL-C)
+    // div_rec_C: The time needed for Recovery (ADOL-C+COLPACK)
+    // div_J: time needed for full Jacobian
+  double test;	//not used at all
+  unsigned int *rind;
+    //rind: row indices
+  unsigned int *cind;
+    //cind: column indices
+  double *values;
+    //values: values
+  unsigned int *rind_C;
+    //rind_C: row indices (using ColPack?)
+  unsigned int *cind_C;
+    //cind_C: column indices (using ColPack?)
+  double *values_C;
+    //values_C: values vector (using ColPack)
+  unsigned int *colors;
+    // colors: colors vector (without using ColPack)
+  vector<int> colors_C;
+    // colors_C: colors vector (using ColPack?)
+
+  //string s_InputFile = "test_mat.mtx";
+  string s_InputFile = "jac_pat.mtx";
+
+  unsigned int  *rb=NULL;          /* dependent variables          */
+  unsigned int  *cb=NULL;          /* independent variables        */
+
+  unsigned int  **JP=NULL;         /* compressed block row storage */
+    //JP: Jacobian Pattern
+  JP = (unsigned int **) malloc(m*sizeof(unsigned int*));
+
+  unsigned int  **JP2=NULL;         /* compressed block row storage */
+    //JP2: also Jacobian Pattern
+  JP2 = (unsigned int **) malloc(m*sizeof(unsigned int*));
+
+  int ctrl[2];
+  ctrl[0] = 0; ctrl[1] = 0;
+    //ctrl[2]: for jac_pat(tag_c, m, n, x, JP, ctrl); //control options
+
+  double tg_C,ts_C;
+    //tg_C: time to read the input file and generate Graph (using ColPack)
+    //ts_C: time to color and generate the seed matrix using ColPack
+  BipartiteGraphPartialColoringInterface * gGraph = new BipartiteGraphPartialColoringInterface();
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/SampleDrivers/Matrix_Compression_and_Recovery/SMB/sparse_jac_hess.cpp
@@ -0,0 +1,374 @@
+#include "math.h"
+#include "stdlib.h"
+#include "stdio.h"
+
+#include "adolc.h"
+#include "sparse/sparsedrivers.h"
+
+#define repnum 10
+
+//------------------------------------------------------------------------------------
+// for time measurements
+
+#include <sys/time.h>
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+
+double k_getTime() {
+   struct timeval v;
+   struct timezone z;
+   gettimeofday(&v, &z);
+   return ((double)v.tv_sec)+((double)v.tv_usec)/1000000;
+}
+
+//------------------------------------------------------------------------------------
+// required for second method
+
+using namespace std;
+
+#include <list>
+#include <map>
+#include <string>
+#include <vector>
+
+//------------------------------------------------------------------------------------
+// as before
+
+#define tag_f 1
+#define tag_red 2
+#define tag_HP 3
+
+#define tag_c 4
+
+// problem definition -> eval_fun.c
+void init_dim(int *n, int *m);
+void init_startpoint(double *x, int n);
+double  feval(double *x, int n);
+adouble feval_ad(double *x, int n);
+void ceval(double *x, double *c, int n);
+void ceval_ad(double *x, adouble *c, int n);
+adouble feval_ad_mod(double *x, int n);
+adouble feval_ad_modHP(double *x, int n);
+
+void printmat(char* kette, int n, int m, double** M);
+void printmatint(char* kette, int n, int m, int** M);
+void printmatint_c(char* kette, int m,unsigned int** M);
+
+
+int main()
+{
+  int i, j, k, l, sum, n, m, nnz, direct = 1, found;
+  double f;
+  double *x, *c;
+  adouble fad, *xad, *cad;
+  //double** Zpp;
+  //double** Zppf;
+  double** J;
+  //double* s;
+  //int p_H_dir, p_H_indir;
+  size_t tape_stats[11];
+  int num;
+  FILE *fp_JP;
+
+  double **Seed_J;
+  double **Jc;
+  int p_J;
+
+  int recover = 1;
+  int jac_vec = 1;
+  int compute_full = 1;
+  int output_sparsity_pattern_J = 0;
+  //int output_sparsity_pattern_H = 1;
+  //int use_direct_method = 1;
+  //int output_direct = 0;
+  //int use_indirect_method = 1;
+  //int output_indirect = 0;
+
+  double t_f_1, t_f_2, div_f=0, div_c=0, div_JP=0, div_JP2=0, div_Seed=0, div_Seed_C=0, div_Jc=0, div_Jc_C=0, div_rec=0, div_rec_C=0, div_J=0;
+  //double test;
+  unsigned int *rind;
+  unsigned int *cind;
+  double *values;
+
+  //tring s_InputFile = "test_mat.mtx";
+  //string s_InputFile = "jac_pat.mtx";
+
+
+//------------------------------------------------------------------------------------
+// problem definition + evaluation
+
+  init_dim(&n,&m); // initialize n and m
+
+  printf(" n = %d m = %d\n",n,m);
+
+  x =   (double*)  malloc(n*sizeof(double)); // x: vector input for function evaluation
+  c =   (double*)  malloc(m*sizeof(double)); // c: constraint vector
+  cad = new adouble[m];
+
+  init_startpoint(x,n);
+
+  t_f_1 = k_getTime();
+  for(i=0;i<repnum;i++)
+    f = feval(x,n);
+  t_f_2 = k_getTime();
+  div_f = (t_f_2 - t_f_1)*1.0/repnum;
+  printf("XXX The time needed for function evaluation:  %10.6f \n \n", div_f);
+
+
+  t_f_1 = k_getTime();
+  for(i=0;i<repnum;i++)
+    ceval(x,c,n);
+  t_f_2 = k_getTime();
+  div_c = (t_f_2 - t_f_1)*1.0/repnum;
+  printf("XXX The time needed for constraint evaluation:  %10.6f \n \n", div_c);
+
+
+  trace_on(tag_f);
+
+    fad = feval_ad(x, n); // feval_ad: derivative of feval
+
+    fad >>= f;
+
+  trace_off();
+
+  trace_on(tag_c);
+
+    ceval_ad(x, cad, n); //ceval_ad: derivative of ceval
+
+    for(i=0;i<m;i++)
+      cad[i] >>= f;
+
+  trace_off();
+  //return 1;
+
+  tapestats(tag_c,tape_stats);              // reading of tape statistics
+  printf("\n    independents   %ld\n",(long)tape_stats[0]);
+  printf("    dependents     %ld\n",(long)tape_stats[1]);
+  printf("    operations     %ld\n",(long)tape_stats[5]);
+  printf("    buffer size    %ld\n",(long)tape_stats[4]);
+  printf("    maxlive        %ld\n",(long)tape_stats[2]);
+  printf("    valstack size  %ld\n\n",(long)tape_stats[3]);
+
+
+//------------------------------------------------------------------------------------
+// full Jacobian:
+
+  div_J = -1;
+
+  if(compute_full == 1)
+    {
+      J =  myalloc2(m,n);
+
+      t_f_1 = k_getTime();
+      jacobian(tag_c,m,n,x,J);
+      t_f_2 = k_getTime();
+      div_J = (t_f_2 - t_f_1);
+
+      printf("XXX The time needed for full Jacobian:  %10.6f \n \n", div_J);
+      printf("XXX runtime ratio:  %10.6f \n \n", div_J/div_c);
+
+      //save the matrix into a file (non-zero entries only)
+
+	fp_JP = fopen("jac_full.mtx","w");
+
+	fprintf(fp_JP,"%d %d\n",m,n);
+
+	for (i=0;i<m;i++)
+	  {
+	    for (j=0;j<n;j++)
+	      if(J[i][j]!=0.0) fprintf(fp_JP,"%d %d %10.6f\n",i,j,J[i][j] );
+	  }
+	fclose(fp_JP);
+    }
+
+//------------------------------------------------------------------------------------
+  printf("XXX THE 4 STEP TO COMPUTE SPARSE MATRICES USING ColPack \n \n");
+// STEP 1: Determination of sparsity pattern of Jacobian JP:
+
+  unsigned int  *rb=NULL;          /* dependent variables          */
+  unsigned int  *cb=NULL;          /* independent variables        */
+  unsigned int  **JP=NULL;         /* compressed block row storage */
+  int ctrl[2];
+
+  JP = (unsigned int **) malloc(m*sizeof(unsigned int*));
+  ctrl[0] = 0; ctrl[1] = 0;
+
+
+  t_f_1 = k_getTime();
+  jac_pat(tag_c, m, n, x, JP, ctrl);	//ADOL-C calculate the sparsity pattern
+  t_f_2 = k_getTime();
+  div_JP = (t_f_2 - t_f_1);
+
+  printf("XXX STEP 1: The time needed for Jacobian pattern:  %10.6f \n \n", div_JP);
+  printf("XXX STEP 1: runtime ratio:  %10.6f \n \n", div_JP/div_c);
+
+
+  nnz = 0;
+  for (i=0;i<m;i++)
+    nnz += JP[i][0];
+
+  printf(" nnz %d \n",nnz);
+  printf(" hier 1a\n");
+
+
+//------------------------------------------------------------------------------------
+// STEP 2: Determination of Seed matrix:
+
+  double tg_C;
+  int dummy;
+
+  t_f_1 = k_getTime();
+
+  BipartiteGraphPartialColoringInterface * gGraph = new BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC, JP, m, n);
+  //gGraph->PrintBipartiteGraph();
+  t_f_2 = k_getTime();
+
+  printf("XXX STEP 2: The time needed for Graph construction:  %10.6f \n \n", (t_f_2-t_f_1) );
+  printf("XXX STEP 2: runtime ratio:  %10.6f \n \n", (t_f_2-t_f_1)/div_c);
+
+  t_f_1 = k_getTime();
+  //gGraph->GenerateSeedJacobian(&Seed_J, &dummy, &p_J,
+  //                          "NATURAL", "COLUMN_PARTIAL_DISTANCE_TWO");
+  gGraph->PartialDistanceTwoColoring("NATURAL", "COLUMN_PARTIAL_DISTANCE_TWO");
+  t_f_2 = k_getTime();
+
+  printf("XXX STEP 2: The time needed for Coloring:  %10.6f \n \n", (t_f_2-t_f_1));
+  printf("XXX STEP 2: runtime ratio:  %10.6f \n \n", (t_f_2-t_f_1)/div_c);
+
+  t_f_1 = k_getTime();
+  Seed_J = gGraph->GetSeedMatrix(&dummy, &p_J);
+  t_f_2 = k_getTime();
+  tg_C = t_f_2 - t_f_1;
+
+
+  printf("XXX STEP 2: The time needed for Seed generation:  %10.6f \n \n", tg_C);
+  printf("XXX STEP 2: runtime ratio:  %10.6f \n \n", tg_C/div_c);
+
+  //*/
+
+//------------------------------------------------------------------------------------
+// STEP 3: Jacobian-matrix product:
+
+// ADOL-C:
+//*
+  if (jac_vec == 1)
+    {
+
+      Jc = myalloc2(m,p_J);
+      t_f_1 = k_getTime();
+      printf(" hier 1\n");
+      fov_forward(tag_c,m,n,p_J,x,Seed_J,c,Jc);
+      printf(" hier 2\n");
+      t_f_2 = k_getTime();
+      div_Jc = (t_f_2 - t_f_1);
+
+      printf("XXX STEP 3: The time needed for Jacobian-matrix product:  %10.6f \n \n", div_Jc);
+      printf("XXX STEP 3: runtime ratio:  %10.6f \n \n", div_Jc/div_c);
+
+
+    }
+
+//------------------------------------------------------------------------------------
+// STEP 4: computed Jacobians/ recovery
+
+
+  if (recover == 1)
+    {
+
+
+      JacobianRecovery1D jr1d;
+
+      printf("m = %d, n = %d, p_J = %d \n",m,n,p_J);
+      //printmatint_c("JP Jacobian Pattern",m,JP);
+      //printmat("Jc Jacobian compressed",m,p_J,Jc);
+
+      t_f_1 = k_getTime();
+      jr1d.RecoverD2Cln_CoordinateFormat (gGraph, Jc, JP, &rind, &cind, &values);
+      t_f_2 = k_getTime();
+      div_rec_C = (t_f_2 - t_f_1);
+
+      printf("XXX STEP 4: The time needed for Recovery:  %10.6f \n \n", div_rec_C);
+      printf("XXX STEP 4: runtime ratio:  %10.6f \n \n", div_rec_C/div_c);
+
+      //save recovered matrix into file
+
+	fp_JP = fopen("jac_recovered.mtx","w");
+
+	fprintf(fp_JP,"%d %d %d\n",m,n,nnz);
+
+	for (i=0;i<nnz;i++)
+	  {
+	      fprintf(fp_JP,"%d %d %10.6f\n",rind[i],cind[i],values[i] );
+	  }
+	fclose(fp_JP);
+
+    }
+
+    /*By this time, if you compare the 2 output files: jac_full.mtx and jac_recovered.mtx
+    You should be able to see that the non-zero entries are identical
+    */
+
+
+  free(JP);
+  delete[] cad;
+  free(c);
+  free(x);
+  delete gGraph;
+  if(jac_vec == 1) {
+    myfree2(Jc);
+  }
+  if(compute_full == 1)
+    {
+      myfree2(J);
+    }
+
+  return 0;
+
+}
+
+
+
+
+/***************************************************************************/
+
+void printmat(char* kette, int n, int m, double** M)
+{ int i,j;
+
+  printf("%s \n",kette);
+  for(i=0; i<n ;i++)
+  {
+    printf("\n %d: ",i);
+    for(j=0;j<m ;j++)
+	printf(" %10.4f ", M[i][j]);
+  }
+  printf("\n");
+}
+
+void printmatint(char* kette, int n, int m, int** M)
+{ int i,j;
+
+  printf("%s \n",kette);
+  for(i=0; i<n ;i++)
+  {
+    printf("\n %d: ",i);
+    for(j=0;j<m ;j++)
+      printf(" %d ", M[i][j]);
+  }
+  printf("\n");
+}
+
+
+void printmatint_c(char* kette, int m,unsigned int** M)
+{ int i;
+  unsigned int j;
+
+  printf("%s \n",kette);
+  for (i=0;i<m;i++)
+    {
+    printf("\n %d (%d): ",i,M[i][0]);
+      for (j=1;j<=M[i][0];j++)
+	printf("\t%d ",M[i][j]);
+    }
+  printf("\n");
+}
--- /dev/null
+++ colpack-1.0.10/Examples/SomeExample/Main.cpp
@@ -0,0 +1,107 @@
+#include "ColPackHeaders.h"
+#include <cstring>
+#include <unordered_set>
+using namespace ColPack;
+void usage();
+
+int main(int argc, char* argv[]) {
+    string fname;
+    string order("LARGEST_FIRST");
+    string methd("DISTANCE_ONE");
+    bool   bVerbose(false);
+    unordered_set<string> ParaD1Color={"DISTANCE_ONE_OMP"};
+    unordered_set<string> BiColor={ 
+        "IMPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING",
+        "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"
+    };
+    unordered_set<string> PartialColor={ 
+        "COLUMN_PARTIAL_DISTANCE_TWO",
+        "ROW_PARTIAL_DISTANCE_TWO"
+    };
+   
+
+    for(int i=1; i<argc; i++){
+        if(argv[i][0]!='-') continue;
+        if(     !strcmp(argv[i], "-f")) fname = argv[++i];
+        else if(!strcmp(argv[i], "-o")) order = argv[++i];
+        else if(!strcmp(argv[i], "-m")) methd = argv[++i];
+        else if(!strcmp(argv[i], "-v")) bVerbose = true;
+        else printf("Warning: unknown input argument\"%s\"",argv[i]);
+    }   
+
+    if(fname.empty()) {usage(); exit(0); }
+    
+    if(BiColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nBiColoring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphBicoloringInterface *p = new BipartiteGraphBicoloringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->Bicoloring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d", p->GetVertexColorCount());
+        delete p; p=nullptr;
+    }
+    else if(PartialColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nPartial Distantce Two Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphPartialColoringInterface *p = new BipartiteGraphPartialColoringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->PartialDistanceTwoColoring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d", p->GetVertexColorCount());
+        delete p; p=nullptr;   
+    }
+    else if(ParaD1Color.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nShared Memory General Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        delete g; g=nullptr;  
+    }
+    else{
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nGeneral Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d",g->GetVertexColorCount());
+        delete g; g=nullptr;
+    }
+    if(bVerbose)fprintf(stdout,"\n\n"); 
+    return 0;
+}
+
+void usage(){
+    fprintf(stderr, "\nusage: ./ColPack -f <gname> -o <ordering> -m <methods> [-v]\n"
+            "-f <gname>  :  Input file name\n"
+            "-o <order>  :  LARGEST_FIRST\n"
+            "               SMALLEST_LAST,\n"
+            "               DYNAMIC_LARGEST_FIRST,\n"
+            "               INCIDENCE_DEGREE,\n"
+            "               NATURAL,\n"
+            "               RANDOM\n"
+            "-m <methods>:  DISTANCE_ONE\n"
+            "               ACYCLIC\n"
+            "               ACYCLIC_FOR_INDIRECT_RECOVERY\n"
+            "               STAR\n"
+            "               RESTRICTED_STAR\n"
+            "               DISTANCE_TWO\n"
+            "               --------------------\n"
+            "               DISTANCE_ONE_OMP    (automatic display: nThreads,num_colors,timall,conflicts,loops)\n "
+            "               --------------------\n"
+            "               IMPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING\n"
+            "               IMPLICIT_COVERING__GREEDY_STAR_BICOLORING\n"
+            "               --------------------\n"
+            "               COLUMN_PARTIAL_DISTANCE_TWO\n"
+            "               ROW_PARTIAL_DISTANCE_TWO\n"
+            "\n"
+            "-v          :  verbose for debug infomation\n"
+            "\n"
+            "\n"
+            "Examples:\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o LARGEST_FIRST -m DISTANCE_ONE -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o SMALLEST_LAST -m ACYCLIC -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o DYNAMIC_LARGEST_FIRST -m DISTANCE_ONE_OMP -v\n"
+            "\n"
+           ); 
+}
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/Use_Library/Makefile
@@ -0,0 +1,38 @@
+# make file for using installed library
+# author xin cheng
+# usage: chage the following two variable accordingly
+COLPACK_INSTALL_PATH = ../../libs/libColPack.so
+COLPACK_ROOT = ../..
+
+SRC = $(wildcard *.cpp)
+OBJ = $(SRC:%.cpp=%.o)
+EXE = ColPack
+
+# compiler
+COMPILE = g++      # gnu
+
+# compile flags
+CCFLAGS = -Wall -fopenmp -O3 -std=c++11
+
+# link flags
+LDFLAGS = -Wall -fopenmp -O3 -std=c++11 -ldl ${COLPACK_INSTALL_PATH}
+
+INCLUDES = -I./
+INCLUDES+= -I${COLPACK_ROOT}/INC
+INCLUDES+= -I${COLPACK_ROOT}/SRC/GeneralGraphColoring
+INCLUDES+= -I${COLPACK_ROOT}/SRC/BipartiteGraphBicoloring
+INCLUDES+= -I${COLPACK_ROOT}/SRC/BipartiteGraphPartialColoring
+INCLUDES+= -I${COLPACK_ROOT}/SRC/Utilities
+
+
+all: $(EXE)
+
+%.o : %.cpp
+	$(COMPILE) $(INCLUDES) $(CCFLAGS) -c $< -o $@
+
+$(EXE): $(OBJ)
+	$(COMPILE) $^ $(INCLUDES) $(LDFLAGS)  -o $@
+
+clean:
+	rm -f $(OBJ) $(EXE)
+
--- /dev/null
+++ colpack-1.0.10/Examples/Use_Library/README.md
@@ -0,0 +1,14 @@
+this folder contains templated code for example of using ColPack as an Library.
+
+Firstly, make suer ColPack have been installed as an Library in your computer.
+
+Then, check and modify Makefile as needed.
+
+in your code (i.e. templated.cpp)  include ColPack header and use ColPack.
+
+In then end, save your edit, make and run.
+
+
+
+
+
--- /dev/null
+++ colpack-1.0.10/Examples/Use_Library/template.cpp
@@ -0,0 +1,107 @@
+#include "ColPackHeaders.h"
+#include <cstring>
+#include <unordered_set>
+using namespace ColPack;
+void usage();
+
+int main(int argc, char* argv[]) {
+    string fname;
+    string order("LARGEST_FIRST");
+    string methd("DISTANCE_ONE");
+    bool   bVerbose(false);
+    unordered_set<string> ParaD1Color={"DISTANCE_ONE_OMP"};
+    unordered_set<string> BiColor={ 
+        "IMPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__STAR_BICOLORING",
+        "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING",
+        "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"
+    };
+    unordered_set<string> PartialColor={ 
+        "COLUMN_PARTIAL_DISTANCE_TWO",
+        "ROW_PARTIAL_DISTANCE_TWO"
+    };
+   
+
+    for(int i=1; i<argc; i++){
+        if(argv[i][0]!='-') continue;
+        if(     !strcmp(argv[i], "-f")) fname = argv[++i];
+        else if(!strcmp(argv[i], "-o")) order = argv[++i];
+        else if(!strcmp(argv[i], "-m")) methd = argv[++i];
+        else if(!strcmp(argv[i], "-v")) bVerbose = true;
+        else printf("Warning: unknown input argument\"%s\"",argv[i]);
+    }   
+
+    if(fname.empty()) {usage(); exit(0); }
+    
+    if(BiColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nBiColoring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphBicoloringInterface *p = new BipartiteGraphBicoloringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->Bicoloring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d\n", p->GetVertexColorCount());
+        delete p; p=nullptr;
+    }
+    else if(PartialColor.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nPartial Distantce Two Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        BipartiteGraphPartialColoringInterface *p = new BipartiteGraphPartialColoringInterface(0, fname.c_str(), "AUTO_DETECTED");
+        p->PartialDistanceTwoColoring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d\n", p->GetVertexColorCount());
+        delete p; p=nullptr;   
+    }
+    else if(ParaD1Color.count(methd)){
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nShared Memory General Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        delete g; g=nullptr;  
+    }
+    else{
+        if(bVerbose) fprintf(stdout,"\ngraph: %s\norder: %s\nmethd: %s\nGeneral Graph Coloring\n",fname.c_str(), order.c_str(), methd.c_str());
+        GraphColoringInterface *g = new GraphColoringInterface(SRC_FILE, fname.c_str(), "AUTO_DETECTED");
+        g->Coloring(order.c_str(), methd.c_str());
+        if(bVerbose) fprintf(stdout, "number of colors: ");
+        fprintf(stdout,"%d\n",g->GetVertexColorCount());
+        delete g; g=nullptr;
+    }
+    if(bVerbose) fprintf(stdout,"\n"); 
+    return 0;
+}
+
+void usage(){
+    fprintf(stderr, "\nusage: ./ColPack -f <gname> -o <ordering> -m <methods> [-v]\n"
+            "-f <gname>  :  Input file name\n"
+            "-o <order>  :  LARGEST_FIRST\n"
+            "               SMALLEST_LAST,\n"
+            "               DYNAMIC_LARGEST_FIRST,\n"
+            "               INCIDENCE_DEGREE,\n"
+            "               NATURAL,\n"
+            "               RANDOM\n"
+            "-m <methods>:  DISTANCE_ONE\n"
+            "               ACYCLIC\n"
+            "               ACYCLIC_FOR_INDIRECT_RECOVERY\n"
+            "               STAR\n"
+            "               RESTRICTED_STAR\n"
+            "               DISTANCE_TWO\n"
+            "               --------------------\n"
+            "               DISTANCE_ONE_OMP    (automatic display: nThreads,num_colors,timall,conflicts,loops)\n "
+            "               --------------------\n"
+            "               IMPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__STAR_BICOLORING\n"
+            "               EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING\n"
+            "               IMPLICIT_COVERING__GREEDY_STAR_BICOLORING\n"
+            "               --------------------\n"
+            "               COLUMN_PARTIAL_DISTANCE_TWO\n"
+            "               ROW_PARTIAL_DISTANCE_TWO\n"
+            "\n"
+            "-v          :  verbose infomation\n"
+            "\n"
+            "\n"
+            "Examples:\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o LARGEST_FIRST -m DISTANCE_ONE -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o SMALLEST_LAST -m ACYCLIC -v\n"
+            "./ColPack -f ../Graphs/bcsstk01.mtx -o DYNAMIC_LARGEST_FIRST -m DISTANCE_ONE_OMP -v\n"
+            "\n"
+           ); 
+}
+
+
--- /dev/null
+++ colpack-1.0.10/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2018, Alex Pothen
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- colpack-1.0.10.orig/README.md
+++ colpack-1.0.10/README.md
@@ -1,4 +1,4 @@
-[![Build Status](https://travis-ci.org/CSCsw/ColPack.svg?branch=master)](https://travis-ci.org/CSCsw/ColPack)
+[![Build Status](https://travis-ci.org/CSCsw/ColPack.svg?branch=master)](https://travis-ci.org/ProbShin/ColPack)
 
 ColPack's Doxygen documentation is available here:
 http://cscapes.cs.purdue.edu/coloringpage/software.htm
@@ -6,11 +6,329 @@ http://cscapes.cs.purdue.edu/coloringpag
 ColPack's project home page:
 http://cscapes.cs.purdue.edu/coloringpage/
 
-Ubuntu Build Instructions
-=========================
-In the `ColPack` directory run the following:
-
-    autoreconf -vif
-    ./configure --prefix=/path/to/install/
-    make -j 4   #Where "4" is the number of cores on your machine
-    make install
+# Table of Contents
+1. [ColPack](#colpack)
+2. [Installation Guilds](#build-and-compile-colpack-instructions)  
+	2.1 [Compile ColPack Without Install](#try-colpack-by-compile-and-run-without-installation)  
+	2.2 [Ubuntu Install](#ubuntu-build-and-install-colpack-instructions)  
+	2.3 [Windows Install](#windows-build-and-install-colpack-instructions)  
+	2.4 [MacOS Install](#mac-os-build-and-install-colpack-instructions)  
+	2.5 [Utilize the Installed Library](#after-the-build-use-colpack-as-installed-library)
+3. [Usages](#usage) 
+4. [HowToCite](#the-best-source-for-citing-this-work)
+&nbsp;
+
+# ColPack 
+
+ColPack is a package comprising of implementations of algorithms for the specialized vertex coloring problems discussed in the previous section as well as algorithms for a variety of related supporting tasks in derivative computation.
+
+### Vertex Graph Coloring
+Vertex graph coloring problem is nothing but a way of labelling graph vertices under the constraints that no two adjacent vertices has the same lable (color). Here it is an example from wikipedia.  
+
+![ExampleFromWiki](https://en.wikipedia.org/wiki/File:Petersen_graph_3-coloring.svg)
+
+### ColPack Coloring capabilities
+
+the table below gives a quick summary of all the coloring problems (on general and bipartite graphs) supported by ColPack.
+
+| General Graph Coloring | Bipartite Graph one-sided coloring | Bipartite Graph Bicoloring |  
+| ---- | ----------------- | -------------------|  
+| Distance 1 coloring  | Partial distance-2 coloring  | Star bicoloring |  
+| Distance 2 coloring | Partial distance-2 coloring  |   |  
+| Star coloring |      |   |  
+| Acyclic coloring   | |
+|  Restricted star coloring| |
+|  Triangular coloring| |
+
+All of the coloring problems listed in the above table are NP-hard. Their corresponding algorithms in ColPack are *greedy* heuristics in the sense that the algorithms progressively extend a partial coloring by processing one vertex at a time, in some order, in each step assigning a vertex the smallest allowable color. Listed beneath each coloring problem in the table is the complexity of the corresponding algorithm in ColPack. In the cases where ColPack has multiple algorithms for a problem (these are designated by the superscript †), the complexity expression corresponds to that of the fastest algorithm. In the complexity expressions,
+
+*the complexity of the corresponding algorithm can be found here [ColPack's project](http://cscapes.cs.purdue.edu/coloringpage/software.htm)*
+	
+
+
+### Ordering techniques
+
+The order in which vertices are processed in a greedy coloring algorithm determines the number of colors used by the algorithm. ColPack has implementations of various effective ordering techniques for each of the supported coloring problems. These are summarized in the table below.
+
+| General Graph Coloring | Bipartite Graph one-sided coloring | Bipartite Graph Bicoloring | 
+|---|---|---|
+| Natural          | Column Natural                     | Natural                    |
+| Largest First    | Column Largest First               | Largest First              |
+| Smallest Last    | Column Smallest Last               | Smallest Last              |
+| Incidence Degree | Column Incidence Degree            | Incidence Degree           |
+| Dynamic Largest First           | Row Natural         | Dynamic Largest First      |
+| Distance-2 Largest First        | Row Largest First   | Selective Largest First    |
+| Distance-2 Smallest Last        | Row Smallest Last   | Selective Smallest Last    |
+| Distance-2 Incidence Degree     | Row Incidence Degree| Selective Incidence Degree |
+| Distance-2 Dynamic Largest First|                     |  
+
+
+### Recovery routines
+
+Besides coloring and ordering capabilities, ColPack also has routines for recovering the numerical values of the entries of a derivative matrix from a compressed representation. In particular the following reconstruction routines are currently available:
+
+* Recovery routines for direct (via star coloring ) and substitution-based (via acyclic coloring) Hessian computation
+* Recovery routines for unidirectional, direct Jacobian computation (via column-wise or row-wise distance-2 coloring)
+* Recovery routines for bidirectional, direct Jacobian computation via star bicoloring
+
+
+### Graph construction routines
+
+Finally, as a supporting functionality, ColPack has routines for constructing bipartite graphs (for Jacobians) and adjacency graphs (for Hessians) from files specifying matrix sparsity structures in various formats, including Matrix Market, Harwell-Boeing and MeTis.
+
+### ColPack : organization
+ColPack is written in an object-oriented fashion in C++ heavily using the Standard Template Library (STL).  It is designed to be simple, modular, extensible and efficient. Figure 1 below gives an overview of the structure of the major classes of ColPack. 
+
+![ColPack Organization](http://cscapes.cs.purdue.edu/coloringpage/software_files/ColPack_structure_2.png)  
+  
+ &nbsp;   
+ &nbsp;   
+ &nbsp;   
+      
+      
+
+Build and Compile ColPack Instructions
+======================================
+There are two ways to use ColPack, _Try without Installiation_ and _Build and Install_. The former is fast and easy to use, but is vulnerable for various OS enviroments settings, thus it requires the user know how to modify the **makefile** if met some compiling issue.  The later one is more robust and it will also collect the ColPack into a shared library which makes ColPack easy to cooperate with other applications. But it requires to pre-install **automake**(or **CMake**) software. 
+
+Try ColPack by Compile and Run without Installation
+---------------------------------------------------
+You can just try ColPack by download, compile and run it. This is the fastest and simplest way to use ColPack. Do the following instructions in terminals.
+
+    cd              
+    git clone https://github.com/CSCsw/ColPack.git   #Download ColPack
+    cd ColPack                   # go to ColPack Root Directory
+    cd Examples/ColPackAll       # go to ColPack Example folder
+    make                         # compile the code
+
+
+After all source codes been compiled, we will generate a executable file `ColPack` under current folder.  
+The above instruction are tested under Ubuntu system. You may need to modify the Makefile to fit the different OS environments and compilers.(delete `-fopenmp` for mac os. Replace `-fopenmp` to `-Qopenmp` )for intel compiler.) 
+
+&nbsp;   
+
+Ubuntu Build and Install ColPack Instruction
+----------------------------------------------
+Install ColPack makes ColPack easy to use and it can also decreases the size of the execuable file. **GNU autotools** and **CMake** are supported. To install ColPack using **autotools** (requires that have installed **automake** on your machine.), follows the instructions below.:
+
+    cd   
+    git clone https://github.com/CSCsw/ColPack.git  #Download ColPack
+    cd ColPack             # ColPack Root Directory
+    cd build/automake      # automake folder
+    autoreconf -vif        # generate configure files based on the machince
+    mkdir mywork           
+    cd mywork
+    fullpath=$(pwd)        # modify fullpath to your destination folder if need
+    ../configure --prefix=${fullpath}  
+    make -j 4              # Where "4" is the number of cores on your machine
+    make install           # install lib and include/ColPack to destination  
+
+Append `--disable-openmp` to `./configure` above if you need to disable OpenMP.(MAC user and some Windows user)  
+
+ColPack also has support for building with CMake, which you can do
+via the following:
+
+    mkdir build/cmake/mywork
+    cd build/cmake/mywork
+    fullpath=$(pwd)        # modify fullpath to your destination folder if need
+    cmake .. -DCMAKE_INSTALL_PREFIX:PATH=${fullpath} 
+    make -j 4              # Where "4" is the number of cores on your machine
+    make install           # install the libararies
+
+Use `cmake -LH .` or `ccmake .` in the build directory to see a list of
+options, such as `ENABLE_EXAMPLES` and `ENABLE_OPENMP`, which you can set by
+running the following from the build directory:
+
+    cmake .. -DENABLE_OPENMP=ON
+   
+If not using`-DCMAKE_INSTALL_PREFIX:PATH`, the library files will be installed under `/usr/lib/` by default which may requires privilege.
+    
+Windows Build and Install ColPack Instruction
+-------------------------------------------------------
+You can build ColPack's static library on Windows using Visual Studio 
+(tested with Visual Studio 2015) and CMake. Note, however, that you are not
+able to use OpenMP (Visual Studio supports only OpenMP 2.0), and cannot
+compile the ColPack executable (it depends on the POSIX getopt.h).
+
+If you are using CMake 3.4 or greater, you can build and use ColPack's
+shared library. If you have an older CMake, we still build the shared
+library, but you will not be able to use it because none of the symbols will
+be exported (Visual Studio will not generate a .lib file).
+
+On Windows, the examples link to the static library instead of the shared
+library.
+
+Unlike on UNIX, the static library is named ColPack_static (ColPack_static.lib)
+to avoid a name conflict with the shared library's ColPack.lib.
+
+Finally, some of the examples do not compile, seemingly because their
+filenames are too long.
+
+
+MAC OS Build and Install ColPack Instructions
+---------------------------------------------
+To install ColPack on Mac, you first need to install _Apple Xcode_ and _automake_. Since (it is well known that) Mac's default compiler clang doesn't support OpenMP well, you need either install _OpenMP_ and _gcc_ compiler or disable _OpenMP_ by `--disable-openmp` .(It's a well known problem, MAC's default compiler clang doesn't support OpenMP well.) 
+
+    cd   
+    git clone https://github.com/CSCsw/ColPack.git  #Download ColPack
+    cd ColPack             # ColPack Root Directory
+    cd build/automake
+    autoreconf -vif  
+    mkdir mywork
+    cd mywork
+    fullpath=$(pwd)        # modify fullpath to your destination folder if need
+    ./configure --prefix=${fullpath} --disable-openmp
+    make -j 4              # Where "4" is the number of cores on your machine
+    make install           # install lib and include/ColPack to destination  
+
+
+Another recommend altinative way is to install an Ubuntu system on your MAC with *VirtualBox* (or any other virtual machine software), then install ColPack on your virtual machines.
+    
+&nbsp;   
+    
+After the Build, Use ColPack as Installed Library
+-------------------------------------------------
+After the build, we have already generate an shared library under the `$fullpath` directory, and an executable file 'ColPack' under the colpack root directory. And you can use it.
+However if you want to write your own code and use ColPack as an shared library. Then follow the following ways:
+* export library's path to `LD_LIBRARY_PATH`
+* create your own code. 
+* include the relative ColPack header files within your code. `#include "ColPackHeaders.h"`
+* added `-ldl path/to/installed/library` and `-I /path/to/installed/include` to the compiler
+* compile the code
+
+We provide a template codes in `Example_Use_Library`
+
+&nbsp;   
+&nbsp;   
+&nbsp;   
+
+USAGE
+=====
+
+After building (or compile), you can run the following commands from where the executable file `ColPack` generated (ColPack root directory if using autotools, from the cmake directory if using CMake, or current directory if directly compile):
+
+	$./ColPack -f <graph_file_name> -o <ordering> -m <methods> [-v] ...
+
+### DISPLAY HELP 
+	$./ColPack
+
+### OPTIONs 
+		
+	<gfile_name>:  Input file name
+	<ordering>  :  LARGEST_FIRST
+	               SMALLEST_LAST,
+	               DYNAMIC_LARGEST_FIRST,
+	               INCIDENCE_DEGREE,
+	               NATURAL,
+	               RANDOM,
+		       ...
+	<methods>   :  DISTANCE_ONE
+	               ACYCLIC
+	               ACYCLIC_FOR_INDIRECT_RECOVERY
+	               STAR
+	               RESTRICTED_STAR
+	               DISTANCE_TWO
+	               --------------------
+	               IMPLICIT_COVERING__STAR_BICOLORING
+	               EXPLICIT_COVERING__STAR_BICOLORING
+	               EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING
+	               IMPLICIT_COVERING__GREEDY_STAR_BICOLORING
+	               --------------------
+	               COLUMN_PARTIAL_DISTANCE_TWO
+	               ROW_PARTIAL_DISTANCE_TWO
+		       --------------------
+		       D1_OMP_GMMP
+		       D1_OMP_GM3P
+		       D1_OMP_GMMP_LOLF
+		       D1_OMP_GM3P_LOLF
+		       D1_OMP_...
+		       ...
+		       --------------------
+		       D2_OMP_GMMP
+		       D2_OMP_GM3P
+		       D2_OMP_GMMP_LOLF
+		       D2_OMP_GM3P_LOLF
+		       --------------------
+		       PD2_OMP_GMMP
+		       PD2_OMP_GM3P
+		       PD2_OMP_GMMP_LOLF
+		       PD2_OMP_GM3P_LOLF
+		       ...
+		       
+	-v          :  # verbose for debug infomation
+	-fmt        :  MM/SQRT  # only used by Partial Distance Two Parallel graph coloring. SQRT will read sqrt of grahp.
+	-low        :  # only used by Partial Distance Two Parallel graph coloring. The lower bound of coloring information will be displayed.
+### EXAMPLES:
+	
+	./ColPack -f ./Graphs/bcsstk01.mtx -o LARGEST_FIRST -m DISTANCE_ONE -v
+	./ColPack -f ./Graphs/bcsstk01.mtx -o SMALLEST_LAST -m ACYCLIC -v
+	./ColPack -f ./Graphs/bcsstk01.mtx -o DYNAMIC_LARGEST_FIRST -m DISTANCE_ONE_OMP -v
+	./ColPack -f ./Graphs/bcsstk01.mtx -o RANDOM -m D1_OMP_GMMP D2_OMP_GMMP -nT 1 2 4 -v
+	./ColPack -f ./Graphs/bcsstk01.mtx -o RANDOM -m PD2_OMP_GMMP PD2_OMP_GMMP_LOLF -nT 1 2 4 -v
+	
+	
+### EXAMPLE OUTPUT
+
+	ReadMatrixMarketAdjacencyGraph
+	Found file Graphs/bcsstk01.mtx
+	Graph of Market Market type: [matrix coordinate real symmetric]
+			Graph structure and VALUES will be read
+
+	#DISTANCE_ONE Result: 
+	6  : (NATURAL)
+	6  : (LARGEST_FIRST)
+	6  : (DYNAMIC_LARGEST_FIRST)
+	6  : (SMALLEST_LAST)
+	6  : (INCIDENCE_DEGREE)
+	6  : (RANDOM)
+
+	#ACYCLIC Result: 
+	8  : (NATURAL)
+	8  : (LARGEST_FIRST)
+	8  : (DYNAMIC_LARGEST_FIRST)
+	8  : (SMALLEST_LAST)
+	8  : (INCIDENCE_DEGREE)
+	8  : (RANDOM)
+
+	#ACYCLIC_FOR_INDIRECT_RECOVERY Result: 
+	8  : (NATURAL)
+	8  : (LARGEST_FIRST)
+	8  : (DYNAMIC_LARGEST_FIRST)
+	8  : (SMALLEST_LAST)
+	8  : (INCIDENCE_DEGREE)
+	8  : (RANDOM)
+
+	#STAR Result: 
+	12  : (NATURAL)
+	12  : (LARGEST_FIRST)
+	12  : (DYNAMIC_LARGEST_FIRST)
+	12  : (SMALLEST_LAST)
+	12  : (INCIDENCE_DEGREE)
+	12  : (RANDOM)
+
+	#RESTRICTED_STAR Result: 
+	15  : (NATURAL)
+	15  : (LARGEST_FIRST)
+	15  : (DYNAMIC_LARGEST_FIRST)
+	15  : (SMALLEST_LAST)
+	15  : (INCIDENCE_DEGREE)
+	15  : (RANDOM)
+
+	#DISTANCE_TWO Result: 
+	15  : (NATURAL)
+	15  : (LARGEST_FIRST)
+	15  : (DYNAMIC_LARGEST_FIRST)
+	15  : (SMALLEST_LAST)
+	15  : (INCIDENCE_DEGREE)
+	15  : (RANDOM)
+
+
+
+&nbsp;  
+&nbsp;  
+&nbsp;  
+
+The best source for citing this work
+====================================
+Assefaw H. Gebremedhin, Duc Nguyen, Mostofa Ali Patwary, and Alex Pothen, _[ColPack: Graph coloring software for derivative computation and beyond](http://dl.acm.org/citation.cfm?id=2513110&CFID=492318621&CFTOKEN=12698034)_, ACM Transactions on Mathematical Software, 40 (1), 30 pp., 2013.
+
--- /dev/null
+++ colpack-1.0.10/build/automake/Makefile.am
@@ -0,0 +1,160 @@
+# Makefile.am - an input file to automake that specifies a projects build requirements: what needs to be built, and where it goes when installed.
+
+ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
+COLPACK_COMMON_FLAGS = $(EXTRA_FLAGS)  -O3
+COLPACK_ROOT_DIR = ../..
+#${top_srcdir}/../..
+
+AM_CPPFLAGS =  $(COLPACK_COMMON_FLAGS) \
+		-I../../inc \
+		-I../../src/Utilities \
+		-I../../src/BipartiteGraphPartialColoring \
+		-I../../src/BipartiteGraphBicoloring \
+		-I../../src/GeneralGraphColoring \
+		-I../../src/SMPGC \
+		-I../../src/PartialD2SMPGC \
+		-I../../src/Recovery
+AM_LDFLAGS = $(COLPACK_COMMON_FLAGS)
+AM_CPPFLAGS += -DTOP_DIR='"$(abs_top_srcdir)/../.."'
+
+AM_CXXFLAGS = -std=c++11
+if ENABLE_OPENMP
+AM_CXXFLAGS += -fopenmp
+endif
+
+LDADD = libColPack.la
+AM_DEFAULT_SOURCE_EXT = .cpp
+
+noinst_PROGRAMS = ColPack
+lib_LTLIBRARIES = libColPack.la
+pkginclude_HEADERS = \
+			../../src/Utilities/CoutLock.h \
+			../../src/Utilities/command_line_parameter_processor.h  \
+			../../src/Utilities/File.h \
+			../../src/Utilities/DisjointSets.h \
+			../../src/Utilities/current_time.h \
+			../../src/Utilities/mmio.h \
+			../../src/Utilities/Pause.h  \
+			../../src/Utilities/MatrixDeallocation.h \
+			../../src/Utilities/Timer.h  \
+			../../src/Utilities/StringTokenizer.h \
+			../../src/Utilities/extra.h \
+			../../src/Utilities/stat.h  \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoringInterface.h \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialOrdering.h \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoring.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphBicoloringInterface.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphVertexCover.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphOrdering.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphInputOutput.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphBicoloring.h \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphCore.h \
+			../../src/GeneralGraphColoring/GraphColoringInterface.h \
+			../../src/GeneralGraphColoring/GraphInputOutput.h \
+			../../src/GeneralGraphColoring/GraphColoring.h \
+			../../src/GeneralGraphColoring/GraphOrdering.h \
+			../../src/GeneralGraphColoring/GraphCore.h \
+			../../src/Recovery/JacobianRecovery2D.h \
+			../../src/Recovery/JacobianRecovery1D.h \
+			../../src/Recovery/HessianRecovery.h \
+			../../src/Recovery/RecoveryCore.h \
+			../../inc/Definitions.h \
+			../../inc/ColPackHeaders.h
+
+pkginclude_HEADERS += \
+			../../src/SMPGC/SMPGC.h \
+			../../src/SMPGC/SMPGCGraph.h \
+			../../src/SMPGC/SMPGCOrdering.h \
+			../../src/SMPGC/SMPGCColoring.h
+
+#pkginclude_HEADERS +=   ../../src/PartialD2SMPGC/PD2SMPGC.h \
+#			../../src/PartialD2SMPGC/PD2SMPGCOrdering.h \
+#			../../src/PartialD2SMPGC/PD2SMPGCColoring.h
+
+
+libColPack_la_SOURCES = \
+			../../src/Utilities/CoutLock.cpp \
+			../../src/Utilities/command_line_parameter_processor.cpp \
+			../../src/Utilities/File.cpp\
+			../../src/Utilities/DisjointSets.cpp \
+			../../src/Utilities/current_time.cpp \
+			../../src/Utilities/mmio.cpp \
+			../../src/Utilities/Pause.cpp \
+			../../src/Utilities/MatrixDeallocation.cpp \
+			../../src/Utilities/Timer.cpp \
+			../../src/Utilities/StringTokenizer.cpp \
+			../../src/Utilities/extra.cpp \
+			../../src/Utilities/stat.cpp \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialOrdering.cpp \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoring.cpp \
+			../../src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoringInterface.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphInputOutput.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphBicoloring.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphVertexCover.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphCore.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphBicoloringInterface.cpp \
+			../../src/BipartiteGraphBicoloring/BipartiteGraphOrdering.cpp \
+			../../src/GeneralGraphColoring/GraphCore.cpp \
+			../../src/GeneralGraphColoring/GraphColoringInterface.cpp \
+			../../src/GeneralGraphColoring/GraphInputOutput.cpp \
+			../../src/GeneralGraphColoring/GraphOrdering.cpp \
+			../../src/GeneralGraphColoring/GraphColoring.cpp \
+			../../src/Recovery/JacobianRecovery1D.cpp \
+			../../src/Recovery/RecoveryCore.cpp \
+			../../src/Recovery/JacobianRecovery2D.cpp \
+			../../src/Recovery/HessianRecovery.cpp
+
+libColPack_la_SOURCES += ../../src/SMPGC/SMPGCColoring.cpp \
+			../../src/SMPGC/SMPGCColoringD1.cpp \
+			../../src/SMPGC/SMPGCColoringD2.cpp \
+			../../src/SMPGC/SMPGCColoringHybrid.cpp \
+			../../src/SMPGC/SMPGC.cpp \
+			../../src/SMPGC/SMPGCGraph.cpp \
+			../../src/SMPGC/SMPGCOrdering.cpp
+
+#libColPack_la_SOURCES += ../../src/PartialD2SMPGC/PD2SMPGCColoring.cpp \
+#			 ../../src/PartialD2SMPGC/PD2SMPGCColoringDev.cpp \
+#			 ../../src/PartialD2SMPGC/PD2SMPGC.cpp \
+#			 ../../src/PartialD2SMPGC/PD2SMPGCOrdering.cpp
+
+
+ColPack_SOURCES = \
+			../../Examples/ColPackAll/Main.cpp
+
+
+
+examplesdir = ${prefix}/examples
+basic_examplesdir = ${examplesdir}/Basic
+basic_examples_PROGRAMS = \
+			../../Examples/SampleDrivers/Basic/color_bipartite_graph_using_BipartiteGraphBicoloringInterface \
+			../../Examples/SampleDrivers/Basic/color_bipartite_graph_using_BipartiteGraphPartialColoringInterface \
+			../../Examples/SampleDrivers/Basic/color_graph_using_GraphColoringInterface \
+			../../Examples/SampleDrivers/Basic/Generate_seed_matrix_for_Hessian \
+			../../Examples/SampleDrivers/Basic/Generate_seed_matrix_for_Jacobian
+
+TESTS = ${basic_examples_PROGRAMS}
+
+if EXAMPLES
+ADIC_examplesdir = ${examplesdir}/Matrix_Compression_and_Recovery/ADIC
+ADIC_examples_PROGRAMS = \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADIC/01_Column_compression_and_recovery_for_Jacobian_return_ADIC_Format
+
+ADOLC_examplesdir = ${examplesdir}/Matrix_Compression_and_Recovery/ADOL-C
+ADOLC_examples_PROGRAMS = \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/01_Column_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/02_Column_compression_and_recovery_for_Jacobian_return_Coordinate_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/03_Column_compression_and_recovery_for_Jacobian_return_Sparse_Solvers_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/04_Row_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/05_Compression_and_direct_recovery_for_Hessian_return_Row_Compressed_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/06_Compression_and_direct_recovery_for_Hessian_return_Coordinate_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/07_Compression_and_direct_recovery_for_Hessian_return_Sparse_Solvers_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/08_Compression_and_indirect_recovery_for_Hessian_return_Row_Compressed_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/09_Bidirectional_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/10_Column_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format__unmanaged_usermem \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/11_Compression_and_direct_recovery_for_Hessian_return_Row_Compressed_Format__unmanaged_usermem \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/12_Bidirectional_compression_and_recovery_for_Jacobian_return_Row_Compressed_Format__unmanaged_usermem
+
+CSR_examplesdir = ${examplesdir}/Matrix_Compression_and_Recovery/CSR
+CSR_examples_PROGRAMS = \
+			../../Examples/SampleDrivers/Matrix_Compression_and_Recovery/CSR_input/01_Column_compression_and_recovery_for_Jacobian_CSR_input_return_Row_Compressed_Format
+endif
--- /dev/null
+++ colpack-1.0.10/build/automake/configure.ac
@@ -0,0 +1,85 @@
+/************************************************************************************
+    Copyright (C) 2005-2008 Assefaw H. Gebremedhin, Arijit Tarafdar, Duc Nguyen,
+    Alex Pothen
+
+    This file is part of ColPack.
+
+    ColPack is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.GraphColoring::GraphColoring()
+
+    ColPack is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with ColPack.  If not, see <http://www.gnu.org/licenses/>.
+************************************************************************************/
+
+define([COLPACK_VER], [1])
+define([COLPACK_SUB], [0])
+define([COLPACK_LVL], [10])
+define([COLPACK_ROOT_DIR],[../..])
+
+AC_INIT([ColPack],[COLPACK_VER.COLPACK_SUB.COLPACK_LVL],[assefaw@eecs.wsu.edu],[ColPack],[http://cscapes.cs.purdue.edu/coloringpage/])
+AC_PREREQ([2.57])
+: ${CXXFLAGS=-O3}
+: ${CFLAGS=-O3}
+AC_CONFIG_SRCDIR([../../inc/ColPackHeaders.h])
+AC_CONFIG_MACRO_DIR([m4])
+AM_INIT_AUTOMAKE([foreign 1.10 no-define subdir-objects -Wall])
+AM_SILENT_RULES([yes])
+AC_CONFIG_HEADERS(config.h)
+AC_PROG_CXX
+AX_CXXFLAGS_WARN_ALL
+AC_CONFIG_FILES(Makefile)
+AM_PROG_AR
+LT_INIT
+
+AC_MSG_CHECKING([Build examples])
+AC_ARG_ENABLE([examples],
+     [AS_HELP_STRING([--enable-examples],[Build examples])],
+     [AS_CASE([${enableval}],
+       [yes],[examples=true],
+       [no],[examples=false],
+       [AC_MSG_ERROR([bad value ${enableval} for --enable-examples])])],
+     [examples=false])
+AM_CONDITIONAL([EXAMPLES], [test x$examples = xtrue])
+AC_MSG_RESULT([$examples])
+
+AC_MSG_CHECKING([OpenMP])
+AC_ARG_ENABLE([openmp],
+     [AS_HELP_STRING([--disable-openmp],[Disable OpenMP])],
+     [AS_CASE([${enableval}],
+       [yes],[openmp=true],
+       [no],[openmp=false],
+       [AC_MSG_ERROR([bad value ${enableval} for --disable-openmp])])],
+     [openmp=true])
+AM_CONDITIONAL([ENABLE_OPENMP], [test x$openmp = xtrue])
+AC_MSG_RESULT([$openmp])
+
+AC_OUTPUT
+
+# echo configuration
+AS_ECHO([""])
+AS_ECHO(["-----------------------------------------------------------------------------"])
+AS_ECHO(["Configuration:"])
+AS_ECHO([""])
+AS_ECHO(["  C compiler:                       ${CC}"])
+AS_ECHO(["  C++ compiler:                     ${CXX}"])
+AS_ECHO(["  Linker:                           ${LD}"])
+AS_ECHO(["  Automake Source code location:    `pwd`"])
+AS_ECHO(["  Install path:                     ${prefix}"])
+AS_ECHO([""])
+AS_ECHO(["  CFLAGS:                           ${CFLAGS}"])
+AS_ECHO(["  CXXFLAGS:                         ${CXXFLAGS}"])
+AS_ECHO([""])
+AS_ECHO(["  Use OpenMP:                       ${openmp}"])
+AS_ECHO(["  Build examples:                   ${examples}"])
+AS_ECHO([""])
+AS_ECHO(["  cx"])
+AS_ECHO(["  top_srcdir                        ${top_srcdir}"])
+AS_ECHO(["-----------------------------------------------------------------------------"])
+AS_ECHO([""])
--- /dev/null
+++ colpack-1.0.10/build/cmake/CMakeLists.txt
@@ -0,0 +1,276 @@
+cmake_minimum_required(VERSION 3.1.3)
+project(ColPack)
+
+# Set the version number to the *next* release (not to the prevoius release).
+set(COLPACK_VERSION 1.0.11)
+set(COLPACK_ROOT_DIR "../..")   # modify as needed 
+# CMake support was added by chrisdembia in 2017 to support building ColPack on
+# Windows with Visual Studio and to supplement autotools. Various parts of the
+# code base, such as the comments in the SampleDrivers files, still expect use
+# of autotools.
+# The layout of the installation generated by CMake is fairly similar to that
+# created by autotools, except that
+#    - we do not install a libtool library (libColPack.la),
+#    - we install CMake config files (ColPackConfig.cmake) to support use of
+#      ColPack by downstream projects, and
+#    - the logic for determining the name of the lib directory is based on
+#      CMake's GNUInstallDirs module.
+# The Basic examples are always built and installed, and are used as tests
+# via CTest. The non-Basic tests are built and installed if ENABLE_EXAMPLES is
+# ON. The only example that we do not compile is SMB.
+#
+# When using Visual Studio, we cannot use OpenMP or build the ColPack executable,
+# and we can only make use of the shared library if using CMake 3.4 or greater.
+# Also, the examples are linked to the static library rather than to the shared
+# library.
+
+# User options.
+# -------------
+option(ENABLE_EXAMPLES
+    "Build the examples in SampleDrivers/Matrix_Compression_and_Recovery." OFF)
+    option(ENABLE_OPENMP "Enable OpenMP." ON)
+set (CMAKE_CXX_STANDARD 11)
+
+# Configuring variables, etc.
+# ---------------------------
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+    # MSVC and Xcode are mult-config generators that use
+    # CMAKE_CONFIGURATION_TYPES; other generators (Makefiles) use
+    # CMAKE_BUILD_TYPE.
+    # By default, compile with optimizations and without debug symbols.
+    set(CMAKE_BUILD_TYPE Release CACHE STRING
+        "Choose the type of build, e.g., optimizaiton level, debug symbols."
+        FORCE)
+    # Show a list of options in the CMake-GUI or ccmake (curses interface).
+    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
+        "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+endif()
+
+set(ColPack_lib_to_use ColPack_shared)  # ColPack_lib_to_use is either ColPack_shared or ColPack_static
+
+if(WIN32)
+    # Since we do not use __declspec(dllexport) etc, the shared library
+    # does not export symbols and cannot be used in general. Use the the static
+    # library for the examples.
+    set(ColPack_lib_to_use ColPack_static)
+    if(${CMAKE_VERSION} VERSION_LESS 3.4)
+        message(STATUS "Cannot use ColPack's shared library on Windows if using CMake older than 3.4 (because no symbols are exported).")
+    else()
+        # CMake can export symbols for us, allowing use of the shared library.
+        set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+    endif()
+endif()
+
+if(ENABLE_OPENMP)
+    find_package(OpenMP REQUIRED)
+    if(MSVC)
+        message(WARNING "ColPack requires a version of OpenMP greater than what Visual Studio provides.")
+    endif()
+endif()
+
+# Define variables to use for organizing the installation.
+include(GNUInstallDirs) 
+
+if(WIN32)
+    set(COLPACK_INSTALL_CMAKEDIR       ColPack_libs)
+    set(COLPACK_INSTALL_EXAMPLESBINDIR ColPack_examples)
+else()
+    set(COLPACK_INSTALL_CMAKEDIR       ${CMAKE_INSTALL_LIBDIR}/ColPack_libs)
+    # To follow the UNIX Filsystem Hierarchy Standard, we should install
+    # examples somewhere else:
+    set(COLPACK_INSTALL_EXAMPLESBINDIR ${CMAKE_INSTALL_LIBDIR}/ColPack_examples)
+endif()
+
+# Lists of the source files.
+# -------------------------
+file(GLOB HEADERS
+    ${COLPACK_ROOT_DIR}/inc/ColPackHeaders.h
+    ${COLPACK_ROOT_DIR}/inc/Definitions.h
+    ${COLPACK_ROOT_DIR}/src/Utilities/*.h
+    ${COLPACK_ROOT_DIR}/src/BipartiteGraphBicoloring/*.h
+    ${COLPACK_ROOT_DIR}/src/BipartiteGraphPartialColoring/*.h
+    ${COLPACK_ROOT_DIR}/src/GeneralGraphColoring/*.h
+    ${COLPACK_ROOT_DIR}/src/Recovery/*.h
+    ${COLPACK_ROOT_DIR}/src/SMPGC/*.h)
+    #${COLPACK_ROOT_DIR}/src/PartialD2SMPGC/*.h)
+file(GLOB SOURCES
+    ${COLPACK_ROOT_DIR}/src/Utilities/*.cpp
+    ${COLPACK_ROOT_DIR}/src/BipartiteGraphBicoloring/*.cpp
+    ${COLPACK_ROOT_DIR}/src/BipartiteGraphPartialColoring/*.cpp
+    ${COLPACK_ROOT_DIR}/src/GeneralGraphColoring/*.cpp
+    ${COLPACK_ROOT_DIR}/src/Recovery/*.h
+    ${COLPACK_ROOT_DIR}/src/SMPGC/*.cpp)
+    #${COLPACK_ROOT_DIR}/src/PartialD2SMPGC/*.cpp)
+
+
+# Use these include directories when building the ColPack library.
+set(COLPACK_SOURCE_INCLUDE_DIRS
+    "${COLPACK_ROOT_DIR}/inc"
+    "${COLPACK_ROOT_DIR}/src/Utilities"
+    "${COLPACK_ROOT_DIR}/src/BipartiteGraphPartialColoring"
+    "${COLPACK_ROOT_DIR}/src/BipartiteGraphBicoloring"
+    "${COLPACK_ROOT_DIR}/src/GeneralGraphColoring"
+    "${COLPACK_ROOT_DIR}/src/SMPGC"
+    "${COLPACK_ROOT_DIR}/src/Recovery")
+
+
+
+# Static library.
+# ---------------
+add_library(ColPack_static STATIC ${HEADERS} ${SOURCES})
+if(NOT WIN32)
+    # On Windows, the static and shared libraries can't have the same
+    # name (because both have .lib files that will conflict).
+    set_target_properties(ColPack_static PROPERTIES OUTPUT_NAME ColPack)
+endif()
+
+target_include_directories(ColPack_static PRIVATE
+    ${COLPACK_SOURCE_INCLUDE_DIRS})
+# For clients of the ColPack target within this project (e.g. examples).
+# (Must use quotes because the variable is a list of paths.)
+#target_include_directories(ColPack_static INTERFACE
+#    "$<BUILD_INTERFACE:${COLPACK_SOURCE_INCLUDE_DIRS}>")
+# For clients of an installation of ColPack.
+target_include_directories(ColPack_static INTERFACE
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+
+if(ENABLE_OPENMP)
+    set_target_properties(ColPack_static PROPERTIES COMPILE_FLAGS
+        ${OpenMP_CXX_FLAGS})
+endif()
+
+# "EXPORT" helps with creating a ColPackConfig.cmake file to place in the
+# installation, to help downstream projects use ColPack.
+install(TARGETS ColPack_static EXPORT ColPackTargets
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/archive
+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/library
+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/runtime)
+
+
+# Shared library.
+# ---------------
+add_library(ColPack_shared SHARED ${HEADERS} ${SOURCES})
+set_target_properties(ColPack_shared PROPERTIES
+    OUTPUT_NAME ColPack
+    SOVERSION 0)
+
+# Use these include directories when building the ColPack library.
+target_include_directories(ColPack_shared PRIVATE
+    ${COLPACK_SOURCE_INCLUDE_DIRS})
+# For clients of the ColPack target within this project (e.g. examples).
+#target_include_directories(ColPack_shared INTERFACE
+#    "$<BUILD_INTERFACE:${COLPACK_SOURCE_INCLUDE_DIRS}>")
+# For clients of an installation of ColPack.
+target_include_directories(ColPack_shared INTERFACE
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+
+if(ENABLE_OPENMP)
+    set_target_properties(ColPack_shared PROPERTIES COMPILE_FLAGS
+        ${OpenMP_CXX_FLAGS})
+    target_link_libraries(ColPack_shared PRIVATE ${OpenMP_CXX_FLAGS})
+endif()
+
+install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ColPack_headers)
+
+install(TARGETS ColPack_shared EXPORT ColPackTargets
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/shared_archive
+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/shared_library
+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/shared_runtime)
+
+
+
+# -------------------
+# The ColPack executable depends on getopt.h, which is POSIX
+# and not readily available when using Visual Studio.
+# -------------------
+# xin cheng: on Oct 2018. It seems getopt.h havn't been used. So the following check getopt
+#            could be removed. For safety, still pop up a message.
+find_path(HAS_GETOPT getopt.h)
+if(NOT HAS_GETOPT)
+    message(STATUS "Cannot find getopt.h; ColPack may or may not build.")
+endif()
+
+# ColPack executable.
+add_executable(ColPack "${COLPACK_ROOT_DIR}/Examples/ColPackAll/Main.cpp")
+target_link_libraries(ColPack ${ColPack_lib_to_use})
+target_include_directories(ColPack PRIVATE ${COLPACK_SOURCE_INCLUDE_DIRS})
+
+# To facilitate running the ColPack executable from the build directory.
+file(COPY "${COLPACK_ROOT_DIR}/Graphs" DESTINATION "${CMAKE_BINARY_DIR}")
+
+# Examples.
+# ---------
+# enable_testing()
+# The behavior here is different from autotools, because ENABLE_EXAMPLES
+# also affects the Basic examples.
+# First, gather up all the example files.
+# To replicate the behavior of autotools, we build and install the Basic
+# examples regardless of the setting for ENABLE_EXAMPLES.
+# First, gather up all the example files.
+file(GLOB SAMPLE_DRIVERS_BASIC RELATIVE "${COLPACK_ROOT_DIR}/Examples/SampleDrivers"
+    ${COLPACK_ROOT_DIR}/Examples/SampleDrivers/Basic/*.cpp)
+set(EXAMPLES ${SAMPLE_DRIVERS_BASIC})
+if(ENABLE_EXAMPLES)
+    file(GLOB SAMPLE_DRIVERS_BASIC RELATIVE "${CMAKE_SOURCE_DIR}/SampleDrivers"
+        SampleDrivers/Basic/*.cpp)
+    set(EXAMPLES ${SAMPLE_DRIVERS_BASIC})
+    file(GLOB SAMPLE_DRIVERS_MATRIX_COMPRESSION_AND_RECOVERY
+        RELATIVE "${COLPACK_ROOT_DIR}/Examples/SampleDrivers"
+        ${COLPACK_ROOT_DIR}/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADIC/*.cpp
+        ${COLPACK_ROOT_DIR}/Examples/SampleDrivers/Matrix_Compression_and_Recovery/ADOL-C/*.cpp
+        ${COLPACK_ROOT_DIR}/Examples/SampleDrivers/Matrix_Compression_and_Recovery/CSR_input/*.cpp
+        # Leaving out SMB because that depends on ADOL-C.
+        )
+    list(APPEND EXAMPLES ${SAMPLE_DRIVERS_MATRIX_COMPRESSION_AND_RECOVERY})
+endif()
+
+# Now create targets for each example.
+foreach(example_cpp ${EXAMPLES})
+    # Get the file name without extension ("_WE"), and store it in `example`.
+    get_filename_component(example ${example_cpp} NAME_WE)
+    # Get a directory relative to the SampleDrivers directory.
+    get_filename_component(example_rel_dir ${example_cpp} DIRECTORY
+        BASE_DIR SampleDrivers)
+    add_executable(${example} Examples/SampleDrivers/${example_cpp})
+    target_link_libraries(${example} ${ColPack_lib_to_use})
+#<<<<<<< master
+#    # Autools installs the examples in CSR_input into a dir. named CSR.
+#=======
+    # Autotools installs the examples in CSR_input into a dir. named CSR.
+#>>>>>>> master
+    string(REPLACE "CSR_input" "CSR" example_rel_dir ${example_rel_dir})
+    install(TARGETS ${example} DESTINATION
+        ${COLPACK_INSTALL_EXAMPLESBINDIR}/${example_rel_dir})
+    # Allow running the basic examples as tests.
+    if(${example_rel_dir} STREQUAL Basic)
+        add_test(${example} ${example})
+    endif()
+endforeach()
+
+# Install and support for downstream projects.
+# --------------------------------------------
+# Consider installing Graphs:
+# install(DIRECTORY Graphs DESTINATION ${CMAKE_INSTALL_SHAREDIR})
+
+# Create files that define the ColPack targets to import into other projects.
+# https://cmake.org/cmake/help/v3.1/manual/cmake-packages.7.html
+install(EXPORT ColPackTargets DESTINATION ${COLPACK_INSTALL_CMAKEDIR})
+
+# CMake Config file., and version file, which CMake will look for when
+# downstream projects use find_package(ColPack).
+include(CMakePackageConfigHelpers)
+# The ConfigVersion file determines if an installed copy of ColPack is
+# compatible with a user's requested version for ColPack.
+write_basic_package_version_file(
+    "${CMAKE_BINARY_DIR}/ColPackConfigVersion.cmake"
+    VERSION ${COLPACK_VERSION}
+    COMPATIBILITY AnyNewerVersion)
+configure_package_config_file(ColPackConfig.cmake.in
+    "${CMAKE_BINARY_DIR}/ColPackConfigToInstall.cmake"
+    INSTALL_DESTINATION ${COLPACK_INSTALL_CMAKEDIR}
+    PATH_VARS CMAKE_INSTALL_PREFIX)
+install(FILES "${CMAKE_BINARY_DIR}/ColPackConfigToInstall.cmake"
+    DESTINATION ${COLPACK_INSTALL_CMAKEDIR}
+    RENAME ColPackConfig.cmake)
+install(FILES "${CMAKE_BINARY_DIR}/ColPackConfigVersion.cmake"
+    DESTINATION ${COLPACK_INSTALL_CMAKEDIR})
--- /dev/null
+++ colpack-1.0.10/build/cmake/ColPackConfig.cmake.in
@@ -0,0 +1,13 @@
+# This file is configured by CMake and installed into ColPack's installation.
+# It is used by downstream (client) projects when they use
+# find_package(ColPack) in their CMakeLists.txt. We define variables that
+# may be useful to users and include the file that defines ColPack's targets.
+# CMake will replace all variables surrounded with "at" symbols by their value.
+#
+# For downstream users: the available targets are:
+#  - ColPack_shared (for a shared library)
+#  - ColPack_static (for a static library)
+@PACKAGE_INIT@
+set(ColPack_VERSION @COLPACK_VERSION@)
+set_and_check(ColPack_ROOT_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@")
+include("${CMAKE_CURRENT_LIST_DIR}/ColPackTargets.cmake")
--- /dev/null
+++ colpack-1.0.10/goingToBeRemoved/COPYING
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null
+++ colpack-1.0.10/goingToBeRemoved/COPYING.LESSER
@@ -0,0 +1,165 @@
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
--- /dev/null
+++ colpack-1.0.10/goingToBeRemoved/autoconf.sh
@@ -0,0 +1,38 @@
+#! /bin/sh -ev
+
+autoreconf --force --install
+
+./configure --prefix=$(pwd)/build --exec-prefix=$(pwd)/build  --enable-examples
+
+if [ -z "$NCPU" ]; then
+    NCPU=$(lscpu --parse | egrep -v '^#' | wc -l || echo 1)
+fi
+echo "NCPU=${NCPU}"
+if [ -z "$MAKEFLAGS" ]; then
+    export MAKEFLAGS=-j${NCPU}
+fi
+echo "MAKEFLAGS=${MAKEFLAGS}"
+
+make clean
+
+make EXTRA_FLAGS="-O5 -DCOLPACK_DEBUG_LEVEL=0"
+
+exit 0
+
+# Alternative configuration:
+
+# ./configure --prefix=$(pwd)/build --exec-prefix=$(pwd)/build  --enable-examples --enable-openmp
+
+# Misc commentary.
+
+# The sh -e option exits on failure, avoiding the need to guard commands.
+
+# The sh -v option echos commands before executing them, avoiding the
+# need to do so manually.
+
+# I'm dubious about
+#  (a) invoking "make" here at all,
+#  (b) using make option -j instead of leaving that to the user, via ${MAKEFLAGS},
+#  (c) using make option -j instead of -jX where X = #CPUs.
+# The "if" stanza addresses (c), and partially addresses (b) by avoiding overriding
+# or augmenting ${MAKEFLAGS} if it is already set.
--- /dev/null
+++ colpack-1.0.10/goingToBeRemoved/main_page.txt
@@ -0,0 +1,60 @@
+/*! \mainpage ColPack
+ *
+ * <CENTER><H2>Assefaw H. Gebremedhin, Duc Nguyen, Arijit Tarafdar, Md. Mostofa Ali Patwary, Alex Pothen</H2></CENTER>
+ *
+ * \section INTRODUCTION
+ *
+ * ColPack is a package comprising of implementation of algorithms for specialized vertex coloring problems
+ * that arise in sparse derivative computation. It is written in an object-oriented fashion heavily using
+ * the Standard Template Library (STL). It is designed to be simple, modular, extenable and efficient.
+ *
+ * \section SAMPLE_CODES SAMPLE CODES
+ *
+ * Sample codes (with comments) that quickly illustrate how ColPack interface functions are used
+ * are available in the directory SampleDriver.<BR>
+ * Click on <a href="files.html">"Files"</a> tab and then pick the files you want to look at and click on the [code] link.<BR>
+ * <BR>
+ * To compile all sample drivers on UNIX: make test<BR>
+ * To run all sample drivers on UNIX: make run-test<BR>
+ * Notes:<BR>
+ * - The make command could also be run with parameters: "make EXECUTABLE=(desired name. Optional, default name is ColPack) INSTALL_DIR=(directory where the compiled program will be placed. Optional, default dir is ./)".
+ * - On multi-processors computer, add flag "-j" for faster result.
+ *
+ * \section DOWNLOAD
+ *
+ * <a href="http://www.cscapes.org/download/ColPack/"> ColPack</a><BR>
+ * <a href="http://www.cscapes.org/download/MM_Collection.zip"> Graph Collection in Matrix Market format</a><BR>
+ * <a href="http://www.cscapes.org/download/MeTiS_Collection.zip"> Graph Collection in MeTis format</a><BR>
+ * To decompress .zip files on UNIX, run "unzip (targeted .zip file)"<BR>
+ *
+ * \section CONTACT
+ *
+ * Email Assefaw Gebremedhin at agebreme [at] purdue [dot] edu or Duc Nguyen at nguyend [at] purdue [dot] edu .
+ *
+ */
+
+/** @defgroup group1 Classes for Graphs
+ Based on functionalities, the general graph coloring part of ColPack is divided into five classes -
+GraphCore, GraphInputOutput, GraphOrdering, GraphColoring and GraphColoringInterface. In the
+methods described below if no return type is specifed, it would be an int by default. Most ColPack
+methods return TRUE on success, which has an integer value of 1.
+ */
+
+/**
+ *  @defgroup group2 Classes for Bipartite Graphs
+ */
+
+/** @defgroup group21 Classes for Bipartite Graphs Partial Coloring
+ *  @ingroup group2
+ */
+
+/** @defgroup group22 Classes for Bipartite Graphs BiColoring
+ *  @ingroup group2
+ */
+
+/** @defgroup group5 Recovery Classes
+ */
+
+/** @defgroup group4 Auxiliary Classes
+ */
+
--- /dev/null
+++ colpack-1.0.10/goingToBeRemoved/previous_license_head
@@ -0,0 +1,19 @@
+/************************************************************************************
+    Copyright (C) 2005-2008 Assefaw H. Gebremedhin, Arijit Tarafdar, Duc Nguyen,
+    Alex Pothen
+
+    This file is part of ColPack.
+
+    ColPack is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    ColPack is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with ColPack.  If not, see <http://www.gnu.org/licenses/>.
+************************************************************************************/
--- /dev/null
+++ colpack-1.0.10/inc/ColPackHeaders.h
@@ -0,0 +1,84 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+/************************************************************************************/
+/*																					*/
+/*  Headers.h (Header of header files) 												*/
+/*																					*/
+/************************************************************************************/
+#ifndef HEADER_H
+#define HEADER_H
+
+#include "Definitions.h"
+
+#ifdef SYSTEM_TIME
+
+#include <sys/times.h>
+
+#else
+
+#include <ctime>
+
+#endif
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <ctime>
+#include <iomanip>
+#include <string>
+#include <cstdlib>
+#include <cstdarg>
+
+#include <list>
+#include <map>
+#include <vector>
+#include <set>
+#include <queue>
+
+#include <algorithm>
+#include <iterator>
+#include <utility>	//for pair<dataType1, dataType2>
+
+#ifdef _OPENMP
+	#include <omp.h>
+#endif
+
+#include "Pause.h"
+#include "File.h"
+#include "Timer.h"
+#include "MatrixDeallocation.h"
+#include "mmio.h"
+#include "current_time.h"
+#include "CoutLock.h"
+
+#include "StringTokenizer.h"
+#include "DisjointSets.h"
+
+#include "GraphCore.h"
+#include "GraphInputOutput.h"
+#include "GraphOrdering.h"
+#include "GraphColoring.h"
+#include "GraphColoringInterface.h"
+
+#include "BipartiteGraphCore.h"
+#include "BipartiteGraphInputOutput.h"
+#include "BipartiteGraphVertexCover.h"
+#include "BipartiteGraphPartialOrdering.h"
+#include "BipartiteGraphOrdering.h"
+#include "BipartiteGraphBicoloring.h"
+#include "BipartiteGraphPartialColoring.h"
+#include "BipartiteGraphBicoloringInterface.h"
+#include "BipartiteGraphPartialColoringInterface.h"
+
+#include "RecoveryCore.h"
+#include "HessianRecovery.h"
+#include "JacobianRecovery1D.h"
+#include "JacobianRecovery2D.h"
+
+#include "extra.h"
+
+#endif
--- /dev/null
+++ colpack-1.0.10/inc/Definitions.h
@@ -0,0 +1,101 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+/******************************************************************************/
+/*																			  */
+/*DEBUG and ERROR Counter Ranges: (OBSOLETE)											  */
+/*																			  */
+/*GraphCore									1100:1199						  */
+/*GraphInputOutput							1200:1299						  */
+/*GraphOrdering								1300:1399						  */
+/*GraphColoring								1400:1499						  */
+/*GraphColoringInterface					1500:1699						  */
+/*																			  */
+/*BipartiteGraphCore						2100:2199;3100:3199				  */
+/*BipartiteGraphInputOutput					2200:2299;3200:3299				  */
+/*BipartiteGraphPartialOrdering				2300:2399						  */
+/*BipartiteGraphPartialColoring				2400:2499						  */
+/*BipartiteGraphPartialColoringInterface	2500:2699						  */
+/*																			  */
+/*BipartiteGraphCovering					3300:3399						  */
+/*BipartiteGraphOrdering					3400:3499						  */
+/*BipartiteGraphBicoloring					3500:3599						  */
+/*BipartiteGraphBicoloringInterface			3600:3799						  */
+/*																			  */
+/*StringTokenizer							4100:4199						  */
+/*DisjointSets								4200:4299						  */
+/*Timer										4300:4399						  */
+/*																			  */
+/*HessianMatrix								5100:5199						  */
+/******************************************************************************/
+
+#ifndef DEFINITION_H
+#define DEFINITION_H
+
+#if defined (_WIN32) || defined (__WIN32) || defined (__WIN32__) || defined (WIN32) //Windows OS Predefined Macros
+#define ____WINDOWS_OS____
+#endif
+
+#define STEP_DOWN(INPUT) ((INPUT) - 1)
+#define STEP_UP(INPUT) ((INPUT) + 1)
+
+#define _INVALID -2
+#define _UNKNOWN -1
+#define _FALSE 0
+#define _TRUE 1
+
+#define _OFF 0
+#define _ON 1
+
+#define DISJOINT_SETS _TRUE
+
+#define STATISTICS _TRUE
+
+#ifndef ____WINDOWS_OS____
+/// UNIX only.  Used to measure longer execution time.
+/** Define SYSTEM_TIME to measure the execution time of a program which may run for more than 30 minutes
+(35.79 minutes or 2,147 seconds to be accurate)
+Reason: In UNIX, CLOCKS_PER_SEC is defined to be 1,000,000 (In Windows, CLOCKS_PER_SEC == 1,000).
+The # of clock-ticks is measured by using variables of type int => max value is 2,147,483,648.
+Time in seconds = # of clock-ticks / CLOCKS_PER_SEC => max Time in seconds = 2,147,483,648 / 1,000,000 ~= 2,147
+*/
+#define SYSTEM_TIME
+#else
+#undef SYSTEM_TIME
+#endif
+
+//define system-dependent directory separator
+#ifndef ____WINDOWS_OS____
+#define DIR_SEPARATOR "/"
+#else
+#define DIR_SEPARATOR "\\"
+#endif
+
+//#define DEBUG _UNKNOWN
+//#define DEBUG 5103
+
+// definition for variadic Graph...Interface()
+#define SRC_WAIT -1
+#define SRC_FILE 0
+#define SRC_MEM_ADOLC 1
+#define SRC_MEM_ADIC 2
+#define SRC_MEM_SSF 3
+#define SRC_MEM_CSR 4
+
+
+enum boolean {FALSE=0, TRUE};
+
+//enum _INPUT_FORMAT {MATRIX_MARKET, METIS, HARWELL_BOEING};
+
+//enum _VERTEX_ORDER {NATURAL, LARGEST_FIRST, DYNAMIC_LARGEST_FIRST, DISTANCE_TWO_LARGEST_FIRST, SMALLEST_LAST, DISTANCE_TWO_SMALLEST_LAST, INCIDENCE_DEGREE, DISTANCE_TWO_INCIDENCE_DEGREE};
+
+//enum _COLORING_STYLE {DISTANCE_ONE, DISTANCE_TWO, NAIVE_STAR, RESTRICTED_STAR, STAR, ACYCLIC, TRIANGULAR};
+
+//enum _BIPARTITE_VERTEX_ORDER{NATURAL, LARGEST_FIRST, SELECTIVE_LARGEST_FIRST, DYNAMIC_LARGEST_FIRST, ROW_LARGEST_FIRST, COLUMN_LARGEST_FIRST, SMALLEST_LAST, SELECTIVE_SMALLEST_LAST, ROW_SMALLEST_LAST, COLUMN_SMALLEST_LAST, INCIDENCE_DEGREE, SELECTIVE_INCIDENCE_DEGREE, ROW_INCIDENCE_DEGREE, COLUMN_INCIDENCE_DEGREE};
+
+//enum _BIPARTITE_COLORING_STYLE{ROW_PARTIAL_DISTANCE_TWO, COLUMN_PARTIAL_DISTANCE_TWO, LEFT_STAR, RIGHT_STAR, MINIMAL_COVER_STAR, MINIMAL_COVER_MODIFIED_STAR, IMPLICIT_COVER_STAR, IMPLICT_COVER_CONSERVATIVE_STAR, IMPLICIT_COVER_RESTRICTED_STAR, IMPLICIT_COVER_GREEDY_STAR, IMPLICIT_COVER_ACYCLIC};
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphBicoloring.cpp
@@ -0,0 +1,5560 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 3501
+	void BipartiteGraphBicoloring::PresetCoveredVertexColors()
+	{
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = m_i_VertexColorCount = _UNKNOWN;
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_LeftVertexColors.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		m_vi_RightVertexColors.clear();
+		m_vi_RightVertexColors.resize((unsigned) i_RightVertexCount, _FALSE);
+
+		int i_CoveredLeftVertexCount = m_vi_CoveredLeftVertices.size();
+		int i_CoveredRightVertexCount = m_vi_CoveredRightVertices.size();
+
+		for(int i=0; i<i_CoveredLeftVertexCount; i++)
+		{
+			m_vi_LeftVertexColors[m_vi_CoveredLeftVertices[i]] = _UNKNOWN;
+		}
+
+		for(int i=0; i<i_CoveredRightVertexCount; i++)
+		{
+			m_vi_RightVertexColors[m_vi_CoveredRightVertices[i]] = _UNKNOWN;
+		}
+
+		return;
+	}
+
+
+
+	//Private Function 3506
+	int BipartiteGraphBicoloring::CheckVertexColoring(string s_VertexColoringVariant)
+	{
+		if(m_s_VertexColoringVariant.compare(s_VertexColoringVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexColoringVariant.compare("ALL") != 0)
+		{
+			m_s_VertexColoringVariant = s_VertexColoringVariant;
+		}
+
+		if(m_s_VertexOrderingVariant.empty())
+		{
+			NaturalOrdering();
+		}
+
+		return(_FALSE);
+	}
+
+
+	//Private Function 3507
+	int BipartiteGraphBicoloring::CalculateVertexColorClasses()
+	{
+		if(m_s_VertexColoringVariant.empty())
+		{
+			return(_FALSE);
+		}
+
+		m_vi_LeftVertexColorFrequency.clear();
+		m_vi_LeftVertexColorFrequency.resize((unsigned) m_i_LeftVertexColorCount, _FALSE);
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		for(int i = 0; i < i_LeftVertexCount; i++)
+		{
+			m_vi_LeftVertexColorFrequency[m_vi_LeftVertexColors[i]]++;
+		}
+
+		for(int i = 0; i < m_i_LeftVertexColorCount; i++)
+		{
+			if(m_i_LargestLeftVertexColorClassSize < m_vi_LeftVertexColorFrequency[i])
+			{
+				m_i_LargestLeftVertexColorClass = i;
+
+				m_i_LargestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+			}
+
+			if(m_i_SmallestLeftVertexColorClassSize == _UNKNOWN)
+			{
+				m_i_SmallestLeftVertexColorClass = i;
+
+				m_i_SmallestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+			}
+			else
+			if(m_i_SmallestLeftVertexColorClassSize > m_vi_LeftVertexColorFrequency[i])
+			{
+				m_i_SmallestLeftVertexColorClass = i;
+
+				m_i_SmallestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+			}
+		}
+
+		m_vi_RightVertexColorFrequency.clear();
+		m_vi_RightVertexColorFrequency.resize((unsigned) m_i_RightVertexColorCount, _FALSE);
+
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		for(int i = 0; i < i_RightVertexCount; i++)
+		{
+			m_vi_RightVertexColorFrequency[m_vi_RightVertexColors[i]]++;
+		}
+
+		for(int i = 0; i < m_i_RightVertexColorCount; i++)
+		{
+			if(m_i_LargestRightVertexColorClassSize < m_vi_RightVertexColorFrequency[i])
+			{
+				m_i_LargestRightVertexColorClass = i;
+
+				m_i_LargestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+			}
+
+			if(m_i_SmallestRightVertexColorClassSize == _UNKNOWN)
+			{
+				m_i_SmallestRightVertexColorClass = i;
+
+				m_i_SmallestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+			}
+			else
+			if(m_i_SmallestRightVertexColorClassSize > m_vi_RightVertexColorFrequency[i])
+			{
+				m_i_SmallestRightVertexColorClass = i;
+
+				m_i_SmallestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+			}
+		}
+
+		m_i_LargestVertexColorClassSize = m_i_LargestLeftVertexColorClassSize>m_i_LargestRightVertexColorClassSize?m_i_LargestLeftVertexColorClassSize:m_i_LargestRightVertexColorClassSize;
+		m_i_LargestVertexColorClass = m_i_LargestVertexColorClassSize==m_i_LargestLeftVertexColorClassSize?m_i_LargestLeftVertexColorClass:m_i_LargestRightVertexColorClass;
+
+		m_i_SmallestVertexColorClassSize = m_i_SmallestLeftVertexColorClassSize<m_i_SmallestRightVertexColorClassSize?m_i_SmallestLeftVertexColorClassSize:m_i_SmallestRightVertexColorClassSize;
+		m_i_SmallestVertexColorClass = m_i_SmallestVertexColorClassSize==m_i_SmallestLeftVertexColorClassSize?m_i_SmallestLeftVertexColorClass:m_i_SmallestRightVertexColorClass;
+
+		m_d_AverageLeftVertexColorClassSize = i_LeftVertexCount / m_i_LeftVertexColorCount;
+		m_d_AverageRightVertexColorClassSize = i_RightVertexCount / m_i_RightVertexColorCount;
+		m_d_AverageVertexColorClassSize = (i_LeftVertexCount + i_RightVertexCount) / m_i_VertexColorCount;
+
+		return(_TRUE);
+	}
+
+
+	//Private Function 3508
+	int BipartiteGraphBicoloring::FixMinimalCoverStarBicoloring()
+	{
+		int i, j, k, l, m, n;
+
+		int i_FirstColor, i_SecondColor, i_ThirdColor, i_FourthColor;
+
+		int i_ColorViolationCount, i_PathViolationCount, i_TotalViolationCount;
+
+		vector<int> vi_CandidateColors, vi_VertexColors;
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		int i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		int i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize) + STEP_UP(i_RightVertexCoverSize);
+
+		vi_VertexColors.clear();
+		vi_VertexColors.resize((unsigned) i_LeftVertexCount + i_RightVertexCount, _FALSE);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		i_ColorViolationCount = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			vi_VertexColors[m_vi_LeftVertexColors[i]] = _TRUE;
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(vi_VertexColors[m_vi_RightVertexColors[i]] == _TRUE)
+			{
+				i_ColorViolationCount++;
+
+#if DEBUG == 3508
+
+				cout<<"Color Violation "<<i_ColorViolationCount<<" | Right Vertex "<<STEP_UP(i)<<" | Conflicting Color "<<m_vi_RightVertexColors[i]<<endl;
+
+#endif
+
+				for(j=m_vi_RightVertices[i]; j<m_vi_RightVertices[STEP_UP(i)]; j++)
+				{
+					for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+					{
+						if(m_vi_Edges[k] == i)
+						{
+							continue;
+						}
+
+						vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i;
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCoverSize); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i)
+					{
+						m_vi_RightVertexColors[i] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						break;
+					}
+				}
+
+#if DEBUG == 3508
+
+				cout<<"Fixed Color Violation "<<i_ColorViolationCount<<" | Right Vertex "<<STEP_UP(i)<<" | Changed Right Vertex Color "<<m_vi_RightVertexColors[i]<<endl;
+
+#endif
+
+			}
+		}
+
+		i_PathViolationCount = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_FirstColor = m_vi_LeftVertexColors[i];
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				i_SecondColor = m_vi_RightVertexColors[m_vi_Edges[j]];
+
+				for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i)
+					{
+						continue;
+					}
+
+					i_ThirdColor = m_vi_LeftVertexColors[m_vi_Edges[k]];
+
+					if(i_ThirdColor == i_FirstColor)
+					{
+						for(l=m_vi_LeftVertices[m_vi_Edges[k]]; l<m_vi_LeftVertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if(m_vi_Edges[l] == m_vi_Edges[j])
+							{
+								continue;
+							}
+
+							i_FourthColor = m_vi_RightVertexColors[m_vi_Edges[l]];
+
+							if(i_FourthColor == i_SecondColor)
+							{
+								i_PathViolationCount++;
+
+#if DEBUG == 3508
+
+								cout<<"Path Violation "<<i_PathViolationCount<<" | "<<STEP_UP(i)<<" ["<<i_FirstColor<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<i_SecondColor<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<i_ThirdColor<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<i_FourthColor<<"]"<<endl;
+
+#endif
+
+								for(m=m_vi_RightVertices[m_vi_Edges[l]]; m<m_vi_RightVertices[STEP_UP(m_vi_Edges[l])]; m++)
+								{
+									for(n=m_vi_LeftVertices[m_vi_Edges[m]]; n<m_vi_LeftVertices[STEP_UP(m_vi_Edges[m])]; n++)
+									{
+										if(m_vi_Edges[n] == m_vi_Edges[l])
+										{
+											continue;
+										}
+
+										vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[n]]] = m_vi_Edges[l];
+									}
+								}
+
+								for(m=STEP_UP(i_LeftVertexCoverSize); m<m_i_VertexColorCount; m++)
+								{
+									if(vi_CandidateColors[m] != m_vi_Edges[l])
+									{
+										m_vi_RightVertexColors[m_vi_Edges[l]] = m;
+
+										if(m_i_RightVertexColorCount < m)
+										{
+											m_i_RightVertexColorCount = m;
+										}
+
+										break;
+									}
+								}
+
+#if DEBUG == 3508
+
+								cout<<"Fixed Path Violation "<<i_PathViolationCount<<" | "<<STEP_UP(i)<<" ["<<i_FirstColor<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<i_SecondColor<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<i_ThirdColor<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<m_vi_RightVertexColors[m_vi_Edges[l]]<<"]"<<endl;
+
+#endif
+
+							}
+						}
+					}
+				}
+			}
+		}
+
+		i_TotalViolationCount = i_ColorViolationCount + i_PathViolationCount;
+
+#if _DEBUG == 3508
+
+		if(i_TotalViolationCount)
+		{
+			cout<<endl;
+			cout<<"[Total Violations = "<<i_TotalViolationCount<<"]"<<endl;
+			cout<<endl;
+		}
+
+#endif
+
+		return(i_TotalViolationCount);
+	}
+
+
+
+	//Public Constructor 3551
+	BipartiteGraphBicoloring::BipartiteGraphBicoloring()
+	{
+		Clear();
+
+		Seed_init();
+	}
+
+
+	//Public Destructor 3552
+	BipartiteGraphBicoloring::~BipartiteGraphBicoloring()
+	{
+		Clear();
+
+		Seed_reset();
+	}
+
+	void BipartiteGraphBicoloring::Seed_init() {
+		lseed_available = false;
+		i_lseed_rowCount = 0;
+		dp2_lSeed = NULL;
+
+		rseed_available = false;
+		i_rseed_rowCount = 0;
+		dp2_rSeed = NULL;
+	}
+
+	void BipartiteGraphBicoloring::Seed_reset() {
+		if(lseed_available) {
+			lseed_available = false;
+
+			if(i_lseed_rowCount>0) {
+			  free_2DMatrix(dp2_lSeed, i_lseed_rowCount);
+			}
+			else {
+			  cerr<<"ERR: freeing left seed matrix with 0 row"<<endl;
+			  exit(-1);
+			}
+			dp2_lSeed = NULL;
+			i_lseed_rowCount = 0;
+		}
+
+		if(rseed_available) {
+			rseed_available = false;
+
+			if(i_rseed_rowCount>0) {
+			  free_2DMatrix(dp2_rSeed, i_rseed_rowCount);
+			}
+			else {
+			  cerr<<"ERR: freeing right seed matrix with 0 row"<<endl;
+			  exit(-1);
+			}
+			dp2_rSeed = NULL;
+			i_rseed_rowCount = 0;
+		}
+	}
+
+
+	//Virtual Function 3553
+	void BipartiteGraphBicoloring::Clear()
+	{
+		BipartiteGraphOrdering::Clear();
+
+		//m_i_ColoringUnits = _UNKNOWN;
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_ViolationCount = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClass = _UNKNOWN;
+		m_i_LargestRightVertexColorClass = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_LargestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClass = _UNKNOWN;
+		m_i_SmallestRightVertexColorClass = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_LargestVertexColorClass = _UNKNOWN;
+		m_i_SmallestVertexColorClass = _UNKNOWN;
+
+		m_i_LargestVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestVertexColorClassSize = _UNKNOWN;
+
+		m_d_AverageLeftVertexColorClassSize = _UNKNOWN;
+		m_d_AverageRightVertexColorClassSize = _UNKNOWN;
+		m_d_AverageVertexColorClassSize = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_RightVertexColors.clear();
+
+		m_vi_LeftVertexColorFrequency.clear();
+		m_vi_RightVertexColorFrequency.clear();
+
+		return;
+	}
+
+
+	//Virtual Function 3554
+	void BipartiteGraphBicoloring::Reset()
+	{
+		BipartiteGraphOrdering::Reset();
+
+		//m_i_ColoringUnits = _UNKNOWN;
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_ViolationCount = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClass = _UNKNOWN;
+		m_i_LargestRightVertexColorClass = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_LargestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClass = _UNKNOWN;
+		m_i_SmallestRightVertexColorClass = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_LargestVertexColorClass = _UNKNOWN;
+		m_i_SmallestVertexColorClass = _UNKNOWN;
+
+		m_i_LargestVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestVertexColorClassSize = _UNKNOWN;
+
+		m_d_AverageLeftVertexColorClassSize = _UNKNOWN;
+		m_d_AverageRightVertexColorClassSize = _UNKNOWN;
+		m_d_AverageVertexColorClassSize = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_RightVertexColors.clear();
+
+		m_vi_LeftVertexColorFrequency.clear();
+		m_vi_RightVertexColorFrequency.clear();
+
+		return;
+	}
+
+
+	//Public Function 3556
+	int BipartiteGraphBicoloring::MinimalCoveringRowMajorStarBicoloring()
+	{
+		if(CheckVertexColoring("MINIMAL_COVER_ROW_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_LargerVertexCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_FirstTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_LargerVertexCount = i_LeftVertexCount>i_RightVertexCount?i_LeftVertexCount:i_RightVertexCount;
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		k=_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+				vi_EdgeStarMap[k] = k;
+
+				k++;
+			}
+		}
+
+		Timer m_T_Timer;
+
+		m_T_Timer.Start();
+
+		CoverMinimalVertex();
+
+		m_T_Timer.Stop();
+
+		m_d_CoveringTime = m_T_Timer.GetWallTime();
+
+		PresetCoveredVertexColors();
+
+#if DEBUG == 3556
+
+		cout<<"DEBUG 3556 | Left Star Bicoloring | Left Vertex Cover Size = "<<m_vi_CoveredLeftVertices.size()<<"; Right Vertex Cover Size = "<<m_vi_CoveredRightVertices.size()<<endl;
+
+#endif
+
+#if DEBUG == 3556
+
+		cout<<endl;
+		cout<<"DEBUG 3556 | Left Star Bicoloring | Initial Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3556 | Left Star Bicoloring | Initial Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize + i_RightVertexCoverSize);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		vi_FirstTreated.clear();
+		vi_FirstTreated.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			i_PresentVertex = m_vi_CoveredLeftVertices[i];
+
+			for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				if(m_vi_RightVertexColors[i_NeighboringVertex] == _FALSE)
+				{
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] > _FALSE)
+						{
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+				}
+			}
+
+			for(j=_TRUE; j<STEP_UP(i_LeftVertexCoverSize); j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+					if(m_i_LeftVertexColorCount < j)
+					{
+						m_i_LeftVertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			i_PresentVertex = m_vi_CoveredRightVertices[i];
+
+			for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+				if(i_ColorID == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(i_ColorID == _FALSE)
+				{
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] != _FALSE)
+						{
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+				}
+				else
+				{
+					i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+					i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+					if(i_FirstNeighborOne == i_PresentVertex)
+					{
+						if(vi_FirstTreated[i_FirstNeighborTwo] != i_PresentVertex)
+						{
+							for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+
+							vi_FirstTreated[i_FirstNeighborTwo] = i_PresentVertex;
+						}
+
+						for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+						{
+							if(m_vi_Edges[k] == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+						}
+
+						vi_FirstTreated[i_NeighboringVertex] = i_PresentVertex;
+					}
+					else
+					{
+						vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+						vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(i_SecondNeighboringVertex == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+							{
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+							}
+						}
+					}
+				}
+			}
+
+			for(j=STEP_UP(i_LeftVertexCoverSize); j<m_i_VertexColorCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_RightVertexColors[i_PresentVertex] = j;
+
+					if(m_i_RightVertexColorCount < j)
+					{
+						m_i_RightVertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				_FOUND = _FALSE;
+
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+				{
+					i_SecondNeighboringVertex = m_vi_Edges[k];
+
+					if(i_SecondNeighboringVertex == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+					{
+						_FOUND = _TRUE;
+
+						i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+						vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+						vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+						break;
+					}
+				}
+
+				if (!_FOUND)
+				{
+					i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+					i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+					if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+					{
+						i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+						vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+						vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+					}
+				}
+			}
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount - i_LeftVertexCoverSize;
+
+#if DEBUG == 3556
+
+		cout<<endl;
+		cout<<"DEBUG 3556 | Left Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3556 | Left Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+
+	//Public Function 3557
+	int BipartiteGraphBicoloring::MinimalCoveringColumnMajorStarBicoloring()
+	{
+		if(CheckVertexColoring("MINIMAL_COVER_COLUMN_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_LargerVertexCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_FirstTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_LargerVertexCount = i_LeftVertexCount>i_RightVertexCount?i_LeftVertexCount:i_RightVertexCount;
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		k=_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+				vi_EdgeStarMap[k] = k;
+
+				k++;
+			}
+		}
+
+		Timer m_T_Timer;
+
+		m_T_Timer.Start();
+
+		CoverMinimalVertex();
+
+		m_T_Timer.Stop();
+
+		m_d_CoveringTime = m_T_Timer.GetWallTime();
+
+		PresetCoveredVertexColors();
+
+#if DEBUG == 3557
+
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Left Vertex Cover Size = "<<m_vi_CoveredLeftVertices.size()<<"; Right Vertex Cover Size = "<<m_vi_CoveredRightVertices.size()<<endl;
+
+#endif
+
+#if DEBUG == 3557
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Initial Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Initial Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize +  i_RightVertexCoverSize);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		vi_FirstTreated.clear();
+		vi_FirstTreated.resize((unsigned) i_LargerVertexCount, _UNKNOWN);
+
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			i_PresentVertex = m_vi_CoveredRightVertices[i];
+
+			for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				if(m_vi_LeftVertexColors[i_NeighboringVertex] == _FALSE)
+				{
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] > _FALSE)
+						{
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+				}
+			}
+
+			for(j=_TRUE; j<STEP_UP(i_RightVertexCoverSize); j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_RightVertexColors[i_PresentVertex] = j;
+
+					if(m_i_RightVertexColorCount < j)
+					{
+						m_i_RightVertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+#if DEBUG == 3557
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Present Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Present Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			i_PresentVertex = m_vi_CoveredLeftVertices[i];
+
+			for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+				if(i_ColorID == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(i_ColorID == _FALSE)
+				{
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] != _FALSE)
+						{
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+				}
+				else
+				{
+					i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+					i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+					if(i_FirstNeighborOne == i_PresentVertex)
+					{
+						if(vi_FirstTreated[i_FirstNeighborTwo] != i_PresentVertex)
+						{
+							for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+							}
+
+							vi_FirstTreated[i_FirstNeighborTwo] = i_PresentVertex;
+
+						}
+
+						for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+						{
+							if(m_vi_Edges[k] == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+						}
+
+						vi_FirstTreated[i_NeighboringVertex] = i_PresentVertex;
+					}
+					else
+					{
+						vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+						vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(i_SecondNeighboringVertex == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+							{
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+						}
+					}
+				}
+			}
+
+			for(j=STEP_UP(i_RightVertexCoverSize); j<m_i_VertexColorCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+					if(m_i_LeftVertexColorCount < j)
+					{
+						m_i_LeftVertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				_FOUND = _FALSE;
+
+				i_NeighboringVertex = m_vi_Edges[j];
+
+				if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+				{
+					i_SecondNeighboringVertex = m_vi_Edges[k];
+
+					if(i_SecondNeighboringVertex == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+					{
+						_FOUND = _TRUE;
+
+						i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+						vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+						vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+    					break;
+					}
+				}
+
+				if (!_FOUND)
+				{
+					i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+					i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+					if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+					{
+						i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+						vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+						vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+					}
+				}
+			}
+		}
+
+		m_i_VertexColorCount = m_i_RightVertexColorCount + m_i_LeftVertexColorCount - i_RightVertexCoverSize;
+
+#if DEBUG == 3557
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3557 | Right Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3558
+	int BipartiteGraphBicoloring::ExplicitCoveringModifiedStarBicoloring()
+	{
+		if(CheckVertexColoring("EXPLICIT_COVER_MODIFIED_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l;
+
+		int i_EdgeID, i_NeighboringEdgeID;
+
+		//int i_EdgeCount; //unused variable
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_OrderedVertexCount;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex, i_ThirdNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeCodes;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		//i_EdgeCount = (signed) m_vi_Edges.size()/2; //unused variable
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		k=_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+				k++;
+			}
+		}
+
+
+		Timer m_T_Timer;
+
+		m_T_Timer.Start();
+
+		CoverVertex(vi_EdgeCodes);
+
+		m_T_Timer.Stop();
+
+		m_d_CoveringTime = m_T_Timer.GetWallTime();
+
+		PresetCoveredVertexColors();
+
+		i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize +  i_RightVertexCoverSize);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+#if DEBUG == 3558
+
+		int i_EdgeCodeZero, i_EdgeCodeOne, i_EdgeCodeTwo, i_EdgeCodeThree;
+
+		i_EdgeCodeZero = i_EdgeCodeOne = i_EdgeCodeTwo = i_EdgeCodeThree = _FALSE;
+
+		cout<<endl;
+		cout<<"DEBUG 3558 | Bipartite Graph Bicoloring | Edge Codes"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				i_EdgeID = m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]];
+
+				cout<<"Edge "<<STEP_UP(i_EdgeID)<<"\t"<<" : "<<vi_EdgeCodes[i_EdgeID]<<endl;
+
+				if(vi_EdgeCodes[i_EdgeID] == 0)
+				{
+					i_EdgeCodeZero++;
+				}
+				else
+				if(vi_EdgeCodes[i_EdgeID] == 1)
+				{
+					i_EdgeCodeOne++;
+				}
+				else
+				if(vi_EdgeCodes[i_EdgeID] == 2)
+				{
+					i_EdgeCodeTwo++;
+				}
+				else
+				if(vi_EdgeCodes[i_EdgeID] == 3)
+				{
+					i_EdgeCodeThree++;
+				}
+			}
+		}
+
+		cout<<endl;
+		cout<<"Code Zero Edges = "<<i_EdgeCodeZero<<"; Code One Edges = "<<i_EdgeCodeOne<<"; Code Two Edges = "<<i_EdgeCodeTwo<<"; Code Three Edges = "<<i_EdgeCodeThree<<endl;
+		cout<<endl;
+
+#endif
+
+#if DEBUG == 3558
+
+		cout<<"DEBUG 3558 | Star Bicoloring | Left Vertex Cover Size = "<<m_vi_CoveredLeftVertices.size()<<"; Right Vertex Cover Size = "<<m_vi_CoveredRightVertices.size()<<endl;
+
+#endif
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+
+#if DEBUG == 3558
+
+			cout<<"DEBUG 3558 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_OrderedVertices[i]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if DEBUG == 3558
+
+				cout<<"DEBUG 3558 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_EdgeID = m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex];
+
+					if (vi_EdgeCodes[i_EdgeID] == 2)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						i_NeighboringEdgeID = m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex];
+
+						if(vi_EdgeCodes[i_NeighboringEdgeID] != 2)
+						{
+							if(m_vi_RightVertexColors[i_NeighboringVertex] <= _FALSE)
+							{
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+							else
+							{
+								for(l=m_vi_LeftVertices[i_SecondNeighboringVertex]; l<m_vi_LeftVertices[STEP_UP(i_SecondNeighboringVertex)]; l++)
+								{
+									i_ThirdNeighboringVertex = m_vi_Edges[l];
+
+									if(m_vi_RightVertexColors[i_ThirdNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[i_ThirdNeighboringVertex] == m_vi_RightVertexColors[i_NeighboringVertex])
+									{
+										vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+									}
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCoverSize); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						break;
+					}
+				}
+			}
+			else
+			{
+				if(m_vi_IncludedRightVertices[m_vi_OrderedVertices[i] - i_LeftVertexCount] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+#if DEBUG == 3558
+
+				cout<<"DEBUG 3558 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_EdgeID = m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex];
+
+					if(vi_EdgeCodes[i_EdgeID] == 3)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						i_NeighboringEdgeID = m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex];
+
+						if(vi_EdgeCodes[i_NeighboringEdgeID] != 3)
+						{
+							if(m_vi_LeftVertexColors[i_NeighboringVertex] <= _FALSE)
+							{
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+							else
+							{
+								for(l=m_vi_RightVertices[i_SecondNeighboringVertex]; l<m_vi_RightVertices[STEP_UP(i_SecondNeighboringVertex)]; l++)
+								{
+									i_ThirdNeighboringVertex = m_vi_Edges[l];
+
+									if(m_vi_LeftVertexColors[i_ThirdNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[i_ThirdNeighboringVertex] == m_vi_LeftVertexColors[i_NeighboringVertex])
+									{
+										vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+									}
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCoverSize); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						break;
+					}
+				}
+			}
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _FALSE)
+			{
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == FALSE)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCoverSize;
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3558
+
+		cout<<endl;
+		cout<<"DEBUG 3558 | Modified Star Bicoloring | Left Vertex Colors"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3558 | Modified Star Bicoloring | Right Vertex Colors"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Total Vertex Colors = "<<m_i_VertexColorCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+
+	//Public Function 3559
+	int BipartiteGraphBicoloring::ExplicitCoveringStarBicoloring()
+	{
+		if(CheckVertexColoring("EXPLICIT_COVER_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount;
+
+		int i_OrderedVertexCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_LeftTreated, vi_RightTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		k=_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+				vi_EdgeStarMap[k] = k;
+
+				k++;
+			}
+		}
+
+		Timer m_T_Timer;
+
+		m_T_Timer.Start();
+
+		CoverVertex();
+
+		m_T_Timer.Stop();
+
+		m_d_CoveringTime = m_T_Timer.GetWallTime();
+
+		PresetCoveredVertexColors();
+
+#if DEBUG == 3559
+
+		cout<<"DEBUG 3559 | Combined Star Bicoloring | Left Vertex Cover Size = "<<m_vi_CoveredLeftVertices.size()<<"; Right Vertex Cover Size = "<<m_vi_CoveredRightVertices.size()<<endl;
+
+#endif
+
+		i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize +  i_RightVertexCoverSize);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftTreated.clear();
+		vi_LeftTreated.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_RightTreated.clear();
+		vi_RightTreated.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+#if DEBUG == 3559
+
+		cout<<endl;
+		cout<<"DEBUG 3559 | Star Bicoloring | Initial Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<" ["<<m_vi_IncludedLeftVertices[i]<<"]"<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3559 | Star Bicoloring | Initial Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<" ["<<m_vi_IncludedRightVertices[i]<<"]"<<endl;
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+
+#if DEBUG == 3559
+
+			cout<<"DEBUG 3559 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_OrderedVertices[i]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if DEBUG == 3559
+
+				cout<<"DEBUG 3559 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(i_ColorID == _FALSE)
+					{
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] != _FALSE)
+							{
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_LeftTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									if(m_vi_Edges[k] == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+								}
+
+								vi_LeftTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+
+							vi_LeftTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCoverSize); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						break;
+					}
+				 }
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+							vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+			else
+			{
+				if(m_vi_IncludedRightVertices[m_vi_OrderedVertices[i] - i_LeftVertexCount] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+#if DEBUG == 3559
+
+				cout<<"DEBUG 3559 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(i_ColorID == _FALSE)
+					{
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] != _FALSE)
+							{
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_RightTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									if(m_vi_Edges[k] == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+								}
+
+								vi_RightTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+							}
+
+							vi_RightTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCoverSize); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+							vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _FALSE)
+			{
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == FALSE)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCoverSize;
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3559
+
+		cout<<endl;
+		cout<<"DEBUG 3559 | Right Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3559 | Right Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+
+}
+
+	//Public Function 3560
+	int BipartiteGraphBicoloring::MinimalCoveringStarBicoloring()
+	{
+		if(CheckVertexColoring("MINIMAL_COVER_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount;
+
+		int i_OrderedVertexCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_LeftTreated, vi_RightTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		k=_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+				vi_EdgeStarMap[k] = k;
+
+				k++;
+			}
+		}
+
+		Timer m_T_Timer;
+
+		m_T_Timer.Start();
+
+		CoverMinimalVertex();
+
+		m_T_Timer.Stop();
+
+		m_d_CoveringTime = m_T_Timer.GetWallTime();
+
+		PresetCoveredVertexColors();
+
+#if DEBUG == 3560
+
+		cout<<"DEBUG 3560 | Combined Star Bicoloring | Left Vertex Cover Size = "<<m_vi_CoveredLeftVertices.size()<<"; Right Vertex Cover Size = "<<m_vi_CoveredRightVertices.size()<<endl;
+
+#endif
+
+		i_LeftVertexCoverSize = (signed) m_vi_CoveredLeftVertices.size();
+		i_RightVertexCoverSize = (signed) m_vi_CoveredRightVertices.size();
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCoverSize + i_RightVertexCoverSize);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftTreated.clear();
+		vi_LeftTreated.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_RightTreated.clear();
+		vi_RightTreated.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+#if DEBUG == 3560
+
+		cout<<endl;
+		cout<<"DEBUG 3560 | Star Bicoloring | Initial Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<" ["<<m_vi_IncludedLeftVertices[i]<<"]"<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3560 | Star Bicoloring | Initial Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<" ["<<m_vi_IncludedRightVertices[i]<<"]"<<endl;
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+
+#if DEBUG == 3560
+
+			cout<<"DEBUG 3560 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_OrderedVertices[i]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if DEBUG == 3560
+
+				cout<<"DEBUG 3560 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(i_ColorID == _FALSE)
+					{
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] != _FALSE)
+							{
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_LeftTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									if(m_vi_Edges[k] == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+								}
+
+								vi_LeftTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+
+							vi_LeftTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCoverSize); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						break;
+					}
+				 }
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+							vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+			else
+			{
+				if(m_vi_IncludedRightVertices[m_vi_OrderedVertices[i] - i_LeftVertexCount] == _FALSE)
+				{
+					continue;
+				}
+
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+#if DEBUG == 3560
+
+				cout<<"DEBUG 3560 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(i_ColorID == _FALSE)
+					{
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] != _FALSE)
+							{
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+							}
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_RightTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									if(m_vi_Edges[k] == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+								}
+
+								vi_RightTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								if(m_vi_Edges[k] == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[m_vi_Edges[k]] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+							}
+
+							vi_RightTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCoverSize); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+							vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == FALSE)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+			}
+		}
+
+		FixMinimalCoverStarBicoloring();
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _FALSE)
+			{
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == m_i_VertexColorCount)
+			{
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCoverSize;
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3560
+
+		cout<<endl;
+		cout<<"DEBUG 3560 | Right Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3560 | Right Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+
+}
+
+
+
+	//Public Function 3561
+	int BipartiteGraphBicoloring::ImplicitCoveringConservativeStarBicoloring()
+	{
+		if(CheckVertexColoring("IMPLICIT_COVER_CONSERVATIVE_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount, i_IncludedEdgeCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		int i_PresentEdge;
+
+		vector<int> vi_IncludedEdges;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_LeftTreated, vi_RightTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		i_IncludedEdgeCount =_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = i_IncludedEdgeCount;
+
+				vi_EdgeStarMap[i_IncludedEdgeCount] = i_IncludedEdgeCount;
+
+				i_IncludedEdgeCount++;
+			}
+		}
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCount +  i_RightVertexCount);
+
+		vi_IncludedEdges.clear();
+		vi_IncludedEdges.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_LeftVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		m_vi_RightVertexColors.clear();
+		m_vi_RightVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftTreated.clear();
+		vi_LeftTreated.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_RightTreated.clear();
+		vi_RightTreated.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		i_IncludedEdgeCount = _FALSE;
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount + i_RightVertexCount; i++)
+		{
+
+	#if DEBUG == 3561
+
+			cout<<"DEBUG 3561 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+	#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+	#if DEBUG == 3561
+
+					cout<<"DEBUG 3561 | Star Bicoloring | Ignored Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+	#endif
+
+					continue;
+				}
+
+	#if DEBUG == 3561
+
+				cout<<"DEBUG 3561 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+	#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+
+						continue;
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_LeftTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+	#if DEBUG == 3561
+
+									cout<<"DEBUG 3561 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+	#endif
+								}
+
+								vi_LeftTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+	#if DEBUG == 3561
+
+								cout<<"DEBUG 3561 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+	#endif
+							}
+
+							vi_LeftTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+	#if DEBUG == 3561
+
+									cout<<"DEBUG 3561 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+	#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCount); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						for(k=m_vi_LeftVertices[i_PresentVertex]; k<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[k]];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+							vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+			else
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3561
+
+					cout<<"DEBUG 3561 | Star Bicoloring | Ignored Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3561
+
+				cout<<"DEBUG 3561 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+
+						continue;
+					}
+					else
+					{
+
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_RightTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3561
+
+									cout<<"DEBUG 3561 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+#endif
+								}
+
+								vi_RightTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3561
+
+								cout<<"DEBUG 3561 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+#endif
+							}
+
+							vi_RightTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3561
+
+									cout<<"DEBUG 3561 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCount); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						for(k=m_vi_RightVertices[i_PresentVertex]; k<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][i_PresentVertex];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+							vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+
+			if(i_IncludedEdgeCount >= i_EdgeCount)
+			{
+				break;
+			}
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_LeftVertexColors[i] = _FALSE;
+
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCount;
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+	#if DEBUG == 3561
+
+		cout<<endl;
+		cout<<"DEBUG 3561 | Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3561 | Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3562
+	int BipartiteGraphBicoloring::ImplicitCoveringStarBicoloring()
+	{
+		if(CheckVertexColoring("IMPLICIT_COVER_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount, i_IncludedEdgeCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		int i_PresentEdge;
+
+		vector<int> vi_IncludedEdges;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_LeftTreated, vi_RightTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		i_IncludedEdgeCount =_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = i_IncludedEdgeCount;
+
+				vi_EdgeStarMap[i_IncludedEdgeCount] = i_IncludedEdgeCount;
+
+				i_IncludedEdgeCount++;
+			}
+		}
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCount +  i_RightVertexCount);
+
+		vi_IncludedEdges.clear();
+		vi_IncludedEdges.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_LeftVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		m_vi_RightVertexColors.clear();
+		m_vi_RightVertexColors.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftTreated.clear();
+		vi_LeftTreated.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_RightTreated.clear();
+		vi_RightTreated.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		i_IncludedEdgeCount = _FALSE;
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount + i_RightVertexCount; i++)
+		{
+
+#if DEBUG == 3562
+
+			cout<<"DEBUG 3562 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3562
+
+					cout<<"DEBUG 3562 | Star Bicoloring | Ignored Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3562
+
+				cout<<"DEBUG 3562 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(i_SecondNeighboringVertex == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_LeftTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+									cout<<"DEBUG 3562 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+#endif
+								}
+
+								vi_LeftTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+								cout<<"DEBUG 3562 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+#endif
+							}
+
+							vi_LeftTreated[i_NeighboringVertex] = i_PresentVertex;
+
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+								  continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+								  continue;
+								}
+
+								if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+									cout<<"DEBUG 3562 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCount); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						for(k=m_vi_LeftVertices[i_PresentVertex]; k<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[k]];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+							vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+			else
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3562
+
+					cout<<"DEBUG 3562 | Star Bicoloring | Ignored Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3562
+
+				cout<<"DEBUG 3562 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(i_SecondNeighboringVertex == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_RightTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+									cout<<"DEBUG 3562 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+#endif
+								}
+
+								vi_RightTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+								cout<<"DEBUG 3562 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+#endif
+							}
+
+							vi_RightTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3562
+
+									cout<<"DEBUG 3562 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCount); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						for(k=m_vi_RightVertices[i_PresentVertex]; k<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][i_PresentVertex];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+							vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+
+			if(i_IncludedEdgeCount >= i_EdgeCount)
+			{
+				break;
+			}
+
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_LeftVertexColors[i] = _FALSE;
+
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount; // m_i_VertexColorCount == (i_LeftVertexCount +  i_RightVertexCount + 1)
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCount;
+		}
+
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3562
+
+		cout<<endl;
+		cout<<"DEBUG 3562 | Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3562 | Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+}
+
+	//Public Function 3563
+	int BipartiteGraphBicoloring::ImplicitCoveringRestrictedStarBicoloring()
+	{
+		if(CheckVertexColoring("IMPLICIT_COVER_RESTRICTED_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_EdgeCount, i_IncludedEdgeCount;
+
+		int i_FirstNeighborOne, i_FirstNeighborTwo;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		int i_PresentEdge;
+
+		vector<int> vi_IncludedEdges;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap, vi_LeftStarHubMap, vi_RightStarHubMap;
+
+		vector<int> vi_LeftTreated, vi_RightTreated;
+
+		vector<int> vi_FirstNeighborOne, vi_FirstNeighborTwo;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		i_IncludedEdgeCount =_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = i_IncludedEdgeCount;
+
+				vi_EdgeStarMap[i_IncludedEdgeCount] = i_IncludedEdgeCount;
+
+				i_IncludedEdgeCount++;
+			}
+		}
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCount +  i_RightVertexCount);
+
+		vi_IncludedEdges.clear();
+		vi_IncludedEdges.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_LeftVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		m_vi_RightVertexColors.clear();
+		m_vi_RightVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		vi_LeftStarHubMap.clear();
+		vi_LeftStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_RightStarHubMap.clear();
+		vi_RightStarHubMap.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstNeighborOne.clear();
+		vi_FirstNeighborOne.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_FirstNeighborTwo.clear();
+		vi_FirstNeighborTwo.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		vi_LeftTreated.clear();
+		vi_LeftTreated.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		vi_RightTreated.clear();
+		vi_RightTreated.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		i_IncludedEdgeCount = _FALSE;
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount + i_RightVertexCount; i++)
+		{
+
+#if DEBUG == 3563
+
+			cout<<"DEBUG 3563 | Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3563
+
+					cout<<"DEBUG 3563 | Star Bicoloring | Ignored Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3563
+
+				cout<<"DEBUG 3563 | Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_RightVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+
+						continue;
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_LeftTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_RightVertices[i_FirstNeighborTwo]; k<m_vi_RightVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+									cout<<"DEBUG 3563 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+#endif
+								}
+
+								vi_LeftTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+								cout<<"DEBUG 3563 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+#endif
+							}
+
+							vi_LeftTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_LeftStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+									cout<<"DEBUG 3563 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_LeftVertexColors[i_SecondNeighboringVertex]<<" of Left Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Right Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCount); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						for(k=m_vi_LeftVertices[i_PresentVertex]; k<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[k]];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == m_vi_LeftVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_SecondNeighboringVertex][i_NeighboringVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_RightVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_RightVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_FirstNeighborTwo]];
+
+							vi_LeftStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_PresentVertex][i_NeighboringVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+			else
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3563
+
+					 cout<<"DEBUG 3563 | Star Bicoloring | Ignored Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3563
+
+				cout<<"DEBUG 3563 | Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					i_ColorID = m_vi_LeftVertexColors[i_NeighboringVertex];
+
+					if(i_ColorID == _UNKNOWN)
+					{
+						for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+						{
+							i_SecondNeighboringVertex = m_vi_Edges[k];
+
+							if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+
+						continue;
+					}
+					else
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[i_ColorID];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[i_ColorID];
+
+						if(i_FirstNeighborOne == i_PresentVertex)
+						{
+							if(vi_RightTreated[i_FirstNeighborTwo] != i_PresentVertex)
+							{
+								for(k=m_vi_LeftVertices[i_FirstNeighborTwo]; k<m_vi_LeftVertices[STEP_UP(i_FirstNeighborTwo)]; k++)
+								{
+									i_SecondNeighboringVertex = m_vi_Edges[k];
+
+									if(i_SecondNeighboringVertex == i_PresentVertex)
+									{
+										continue;
+									}
+
+									if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+									{
+										continue;
+									}
+
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+									cout<<"DEBUG 3563 | Star Bicoloring | Visited Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_FirstNeighborTwo)<<endl;
+
+#endif
+								}
+
+								vi_RightTreated[i_FirstNeighborTwo] = i_PresentVertex;
+							}
+
+							for(k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[STEP_UP(m_vi_Edges[j])]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+								cout<<"DEBUG 3563 | Star Bicoloring | Restricted Same Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Right Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(m_vi_Edges[j])<<endl;
+
+#endif
+							}
+
+							vi_RightTreated[i_NeighboringVertex] = i_PresentVertex;
+						}
+						else
+						{
+							vi_FirstNeighborOne[i_ColorID] = i_PresentVertex;
+							vi_FirstNeighborTwo[i_ColorID] = i_NeighboringVertex;
+
+							for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+							{
+								i_SecondNeighboringVertex = m_vi_Edges[k];
+
+								if(i_SecondNeighboringVertex == i_PresentVertex)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(vi_RightStarHubMap[vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]]] == i_SecondNeighboringVertex)
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+
+#if DEBUG == 3563
+
+									cout<<"DEBUG 3563 | Star Bicoloring | Restricted Hub Color Neighbor | Preventing Color "<<m_vi_RightVertexColors[i_SecondNeighboringVertex]<<" of Neighboring Vertex "<<STEP_UP(i_SecondNeighboringVertex)<<" coming from Left Neighboring Vertex "<<STEP_UP(i_NeighboringVertex)<<endl;
+
+#endif
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCount); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						for(k=m_vi_RightVertices[i_PresentVertex]; k<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][i_PresentVertex];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					_FOUND = _FALSE;
+
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == m_vi_RightVertexColors[i_PresentVertex])
+						{
+							_FOUND = _TRUE;
+
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_SecondNeighboringVertex]];
+
+							vi_LeftStarHubMap[i_StarID] = i_NeighboringVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+
+							break;
+						}
+					}
+
+					if (!_FOUND)
+					{
+						i_FirstNeighborOne = vi_FirstNeighborOne[m_vi_LeftVertexColors[i_NeighboringVertex]];
+						i_FirstNeighborTwo = vi_FirstNeighborTwo[m_vi_LeftVertexColors[i_NeighboringVertex]];
+
+						if((i_FirstNeighborOne == i_PresentVertex) && (i_FirstNeighborTwo != i_NeighboringVertex))
+						{
+							i_StarID = vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_FirstNeighborTwo][i_PresentVertex]];
+
+							vi_RightStarHubMap[i_StarID] = i_PresentVertex;
+
+							vi_EdgeStarMap[m_mimi2_VertexEdgeMap[i_NeighboringVertex][i_PresentVertex]] = i_StarID;
+						}
+					}
+				}
+			}
+
+			if(i_IncludedEdgeCount >= i_EdgeCount)
+			{
+				break;
+			}
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_LeftVertexColors[i] = _FALSE;
+
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCount;
+		}
+
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3563
+
+		cout<<endl;
+		cout<<"DEBUG 3563 | Star Bicoloring | Vertex Colors | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+		  cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3563 | Star Bicoloring | Vertex Colors | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+		  cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3564
+	int BipartiteGraphBicoloring::ImplicitCoveringGreedyStarBicoloring()
+	{
+		if(CheckVertexColoring("IMPLICIT_COVER_GREEDY_STAR"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l;
+
+		int _FOUND;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_OrderedVertexCount;
+
+		int i_EdgeCount, i_IncludedEdgeCount;
+
+		int i_PresentEdge;
+
+		int i_PresentVertex, i_NeighboringVertex, i_SecondNeighboringVertex, i_ThirdNeighboringVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_IncludedEdges;
+
+		i_LeftVertexCount  = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		i_IncludedEdgeCount =_FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = i_IncludedEdgeCount;
+
+				i_IncludedEdgeCount++;
+			}
+		}
+
+		m_i_VertexColorCount = STEP_UP(i_LeftVertexCount +  i_RightVertexCount);
+
+		vi_IncludedEdges.clear();
+		vi_IncludedEdges.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) m_i_VertexColorCount, _UNKNOWN);
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_LeftVertexColors.resize((unsigned) i_LeftVertexCount, _UNKNOWN);
+
+		m_vi_RightVertexColors.clear();
+		m_vi_RightVertexColors.resize((unsigned) i_RightVertexCount, _UNKNOWN);
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		i_IncludedEdgeCount = _FALSE;
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+
+#if DEBUG == 3564
+
+			cout<<"DEBUG 3564 | Greedy Star Bicoloring | Present Vertex | "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+
+#endif
+
+			if(m_vi_OrderedVertices[i] < i_LeftVertexCount)
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i];
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3564
+
+					cout<<"DEBUG 3564 | Greedy Star Bicoloring | Ignored Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3564
+
+				cout<<"DEBUG 3564 | Greedy Star Bicoloring | Present Left Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_LeftVertices[i_PresentVertex]; j<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					for(k=m_vi_RightVertices[i_NeighboringVertex]; k<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_LeftVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_RightVertexColors[i_NeighboringVertex] == _UNKNOWN)
+						{
+							vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+						else
+						{
+
+							for(l=m_vi_LeftVertices[i_SecondNeighboringVertex]; l<m_vi_LeftVertices[STEP_UP(i_SecondNeighboringVertex)]; l++)
+							{
+								i_ThirdNeighboringVertex = m_vi_Edges[l];
+
+								if(m_vi_RightVertexColors[i_ThirdNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(m_vi_RightVertexColors[i_ThirdNeighboringVertex] == m_vi_RightVertexColors[i_NeighboringVertex])
+								{
+									vi_CandidateColors[m_vi_LeftVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+								}
+							}
+						}
+					}
+				}
+
+				for(j=_TRUE; j<STEP_UP(i_LeftVertexCount); j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_LeftVertexColors[i_PresentVertex] = j;
+
+						if(m_i_LeftVertexColorCount < j)
+						{
+							m_i_LeftVertexColorCount = j;
+						}
+
+						for(k=m_vi_LeftVertices[i_PresentVertex]; k<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[k]];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+			}
+			else
+			{
+				i_PresentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+				_FOUND = _FALSE;
+
+				for(j= m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+
+					if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+					{
+						_FOUND = _TRUE;
+
+						break;
+					}
+				}
+
+				if(_FOUND == _FALSE)
+				{
+
+#if DEBUG == 3564
+
+					cout<<"DEBUG 3564 | Greedy Star Bicoloring | Ignored Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+					continue;
+				}
+
+#if DEBUG == 3564
+
+				cout<<"DEBUG 3564 | Greedy Star Bicoloring | Present Right Vertex | "<<STEP_UP(i_PresentVertex)<<endl;
+#endif
+
+				for(j=m_vi_RightVertices[i_PresentVertex]; j<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; j++)
+				{
+					i_NeighboringVertex = m_vi_Edges[j];
+
+					for(k=m_vi_LeftVertices[i_NeighboringVertex]; k<m_vi_LeftVertices[STEP_UP(i_NeighboringVertex)]; k++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[k];
+
+						if(m_vi_RightVertexColors[i_SecondNeighboringVertex] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_LeftVertexColors[i_NeighboringVertex] == _UNKNOWN)
+						{
+							vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+						}
+						else
+						{
+							for(l=m_vi_RightVertices[i_SecondNeighboringVertex]; l<m_vi_RightVertices[STEP_UP(i_SecondNeighboringVertex)]; l++)
+							{
+								i_ThirdNeighboringVertex = m_vi_Edges[l];
+
+								if(m_vi_LeftVertexColors[i_ThirdNeighboringVertex] == _UNKNOWN)
+								{
+									continue;
+								}
+
+								if(m_vi_LeftVertexColors[i_ThirdNeighboringVertex] == m_vi_LeftVertexColors[i_NeighboringVertex])
+								{
+									vi_CandidateColors[m_vi_RightVertexColors[i_SecondNeighboringVertex]] = i_PresentVertex;
+								}
+							}
+						}
+					}
+				}
+
+				for(j=STEP_UP(i_LeftVertexCount); j<m_i_VertexColorCount; j++)
+				{
+					if(vi_CandidateColors[j] != i_PresentVertex)
+					{
+						m_vi_RightVertexColors[i_PresentVertex] = j;
+
+						if(m_i_RightVertexColorCount < j)
+						{
+							m_i_RightVertexColorCount = j;
+						}
+
+						for(k=m_vi_RightVertices[i_PresentVertex]; k<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; k++)
+						{
+							i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][i_PresentVertex];
+
+							if(vi_IncludedEdges[i_PresentEdge] == _FALSE)
+							{
+								vi_IncludedEdges[i_PresentEdge] = _TRUE;
+
+								i_IncludedEdgeCount++;
+							}
+						}
+
+						break;
+					}
+				}
+			}
+
+			if(i_IncludedEdgeCount >= i_EdgeCount)
+			{
+				break;
+			}
+		}
+
+		i_LeftVertexDefaultColor = _FALSE;
+		i_RightVertexDefaultColor = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_LeftVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_LeftVertexColors[i] = _FALSE;
+
+				i_LeftVertexDefaultColor = _TRUE;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_RightVertexColors[i] == _UNKNOWN)
+			{
+				m_vi_RightVertexColors[i] = m_i_VertexColorCount;
+
+				i_RightVertexDefaultColor = _TRUE;
+			}
+		}
+
+		if(m_i_LeftVertexColorCount == _UNKNOWN)
+		{
+			m_i_LeftVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_LeftVertexColorCount = m_i_LeftVertexColorCount + i_LeftVertexDefaultColor;
+		}
+
+		if(m_i_RightVertexColorCount == _UNKNOWN)
+		{
+			m_i_RightVertexColorCount = _TRUE;
+		}
+		else
+		{
+			m_i_RightVertexColorCount = m_i_RightVertexColorCount + i_RightVertexDefaultColor - i_LeftVertexCount;
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount + m_i_RightVertexColorCount;
+
+#if DEBUG == 3564
+
+		cout<<endl;
+		cout<<"DEBUG 3564 | Greedy Star Bicoloring | Left Vertex Colors"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3564 | Greedy Star Bicoloring | Right Vertex Colors"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Total Vertex Colors = "<<m_i_VertexColorCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3565
+	int BipartiteGraphBicoloring::CheckStarBicoloring()
+	{
+		int i, j, k, l;
+
+		int i_MaximumColorCount;
+
+		int i_FirstColor, i_SecondColor, i_ThirdColor, i_FourthColor;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_ColorViolationCount, i_PathViolationCount, i_TotalViolationCount;
+
+		vector<int> vi_VertexColors;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_MaximumColorCount = STEP_UP(i_LeftVertexCount) + STEP_UP(i_RightVertexCount);
+
+		vi_VertexColors.clear();
+		vi_VertexColors.resize((unsigned) i_MaximumColorCount, _FALSE);
+
+		i_ColorViolationCount = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			vi_VertexColors[m_vi_LeftVertexColors[i]] = _TRUE;
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(vi_VertexColors[m_vi_RightVertexColors[i]] == _TRUE)
+			{
+				i_ColorViolationCount++;
+
+				if(i_ColorViolationCount == _TRUE)
+				{
+					cout<<endl;
+					cout<<"Star Bicoloring | Violation Check | Vertex Colors | "<<m_s_InputFile<<endl;
+					cout<<endl;
+				}
+
+				cout<<"Color Violation "<<i_ColorViolationCount<<" | Right Vertex "<<STEP_UP(i)<<" | Conflicting Color "<<m_vi_RightVertexColors[i]<<endl;
+			}
+		}
+
+		i_PathViolationCount = _FALSE;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_FirstColor = m_vi_LeftVertexColors[i];
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				i_SecondColor = m_vi_RightVertexColors[m_vi_Edges[j]];
+
+				for(k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i)
+					{
+						continue;
+					}
+
+					i_ThirdColor = m_vi_LeftVertexColors[m_vi_Edges[k]];
+
+					if(i_ThirdColor == i_FirstColor)
+					{
+						for(l=m_vi_LeftVertices[m_vi_Edges[k]]; l<m_vi_LeftVertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if(m_vi_Edges[l] == m_vi_Edges[j])
+							{
+								continue;
+							}
+
+							i_FourthColor = m_vi_RightVertexColors[m_vi_Edges[l]];
+
+							if(i_FourthColor == i_SecondColor)
+							{
+								i_PathViolationCount++;
+
+								if(i_PathViolationCount == _TRUE)
+								{
+									cout<<endl;
+									cout<<"Star Bicoloring | Violation Check | Path Colors | "<<m_s_InputFile<<endl;
+									cout<<endl;
+								}
+
+								cout<<"Path Violation "<<i_PathViolationCount<<" | "<<STEP_UP(i)<<" ["<<i_FirstColor<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<i_SecondColor<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<i_ThirdColor<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<i_FourthColor<<"]"<<endl;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		i_TotalViolationCount = i_ColorViolationCount + i_PathViolationCount;
+
+		if(i_TotalViolationCount)
+		{
+			cout<<endl;
+			cout<<"[Total Violations = "<<i_TotalViolationCount<<"]"<<endl;
+			cout<<endl;
+		}
+
+		m_i_ViolationCount = i_TotalViolationCount;
+
+		return(i_TotalViolationCount);
+	}
+
+
+
+	//Public Function 3568
+	int BipartiteGraphBicoloring::GetLeftVertexColorCount()
+	{
+		return(m_i_LeftVertexColorCount);
+	}
+
+	//Public Function 3569
+	int BipartiteGraphBicoloring::GetRightVertexColorCount()
+	{
+		return(m_i_RightVertexColorCount);
+	}
+
+
+	//Public Function 3570
+	int BipartiteGraphBicoloring::GetVertexColorCount()
+	{
+		return(m_i_VertexColorCount);
+	}
+
+
+	//Public Function 3571
+	int BipartiteGraphBicoloring::GetViolationCount()
+	{
+		return(m_i_ViolationCount);
+	}
+
+	int BipartiteGraphBicoloring::GetRightVertexDefaultColor()
+	{
+		return(i_RightVertexDefaultColor);
+	}
+
+	string BipartiteGraphBicoloring::GetVertexColoringVariant()
+	{
+	  return GetVertexBicoloringVariant();
+	}
+
+	//Public Function 3572
+	string BipartiteGraphBicoloring::GetVertexBicoloringVariant()
+	{
+		if(m_s_VertexColoringVariant.compare("MINIMAL_COVER_ROW_STAR") == 0)
+		{
+			return("Minimal Cover Row Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("MINIMAL_COVER_COLUMN_STAR") == 0)
+		{
+			return("Minimal Cover Column Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("EXPLICIT_COVER_MODIFIED_STAR") == 0)
+		{
+			return("Explicit Cover Modified Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("EXPLICIT_COVER_STAR") == 0)
+		{
+			return("Explicit Cover Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("MINIMAL_COVER_STAR") == 0)
+		{
+			return("Minimal Cover Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("IMPLICIT_COVER_CONSERVATIVE_STAR") == 0)
+		{
+			return("Implicit Cover Conservative Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("IMPLICIT_COVER_STAR") == 0)
+		{
+			return("Implicit Cover Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("IMPLICIT_COVER_RESTRICTED_STAR") == 0)
+		{
+			return("Implicit Cover Restricted Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("IMPLICIT_COVER_GREEDY_STAR") == 0)
+		{
+			return("Implicit Cover Greedy Star");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("IMPLICIT_COVER_ACYCLIC") == 0)
+		{
+			return("Implicit Cover Acyclic");
+		}
+		else
+		{
+			return("Unknown");
+		}
+	}
+
+
+	//Public Function 3573
+	void BipartiteGraphBicoloring::GetLeftVertexColors(vector<int> &output)
+	{
+		 output = m_vi_LeftVertexColors;
+	}
+
+
+	//Public Function 3574
+	void BipartiteGraphBicoloring::GetRightVertexColors(vector<int> &output)
+	{
+		output = m_vi_RightVertexColors;
+	}
+
+	void BipartiteGraphBicoloring::GetRightVertexColors_Transformed(vector<int> &output)
+	{
+		int rowCount = GetRowVertexCount();
+		int columnCount = GetColumnVertexCount();
+
+		output = m_vi_RightVertexColors;
+
+		for (size_t i=0; i < output.size(); i++) {
+			output[i] -= rowCount;
+			if (output[i] == columnCount + 1) output[i] = 0; //color 0, the rows with this color should be ignored.
+		}
+	}
+
+	//Public Function 3575
+	void BipartiteGraphBicoloring::PrintVertexBicolorClasses()
+	{
+		if(CalculateVertexColorClasses() != _TRUE)
+		{
+			cout<<endl;
+			cout<<"Vertex Bicolor Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<" | Vertex Bicolors Not Set"<<endl;
+			cout<<endl;
+
+			return;
+		}
+
+		cout<<endl;
+		cout<<"Row Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		int i_TotalLeftVertexColors = STEP_UP(m_i_LeftVertexColorCount);
+
+		for(int i = 0; i < i_TotalLeftVertexColors; i++)
+		{
+			if(m_vi_LeftVertexColorFrequency[i] <= 0)
+			{
+				continue;
+			}
+
+			cout<<"Color "<<STEP_UP(i)<<" : "<<m_vi_LeftVertexColorFrequency[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Largest Row Color Class : "<<STEP_UP(m_i_LargestLeftVertexColorClass)<<"; Largest Row Color Class Size : "<<m_i_LargestLeftVertexColorClassSize<<"]"<<endl;
+		cout<<"[Smallest Row Color Class : "<<STEP_UP(m_i_SmallestLeftVertexColorClass)<<"; Smallest Row Color Class Size : "<<m_i_SmallestLeftVertexColorClassSize<<"]"<<endl;
+		cout<<"[Average Row Color Class Size : "<<m_d_AverageLeftVertexColorClassSize<<"]"<<endl;
+		cout<<endl;
+
+		cout<<endl;
+		cout<<"Column Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		int i_TotalRightVertexColors = STEP_UP(m_i_RightVertexColorCount);
+
+		for(int i = 0; i < i_TotalRightVertexColors; i++)
+		{
+			if(m_vi_RightVertexColorFrequency[i] <= 0)
+			{
+				continue;
+			}
+
+			cout<<"Color "<<STEP_UP(i)<<" : "<<m_vi_RightVertexColorFrequency[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Largest Column Color Class : "<<STEP_UP(m_i_LargestRightVertexColorClass)<<"; Largest Column Color Class Size : "<<m_i_LargestRightVertexColorClassSize<<"]"<<endl;
+		cout<<"[Smallest Column Color Class : "<<STEP_UP(m_i_SmallestRightVertexColorClass)<<"; Smallest Column Color Class Size : "<<m_i_SmallestRightVertexColorClassSize<<"]"<<endl;
+		cout<<"[Average Column Color Class Size : "<<m_d_AverageRightVertexColorClassSize<<"]"<<endl;
+		cout<<endl;
+
+		cout<<endl;
+		cout<<"[Largest Vertex Color Class : "<<STEP_UP(m_i_LargestVertexColorClass)<<"; Largest Vertex Color Class Size : "<<m_i_LargestVertexColorClassSize<<"]"<<endl;
+		cout<<"[Smallest Vertex Color Class : "<<STEP_UP(m_i_SmallestVertexColorClass)<<"; Smallest Vertex Color Class Size : "<<m_i_SmallestVertexColorClassSize<<"]"<<endl;
+		cout<<"[Average Color Class Size : "<<m_d_AverageVertexColorClassSize<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	//Public Function 3576
+	void BipartiteGraphBicoloring::PrintVertexBicolors()
+	{
+		int i;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		string s_InputFile = SlashTokenizer.GetLastToken();
+
+		i_LeftVertexCount = (signed) m_vi_LeftVertexColors.size();
+		i_RightVertexCount = (signed) m_vi_RightVertexColors.size();
+
+		cout<<endl;
+		cout<<GetVertexBicoloringVariant()<<" Bicoloring | "<<GetVertexOrderingVariant()<<" Ordering | Row Vertex Colors | "<<s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_LeftVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<GetVertexBicoloringVariant()<<" Bicoloring | "<<GetVertexOrderingVariant()<<" Ordering | Column Vertex Colors | "<<s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<m_vi_RightVertexColors[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Total Vertex Colors = "<<m_i_VertexColorCount<<", Violation Count = "<<m_i_ViolationCount<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+
+	//Public Function 3577
+	void BipartiteGraphBicoloring::PrintVertexBicoloringMetrics()
+	{
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		string s_InputFile = SlashTokenizer.GetLastToken();
+
+		cout<<endl;
+		cout<<GetVertexBicoloringVariant()<<" Bicoloring | "<<GetVertexOrderingVariant()<<" Ordering | "<<s_InputFile<<endl;
+		cout<<endl;
+
+		cout<<endl;
+		cout<<"[Total Colors = "<<m_i_VertexColorCount<<"; Violation Count = "<<m_i_ViolationCount<<"]"<<endl;
+		cout<<"[Row Vertex Count = "<<STEP_DOWN(m_vi_LeftVertices.size())<<"; Column Vertex Count = "<<STEP_DOWN(m_vi_RightVertices.size())<<endl;
+		cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Covering Time = "<<m_d_CoveringTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+		cout<<endl;
+
+		return;
+
+	}
+
+	double** BipartiteGraphBicoloring::GetLeftSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+//#define DEBUG asdf
+
+		if(lseed_available) Seed_reset();
+
+		dp2_lSeed = GetLeftSeedMatrix_unmanaged(ip1_SeedRowCount, ip1_SeedColumnCount);
+		if(dp2_lSeed == NULL) return NULL;
+
+		i_lseed_rowCount = *ip1_SeedRowCount;
+		lseed_available = true;
+
+		return dp2_lSeed;
+	}
+
+	double** BipartiteGraphBicoloring::GetRightSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+
+		if(rseed_available) Seed_reset();
+
+		dp2_rSeed = GetRightSeedMatrix_unmanaged(ip1_SeedRowCount, ip1_SeedColumnCount);
+		if(dp2_rSeed == NULL) return NULL;
+
+		i_rseed_rowCount = *ip1_SeedRowCount;
+		rseed_available = true;
+
+		return dp2_rSeed;
+	}
+
+	double** BipartiteGraphBicoloring::GetLeftSeedMatrix_unmanaged(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+//#define DEBUG asdf
+
+		int i_size = GetLeftVertexCount();
+		int i_num_of_colors = m_i_LeftVertexColorCount;
+		if (i_LeftVertexDefaultColor == 1) i_num_of_colors--; //color ID 0 is used, ignore it
+		(*ip1_SeedRowCount) = i_num_of_colors;
+		(*ip1_SeedColumnCount) = i_size;
+		if((*ip1_SeedRowCount) == 0 || (*ip1_SeedColumnCount) == 0) return NULL;
+
+#if DEBUG != _UNKNOWN
+		printf("Seed[%d][%d] \n",(*ip1_SeedRowCount),(*ip1_SeedColumnCount));
+#endif
+
+		// allocate and initialize Seed matrix
+		double** Seed = new double*[(*ip1_SeedRowCount)];
+		for (int i=0; i<(*ip1_SeedRowCount); i++) {
+			Seed[i] = new double[(*ip1_SeedColumnCount)];
+			for(int j=0; j<(*ip1_SeedColumnCount); j++) Seed[i][j]=0.;
+		}
+
+		// populate Seed matrix
+		for (int i=0; i < (*ip1_SeedColumnCount); i++) {
+#if DEBUG != _UNKNOWN
+			if(m_vi_LeftVertexColors[i]>(*ip1_SeedColumnCount)) {
+				printf("**WARNING: Out of bound: Seed[%d >= %d][%d] = 1. \n",m_vi_LeftVertexColors[i]-1,(*ip1_SeedColumnCount), i);
+			}
+#endif
+			if(m_vi_LeftVertexColors[i] != 0) { //ignore color 0
+				Seed[m_vi_LeftVertexColors[i]-1][i] = 1.;
+			}
+		}
+
+		return Seed;
+	}
+
+	double** BipartiteGraphBicoloring::GetRightSeedMatrix_unmanaged(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+
+		int i_size = GetRightVertexCount();
+		vector<int> RightVertexColors_Transformed;
+		GetRightVertexColors_Transformed(RightVertexColors_Transformed);
+		int i_num_of_colors = m_i_RightVertexColorCount;
+		if (i_RightVertexDefaultColor == 1) i_num_of_colors--; //color ID 0 is used, ignore it
+		(*ip1_SeedRowCount) = i_size;
+		(*ip1_SeedColumnCount) = i_num_of_colors;
+		if((*ip1_SeedRowCount) == 0 || (*ip1_SeedColumnCount) == 0) return NULL;
+
+#if DEBUG != _UNKNOWN
+		printf("Seed[%d][%d] \n",(*ip1_SeedRowCount),(*ip1_SeedColumnCount));
+#endif
+
+		// allocate and initialize Seed matrix
+		double** Seed = new double*[(*ip1_SeedRowCount)];
+		for (int i=0; i<(*ip1_SeedRowCount); i++) {
+			Seed[i] = new double[(*ip1_SeedColumnCount)];
+			for(int j=0; j<(*ip1_SeedColumnCount); j++) Seed[i][j]=0.;
+		}
+
+		// populate Seed matrix
+		for (int i=0; i < (*ip1_SeedRowCount); i++) {
+#if DEBUG != _UNKNOWN
+			if(RightVertexColors_Transformed[i]>(*ip1_SeedRowCount)) {
+				printf("**WARNING: Out of bound: Seed[%d][%d >= %d] = 1. \n",i, RightVertexColors_Transformed[i] - 1, (*ip1_SeedRowCount));
+			}
+#endif
+			if(RightVertexColors_Transformed[i] != 0) { //ignore color 0
+				Seed[i][RightVertexColors_Transformed[i] - 1] = 1.;
+			}
+		}
+
+		return Seed;
+	}
+
+	double BipartiteGraphBicoloring::GetVertexColoringTime() {
+	  return m_d_ColoringTime;
+	}
+
+	void BipartiteGraphBicoloring::GetSeedMatrix(double*** dp3_LeftSeed, int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount) {
+	  (*dp3_LeftSeed) = GetLeftSeedMatrix(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount);
+	  (*dp3_RightSeed) = GetRightSeedMatrix(ip1_RightSeedRowCount, ip1_RightSeedColumnCount);
+	}
+
+	void BipartiteGraphBicoloring::GetSeedMatrix_unmanaged(double*** dp3_LeftSeed, int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount) {
+	  (*dp3_LeftSeed) = GetLeftSeedMatrix_unmanaged(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount);
+	  (*dp3_RightSeed) = GetRightSeedMatrix_unmanaged(ip1_RightSeedRowCount, ip1_RightSeedColumnCount);
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphBicoloring.h
@@ -0,0 +1,278 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHBICOLORING_H
+#define BIPARTITEGRAPHBICOLORING_H
+
+namespace ColPack
+{
+	/** @ingroup group22
+	 *  @brief class BipartiteGraphBicoloring in @link group22@endlink.
+
+	 Bipartite graph bicoloring is an assignment of colors to subsets of column and row vertices
+	 of the bipartite graph of a Jacobian matrix.  The present version of ColPack provides methods for star
+	 bicoloring only. The distance-one coloring constraint is satisfied by all bicoloring algorithms by selecting
+	 colors for row and column vertices from two disjoint sets of colors. Sizes of the sets are equal to the number
+	 of row and column vertices respectively, which are the maximum number of colors that can be required by
+	 the row or column vertices.
+
+	In star  bicoloring, vertex cover can be computed either explicitly or implicitly. An explicit
+	vertex cover is computed and used to determine which vertices are to be colored.
+	An implicit vertex cover is computed by including vertices as they get colored, into the cover and is used to
+	determine the end of coloring as a vertex cover is reached. In both cases pre-computed vertex ordering
+	determines the order in which vertices are colored. In implicit vertex cover, a vertex
+	is not selected as a candidate vertex to be colored if no edge is incident on the vertex which has not been
+	covered by any other colored vertex.
+	*/
+	class BipartiteGraphBicoloring : public BipartiteGraphOrdering
+	{
+	public: //DOCUMENTED
+
+		//Public Function 3573
+		/// Get the color IDs for the left vertices (rows). Color IDs start from 1, color ID 0 should be ignored
+		void GetLeftVertexColors(vector<int> &output);
+
+		//Public Function 3574
+		/// Get the color IDs for the right vertices (columns). Color IDs start from (# of rows + 1), color ID (# of rows + # of columns + 1) should be ignored
+		void GetRightVertexColors(vector<int> &output);
+
+		/// Get the color IDs for the right vertices (columns) in the format similar to GetLeftVertexColor(). Color IDs start from 1, color ID 0 should be ignored
+		void GetRightVertexColors_Transformed(vector<int> &output);
+
+		///Generate and return the Left Seed matrix. This Seed matrix is managed and freed by ColPack
+		/**Precondition:
+		- the Graph has been Bicolored
+
+		Postcondition:
+		- Size of the returned matrix is (*ip1_SeedRowCount) rows x (*ip1_SeedColumnCount) columns.
+		(*ip1_SeedColumnCount) == num of rows of the original matrix == GetRowVertexCount()
+		(*ip1_SeedRowCount) == num of colors used to color the left (row) vertices excluding color 0.
+
+		Notes:
+		- Vertices with color 0 are ignored.
+		That also means left (row) vertices with color 1 will be grouped together
+		into the first row (row 0) of the seed matrix and so on.
+		*/
+		double** GetLeftSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		/// Same as GetLeftSeedMatrix(), except that this Seed matrix is NOT managed by ColPack
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		double** GetLeftSeedMatrix_unmanaged(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		///Return the Right Seed matrix. This Seed matrix is managed and freed by ColPack
+		/** Precondition:
+		- the Graph has been Bicolored
+
+		Postcondition:
+		- Size of the returned matrix is (*ip1_SeedRowCount) rows x (*ip1_SeedColumnCount) columns.
+		(*ip1_SeedRowCount) == num of columns of the original matrix == GetColumnVertexCount()
+		(*ip1_SeedColumnCount) == num of colors used to color the right (column) vertices excluding color 0.
+
+		Notes:
+		- Vertices with color 0 are ignored.
+		That also means right (column) vertices with color 1 will be grouped together
+		into the first column (column 0) of the seed matrix and so on.
+		*/
+		double** GetRightSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		/// Same as GetRightSeedMatrix(), except that this Seed matrix is NOT managed by ColPack
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		double** GetRightSeedMatrix_unmanaged(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		///Return both the Left and Right Seed matrix. These Seed matrices are managed and freed by ColPack
+		/** Notes:
+		- These Seed matrices are NOT managed by ColPack. Therefore, the user should free the Seed matrices manually when the matrices are no longer needed.
+		*/
+		void GetSeedMatrix(double*** dp3_LeftSeed, int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount);
+
+		/// Same as GetSeedMatrix(), except that These Seed matrices are NOT managed by ColPack
+		/** Notes:
+		- These Seed matrices are NOT managed by ColPack. Therefore, the user should free the Seed matrices manually when the matrices are no longer needed.
+		*/
+		void GetSeedMatrix_unmanaged(double*** dp3_LeftSeed, int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount);
+
+	protected: //DOCUMENTED
+		/// Whether or not color 0 is used for left vertices
+		/** i_LeftVertexDefaultColor ==
+		- 0 if color 0 is not used
+		- 1 if color 0 is used
+		//*/
+		int i_LeftVertexDefaultColor;
+
+		/// Whether or not color 0 is used for right vertices
+		/** i_RightVertexDefaultColor ==
+		- 0 if color 0 is not used
+		- 1 if color 0 is used
+		//*/
+		int i_RightVertexDefaultColor;
+
+		/// The number of colors used to color Left Vertices
+		/** Note: Color 0 is also counted if used.
+		If color 0 is used, i_LeftVertexDefaultColor will be set to 1.
+		//*/
+		int m_i_LeftVertexColorCount;
+
+		/// The number of colors used to color Right Vertices
+		/** Note: Color 0 (or actually (i_LeftVertexCount +  i_RightVertexCount + 1)) is also counted if used.
+		If color 0 is used, i_RightVertexDefaultColor will be set to 1.
+		//*/
+		int m_i_RightVertexColorCount;
+
+		int m_i_VertexColorCount;
+
+		/// The color IDs used to color the left vertices (rows).
+		/** Note: Color IDs start from 1, color ID 0 should be ignored
+		//*/
+		vector<int> m_vi_LeftVertexColors;
+
+		/// The color IDs used to color the right vertices (columns).
+		/** Note: Color IDs start from (# of rows + 1), color ID (# of rows + # of columns + 1), which is color 0, should be ignored
+		//*/
+		vector<int> m_vi_RightVertexColors;
+
+		bool lseed_available;
+		int i_lseed_rowCount;
+		double** dp2_lSeed;
+
+		bool rseed_available;
+		int i_rseed_rowCount;
+		double** dp2_rSeed;
+
+		void Seed_init();
+		void Seed_reset();
+
+	private:
+
+		//Private Function 3501
+		void PresetCoveredVertexColors();
+
+		//Private Function 3506
+		int CheckVertexColoring(string s_VertexColoringVariant);
+
+		//Private Function 3507
+		int CalculateVertexColorClasses();
+
+		//Private Function 3508
+		int FixMinimalCoverStarBicoloring();
+
+	protected:
+
+		int m_i_ViolationCount;
+
+		//int m_i_ColoringUnits; // used in ImplicitCoveringAcyclicBicoloring()
+
+		int m_i_LargestLeftVertexColorClass;
+		int m_i_LargestRightVertexColorClass;
+
+		int m_i_LargestLeftVertexColorClassSize;
+		int m_i_LargestRightVertexColorClassSize;
+
+		int m_i_SmallestLeftVertexColorClass;
+		int m_i_SmallestRightVertexColorClass;
+
+		int m_i_SmallestLeftVertexColorClassSize;
+		int m_i_SmallestRightVertexColorClassSize;
+
+		int m_i_LargestVertexColorClass;
+		int m_i_SmallestVertexColorClass;
+
+		int m_i_LargestVertexColorClassSize;
+		int m_i_SmallestVertexColorClassSize;
+
+		double m_d_AverageLeftVertexColorClassSize;
+		double m_d_AverageRightVertexColorClassSize;
+		double m_d_AverageVertexColorClassSize;
+
+		double m_d_ColoringTime;
+		double m_d_CheckingTime;
+
+		string m_s_VertexColoringVariant;
+
+		vector<int> m_vi_LeftVertexColorFrequency;
+		vector<int> m_vi_RightVertexColorFrequency;
+
+	public:
+
+		//Public Constructor 3551
+		BipartiteGraphBicoloring();
+
+		//Public Destructor 3552
+		~BipartiteGraphBicoloring();
+
+		//Virtual Function 3553
+		virtual void Clear();
+
+		//Virtual Function 3554
+		virtual void Reset();
+
+		//Public Function 3562
+		int ImplicitCoveringStarBicoloring();
+
+		//Public Function 3560
+		int ExplicitCoveringStarBicoloring();
+
+		//Public Function 3559
+		int ExplicitCoveringModifiedStarBicoloring();
+
+		//Public Function 3564
+		int ImplicitCoveringGreedyStarBicoloring();
+
+		//Public Function 3556
+		int MinimalCoveringRowMajorStarBicoloring();		//????
+
+		//Public Function 3557
+		int MinimalCoveringColumnMajorStarBicoloring();		//????
+
+		//Public Function 3558
+		int ImplicitCoveringConservativeStarBicoloring();	// CRASH
+
+		//Public Function 3561
+		int MinimalCoveringStarBicoloring();				// CRASH
+
+		//Public Function 3563
+		int ImplicitCoveringRestrictedStarBicoloring();		// CRASH
+
+		//Public Function 3565
+		int CheckStarBicoloring();
+
+
+		//Public Function 3568
+		int GetLeftVertexColorCount();
+
+		//Public Function 3569
+		int GetRightVertexColorCount();
+
+		//Public Function 3570
+		int GetVertexColorCount();
+
+		//Public Function 3571
+		int GetViolationCount();
+
+		int GetRightVertexDefaultColor();
+
+		//Public Function 3572
+		string GetVertexBicoloringVariant();
+		string GetVertexColoringVariant();
+
+		//Public Function 3575
+		void PrintVertexBicolors();
+
+		//Public Function 3576
+		void PrintVertexBicoloringMetrics();
+
+		//Public Function 3577
+		void PrintVertexBicolorClasses();
+
+		double GetVertexColoringTime();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphBicoloringInterface.cpp
@@ -0,0 +1,228 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+
+	//Public Destructor 3702
+	BipartiteGraphBicoloringInterface::~BipartiteGraphBicoloringInterface()
+	{
+		BipartiteGraphBicoloring::Clear();
+
+		Seed_reset();
+	}
+
+
+	//Virtual Function 3703
+	void BipartiteGraphBicoloringInterface::Clear()
+	{
+		BipartiteGraphBicoloring::Clear();
+
+		return;
+	}
+
+
+	//Virtual Function 3704
+	void BipartiteGraphBicoloringInterface::Reset()
+	{
+		BipartiteGraphBicoloring::Reset();
+
+		return;
+	}
+
+
+
+	void BipartiteGraphBicoloringInterface::GenerateSeedJacobian(double*** dp3_LeftSeed, int *ip1_LeftSeedRowCount, int *ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int *ip1_RightSeedRowCount, int *ip1_RightSeedColumnCount, string s_OrderingVariant, string s_BicoloringVariant) {
+	//void BipartiteGraphBicoloringInterface::GenerateSeedJacobian(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount, double*** dp3_LeftSeed, int *ip1_LeftSeedRowCount, int *ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int *ip1_RightSeedRowCount, int *ip1_RightSeedColumnCount, string s_OrderingVariant, string s_BicoloringVariant) {
+		//Clear (Re-initialize) the bipartite graph
+		//Clear();
+
+		//Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+		//and create the corresponding bipartite graph
+		//BuildBPGraphFromRowCompressedFormat(uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+
+		//Color the graph based on the specified ordering and (Star) Bicoloring
+		Bicoloring(s_OrderingVariant, s_BicoloringVariant);
+
+		//From the coloring information, create and return the Left and Right seed matrices
+		*dp3_LeftSeed = GetLeftSeedMatrix(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount);
+		*dp3_RightSeed = GetRightSeedMatrix(ip1_RightSeedRowCount, ip1_RightSeedColumnCount);
+
+	}
+
+	void BipartiteGraphBicoloringInterface::GenerateSeedJacobian_unmanaged(double*** dp3_LeftSeed, int *ip1_LeftSeedRowCount, int *ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int *ip1_RightSeedRowCount, int *ip1_RightSeedColumnCount, string s_OrderingVariant, string s_BicoloringVariant) {
+
+		//Color the graph based on the specified ordering and (Star) Bicoloring
+		Bicoloring(s_OrderingVariant, s_BicoloringVariant);
+
+		//From the coloring information, create and return the Left and Right seed matrices
+		*dp3_LeftSeed = GetLeftSeedMatrix_unmanaged(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount);
+		*dp3_RightSeed = GetRightSeedMatrix_unmanaged(ip1_RightSeedRowCount, ip1_RightSeedColumnCount);
+	}
+
+	int BipartiteGraphBicoloringInterface::Bicoloring(string s_OrderingVariant, string s_BicoloringVariant) {
+		m_T_Timer.Start();
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+		m_T_Timer.Stop();
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		s_BicoloringVariant = toUpper(s_BicoloringVariant);
+		m_T_Timer.Start();
+
+		int i_ColoringStatus;
+		if(s_BicoloringVariant == "IMPLICIT_COVERING__STAR_BICOLORING") {
+			i_ColoringStatus = ImplicitCoveringStarBicoloring();
+		} else if (s_BicoloringVariant == "EXPLICIT_COVERING__STAR_BICOLORING") {
+			i_ColoringStatus = ExplicitCoveringStarBicoloring();
+		} else if (s_BicoloringVariant == "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING") {
+			i_ColoringStatus = ExplicitCoveringModifiedStarBicoloring();
+		} else if (s_BicoloringVariant == "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING") {
+			i_ColoringStatus = ImplicitCoveringGreedyStarBicoloring();
+		} else {
+			cout<<" Unknown Bicoloring Method "<<s_BicoloringVariant<<". Please use a legal Method."<<endl;
+			m_T_Timer.Stop();
+			m_d_ColoringTime = m_T_Timer.GetWallTime();
+			return (_FALSE);
+		}
+
+		m_T_Timer.Stop();
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+		return(i_ColoringStatus);
+	}
+
+	BipartiteGraphBicoloringInterface::BipartiteGraphBicoloringInterface(int i_type, ...) {
+	  //cout<<"IN GraphColoringInterface(int i_type, ...)"<<endl;
+		Clear();
+
+		if (i_type == SRC_WAIT) return;
+
+		//---------CONVERT INPUT TO ColPack's Bipartite Graph-------------
+		va_list ap; /*will point to each unnamed argument in turn*/
+		va_start(ap,i_type); /* point to first element after i_type*/
+
+		if (i_type == SRC_MEM_ADOLC) {
+		  //get unsigned int ** uip2_HessianSparsityPattern, int i_RowCount
+		  unsigned int ** uip2_JacobianSparsityPattern = va_arg(ap,unsigned int **);
+		  int i_RowCount = va_arg(ap,int);
+		  int i_ColumnCount = va_arg(ap,int);
+
+		  BuildBPGraphFromRowCompressedFormat(uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+		}
+		else if (i_type == SRC_MEM_ADIC) {
+		  // !!! add interface function that takes input from ADIC
+		  cerr<<"ERR: GraphColoringInterface(): s_inputSource \"ADIC\" is not supported yet"<<endl;
+
+		  va_end(ap); /*cleanup*/
+		  return;
+		}
+		else if (i_type == SRC_FILE) {
+		  // get string s_InputFile, string s_fileFormat
+		  string s_InputFile ( va_arg(ap,char *) );
+		  string s_fileFormat ( va_arg(ap,char *) );
+
+		  ReadBipartiteGraph(s_InputFile, s_fileFormat);
+		}
+		else {
+		  cerr<<"ERR: BipartiteGraphBicoloringInterface(): i_type =\""<< i_type <<"\" unknown or unspecified"<<endl;
+
+		  va_end(ap); /*cleanup*/
+		  return;
+		}
+#ifdef	_COLPACK_CHECKPOINT_
+		string s_OutputFile = "-ColPack_debug.mtx";
+		s_OutputFile = "BipartiteGraphBicoloringInterface-InternalBPGraph"+s_OutputFile;
+		WriteMatrixMarket(s_OutputFile);
+#endif
+
+		//cout<<"START PrintBipartiteGraph()"<<endl;
+		//PrintBipartiteGraph();
+		//cout<<"END"<<endl;
+
+/*
+		// get string s_OrderingVariant
+		string s_OrderingVariant( va_arg(ap,char *) );
+		if (s_OrderingVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------ORDERING-------------
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl<<"*ERROR: "<<s_OrderingVariant<<" Ordering Failed"<<endl;
+			return;
+		}
+
+		// get string s_BicoloringVariant
+		string s_BicoloringVariant( va_arg(ap,char *) );
+		s_BicoloringVariant = toUpper(s_BicoloringVariant);
+		if (s_BicoloringVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------COLORING-------------
+		m_T_Timer.Start();
+
+		int i_ColoringStatus;
+		if(s_BicoloringVariant == "IMPLICIT_COVERING__STAR_BICOLORING") {
+			i_ColoringStatus = ImplicitCoveringStarBicoloring();
+		} else if (s_BicoloringVariant == "EXPLICIT_COVERING__STAR_BICOLORING") {
+			i_ColoringStatus = ExplicitCoveringStarBicoloring();
+		} else if (s_BicoloringVariant == "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING") {
+			i_ColoringStatus = ExplicitCoveringModifiedStarBicoloring();
+		} else if (s_BicoloringVariant == "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING") {
+			i_ColoringStatus = ImplicitCoveringGreedyStarBicoloring();
+		} else {
+			cout<<" Unknown Bicoloring Method "<<s_BicoloringVariant<<". Please use a legal Method."<<endl;
+			m_T_Timer.Stop();
+			m_d_ColoringTime = m_T_Timer.GetWallTime();
+			return;
+		}
+
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+//*/
+
+		va_end(ap); //cleanup
+		return;
+	}
+
+	double** BipartiteGraphBicoloringInterface::GetLeftSeedMatrix(int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount) {
+	  return BipartiteGraphBicoloring::GetLeftSeedMatrix(ip1_LeftSeedRowCount, ip1_LeftSeedColumnCount);
+	}
+
+	double** BipartiteGraphBicoloringInterface::GetRightSeedMatrix(int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount) {
+	  return BipartiteGraphBicoloring::GetRightSeedMatrix(ip1_RightSeedRowCount, ip1_RightSeedColumnCount);
+	}
+
+	void BipartiteGraphBicoloringInterface::GetOrderedVertices(vector<int> &output) {
+	  BipartiteGraphOrdering::GetOrderedVertices(output);
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphBicoloringInterface.h
@@ -0,0 +1,154 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHBICOLORINGINTERFACE_H
+#define BIPARTITEGRAPHBICOLORINGINTERFACE_H
+
+namespace ColPack
+{
+	/** @ingroup group22
+	 *  @brief class BipartiteGraphBicoloringInterface in @link group22@endlink.
+
+	To be completed.
+	*/
+	class BipartiteGraphBicoloringInterface : public BipartiteGraphBicoloring
+	{
+
+	public: //DOCUMENTED
+
+		/// Build a BipartiteGraphBicoloringInterface object and create the bipartite graph based on the graph structure specified by the input source
+		/** This function will:
+		- 0. Create initial BipartiteGraphPartialColoringInterface object
+		- 1. Create the bipartite graph based on the graph structure specified by the input source
+
+		Structure of this variadic function's parameters: BipartiteGraphBicoloringInterface(int i_type, [2 or more parameters for input source depending on the value of i_type]). Here are some examples:
+		  - Just create the BipartiteGraphBicoloringInterface object: BipartiteGraphBicoloringInterface(SRC_WAIT);
+		  - Get the input from file: BipartiteGraphBicoloringInterface(SRC_FILE, s_InputFile.c_str() ,"AUTO_DETECTED");
+		  - Get input from ADOLC: BipartiteGraphBicoloringInterface(SRC_MEM_ADOLC,uip2_SparsityPattern, i_rowCount, i_columnCount);
+
+		About input parameters:
+		- int i_type: specified the input source. i_type can be either:
+		  - -1 (SRC_WAIT): only step 0 will be done.
+		  - 0 (SRC_FILE): The graph structure will be read from file. The next 2 parameters are:
+		    - char* fileName: name of the input file. If the full path is not given, the file is assumed to be in the current directory
+		    - char* fileType can be either:
+			    - "AUTO_DETECTED"  or "". ColPack will decide the format of the file based on the file extension:
+				    - ".mtx": MatrixMarket format
+				    - ".hb", or any combination of ".<r, c, p><s, u, h, x, r><a, e>": HarwellBoeing format
+				    - ".graph": MeTiS format
+				    - ".gen": Generic Matrix format
+				    - ".gens": Generic Square Matrix format
+				    - If the above extensions are not found, MatrixMarket format will be assumed.
+			    - "MM" for MatrixMarket format (http://math.nist.gov/MatrixMarket/formats.html#MMformat). Notes:
+			      - ColPack only accepts MatrixMarket coordinate format (NO array format)
+			      - List of arithmetic fields accepted by ColPack: real, pattern or integer
+			      - List of symmetry structures accepted by ColPack: general or symmetric
+			      - The first line of the input file should be similar to this: "%%MatrixMarket matrix coordinate real general"
+			    - "HB" for HarwellBoeing format (http://math.nist.gov/MatrixMarket/formats.html#hb)
+			    - "MeTiS" for MeTiS format (http://people.sc.fsu.edu/~burkardt/data/metis_graph/metis_graph.html)
+			    - "GEN" for Generic Matrix format
+			    - "GENS" for Generic Square Matrix format
+		  - 1 (SRC_MEM_ADOLC): The graph structure will be read from Row Compressed Structure (used by ADOLC). The next 3 parameters are:
+		    - unsigned int **uip2_SparsityPattern: The pattern of Jacobian matrix stored in Row Compressed Format
+		    - int i_rowCount: number of rows in the Jacobian matrix. Number of rows in uip2_SparsityPattern.
+		    - int i_ColumnCount: number of columns in the Jacobian matrix. Number of columns in uip2_SparsityPattern.
+		  - 2 (SRC_MEM_ADIC): TO BE IMPLEMENTED so that ColPack can interface with ADIC
+
+		//*/
+		BipartiteGraphBicoloringInterface(int i_type, ...);
+
+
+		/// Generate and return the Left and Right Seed matrices
+		/**	This function will
+		- 1. Color the graph based on the specified ordering and (Star) Bicoloring
+		- 2. From the coloring information, create and return the Left (*dp3_LeftSeed[*ip1_RowColorCount][i_RowCount]) and Right (*dp3_RightSeed[i_ColumnCount][*ip1_ColumnColorCount]) seed matrices
+
+		About input parameters:
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "DYNAMIC_LARGEST_FIRST"
+			- "SMALLEST_LAST"
+			- "INCIDENCE_DEGREE"
+			- "RANDOM"
+		- s_BicoloringVariant can be either
+			- "IMPLICIT_COVERING__STAR_BICOLORING" (default)
+			- "EXPLICIT_COVERING__STAR_BICOLORING"
+			- "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING"
+			- "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"
+
+		Postcondition:
+		- *dp3_LeftSeed: the size will be:
+			- Row count (*ip1_LeftSeedRowCount): Row Color Count
+			- Column count (*ip1_LeftSeedColumnCount): Jacobian's Row Count
+		- *dp3_RightSeed: the size will be:
+			- Row count (*ip1_RightSeedRowCount): Jacobian's Column Count
+			- Column count (*ip1_RightSeedColumnCount): Column Color Count
+		*/
+		void GenerateSeedJacobian(double*** dp3_LeftSeed, int *ip1_LeftSeedRowCount, int *ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int *ip1_RightSeedRowCount, int *ip1_RightSeedColumnCount, string s_OrderingVariant="NATURAL", string s_BicoloringVariant = "IMPLICIT_COVERING__STAR_BICOLORING");
+
+
+		/// Same as GenerateSeedJacobian(), except that these Seed matrices are NOT managed by ColPack
+		/** Notes:
+		- These Seed matrices are NOT managed by ColPack. Therefore, the user should free the Seed matrices manually when the matrices are no longer needed.
+		*/
+		void GenerateSeedJacobian_unmanaged(double*** dp3_LeftSeed, int *ip1_LeftSeedRowCount, int *ip1_LeftSeedColumnCount, double*** dp3_RightSeed, int *ip1_RightSeedRowCount, int *ip1_RightSeedColumnCount, string s_OrderingVariant="NATURAL", string s_BicoloringVariant = "IMPLICIT_COVERING__STAR_BICOLORING");
+
+
+		/// Bicolor the bipartite graph based on the requested s_BicoloringVariant and s_OrderingVariant
+		/**	This function will
+		- 1. Order the vertices based on the requested Ordering variant (s_OrderingVariant)
+		- 2. Bicolor the graph based on the requested Bicoloring variant (s_BicoloringVariant)
+		- Ordering Time and Coloring Time will be recorded.
+
+		About input parameters:
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "DYNAMIC_LARGEST_FIRST"
+			- "SMALLEST_LAST"
+			- "INCIDENCE_DEGREE"
+			- "RANDOM"
+
+		- s_BicoloringVariant can be either
+			- "IMPLICIT_COVERING__STAR_BICOLORING" (default)
+			- "EXPLICIT_COVERING__STAR_BICOLORING"
+			- "EXPLICIT_COVERING__MODIFIED_STAR_BICOLORING"
+			- "IMPLICIT_COVERING__GREEDY_STAR_BICOLORING"
+
+		Postcondition:
+		- The Bipartite Graph is Bicolored, i.e., m_vi_LeftVertexColors and m_vi_RightVertexColors will be populated.
+		*/
+		int Bicoloring(string s_OrderingVariant = "NATURAL", string s_BicoloringVariant = "IMPLICIT_COVERING__STAR_BICOLORING");
+
+		///Return the Left Seed matrix
+		double** GetLeftSeedMatrix(int* ip1_LeftSeedRowCount, int* ip1_LeftSeedColumnCount);
+
+		///Return the Right Seed matrix
+		double** GetRightSeedMatrix(int* ip1_RightSeedRowCount, int* ip1_RightSeedColumnCount);
+
+		void GetOrderedVertices(vector<int> &output);
+	private:
+
+		Timer m_T_Timer;
+
+	public:
+		//Public Destructor 3702
+		~BipartiteGraphBicoloringInterface();
+
+		//Virtual Function 3703
+		virtual void Clear();
+
+		//Virtual Function 3704
+		virtual void Reset();
+
+
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphCore.cpp
@@ -0,0 +1,228 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Virtual Function 2102:3102
+	void BipartiteGraphCore::Clear()
+	{
+		m_i_MaximumLeftVertexDegree = _UNKNOWN;
+		m_i_MaximumRightVertexDegree = _UNKNOWN;
+		m_i_MaximumVertexDegree = _UNKNOWN;
+
+		m_i_MinimumLeftVertexDegree = _UNKNOWN;
+		m_i_MinimumRightVertexDegree = _UNKNOWN;
+		m_i_MinimumVertexDegree = _UNKNOWN;
+
+		m_d_AverageLeftVertexDegree = _UNKNOWN;
+		m_d_AverageRightVertexDegree = _UNKNOWN;
+		m_d_AverageVertexDegree = _UNKNOWN;
+
+		m_s_InputFile.clear();
+
+		m_vi_LeftVertices.clear();
+		m_vi_RightVertices.clear();
+
+		m_vi_Edges.clear();
+
+		m_mimi2_VertexEdgeMap.clear();
+
+	}
+
+	//Public Function 2103:3103
+	string BipartiteGraphCore::GetInputFile()
+	{
+		return(m_s_InputFile);
+	}
+
+	vector<int>* BipartiteGraphCore::GetLeftVerticesPtr()
+	{
+		return &m_vi_LeftVertices;
+	}
+
+	vector<int>* BipartiteGraphCore::GetRightVerticesPtr()
+	{
+		return &m_vi_RightVertices;
+	}
+
+
+	//Public Function 2104:3104
+	void BipartiteGraphCore::GetRowVertices(vector<int> &output)  const
+	{
+		output = (m_vi_LeftVertices);
+	}
+
+	unsigned int BipartiteGraphCore::GetRowVertices(unsigned int** ip2_RowVertex)
+	{
+		(*ip2_RowVertex) = (unsigned int*) malloc(m_vi_LeftVertices.size() * sizeof(unsigned int));
+		for(unsigned int i=0; i < m_vi_LeftVertices.size(); i++) {
+			(*ip2_RowVertex)[i] = m_vi_LeftVertices[i];
+		}
+		return m_vi_LeftVertices.size();
+	}
+
+	unsigned int BipartiteGraphCore::GetColumnIndices(unsigned int** ip2_ColumnIndex)
+	{
+		unsigned int ui_UpperBound = m_vi_LeftVertices[m_vi_LeftVertices.size() - 1];
+		(*ip2_ColumnIndex) = (unsigned int*) malloc(ui_UpperBound * sizeof(unsigned int));
+		for(unsigned int i=0; i < ui_UpperBound; i++) {
+			(*ip2_ColumnIndex)[i] = m_vi_Edges[i];
+		}
+		return ui_UpperBound;
+	}
+
+	void BipartiteGraphCore::GetLeftVertices(vector<int> &output)  const
+	{
+		output = (m_vi_LeftVertices);
+	}
+
+	//Public Function 2105:3105
+	void BipartiteGraphCore::GetColumnVertices(vector<int> &output)  const
+	{
+		output = (m_vi_RightVertices);
+	}
+
+	void BipartiteGraphCore::GetRightVertices(vector<int> &output)  const
+	{
+		output = (m_vi_RightVertices);
+	}
+
+	//Public Function 2106:3106
+	void BipartiteGraphCore::GetEdges(vector<int> &output)  const
+	{
+		output = (m_vi_Edges);
+	}
+
+	//Public Function 2107:3107
+	void BipartiteGraphCore::GetVertexEdgeMap(map< int, map<int, int> > &output)
+	{
+		output = (m_mimi2_VertexEdgeMap);
+	}
+
+
+	//Public Function 2108:3108
+	int BipartiteGraphCore::GetRowVertexCount()
+	{
+		return(STEP_DOWN(m_vi_LeftVertices.size()));
+	}
+
+	int BipartiteGraphCore::GetLeftVertexCount()
+	{
+		return(STEP_DOWN(m_vi_LeftVertices.size()));
+	}
+
+
+	//Public Function 2109:3109
+	int BipartiteGraphCore::GetColumnVertexCount()
+	{
+		return(STEP_DOWN(m_vi_RightVertices.size()));
+	}
+
+	int BipartiteGraphCore::GetRightVertexCount()
+	{
+		return(STEP_DOWN(m_vi_RightVertices.size()));
+	}
+
+
+	//Public Function 2110:3110
+	int BipartiteGraphCore::GetEdgeCount()
+	{
+		return(m_vi_Edges.size()/2);
+	}
+
+
+	//Public Function 2111:3111
+	int BipartiteGraphCore::GetMaximumRowVertexDegree()
+	{
+		return(m_i_MaximumLeftVertexDegree);
+	}
+
+
+	//Public Function 2112:3112
+	int BipartiteGraphCore::GetMaximumColumnVertexDegree()
+	{
+		return(m_i_MaximumRightVertexDegree);
+	}
+
+
+	//Public Function 2113:3113
+	int BipartiteGraphCore::GetMaximumVertexDegree()
+	{
+		return(m_i_MaximumVertexDegree);
+	}
+
+
+	//Public Function 2114:3114
+	int BipartiteGraphCore::GetMinimumRowVertexDegree()
+	{
+		return(m_i_MinimumLeftVertexDegree);
+	}
+
+
+	//Public Function 2115:3115
+	int BipartiteGraphCore::GetMinimumColumnVertexDegree()
+	{
+		return(m_i_MinimumRightVertexDegree);
+	}
+
+
+	//Public Function 2116:3116
+	int BipartiteGraphCore::GetMinimumVertexDegree()
+	{
+		return(m_i_MinimumVertexDegree);
+	}
+
+
+	//Public Function 2117:3117
+	double BipartiteGraphCore::GetAverageRowVertexDegree()
+	{
+		return(m_d_AverageLeftVertexDegree);
+	}
+
+	//Public Function 2118:3118
+	double BipartiteGraphCore::GetAverageColumnVertexDegree()
+	{
+		return(m_d_AverageRightVertexDegree);
+	}
+
+	//Public Function 2119:3119
+	double BipartiteGraphCore::GetAverageVertexDegree()
+	{
+		return(m_d_AverageVertexDegree);
+	}
+
+	bool BipartiteGraphCore::operator==(const BipartiteGraphCore &other) const {
+		// Check for self-assignment!
+		if (this == &other)      // Same object?
+		  return true;        // Yes, so the 2 objects are equal
+
+		//Compare vector<int> m_vi_LeftVertices; vector<int> m_vi_RightVertices; vector<int> m_vi_Edges;
+		vector<int> other_LeftVertices, other_RightVertices, other_Edges;
+
+		other.GetLeftVertices(other_LeftVertices);
+		other.GetRightVertices(other_RightVertices);
+		other.GetEdges(other_Edges);
+
+		/*
+		if(m_vi_LeftVertices==other_LeftVertices) cout<<"m_vi_LeftVertices==other_LeftVertices"<<endl;
+		else  cout<<"m_vi_LeftVertices!=other_LeftVertices"<<endl;
+
+		if(m_vi_Edges==other_Edges) cout<<"m_vi_Edges==other_Edges"<<endl;
+		else  cout<<"m_vi_Edges!=other_Edges"<<endl;
+
+		if( m_vi_RightVertices==other_RightVertices) cout<<" m_vi_RightVertices==other_RightVertices"<<endl;
+		else  cout<<"m_vi_RightVertices!=other_RightVertices"<<endl;
+		//*/
+
+		if(m_vi_LeftVertices==other_LeftVertices && m_vi_Edges==other_Edges && m_vi_RightVertices==other_RightVertices ) return true;
+		else return false;
+
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphCore.h
@@ -0,0 +1,111 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHCORE_H
+#define BIPARTITEGRAPHCORE_H
+
+namespace ColPack
+{
+	/** @ingroup group2
+	 *  @brief class BipartiteGraphCore in @link group2@endlink.
+
+	 Base class for Bipartite Graph. Define a Bipartite Graph: left vertices, right vertices and edges; and its statisitcs: max, min and average degree.
+	*/
+	class BipartiteGraphCore
+	{
+	public: //DOCUMENTED
+
+		/// LeftVertexCount = RowVertexCount = m_vi_LeftVertices.size() -1
+		int GetRowVertexCount();
+		/// LeftVertexCount = RowVertexCount = m_vi_LeftVertices.size() -1
+		int GetLeftVertexCount();
+
+
+		/// RightVertexCount = ColumnVertexCount = m_vi_RightVertices.size() -1
+		int GetColumnVertexCount();
+		/// RightVertexCount = ColumnVertexCount = m_vi_RightVertices.size() -1
+		int GetRightVertexCount();
+
+		bool operator==(const BipartiteGraphCore &other) const;
+
+	protected:
+
+		int m_i_MaximumLeftVertexDegree;
+		int m_i_MaximumRightVertexDegree;
+		int m_i_MaximumVertexDegree;
+
+		int m_i_MinimumLeftVertexDegree;
+		int m_i_MinimumRightVertexDegree;
+		int m_i_MinimumVertexDegree;
+
+		double m_d_AverageLeftVertexDegree;
+		double m_d_AverageRightVertexDegree;
+		double m_d_AverageVertexDegree;
+
+		string m_s_InputFile;
+
+		vector<int> m_vi_LeftVertices;
+		vector<int> m_vi_RightVertices;
+
+		vector<int> m_vi_Edges;
+
+		map< int, map<int, int> > m_mimi2_VertexEdgeMap;
+
+
+	public:
+
+		virtual ~BipartiteGraphCore(){}
+
+		virtual void Clear();
+
+		string GetInputFile();
+
+		vector<int>* GetLeftVerticesPtr() ;
+		vector<int>* GetRightVerticesPtr() ;
+
+                const vector<int>& GetLeftVertices() const { return m_vi_LeftVertices; }
+                const vector<int>& GetRightVertices() const { return m_vi_RightVertices;}
+                const int GetMaximumLeftVertexDegree() const { return m_i_MaximumLeftVertexDegree; }
+                const int GetMaximumRightVertexDegree() const { return m_i_MaximumRightVertexDegree; }
+		const vector<int>& GetEdges() const { return m_vi_Edges; }
+                void GetRowVertices(vector<int> &output) const;
+		void GetLeftVertices(vector<int> &output) const;
+
+		void GetColumnVertices(vector<int> &output) const;
+		void GetRightVertices(vector<int> &output) const;
+
+		unsigned int GetRowVertices(unsigned int** ip2_RowVertex);
+		unsigned int GetColumnIndices(unsigned int** ip2_ColumnIndex);
+
+		void GetEdges(vector<int> &output) const;
+
+		void GetVertexEdgeMap(map< int, map<int, int> > &output);
+
+		int GetEdgeCount();
+
+		int GetMaximumRowVertexDegree();
+
+
+		int GetMaximumColumnVertexDegree();
+
+		int GetMaximumVertexDegree();
+
+		int GetMinimumRowVertexDegree();
+
+		int GetMinimumColumnVertexDegree();
+
+		int GetMinimumVertexDegree();
+
+		double GetAverageRowVertexDegree();
+
+		double GetAverageColumnVertexDegree();
+
+		double GetAverageVertexDegree();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphInputOutput.cpp
@@ -0,0 +1,1423 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+#include <unordered_map>
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 2201;3201
+	void BipartiteGraphInputOutput::CalculateVertexDegrees()
+	{
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		int i_TotalLeftVertexDegree = _FALSE;
+
+		int i_TotalRightVertexDegree = _FALSE;
+
+		i_TotalLeftVertexDegree = i_TotalRightVertexDegree = m_vi_Edges.size()/2;
+
+		for(int i = 0; i < i_LeftVertexCount; i++)
+		{
+			int i_VertexDegree = m_vi_LeftVertices[i + 1] - m_vi_LeftVertices[i];
+
+			if(m_i_MaximumLeftVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumLeftVertexDegree = i_VertexDegree;
+			}
+
+			if(m_i_MinimumLeftVertexDegree == _UNKNOWN)
+			{
+				m_i_MinimumLeftVertexDegree = i_VertexDegree;
+			}
+			else if(m_i_MinimumLeftVertexDegree > i_VertexDegree)
+			{
+				m_i_MinimumLeftVertexDegree = i_VertexDegree;
+			}
+		}
+
+		for(int i = 0; i < i_RightVertexCount; i++)
+		{
+			int i_VertexDegree = m_vi_RightVertices[i + 1] - m_vi_RightVertices[i];
+
+			if(m_i_MaximumRightVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumRightVertexDegree = i_VertexDegree;
+			}
+
+			if(m_i_MinimumRightVertexDegree == _UNKNOWN)
+			{
+				m_i_MinimumRightVertexDegree = i_VertexDegree;
+			}
+			else if(m_i_MinimumRightVertexDegree > i_VertexDegree)
+			{
+				m_i_MinimumRightVertexDegree = i_VertexDegree;
+			}
+		}
+
+		m_i_MaximumVertexDegree = m_i_MaximumLeftVertexDegree>m_i_MaximumRightVertexDegree?m_i_MaximumLeftVertexDegree:m_i_MaximumRightVertexDegree;
+		m_i_MinimumVertexDegree = m_i_MinimumLeftVertexDegree<m_i_MinimumRightVertexDegree?m_i_MinimumLeftVertexDegree:m_i_MinimumRightVertexDegree;
+
+		m_d_AverageLeftVertexDegree = (double)i_TotalLeftVertexDegree/i_LeftVertexCount;
+		m_d_AverageRightVertexDegree = (double)i_TotalRightVertexDegree/i_RightVertexCount;
+		m_d_AverageVertexDegree = (double)(i_TotalLeftVertexDegree + i_TotalRightVertexDegree)/(i_LeftVertexCount + i_RightVertexCount);
+
+		return;
+
+	}
+
+	//Public Constructor 2251;3251
+	BipartiteGraphInputOutput::BipartiteGraphInputOutput()
+	{
+		Clear();
+	}
+
+	//Public Destructor 2252;3252
+	BipartiteGraphInputOutput::~BipartiteGraphInputOutput()
+	{
+		Clear();
+	}
+
+	//Virtual Function 2254;3254
+	void BipartiteGraphInputOutput::Clear()
+	{
+		BipartiteGraphCore::Clear();
+
+		return;
+	}
+
+	int BipartiteGraphInputOutput::WriteMatrixMarket(string s_OutputFile)
+	{
+		ofstream out (s_OutputFile.c_str());
+		if(!out) {
+			cout<<"Error creating file: \""<<s_OutputFile<<"\""<<endl;
+			exit(1);
+		}
+
+		int max = m_vi_LeftVertices.size()-1;
+
+		out<<"%%MatrixMarket matrix coordinate real general"<<endl;
+
+		out<<GetLeftVertexCount()<<" "<<GetRightVertexCount()<<" "<< GetEdgeCount()<<endl;
+
+		for(int i = 0; i<max;i++) {
+		  for(int j = m_vi_LeftVertices[i]; j < m_vi_LeftVertices[i+1]; j++) {
+		    out<<i+1<<" "<<m_vi_Edges[j]+1;
+		    out<<endl;
+		  }
+		}
+
+		return 0;
+	}
+
+	int BipartiteGraphInputOutput::ReadMatrixMarketBipartiteGraph(string s_InputFile)
+	{
+		bool b_symmetric;
+
+		istringstream in2;
+		int entry_counter = 0, num_of_entries = 0, nz_counter=0;
+		//bool value_not_specified = false;
+		int i_LineCount = _TRUE;
+
+		int i, j;
+
+
+		int i_RowCount, i_ColumnCount;
+
+		int i_LeftVertex, i_RightVertex;
+		double d_Value;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_VertexDegree;
+
+		int i_EdgeCount;
+
+		string _GAP(" ");
+
+		string s_InputLine;
+
+		ifstream InputStream;
+
+		vector<string> vs_InputTokens;
+
+		vector< vector<int> > v2i_LeftVertexAdjacency, v2i_RightVertexAdjacency;
+
+		Clear();
+
+		i_EdgeCount = _FALSE;
+
+		i_LeftVertexCount = i_RightVertexCount = _FALSE;
+
+		m_s_InputFile = s_InputFile;
+
+
+		//READ IN BANNER
+		MM_typecode matcode;
+		FILE *f;
+		if ((f = fopen(m_s_InputFile.c_str(), "r")) == NULL)  {
+		  cout<<m_s_InputFile<<" not Found!"<<endl;
+		  exit(1);
+		}
+		else cout<<"Found file "<<m_s_InputFile<<endl;
+
+		if (mm_read_banner(f, &matcode) != 0)
+		{
+		    printf("Could not process Matrix Market banner.\n");
+		    exit(1);
+		}
+
+		if(mm_is_symmetric(matcode)) {
+		  b_symmetric = true;
+		}
+		else b_symmetric = false;
+
+		//Check and make sure that the input file is supported
+		char * result = mm_typecode_to_str(matcode);
+		printf("Graph of Market Market type: [%s]\n", result);
+		free(result);
+		if( !( 
+                            mm_is_coordinate(matcode) && 
+                            (mm_is_symmetric(matcode) || mm_is_general(matcode) ) && 
+                            ( mm_is_real(matcode) || mm_is_pattern(matcode) || mm_is_integer(matcode) )
+                     ) 
+                ) {
+		  printf("Sorry, this application does not support this type.");
+		  exit(1);
+		}
+
+		fclose(f);
+		//DONE - READ IN BANNER
+
+
+		InputStream.open(m_s_InputFile.c_str());
+
+		if(!InputStream)
+		{
+			cout<<"File "<<m_s_InputFile<<" Not Found"<<endl;
+			return _FALSE;
+		}
+		else
+		{
+			//cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+
+		do
+		{
+			getline(InputStream, s_InputLine);
+
+			if(!InputStream)
+			{
+				break;
+			}
+
+			if(s_InputLine=="")
+			{
+				break;
+			}
+
+			if(s_InputLine[0]=='%')
+			{
+				continue;
+			}
+
+			if(i_LineCount == _TRUE)
+			{
+				in2.clear();
+				in2.str(s_InputLine);
+				in2>>i_RowCount>>i_ColumnCount>>num_of_entries;
+				i_EdgeCount = num_of_entries;
+
+				i_LeftVertexCount = i_RowCount;
+				i_RightVertexCount = i_ColumnCount;
+
+				v2i_LeftVertexAdjacency.clear();
+				v2i_LeftVertexAdjacency.resize((unsigned) i_LeftVertexCount);
+
+				v2i_RightVertexAdjacency.clear();
+				v2i_RightVertexAdjacency.resize((unsigned) i_RightVertexCount);
+			}
+
+			if((i_LineCount > _TRUE) && (i_LineCount <= STEP_UP(i_EdgeCount)))
+			{
+//cout<<"i_LineCount = "<<i_LineCount<<endl;
+				in2.clear();
+				in2.str(s_InputLine);
+				d_Value =-999999999.;
+				//value_not_specified=false;
+				in2>>i_LeftVertex>>i_RightVertex>>d_Value;
+				entry_counter++;
+				if(d_Value == -999999999. && in2.eof()) {
+				  // "d_Value" entry is not specified
+				  //value_not_specified = true;
+				}
+				else if (d_Value == 0) {
+				  continue;
+				}
+
+//cout<<"\t i_LeftVertex = "<<i_LeftVertex<<"; i_RightVertex = "<<i_RightVertex<<endl;
+
+				v2i_LeftVertexAdjacency[STEP_DOWN(i_LeftVertex)].push_back(STEP_DOWN(i_RightVertex));
+				v2i_RightVertexAdjacency[STEP_DOWN(i_RightVertex)].push_back(STEP_DOWN(i_LeftVertex));
+				nz_counter++;
+
+				if(b_symmetric && (i_RightVertex != i_LeftVertex)) {
+//cout<<"\t i_LeftVertex = "<<i_LeftVertex<<"; i_RightVertex = "<<i_RightVertex<<endl;
+				  v2i_LeftVertexAdjacency[STEP_DOWN(i_RightVertex)].push_back(STEP_DOWN(i_LeftVertex));
+				  v2i_RightVertexAdjacency[STEP_DOWN(i_LeftVertex)].push_back(STEP_DOWN(i_RightVertex));
+				  nz_counter++;
+				}
+			}
+
+			i_LineCount++;
+
+		}
+		while(InputStream);
+
+		InputStream.close();
+
+		if(entry_counter < num_of_entries) { //entry_counter should be == num_of_entries
+			cerr<<"* WARNING: BipartiteGraphInputOutput::ReadMatrixMarketBipartiteGraph()"<<endl;
+			cerr<<"*\t entry_counter<num_of_entries. Wrong input format. Can't process."<<endl;
+			cerr<<"\t # entries so far: "<<entry_counter<<"/"<<num_of_entries<<endl;
+			exit(-1);
+		}
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+
+			i_VertexDegree = (signed) v2i_LeftVertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				m_vi_Edges.push_back(v2i_LeftVertexAdjacency[i][j]);
+			}
+		}
+
+		m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+
+			i_VertexDegree = (signed) v2i_RightVertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				m_vi_Edges.push_back(v2i_RightVertexAdjacency[i][j]);
+			}
+		}
+
+		m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+
+		CalculateVertexDegrees();
+
+
+#if DEBUG == 2255 || DEBUG == 3255
+
+		int k;
+
+		cout<<endl;
+		cout<<"DEBUG 2255;3255 | Graph Coloring | Left Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = mvi_LeftVertices[STEP_UP(i)] - mvi_LeftVertices[i];
+
+			k = _FALSE;
+
+			for(j=mvi_LeftVertices[i]; j<mvi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 2255;3255 | Graph Coloring | Right Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = mvi_RightVertices[STEP_UP(i)] - mvi_RightVertices[i];
+
+			k = _FALSE;
+
+			for(j=mvi_RightVertices[i]; j<mvi_RightVertices[STEP_UP(i)]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Left Vertices = "<<i_LeftVertexCount<<"; Right Vertices = "<<i_RightVertexCount<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+	//Public Function 2256;3256
+	int BipartiteGraphInputOutput::ReadMeTiSBipartiteGraph(string s_InputFile)
+	{
+		Clear();
+
+		m_s_InputFile=s_InputFile;
+		ifstream InputStream (m_s_InputFile.c_str());
+
+		if(!InputStream)
+		{
+			cout<<"File "<<m_s_InputFile<<" Not Found"<<endl;
+			return _FALSE;
+		}
+		else
+		{
+			cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+
+		//initialize local data
+		int rowCounter=0, row=0, edges=0, num=0, numCount=0;
+		istringstream in2;
+		string line="";
+		map<int,vector<int> > colList;
+
+		getline(InputStream,line);
+		rowCounter++;
+		in2.str(line);
+		in2>>row>>edges;
+		m_vi_LeftVertices.push_back(m_vi_Edges.size());
+
+		while(!InputStream.eof())
+		{
+			getline(InputStream,line);
+			if(line!="")
+			{
+				//cout<<"["<<lineCount<<"] \""<<line<<"\""<<endl;
+				in2.clear();
+				in2.str(line);
+				while(in2>>num)
+				{
+					num--;
+					m_vi_Edges.push_back(num);
+					colList[num].push_back(rowCounter-1);
+					numCount++;
+					//cout<<"\tpush_back "<<num<<endl;
+					//cout<<"\tnumCount="<<numCount<<endl;
+				}
+			}
+			rowCounter++;
+			m_vi_LeftVertices.push_back(m_vi_Edges.size());
+		}
+		rowCounter--;
+		m_vi_LeftVertices.pop_back();
+		if(rowCounter!=row+1 || edges*2!=numCount)
+		{
+			cout<<"Read fail: rowCounter!=row+1 || edges*2!=numCount"<<endl;
+			cout<<"Read fail: "<<rowCounter<<"!="<<row+1<<" || "<<edges*2<<"!="<<numCount<<endl;
+			return _FALSE;
+		}
+
+		//put together the right vertices
+		m_vi_RightVertices.push_back(m_vi_Edges.size());
+		for(int i=0;i<row; i++) {
+			m_vi_Edges.insert(m_vi_Edges.end(),colList[i].begin(),colList[i].end());
+			m_vi_RightVertices.push_back(m_vi_Edges.size());
+		}
+
+		/*
+		cout<<"--------------------------------------------------------"<<endl;
+		cout<<"numCount="<<numCount<<endl;
+		cout<<"lineCount="<<lineCount<<endl;
+		cout<<"Left vector:";
+		for(int i=0;i<m_vi_LeftVertices.size();i++) cout<<"["<<i<<"] "<<m_vi_LeftVertices[i]<<"; ";
+		cout<<endl<<"Right vector:";
+		for(int i=0;i<m_vi_RightVertices.size();i++) cout<<"["<<i<<"] "<<m_vi_RightVertices[i]<<"; ";
+		cout<<endl<<"Edges vector:";
+		for(int i=0;i<m_vi_Edges.size();i++) cout<<"["<<i<<"] "<<m_vi_Edges[i]<<"; ";
+		cout<<endl<<"--------------------------------------------------------"<<endl;
+		//*/
+
+		CalculateVertexDegrees();
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphInputOutput::ReadHarwellBoeingBipartiteGraph(string s_InputFile) {
+		Clear();
+
+		m_s_InputFile=s_InputFile;
+		ifstream in (m_s_InputFile.c_str());
+
+		if(!in)
+		{
+			cout<<"File "<<m_s_InputFile<<" Not Found"<<endl;
+			return _FALSE;
+		}
+		else
+		{
+			cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+
+		//int i_Dummy; //unused variable
+                int i, j;
+		int num;
+		int nnz;
+		string line, num_string;
+		istringstream iin;
+		vector< vector<int> > vvi_LeftVertexAdjacency, vvi_RightVertexAdjacency;
+		vector<int> vi_ColumnStartPointers;
+
+		//ignore the first line, which is the tittle and key
+		getline(in, line);
+
+		// Get line 2
+		int TOTCRD; // (ignored) Total number of lines excluding header
+		int PTRCRD; // (ignored) Number of lines for pointers
+		int INDCRD; // (ignored) Number of lines for row (or variable) indices
+		int VALCRD; // (ignored) Number of lines for numerical values. VALCRD == 0 if no values is presented
+		int RHSCRD; // (ignored) Number of lines for right-hand sides. RHSCRD == 0 if no right-hand side data is presented
+
+		getline(in, line);
+		iin.clear();
+		iin.str(line);
+		iin >> TOTCRD >> PTRCRD >> INDCRD >> VALCRD >> RHSCRD;
+
+		// Get line 3
+		string MXTYPE; //Matrix type. We only accept: (R | P) (*) (A)
+		int NROW; // Number of rows (or left vertices)
+		int NCOL; // Number of columns (or  right vertices)
+		int NNZERO; // (ignored) Number of nonzeros
+			    // in case of symmetric matrix, it is the number of nonzeros IN THE UPPER TRIANGULAR including the diagonal
+		int NELTVL; // (ignored) Number of elemental matrix entries (zero in the case of assembled matrices)
+		bool b_symmetric; // true if this matrix is symmetric (MXTYPE[1] == 'S'), false otherwise.
+
+		getline(in, line);
+		iin.clear();
+		iin.str(line);
+		iin >> MXTYPE >> NROW >> NCOL >> NNZERO >> NELTVL;
+		if(MXTYPE[2] == 'E') {
+		  cerr<<"ERR: Elemental matrices (unassembled) format is not supported"<<endl;
+		  exit(-1);
+		}
+		if(MXTYPE[1] == 'S') {
+		  if(NROW != NCOL) {
+		    cerr<<"ERR: The matrix is declared symmetric but NROW != NCOL"<<endl;
+		    exit(-1);
+		  }
+		  b_symmetric = true;
+		}
+		else b_symmetric = false;
+
+		// Ignore line 4 for now
+		getline(in, line);
+
+		//If the right-hand side data is presented, ignore the 5th header line
+		if(RHSCRD) getline(in, line);
+
+		m_vi_LeftVertices.clear();
+		m_vi_LeftVertices.resize(NROW+1, _UNKNOWN);
+		m_vi_RightVertices.clear();
+		m_vi_RightVertices.resize(NCOL+1, _UNKNOWN);
+		vvi_LeftVertexAdjacency.clear();
+		vvi_LeftVertexAdjacency.resize(NROW);
+		vvi_RightVertexAdjacency.clear();
+		vvi_RightVertexAdjacency.resize(NCOL);
+		vi_ColumnStartPointers.clear();
+		vi_ColumnStartPointers.resize(NCOL+1);
+
+		// get the 2nd data block: column start pointers
+		for(int i=0; i<NCOL+1; i++) {
+		  in>> vi_ColumnStartPointers[i];
+		}
+
+		//populate vvi_LeftVertexAdjacency & vvi_RightVertexAdjacency
+		nnz = 0;
+		for(i=0; i<NCOL; i++) {
+		  for(j=vi_ColumnStartPointers[i]; j< vi_ColumnStartPointers[i+1]; j++) {
+		    in>> num;
+		    num--;
+		    vvi_RightVertexAdjacency[i].push_back(num);
+		    vvi_LeftVertexAdjacency[num].push_back(i);
+		    nnz++;
+
+		    if(b_symmetric && num != i) {
+		      vvi_RightVertexAdjacency[num].push_back(i);
+		      vvi_LeftVertexAdjacency[i].push_back(num);
+		      nnz++;
+		    }
+		  }
+		}
+
+		m_vi_Edges.clear();
+		m_vi_Edges.resize(2*nnz, _UNKNOWN);
+		//populate the m_vi_LeftVertices and their edges at the same time
+		m_vi_LeftVertices[0]=0;
+		for(i=0; i<NROW; i++) {
+		  for(j=0; j<(int)vvi_LeftVertexAdjacency[i].size();j++) {
+		    m_vi_Edges[m_vi_LeftVertices[i]+j] = vvi_LeftVertexAdjacency[i][j];
+		  }
+
+		  m_vi_LeftVertices[i+1] = m_vi_LeftVertices[i]+vvi_LeftVertexAdjacency[i].size();
+		}
+
+		//populate the m_vi_RightVertices and their edges at the same time
+		m_vi_RightVertices[0]=m_vi_LeftVertices[NROW];
+		for(i=0; i<NCOL; i++) {
+		  for(j=0; j<(int)vvi_RightVertexAdjacency[i].size();j++) {
+		    m_vi_Edges[m_vi_RightVertices[i]+j] = vvi_RightVertexAdjacency[i][j];
+		  }
+
+		  m_vi_RightVertices[i+1] = m_vi_RightVertices[i]+vvi_RightVertexAdjacency[i].size();
+		}
+
+		return 0;
+	}
+
+	//Public Function 2258;3258
+	int BipartiteGraphInputOutput::ReadGenericMatrixBipartiteGraph(string s_InputFile)
+	{
+		Clear();
+
+		m_s_InputFile=s_InputFile;
+
+		//initialize local data
+		int rowCounter=0, colCounter=0, row=0, col=0, tempNum=0;
+		istringstream in2;
+		string line="";
+
+		map< int,vector<int> > colList;
+
+		ifstream InputStream (m_s_InputFile.c_str());
+		if(!InputStream)
+		{
+			cout<<"Not Found File "<<m_s_InputFile<<endl;
+		}
+		else
+		{
+			cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+
+		//now find the dimension of the matrix
+		string sRow="", sCol="";
+		int tempCounter=s_InputFile.size()-1;
+		bool getRow=0, firstTime=1;
+		//read the file name from right to left, get number of rows and cols
+		for(; tempCounter>-1;tempCounter--)
+		{
+			if(s_InputFile[tempCounter]=='\\') {tempCounter=0; continue;}//end of the filename
+			if(getRow)
+			{
+				if(s_InputFile[tempCounter]<'0'||s_InputFile[tempCounter]>'9')
+				{
+					if(firstTime) continue;
+					else  break;
+				}
+				else firstTime=0;
+				sRow=s_InputFile[tempCounter]+sRow;
+			}
+			else
+			{
+				//touch the "by", switch to getRow
+				if(s_InputFile[tempCounter]<'0'||s_InputFile[tempCounter]>'9')
+				{
+					if(firstTime) continue;
+					else {firstTime=1;getRow=1; continue;}
+				}
+				else firstTime=0;
+				sCol=s_InputFile[tempCounter]+sCol; //finish with sCol, switch to sRow
+			}
+		}
+		if (tempCounter==-1)
+		{
+			cout<<"Input file\""<<s_InputFile<<"\" has a wrong name format"<<endl;
+			return _FALSE;
+		}
+		in2.clear();in2.str(sRow);in2>>row;
+		in2.clear();in2.str(sCol);in2>>col;
+		cout<<"Matrix: "<<row<<" x "<<col<<endl;
+
+		//Start reading the graph, row by row
+		m_vi_LeftVertices.push_back(m_vi_Edges.size());
+		for(;rowCounter<row;rowCounter++)
+		{
+			colCounter=0;
+			getline(InputStream,line);
+			if(line=="") break;
+			in2.clear(); in2.str(line);
+			while(in2>>tempNum)
+			{
+				if(tempNum)
+				{
+					m_vi_Edges.push_back(colCounter);
+					colList[colCounter].push_back(rowCounter);
+				}
+				colCounter++;
+			}
+			m_vi_LeftVertices.push_back(m_vi_Edges.size());
+			if (colCounter!=col)
+			{
+				cerr<<"WARNING: BipartiteGraphInputOutput::ReadGenericMatrixBipartiteGraph()"<<endl;
+				cerr<<"Input file\""<<s_InputFile<<"\" has a wrong format. The number of entries in 1 column < # of columns"<<endl;
+				return _FALSE;
+			}
+		}
+		if (rowCounter!=row)
+		{
+			cerr<<"WARNING: BipartiteGraphInputOutput::ReadGenericMatrixBipartiteGraph()"<<endl;
+			cout<<"Input file\""<<s_InputFile<<"\" has a wrong format. The number of rows is less than what it suppose to be"<<endl;
+			return _FALSE;
+		}
+		//put together the right vertices
+		m_vi_RightVertices.push_back(m_vi_Edges.size());
+		for(int i=0;i<col; i++) {
+			m_vi_Edges.insert(m_vi_Edges.end(),colList[i].begin(),colList[i].end());
+			m_vi_RightVertices.push_back(m_vi_Edges.size());
+		}
+
+		CalculateVertexDegrees();
+
+		return (_TRUE);
+	}
+
+	//Public Function 2259;3259
+	int BipartiteGraphInputOutput::ReadGenericSquareMatrixBipartiteGraph(string s_InputFile)
+	{
+		Clear();
+
+		m_s_InputFile=s_InputFile;
+		//initialize local data
+		int rowCounter=0, colCounter=0, counter=0, row=0, col=0;
+		istringstream in2;
+		string line="", templ="";
+
+		map< int,vector<int> > colList;
+
+		ifstream InputStream (m_s_InputFile.c_str());
+		if(!InputStream)
+		{
+			cout<<"Not Found File "<<m_s_InputFile<<endl;
+		}
+		else
+		{
+			cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+
+		//now find the dimension of the matrix
+		string sRow="", sCol="";
+		int tempCounter=s_InputFile.size()-1;
+		bool getRow=0, firstTime=1;
+		//read the file name from right to left, get number of rows and cols
+		for(; tempCounter>-1;tempCounter--)
+		{
+			if(s_InputFile[tempCounter]=='\\') {tempCounter=0; continue;}//end of the filename
+			if(getRow)
+			{
+				if(s_InputFile[tempCounter]<'0'||s_InputFile[tempCounter]>'9')
+				{
+					if(firstTime) continue;
+					else  break;
+				}
+				else firstTime=0;
+				sRow=s_InputFile[tempCounter]+sRow;
+			}
+			else
+			{
+				//touch the "by", switch to getRow
+				if(s_InputFile[tempCounter]<'0'||s_InputFile[tempCounter]>'9')
+				{
+					if(firstTime) continue;
+					else {firstTime=1;getRow=1; continue;}
+				}
+				else firstTime=0;
+				sCol=s_InputFile[tempCounter]+sCol; //finish with sCol, switch to sRow
+			}
+		}
+		if (tempCounter==-1)
+		{
+			cout<<"Input file\""<<s_InputFile<<"\" has a wrong name format"<<endl;
+			return _FALSE;
+		}
+		in2.clear();in2.str(sRow);in2>>row;
+		in2.clear();in2.str(sCol);in2>>col;
+		if(row>col) row=col; else col=row;
+		cout<<"Matrix: "<<row<<" x "<<col<<endl;
+
+		//get data
+		while(!InputStream.eof())
+		{
+			getline(InputStream,templ);
+			line+=templ;
+		}
+
+		//Start reading the graph, entry by entry
+		m_vi_LeftVertices.push_back(m_vi_Edges.size());
+		counter=0;
+		for(;rowCounter<row;rowCounter++)
+		{
+			for(colCounter=0;colCounter<row;colCounter++)
+			{
+				if(line[counter]=='1')
+				{
+					m_vi_Edges.push_back(colCounter);
+					colList[colCounter].push_back(rowCounter);
+				}
+				counter++;
+			}
+			m_vi_LeftVertices.push_back(m_vi_Edges.size());
+		}
+
+		//put together the right vertices
+		m_vi_RightVertices.push_back(m_vi_Edges.size());
+		for(int i=0;i<col; i++) {
+			m_vi_Edges.insert(m_vi_Edges.end(),colList[i].begin(),colList[i].end());
+			m_vi_RightVertices.push_back(m_vi_Edges.size());
+		}
+
+		CalculateVertexDegrees();
+
+		return (_TRUE);
+	}
+
+	//Public Function 2260;3260
+	void BipartiteGraphInputOutput::PrintBipartiteGraph()
+	{
+		int i, j, k;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_EdgeCount;
+
+		int i_VertexDegree;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		cout<<endl;
+		cout<<"Bipartite Graph | Left Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			k = _FALSE;
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"Bipartite Graph | Right Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			k = _FALSE;
+
+			for(j=m_vi_RightVertices[i]; j<m_vi_RightVertices[STEP_UP(i)]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Left Vertices = "<<i_LeftVertexCount<<"; Right Vertices = "<<i_RightVertexCount<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	//Public Function 2261;3261
+	void BipartiteGraphInputOutput::PrintVertexDegrees()
+	{
+		cout<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Maximum Row Vertex Degree | "<<m_i_MaximumLeftVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Maximum Column Vertex Degree | "<<m_i_MaximumRightVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Maximum Vertex Degree | "<<m_i_MaximumVertexDegree<<endl;
+		cout<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Minimum Row Vertex Degree | "<<m_i_MinimumLeftVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Minimum Column Vertex Degree | "<<m_i_MinimumRightVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Minimum Vertex Degree | "<<m_i_MinimumVertexDegree<<endl;
+		cout<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Average Row Vertex Degree | "<<m_d_AverageLeftVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Average Column Vertex Degree | "<<m_d_AverageRightVertexDegree<<endl;
+		cout<<"Bipartite Graph | "<<m_s_InputFile<<" | Average Vertex Degree | "<<m_d_AverageVertexDegree<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	int BipartiteGraphInputOutput::BuildBPGraphFromCSRFormat(int* ip_RowIndex, int i_RowCount, int i_ColumnCount, int* ip_ColumnIndex) {
+	  int i;
+	  unsigned int j;
+	  map< int,vector<int> > colList;
+
+	  m_vi_LeftVertices.clear();
+	  m_vi_LeftVertices.reserve(i_RowCount+1);
+	  m_vi_RightVertices.clear();
+	  m_vi_RightVertices.reserve(i_RowCount+1);
+	  m_vi_Edges.clear();
+	  m_vi_Edges.reserve(2*ip_RowIndex[i_RowCount]); //??? !!!
+
+	  m_vi_LeftVertices.push_back(0); //equivalent to m_vi_LeftVertices.push_back(m_vi_Edges.size());
+	  //PrintBipartiteGraph ();
+	  //Pause();
+	  for(i=0; i < i_RowCount; i++) {
+	    for(j=ip_RowIndex[i]; j<(size_t)ip_RowIndex[i+1]; j++) {
+	      m_vi_Edges.push_back(ip_ColumnIndex[j]);
+	      colList[ ip_ColumnIndex[j] ].push_back(i);
+	    }
+	    m_vi_LeftVertices.push_back(m_vi_Edges.size());
+	    //PrintBipartiteGraph ();
+	    //Pause();
+	  }
+
+	  //for(i=0; i < i_RowCount; i++) {
+	//	  for(j=1; j <= uip2_JacobianSparsityPattern[i][0]; j++) {
+	//		  m_vi_Edges.push_back(uip2_JacobianSparsityPattern[i][j]);
+	//		  colList[ uip2_JacobianSparsityPattern[i][j] ].push_back(i);
+	//	  }
+	//	  m_vi_LeftVertices.push_back(m_vi_Edges.size());
+	  //}
+
+	  //put together the right vertices
+	  map< int,vector<int> >::iterator curr;
+	  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  for(int i=0; i <= i_ColumnCount; i++) {
+		  curr = colList.find(i);
+		  if(curr !=colList.end()) {
+			m_vi_Edges.insert(m_vi_Edges.end(),curr->second.begin(),curr->second.end());
+		  }//else  We have an empty column
+		  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  }
+
+	  CalculateVertexDegrees();
+
+	  return (_TRUE);
+	}
+
+	int BipartiteGraphInputOutput::BuildBPGraphFromADICFormat(std::list<std::set<int> > *  lsi_SparsityPattern, int i_ColumnCount) {
+	  //int i;  //unused variable
+	  //unsigned int j; //unused variable
+	  map< int,vector<int> > colList;
+	  int i_RowCount = (*lsi_SparsityPattern).size();
+
+	  m_vi_LeftVertices.clear();
+	  m_vi_LeftVertices.reserve(i_RowCount+1);
+	  m_vi_RightVertices.clear();
+	  m_vi_RightVertices.reserve(i_ColumnCount+1);
+	  m_vi_Edges.clear();
+
+	  m_vi_LeftVertices.push_back(0); // equivalent to m_vi_LeftVertices.push_back(m_vi_Edges.size());
+
+	  int rowIndex=-1, colIndex=-1;
+	  std::list<std::set<int> >::iterator valsetlistiter = (*lsi_SparsityPattern).begin();
+
+	  for (; valsetlistiter != (*lsi_SparsityPattern).end(); valsetlistiter++){
+	    rowIndex++;
+	    std::set<int>::iterator valsetiter = (*valsetlistiter).begin();
+
+	    for (; valsetiter != (*valsetlistiter).end() ; valsetiter++) {
+	      colIndex = *valsetiter;
+	      m_vi_Edges.push_back(colIndex);
+	      colList[colIndex].push_back(rowIndex);
+	    }
+	    m_vi_LeftVertices.push_back(m_vi_Edges.size());
+	  }
+	  m_vi_Edges.reserve(2*m_vi_Edges.size());
+
+	  //put together the right vertices
+	  map< int,vector<int> >::iterator curr;
+	  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  for(int i=0; i < i_ColumnCount; i++) {
+		  curr = colList.find(i);
+		  if(curr !=colList.end()) {
+			m_vi_Edges.insert(m_vi_Edges.end(),curr->second.begin(),curr->second.end());
+		  }//else  We have an empty column
+		  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  }
+
+	  CalculateVertexDegrees();
+	  //cout<<"PrintBipartiteGraph()"<<endl;
+	  //PrintBipartiteGraph();
+	  //Pause();
+	  //cout<<"OUT BipartiteGraphInputOutput::RowCompressedFormat2BipartiteGraph"<<endl;
+	  return _TRUE;
+	}
+
+	int BipartiteGraphInputOutput::BuildBPGraphFromRowCompressedFormat(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount) {
+		return RowCompressedFormat2BipartiteGraph(uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+	}
+
+	int BipartiteGraphInputOutput::RowCompressedFormat2BipartiteGraph(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount) {
+	  //cout<<"IN BipartiteGraphInputOutput::RowCompressedFormat2BipartiteGraph"<<endl;
+	  //initialize local data
+	  int i;
+	  unsigned int j;
+	  map< int,vector<int> > colList;
+
+	  m_vi_LeftVertices.clear();
+	  m_vi_LeftVertices.reserve(i_RowCount+1);
+	  m_vi_RightVertices.clear();
+	  m_vi_RightVertices.reserve(i_ColumnCount+1);
+	  m_vi_Edges.clear();
+	  m_vi_LeftVertices.push_back(m_vi_Edges.size());
+
+	  for(i=0; i < i_RowCount; i++) {
+		  for(j=1; j <= uip2_JacobianSparsityPattern[i][0]; j++) {
+			  m_vi_Edges.push_back(uip2_JacobianSparsityPattern[i][j]);
+			  colList[ uip2_JacobianSparsityPattern[i][j] ].push_back(i);
+		  }
+		  m_vi_LeftVertices.push_back(m_vi_Edges.size());
+	  }
+	  m_vi_Edges.reserve(2*m_vi_Edges.size());
+
+	  //put together the right vertices
+	  map< int,vector<int> >::iterator curr;
+	  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  for(int i=0; i < i_ColumnCount; i++) {
+		  curr = colList.find(i);
+		  if(curr !=colList.end()) {
+			m_vi_Edges.insert(m_vi_Edges.end(),curr->second.begin(),curr->second.end());
+		  }//else  We have an empty column
+		  m_vi_RightVertices.push_back(m_vi_Edges.size());
+	  }
+
+	  CalculateVertexDegrees();
+	  //cout<<"PrintBipartiteGraph()"<<endl;
+	  //PrintBipartiteGraph();
+	  //Pause();
+	  //cout<<"OUT BipartiteGraphInputOutput::RowCompressedFormat2BipartiteGraph"<<endl;
+	  return _TRUE;
+	}
+
+	int BipartiteGraphInputOutput::BipartiteGraph2RowCompressedFormat(unsigned int *** uip3_JacobianSparsityPattern, unsigned int * uip1_RowCount, unsigned int * uip1_ColumnCount) {
+	  //initialize local data
+	  unsigned int i = 0;
+	  unsigned int j = 0;
+	  unsigned int numOfNonZeros = 0;
+	  int offset = 0;
+
+	  unsigned int i_RowCount = GetRowVertexCount();
+	  (*uip1_RowCount) = i_RowCount;
+	  (*uip1_ColumnCount) = GetColumnVertexCount();
+
+	  // Allocate memory and populate (*uip3_JacobianSparsityPattern)
+	  (*uip3_JacobianSparsityPattern) = new unsigned int*[GetRowVertexCount()];
+	  for(i=0; i < i_RowCount; i++) {
+		  numOfNonZeros = m_vi_LeftVertices[i + 1] - m_vi_LeftVertices[i];
+		  (*uip3_JacobianSparsityPattern)[i] = new unsigned int[numOfNonZeros + 1]; // Allocate memory
+		  (*uip3_JacobianSparsityPattern)[i][0] = numOfNonZeros; // Populate the first entry, which contains the number of Non-Zeros
+
+		  // Populate the entries
+		  offset = m_vi_LeftVertices[i] - 1;
+		  for(j=1; j <= numOfNonZeros; j++) {
+			  (*uip3_JacobianSparsityPattern)[i][j] = m_vi_Edges[offset + j];
+		  }
+	  }
+
+	  return _TRUE;
+	}
+
+	int BipartiteGraphInputOutput::ReadBipartiteGraph(string s_InputFile, string s_fileFormat) {
+		if (s_fileFormat == "AUTO_DETECTED" || s_fileFormat == "") {
+			File file(s_InputFile);
+			string fileExtension = file.GetFileExtension();
+			if (isHarwellBoeingFormat(fileExtension)) {
+				//cout<<"ReadHarwellBoeingBipartiteGraph"<<endl;
+				ReadHarwellBoeingBipartiteGraph(s_InputFile);
+			}
+			else if (isMeTiSFormat(fileExtension)) {
+				//cout<<"ReadMeTiSBipartiteGraph"<<endl;
+				ReadMeTiSBipartiteGraph(s_InputFile);
+			}
+			else if (fileExtension == "gen") {
+				//cout<<"ReadGenericMatrixBipartiteGraph"<<endl;
+				ReadGenericMatrixBipartiteGraph(s_InputFile);
+			}
+			else if (fileExtension == "gens") {
+				//cout<<"ReadGenericSquareMatrixBipartiteGraph"<<endl;
+				ReadGenericSquareMatrixBipartiteGraph(s_InputFile);
+			}
+			else if (isMatrixMarketFormat(fileExtension)) {
+				//cout<<"ReadMatrixMarketBipartiteGraph"<<endl;
+				ReadMatrixMarketBipartiteGraph(s_InputFile);
+			}
+			else { //other extensions
+				cout<<"unfamiliar extension, use ReadMatrixMarketBipartiteGraph"<<endl;
+				ReadMatrixMarketBipartiteGraph(s_InputFile);
+			}
+		}
+		else if (s_fileFormat == "MM") {
+			//cout<<"ReadMatrixMarketBipartiteGraph"<<endl;
+			ReadMatrixMarketBipartiteGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "HB") {
+			//cout<<"ReadHarwellBoeingBipartiteGraph"<<endl;
+			ReadHarwellBoeingBipartiteGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "MeTiS") {
+			//cout<<"ReadMeTiSBipartiteGraph"<<endl;
+			ReadMeTiSBipartiteGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "GEN") {
+			//cout<<"ReadGenericMatrixBipartiteGraph"<<endl;
+			ReadGenericMatrixBipartiteGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "GENS") {
+			//cout<<"ReadGenericSquareMatrixBipartiteGraph"<<endl;
+			ReadGenericSquareMatrixBipartiteGraph(s_InputFile);
+		}
+		else {
+			cerr<<"BipartiteGraphInputOutput::ReadBipartiteGraph s_fileFormat is not recognized"<<endl;
+			exit(1);
+		}
+
+		return(_TRUE);
+	}
+
+
+
+        // author xin cheng
+        // 2018 Jul
+	int BipartiteGraphInputOutput::ReadMMBipartiteGraphCpp11(string s_InputFile)
+	{
+            bool b_symmetric=false;
+            int entry_encounter=0, expect_entries=0;
+            int row_count=0, col_count=0;
+
+            string line, word;
+            istringstream iss;
+            Clear();
+
+            m_s_InputFile = s_InputFile;
+            if(s_InputFile=="") {
+                printf("Error, ReadMMBipartiteGraphCpp11() tries to read a graph with empty filename\n"); 
+                exit(1);
+            }
+
+            ifstream in(s_InputFile.c_str());
+            if(!in.is_open()){
+                printf("Error, ReadMMBipartiteGraphCpp11() tries to open \"%s\". But the file cannot be open.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            
+
+            // Parse structure
+            getline(in, line);
+            iss.str(line);
+            if( !(iss>>word) || word!="%%MatrixMarket" || !(iss>>word) || word!="matrix"){
+                printf("Error,ReadMMBipartiteGraphCpp11() tries to open \"%s\". But it is not MatrixMarket format\n",s_InputFile.c_str());
+                exit(1);
+            }
+            if(!(iss>>word) || word!="coordinate"){
+                printf("Error, ReadMMBipartiteGraphCpp11() tries to open \"%s\". But the graph is a complet graph.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            if(!(iss>>word) || word=="complex"){
+                printf("Error, RreadMMBipartiteGraphCpp11() tries to open \"%s\". But the each vertex is complex value.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            //if(!iss>>word || word!="pattern")
+            //    b_value = true;
+            if(!(iss>>word) || word!="general")
+                b_symmetric=true;
+
+
+            // Parse dimension
+            while(in){
+                getline(in,line);
+                if(line==""||line[0]=='%')
+                    continue;
+                break;
+            }
+            if(!in) {
+                printf("Error, ReadMMBipartiteGraphCpp11() tries to open\"%s\". But cannot read dimension inforation.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            iss.clear(); iss.str(line);
+            iss>>row_count>>col_count>>expect_entries;
+            
+
+            // Read matrix into G
+            unordered_map<int, vector<int>> Grow,Gcol;
+            int r,c;
+            while(in){
+                getline(in, line);
+                if(line=="" || line[0]=='%') 
+                    continue;
+                iss.clear(); iss.str(line);
+                entry_encounter++;
+                iss>>r>>c;
+                r--;c--;
+                Grow[r].push_back(c);
+                Gcol[c].push_back(r);
+                if(b_symmetric && r!=c){
+                    Grow[c].push_back(r);
+                    Gcol[r].push_back(c);
+                }
+
+            }
+            in.close();
+            if(entry_encounter!=expect_entries){
+                printf("Error, ReadMMBipartiteGraphCpp11() tries to read \"%s\". But only read %d entries (expect %d)\n",s_InputFile.c_str(), entry_encounter, expect_entries);
+                exit(1);
+            }
+            
+            //for(auto &g : Grow)
+            //    sort(g.second.begin(), g.second.end());
+            //for(auto &g : Gcol)
+            //    sort(g.second.begin(), g.second.end());
+
+            // G into class member 
+            m_i_MaximumLeftVertexDegree = 0;
+            m_i_MinimumLeftVertexDegree = col_count;
+            for(int i=0; i<row_count; i++){
+                m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+                const int deg = Grow[i].size();
+                if(m_i_MaximumLeftVertexDegree < deg) 
+                    m_i_MaximumLeftVertexDegree = deg;
+                if(m_i_MinimumLeftVertexDegree > deg)
+                    m_i_MinimumLeftVertexDegree = deg;
+                m_vi_Edges.insert(m_vi_Edges.end(), Grow[i].begin(), Grow[i].end());
+            }
+            m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+            
+            m_i_MaximumRightVertexDegree = 0;
+            m_i_MinimumRightVertexDegree = row_count;
+            for(int i=0; i<col_count; i++){
+                m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+                const int deg = Gcol[i].size();
+                if(m_i_MaximumRightVertexDegree < deg) 
+                    m_i_MaximumRightVertexDegree = deg;
+                if(m_i_MinimumRightVertexDegree > deg)
+                    m_i_MinimumRightVertexDegree = deg;
+                m_vi_Edges.insert(m_vi_Edges.end(), Gcol[i].begin(), Gcol[i].end());
+            }
+            m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+            
+            m_i_MaximumVertexDegree = max(m_i_MaximumLeftVertexDegree, m_i_MaximumRightVertexDegree);
+            m_i_MinimumVertexDegree = min(m_i_MinimumLeftVertexDegree, m_i_MinimumRightVertexDegree);
+            
+            m_d_AverageLeftVertexDegree  = (m_vi_LeftVertices.back() - m_vi_LeftVertices.front())*1.0/row_count;
+            m_d_AverageRightVertexDegree = (m_vi_RightVertices.back() - m_vi_RightVertices.front())*1.0/col_count;
+            m_d_AverageVertexDegree      = (m_vi_LeftVertices.back() - m_vi_LeftVertices.front() + m_vi_RightVertices.back() - m_vi_RightVertices.front())*1.0/(row_count+col_count);
+             
+            return (_TRUE);
+        }// end fun ReadMMBipartiteGraphCpp11 
+
+
+	// Author Xin Cheng
+        // Sep 2018
+        // Reading a Gerenal Matrix Market graph. which means it is at least structure symmetric.
+        // For each edge of original graph been break into two edge. with the new breaking nodes be added to the Bipartite graph columns
+        // while original vertices be added to Bipartite graph rows.
+        // ----------------------------------------------------------------------------------------------------------------
+        int BipartiteGraphInputOutput::ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11(string s_InputFile){
+            bool b_symmetric=true;
+            int entry_encounter=0, expect_entries=0;
+            int row_count=0, col_count=0;
+
+            string line, word;
+            istringstream iss;
+            Clear();
+
+            m_s_InputFile = s_InputFile;
+            if(s_InputFile=="") {
+                printf("Error, ReadMMGenearlGraphIntoPothenBipartiteGraphCpp11() tries to read a graph with empty filename\n"); 
+                exit(1);
+            }
+
+            ifstream in(s_InputFile.c_str());
+            if(!in.is_open()){
+                printf("Error, ReadMMGenearlGraphIntoPothenBipartiteGraphCpp11() tries to open \"%s\". But the file cannot be open.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            
+
+            // Parse structure
+            getline(in, line);
+            iss.str(line);
+            if( !(iss>>word) || word!="%%MatrixMarket" || !(iss>>word) || word!="matrix"){
+                printf("Error,ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() tries to open \"%s\". But it is not MatrixMarket format\n",s_InputFile.c_str());
+                exit(1);
+            }
+            if(!(iss>>word) || word!="coordinate"){ //coordinate/array
+                printf("Error, ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() tries to open \"%s\". But the graph is a complet graph.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            if(!(iss>>word) || word=="complex"){ //real/integer/complex/pattern
+                printf("Warning, ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() tries to open \"%s\" and find it is complex value graph.\n", s_InputFile.c_str());
+            }
+
+            if(!(iss>>word) || word=="general"){ // geneal/symmetric/skew-symmetric/Hermitian
+                b_symmetric=false;
+                printf("Warning! ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() expect to open '%s' as a symmtrix matrix with non-diagonal elements. But the graph is '%s' not 'symmetric'.\nThus the diagnal elements and upper triangular part will be removed.\n", s_InputFile.c_str(),line.c_str());
+            }
+
+            // Parse dimension
+            while(in){
+                getline(in,line);
+                if(line==""||line[0]=='%')
+                    continue;
+                break;
+            }
+            if(!in) {
+                printf("Error, ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() tries to open\"%s\". But cannot read dimension inforation.\n", s_InputFile.c_str());
+                exit(1);
+            }
+            iss.clear(); iss.str(line);
+            iss>>row_count>>col_count>>expect_entries;
+            
+            if(row_count!=col_count){
+                printf("Error, ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() find graph %s has %d rows and %d columns, it is not simple graph.\n", s_InputFile.c_str(), row_count, col_count);
+                exit(1);
+            }
+
+            // Read matrix into G
+            unordered_map<int, vector<int>> Grow,Gcol;
+            int r,c;
+            int edge_count=0;
+            while(in){
+                getline(in, line);
+                if(line=="" || line[0]=='%') 
+                    continue;
+                iss.clear(); iss.str(line);
+                entry_encounter++;
+                iss>>r>>c;
+                if( r <= c ){
+                    if(b_symmetric and r!=c ) {
+                        printf("Error! ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() find an and entry in upper triangular matrix \"%s\"\nRow,Col=%d,%d\n", s_InputFile.c_str(), r, c);
+                        exit(1);
+                    }
+                    continue;
+                }
+                
+                r--;c--;
+                Grow[c].push_back(edge_count);
+                Grow[r].push_back(edge_count);
+                
+                Gcol[edge_count].push_back(c);
+                Gcol[edge_count].push_back(r);
+                
+                edge_count++;
+            }
+            
+            in.close();
+            if(entry_encounter!=expect_entries){
+                printf("Error, ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11() tries to read \"%s\". But only read %d entries (expect %d)\n",s_InputFile.c_str(), entry_encounter, expect_entries);
+                exit(1);
+            }
+
+            //for(auto &g : Grow)
+            //    sort(g.second.begin(), g.second.end());
+            //for(auto &g : Gcol)
+            //    sort(g.second.begin(), g.second.end());
+
+
+            // G into class member 
+            m_i_MaximumLeftVertexDegree = 0;
+            m_i_MinimumLeftVertexDegree = edge_count;
+            for(int i=0; i<row_count+col_count; i++){
+                m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+                const int deg = Grow[i].size();
+                if(m_i_MaximumLeftVertexDegree < deg) 
+                    m_i_MaximumLeftVertexDegree = deg;
+                if(m_i_MinimumLeftVertexDegree > deg)
+                    m_i_MinimumLeftVertexDegree = deg;
+                m_vi_Edges.insert(m_vi_Edges.end(), Grow[i].begin(), Grow[i].end());
+            }
+            m_vi_LeftVertices.push_back((signed) m_vi_Edges.size());
+            
+            m_i_MaximumRightVertexDegree = 0;                    //2
+            m_i_MinimumRightVertexDegree = row_count+col_count;  //2
+            for(int i=0; i<edge_count; i++){
+                m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+                const int deg = Gcol[i].size();
+                if(m_i_MaximumRightVertexDegree < deg) 
+                    m_i_MaximumRightVertexDegree = deg;
+                if(m_i_MinimumRightVertexDegree > deg)
+                    m_i_MinimumRightVertexDegree = deg;
+                m_vi_Edges.insert(m_vi_Edges.end(), Gcol[i].begin(), Gcol[i].end());
+            }
+            m_vi_RightVertices.push_back((signed) m_vi_Edges.size());
+
+            m_i_MaximumVertexDegree = max(m_i_MaximumLeftVertexDegree, m_i_MaximumRightVertexDegree);
+            m_i_MinimumVertexDegree = min(m_i_MinimumLeftVertexDegree, m_i_MinimumRightVertexDegree);
+
+            m_d_AverageLeftVertexDegree  = (m_vi_LeftVertices.back() - m_vi_LeftVertices.front())*1.0/row_count;
+            m_d_AverageRightVertexDegree = (m_vi_RightVertices.back() - m_vi_RightVertices.front())*1.0/col_count;
+            m_d_AverageVertexDegree      = (m_vi_LeftVertices.back() - m_vi_LeftVertices.front() + m_vi_RightVertices.back() - m_vi_RightVertices.front())*1.0/(row_count+col_count);
+
+            return (_TRUE);   
+        }// end funtion ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11
+
+
+
+}// end namespace ColPack
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphInputOutput.h
@@ -0,0 +1,175 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHINPUTOUTPUT_H
+#define BIPARTITEGRAPHINPUTOUTPUT_H
+
+namespace ColPack
+{
+	/** @ingroup group2
+	 *  @brief class BipartiteGraphInputOutput in @link group2@endlink.
+
+	 BipartiteGraphInputOutput class provides the input methods for reading in matrix or graph files in
+	 supported formats for generating bipartite graphs. Three input formats are supported by default - Matrix
+	 Market, Harwell Boeing and MeTiS. This class is similar to the GraphInputOutput class discussed in Section
+	 2.1 in functionalities with the difference that it stores bipartite graphs in CES scheme.
+	 */
+	class BipartiteGraphInputOutput : public BipartiteGraphCore
+	{
+	public:
+
+	  // -----INPUT FUNCTIONS-----
+
+		// !!! TO BE DOCUMENTED
+		int BuildBPGraphFromADICFormat(std::list<std::set<int> > *  lsi_SparsityPattern, int i_ColumnCount);
+
+		/// Read the sparsity pattern of Jacobian matrix represented in zero-based indexing, 3-array variation CSR format and build a corresponding adjacency graph.
+		/**
+		Zero-based indexing, 3-array variation CSR format:
+		  http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#table_79228E147DA0413086BEFF4EFA0D3F04
+
+		Return value:
+		- _TRUE upon successful
+		*/
+		int BuildBPGraphFromCSRFormat(int* ip_RowIndex, int i_RowCount, int i_ColumnCount, int* ip_ColumnIndex);
+
+		/// Read the sparsity pattern of Jacobian matrix represented in ADOLC format (Row Compressed format) and build a corresponding adjacency graph.
+		/** Equivalent to RowCompressedFormat2BipartiteGraph
+		Precondition:
+		- The Jacobian matrix must be stored in Row Compressed Format
+
+		Return value:
+		- _TRUE upon successful
+		*/
+		int BuildBPGraphFromRowCompressedFormat(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount);
+
+		/// Given a compressed sparse row representation, build the corresponding bipartite graph representation
+		/**
+		Precondition:
+		- The Jacobian matrix must be stored in Row Compressed Format
+
+		Return value:
+		- _TRUE upon successful
+		*/
+		int RowCompressedFormat2BipartiteGraph(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount);
+
+		/// Read the sparsity pattern of a matrix in the specified file format from the specified filename and build a Bipartite Graph
+		/**	This function will
+		- 1. Read the name of the matrix file and decide which matrix format the file used (based on the file extension). If the file name has no extension, the user will need to pass the 2nd parameter "s_fileFormat" explicitly to tell ColPack which matrix format is used
+		- 2. Call the corresponding reading routine to generate the graph
+
+		About input parameters:
+		-  s_InputFile: name of the input file. If the full path is not given, the file is assumed to be in the current directory
+		- s_fileFormat can be either
+			- "AUTO_DETECTED" (default) or "". ColPack will decide the format of the file based on the file extension:
+				- ".mtx": MatrixMarket format
+				- ".hb", or any combination of ".<r, c, p><s, u, h, x, r><a, e>": HarwellBoeing format
+				- ".graph": MeTiS format
+				- ".gen": Generic Matrix format
+				- ".gens": Generic Square Matrix format
+				- If the above extensions are not found, MatrixMarket format will be assumed.
+			- "MM" for MatrixMarket format (http://math.nist.gov/MatrixMarket/formats.html#MMformat). Notes:
+			  - ColPack only accepts MatrixMarket coordinate format (NO array format)
+			  - List of arithmetic fields accepted by ColPack: real, pattern or integer
+			  - List of symmetry structures accepted by ColPack: general or symmetric
+			  - The first line of the input file should be similar to this: "%%MatrixMarket matrix coordinate real general"
+			- "HB" for HarwellBoeing format (http://math.nist.gov/MatrixMarket/formats.html#hb)
+			- "MeTiS" for MeTiS format (http://people.sc.fsu.edu/~burkardt/data/metis_graph/metis_graph.html)
+			- "GEN" for Generic Matrix format
+			- "GENS" for Generic Square Matrix format
+		*/
+		int ReadBipartiteGraph(string  s_InputFile, string s_fileFormat="AUTO_DETECTED");
+
+		/// Read a file with explicit 1 and 0 representing sparsity structure and build corresponding bipartite graph
+		/** The format of the matrix is specified bellow (this file format .gen is NOT the same as the .gen2 files used by ReadGenericSquareMatrixBipartiteGraph() ):
+		- A matrix is specified row by row, each row ending with and endofline.
+		- In each row, a nonzero is indicated by 1 and a zero is indicated by 0.
+		- The number of rows, columns or nonzeros is not given in the file, but the filename indicates the number of rows and columns. Format: <matrix name>-<row>by<column>.gen
+		- There are empty spaces between consecutive matrix entries.
+
+		Example:	testmatrix-5by5.gen	<BR>
+										<BR>
+					1 1 1 0 1 0 1 0 1 0	<BR>
+					0 1 0 1 0 1 0 1 0 1	<BR>
+					1 0 1 1 1 0 1 0 1 0	<BR>
+					0 1 0 1 0 1 0 1 0 1	<BR>
+					1 0 1 0 1 1 1 0 1 0	<BR>
+					0 1 0 1 0 1 0 1 0 1	<BR>
+					1 0 1 0 1 0 1 1 1 0	<BR>
+					0 1 0 1 0 1 0 1 0 1	<BR>
+					1 0 1 0 1 0 1 0 1 1	<BR>
+					0 1 0 1 0 1 0 1 0 1	<BR>
+		*/
+		int ReadGenericMatrixBipartiteGraph(string s_InputFile);
+
+		/// Read a file with explicit 1 and 0 representing sparsity sturcture of a square matrix whose order is specified in the extension of the filename and build a Bipartite Graph
+		/** The format of the matrix is specified bellow (this file format .gen2 is NOT the same as the .gen files used by ReadGenericMatrixBipartiteGraph() ):
+		- The number of rows, columns or nonzeros is not given in the file, but the filename indicates the number of rows and columns. Format: <matrix name>-<row>by<column>.gens
+		- NOTE: The number of rows should be equal to the number of columns. If the 2 numbers are different, take row = column = min of given row and column
+		- The file contains a series of 0s and 1s with no space in between (endline should be ignore).
+		- A nonzero is indicated by 1 and a zero is indicated by 0..
+
+		Example:	testmatrix-12by10.gens (because the min is 10 => real size: 10x10)<BR>
+																		<BR>
+					11101010100101010101101110101001010101011010111010	<BR>
+					01010101011010101110010101010110101010110101010101	<BR>
+		*/
+		int ReadGenericSquareMatrixBipartiteGraph(string s_InputFile);
+
+		/// Read sparsity pattern of a matrix specified in Harwell Boeing format from a file and build a corresponding bipartite graph
+		/**
+		  Supported sub-format: MXTYPE[3] = (R | P) (*) (A)
+		*/
+		int ReadHarwellBoeingBipartiteGraph(string s_InputFile);
+
+		/// Read sparsity pattern of a matrix specified in Matrix Market format from a file and build a corresponding bipartite graph
+		int ReadMatrixMarketBipartiteGraph(string s_InputFile);
+
+		/// Read sparsity pattern of a matrix specified in MeTiS format from a file and build a corresponding bipartite graph
+		int ReadMeTiSBipartiteGraph(string s_InputFile);
+
+                /// xin cheng's new read matrix market using c++11 standard
+                int ReadMMBipartiteGraphCpp11(string s_InputFile);
+                int ReadMMGeneralGraphIntoPothenBipartiteGraphCpp11(string s_InputFile);
+
+
+	  // -----OUTPUT FUNCTIONS-----
+
+		void PrintBipartiteGraph();
+
+		void PrintVertexDegrees();
+
+		/// Given a bipartite graph representation, build the corresponding compressed sparse row representation
+		/**
+		Postcondition:
+		- The Jacobian matrix is in compressed sparse rows format
+		- (*uip3_JacobianSparsityPattern) size is (GetRowVertexCount()) rows x (GetColumnVertexCount()) columns
+
+		Return value:
+		- _TRUE upon successful
+		*/
+		int BipartiteGraph2RowCompressedFormat(unsigned int *** uip3_JacobianSparsityPattern, unsigned int * uip1_RowCount, unsigned int * uip1_ColumnCount);
+
+		/// Write the structure of the bipartite graph into a file using Matrix Market format
+		int WriteMatrixMarket(string s_OutputFile = "-ColPack_debug.mtx");
+
+
+	private:
+
+		void CalculateVertexDegrees();
+
+	public:
+
+		BipartiteGraphInputOutput();
+
+		~BipartiteGraphInputOutput();
+
+		virtual void Clear();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphOrdering.cpp
@@ -0,0 +1,1719 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 3401
+	int BipartiteGraphOrdering::CheckVertexOrdering(string s_VertexOrderingVariant)
+	{
+		if(m_s_VertexOrderingVariant.compare(s_VertexOrderingVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexOrderingVariant.compare("ALL") != 0)
+		{
+			m_s_VertexOrderingVariant = s_VertexOrderingVariant;
+		}
+
+		return(_FALSE);
+	}
+
+
+	//Public Constructor 3451
+	BipartiteGraphOrdering::BipartiteGraphOrdering()
+	{
+		Clear();
+	}
+
+
+	//Public Destructor 3452
+	BipartiteGraphOrdering::~BipartiteGraphOrdering()
+	{
+		Clear();
+	}
+
+
+	//Virtual Function 3453
+	void BipartiteGraphOrdering::Clear()
+	{
+		BipartiteGraphVertexCover::Clear();
+
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+
+		m_vi_OrderedVertices.clear();
+
+		return;
+	}
+
+
+	//Virtual Function 3454
+	void BipartiteGraphOrdering::Reset()
+	{
+		BipartiteGraphVertexCover::Reset();
+
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+
+		m_vi_OrderedVertices.clear();
+
+		return;
+	}
+
+	int BipartiteGraphOrdering::NaturalOrdering()
+	{
+		if(CheckVertexOrdering("NATURAL"))
+		{
+			return(_TRUE);
+		}
+
+		int i;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve(i_LeftVertexCount + i_RightVertexCount);
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			m_vi_OrderedVertices.push_back(i);
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			m_vi_OrderedVertices.push_back(i + i_LeftVertexCount);
+		}
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::RandomOrdering()
+	{
+		if(CheckVertexOrdering("RANDOM"))
+		{
+			return(_TRUE);
+		}
+
+		m_s_VertexOrderingVariant = "RANDOM";
+
+		//int i;  //unused variable
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_OrderedVertices.clear();
+
+		//Order left vertices
+		m_vi_OrderedVertices.resize((unsigned) i_LeftVertexCount);
+
+		for(unsigned int i = 0; i<(unsigned)i_LeftVertexCount; i++) {
+			m_vi_OrderedVertices[i] = i;
+		}
+
+		randomOrdering(m_vi_OrderedVertices);
+
+		//Order right vertices
+		vector<int> tempOrdering;
+
+		tempOrdering.resize((unsigned) i_RightVertexCount);
+
+		for(unsigned int i = 0; i<(unsigned)i_RightVertexCount; i++) {
+			tempOrdering[i] = i + i_LeftVertexCount;
+		}
+
+		randomOrdering(tempOrdering);
+
+		m_vi_OrderedVertices.reserve(i_LeftVertexCount + i_RightVertexCount);
+
+		//Now, populate vector m_vi_OrderedVertices with the right vertices
+		for(unsigned int i = 0; i<(unsigned)i_RightVertexCount; i++) {
+			m_vi_OrderedVertices.push_back(tempOrdering[i]);
+		}
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::LargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_HighestDegreeVertex;
+
+		int i_VertexDegree, i_VertexDegreeCount;
+
+		vector< vector< int > > vvi_GroupedVertexDegree;
+
+		m_i_MaximumVertexDegree = _FALSE;
+
+		i_HighestDegreeVertex = _UNKNOWN;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		vvi_GroupedVertexDegree.clear();
+		vvi_GroupedVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vvi_GroupedVertexDegree[i_VertexDegree].push_back(i);
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+
+				i_HighestDegreeVertex = i;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vvi_GroupedVertexDegree[i_VertexDegree].push_back(i + i_LeftVertexCount);
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+
+				i_HighestDegreeVertex = i + i_LeftVertexCount;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve(i_LeftVertexCount + i_RightVertexCount);
+
+		if(i_HighestDegreeVertex < i_LeftVertexCount)
+		{
+			for(i=m_i_MaximumVertexDegree; i>=0; i--)
+			{
+				i_VertexDegreeCount = (signed) vvi_GroupedVertexDegree[i].size();
+
+				for(j=0; j<i_VertexDegreeCount; j++)
+				{
+					m_vi_OrderedVertices.push_back(vvi_GroupedVertexDegree[i][j]);
+				}
+			}
+		}
+		else
+		{
+			for(i=m_i_MaximumVertexDegree; i>=0; i--)
+			{
+				i_VertexDegreeCount = (signed) vvi_GroupedVertexDegree[i].size();
+
+				for(j=STEP_DOWN(i_VertexDegreeCount); j>=0; j--)
+				{
+					m_vi_OrderedVertices.push_back(vvi_GroupedVertexDegree[i][j]);
+				}
+			}
+		}
+
+		vvi_GroupedVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::SmallestLastOrdering()
+	{
+		if(CheckVertexOrdering("SMALLEST_LAST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, u, l;
+                //int v; //unused variable
+
+		int _FOUND;
+
+		int i_HighestInducedVertexDegree, i_HighestInducedDegreeVertex;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_VertexCountMinus1; // = i_LeftVertexCount + i_RightVertexCount - 1, used when inserting selected vertices into m_vi_OrderedVertices
+
+		int i_InducedVertexDegree;
+
+		int i_InducedVertexDegreeCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector <int> vi_InducedVertexDegree;
+
+		vector < vector < int > > vvi_GroupedInducedVertexDegree;
+
+		vector <  int > vi_VertexLocation;
+
+		vector <  int > vi_LeftSidedVertexinBucket;
+
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		i_VertexCountMinus1 = i_LeftVertexCount + i_RightVertexCount - 1;
+
+		vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+                vi_LeftSidedVertexinBucket.clear();
+		vi_LeftSidedVertexinBucket.reserve((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		i_HighestInducedVertexDegree = _FALSE;
+
+		i_HighestInducedDegreeVertex = _UNKNOWN;
+
+		i_SelectedVertex = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_InducedVertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+
+				i_HighestInducedDegreeVertex = i;
+			}
+		}
+
+
+		// get the bucket division positions now
+		for(i= 0; i < i_LeftVertexCount + i_RightVertexCount; i++)
+			vi_LeftSidedVertexinBucket.push_back(vvi_GroupedInducedVertexDegree[i].size());
+
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_InducedVertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i + i_LeftVertexCount);
+
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+
+				i_HighestInducedDegreeVertex = i + i_LeftVertexCount;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize(i_LeftVertexCount + i_RightVertexCount, _UNKNOWN);
+
+		i_SelectedVertexCount = _FALSE;
+
+		int iMin = 1;
+
+		while(i_SelectedVertexCount < i_LeftVertexCount + i_RightVertexCount)
+		{
+                        if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin -1].size() != _FALSE)
+				iMin--;
+
+			for(i=iMin; i<STEP_UP(i_HighestInducedVertexDegree); i++)
+			{
+				i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+				if(i_InducedVertexDegreeCount == _FALSE)
+				{
+					iMin++;
+					continue;
+				}
+
+				if(i_HighestInducedDegreeVertex < i_LeftVertexCount)
+				{
+					_FOUND = _FALSE;
+
+					/*
+					if(vi_LeftSidedVertexinBucket[i] > 0)
+					{
+						vi_LeftSidedVertexinBucket[i]--;
+						i_SelectedVertex = vvi_GroupedInducedVertexDegree[i][vi_LeftSidedVertexinBucket[i]];
+
+						vvi_GroupedInducedVertexDegree[i][vi_LeftSidedVertexinBucket[i]] = vvi_GroupedInducedVertexDegree[i].back();
+                                                vi_VertexLocation[vvi_GroupedInducedVertexDegree[i].back()] = vi_VertexLocation[u];
+
+						_FOUND = _TRUE;
+					}
+					*/
+					if(vi_LeftSidedVertexinBucket[i] > 0)
+					for(unsigned int j  = 0; j < vvi_GroupedInducedVertexDegree[i].size(); j++)
+					{
+						u = vvi_GroupedInducedVertexDegree[i][j];
+						if(u < i_LeftVertexCount)
+						{
+							i_SelectedVertex = u;
+
+							if(vvi_GroupedInducedVertexDegree[i].size() > 1)
+							{
+								// swap this node with the last node
+								vvi_GroupedInducedVertexDegree[i][j] = vvi_GroupedInducedVertexDegree[i].back();
+								vi_VertexLocation[vvi_GroupedInducedVertexDegree[i].back()] = vi_VertexLocation[u];
+							}
+							_FOUND = _TRUE;
+							vi_LeftSidedVertexinBucket[i]--;
+
+							break;
+						}
+					}
+
+					if(!_FOUND)
+						i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+
+					break;
+				}
+				else
+				{
+					_FOUND = _FALSE;
+
+					if((i_InducedVertexDegreeCount - vi_LeftSidedVertexinBucket[i]) > 0)
+					for(unsigned int j = 0; j < vvi_GroupedInducedVertexDegree[i].size(); j++)
+					{
+						u = vvi_GroupedInducedVertexDegree[i][j];
+
+						if(u >= i_LeftVertexCount)
+						{
+							i_SelectedVertex = u;
+							if(vvi_GroupedInducedVertexDegree[i].size() > 1)
+							{
+								vvi_GroupedInducedVertexDegree[i][j] = vvi_GroupedInducedVertexDegree[i].back();
+								vi_VertexLocation[vvi_GroupedInducedVertexDegree[i].back()] = vi_VertexLocation[u];
+							}
+							_FOUND = _TRUE;
+
+							break;
+						}
+					}
+
+					if(!_FOUND)
+					{
+						i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+						vi_LeftSidedVertexinBucket[i]--;
+					}
+				}
+
+				break;
+			}
+
+			vvi_GroupedInducedVertexDegree[i].pop_back(); // remove the selected vertex from the bucket
+
+			if(i_SelectedVertex < i_LeftVertexCount)
+			{
+				for(i=m_vi_LeftVertices[i_SelectedVertex]; i<m_vi_LeftVertices[STEP_UP(i_SelectedVertex)]; i++)
+				{
+					u = m_vi_Edges[i] + i_LeftVertexCount; // neighbour are always right sided
+
+					if(vi_InducedVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+                                	if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+                                	{
+                                        	l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+	                                        vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+	                                        vi_VertexLocation[l] = vi_VertexLocation[u];
+        	                        }
+					// remove last element from this bucket
+                        	        vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+
+					// reduce degree of u by 1
+                	                vi_InducedVertexDegree[u]--;
+
+					// move u to appropriate bucket
+                                	vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+                                        // update vi_VertexLocation[u] since it has now been changed
+                                         vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+
+					/*
+					if(u < i_LeftVertexCount)
+					{
+						// swap this vertex and location
+						v = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+						if(v > 0)
+						{
+							l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][v];
+
+							swap(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]], vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][v]);
+							swap(vi_VertexLocation[u], vi_VertexLocation[l]);
+						}
+						vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]++;
+					}*/
+				}
+			}
+			else
+			{
+				for(i=m_vi_RightVertices[i_SelectedVertex - i_LeftVertexCount]; i<m_vi_RightVertices[STEP_UP(i_SelectedVertex - i_LeftVertexCount)]; i++)
+				{
+					u = m_vi_Edges[i]; // neighbour are always left sided
+
+					if(vi_InducedVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+                                	if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+                                	{
+                                        	l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+	                                        vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+	                                        vi_VertexLocation[l] = vi_VertexLocation[u];
+        	                        }
+
+					// remove last element from this bucket
+                        	        vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+					vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]--;
+
+					// reduce degree of u by 1
+                	                vi_InducedVertexDegree[u]--;
+
+					vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]++;
+
+					// move u to appropriate bucket
+                                	vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+        	                        vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+
+					/*
+					if(u < i_LeftVertexCount)
+					{
+						// swap this vertex and location
+						v = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+						if(v > 0)
+						{
+							l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][v];
+
+							swap(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]], vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][v]);
+							swap(vi_VertexLocation[u], vi_VertexLocation[l]);
+						}
+						vi_LeftSidedVertexinBucket[vi_InducedVertexDegree[u]]++;
+					}*/
+
+				}
+			}
+
+			vi_InducedVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			m_vi_OrderedVertices[i_VertexCountMinus1 - i_SelectedVertexCount] = i_SelectedVertex;
+
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		vi_InducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.clear();
+		vi_VertexLocation.clear();
+		vi_LeftSidedVertexinBucket.clear();
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::IncidenceDegreeOrdering()
+	{
+		if(CheckVertexOrdering("INCIDENCE_DEGREE"))
+		{
+			return(_TRUE);
+		}
+
+		int i, u, l;
+
+		int i_HighestIncidenceVertexDegree;
+
+		int i_LeftVertexCount, i_RightVertexCount, i_VertexCount;
+
+		int i_VertexDegree;
+
+		int i_IncidenceVertexDegree;
+                //int i_IncidenceVertexDegreeCount; //unused variable
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector<int> vi_IncidenceVertexDegree;
+
+		//Vertices of the same IncidenceDegree are differenciated into
+		//  LeftVertices (vpvi_GroupedIncidenceVertexDegree.first) and
+		//  RightVertices (vpvi_GroupedIncidenceVertexDegree.second)
+		vector< pair<vector<int>, vector<int> > > vpvi_GroupedIncidenceVertexDegree;
+
+		vector< int > vi_VertexLocation;
+
+		list<int>::iterator lit_ListIterator; //???
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+		i_VertexCount = i_LeftVertexCount + i_RightVertexCount;
+
+		vi_IncidenceVertexDegree.clear();
+		vi_IncidenceVertexDegree.reserve((unsigned) (i_VertexCount));
+
+		vpvi_GroupedIncidenceVertexDegree.clear();
+		vpvi_GroupedIncidenceVertexDegree.resize((unsigned) (i_VertexCount));
+
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) (i_VertexCount));
+
+		i_HighestIncidenceVertexDegree = _UNKNOWN;
+
+		i_IncidenceVertexDegree = _FALSE;
+
+		i_SelectedVertex = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			vi_IncidenceVertexDegree.push_back(i_IncidenceVertexDegree);
+
+			vpvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].first.push_back(i);
+
+			vi_VertexLocation.push_back(vpvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].first.size() - 1);
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			vi_IncidenceVertexDegree.push_back(i_IncidenceVertexDegree);
+
+			vpvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].second.push_back(i + i_LeftVertexCount);
+
+			vi_VertexLocation.push_back(vpvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].second.size() - 1);
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		i_HighestIncidenceVertexDegree = 0;
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) (i_VertexCount));
+
+		i_SelectedVertexCount = _FALSE;
+
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+			if(i_HighestIncidenceVertexDegree != m_i_MaximumVertexDegree &&
+			    vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree+1].first.size() +
+			    vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree+1].second.size()  != 0) {
+			  //We need to update the value of i_HighestIncidenceVertexDegree
+			  i_HighestIncidenceVertexDegree++;
+
+			}
+			else {
+			  while(vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].first.size() +
+			    vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].second.size()  == 0) {
+			    i_HighestIncidenceVertexDegree--;
+			  }
+			}
+
+			if(vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].first.size() != 0) {
+			  //vertex with i_HighestIncidenceVertexDegree is a LeftVertex
+			  i_SelectedVertex = vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].first.back();
+			  vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].first.pop_back();
+			}
+			else {
+			  //vertex with i_HighestIncidenceVertexDegree is a RightVertex
+			  i_SelectedVertex = vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].second.back();
+			  vpvi_GroupedIncidenceVertexDegree[i_HighestIncidenceVertexDegree].second.pop_back();
+			}
+
+			// Increase the IncidenceDegree of all the unvisited neighbor vertices by 1 and move them to the correct buckets
+			if(i_SelectedVertex < i_LeftVertexCount) // i_SelectedVertex is a LeftVertex
+			{
+				for(i=m_vi_LeftVertices[i_SelectedVertex]; i<m_vi_LeftVertices[STEP_UP(i_SelectedVertex)]; i++)
+				{
+					u = m_vi_Edges[i] + i_LeftVertexCount;
+					if(vi_IncidenceVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second.size() > 1) {
+						l = vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second.back();
+						vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second[vi_VertexLocation[u]] = l;
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					//remove the last element from vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second
+					vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second.pop_back();
+
+					// increase incidence degree of u
+					vi_IncidenceVertexDegree[u]++;
+
+					// insert u into appropriate bucket
+					vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second.push_back(u);
+
+					// update location of u
+					vi_VertexLocation[u] = vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].second.size() - 1;
+				}
+			}
+			else
+			{
+				for(i=m_vi_RightVertices[i_SelectedVertex - i_LeftVertexCount]; i<m_vi_RightVertices[STEP_UP(i_SelectedVertex - i_LeftVertexCount)]; i++)
+				{
+					u = m_vi_Edges[i];
+					if(vi_IncidenceVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first.size() > 1) {
+						l = vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first.back();
+						vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first[vi_VertexLocation[u]] = l;
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					//remove the last element from vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first
+					vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first.pop_back();
+
+					// increase incidence degree of u
+					vi_IncidenceVertexDegree[u]++;
+
+					// insert u into appropriate bucket
+					vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first.push_back(u);
+
+					// update location of u
+					vi_VertexLocation[u] = vpvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].first.size() - 1;
+				}
+
+			}
+
+			// Mark that this vertex has been visited
+			vi_IncidenceVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+#if DEBUG == 3458
+
+		int i_OrderedVertexCount;
+
+		cout<<endl;
+		cout<<"DEBUG 3458 | Bipartite Graph Coloring | Bipartite Incidence Degree Ordering"<<endl;
+		cout<<endl;
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+			if(i == STEP_DOWN(i_OrderedVertexCount))
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<" ("<<i_OrderedVertexCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<", ";
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Ordered Vertex Count = "<<i_OrderedVertexCount<<"/"<<i_VertexCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	int BipartiteGraphOrdering::DynamicLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("DYNAMIC_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, u, l;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_LeftVertexCount, i_RightVertexCount, i_VertexCount;
+
+		int i_InducedVertexDegree;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector<int> vi_InducedVertexDegree;
+
+		vector< pair<vector<int>, vector<int> > > vpvi_GroupedInducedVertexDegree;
+
+		vector< int > vi_VertexLocation;
+
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+		i_VertexCount = i_LeftVertexCount + i_RightVertexCount;
+
+		vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+
+		vpvi_GroupedInducedVertexDegree.clear();
+		vpvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+		i_SelectedVertex = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_InducedVertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			vpvi_GroupedInducedVertexDegree[i_InducedVertexDegree].first.push_back(i);
+
+			vi_VertexLocation.push_back(vpvi_GroupedInducedVertexDegree[i_InducedVertexDegree].first.size() - 1);
+
+			if(m_i_MaximumVertexDegree < i_InducedVertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_InducedVertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			vpvi_GroupedInducedVertexDegree[i_InducedVertexDegree].second.push_back(i + i_LeftVertexCount);
+
+			vi_VertexLocation.push_back(vpvi_GroupedInducedVertexDegree[i_InducedVertexDegree].second.size() - 1);
+
+			if(m_i_MaximumVertexDegree < i_InducedVertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		i_HighestInducedVertexDegree = m_i_MaximumVertexDegree;
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		i_SelectedVertexCount = _FALSE;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+			while(vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].first.size() +
+			    vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].second.size()  == 0) {
+			  i_HighestInducedVertexDegree--;
+			}
+
+			if(vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].first.size() != 0) {
+			  //vertex with i_HighestInducedVertexDegree is a LeftVertex
+			  i_SelectedVertex = vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].first.back();
+			  vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].first.pop_back();
+			}
+			else {
+			  //vertex with i_HighestInducedVertexDegree is a RightVertex
+			  i_SelectedVertex = vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].second.back();
+			  vpvi_GroupedInducedVertexDegree[i_HighestInducedVertexDegree].second.pop_back();
+			}
+
+			// Decrease the InducedVertexDegree of all the unvisited neighbor vertices by 1 and move them to the correct buckets
+			if(i_SelectedVertex < i_LeftVertexCount) // i_SelectedVertex is a LeftVertex
+			{
+				for(i=m_vi_LeftVertices[i_SelectedVertex]; i<m_vi_LeftVertices[STEP_UP(i_SelectedVertex)]; i++)
+				{
+					u = m_vi_Edges[i] + i_LeftVertexCount;
+					if(vi_InducedVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second.size() > 1) {
+						l = vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second.back();
+						vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second[vi_VertexLocation[u]] = l;
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					//remove the last element from vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second
+					vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second.pop_back();
+
+					// increase incidence degree of u
+					vi_InducedVertexDegree[u]--;
+
+					// insert u into appropriate bucket
+					vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second.push_back(u);
+
+					// update location of u
+					vi_VertexLocation[u] = vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].second.size() - 1;
+				}
+			}
+			else
+			{
+				for(i=m_vi_RightVertices[i_SelectedVertex - i_LeftVertexCount]; i<m_vi_RightVertices[STEP_UP(i_SelectedVertex - i_LeftVertexCount)]; i++)
+				{
+					u = m_vi_Edges[i];
+					if(vi_InducedVertexDegree[u] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first.size() > 1) {
+						l = vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first.back();
+						vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first[vi_VertexLocation[u]] = l;
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					//remove the last element from vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first
+					vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first.pop_back();
+
+					// increase incidence degree of u
+					vi_InducedVertexDegree[u]--;
+
+					// insert u into appropriate bucket
+					vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first.push_back(u);
+
+					// update location of u
+					vi_VertexLocation[u] = vpvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].first.size() - 1;
+				}
+			}
+
+			// Mark that this vertex has been visited
+			vi_InducedVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+
+			i_SelectedVertexCount++;
+		}
+
+
+#if DEBUG == 3462
+
+		int i_OrderedVertexCount;
+
+		cout<<endl;
+		cout<<"DEBUG 3462 | Bipartite Graph Coloring | Bipartite Dynamic Largest First Ordering"<<endl;
+		cout<<endl;
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+			if(i == STEP_DOWN(i_OrderedVertexCount))
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<" ("<<i_OrderedVertexCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<", ";
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Ordered Vertex Count = "<<i_OrderedVertexCount<<"/"<<i_VertexCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::SelectiveLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("SELECTVE_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_VertexDegree, i_VertexDegreeCount;
+
+		vector< vector<int> > vvi_GroupedVertexDegree;
+
+		m_i_MaximumVertexDegree = _FALSE;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		vvi_GroupedVertexDegree.clear();
+		vvi_GroupedVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_IncludedLeftVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_VertexDegree = _FALSE;
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedRightVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_VertexDegree++;
+			}
+
+			vvi_GroupedVertexDegree[i_VertexDegree].push_back(i);
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_IncludedRightVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_VertexDegree = _FALSE;
+
+			for(j=m_vi_RightVertices[i]; j<m_vi_RightVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_VertexDegree++;
+			}
+
+			vvi_GroupedVertexDegree[i_VertexDegree].push_back(i + i_LeftVertexCount);
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+
+		for(i=m_i_MaximumVertexDegree; i>=0; i--)
+		{
+			i_VertexDegreeCount = (signed) vvi_GroupedVertexDegree[i].size();
+
+			for(j=0; j<i_VertexDegreeCount; j++)
+			{
+				m_vi_OrderedVertices.push_back(vvi_GroupedVertexDegree[i][j]);
+			}
+		}
+
+#if DEBUG == 3459
+
+		int i_VertexCount;
+
+		cout<<endl;
+		cout<<"DEBUG 3459 | Bipartite Graph Bicoloring | Largest First Ordering"<<endl;
+		cout<<endl;
+
+		i_VertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			if(i == STEP_DOWN(i_VertexCount))
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<" ("<<i_VertexCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_OrderedVertices[i])<<", ";
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Highest Vertex Degree = "<<m_i_MaximumVertexDegree<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphOrdering::SelectiveSmallestLastOrdering()
+	{
+		if(CheckVertexOrdering("SELECTIVE_SMALLEST_LAST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_InducedVertexDegree;
+
+		int i_InducedVertexDegreeCount;
+
+		int i_IncludedVertexCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector<int> vi_InducedVertexDegree;
+
+		vector< list<int> > vli_GroupedInducedVertexDegree;
+
+		vector< list<int>::iterator > vlit_VertexLocation;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.resize((signed) i_LeftVertexCount + i_RightVertexCount, _UNKNOWN);
+
+		vli_GroupedInducedVertexDegree.clear();
+		vli_GroupedInducedVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		vlit_VertexLocation.clear();
+		vlit_VertexLocation.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		i_IncludedVertexCount = _FALSE;
+
+		i_HighestInducedVertexDegree = _FALSE;
+
+		i_SelectedVertex = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+      		if(m_vi_IncludedLeftVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_IncludedVertexCount++;
+
+			i_InducedVertexDegree = _FALSE;
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedRightVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_InducedVertexDegree++;
+			}
+
+			vi_InducedVertexDegree[i] = i_InducedVertexDegree;
+
+			vli_GroupedInducedVertexDegree[i_InducedVertexDegree].push_front(i);
+
+			vlit_VertexLocation[vli_GroupedInducedVertexDegree[i_InducedVertexDegree].front()] = vli_GroupedInducedVertexDegree[i_InducedVertexDegree].begin();
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+      		if(m_vi_IncludedRightVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_IncludedVertexCount++;
+
+			i_InducedVertexDegree = _FALSE;
+
+			for(j=m_vi_RightVertices[i]; j<m_vi_RightVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_InducedVertexDegree++;
+			}
+
+			vi_InducedVertexDegree[i + i_LeftVertexCount] = i_InducedVertexDegree;
+
+			vli_GroupedInducedVertexDegree[i_InducedVertexDegree].push_front(i + i_LeftVertexCount);
+
+			vlit_VertexLocation[vli_GroupedInducedVertexDegree[i_InducedVertexDegree].front()] = vli_GroupedInducedVertexDegree[i_InducedVertexDegree].begin();
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+
+#if DEBUG == 3460
+
+		list<int>::iterator lit_ListIterator;
+
+		cout<<endl;
+		cout<<"DEBUG 3460 | Vertex Ordering | Vertex Degree"<<endl;
+		cout<<endl;
+
+		for(i=0; i<STEP_UP(i_HighestInducedVertexDegree); i++)
+		{
+			cout<<"Degree "<<i<<"\t"<<" : ";
+
+			i_InducedVertexDegreeCount = (signed) vli_GroupedInducedVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedInducedVertexDegree[i].begin(); lit_ListIterator != vli_GroupedInducedVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_InducedVertexDegreeCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_InducedVertexDegreeCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+
+#endif
+
+		m_vi_OrderedVertices.clear();
+
+		i_SelectedVertexCount = _FALSE;
+
+		while(i_SelectedVertexCount < i_IncludedVertexCount)
+		{
+			for(i=0; i<STEP_UP(i_HighestInducedVertexDegree); i++)
+			{
+				i_InducedVertexDegreeCount = (signed) vli_GroupedInducedVertexDegree[i].size();
+
+				if(i_InducedVertexDegreeCount != _FALSE)
+				{
+					i_SelectedVertex = vli_GroupedInducedVertexDegree[i].front();
+
+					break;
+				}
+			}
+
+			if(i_SelectedVertex < i_LeftVertexCount)
+			{
+				for(i=m_vi_LeftVertices[i_SelectedVertex]; i<m_vi_LeftVertices[STEP_UP(i_SelectedVertex)]; i++)
+				{
+					if(vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].erase(vlit_VertexLocation[m_vi_Edges[i] + i_LeftVertexCount]);
+
+					vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount] = STEP_DOWN(vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]);
+
+					vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].push_front(m_vi_Edges[i] + i_LeftVertexCount);
+
+					vlit_VertexLocation[m_vi_Edges[i] + i_LeftVertexCount] = vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].begin();
+				}
+			}
+			else
+			{
+				for(i=m_vi_RightVertices[i_SelectedVertex - i_LeftVertexCount]; i<m_vi_RightVertices[STEP_UP(i_SelectedVertex - i_LeftVertexCount)]; i++)
+				{
+					if(vi_InducedVertexDegree[m_vi_Edges[i]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i]]].erase(vlit_VertexLocation[m_vi_Edges[i]]);
+
+					vi_InducedVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_InducedVertexDegree[m_vi_Edges[i]]);
+
+					vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+					vlit_VertexLocation[m_vi_Edges[i]] = vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[m_vi_Edges[i]]].begin();
+				}
+			}
+
+			vli_GroupedInducedVertexDegree[vi_InducedVertexDegree[i_SelectedVertex]].erase(vlit_VertexLocation[i_SelectedVertex]);
+
+			vi_InducedVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			m_vi_OrderedVertices.insert(m_vi_OrderedVertices.begin(), i_SelectedVertex);
+
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+
+#if DEBUG == 3460
+
+		int i_OrderedVertexCount;
+
+		cout<<endl;
+		cout<<"DEBUG 3460 | Vertex Ordering | Smallest Last"<<endl;
+		cout<<endl;
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Ordered Vertex Count = "<<i_OrderedVertexCount<<"/"<<i_LeftVertexCount + i_RightVertexCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	int BipartiteGraphOrdering::SelectiveIncidenceDegreeOrdering()
+	{
+		if(CheckVertexOrdering("SELECTIVE_INCIDENCE_DEGREE"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j;
+
+		int i_HighestDegreeVertex, m_i_MaximumVertexDegree;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_IncidenceVertexDegree, i_IncidenceVertexDegreeCount;
+
+		int i_IncludedVertexCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector<int> vi_IncidenceVertexDegree;
+
+		vector< list<int> > vli_GroupedIncidenceVertexDegree;
+
+		vector< list<int>::iterator > vlit_VertexLocation;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		vi_IncidenceVertexDegree.clear();
+		vi_IncidenceVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount, _UNKNOWN);
+
+		vli_GroupedIncidenceVertexDegree.clear();
+		vli_GroupedIncidenceVertexDegree.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		vlit_VertexLocation.clear();
+		vlit_VertexLocation.resize((unsigned) i_LeftVertexCount + i_RightVertexCount);
+
+		i_SelectedVertex = _UNKNOWN;
+
+		i_IncludedVertexCount = _FALSE;
+
+		i_HighestDegreeVertex = m_i_MaximumVertexDegree = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_IncludedLeftVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_IncludedVertexCount++;
+
+			i_IncidenceVertexDegree = _FALSE;
+
+			vi_IncidenceVertexDegree[i] = i_IncidenceVertexDegree;
+
+			vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].push_front(i);
+
+			vlit_VertexLocation[vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].front()] = vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].begin();
+
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedRightVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_IncidenceVertexDegree++;
+			}
+
+			if(m_i_MaximumVertexDegree < i_IncidenceVertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_IncidenceVertexDegree;
+
+				i_HighestDegreeVertex = i;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+      		if(m_vi_IncludedRightVertices[i] == _FALSE)
+			{
+				continue;
+			}
+
+			i_IncludedVertexCount++;
+
+			i_IncidenceVertexDegree = _FALSE;
+
+			vi_IncidenceVertexDegree[i + i_LeftVertexCount] = i_IncidenceVertexDegree;
+
+			vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].push_front(i + i_LeftVertexCount);
+
+			vlit_VertexLocation[vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].front()] = vli_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].begin();
+
+			for(j=m_vi_RightVertices[i]; j<m_vi_RightVertices[STEP_UP(i)]; j++)
+			{
+				if(m_vi_IncludedLeftVertices[m_vi_Edges[j]] == _FALSE)
+				{
+					continue;
+				}
+
+				i_IncidenceVertexDegree++;
+			}
+
+			if(m_i_MaximumVertexDegree < i_IncidenceVertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_IncidenceVertexDegree;
+
+				i_HighestDegreeVertex = i + i_LeftVertexCount;
+			}
+		}
+
+#if DEBUG == 3461
+
+		list<int>::iterator lit_ListIterator;
+
+		cout<<endl;
+		cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree | Vertex Degrees"<<endl;
+		cout<<endl;
+
+		for(i=m_i_MaximumVertexDegree; i>=0; i--)
+		{
+			cout<<"Degree "<<i<<"\t"<<" : ";
+
+			i_IncidenceVertexDegreeCount = (signed) vli_GroupedIncidenceVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedIncidenceVertexDegree[i].begin(); lit_ListIterator != vli_GroupedIncidenceVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_IncidenceVertexDegreeCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_IncidenceVertexDegreeCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+		 cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Highest Degree Vertex = "<<STEP_UP(i_HighestDegreeVertex)<<"; Highest Vertex Degree = "<<m_i_MaximumVertexDegree<<"; Candidate Vertex Count = "<<i_IncludedVertexCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		m_vi_OrderedVertices.clear();
+
+		i_SelectedVertexCount = _FALSE;
+
+		while(i_SelectedVertexCount < i_IncludedVertexCount)
+		{
+			if(i_SelectedVertexCount == _FALSE)
+			{
+				i_SelectedVertex = i_HighestDegreeVertex;
+			}
+			else
+			{
+				for(i=m_i_MaximumVertexDegree; i>=0; i--)
+				{
+					i_IncidenceVertexDegreeCount = (signed) vli_GroupedIncidenceVertexDegree[i].size();
+
+					if(i_IncidenceVertexDegreeCount != _FALSE)
+					{
+						i_SelectedVertex = vli_GroupedIncidenceVertexDegree[i].front();
+
+						break;
+					}
+				}
+			}
+
+			if(i_SelectedVertex < i_LeftVertexCount)
+			{
+
+#if DEBUG == 3461
+
+				cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree | Selected Left Vertex | "<<STEP_UP(i_SelectedVertex)<<" [Selection "<<STEP_UP(i_SelectedVertexCount)<<"]"<<endl;
+
+#endif
+
+				for(i=m_vi_LeftVertices[i_SelectedVertex]; i<m_vi_LeftVertices[STEP_UP(i_SelectedVertex)]; i++)
+				{
+					if(vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].erase(vlit_VertexLocation[m_vi_Edges[i] + i_LeftVertexCount]);
+
+					vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount] = STEP_UP(vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]);
+
+					vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].push_front(m_vi_Edges[i] + i_LeftVertexCount);
+
+					vlit_VertexLocation[m_vi_Edges[i] + i_LeftVertexCount] = vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i] + i_LeftVertexCount]].begin();
+
+#if DEBUG == 3461
+
+					cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree | Repositioned Right Vertex | "<<STEP_UP(m_vi_Edges[i] + i_LeftVertexCount)<<endl;
+
+#endif
+
+				}
+			}
+			else
+			{
+
+#if DEBUG == 3461
+
+				cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree | Selected Right Vertex | "<<STEP_UP(i_SelectedVertex)<<" [Selection "<<STEP_UP(i_SelectedVertexCount)<<"]"<<endl;
+
+#endif
+
+				for(i=m_vi_RightVertices[i_SelectedVertex - i_LeftVertexCount]; i<m_vi_RightVertices[STEP_UP(i_SelectedVertex - i_LeftVertexCount)]; i++)
+				{
+					if(vi_IncidenceVertexDegree[m_vi_Edges[i]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i]]].erase(vlit_VertexLocation[m_vi_Edges[i]]);
+
+					vi_IncidenceVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_IncidenceVertexDegree[m_vi_Edges[i]]);
+
+					vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+					vlit_VertexLocation[m_vi_Edges[i]] = vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[m_vi_Edges[i]]].begin();
+
+#if DEBUG == 3461
+
+					cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree | Repositioned Left Vertex | "<<STEP_UP(m_vi_Edges[i])<<endl;
+
+#endif
+
+				}
+			}
+
+			vli_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[i_SelectedVertex]].erase(vlit_VertexLocation[i_SelectedVertex]);
+
+			vi_IncidenceVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+
+		}
+
+#if DEBUG == 3461
+
+		int i_OrderedVertexCount;
+
+		cout<<endl;
+		cout<<"DEBUG 3461 | Vertex Ordering | Incidence Degree"<<endl;
+		cout<<endl;
+
+		i_OrderedVertexCount = (signed) m_vi_OrderedVertices.size();
+
+		for(i=0; i<i_OrderedVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_OrderedVertices[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Ordered Vertex Count = "<<i_OrderedVertexCount<<"/"<<i_LeftVertexCount + i_RightVertexCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	string BipartiteGraphOrdering::GetVertexOrderingVariant()
+	{
+
+		if(m_s_VertexOrderingVariant.compare("NATURAL") == 0)
+		{
+			return("Natural");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("LARGEST_FIRST") == 0)
+		{
+			return("Largest First");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SMALLEST_LAST") == 0)
+		{
+			return("Smallest Last");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("INCIDENCE_DEGREE") == 0)
+		{
+			return("Incidence Degree");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SELECTVE_LARGEST_FIRST") == 0)
+		{
+			return("Selective Largest First");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SELECTVE_SMALLEST_FIRST") == 0)
+		{
+			return("Selective Smallest Last");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SELECTIVE_INCIDENCE_DEGREE") == 0)
+		{
+			return("Selective Incidence Degree");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DYNAMIC_LARGEST_FIRST") == 0)
+		{
+			return("Dynamic Largest First");
+		}
+		else
+		{
+			return("Unknown");
+		}
+	}
+
+	void BipartiteGraphOrdering::GetOrderedVertices(vector<int> &output)
+	{
+		output = (m_vi_OrderedVertices);
+	}
+
+	int BipartiteGraphOrdering::OrderVertices(string s_OrderingVariant) {
+		s_OrderingVariant = toUpper(s_OrderingVariant);
+
+		if((s_OrderingVariant.compare("NATURAL") == 0))
+		{
+			return(NaturalOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("LARGEST_FIRST") == 0))
+		{
+			return(LargestFirstOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("DYNAMIC_LARGEST_FIRST") == 0))
+		{
+			return(DynamicLargestFirstOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("SMALLEST_LAST") == 0))
+		{
+			return(SmallestLastOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("INCIDENCE_DEGREE") == 0))
+		{
+			return(IncidenceDegreeOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("RANDOM") == 0))
+		{
+			return(RandomOrdering());
+		}
+		else
+		{
+			cerr<<endl;
+			cerr<<"Unknown Ordering Method: "<<s_OrderingVariant;
+			cerr<<endl;
+		}
+
+		return(_TRUE);
+	}
+
+	void BipartiteGraphOrdering::PrintVertexOrdering() {
+		cout<<"PrintVertexOrdering() "<<m_s_VertexOrderingVariant<<endl;
+		for(unsigned int i=0; i<m_vi_OrderedVertices.size();i++) {
+			//printf("\t [%d] %d \n", i, m_vi_OrderedVertices[i]);
+			cout<<"\t["<<setw(5)<<i<<"] "<<setw(5)<<m_vi_OrderedVertices[i]<<endl;
+		}
+		cout<<endl;
+	}
+
+	double BipartiteGraphOrdering::GetVertexOrderingTime() {
+	  return m_d_OrderingTime;
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphOrdering.h
@@ -0,0 +1,79 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+//using namespace std;
+
+#ifndef BIPARTITEGRAPHORDERING_H
+#define BIPARTITEGRAPHORDERING_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group22
+	 *  @brief class BipartiteGraphOrdering in @link group22@endlink.
+
+	 The BipartiteGraphOrderingClass stores the ordered row and column vertices as a vector of vertex
+	 identifiers to be used by bipartite graph bicoloring methods. Since the row and column vertices use the same
+	 set of identifiers, number of row vertices is added the column vertex identifiers in the ordered vector.
+	 */
+	class BipartiteGraphOrdering : public BipartiteGraphVertexCover
+	{
+	public:
+
+		int OrderVertices(string s_OrderingVariant);
+
+	private:
+
+		//Private Function 3401
+		int CheckVertexOrdering(string s_VertexOrderingVariant);
+
+	protected:
+
+		double m_d_OrderingTime;
+
+		string m_s_VertexOrderingVariant;
+
+		vector<int> m_vi_OrderedVertices;
+
+	public:
+
+		BipartiteGraphOrdering();
+
+		~BipartiteGraphOrdering();
+
+		virtual void Clear();
+
+		virtual void Reset();
+
+		int NaturalOrdering();
+
+		int RandomOrdering();
+
+		int LargestFirstOrdering();
+
+		int SmallestLastOrdering();
+
+		int IncidenceDegreeOrdering();
+
+		int DynamicLargestFirstOrdering();
+
+		int SelectiveLargestFirstOrdering();
+
+		int SelectiveSmallestLastOrdering();
+
+		int SelectiveIncidenceDegreeOrdering();
+
+		string GetVertexOrderingVariant();
+
+		void GetOrderedVertices(vector<int> &output);
+
+		void PrintVertexOrdering();
+
+		double GetVertexOrderingTime();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphVertexCover.cpp
@@ -0,0 +1,2041 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Public Constructor 3351
+	BipartiteGraphVertexCover::BipartiteGraphVertexCover()
+	{
+		Clear();
+	}
+
+
+	//Public Destructor 3352
+	BipartiteGraphVertexCover::~BipartiteGraphVertexCover()
+	{
+		Clear();
+	}
+
+
+	//Virtual Function 3353
+	void BipartiteGraphVertexCover::Clear()
+	{
+		BipartiteGraphInputOutput::Clear();
+
+		m_d_CoveringTime = _UNKNOWN;
+
+		m_vi_IncludedLeftVertices.clear();
+		m_vi_IncludedRightVertices.clear();
+
+		m_vi_CoveredLeftVertices.clear();
+		m_vi_CoveredRightVertices.clear();
+
+		return;
+	}
+
+
+	//Virtual Function 3354
+	void BipartiteGraphVertexCover::Reset()
+	{
+		m_d_CoveringTime = _UNKNOWN;
+
+		m_vi_IncludedLeftVertices.clear();
+		m_vi_IncludedRightVertices.clear();
+
+		m_vi_CoveredLeftVertices.clear();
+		m_vi_CoveredRightVertices.clear();
+
+		return;
+	}
+
+
+	//Public Function 3355
+	int BipartiteGraphVertexCover::CoverVertex()
+	{
+		int i, j;
+
+		int i_EdgeCount, i_CodeZeroEdgeCount;
+
+		int i_CandidateLeftVertex, i_CandidateRightVertex;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentEdge, i_NeighboringEdge;
+
+		int i_QuotientOne, i_QuotientTwo;
+
+		int i_VertexDegree,  i_CodeZeroDegreeVertexCount;
+
+		int i_CodeZeroOneLeftVertexDegree, i_CodeZeroOneRightVertexDegree;
+
+		int i_HighestCodeZeroLeftVertexDegree, i_LowestCodeZeroLeftVertexDegree;
+
+		int i_HighestCodeZeroRightVertexDegree, i_LowestCodeZeroRightVertexDegree;
+
+		int i_HighestCodeTwoLeftVertexDegree, i_HighestCodeThreeRightVertexDegree;
+
+		vector<int> vi_EdgeCodes;
+
+		vector<int> vi_LeftVertexDegree, vi_CodeZeroLeftVertexDegree,  vi_CodeOneLeftVertexDegree,  vi_CodeTwoLeftVertexDegree, vi_CodeThreeLeftVertexDegree;
+
+		vector<int> vi_RightVertexDegree, vi_CodeZeroRightVertexDegree,  vi_CodeOneRightVertexDegree,  vi_CodeTwoRightVertexDegree, vi_CodeThreeRightVertexDegree;
+
+		vector< list<int> > vli_GroupedCodeZeroLeftVertexDegree, vli_GroupedCodeZeroRightVertexDegree;
+
+		vector< list<int>::iterator > vlit_CodeZeroLeftVertexLocation, vlit_CodeZeroRightVertexLocation;
+
+		list<int>::iterator lit_ListIterator;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_IncludedLeftVertices.clear();
+		m_vi_IncludedLeftVertices.resize((unsigned) i_LeftVertexCount, _TRUE);
+
+		m_vi_IncludedRightVertices.clear();
+		m_vi_IncludedRightVertices.resize((unsigned) i_RightVertexCount, _TRUE);
+
+#if DEBUG == 3355
+
+		cout<<endl;
+		cout<<"DEBUG 3355 | Star Bicoloring | Edge Codes | Left and Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				cout<<STEP_UP(m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]])<<"\t"<<" : "<<STEP_UP(i)<<" - "<<STEP_UP(m_vi_Edges[j])<<endl;
+			}
+		}
+
+#endif
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeCodes.clear();
+		vi_EdgeCodes.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_LeftVertexDegree.clear();
+		vi_LeftVertexDegree.resize((unsigned) i_LeftVertexCount);
+
+		vi_CodeZeroLeftVertexDegree.clear();
+
+		vli_GroupedCodeZeroLeftVertexDegree.clear();
+		vli_GroupedCodeZeroLeftVertexDegree.resize((unsigned) STEP_UP(i_RightVertexCount));
+
+		vlit_CodeZeroLeftVertexLocation.clear();
+
+		i_HighestCodeZeroLeftVertexDegree = _FALSE;
+		i_LowestCodeZeroLeftVertexDegree = i_RightVertexCount;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vi_LeftVertexDegree[i] = i_VertexDegree;
+
+			vi_CodeZeroLeftVertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedCodeZeroLeftVertexDegree[i_VertexDegree].push_front(i);
+
+			vlit_CodeZeroLeftVertexLocation.push_back(vli_GroupedCodeZeroLeftVertexDegree[i_VertexDegree].begin());
+
+			if(i_HighestCodeZeroLeftVertexDegree < i_VertexDegree)
+			{
+				i_HighestCodeZeroLeftVertexDegree = i_VertexDegree;
+			}
+
+			if(i_LowestCodeZeroLeftVertexDegree > i_VertexDegree)
+			{
+				i_LowestCodeZeroLeftVertexDegree = i_VertexDegree;
+			}
+		}
+
+		vi_RightVertexDegree.clear();
+		vi_RightVertexDegree.resize((unsigned) i_RightVertexCount);
+
+		vi_CodeZeroRightVertexDegree.clear();
+
+		vli_GroupedCodeZeroRightVertexDegree.clear();
+		vli_GroupedCodeZeroRightVertexDegree.resize((unsigned) STEP_UP(i_LeftVertexCount));
+
+		vlit_CodeZeroRightVertexLocation.clear();
+
+		i_HighestCodeZeroRightVertexDegree = _FALSE;
+		i_LowestCodeZeroRightVertexDegree = i_RightVertexCount;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vi_RightVertexDegree[i] = i_VertexDegree;
+
+			vi_CodeZeroRightVertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedCodeZeroRightVertexDegree[i_VertexDegree].push_front(i);
+
+			vlit_CodeZeroRightVertexLocation.push_back(vli_GroupedCodeZeroRightVertexDegree[i_VertexDegree].begin());
+
+			if(i_HighestCodeZeroRightVertexDegree < i_VertexDegree)
+			{
+				i_HighestCodeZeroRightVertexDegree = i_VertexDegree;
+			}
+
+			if(i_LowestCodeZeroRightVertexDegree > i_VertexDegree)
+			{
+				i_LowestCodeZeroRightVertexDegree = i_VertexDegree;
+			}
+		}
+
+		vi_CodeOneLeftVertexDegree.clear();
+		vi_CodeOneLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeTwoLeftVertexDegree.clear();
+		vi_CodeTwoLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeThreeLeftVertexDegree.clear();
+		vi_CodeThreeLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeOneRightVertexDegree.clear();
+		vi_CodeOneRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+		vi_CodeTwoRightVertexDegree.clear();
+		vi_CodeTwoRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+		vi_CodeThreeRightVertexDegree.clear();
+		vi_CodeThreeRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+
+#if DEBUG == 3355
+
+		cout<<endl;
+		cout<<"DEBUG 3355 | Star Bicoloring | Code Zero Vertex Degrees | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+		{
+			cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+			i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3355 | Star Bicoloring | Code Zero Vertex Degrees | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+		{
+			cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+			i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_HighestCodeTwoLeftVertexDegree = i_HighestCodeThreeRightVertexDegree = _FALSE;
+
+		i_CodeZeroEdgeCount = i_EdgeCount;
+
+		while(i_CodeZeroEdgeCount)
+		{
+			i_CandidateLeftVertex = i_CandidateRightVertex = _UNKNOWN;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+			{
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+				if(i_CodeZeroDegreeVertexCount != _FALSE)
+				{
+					i_VertexDegree = _UNKNOWN;
+
+					for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+					{
+						if(i_VertexDegree == _UNKNOWN)
+						{
+							i_VertexDegree = vi_LeftVertexDegree[*lit_ListIterator];
+
+							i_CandidateLeftVertex = *lit_ListIterator;
+						}
+						else
+						{
+							if(i_VertexDegree > vi_LeftVertexDegree[*lit_ListIterator])
+							{
+								i_VertexDegree = vi_LeftVertexDegree[*lit_ListIterator];
+
+								i_CandidateLeftVertex = *lit_ListIterator;
+							}
+						}
+					}
+
+					break;
+				}
+			}
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+			{
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+				if(i_CodeZeroDegreeVertexCount != _FALSE)
+				{
+					i_VertexDegree = _UNKNOWN;
+
+					for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+					{
+						if(i_VertexDegree == _UNKNOWN)
+						{
+							i_VertexDegree = vi_RightVertexDegree[*lit_ListIterator];
+
+							i_CandidateRightVertex = *lit_ListIterator;
+						}
+						else
+						{
+							if(i_VertexDegree > vi_RightVertexDegree[*lit_ListIterator])
+							{
+								i_VertexDegree = vi_RightVertexDegree[*lit_ListIterator];
+
+								i_CandidateRightVertex = *lit_ListIterator;
+							}
+						}
+					}
+
+					break;
+				}
+			}
+
+#if DEBUG == 3355
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Candidate Vertices"<<endl;
+			cout<<endl;
+
+			cout<<"Candidate Left Vertex = "<<STEP_UP(i_CandidateLeftVertex)<<"; Candidate Right Vertex = "<<STEP_UP(i_CandidateRightVertex)<<endl;
+			cout<<endl;
+
+#endif
+
+			i_CodeZeroOneLeftVertexDegree = vi_CodeZeroLeftVertexDegree[i_CandidateLeftVertex] + vi_CodeOneLeftVertexDegree[i_CandidateLeftVertex];
+
+			i_CodeZeroOneRightVertexDegree = vi_CodeZeroRightVertexDegree[i_CandidateRightVertex] + vi_CodeOneRightVertexDegree[i_CandidateRightVertex];
+
+
+			i_QuotientOne = i_HighestCodeTwoLeftVertexDegree>i_CodeZeroOneLeftVertexDegree?i_HighestCodeTwoLeftVertexDegree:i_CodeZeroOneLeftVertexDegree;
+			i_QuotientOne += i_HighestCodeThreeRightVertexDegree;
+
+			i_QuotientTwo = i_HighestCodeThreeRightVertexDegree>i_CodeZeroOneRightVertexDegree?i_HighestCodeThreeRightVertexDegree:i_CodeZeroOneRightVertexDegree;
+			i_QuotientTwo += i_HighestCodeTwoLeftVertexDegree;
+
+#if DEBUG == 3355
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Decision Quotients"<<endl;
+			cout<<endl;
+
+			cout<<"Quotient One = "<<i_QuotientOne<<"; Quotient Two = "<<i_QuotientTwo<<endl;
+
+#endif
+
+			if(i_QuotientOne < i_QuotientTwo)
+			{
+				i_CandidateRightVertex = _UNKNOWN;
+			}
+			else
+			{
+				i_CandidateLeftVertex = _UNKNOWN;
+			}
+
+#if DEBUG == 3355
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Selected Vertex"<<endl;
+			cout<<endl;
+
+			cout<<"Selected Left Vertex = "<<STEP_UP(i_CandidateLeftVertex)<<"; Selected Right Vertex = "<<STEP_UP(i_CandidateRightVertex)<<endl;
+
+#endif
+
+#if DEBUG == 3355
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Edge Code Changes"<<endl;
+			cout<<endl;
+
+#endif
+
+			if(i_CandidateRightVertex == _UNKNOWN)
+			{
+				m_vi_IncludedLeftVertices[i_CandidateLeftVertex] = _FALSE;
+
+				vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[i_CandidateLeftVertex]].erase(vlit_CodeZeroLeftVertexLocation[i_CandidateLeftVertex]);
+
+				for(i=m_vi_LeftVertices[i_CandidateLeftVertex]; i<m_vi_LeftVertices[STEP_UP(i_CandidateLeftVertex)]; i++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_CandidateLeftVertex][m_vi_Edges[i]];
+
+					if((vi_EdgeCodes[i_PresentEdge] == _FALSE) || (vi_EdgeCodes[i_PresentEdge] == _TRUE))
+					{
+						if(vi_EdgeCodes[i_PresentEdge] == _FALSE)
+						{
+							i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+							if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+							{
+								vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]]);
+							}
+
+							vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] = _UNKNOWN;
+						}
+						else
+						{
+							vi_CodeOneRightVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeOneRightVertexDegree[m_vi_Edges[i]]);
+						}
+
+#if DEBUG == 3355
+
+						cout<<"Edge "<<STEP_UP(i_CandidateLeftVertex)<<" - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(i_PresentEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_PresentEdge]<<" To 2"<<endl;
+
+#endif
+
+						vi_EdgeCodes[i_PresentEdge] = 2;
+
+						vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex] = STEP_UP(vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex]);
+
+						if(i_HighestCodeTwoLeftVertexDegree < vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex])
+						{
+							i_HighestCodeTwoLeftVertexDegree = vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex];
+						}
+
+						vi_CodeTwoRightVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeTwoRightVertexDegree[m_vi_Edges[i]]);
+
+						for(j=m_vi_RightVertices[m_vi_Edges[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_Edges[i])]; j++)
+						{
+							if(m_vi_Edges[j] == i_CandidateLeftVertex)
+							{
+								continue;
+							}
+
+							i_NeighboringEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[i]];
+
+							if(vi_EdgeCodes[i_NeighboringEdge] == _FALSE)
+							{
+								i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[j]]);
+								}
+
+								vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] = STEP_DOWN(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].push_front(m_vi_Edges[j]);
+
+									vlit_CodeZeroLeftVertexLocation[m_vi_Edges[j]] =  vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].begin();
+								}
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]]);
+								}
+
+								vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]);
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+									vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]] = vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].begin();
+								}
+
+#if DEBUG == 3355
+
+								cout<<"Edge "<<STEP_UP(m_vi_Edges[j])<<" - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(i_NeighboringEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_NeighboringEdge]<<" To 1"<<endl;
+
+#endif
+
+								vi_EdgeCodes[i_NeighboringEdge] = _TRUE;
+
+								vi_CodeOneLeftVertexDegree[m_vi_Edges[j]] = STEP_UP(vi_CodeOneLeftVertexDegree[m_vi_Edges[j]]);
+
+								vi_CodeOneRightVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeOneRightVertexDegree[m_vi_Edges[i]]);
+
+							}
+						}
+					}
+				}
+			}
+			else
+			if(i_CandidateLeftVertex == _UNKNOWN)
+			{
+				m_vi_IncludedRightVertices[i_CandidateRightVertex] = _FALSE;
+
+				vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[i_CandidateRightVertex]].erase(vlit_CodeZeroRightVertexLocation[i_CandidateRightVertex]);
+
+				for(i=m_vi_RightVertices[i_CandidateRightVertex]; i<m_vi_RightVertices[STEP_UP(i_CandidateRightVertex)]; i++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[i]][i_CandidateRightVertex];
+
+					if((vi_EdgeCodes[i_PresentEdge] == _FALSE) || (vi_EdgeCodes[i_PresentEdge] == _TRUE))
+					{
+						if(vi_EdgeCodes[i_PresentEdge] == _FALSE)
+						{
+							i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+							if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+							{
+								vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]]);
+							}
+
+							vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] = _UNKNOWN;
+						}
+						else
+						{
+							vi_CodeOneLeftVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeOneLeftVertexDegree[m_vi_Edges[i]]);
+						}
+
+
+#if DEBUG == 3355
+						cout<<"Edge "<<STEP_UP(m_vi_Edges[i])<<" - "<<STEP_UP(i_CandidateRightVertex)<<" ["<<STEP_UP(i_PresentEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_PresentEdge]<<" To 3"<<endl;
+#endif
+
+						vi_EdgeCodes[i_PresentEdge] = 3;
+
+						vi_CodeThreeLeftVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeThreeLeftVertexDegree[m_vi_Edges[i]]);
+
+						vi_CodeThreeRightVertexDegree[i_CandidateRightVertex] = STEP_UP(vi_CodeThreeRightVertexDegree[i_CandidateRightVertex]);
+
+						if(i_HighestCodeThreeRightVertexDegree < vi_CodeThreeRightVertexDegree[i_CandidateRightVertex])
+						{
+							i_HighestCodeThreeRightVertexDegree = vi_CodeThreeRightVertexDegree[i_CandidateRightVertex];
+						}
+
+						for(j=m_vi_LeftVertices[m_vi_Edges[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_Edges[i])]; j++)
+						{
+							if(m_vi_Edges[j] == i_CandidateRightVertex)
+							{
+								continue;
+							}
+
+							i_NeighboringEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[i]][m_vi_Edges[j]];
+
+							if(vi_EdgeCodes[i_NeighboringEdge] == _FALSE)
+							{
+								i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]]);
+								}
+
+								vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+									vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]] =  vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].begin();
+								}
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[j]]);
+								}
+
+								vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] = STEP_DOWN(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]);
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].push_front(m_vi_Edges[j]);
+
+									vlit_CodeZeroRightVertexLocation[m_vi_Edges[j]] = vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].begin();
+
+								}
+
+#if DEBUG == 3355
+
+								cout<<"Edge "<<STEP_UP(m_vi_Edges[i])<<" - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_NeighboringEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_NeighboringEdge]<<" To 1"<<endl;
+
+#endif
+								vi_EdgeCodes[i_NeighboringEdge] = _TRUE;
+
+								vi_CodeOneLeftVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeOneLeftVertexDegree[m_vi_Edges[i]]);
+
+								vi_CodeOneRightVertexDegree[m_vi_Edges[j]] = STEP_UP(vi_CodeOneRightVertexDegree[m_vi_Edges[j]]);
+
+							}
+						}
+					}
+				}
+			}
+
+#if DEBUG == 3355
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Code Zero Vertex Degrees | Left Vertices"<<endl;
+			cout<<endl;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+			{
+				cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+				j = _FALSE;
+
+				for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+				{
+					if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<", ";
+					}
+
+					j++;
+				}
+
+				cout<<endl;
+			}
+
+			cout<<endl;
+			cout<<"DEBUG 3355 | Star Bicoloring | Code Zero Vertex Degrees | Right Vertices"<<endl;
+			cout<<endl;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+			{
+				cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+				j = _FALSE;
+
+				for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+				{
+					if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<", ";
+					}
+
+					j++;
+				}
+
+				cout<<endl;
+			}
+
+			cout<<endl;
+			cout<<"[Edges Left = "<<i_CodeZeroEdgeCount<<"]"<<endl;
+			cout<<endl;
+
+#endif
+
+		}
+
+		m_vi_CoveredLeftVertices.clear();
+		m_vi_CoveredRightVertices.clear();
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_IncludedLeftVertices[i] == _TRUE)
+			{
+				m_vi_CoveredLeftVertices.push_back(i);
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_IncludedRightVertices[i] == _TRUE)
+			{
+				m_vi_CoveredRightVertices.push_back(i);
+			}
+		}
+
+
+#if DEBUG == 3355
+
+		int k;
+
+		int i_CoveredEdgeCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		i_CoveredEdgeCount = _FALSE;
+
+		cout<<endl;
+		cout<<"DEBUG 3355 | Star Bicoloring | Vertex Cover | Left Vertices"<<endl;
+		cout<<endl;
+
+		i_LeftVertexCoverSize = m_vi_CoveredLeftVertices.size();
+
+		if(!i_LeftVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Left Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredLeftVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])] - m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3355 | Star Bicoloring | Vertex Cover | Right Vertices"<<endl;
+		cout<<endl;
+
+		i_RightVertexCoverSize = m_vi_CoveredRightVertices.size();
+
+		if(!i_RightVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Right Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredRightVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])] - m_vi_RightVertices[m_vi_CoveredRightVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_RightVertices[m_vi_CoveredRightVertices[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<" ("<<i_VertexDegree<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+		}
+
+		cout<<endl;
+		cout<<"[Left Vertex Cover Size = "<<i_LeftVertexCoverSize<<"; Right Vertex Cover Size = "<<i_RightVertexCoverSize<<"; Edges Covered = "<<i_CoveredEdgeCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3356
+	int BipartiteGraphVertexCover::CoverVertex(vector<int> & vi_EdgeCodes)
+	{
+		int i, j;
+
+		int i_EdgeCount, i_CodeZeroEdgeCount;
+
+		int i_CandidateLeftVertex, i_CandidateRightVertex;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentEdge, i_NeighboringEdge;
+
+		int i_QuotientOne, i_QuotientTwo;
+
+		int i_VertexDegree,  i_CodeZeroDegreeVertexCount;
+
+		int i_CodeZeroOneLeftVertexDegree, i_CodeZeroOneRightVertexDegree;
+
+		int i_HighestCodeZeroLeftVertexDegree, i_LowestCodeZeroLeftVertexDegree;
+
+		int i_HighestCodeZeroRightVertexDegree, i_LowestCodeZeroRightVertexDegree;
+
+		int i_HighestCodeTwoLeftVertexDegree, i_HighestCodeThreeRightVertexDegree;
+
+		vector<int> vi_LeftVertexDegree, vi_CodeZeroLeftVertexDegree,  vi_CodeOneLeftVertexDegree,  vi_CodeTwoLeftVertexDegree, vi_CodeThreeLeftVertexDegree;
+
+		vector<int> vi_RightVertexDegree, vi_CodeZeroRightVertexDegree,  vi_CodeOneRightVertexDegree,  vi_CodeTwoRightVertexDegree, vi_CodeThreeRightVertexDegree;
+
+		vector< list<int> > vli_GroupedCodeZeroLeftVertexDegree, vli_GroupedCodeZeroRightVertexDegree;
+
+		vector< list<int>::iterator > vlit_CodeZeroLeftVertexLocation, vlit_CodeZeroRightVertexLocation;
+
+		list<int>::iterator lit_ListIterator;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_IncludedLeftVertices.clear();
+		m_vi_IncludedLeftVertices.resize((unsigned) i_LeftVertexCount, _TRUE);
+
+		m_vi_IncludedRightVertices.clear();
+		m_vi_IncludedRightVertices.resize((unsigned) i_RightVertexCount, _TRUE);
+
+#if DEBUG == 3356
+
+		cout<<endl;
+		cout<<"DEBUG 3356 | Star Bicoloring | Edge Codes | Left and Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			for(j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[STEP_UP(i)]; j++)
+			{
+				cout<<STEP_UP(m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]])<<"\t"<<" : "<<STEP_UP(i)<<" - "<<STEP_UP(m_vi_Edges[j])<<endl;
+			}
+		}
+
+#endif
+
+		i_EdgeCount = (signed) m_vi_Edges.size()/2;
+
+		vi_EdgeCodes.clear();
+		vi_EdgeCodes.resize((unsigned) i_EdgeCount, _FALSE);
+
+		vi_LeftVertexDegree.clear();
+		vi_LeftVertexDegree.resize((unsigned) i_LeftVertexCount);
+
+		vi_CodeZeroLeftVertexDegree.clear();
+
+		vli_GroupedCodeZeroLeftVertexDegree.clear();
+		vli_GroupedCodeZeroLeftVertexDegree.resize((unsigned) STEP_UP(i_RightVertexCount));
+
+		vlit_CodeZeroLeftVertexLocation.clear();
+
+		i_HighestCodeZeroLeftVertexDegree = _FALSE;
+		i_LowestCodeZeroLeftVertexDegree = i_RightVertexCount;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vi_LeftVertexDegree[i] = i_VertexDegree;
+
+			vi_CodeZeroLeftVertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedCodeZeroLeftVertexDegree[i_VertexDegree].push_front(i);
+
+			vlit_CodeZeroLeftVertexLocation.push_back(vli_GroupedCodeZeroLeftVertexDegree[i_VertexDegree].begin());
+
+			if(i_HighestCodeZeroLeftVertexDegree < i_VertexDegree)
+			{
+				i_HighestCodeZeroLeftVertexDegree = i_VertexDegree;
+			}
+
+			if(i_LowestCodeZeroLeftVertexDegree > i_VertexDegree)
+			{
+				i_LowestCodeZeroLeftVertexDegree = i_VertexDegree;
+			}
+		}
+
+		vi_RightVertexDegree.clear();
+		vi_RightVertexDegree.resize((unsigned) i_RightVertexCount);
+
+		vi_CodeZeroRightVertexDegree.clear();
+
+		vli_GroupedCodeZeroRightVertexDegree.clear();
+		vli_GroupedCodeZeroRightVertexDegree.resize((unsigned) STEP_UP(i_LeftVertexCount));
+
+		vlit_CodeZeroRightVertexLocation.clear();
+
+		i_HighestCodeZeroRightVertexDegree = _FALSE;
+		i_LowestCodeZeroRightVertexDegree = i_RightVertexCount;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vi_RightVertexDegree[i] = i_VertexDegree;
+
+			vi_CodeZeroRightVertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedCodeZeroRightVertexDegree[i_VertexDegree].push_front(i);
+
+			vlit_CodeZeroRightVertexLocation.push_back(vli_GroupedCodeZeroRightVertexDegree[i_VertexDegree].begin());
+
+			if(i_HighestCodeZeroRightVertexDegree < i_VertexDegree)
+			{
+				i_HighestCodeZeroRightVertexDegree = i_VertexDegree;
+			}
+
+			if(i_LowestCodeZeroRightVertexDegree > i_VertexDegree)
+			{
+				i_LowestCodeZeroRightVertexDegree = i_VertexDegree;
+			}
+		}
+
+		vi_CodeOneLeftVertexDegree.clear();
+		vi_CodeOneLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeTwoLeftVertexDegree.clear();
+		vi_CodeTwoLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeThreeLeftVertexDegree.clear();
+		vi_CodeThreeLeftVertexDegree.resize((unsigned) i_LeftVertexCount, _FALSE);
+
+		vi_CodeOneRightVertexDegree.clear();
+		vi_CodeOneRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+		vi_CodeTwoRightVertexDegree.clear();
+		vi_CodeTwoRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+		vi_CodeThreeRightVertexDegree.clear();
+		vi_CodeThreeRightVertexDegree.resize((unsigned) i_RightVertexCount, _FALSE);
+
+
+#if DEBUG == 3356
+
+		cout<<endl;
+		cout<<"DEBUG 3356 | Star Bicoloring | Code Zero Vertex Degrees | Left Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+		{
+			cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+			i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3356 | Star Bicoloring | Code Zero Vertex Degrees | Right Vertices"<<endl;
+		cout<<endl;
+
+		for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+		{
+			cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+			i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+			j = _FALSE;
+
+			for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+			{
+				if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				j++;
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_HighestCodeTwoLeftVertexDegree = i_HighestCodeThreeRightVertexDegree = _FALSE;
+
+		i_CodeZeroEdgeCount = i_EdgeCount;
+
+		while(i_CodeZeroEdgeCount)
+		{
+			i_CandidateLeftVertex = i_CandidateRightVertex = _UNKNOWN;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+			{
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+				if(i_CodeZeroDegreeVertexCount != _FALSE)
+				{
+					i_VertexDegree = _UNKNOWN;
+
+					for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+					{
+						if(i_VertexDegree == _UNKNOWN)
+						{
+							i_VertexDegree = vi_LeftVertexDegree[*lit_ListIterator];
+
+							i_CandidateLeftVertex = *lit_ListIterator;
+						}
+						else
+						{
+							if(i_VertexDegree > vi_LeftVertexDegree[*lit_ListIterator])
+							{
+								i_VertexDegree = vi_LeftVertexDegree[*lit_ListIterator];
+
+								i_CandidateLeftVertex = *lit_ListIterator;
+							}
+						}
+					}
+
+					break;
+				}
+			}
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+			{
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+				if(i_CodeZeroDegreeVertexCount != _FALSE)
+				{
+					i_VertexDegree = _UNKNOWN;
+
+					for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+					{
+						if(i_VertexDegree == _UNKNOWN)
+						{
+							i_VertexDegree = vi_RightVertexDegree[*lit_ListIterator];
+
+							i_CandidateRightVertex = *lit_ListIterator;
+						}
+						else
+						{
+							if(i_VertexDegree > vi_RightVertexDegree[*lit_ListIterator])
+							{
+								i_VertexDegree = vi_RightVertexDegree[*lit_ListIterator];
+
+								i_CandidateRightVertex = *lit_ListIterator;
+							}
+						}
+					}
+
+					break;
+				}
+			}
+
+#if DEBUG == 3356
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Candidate Vertices"<<endl;
+			cout<<endl;
+
+			cout<<"Candidate Left Vertex = "<<STEP_UP(i_CandidateLeftVertex)<<"; Candidate Right Vertex = "<<STEP_UP(i_CandidateRightVertex)<<endl;
+			cout<<endl;
+
+#endif
+
+			i_CodeZeroOneLeftVertexDegree = vi_CodeZeroLeftVertexDegree[i_CandidateLeftVertex] + vi_CodeOneLeftVertexDegree[i_CandidateLeftVertex];
+
+			i_CodeZeroOneRightVertexDegree = vi_CodeZeroRightVertexDegree[i_CandidateRightVertex] + vi_CodeOneRightVertexDegree[i_CandidateRightVertex];
+
+
+			i_QuotientOne = i_HighestCodeTwoLeftVertexDegree>i_CodeZeroOneLeftVertexDegree?i_HighestCodeTwoLeftVertexDegree:i_CodeZeroOneLeftVertexDegree;
+			i_QuotientOne += i_HighestCodeThreeRightVertexDegree;
+
+			i_QuotientTwo = i_HighestCodeThreeRightVertexDegree>i_CodeZeroOneRightVertexDegree?i_HighestCodeThreeRightVertexDegree:i_CodeZeroOneRightVertexDegree;
+			i_QuotientTwo += i_HighestCodeTwoLeftVertexDegree;
+
+#if DEBUG == 3356
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Decision Quotients"<<endl;
+			cout<<endl;
+
+			cout<<"Quotient One = "<<i_QuotientOne<<"; Quotient Two = "<<i_QuotientTwo<<endl;
+
+#endif
+
+			if(i_QuotientOne < i_QuotientTwo)
+			{
+				i_CandidateRightVertex = _UNKNOWN;
+			}
+			else
+			{
+				i_CandidateLeftVertex = _UNKNOWN;
+			}
+
+#if DEBUG == 3356
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Selected Vertex"<<endl;
+			cout<<endl;
+
+			cout<<"Selected Left Vertex = "<<STEP_UP(i_CandidateLeftVertex)<<"; Selected Right Vertex = "<<STEP_UP(i_CandidateRightVertex)<<endl;
+
+#endif
+
+#if DEBUG == 3356
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Edge Code Changes"<<endl;
+			cout<<endl;
+
+#endif
+
+			if(i_CandidateRightVertex == _UNKNOWN)
+			{
+				m_vi_IncludedLeftVertices[i_CandidateLeftVertex] = _FALSE;
+
+				vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[i_CandidateLeftVertex]].erase(vlit_CodeZeroLeftVertexLocation[i_CandidateLeftVertex]);
+
+				for(i=m_vi_LeftVertices[i_CandidateLeftVertex]; i<m_vi_LeftVertices[STEP_UP(i_CandidateLeftVertex)]; i++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[i_CandidateLeftVertex][m_vi_Edges[i]];
+
+					if((vi_EdgeCodes[i_PresentEdge] == _FALSE) || (vi_EdgeCodes[i_PresentEdge] == _TRUE))
+					{
+						if(vi_EdgeCodes[i_PresentEdge] == _FALSE)
+						{
+							i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+							if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+							{
+								vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]]);
+							}
+
+							vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] = _UNKNOWN;
+
+						}
+						else
+						{
+							vi_CodeOneRightVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeOneRightVertexDegree[m_vi_Edges[i]]);
+						}
+
+#if DEBUG == 3356
+
+						cout<<"Edge "<<STEP_UP(i_CandidateLeftVertex)<<" - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(i_PresentEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_PresentEdge]<<" To 2"<<endl;
+
+#endif
+						vi_EdgeCodes[i_PresentEdge] = 2;
+
+						vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex] = STEP_UP(vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex]);
+
+						if(i_HighestCodeTwoLeftVertexDegree < vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex])
+						{
+							i_HighestCodeTwoLeftVertexDegree = vi_CodeTwoLeftVertexDegree[i_CandidateLeftVertex];
+						}
+
+						vi_CodeTwoRightVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeTwoRightVertexDegree[m_vi_Edges[i]]);
+
+
+						for(j=m_vi_RightVertices[m_vi_Edges[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_Edges[i])]; j++)
+						{
+							if(m_vi_Edges[j] == i_CandidateLeftVertex)
+							{
+								continue;
+							}
+
+							i_NeighboringEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[i]];
+
+							if(vi_EdgeCodes[i_NeighboringEdge] == _FALSE)
+							{
+								i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[j]]);
+								}
+
+								vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] = STEP_DOWN(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].push_front(m_vi_Edges[j]);
+
+									vlit_CodeZeroLeftVertexLocation[m_vi_Edges[j]] =  vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[j]]].begin();
+								}
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]]);
+								}
+
+								vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]);
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+									vlit_CodeZeroRightVertexLocation[m_vi_Edges[i]] = vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[i]]].begin();
+								}
+
+
+#if DEBUG == 3356
+
+								cout<<"Edge "<<STEP_UP(m_vi_Edges[j])<<" - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(i_NeighboringEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_NeighboringEdge]<<" To 1"<<endl;
+
+#endif
+
+								vi_EdgeCodes[i_NeighboringEdge] = _TRUE;
+
+								vi_CodeOneLeftVertexDegree[m_vi_Edges[j]] = STEP_UP(vi_CodeOneLeftVertexDegree[m_vi_Edges[j]]);
+
+								vi_CodeOneRightVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeOneRightVertexDegree[m_vi_Edges[i]]);
+
+							}
+						}
+					}
+				}
+			}
+			else
+			if(i_CandidateLeftVertex == _UNKNOWN)
+			{
+				m_vi_IncludedRightVertices[i_CandidateRightVertex] = _FALSE;
+
+				vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[i_CandidateRightVertex]].erase(vlit_CodeZeroRightVertexLocation[i_CandidateRightVertex]);
+
+				for(i=m_vi_RightVertices[i_CandidateRightVertex]; i<m_vi_RightVertices[STEP_UP(i_CandidateRightVertex)]; i++)
+				{
+					i_PresentEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[i]][i_CandidateRightVertex];
+
+					if((vi_EdgeCodes[i_PresentEdge] == _FALSE) || (vi_EdgeCodes[i_PresentEdge] == _TRUE))
+					{
+						if(vi_EdgeCodes[i_PresentEdge] == _FALSE)
+						{
+							i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+							if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+							{
+								vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]]);
+							}
+
+							vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] = _UNKNOWN;
+						}
+						else
+						{
+							vi_CodeOneLeftVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeOneLeftVertexDegree[m_vi_Edges[i]]);
+						}
+
+
+#if DEBUG == 3356
+
+						cout<<"Edge "<<STEP_UP(m_vi_Edges[i])<<" - "<<STEP_UP(i_CandidateRightVertex)<<" ["<<STEP_UP(i_PresentEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_PresentEdge]<<" To 3"<<endl;
+
+#endif
+
+						vi_EdgeCodes[i_PresentEdge] = 3;
+
+						vi_CodeThreeLeftVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeThreeLeftVertexDegree[m_vi_Edges[i]]);
+
+						vi_CodeThreeRightVertexDegree[i_CandidateRightVertex] = STEP_UP(vi_CodeThreeRightVertexDegree[i_CandidateRightVertex]);
+
+						if(i_HighestCodeThreeRightVertexDegree < vi_CodeThreeRightVertexDegree[i_CandidateRightVertex])
+						{
+							i_HighestCodeThreeRightVertexDegree = vi_CodeThreeRightVertexDegree[i_CandidateRightVertex];
+						}
+
+						for(j=m_vi_LeftVertices[m_vi_Edges[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_Edges[i])]; j++)
+						{
+							if(m_vi_Edges[j] == i_CandidateRightVertex)
+							{
+								continue;
+							}
+
+							i_NeighboringEdge = m_mimi2_VertexEdgeMap[m_vi_Edges[i]][m_vi_Edges[j]];
+
+							if(vi_EdgeCodes[i_NeighboringEdge] == _FALSE)
+							{
+								i_CodeZeroEdgeCount = STEP_DOWN(i_CodeZeroEdgeCount);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].erase(vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]]);
+								}
+
+								vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] = STEP_DOWN(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]);
+
+								if(vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].push_front(m_vi_Edges[i]);
+
+									vlit_CodeZeroLeftVertexLocation[m_vi_Edges[i]] =  vli_GroupedCodeZeroLeftVertexDegree[vi_CodeZeroLeftVertexDegree[m_vi_Edges[i]]].begin();
+								}
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].erase(vlit_CodeZeroRightVertexLocation[m_vi_Edges[j]]);
+								}
+
+								vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] = STEP_DOWN(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]);
+
+								if(vi_CodeZeroRightVertexDegree[m_vi_Edges[j]] > _UNKNOWN)
+								{
+									vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].push_front(m_vi_Edges[j]);
+
+									vlit_CodeZeroRightVertexLocation[m_vi_Edges[j]] = vli_GroupedCodeZeroRightVertexDegree[vi_CodeZeroRightVertexDegree[m_vi_Edges[j]]].begin();
+								}
+
+
+#if DEBUG == 3356
+
+								cout<<"Edge "<<STEP_UP(m_vi_Edges[i])<<" - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_NeighboringEdge)<<"] : Code Changed From "<<vi_EdgeCodes[i_NeighboringEdge]<<" To 1"<<endl;
+
+#endif
+								vi_EdgeCodes[i_NeighboringEdge] = _TRUE;
+
+								vi_CodeOneLeftVertexDegree[m_vi_Edges[i]] = STEP_UP(vi_CodeOneLeftVertexDegree[m_vi_Edges[i]]);
+
+								vi_CodeOneRightVertexDegree[m_vi_Edges[j]] = STEP_UP(vi_CodeOneRightVertexDegree[m_vi_Edges[j]]);
+
+							}
+						}
+					}
+				}
+			}
+
+#if DEBUG == 3356
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Code Zero Vertex Degrees | Left Vertices"<<endl;
+			cout<<endl;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroLeftVertexDegree); i++)
+			{
+				cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroLeftVertexDegree[i].size();
+
+				j = _FALSE;
+
+				for(lit_ListIterator = vli_GroupedCodeZeroLeftVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroLeftVertexDegree[i].end(); lit_ListIterator++)
+				{
+					if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<", ";
+					}
+
+					j++;
+				}
+
+				cout<<endl;
+			}
+
+			cout<<endl;
+			cout<<"DEBUG 3356 | Star Bicoloring | Code Zero Vertex Degrees | Right Vertices"<<endl;
+			cout<<endl;
+
+			for(i=0; i<STEP_UP(i_HighestCodeZeroRightVertexDegree); i++)
+			{
+				cout<<"Code Zero Degree "<<i<<"\t"<<" : ";
+
+				i_CodeZeroDegreeVertexCount = (signed) vli_GroupedCodeZeroRightVertexDegree[i].size();
+
+				j = _FALSE;
+
+				for(lit_ListIterator = vli_GroupedCodeZeroRightVertexDegree[i].begin(); lit_ListIterator != vli_GroupedCodeZeroRightVertexDegree[i].end(); lit_ListIterator++)
+				{
+					if(j==STEP_DOWN(i_CodeZeroDegreeVertexCount))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_CodeZeroDegreeVertexCount<<")";
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<", ";
+					}
+
+					j++;
+				}
+
+				cout<<endl;
+			}
+
+			cout<<endl;
+			cout<<"[Edges Left = "<<i_CodeZeroEdgeCount<<"]"<<endl;
+			cout<<endl;
+
+#endif
+
+		}
+
+		m_vi_CoveredLeftVertices.clear();
+		m_vi_CoveredRightVertices.clear();
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_IncludedLeftVertices[i] == _TRUE)
+			{
+				m_vi_CoveredLeftVertices.push_back(i);
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_IncludedRightVertices[i] == _TRUE)
+			{
+				m_vi_CoveredRightVertices.push_back(i);
+			}
+		}
+
+
+#if DEBUG == 3356
+
+		int k;
+
+		int i_CoveredEdgeCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		i_CoveredEdgeCount = _FALSE;
+
+		cout<<endl;
+		cout<<"DEBUG 3356 | Star Bicoloring | Vertex Cover | Left Vertices"<<endl;
+		cout<<endl;
+
+		i_LeftVertexCoverSize = m_vi_CoveredLeftVertices.size();
+
+		if(!i_LeftVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Left Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredLeftVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])] - m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3356 | Star Bicoloring | Vertex Cover | Right Vertices"<<endl;
+		cout<<endl;
+
+		i_RightVertexCoverSize = m_vi_CoveredRightVertices.size();
+
+		if(!i_RightVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Right Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredRightVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])] - m_vi_RightVertices[m_vi_CoveredRightVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_RightVertices[m_vi_CoveredRightVertices[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<" ("<<i_VertexDegree<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+		}
+
+		cout<<endl;
+		cout<<"[Left Vertex Cover Size = "<<i_LeftVertexCoverSize<<"; Right Vertex Cover Size = "<<i_RightVertexCoverSize<<"; Edges Covered = "<<i_CoveredEdgeCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3357
+	int BipartiteGraphVertexCover::CoverMinimalVertex()
+	{
+		int i, j;
+
+		int i_AvailableVertexCount;
+
+		int i_LeftVertexCount, i_RightVertexCount;
+
+		int i_PresentVertex, i_SelectedVertex, i_NeighboringVertex, i_SecondNeighboringVertex;
+
+		int i_VertexDegree, i_VertexCount;
+
+		vector<int> vi_AvailableVertices;
+
+		vector<int> vi_IndependentSet;
+
+		vector<int> vi_VertexDegree;
+
+		vector< list<int> > vli_GroupedVertexDegree;
+
+		vector< list<int>::iterator > vlit_VertexLocation;
+
+		i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		vi_VertexDegree.clear();
+
+		vli_GroupedVertexDegree.clear();
+		vli_GroupedVertexDegree.resize(STEP_UP(i_LeftVertexCount + i_RightVertexCount));
+
+		vlit_VertexLocation.clear();
+
+		m_i_MaximumVertexDegree = _UNKNOWN;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(i)] - m_vi_LeftVertices[i];
+
+			vi_VertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedVertexDegree[i_VertexDegree].push_front(i);
+
+			vlit_VertexLocation.push_back(vli_GroupedVertexDegree[i_VertexDegree].begin());
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(i)] - m_vi_RightVertices[i];
+
+			vi_VertexDegree.push_back(i_VertexDegree);
+
+			vli_GroupedVertexDegree[i_VertexDegree].push_front(i + i_LeftVertexCount);
+
+			vlit_VertexLocation.push_back(vli_GroupedVertexDegree[i_VertexDegree].begin());
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		i_AvailableVertexCount = i_LeftVertexCount + i_RightVertexCount;
+
+		vi_AvailableVertices.clear();
+		vi_AvailableVertices.resize((unsigned) i_AvailableVertexCount, _TRUE);
+
+		m_vi_IncludedLeftVertices.clear();
+		m_vi_IncludedLeftVertices.resize((unsigned) i_LeftVertexCount, _TRUE);
+
+		m_vi_IncludedRightVertices.clear();
+		m_vi_IncludedRightVertices.resize((unsigned) i_RightVertexCount, _TRUE);
+
+		vi_IndependentSet.clear();
+
+		i_SelectedVertex = _UNKNOWN;
+
+		while(i_AvailableVertexCount)
+		{
+			for(i=0; i<STEP_UP(m_i_MaximumVertexDegree); i++)
+			{
+				i_VertexCount = vli_GroupedVertexDegree[i].size();
+
+				if(i_VertexCount)
+				{
+					i_SelectedVertex = vli_GroupedVertexDegree[i].front();
+
+					vli_GroupedVertexDegree[i].pop_front();
+
+					vi_VertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+					vi_IndependentSet.push_back(i_SelectedVertex);
+
+					i_AvailableVertexCount--;
+
+					break;
+				}
+			}
+
+			if( vi_AvailableVertices[i_SelectedVertex] == _FALSE)
+			{
+				if(i_SelectedVertex < i_LeftVertexCount)
+				{
+					m_vi_IncludedLeftVertices[i_SelectedVertex] = _FALSE;
+				}
+				else
+				{
+					m_vi_IncludedLeftVertices[i_SelectedVertex - i_LeftVertexCount] = _FALSE;
+				}
+
+				continue;
+			}
+			else
+			{
+				vi_AvailableVertices[i_SelectedVertex] = _FALSE;
+			}
+
+			if(i_SelectedVertex < i_LeftVertexCount)
+			{
+				i_PresentVertex = i_SelectedVertex;
+
+				m_vi_IncludedLeftVertices[i_PresentVertex] = _FALSE;
+
+				for(i=m_vi_LeftVertices[i_PresentVertex]; i<m_vi_LeftVertices[STEP_UP(i_PresentVertex)]; i++)
+				{
+					i_NeighboringVertex = m_vi_Edges[i];
+
+					if(vi_AvailableVertices[i_NeighboringVertex + i_LeftVertexCount] == _FALSE)
+					{
+						continue;
+					}
+
+					for(j=m_vi_RightVertices[i_NeighboringVertex]; j<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; j++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[j];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(vi_AvailableVertices[i_SecondNeighboringVertex] == _FALSE)
+						{
+							continue;
+						}
+
+						vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex]].erase(vlit_VertexLocation[i_SecondNeighboringVertex]);
+
+						vi_VertexDegree[i_SecondNeighboringVertex] = STEP_DOWN(vi_VertexDegree[i_SecondNeighboringVertex]);
+
+						vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex]].push_front(i_SecondNeighboringVertex);
+
+						vlit_VertexLocation[i_SecondNeighboringVertex] = vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex]].begin();
+
+						if(vi_VertexDegree[i_SecondNeighboringVertex] == _FALSE)
+						{
+							vi_AvailableVertices[i_SecondNeighboringVertex] = _FALSE;
+						}
+
+					}
+
+					vli_GroupedVertexDegree[vi_VertexDegree[i_NeighboringVertex + i_LeftVertexCount]].erase(vlit_VertexLocation[i_NeighboringVertex + i_LeftVertexCount]);
+
+					vi_VertexDegree[i_NeighboringVertex + i_LeftVertexCount] = _UNKNOWN;
+
+					vi_AvailableVertices[i_NeighboringVertex + i_LeftVertexCount] = _FALSE;
+
+					i_AvailableVertexCount--;
+				}
+
+			}
+			else
+			{
+				i_PresentVertex = i_SelectedVertex - i_LeftVertexCount;
+
+				m_vi_IncludedRightVertices[i_PresentVertex] = _FALSE;
+
+				for(i=m_vi_RightVertices[i_PresentVertex]; i<m_vi_RightVertices[STEP_UP(i_PresentVertex)]; i++)
+				{
+					i_NeighboringVertex = m_vi_Edges[i];
+
+					if(vi_AvailableVertices[i_NeighboringVertex] == _FALSE)
+					{
+						continue;
+					}
+
+					for(j=m_vi_RightVertices[i_NeighboringVertex]; j<m_vi_RightVertices[STEP_UP(i_NeighboringVertex)]; j++)
+					{
+						i_SecondNeighboringVertex = m_vi_Edges[j];
+
+						if(i_SecondNeighboringVertex == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(vi_AvailableVertices[i_SecondNeighboringVertex + i_LeftVertexCount] == _FALSE)
+						{
+							continue;
+						}
+
+						vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount]].erase(vlit_VertexLocation[i_SecondNeighboringVertex + i_LeftVertexCount]);
+
+						vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount] = STEP_DOWN(vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount]);
+
+						vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount]].push_front(i_SecondNeighboringVertex + i_LeftVertexCount);
+
+						vlit_VertexLocation[i_SecondNeighboringVertex + i_LeftVertexCount] = vli_GroupedVertexDegree[vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount]].begin();
+
+						if(vi_VertexDegree[i_SecondNeighboringVertex + i_LeftVertexCount] == _FALSE)
+						{
+							vi_AvailableVertices[i_SecondNeighboringVertex + i_LeftVertexCount] = _FALSE;
+						}
+					}
+
+					vli_GroupedVertexDegree[vi_VertexDegree[i_NeighboringVertex]].erase(vlit_VertexLocation[i_NeighboringVertex]);
+
+					vi_VertexDegree[i_NeighboringVertex] = _UNKNOWN;
+
+					vi_AvailableVertices[i_NeighboringVertex] = _FALSE;
+
+					i_AvailableVertexCount--;
+				}
+			}
+		}
+
+		m_vi_CoveredLeftVertices.clear();
+		m_vi_CoveredRightVertices.clear();
+
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			if(m_vi_IncludedLeftVertices[i] == _TRUE)
+			{
+				m_vi_CoveredLeftVertices.push_back(i);
+			}
+		}
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			if(m_vi_IncludedRightVertices[i] == _TRUE)
+			{
+				m_vi_CoveredRightVertices.push_back(i);
+			}
+		}
+
+#if DEBUG == 3357
+
+		int k;
+
+		int i_CoveredEdgeCount, i_EdgeCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_IndependentSetSize;
+
+		i_CoveredEdgeCount = _FALSE;
+
+		cout<<endl;
+		cout<<"DEBUG 3357 | Star Bicoloring | Minimal Vertex Cover | Left Vertices"<<endl;
+		cout<<endl;
+
+		i_LeftVertexCoverSize = m_vi_CoveredLeftVertices.size();
+
+		if(!i_LeftVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Left Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredLeftVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])] - m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_CoveredLeftVertices[i]][m_vi_Edges[j]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 3357 | Star Bicoloring | Minimal Vertex Cover | Right Vertices"<<endl;
+		cout<<endl;
+
+		i_RightVertexCoverSize = m_vi_CoveredRightVertices.size();
+
+		if(!i_RightVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Right Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredRightVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])] - m_vi_RightVertices[m_vi_CoveredRightVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_RightVertices[m_vi_CoveredRightVertices[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<" ("<<i_VertexDegree<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_CoveredRightVertices[i]])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+		}
+
+		i_EdgeCount = ((signed) m_vi_Edges.size())/2;
+
+		i_IndependentSetSize = (signed) vi_IndependentSet.size();
+
+		cout<<endl;
+		cout<<"[Vertex Covers Size = "<<i_LeftVertexCoverSize + i_RightVertexCoverSize<<"; Independent Set Size = "<<i_IndependentSetSize<<"; Vertex Count = "<<i_LeftVertexCount + i_RightVertexCount<<"]"<<endl;
+		cout<<"[Left Vertex Cover Size = "<<i_LeftVertexCoverSize<<"; Right Vertex Cover Size = "<<i_RightVertexCoverSize<<"; Edges Covered = "<<i_CoveredEdgeCount<<"/"<<i_EdgeCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 3358
+	void BipartiteGraphVertexCover::PrintBicoloringVertexCover()
+	{
+		int i, j, k;
+
+		int i_CoveredEdgeCount;
+
+		int i_LeftVertexCoverSize, i_RightVertexCoverSize;
+
+		int i_VertexDegree;
+
+		i_CoveredEdgeCount = _FALSE;
+
+		cout<<endl;
+		cout<<"Star Bicoloring | Left Vertex Cover | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		i_LeftVertexCoverSize = m_vi_CoveredLeftVertices.size();
+
+		if(!i_LeftVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Left Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_LeftVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredLeftVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])] - m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_LeftVertices[m_vi_CoveredLeftVertices[i]]; j<m_vi_LeftVertices[STEP_UP(m_vi_CoveredLeftVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<") ";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+
+		}
+
+		cout<<endl;
+		cout<<"Star Bicoloring | Right Vertex Cover | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		i_RightVertexCoverSize = m_vi_CoveredRightVertices.size();
+
+		if(!i_RightVertexCoverSize)
+		{
+			cout<<endl;
+			cout<<"No Right Vertex Included"<<endl;
+			cout<<endl;
+		}
+
+		for(i=0; i<i_RightVertexCoverSize; i++)
+		{
+			cout<<STEP_UP(m_vi_CoveredRightVertices[i])<<"\t"<<" : ";
+
+			i_VertexDegree = m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])] - m_vi_RightVertices[m_vi_CoveredRightVertices[i]];
+
+			k = _FALSE;
+
+			for(j=m_vi_RightVertices[m_vi_CoveredRightVertices[i]]; j<m_vi_RightVertices[STEP_UP(m_vi_CoveredRightVertices[i])]; j++)
+			{
+				if(k == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<" ("<<i_VertexDegree<<")";
+				}
+				else
+				{
+					cout<<STEP_UP(m_vi_Edges[j])<<", ";
+				}
+
+				k++;
+			}
+
+			cout<<endl;
+
+			i_CoveredEdgeCount += k;
+		}
+
+		cout<<endl;
+		cout<<"[Left Vertex Cover Size = "<<i_LeftVertexCoverSize<<"; Right Vertex Cover Size = "<<i_RightVertexCoverSize<<"; Edges Covered = "<<i_CoveredEdgeCount<<"]"<<endl;
+		cout<<endl;
+
+	}
+
+
+	//Public Function 3359
+	void BipartiteGraphVertexCover::GetIncludedLeftVertices(vector<int> &output)
+	{
+		output = (m_vi_IncludedLeftVertices);
+	}
+
+	//Public Function 3360
+	void BipartiteGraphVertexCover::GetIncludedRightVertices(vector<int> &output)
+	{
+		output = (m_vi_IncludedRightVertices);
+	}
+
+
+	//Public Function 3361
+	void BipartiteGraphVertexCover::GetCoveredLeftVertices(vector<int> &output)
+	{
+		output = (m_vi_CoveredLeftVertices);
+	}
+
+
+	//Public Function 3362
+	void BipartiteGraphVertexCover::GetCoveredRightVertices(vector<int> &output)
+	{
+		output = (m_vi_CoveredRightVertices);
+	}
+
+
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphBicoloring/BipartiteGraphVertexCover.h
@@ -0,0 +1,81 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHVERTEXCOVER_H
+#define BIPARTITEGRAPHVERTEXCOVER_H
+
+namespace ColPack
+{
+	/** @ingroup group22
+	 *  @brief class BipartiteGraphVertexCover in @link group22@endlink.
+
+	 The bipartite graph bicoloring algorithms included in ColPack are variations of greedy, star and
+	 acyclic bicolorings combined with explicit and implicit vertex coverings and guided by pre-computed vertex
+	 orderings. The row and column vertices are initalized with two default colors, which are generally the color 0
+	 for row vertices and for column vertices the color equal to one more than the sum of the numbers of row and
+	 column vertices. The vertices whose colors are subsequently changed by the algorithms constitute a vertex
+	 cover for the bipartite graph. The goal is to get the smallest vertex cover that can be colored to conform to
+	 the bicoloring constraints. The computation of vertex cover has given rise to two types of algorithms, in one
+	 of which a specialized vertex cover is computed explicitly for consumption by bicoloring algorithms and in
+	 the other implicitly within the bicoloring algorithms. The bipartite graph covering class provides methods
+	 for explicitly computing these specialized vertex covers.
+	*/
+	class BipartiteGraphVertexCover : public BipartiteGraphInputOutput
+	{
+
+	protected:
+
+		double m_d_CoveringTime;
+
+		vector<int> m_vi_IncludedLeftVertices;
+		vector<int> m_vi_IncludedRightVertices;
+
+		vector<int> m_vi_CoveredLeftVertices;
+		vector<int> m_vi_CoveredRightVertices;
+
+	public:
+
+		//Public Constructor 3351
+		BipartiteGraphVertexCover();
+
+		//Public Destructor 3352
+		~BipartiteGraphVertexCover();
+
+		//Virtual Function 3353
+		virtual void Clear();
+
+		//Virtual Function 3354
+		virtual void Reset();
+
+		//Public Function 3355
+		int CoverVertex();
+
+		//Public Function 3356
+		int CoverVertex(vector<int> &);
+
+		//Public Function 3357
+		int CoverMinimalVertex();
+
+		//Public Function 3358
+		void GetIncludedLeftVertices(vector<int> &output);
+
+		//Public Function 3359
+		void GetIncludedRightVertices(vector<int> &output);
+
+		//Public Function 3360
+		void GetCoveredLeftVertices(vector<int> &output);
+
+		//Public Function 3361
+		void GetCoveredRightVertices(vector<int> &output);
+
+		//Public Function 3362
+		void PrintBicoloringVertexCover();
+
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoring.cpp
@@ -0,0 +1,1147 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 2401
+	int BipartiteGraphPartialColoring::CalculateVertexColorClasses()
+	{
+		if(m_s_VertexColoringVariant.empty())
+		{
+			return(_FALSE);
+		}
+
+		if(m_i_LeftVertexColorCount != _UNKNOWN)
+		{
+			int i_TotalLeftVertexColors = STEP_UP(m_i_LeftVertexColorCount);
+
+			m_vi_LeftVertexColorFrequency.clear();
+			m_vi_LeftVertexColorFrequency.resize((unsigned) i_TotalLeftVertexColors, _FALSE);
+
+			int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+			for(int i = 0; i < i_LeftVertexCount; i++)
+			{
+				m_vi_LeftVertexColorFrequency[m_vi_LeftVertexColors[i]]++;
+			}
+
+			for(int i = 0; i < i_TotalLeftVertexColors; i++)
+			{
+				if(m_i_LargestLeftVertexColorClassSize < m_vi_LeftVertexColorFrequency[i])
+				{
+					m_i_LargestLeftVertexColorClass = i;
+
+					m_i_LargestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+				}
+
+				if(m_i_SmallestLeftVertexColorClassSize == _UNKNOWN)
+				{
+					m_i_SmallestLeftVertexColorClass = i;
+
+					m_i_SmallestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+				}
+				else
+				if(m_i_SmallestLeftVertexColorClassSize > m_vi_LeftVertexColorFrequency[i])
+				{
+					m_i_SmallestLeftVertexColorClass = i;
+
+					m_i_SmallestLeftVertexColorClassSize = m_vi_LeftVertexColorFrequency[i];
+				}
+			}
+
+			m_d_AverageLeftVertexColorClassSize = i_LeftVertexCount / i_TotalLeftVertexColors;
+		}
+
+		if(m_i_RightVertexColorCount != _UNKNOWN)
+		{
+			int i_TotalRightVertexColors = STEP_UP(m_i_RightVertexColorCount);
+
+			m_vi_RightVertexColorFrequency.clear();
+			m_vi_RightVertexColorFrequency.resize((unsigned) i_TotalRightVertexColors, _FALSE);
+
+			int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+			for(int i = 0; i < i_RightVertexCount; i++)
+			{
+				m_vi_RightVertexColorFrequency[m_vi_RightVertexColors[i]]++;
+			}
+
+			for(int i = 0; i < i_TotalRightVertexColors; i++)
+			{
+				if(m_i_LargestRightVertexColorClassSize < m_vi_RightVertexColorFrequency[i])
+				{
+					m_i_LargestRightVertexColorClass = i;
+
+					m_i_LargestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+				}
+
+				if(m_i_SmallestRightVertexColorClassSize == _UNKNOWN)
+				{
+					m_i_SmallestRightVertexColorClass = i;
+
+					m_i_SmallestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+				}
+				else
+				if(m_i_SmallestRightVertexColorClassSize > m_vi_RightVertexColorFrequency[i])
+				{
+					m_i_SmallestRightVertexColorClass = i;
+
+					m_i_SmallestRightVertexColorClassSize = m_vi_RightVertexColorFrequency[i];
+				}
+			}
+
+			m_d_AverageRightVertexColorClassSize = i_RightVertexCount / i_TotalRightVertexColors;
+		}
+
+		return(_TRUE);
+	}
+
+
+
+	//Private Function 2402
+	int BipartiteGraphPartialColoring::CheckVertexColoring(string s_VertexColoringVariant)
+	{
+		if(m_s_VertexColoringVariant.compare(s_VertexColoringVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexColoringVariant.compare("ALL") != 0)
+		{
+			m_s_VertexColoringVariant = s_VertexColoringVariant;
+		}
+
+		if(m_s_VertexColoringVariant.compare("ROW_PARTIAL_DISTANCE_TWO") == 0)
+		{
+			if(m_s_VertexOrderingVariant.empty())
+			{
+				RowNaturalOrdering();
+			}
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("COLUMN_PARTIAL_DISTANCE_TWO") == 0)
+		{
+			if(m_s_VertexOrderingVariant.empty())
+			{
+				ColumnNaturalOrdering();
+			}
+		}
+		else
+		{
+			if(m_s_VertexOrderingVariant.empty())
+			{
+				RowNaturalOrdering();
+			}
+		}
+
+		return(_FALSE);
+	}
+
+
+	//Public Constructor 2451
+	BipartiteGraphPartialColoring::BipartiteGraphPartialColoring()
+	{
+		Clear();
+
+		Seed_init();
+	}
+
+
+	//Public Destructor 2452
+	BipartiteGraphPartialColoring::~BipartiteGraphPartialColoring()
+	{
+		Clear();
+
+		Seed_reset();
+	}
+
+	void BipartiteGraphPartialColoring::Seed_init() {
+		seed_available = false;
+
+		i_seed_rowCount = 0;
+		dp2_Seed = NULL;
+	}
+
+	void BipartiteGraphPartialColoring::Seed_reset() {
+		if(seed_available) {
+			seed_available = false;
+
+			free_2DMatrix(dp2_Seed, i_seed_rowCount);
+			dp2_Seed = NULL;
+			i_seed_rowCount = 0;
+		}
+	}
+
+
+	//Virtual Function 2453
+	void BipartiteGraphPartialColoring::Clear()
+	{
+		BipartiteGraphPartialOrdering::Clear();
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_ViolationCount =_UNKNOWN;
+
+		m_i_ColoringUnits = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClass = _UNKNOWN;
+		m_i_LargestRightVertexColorClass = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_LargestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClass = _UNKNOWN;
+		m_i_SmallestRightVertexColorClass = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestRightVertexColorClassSize = _UNKNOWN;
+
+		m_d_AverageLeftVertexColorClassSize = _UNKNOWN;
+		m_d_AverageRightVertexColorClassSize = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_RightVertexColors.clear();
+
+		m_vi_LeftVertexColorFrequency.clear();
+		m_vi_RightVertexColorFrequency.clear();
+
+		return;
+	}
+
+
+	//Virtual Function 2454
+	void BipartiteGraphPartialColoring::Reset()
+	{
+		BipartiteGraphPartialOrdering::Reset();
+
+		m_i_LeftVertexColorCount = _UNKNOWN;
+		m_i_RightVertexColorCount = _UNKNOWN;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_ViolationCount = _UNKNOWN;
+
+		m_i_ColoringUnits = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClass = _UNKNOWN;
+		m_i_LargestRightVertexColorClass = _UNKNOWN;
+
+		m_i_LargestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_LargestRightVertexColorClassSize = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClass = _UNKNOWN;
+		m_i_SmallestRightVertexColorClass = _UNKNOWN;
+
+		m_i_SmallestLeftVertexColorClassSize = _UNKNOWN;
+		m_i_SmallestRightVertexColorClassSize = _UNKNOWN;
+
+		m_d_AverageLeftVertexColorClassSize = _UNKNOWN;
+		m_d_AverageRightVertexColorClassSize = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_LeftVertexColors.clear();
+		m_vi_RightVertexColors.clear();
+
+		m_vi_LeftVertexColorFrequency.clear();
+		m_vi_RightVertexColorFrequency.clear();
+
+		return;
+	}
+
+	int f(int x) {return x;}
+
+	int BipartiteGraphPartialColoring::PartialDistanceTwoRowColoring_OMP()
+	{
+		if(CheckVertexColoring("ROW_PARTIAL_DISTANCE_TWO"))
+		{
+			return(_TRUE);
+		}
+
+		int i_LeftVertexCount;
+                //int i_CurrentVertex;    //unused variable
+                //int i_RightVertexCount  //unused variable
+
+		bool cont=false;
+		vector<int> vi_forbiddenColors, vi_VerticesToBeColored, vi_verticesNeedNewColor;
+		i_LeftVertexCount = (int) m_vi_LeftVertices.size() - 1;
+		//i_RightVertexCount = (int)m_vi_RightVertices.size () - 1;
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = m_i_VertexColorCount = 0;
+
+		// !!! do sections for this part ? forbiddenColors may need to be private for each thread
+		// resize the colors
+		m_vi_LeftVertexColors.resize ( i_LeftVertexCount, _UNKNOWN );
+		// resize the forbidden colors. !!! should be resize to max D2 degree instead
+		vi_forbiddenColors.resize ( i_LeftVertexCount, _UNKNOWN );
+		//Algo 4 - Line 2: U <- V . U is vi_VerticesToBeColored
+		vi_VerticesToBeColored.reserve(i_LeftVertexCount);
+		for(int i=0; i<i_LeftVertexCount; i++) {
+			vi_VerticesToBeColored.push_back(m_vi_OrderedVertices[i]);
+			//vi_VerticesToBeColored.push_back(i);
+		}
+		// !!! pick reasonable amount to reserve
+		vi_verticesNeedNewColor.reserve(i_LeftVertexCount);
+
+		int i_NumOfVerticesToBeColored = vi_VerticesToBeColored.size();
+
+// 		cout<<"m_vi_Edges.size() = "<<m_vi_Edges.size()<<endl;
+// 		cout<<"m_vi_LeftVertexColors.size() = "<<m_vi_LeftVertexColors.size()<<endl;
+
+		//Algo 4 - Line 3: while U != 0 ; do
+		while(i_NumOfVerticesToBeColored!=0) {
+// 		  cout<<"i_NumOfVerticesToBeColored = "<<i_NumOfVerticesToBeColored<<endl;
+			//Phase 1: tentative coloring
+			//Algo 4 - Line 4: for each right vertex v in U (in parallel) do
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(dynamic) shared(cout, i_NumOfVerticesToBeColored, vi_VerticesToBeColored) firstprivate(vi_forbiddenColors)
+#endif
+                    for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				int v = vi_VerticesToBeColored[i];
+// 				CoutLock::set(); cout<<"t"<< omp_get_thread_num() <<": i="<<i<<", left vertex v="<<v<<endl;CoutLock::unset();
+				//Algo 4 - Line 5: for each left vertex w in adj (v) do
+				for (int w=m_vi_LeftVertices [v]; w<m_vi_LeftVertices [v+1]; w++ ) {
+// 					CoutLock::set();
+// 					cout<<"\t t"<< omp_get_thread_num() <<": w="<<w<<", right vertex m_vi_Edges [w]="<<m_vi_Edges [w]<<endl;
+// 					CoutLock::unset();
+					//Algo 4 - Line 6: mark color [w] as forbidden to vertex v. NOTE: !!! Not needed
+					//Algo 4 - Line 7: for each right vertex x in adj (w) and x != v do
+					for (int x=m_vi_RightVertices [m_vi_Edges [w]]; x<m_vi_RightVertices [m_vi_Edges [w]+1]; x++ ) {
+						//Algo 4 - Line 8: mark color [x] as forbidden to vertex v
+						if ( m_vi_LeftVertexColors [m_vi_Edges [x]] != _UNKNOWN ) {
+// 							CoutLock::set();
+// 							cout<<"\t\t t"<< omp_get_thread_num() <<": x="<<x<<endl;
+// 							if(x>=m_vi_Edges.size()) {
+// 							  cout<<"ERR: x>=m_vi_Edges.size()"<<endl;
+// 							  PrintBipartiteGraph();
+// 							  Pause();
+// 							}
+// 							cout<<"\t\t left vertex m_vi_Edges [x] = "<<m_vi_Edges [x]<<endl;
+// 							cout<<"\t\t m_vi_LeftVertexColors [m_vi_Edges [x]] = "<<m_vi_LeftVertexColors [m_vi_Edges [x]]<<endl;
+// 							cout<<"\t\t v="<<v<<endl;
+// 							CoutLock::unset();
+							// !!! each thread should has their own vi_forbiddenColors[] vector just to make sure the don't override each other
+							vi_forbiddenColors [m_vi_LeftVertexColors [m_vi_Edges [x]]] = v;
+						}
+					}
+				}
+				//Algo 4 - Line 9: Pick a permissible color c for vertex v using some strategy
+				int i_cadidateColor;
+				// First fit
+				{
+					i_cadidateColor = 0;
+					while(vi_forbiddenColors[i_cadidateColor]==v) i_cadidateColor++;
+				}
+				m_vi_LeftVertexColors[v] = i_cadidateColor;
+				if(m_i_LeftVertexColorCount < i_cadidateColor)	{
+						m_i_LeftVertexColorCount = i_cadidateColor;
+				}
+			}
+
+			//Algo 4 - Line 10: R.clear()   ; R denotes the set of vertices to be recolored
+			vi_verticesNeedNewColor.clear();
+
+			//Phase 2: conflict detection. For each vertex v in U, check and see if v need to be recolored
+			//Algo 4 - Line 11: for each vertex v in U (in parallel) do
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(dynamic) shared(i_NumOfVerticesToBeColored, vi_VerticesToBeColored,vi_verticesNeedNewColor, cout) private(cont)
+#endif
+                        for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				//Algo 4 - Line 12: cont  <- true ; cont is used to break from the outer loop below
+				cont = true;
+				int v = vi_VerticesToBeColored[i];
+				//Algo 4 - Line 13: for each vertex w in adj (v) and cont = true do
+				for (int w=m_vi_LeftVertices [v]; (w<m_vi_LeftVertices [v+1]) && (cont == true); w++ ) {
+					//Algo 4 - Line 14: if color [v] = color [w] and f (v) > f (w) then . NOTE: !!! Not needed
+						//Algo 4 - Line 15: add [v] to R ; break . NOTE: !!! Not needed
+					//Algo 4 - Line 16: for each vertex x in adj (w) and v != x do
+					for (int x=m_vi_RightVertices [m_vi_Edges [w]]; x<m_vi_RightVertices [m_vi_Edges [w]+1]; x++ ) {
+					  //cout<<" m_vi_LeftVertexColors [m_vi_Edges [x]="<<x<<"]"<< m_vi_LeftVertexColors [m_vi_Edges [x]] <<endl;
+					  // cout<<" m_vi_LeftVertexColors [v="<<v<<"]"<< m_vi_LeftVertexColors [v] <<endl;
+					  //cout<<"f(v="<<v<<")="<<f(v)<<endl;
+					  //cout<<"f(m_vi_Edges [x]="<<x<<")="<<f(m_vi_Edges [x])<<endl;
+						//Algo 4 - Line 17: if color [v] = color [x] and f (v) > f (x) then
+					  if ( m_vi_LeftVertexColors [m_vi_Edges [x]] == m_vi_LeftVertexColors[v] && f(v) > f(m_vi_Edges [x]) ) {
+							//Algo 4 - Line 18: add [v] to R ; cont <- false; break
+#ifdef _OPENMP
+#pragma omp critical
+#endif
+                                              {
+								vi_verticesNeedNewColor.push_back(v);
+							}
+							cont = false;
+							break;
+						}
+					}
+				}
+			}
+
+			//Algo 4 - Line 19: U <- R , i.e., vi_VerticesToBeColored <- vi_verticesNeedNewColor
+			vi_VerticesToBeColored.clear();
+			i_NumOfVerticesToBeColored = vi_verticesNeedNewColor.size();
+
+			vi_VerticesToBeColored.reserve(vi_verticesNeedNewColor.size());
+			for(size_t i=0; i<vi_verticesNeedNewColor.size(); i++) {
+			  vi_VerticesToBeColored.push_back(vi_verticesNeedNewColor[i]);
+			}
+
+			/*
+			vi_VerticesToBeColored.resize(vi_verticesNeedNewColor.size());
+#pragma omp parallel for default(none) schedule(static) shared(i_NumOfVerticesToBeColored,vi_VerticesToBeColored,vi_verticesNeedNewColor)
+			for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				vi_VerticesToBeColored[i]=vi_verticesNeedNewColor[i];
+			}
+			//*/
+
+		}
+
+		// Note that m_i_LeftVertexColorCount has not been updated yet
+		m_i_VertexColorCount = m_i_LeftVertexColorCount;
+
+		return _TRUE;
+
+	}
+
+	int BipartiteGraphPartialColoring::PartialDistanceTwoRowColoring() {
+#ifdef _OPENMP
+		return BipartiteGraphPartialColoring::PartialDistanceTwoRowColoring_OMP();
+#else
+		return BipartiteGraphPartialColoring::PartialDistanceTwoRowColoring_serial();
+#endif
+	}
+
+	//Public Function 2455
+	int BipartiteGraphPartialColoring::PartialDistanceTwoRowColoring_serial()
+	{
+		if(CheckVertexColoring("ROW_PARTIAL_DISTANCE_TWO"))
+		{
+			return(_TRUE);
+		}
+
+		int i, w, x, c;
+		int i_LeftVertexCount, i_CurrentVertex;
+		vector<int> vi_forbiddenColors;
+
+		i_LeftVertexCount = (int)m_vi_LeftVertices.size () - 1;
+		// resize the colors
+		m_vi_LeftVertexColors.resize ( i_LeftVertexCount, _UNKNOWN );
+		// resize the forbidden colors
+		vi_forbiddenColors.resize ( i_LeftVertexCount, _UNKNOWN );
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = m_i_VertexColorCount = 0;
+
+		for ( i=0; i<i_LeftVertexCount; ++i )
+		{
+			i_CurrentVertex = m_vi_OrderedVertices[i];
+
+			for ( w=m_vi_LeftVertices [i_CurrentVertex]; w<m_vi_LeftVertices [i_CurrentVertex+1]; ++w )
+			{
+				for ( x=m_vi_RightVertices [m_vi_Edges [w]]; x<m_vi_RightVertices [m_vi_Edges [w]+1]; ++x )
+				{
+					if ( m_vi_LeftVertexColors [m_vi_Edges [x]] != _UNKNOWN )
+					{
+						vi_forbiddenColors [m_vi_LeftVertexColors [m_vi_Edges [x]]] = i_CurrentVertex;
+					}
+				}
+			}
+
+			// do color[vi] <-min {c>0:forbiddenColors[c]=/=vi
+			for ( c=0; c<i_LeftVertexCount; ++c )
+			{
+				if ( vi_forbiddenColors [c] != i_CurrentVertex )
+				{
+					m_vi_LeftVertexColors [i_CurrentVertex] = c;
+
+					if(m_i_LeftVertexColorCount < c)
+					{
+						m_i_LeftVertexColorCount = c;
+					}
+
+					break;
+				}
+			}
+			//
+		}
+
+		m_i_VertexColorCount = m_i_LeftVertexColorCount;
+
+		return ( _TRUE );
+	}
+
+	int BipartiteGraphPartialColoring::PartialDistanceTwoColumnColoring_OMP() {
+		if(CheckVertexColoring("COLUMN_PARTIAL_DISTANCE_TWO"))
+		{
+		  return(_TRUE);
+		}
+
+		int i_LeftVertexCount, i_RightVertexCount;
+                //int i_CurrentVertex;  //unused variable
+		bool cont=false;
+		vector<int> vi_forbiddenColors, vi_VerticesToBeColored, vi_verticesNeedNewColor;
+		i_LeftVertexCount = (int) m_vi_LeftVertices.size() - 1;
+		i_RightVertexCount = (int)m_vi_RightVertices.size () - 1;
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = m_i_VertexColorCount = 0;
+
+		// !!! do sections for this part ? forbiddenColors may need to be private for each thread
+		// resize the colors
+		m_vi_RightVertexColors.resize ( i_RightVertexCount, _UNKNOWN );
+		// resize the forbidden colors. !!! should be resize to max D2 degree instead
+		vi_forbiddenColors.resize ( i_RightVertexCount, _UNKNOWN );
+		//Algo 4 - Line 2: U <- V . U is vi_VerticesToBeColored
+		vi_VerticesToBeColored.reserve(i_RightVertexCount);
+		for(int i=0; i<i_RightVertexCount; i++) {
+			vi_VerticesToBeColored.push_back(m_vi_OrderedVertices[i] - i_LeftVertexCount);
+			//vi_VerticesToBeColored.push_back(i);
+		}
+		// !!! pick reasonable amount to reserve
+		vi_verticesNeedNewColor.reserve(i_RightVertexCount);
+
+		int i_NumOfVerticesToBeColored = vi_VerticesToBeColored.size();
+
+		//Algo 4 - Line 3: while U != 0 ; do
+		while(i_NumOfVerticesToBeColored!=0) {
+		  //cout<<"i_NumOfVerticesToBeColored = "<<i_NumOfVerticesToBeColored<<endl;
+			//Phase 1: tentative coloring
+			//Algo 4 - Line 4: for each right vertex v in U (in parallel) do
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(dynamic) shared(i_NumOfVerticesToBeColored, vi_VerticesToBeColored) firstprivate(vi_forbiddenColors)
+#endif
+                    for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				int v = vi_VerticesToBeColored[i];
+				//Algo 4 - Line 5: for each left vertex w in adj (v) do
+				for (int w=m_vi_RightVertices [v]; w<m_vi_RightVertices [v+1]; w++ ) {
+					//Algo 4 - Line 6: mark color [w] as forbidden to vertex v. NOTE: !!! Not needed
+					//Algo 4 - Line 7: for each right vertex x in adj (w) and x != v do
+					for (int x=m_vi_LeftVertices [m_vi_Edges [w]]; x<m_vi_LeftVertices [m_vi_Edges [w]+1]; x++ ) {
+						//Algo 4 - Line 8: mark color [x] as forbidden to vertex v
+						if ( m_vi_RightVertexColors [m_vi_Edges [x]] != _UNKNOWN ) {
+							// !!! each thread should has their own vi_forbiddenColors[] vector just to make sure the don't override each other
+							vi_forbiddenColors [m_vi_RightVertexColors [m_vi_Edges [x]]] = v;
+						}
+					}
+				}
+				//Algo 4 - Line 9: Pick a permissible color c for vertex v using some strategy
+				int i_cadidateColor;
+				// First fit
+				{
+					i_cadidateColor = 0;
+					while(vi_forbiddenColors[i_cadidateColor]==v) i_cadidateColor++;
+				}
+				m_vi_RightVertexColors[v] = i_cadidateColor;
+				if(m_i_RightVertexColorCount < i_cadidateColor)	{
+						m_i_RightVertexColorCount = i_cadidateColor;
+				}
+			}
+
+			//Algo 4 - Line 10: R.clear()   ; R denotes the set of vertices to be recolored
+			vi_verticesNeedNewColor.clear();
+
+			//Phase 2: conflict detection. For each vertex v in U, check and see if v need to be recolored
+			//Algo 4 - Line 11: for each vertex v in U (in parallel) do
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(dynamic) shared(i_NumOfVerticesToBeColored, vi_VerticesToBeColored,vi_verticesNeedNewColor, cout) private(cont)
+#endif
+                        for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				//Algo 4 - Line 12: cont  <- true ; cont is used to break from the outer loop below
+				cont = true;
+				int v = vi_VerticesToBeColored[i];
+				//Algo 4 - Line 13: for each vertex w in adj (v) and cont = true do
+				for (int w=m_vi_RightVertices [v]; (w<m_vi_RightVertices [v+1]) && (cont == true); w++ ) {
+					//Algo 4 - Line 14: if color [v] = color [w] and f (v) > f (w) then . NOTE: !!! Not needed
+						//Algo 4 - Line 15: add [v] to R ; break . NOTE: !!! Not needed
+					//Algo 4 - Line 16: for each vertex x in adj (w) and v != x do
+					for (int x=m_vi_LeftVertices [m_vi_Edges [w]]; x<m_vi_LeftVertices [m_vi_Edges [w]+1]; x++ ) {
+					  //cout<<" m_vi_RightVertexColors [m_vi_Edges [x]="<<x<<"]"<< m_vi_RightVertexColors [m_vi_Edges [x]] <<endl;
+					  // cout<<" m_vi_RightVertexColors [v="<<v<<"]"<< m_vi_RightVertexColors [v] <<endl;
+					  //cout<<"f(v="<<v<<")="<<f(v)<<endl;
+					  //cout<<"f(m_vi_Edges [x]="<<x<<")="<<f(m_vi_Edges [x])<<endl;
+						//Algo 4 - Line 17: if color [v] = color [x] and f (v) > f (x) then
+					  if ( m_vi_RightVertexColors [m_vi_Edges [x]] == m_vi_RightVertexColors[v] && f(v) > f(m_vi_Edges [x]) ) {
+							//Algo 4 - Line 18: add [v] to R ; cont <- false; break
+#ifdef _OPENMP
+#pragma omp critical
+#endif
+                                              {
+								vi_verticesNeedNewColor.push_back(v);
+							}
+							cont = false;
+							break;
+						}
+					}
+				}
+			}
+
+			//Algo 4 - Line 19: U <- R , i.e., vi_VerticesToBeColored <- vi_verticesNeedNewColor
+			vi_VerticesToBeColored.clear();
+			i_NumOfVerticesToBeColored = vi_verticesNeedNewColor.size();
+
+			vi_VerticesToBeColored.reserve(vi_verticesNeedNewColor.size());
+			for(size_t i=0; i<vi_verticesNeedNewColor.size(); i++) {
+			  vi_VerticesToBeColored.push_back(vi_verticesNeedNewColor[i]);
+			}
+
+			/*
+			vi_VerticesToBeColored.resize(vi_verticesNeedNewColor.size());
+#pragma omp parallel for default(none) schedule(static) shared(i_NumOfVerticesToBeColored,vi_VerticesToBeColored,vi_verticesNeedNewColor)
+			for(int i=0; i<i_NumOfVerticesToBeColored; i++) {
+				vi_VerticesToBeColored[i]=vi_verticesNeedNewColor[i];
+			}
+			// */
+
+		}
+
+		//note that m_i_RightVertexColorCount has not been updated yet
+		m_i_VertexColorCount = m_i_RightVertexColorCount;
+
+		return _TRUE;
+
+	}
+
+	int BipartiteGraphPartialColoring::PartialDistanceTwoColumnColoring() {
+#ifdef _OPENMP
+		return BipartiteGraphPartialColoring::PartialDistanceTwoColumnColoring_OMP();
+#else
+		return BipartiteGraphPartialColoring::PartialDistanceTwoColumnColoring_serial();
+#endif
+	}
+
+	//Public Function 2456
+	int BipartiteGraphPartialColoring::PartialDistanceTwoColumnColoring_serial()
+	{
+		if(CheckVertexColoring("COLUMN_PARTIAL_DISTANCE_TWO"))
+		{
+			return(_TRUE);
+		}
+
+		int i, w, x, c;
+		int i_LeftVertexCount, i_RightVertexCount, i_CurrentVertex;
+		vector<int> vi_forbiddenColors;
+
+		i_LeftVertexCount = (int) m_vi_LeftVertices.size() - 1;
+		i_RightVertexCount = (int)m_vi_RightVertices.size () - 1;
+
+		// resize the colors
+		m_vi_RightVertexColors.resize ( i_RightVertexCount, _UNKNOWN );
+
+		// resize the forbidden colors
+		vi_forbiddenColors.resize ( i_RightVertexCount, _UNKNOWN );
+
+		m_i_LeftVertexColorCount = m_i_RightVertexColorCount = m_i_VertexColorCount = 0;
+
+		//cout<<" i_RightVertexCount = " <<i_RightVertexCount<<endl;
+		for ( i=0; i<i_RightVertexCount; ++i )
+		{
+			i_CurrentVertex = m_vi_OrderedVertices[i] - i_LeftVertexCount;
+
+			for ( w=m_vi_RightVertices [i_CurrentVertex]; w<m_vi_RightVertices [i_CurrentVertex+1]; ++w )
+			{
+				for ( x=m_vi_LeftVertices [m_vi_Edges [w]]; x<m_vi_LeftVertices [m_vi_Edges [w]+1]; ++x )
+				{
+					if ( m_vi_RightVertexColors [m_vi_Edges [x]] != _UNKNOWN )
+					{
+						vi_forbiddenColors [m_vi_RightVertexColors [m_vi_Edges [x]]] = i_CurrentVertex;
+					}
+				}
+			}
+
+			// do color[vi] <-min {c>0:forbiddenColors[c]=/=vi
+			for ( c=0; c<i_RightVertexCount; ++c )
+			{
+				if ( vi_forbiddenColors [c] != i_CurrentVertex )
+				{
+					m_vi_RightVertexColors [i_CurrentVertex] = c;
+
+					if(m_i_RightVertexColorCount < c)
+					{
+						m_i_RightVertexColorCount = c;
+					}
+
+					break;
+				}
+			}
+			//
+		}
+
+		m_i_VertexColorCount = m_i_RightVertexColorCount;
+
+		return ( _TRUE );
+	}
+
+
+
+	//Public Function 2457
+	int BipartiteGraphPartialColoring::CheckPartialDistanceTwoRowColoring()
+	{
+		for(int i=0;i<(signed) m_vi_LeftVertices.size()-1;i++)
+		//for each of left vertices, find its D1 neighbour (right vertices)
+		{
+			for(int j=m_vi_LeftVertices[i];j<m_vi_LeftVertices[i+1];j++)
+			{
+				for(int k=m_vi_RightVertices[m_vi_Edges[j]]; k<m_vi_RightVertices[m_vi_Edges[j]+1];k++)
+				//for each of the right vertices, find its D1 neighbour (left vertices exclude the original left)
+				{
+					if(m_vi_Edges[k]==i) continue;
+					if(m_vi_LeftVertexColors[m_vi_Edges[k]]==m_vi_LeftVertexColors[i])
+					{
+						cout<<"Left vertices "<<i+1<<" and "<<m_vi_Edges[k]+1<< " (connected by right vectex "<<m_vi_Edges[j]+1<<") have the same color ("<<m_vi_LeftVertexColors[i]<<")"<<endl;
+
+						return _FALSE;
+					}
+				}
+			}
+		}
+
+		return _TRUE;
+	}
+
+
+	//Public Function 2458
+	int BipartiteGraphPartialColoring::CheckPartialDistanceTwoColumnColoring()
+	{
+		for(int i=0;i<(signed) m_vi_RightVertices.size()-1;i++)
+		//for each of right vertices, find its D1 neighbour (left vertices)
+		{
+			for(int j=m_vi_RightVertices[i];j<m_vi_RightVertices[i+1];j++)
+			{
+				for(int k=m_vi_LeftVertices[m_vi_Edges[j]]; k<m_vi_LeftVertices[m_vi_Edges[j]+1];k++)
+				//for each of the left vertices, find its D1 neighbour (right vertices exclude the original right)
+				{
+					if(m_vi_Edges[k]==i) continue;
+					if(m_vi_RightVertexColors[m_vi_Edges[k]]==m_vi_RightVertexColors[i])
+					{
+						cout<<"Right vertices "<<i+1<<" and "<<m_vi_Edges[k]+1<< " (connected by left vectex "<<m_vi_Edges[j]+1<<") have the same color ("<<m_vi_RightVertexColors[i]<<")"<<endl;
+						return _FALSE;
+					}
+				}
+			}
+		}
+
+		return (_TRUE);
+	}
+
+	//Public Function 2459
+	int BipartiteGraphPartialColoring::GetLeftVertexColorCount()
+	{
+	  if(m_i_LeftVertexColorCount<0 && GetVertexColoringVariant() == "Row Partial Distance Two" ) {
+	    for(size_t i=0; i<m_vi_LeftVertexColors.size();i++) {
+	      if(m_i_LeftVertexColorCount<m_vi_LeftVertexColors[i]) m_i_LeftVertexColorCount = m_vi_LeftVertexColors[i];
+	    }
+	  }
+		return(STEP_UP(m_i_LeftVertexColorCount));
+	}
+
+	//Public Function 2460
+	int BipartiteGraphPartialColoring::GetRightVertexColorCount()
+	{
+	  if(m_i_RightVertexColorCount<0 && GetVertexColoringVariant() == "Column Partial Distance Two" ) {
+	    for(size_t i=0; i<m_vi_RightVertexColors.size();i++) {
+	      if(m_i_RightVertexColorCount<m_vi_RightVertexColors[i]) m_i_RightVertexColorCount = m_vi_RightVertexColors[i];
+	    }
+	  }
+		return(STEP_UP(m_i_RightVertexColorCount));
+	}
+
+
+	//Public Function 2461
+	int BipartiteGraphPartialColoring::GetVertexColorCount()
+	{
+	  if(m_i_VertexColorCount<0 && GetVertexColoringVariant() != "Unknown" ) {
+	    if(GetVertexColoringVariant() == "Row Partial Distance Two") {
+	      m_i_VertexColorCount = GetLeftVertexColorCount() - 1;
+	    }
+	    else { // GetVertexColoringVariant() == "Column Partial Distance Two"
+	      m_i_VertexColorCount = GetRightVertexColorCount() - 1;
+	    }
+	  }
+		return(STEP_UP(m_i_VertexColorCount));
+	}
+
+
+	//Public Function 2462
+	string BipartiteGraphPartialColoring::GetVertexColoringVariant()
+	{
+		if(m_s_VertexColoringVariant.compare("ROW_PARTIAL_DISTANCE_TWO") == 0)
+		{
+			return("Row Partial Distance Two");
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("COLUMN_PARTIAL_DISTANCE_TWO") == 0)
+		{
+			return("Column Partial Distance Two");
+		}
+		else
+		{
+			return("Unknown");
+		}
+	}
+
+	//Public Function 2463
+	void BipartiteGraphPartialColoring::GetLeftVertexColors(vector<int> &output)
+	{
+		output = (m_vi_LeftVertexColors);
+	}
+
+	//Public Function 2464
+	void BipartiteGraphPartialColoring::GetRightVertexColors(vector<int> &output)
+	{
+		output = (m_vi_RightVertexColors);
+	}
+
+
+
+	//Public Function 2465
+	void BipartiteGraphPartialColoring::PrintRowPartialColors()
+	{
+		int i;
+
+		int i_LeftVertexCount;
+
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		m_s_InputFile = SlashTokenizer.GetLastToken();
+
+		i_LeftVertexCount = (signed) m_vi_LeftVertexColors.size();
+
+		cout<<endl;
+		cout<<"Bipartite Graph | Row Partial Coloring | Row Vertices | Vertex Colors "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_LeftVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_LeftVertexColors[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Total Row Colors = "<<GetLeftVertexColorCount()<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	//Public Function 2466
+	void BipartiteGraphPartialColoring::PrintColumnPartialColors()
+	{
+		int i;
+
+		int i_RightVertexCount;
+
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		m_s_InputFile = SlashTokenizer.GetLastToken();
+
+		i_RightVertexCount = (signed) m_vi_RightVertexColors.size();
+
+		cout<<endl;
+		cout<<"Bipartite Graph | Column Partial Coloring | Column Vertices | Vertex Colors | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_RightVertexCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_RightVertexColors[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Total Column Colors = "<<GetRightVertexColorCount()<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+
+
+	//Public Function 2467
+	void BipartiteGraphPartialColoring::PrintRowPartialColoringMetrics()
+	{
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		string s_InputFile = SlashTokenizer.GetLastToken();
+
+		cout<<endl;
+		cout<<GetVertexColoringVariant()<<" Bicoloring | "<<GetVertexOrderingVariant()<<" Ordering | "<<s_InputFile<<endl;
+		cout<<endl;
+
+		cout<<endl;
+		cout<<"[Total Row Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Violation Count = "<<m_i_ViolationCount<<"]"<<endl;
+		cout<<"[Row Vertex Count = "<<STEP_DOWN(m_vi_LeftVertices.size())<<"; Column Vertex Count = "<<STEP_DOWN(m_vi_RightVertices.size())<<endl;
+		cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"; Checking Time = "<<m_d_CheckingTime<<"]"<<endl;
+		cout<<endl;
+	}
+
+
+	//Public Function 2468
+	void BipartiteGraphPartialColoring::PrintColumnPartialColoringMetrics()
+	{
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		string s_InputFile = SlashTokenizer.GetLastToken();
+
+		cout<<endl;
+		cout<<GetVertexColoringVariant()<<" Bicoloring | "<<GetVertexOrderingVariant()<<" Ordering | "<<s_InputFile<<endl;
+		cout<<endl;
+
+		cout<<endl;
+		cout<<"[Total Column Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Violation Count = "<<m_i_ViolationCount<<"]"<<endl;
+		cout<<"[Row Vertex Count = "<<STEP_DOWN(m_vi_LeftVertices.size())<<"; Column Vertex Count = "<<STEP_DOWN(m_vi_RightVertices.size())<<endl;
+		cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"; Checking Time = "<<m_d_CheckingTime<<"]"<<endl;
+		cout<<endl;
+	}
+
+	//Public Function 2469
+	void BipartiteGraphPartialColoring::PrintVertexPartialColorClasses()
+	{
+		if(CalculateVertexColorClasses() != _TRUE)
+		{
+			cout<<endl;
+			cout<<"Vertex Partial Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<" | Vertex Partial Colors Not Set"<<endl;
+			cout<<endl;
+
+			return;
+		}
+
+		if(m_i_LeftVertexColorCount != _UNKNOWN)
+		{
+
+			cout<<endl;
+			cout<<"Row Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+			cout<<endl;
+
+			int i_TotalLeftVertexColors = STEP_UP(m_i_LeftVertexColorCount);
+
+			for(int i = 0; i < i_TotalLeftVertexColors; i++)
+			{
+				if(m_vi_LeftVertexColorFrequency[i] <= 0)
+				{
+					continue;
+				}
+
+				cout<<"Color "<<STEP_UP(i)<<" : "<<m_vi_LeftVertexColorFrequency[i]<<endl;
+			}
+
+			cout<<endl;
+			cout<<"[Largest Row Color Class : "<<STEP_UP(m_i_LargestLeftVertexColorClass)<<"; Largest Row Color Class Size : "<<m_i_LargestLeftVertexColorClassSize<<"]"<<endl;
+			cout<<"[Smallest Row Color Class : "<<STEP_UP(m_i_SmallestLeftVertexColorClass)<<"; Smallest Row Color Class Size : "<<m_i_SmallestLeftVertexColorClassSize<<"]"<<endl;
+			cout<<"[Average Row Color Class Size : "<<m_d_AverageLeftVertexColorClassSize<<"]"<<endl;
+			cout<<endl;
+		}
+
+		if(m_i_RightVertexColorCount != _UNKNOWN)
+		{
+			cout<<endl;
+			cout<<"Column Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+			cout<<endl;
+
+			int i_TotalRightVertexColors = STEP_UP(m_i_RightVertexColorCount);
+
+			for(int i = 0; i < i_TotalRightVertexColors; i++)
+			{
+				if(m_vi_RightVertexColorFrequency[i] <= 0)
+				{
+					continue;
+				}
+
+				cout<<"Color "<<STEP_UP(i)<<" : "<<m_vi_RightVertexColorFrequency[i]<<endl;
+			}
+
+			cout<<endl;
+			cout<<"[Largest Column Color Class : "<<STEP_UP(m_i_LargestRightVertexColorClass)<<"; Largest Column Color Class Size : "<<m_i_LargestRightVertexColorClassSize<<"]"<<endl;
+			cout<<"[Smallest Column Color Class : "<<STEP_UP(m_i_SmallestRightVertexColorClass)<<"; Smallest Column Color Class Size : "<<m_i_SmallestRightVertexColorClassSize<<"]"<<endl;
+			cout<<"[Average Column Color Class Size : "<<m_d_AverageRightVertexColorClassSize<<"]"<<endl;
+			cout<<endl;
+		}
+
+		return;
+	}
+
+
+	double** BipartiteGraphPartialColoring::GetLeftSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		if(seed_available) Seed_reset();
+
+		dp2_Seed = GetLeftSeedMatrix_unmanaged(i_SeedRowCount, i_SeedColumnCount);
+		i_seed_rowCount = *i_SeedRowCount;
+		seed_available = true;
+
+		return dp2_Seed;
+	}
+
+	double** BipartiteGraphPartialColoring::GetRightSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		if(seed_available) Seed_reset();
+
+		dp2_Seed = GetRightSeedMatrix_unmanaged(i_SeedRowCount, i_SeedColumnCount);
+		i_seed_rowCount = *i_SeedRowCount;
+		seed_available = true;
+
+		return dp2_Seed;
+	}
+
+	double** BipartiteGraphPartialColoring::GetLeftSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		int i_size = m_vi_LeftVertexColors.size();
+		int i_num_of_colors = GetLeftVertexColorCount();
+		(*i_SeedRowCount) = i_num_of_colors;
+		(*i_SeedColumnCount) = i_size;
+		if(i_num_of_colors == 0 || i_size == 0) return NULL;
+		double** Seed = new double*[i_num_of_colors];
+
+		// allocate and initialize Seed matrix
+		for (int i=0; i<i_num_of_colors; i++) {
+			Seed[i] = new double[i_size];
+			for(int j=0; j<i_size; j++) Seed[i][j]=0.;
+		}
+
+		// populate Seed matrix
+		for (int i=0; i < i_size; i++) {
+			Seed[m_vi_LeftVertexColors[i]][i] = 1.;
+		}
+
+		return Seed;
+	}
+
+	double** BipartiteGraphPartialColoring::GetRightSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		int i_size = m_vi_RightVertexColors.size();
+		int i_num_of_colors = GetRightVertexColorCount();
+		(*i_SeedRowCount) = i_size;
+		(*i_SeedColumnCount) = i_num_of_colors;
+		if(i_num_of_colors == 0 || i_size == 0) return NULL;
+		double** Seed = new double*[i_size];
+
+		// allocate and initialize Seed matrix
+		for (int i=0; i<i_size; i++) {
+			Seed[i] = new double[i_num_of_colors];
+			for(int j=0; j<i_num_of_colors; j++) Seed[i][j]=0.;
+		}
+
+		// populate Seed matrix
+		for (int i=0; i < i_size; i++) {
+// 			if(m_vi_RightVertexColors[i]>=i_num_of_colors) {
+// 				cout<<"i="<<i<<endl;
+// 				cout<<"m_vi_RightVertexColors[i]="<<m_vi_RightVertexColors[i]<<endl;
+// 				cout<<"i_num_of_colors="<<i_num_of_colors<<endl;
+// 			}
+			Seed[i][m_vi_RightVertexColors[i]] = 1.;
+		}
+
+		return Seed;
+	}
+
+	void BipartiteGraphPartialColoring::PrintPartialColoringMetrics() {
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			PrintColumnPartialColoringMetrics();
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			PrintRowPartialColoringMetrics();
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling PrintPartialColors()."<<endl;
+		}
+	}
+
+	double** BipartiteGraphPartialColoring::GetSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			return GetRightSeedMatrix(i_SeedRowCount, i_SeedColumnCount);
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			return GetLeftSeedMatrix(i_SeedRowCount, i_SeedColumnCount);
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling PrintPartialColors()."<<endl;
+		}
+		return NULL;
+	}
+
+	double** BipartiteGraphPartialColoring::GetSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			return GetRightSeedMatrix_unmanaged(i_SeedRowCount, i_SeedColumnCount);
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			return GetLeftSeedMatrix_unmanaged(i_SeedRowCount, i_SeedColumnCount);
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling PrintPartialColors()."<<endl;
+		}
+		return NULL;
+	}
+
+	void BipartiteGraphPartialColoring::GetVertexPartialColors(vector<int> &output)
+	{
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			GetRightVertexColors(output);
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			GetLeftVertexColors(output);
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method: "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling GetVertexColors()."<<endl;
+		}
+	}
+
+	void BipartiteGraphPartialColoring::PrintPartialColors() {
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			PrintColumnPartialColors();
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			PrintRowPartialColors();
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling PrintPartialColors()."<<endl;
+		}
+	}
+
+	int BipartiteGraphPartialColoring::CheckPartialDistanceTwoColoring() {
+		if ( m_s_VertexColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			return CheckPartialDistanceTwoColumnColoring();
+		}
+		else if (m_s_VertexColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			return CheckPartialDistanceTwoRowColoring();
+		}
+		else { // Unrecognized Coloring Method
+			cerr<<" Unknown Partial Distance Two Coloring Method: "<<m_s_VertexColoringVariant
+				<<". Please use a legal Method before calling CheckPartialDistanceTwoColoring()."<<endl;
+			return _FALSE;
+		}
+	}
+
+
+	double BipartiteGraphPartialColoring::GetVertexColoringTime() {
+	  return m_d_ColoringTime;
+	}
+
+	void BipartiteGraphPartialColoring::SetVertexColoringVariant(string s_VertexColoringVariant) {
+	  m_s_VertexColoringVariant = s_VertexColoringVariant;
+	}
+}
+
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoring.h
@@ -0,0 +1,202 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHPARTIALCOLORING_H
+#define BIPARTITEGRAPHPARTIALCOLORING_H
+
+namespace ColPack
+{
+	/** @ingroup group21
+	 *  @brief class BipartiteGraphPartialColoring in @link group21@endlink.
+
+	 To be completed.
+	 */
+	class BipartiteGraphPartialColoring : public BipartiteGraphPartialOrdering
+	{
+	public: //DOCUMENTED
+
+		/// Based on m_s_VertexColoringVariant, either PrintRowPartialColors() or PrintColumnPartialColors() will be called.
+		void PrintPartialColors();
+
+		/// Based on m_s_VertexColoringVariant, either PrintRowPartialColoringMetrics() or PrintColumnPartialColoringMetrics() will be called.
+		void PrintPartialColoringMetrics();
+
+		/// Based on m_s_VertexColoringVariant, either PrintRowPartialColoringMetrics() or PrintColumnPartialColoringMetrics() will be called.
+		int CheckPartialDistanceTwoColoring();
+
+		/// Based on m_s_VertexColoringVariant, either GetLeftVertexColors() or GetRightVertexColors() will be called.
+		void GetVertexPartialColors(vector<int> &output);
+
+		/// Based on m_s_VertexColoringVariant, either GetLeftSeedMatrix() or GetRightSeedMatrix() will be called.
+		double** GetSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+		/// Based on m_s_VertexColoringVariant, either GetLeftSeedMatrix_unmanaged() or GetRightSeedMatrix_unmanaged() will be called.
+		double** GetSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+		///Generate and return the Left Seed matrix. This Seed matrix is managed and freed by ColPack
+		/**Precondition:
+		- the Graph has been colored by PartialDistanceTwoRowColoring()
+
+		Postcondition:
+		- Size of the returned matrix is (*i_SeedRowCount) rows x (*i_SeedColumnCount) columns.
+		(*i_SeedColumnCount) == num of rows of the original matrix == GetRowVertexCount()
+		(*i_SeedRowCount) == num of colors used to color the left (row) vertices == GetVertexColorCount().
+
+		Notes:
+		- This Seed matrix is managed and automatically freed by ColPack when the Graph object is deleted. Therefore, the user should NOT attempt to free the Seed matrix again.
+		*/
+		double** GetLeftSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+		/// Same as GetLeftSeedMatrix(), except that this Seed matrix is NOT managed by ColPack
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		double** GetLeftSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+		/// Return the Right Seed matrix. This Seed matrix is managed and freed by ColPack
+		/** Precondition:
+		- the Graph has been colored by PartialDistanceTwoColumnColoring()
+
+		Postcondition:
+		- Size of the returned matrix is (*i_SeedRowCount) rows x (*i_SeedColumnCount) columns.
+		(*i_SeedRowCount) == num of columns of the original matrix == GetColumnVertexCount()
+		(*i_SeedColumnCount) == num of colors used to color the right (column) vertices == GetVertexColorCount().
+
+		Notes:
+		- This Seed matrix is managed and automatically freed by ColPack when the Graph object is deleted. Therefore, the user should NOT attempt to free the Seed matrix again.
+		*/
+		double** GetRightSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+		/// Same as GetRightSeedMatrix(), except that this Seed matrix is NOT managed by ColPack
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		double** GetRightSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount);
+
+	private:
+
+		//Private Function 2401
+		int CalculateVertexColorClasses();
+
+		//Private Function 2402
+		int CheckVertexColoring(string s_VertexColoringVariant);
+
+	protected:
+
+		int m_i_LeftVertexColorCount;
+		int m_i_RightVertexColorCount;
+
+		int m_i_VertexColorCount;
+
+		int m_i_ViolationCount;
+
+		int m_i_ColoringUnits;
+
+		int m_i_LargestLeftVertexColorClass;
+		int m_i_LargestRightVertexColorClass;
+
+		int m_i_LargestLeftVertexColorClassSize;
+		int m_i_LargestRightVertexColorClassSize;
+
+		int m_i_SmallestLeftVertexColorClass;
+		int m_i_SmallestRightVertexColorClass;
+
+		int m_i_SmallestLeftVertexColorClassSize;
+		int m_i_SmallestRightVertexColorClassSize;
+
+		double m_d_AverageLeftVertexColorClassSize;
+		double m_d_AverageRightVertexColorClassSize;
+
+		double m_d_ColoringTime;
+		double m_d_CheckingTime;
+
+		string m_s_VertexColoringVariant;
+
+		vector<int> m_vi_LeftVertexColors;
+		vector<int> m_vi_RightVertexColors;
+
+		vector<int> m_vi_LeftVertexColorFrequency;
+		vector<int> m_vi_RightVertexColorFrequency;
+
+		bool seed_available;
+		int i_seed_rowCount;
+		double** dp2_Seed;
+
+		void Seed_init();
+		void Seed_reset();
+
+	public:
+
+		//Public Constructor 2451
+		BipartiteGraphPartialColoring();
+
+		//Public Destructor 2452
+		~BipartiteGraphPartialColoring();
+
+		//Virtual Function 2453
+		virtual void Clear();
+
+		//Virtual Function 2454
+		virtual void Reset();
+
+		//Public Function 2455
+		int PartialDistanceTwoRowColoring();
+		int PartialDistanceTwoRowColoring_serial();
+		int PartialDistanceTwoRowColoring_OMP();
+
+		//Public Function 2456
+		int PartialDistanceTwoColumnColoring();
+		int PartialDistanceTwoColumnColoring_serial();
+		int PartialDistanceTwoColumnColoring_OMP();
+
+		//Public Function 2457
+		int CheckPartialDistanceTwoRowColoring();
+
+		//Public Function 2458
+		int CheckPartialDistanceTwoColumnColoring();
+
+		//Public Function 2459
+		int GetLeftVertexColorCount();
+
+		//Public Function 2460
+		int GetRightVertexColorCount();
+
+		//Public Function 2461
+		int GetVertexColorCount();
+
+		//Public Function 2462
+		string GetVertexColoringVariant();
+
+		//Public Function 2463
+		void GetLeftVertexColors(vector<int> &output);
+
+		//Public Function 2464
+		void GetRightVertexColors(vector<int> &output);
+
+		//Public Function 2465
+		void PrintRowPartialColors();
+
+		//Public Function 2466
+		void PrintColumnPartialColors();
+
+		//Public Function 2467
+		void PrintRowPartialColoringMetrics();
+
+		//Public Function 2468
+		void PrintColumnPartialColoringMetrics();
+
+		//Public Function 2469
+		void PrintVertexPartialColorClasses();
+
+		double GetVertexColoringTime();
+
+		void SetVertexColoringVariant(string s_VertexColoringVariant);
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoringInterface.cpp
@@ -0,0 +1,219 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+
+	//Public Destructor 2602
+	BipartiteGraphPartialColoringInterface::~BipartiteGraphPartialColoringInterface()
+	{
+		BipartiteGraphPartialColoring::Clear();
+
+		Seed_reset();
+	}
+
+	//Public Function 2603
+	void BipartiteGraphPartialColoringInterface::Clear()
+	{
+		BipartiteGraphPartialColoring::Clear();
+
+		return;
+	}
+
+
+	//Public Function 2604
+	void BipartiteGraphPartialColoringInterface::Reset()
+	{
+		BipartiteGraphPartialColoring::Reset();
+
+		return;
+	}
+
+
+	void BipartiteGraphPartialColoringInterface::GenerateSeedJacobian(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+	//void BipartiteGraphPartialColoringInterface::GenerateSeedJacobian(unsigned int ** uip2_JacobianSparsityPattern, int i_RowCount, int i_ColumnCount, double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+		//Clear (Re-initialize) the bipartite graph
+		//Clear();
+
+		//Read the sparsity pattern of the given Jacobian matrix (compressed sparse rows format)
+		//and create the corresponding bipartite graph
+		//BuildBPGraphFromRowCompressedFormat(uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+
+		//Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+		PartialDistanceTwoColoring(s_OrderingVariant, s_ColoringVariant);
+
+		//Create the seed matrix from the coloring information
+		(*dp3_seed) = GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	}
+
+	void BipartiteGraphPartialColoringInterface::GenerateSeedJacobian_unmanaged(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+
+		//Do Partial-Distance-Two-Coloring the bipartite graph with the specified ordering
+		PartialDistanceTwoColoring(s_OrderingVariant, s_ColoringVariant);
+
+		//Create the seed matrix from the coloring information
+		(*dp3_seed) = GetSeedMatrix_unmanaged(ip1_SeedRowCount, ip1_SeedColumnCount);
+	}
+
+	int BipartiteGraphPartialColoringInterface::PartialDistanceTwoColoring(string s_OrderingVariant, string s_ColoringVariant) {
+		m_T_Timer.Start();
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant, s_ColoringVariant);
+		m_T_Timer.Stop();
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		s_ColoringVariant = toUpper(s_ColoringVariant);
+		m_T_Timer.Start();
+
+		int i_ColoringStatus;
+		if(s_ColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			i_ColoringStatus = PartialDistanceTwoColumnColoring();
+		} else if (s_ColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			i_ColoringStatus = PartialDistanceTwoRowColoring();
+		} else {
+			cout<<" Unknown Partial Distance Two Coloring Method "<<s_ColoringVariant<<". Please use a legal Method."<<endl;
+			m_T_Timer.Stop();
+			m_d_ColoringTime = m_T_Timer.GetWallTime();
+			return (_FALSE);
+		}
+
+		m_T_Timer.Stop();
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+		return(i_ColoringStatus);
+	}
+
+
+	BipartiteGraphPartialColoringInterface::BipartiteGraphPartialColoringInterface(int i_type, ...) {
+	  //cout<<"IN GraphColoringInterface(int i_type, ...)"<<endl;
+		Clear();
+
+		if (i_type == SRC_WAIT) return;
+
+		//---------CONVERT INPUT TO ColPack's Bipartite Graph-------------
+		va_list ap; /*will point to each unnamed argument in turn*/
+		va_start(ap,i_type); /* point to first element after i_type*/
+
+		if (i_type == SRC_MEM_ADOLC) {
+		  //get unsigned int ** uip2_HessianSparsityPattern, int i_RowCount
+		  unsigned int ** uip2_JacobianSparsityPattern = va_arg(ap,unsigned int **);
+		  int i_RowCount = va_arg(ap,int);
+		  int i_ColumnCount = va_arg(ap,int);
+
+		  BuildBPGraphFromRowCompressedFormat(uip2_JacobianSparsityPattern, i_RowCount, i_ColumnCount);
+		}
+		else if (i_type == SRC_MEM_ADIC) {
+		  std::list<std::set<int> > *  lsi_SparsityPattern = va_arg(ap,std::list<std::set<int> > *);
+		  int i_ColumnCount = va_arg(ap,int);
+
+		  BuildBPGraphFromADICFormat(lsi_SparsityPattern, i_ColumnCount);
+		}
+		else if (i_type == SRC_MEM_SSF || i_type == SRC_MEM_CSR) {
+		  int* ip_RowIndex = va_arg(ap,int*);
+		  int i_RowCount = va_arg(ap,int);
+		  int i_ColumnCount = va_arg(ap,int);
+		  int* ip_ColumnIndex = va_arg(ap,int*);
+
+		  BuildBPGraphFromCSRFormat(ip_RowIndex, i_RowCount, i_ColumnCount, ip_ColumnIndex);
+		}
+		else if (i_type == SRC_FILE) {
+		  // get string s_InputFile, string s_fileFormat
+		  string s_InputFile ( va_arg(ap,char *) );
+		  string s_fileFormat ( va_arg(ap,char *) );
+
+		  ReadBipartiteGraph(s_InputFile, s_fileFormat);
+		}
+		else {
+		  cerr<<"ERR: BipartiteGraphBicoloringInterface(): i_type =\""<< i_type <<"\" unknown or unspecified"<<endl;
+
+		  va_end(ap); //cleanup
+		  return;
+		}
+#ifdef	_COLPACK_CHECKPOINT_
+		cout<<"IN BipartiteGraphPartialColoringInterface::BipartiteGraphPartialColoringInterface(int i_type, ...)"<<endl;
+		string s_OutputFile = "-ColPack_debug.mtx";
+		s_OutputFile = "BipartiteGraphPartialColoringInterface-InternalBPGraph"+s_OutputFile;
+		WriteMatrixMarket(s_OutputFile);
+#endif
+
+		//cout<<"START PrintBipartiteGraph()"<<endl;
+		//PrintBipartiteGraph();
+		//cout<<"END"<<endl;
+
+/*
+		// get string s_OrderingVariant
+		string s_OrderingVariant( va_arg(ap,char *) );
+		if (s_OrderingVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------ORDERING-------------
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl<<"*ERROR: "<<s_OrderingVariant<<" Ordering Failed"<<endl;
+			return;
+		}
+
+		// get string s_BicoloringVariant
+		string s_ColoringVariant( va_arg(ap,char *) );
+		s_ColoringVariant = toUpper(s_ColoringVariant);
+		if (s_ColoringVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------COLORING-------------
+		m_T_Timer.Start();
+
+		int i_ColoringStatus;
+		if(s_ColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO") {
+			i_ColoringStatus = PartialDistanceTwoColumnColoring();
+		} else if (s_ColoringVariant == "ROW_PARTIAL_DISTANCE_TWO") {
+			i_ColoringStatus = PartialDistanceTwoRowColoring();
+		} else {
+			cout<<" Unknown Partial Distance Two Coloring Method "<<s_ColoringVariant<<". Please use a legal Method."<<endl;
+			m_T_Timer.Stop();
+			m_d_ColoringTime = m_T_Timer.GetWallTime();
+			return;
+		}
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+//*/
+		va_end(ap); //cleanup
+		return;
+	}
+
+
+	void BipartiteGraphPartialColoringInterface::GetOrderedVertices(vector<int> &output) {
+	  BipartiteGraphPartialOrdering::GetOrderedVertices(output);
+	}
+
+	double** BipartiteGraphPartialColoringInterface::GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+	  return BipartiteGraphPartialColoring::GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialColoringInterface.h
@@ -0,0 +1,153 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHPARTIALCOLORINGINTERFACE_H
+#define BIPARTITEGRAPHPARTIALCOLORINGINTERFACE_H
+
+namespace ColPack
+{
+	/** @ingroup group21
+	 *  @brief class BipartiteGraphPartialColoringInterface in @link group21@endlink.
+
+	 To be completed.
+	 Note that for each object, only one type of Coloring (either Row or Column) should be used.
+	 The reason is because both of RowColoring and ColumnColoring will update (share) the value of m_i_VertexColorCount.
+	 If RowColoring is run and then ColumnColoring is run, both PrintColumnPartialColoringMetrics() and PrintRowPartialColoringMetrics()
+	 will display the result of the later run (ColumnColoring) only.
+	 */
+	class BipartiteGraphPartialColoringInterface : public BipartiteGraphPartialColoring
+	{
+	public: //DOCUMENTED
+
+		/// Build a BipartiteGraphPartialColoringInterface object and create the bipartite graph based on the graph structure specified by the input source
+		/** This function will:
+		- 0. Create initial BipartiteGraphPartialColoringInterface object
+		- 1. Create the bipartite graph based on the graph structure specified by the input source
+
+		Structure of this variadic function's parameters: BipartiteGraphPartialColoringInterface(int i_type, [2 or more parameters for input source depending on the value of i_type]). Here are some examples:
+		  - Just create the BipartiteGraphPartialColoringInterface object: BipartiteGraphPartialColoringInterface(SRC_WAIT);
+		  - Get the input from file: BipartiteGraphPartialColoringInterface(SRC_FILE, s_InputFile.c_str() ,"AUTO_DETECTED");
+		  - Get input from ADOLC: BipartiteGraphPartialColoringInterface(SRC_MEM_ADOLC,uip2_SparsityPattern, i_rowCount, i_columnCount);
+
+		About input parameters:
+		- int i_type: specified the input source. i_type can be either:
+		  - -1 (SRC_WAIT): only step 0 will be done.
+		  - 0 (SRC_FILE): The graph structure will be read from file. The next 2 parameters are:
+		    - fileName: name of the input file. If the full path is not given, the file is assumed to be in the current directory
+		    - fileType can be either:
+			    - "AUTO_DETECTED"  or "". ColPack will decide the format of the file based on the file extension:
+				    - ".mtx": MatrixMarket format
+				    - ".hb", or any combination of ".<r, c, p><s, u, h, x, r><a, e>": HarwellBoeing format
+				    - ".graph": MeTiS format
+				    - ".gen": Generic Matrix format
+				    - ".gens": Generic Square Matrix format
+				    - If the above extensions are not found, MatrixMarket format will be assumed.
+			    - "MM" for MatrixMarket format (http://math.nist.gov/MatrixMarket/formats.html#MMformat). Notes:
+			      - ColPack only accepts MatrixMarket coordinate format (NO array format)
+			      - List of arithmetic fields accepted by ColPack: real, pattern or integer
+			      - List of symmetry structures accepted by ColPack: general or symmetric
+			      - The first line of the input file should be similar to this: "%%MatrixMarket matrix coordinate real general"
+			    - "HB" for HarwellBoeing format (http://math.nist.gov/MatrixMarket/formats.html#hb)
+			    - "MeTiS" for MeTiS format (http://people.sc.fsu.edu/~burkardt/data/metis_graph/metis_graph.html)
+			    - "GEN" for Generic Matrix format
+			    - "GENS" for Generic Square Matrix format
+		  - 1 (SRC_MEM_ADOLC): The graph structure will be read from Row Compressed Structure (used by ADOLC). The next 3 parameters are:
+		    - unsigned int **uip2_SparsityPattern: The pattern of Jacobian matrix stored in Row Compressed Format
+		    - int i_rowCount: number of rows in the Jacobian matrix. Number of rows in uip2_SparsityPattern.
+		    - int i_ColumnCount: number of columns in the Jacobian matrix. Number of columns in uip2_SparsityPattern.
+		  - 2 (SRC_MEM_ADIC): The graph structure will be read from the sparsity structure generated by ADIC. The next 2 parameters are:
+		    - std::list<std::set<int> >* lsi_SparsityPattern: The pattern of Jacobian matrix.
+			  This structure has a list of rows and the positions of the nonzeros in a row is hold in a set.
+		    - int i_ColumnCount: number of columns in the Jacobian matrix.
+		  - 3 (SRC_MEM_SSF) or 4 (SRC_MEM_CSR): The graph structure will be read from zero-based indexing, 3-array variation CSR format
+		    http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#table_79228E147DA0413086BEFF4EFA0D3F04
+		    The next 3 parameters are:
+		    - int* ip_RowIndex: Element j of the array gives the index of the element in the ip_ColumnIndex array that is first non-zero element in a row j.
+					  Size of vector (*ip_RowIndex) = i_rowCount + 1.
+		    - int i_RowCount: number of rows in the Jacobian matrix.
+		    - int i_ColumnCount: number of columns in the Jacobian matrix.
+		    - int* ip_ColumnIndex: Element I of the array is the number of the column that contains the I-th non-zero element in the matrix.
+					    Size of vector (*ip_ColumnIndex) = ip_RowIndex[i_rowCount]
+		//*/
+		BipartiteGraphPartialColoringInterface(int i_type, ...);
+
+		/// (Partial-Distance-Two) Color the bipartite graph based on the requested s_ColoringVariant and s_OrderingVariant
+		/**	This function will
+		- 1. Order the vertices based on the requested Ordering variant (s_OrderingVariant)
+		- 2. Bicolor the graph based on the requested Coloring variant (s_ColoringVariant)
+		- Ordering Time and Coloring Time will be recorded.
+
+		About input parameters:
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "SMALLEST_LAST"
+			- "INCIDENCE_DEGREE"
+			- "RANDOM"
+		- s_ColoringVariant can be either
+			- "COLUMN_PARTIAL_DISTANCE_TWO" (default)
+			- "ROW_PARTIAL_DISTANCE_TWO"
+
+		Postcondition:
+		- The Bipartite Graph is (Partial-Distance-Two) colored, i.e., either m_vi_LeftVertexColors or m_vi_RightVertexColors will be populated.
+		*/
+		int PartialDistanceTwoColoring(string s_OrderingVariant = "NATURAL", string s_ColoringVariant = "COLUMN_PARTIAL_DISTANCE_TWO");
+
+		/// Generate and return the seed matrix (OpenMP enabled)
+		/**	This function will
+		- 1. Color the graph by (Row or Column)-Partial-Distance-2-Coloring  with the specified ordering
+		- 2. Create and return the seed matrix (*dp3_seed) from the coloring information
+
+		About input parameters:
+		- s_ColoringVariant:
+			- if == "COLUMN_PARTIAL_DISTANCE_TWO" (default), PartialDistanceTwoColumnColoring() will be used and the right seed matrix will be return
+			- if == "ROW_PARTIAL_DISTANCE_TWO", PartialDistanceTwoRowColoring() will be used and the left seed matrix will be return
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "SMALLEST_LAST"
+			- "INCIDENCE_DEGREE"
+			- "RANDOM"
+
+		Postcondition:
+		- *dp3_seed: the size will be [*ip1_SeedRowCount] [*ip1_SeedColumnCount]
+			- if (s_ColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO"): [num of columns of the original matrix == i_ColumnCount] [ColorCount]
+			- if (s_ColoringVariant == "ROW_PARTIAL_DISTANCE_TWO"): [ColorCount] [num of rows of the original matrix == i_RowCount]
+		*/
+		void GenerateSeedJacobian(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant = "COLUMN_PARTIAL_DISTANCE_TWO");
+
+
+		/// Same as GenerateSeedJacobian(), except that this Seed matrix is NOT managed by ColPack  (OpenMP enabled)
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		void GenerateSeedJacobian_unmanaged(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant = "COLUMN_PARTIAL_DISTANCE_TWO");
+
+		/// Based on m_s_VertexColoringVariant, either GetLeftSeedMatrix() or GetRightSeedMatrix() will be called.
+		double** GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		void GetOrderedVertices(vector<int> &output);
+	private:
+
+		Timer m_T_Timer;
+
+	public:
+
+		//Public Destructor 2602
+		~BipartiteGraphPartialColoringInterface();
+
+		//Public Function 2603
+		void Clear();
+
+		//Public Function 2604
+		void Reset();
+
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialOrdering.cpp
@@ -0,0 +1,1954 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 2301
+	int BipartiteGraphPartialOrdering::CheckVertexOrdering(string s_VertexOrderingVariant)
+	{
+		if(m_s_VertexOrderingVariant.compare(s_VertexOrderingVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexOrderingVariant.compare("ALL") != 0)
+		{
+			m_s_VertexOrderingVariant = s_VertexOrderingVariant;
+		}
+
+		return(_FALSE);
+	}
+
+
+	//Public Constructor 2351
+	BipartiteGraphPartialOrdering::BipartiteGraphPartialOrdering()
+	{
+		Clear();
+	}
+
+
+	//Public Destructor 2352
+	BipartiteGraphPartialOrdering::~BipartiteGraphPartialOrdering()
+	{
+		Clear();
+	}
+
+
+	//Virtual Function 2353
+	void BipartiteGraphPartialOrdering::Clear()
+	{
+		BipartiteGraphInputOutput::Clear();
+
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+
+		m_vi_OrderedVertices.clear();
+
+		return;
+	}
+
+
+	//Virtual Function 2354
+	void BipartiteGraphPartialOrdering::Reset()
+	{
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+
+		m_vi_OrderedVertices.clear();
+
+		return;
+	}
+
+
+	//Public Function 2355
+	int BipartiteGraphPartialOrdering::RowNaturalOrdering()
+	{
+		if(CheckVertexOrdering("ROW_NATURAL"))
+		{
+			return(_TRUE);
+		}
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_LeftVertexCount);
+
+		for(int i = 0; i<i_LeftVertexCount; i++)
+		{
+			m_vi_OrderedVertices.push_back(i);
+		}
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 2356
+	int BipartiteGraphPartialOrdering::ColumnNaturalOrdering()
+	{
+		if(CheckVertexOrdering("COLUMN_NATURAL"))
+		{
+			return(_TRUE);
+		}
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_RightVertexCount);
+
+		for(int i = 0; i < i_RightVertexCount; i++)
+		{
+			m_vi_OrderedVertices.push_back(i + i_LeftVertexCount);
+		}
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphPartialOrdering::RowRandomOrdering() {
+		if(CheckVertexOrdering("ROW_RANDOM"))
+		{
+			return(_TRUE);
+		}
+
+		m_s_VertexOrderingVariant = "ROW_RANDOM";
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize((unsigned) i_LeftVertexCount);
+
+		for(int i = 0; i<i_LeftVertexCount; i++) {
+			m_vi_OrderedVertices[i] = i;
+		}
+
+		randomOrdering(m_vi_OrderedVertices);
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphPartialOrdering::ColumnRandomOrdering() {
+		if(CheckVertexOrdering("COLUMN_RANDOM"))
+		{
+			return(_TRUE);
+		}
+
+		m_s_VertexOrderingVariant = "COLUMN_RANDOM";
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+		int i_RightVertexCount = STEP_DOWN((signed) m_vi_RightVertices.size());
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize((unsigned) i_RightVertexCount);
+
+		for(int i = 0; i<i_RightVertexCount; i++) {
+			m_vi_OrderedVertices[i] = i + i_LeftVertexCount;
+		}
+
+		randomOrdering(m_vi_OrderedVertices);
+
+		return(_TRUE);
+	}
+
+	//Public Function 2357
+	int BipartiteGraphPartialOrdering::RowLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("ROW_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+		int i_DegreeCount = 0;
+		int i_VertexCount, i_Current;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedVertexDegree;
+
+		i_VertexCount = (int)m_vi_LeftVertices.size () - 1;
+		m_i_MaximumVertexDegree = 0;
+		m_i_MinimumVertexDegree = i_VertexCount;
+		vvi_GroupedVertexDegree.resize ( i_VertexCount );
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		// enter code here
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_DegreeCount = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_LeftVertices [i]; j<m_vi_LeftVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_RightVertices [i_Current]; k<m_vi_RightVertices [i_Current+1]; ++k )
+				{
+					// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_DegreeCount;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+
+			vvi_GroupedVertexDegree [i_DegreeCount].push_back ( i );
+
+			if ( m_i_MaximumVertexDegree < i_DegreeCount )
+			{
+				m_i_MaximumVertexDegree = i_DegreeCount;
+			}
+			else if (m_i_MinimumVertexDegree > i_DegreeCount)
+			{
+				m_i_MinimumVertexDegree = i_DegreeCount;
+			}
+		}
+
+		if(i_VertexCount <2) m_i_MinimumVertexDegree = i_DegreeCount;
+
+		// clear the vertexorder
+		m_vi_OrderedVertices.clear ();
+		// take the bucket and place it in the vertexorder
+		for ( i=m_i_MaximumVertexDegree; i>=m_i_MinimumVertexDegree; --i )
+		{
+			// j = size of the bucket
+			// get the size of the i-th bucket
+			j = (int)vvi_GroupedVertexDegree [i].size ();
+			// place it into vertex ordering
+			for ( k=0; k<j; ++k )
+			{
+				m_vi_OrderedVertices.push_back ( vvi_GroupedVertexDegree [i][k] );
+			}
+		}
+
+		return(_TRUE);
+	}
+
+
+
+	//Public Function 2358
+	int BipartiteGraphPartialOrdering::ColumnLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("COLUMN_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+		int i_DegreeCount = 0;
+		int i_VertexCount, i_Current;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedVertexDegree;
+
+		i_VertexCount = (int)m_vi_RightVertices.size () - 1;
+		m_i_MaximumVertexDegree = 0;
+		m_i_MinimumVertexDegree = i_VertexCount;
+		vvi_GroupedVertexDegree.resize ( i_VertexCount );
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		// enter code here
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_DegreeCount = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_RightVertices [i]; j<m_vi_RightVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_LeftVertices [i_Current]; k<m_vi_LeftVertices [i_Current+1]; ++k )
+				{
+				// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_DegreeCount;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+			vvi_GroupedVertexDegree [i_DegreeCount].push_back ( i );
+
+			if ( m_i_MaximumVertexDegree < i_DegreeCount )
+			{
+				m_i_MaximumVertexDegree = i_DegreeCount;
+			}
+			else if (m_i_MinimumVertexDegree > i_DegreeCount)
+			{
+				m_i_MinimumVertexDegree = i_DegreeCount;
+			}
+		}
+
+		if(i_VertexCount <2) m_i_MinimumVertexDegree = i_DegreeCount;
+
+		// clear the vertexorder
+		m_vi_OrderedVertices.clear ();
+		// take the bucket and place it in the vertexorder
+
+		for ( i=m_i_MaximumVertexDegree; i>=m_i_MinimumVertexDegree; --i )
+		{
+			// j = size of the bucket
+			// get the size of the i-th bucket
+			j = (int)vvi_GroupedVertexDegree [i].size ();
+			// place it into vertex ordering
+			for ( k=0; k<j; ++k )
+			{
+				m_vi_OrderedVertices.push_back ( vvi_GroupedVertexDegree [i][k] + i_LeftVertexCount);
+			}
+		}
+
+		return(_TRUE);
+	}
+
+
+	int BipartiteGraphPartialOrdering::RowSmallestLastOrdering() {
+		return BipartiteGraphPartialOrdering::RowSmallestLastOrdering_serial();
+/*#ifdef _OPENMP
+		return BipartiteGraphPartialOrdering::RowSmallestLastOrdering_OMP();
+#else
+		return BipartiteGraphPartialOrdering::RowSmallestLastOrdering_serial();
+#endif*/
+	}
+
+	//Line 1: procedure SMALLESTLASTORDERING-EASY(G = (V;E))
+	int BipartiteGraphPartialOrdering::RowSmallestLastOrdering_OMP()
+	{
+// 		cout<<"IN ROW_SMALLEST_LAST_OMP()"<<endl<<flush;
+		if(CheckVertexOrdering("ROW_SMALLEST_LAST_OMP"))
+		{
+			return(_TRUE);
+		}
+
+// 		PrintBipartiteGraph();
+
+		//int j, k, l, u; //unused variable
+		int i_LeftVertexCount = (signed) m_vi_LeftVertices.size() - 1;
+		//int i_RightVertexCount = (signed) m_vi_RightVertices.size() - 1;
+		vector<int> vi_Visited;
+		vi_Visited.clear();
+		vi_Visited.resize ( i_LeftVertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+		vector<int> d; // current distance-2 degree of each Left vertex
+		d.resize(i_LeftVertexCount, _UNKNOWN);
+		vector<int> VertexThreadGroup;
+		VertexThreadGroup.resize(i_LeftVertexCount, _UNKNOWN);
+		int i_MaxNumThreads;
+#ifdef _OPENMP
+		i_MaxNumThreads = omp_get_max_threads();
+#else
+		i_MaxNumThreads = 1;
+#endif
+		int i_MaxDegree = 0;
+		int* i_MaxDegree_Private = new int[i_MaxNumThreads];
+		int* i_MinDegree_Private = new int[i_MaxNumThreads];
+		// ??? is this really neccessary ? => #pragma omp parallel for default(none) schedule(static) shared()
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			i_MaxDegree_Private[i] = 0;
+			i_MinDegree_Private[i] = i_LeftVertexCount;
+		}
+		int* delta = new int[i_MaxNumThreads];
+
+		vector<int>** B; //private buckets. Each thread i will have their own buckets B[i][]
+		B = new vector<int>*[i_MaxNumThreads];
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, i_MaxDegree, i_MaxNumThreads)
+#endif
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			B[i] = new vector<int>[i_MaxDegree];
+		}
+
+		//DONE Line 2: for each vertex v in V in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, d, i_LeftVertexCount, i_MaxDegree_Private, i_MinDegree_Private) firstprivate(vi_Visited)
+#endif
+		for(int v=0; v < i_LeftVertexCount; v++) {
+			//DONE Line 3: d(v) <- d2(v,G) . Also find i_MaxDegree_Private
+			d[v] = 0;
+			for(int i=m_vi_LeftVertices[v]; i<m_vi_LeftVertices[v+1];i++) {
+				int i_Current = m_vi_Edges[i];
+				for(int j=m_vi_RightVertices [i_Current]; j<m_vi_RightVertices [i_Current+1]; j++) {
+					if ( m_vi_Edges [j] != v && vi_Visited [m_vi_Edges [j]] != v ) {
+						d[v]++;
+						vi_Visited [m_vi_Edges [j]] = v;
+					}
+				}
+			}
+
+			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			if(i_MaxDegree_Private[i_thread_num]<d[v]) i_MaxDegree_Private[i_thread_num]=d[v];
+			if(i_MinDegree_Private[i_thread_num]>d[v]) {
+				i_MinDegree_Private[i_thread_num]=d[v];
+			}
+		}
+		// find i_MaxDegree; populate delta
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			if(i_MaxDegree<i_MaxDegree_Private[i] ) i_MaxDegree = i_MaxDegree_Private[i];
+			delta[i] = i_MinDegree_Private[i];
+		}
+
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(static) shared(B, i_MaxDegree, i_MaxNumThreads)
+#endif
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			B[i_thread_num] = new vector<int>[i_MaxDegree+1];
+		}
+
+		//DONE Line 2: for each vertex v in V in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, d, i_LeftVertexCount, VertexThreadGroup)
+#endif
+		for(int v=0; v < i_LeftVertexCount; v++) {
+ 			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			//DONE Line 4: add v to B_t(v) [d (v)]
+			B[ i_thread_num ][ d[v] ].push_back(v);
+
+			//record that v is in B_t(v)
+			VertexThreadGroup[v] = i_thread_num;
+
+		}
+
+		//DONE Line 5: i_NumOfVerticesToBeColored <- |V|
+		int i_NumOfVerticesToBeColored = i_LeftVertexCount;
+
+		//Line 6: for k = 1 to p in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(i_MaxNumThreads, i_NumOfVerticesToBeColored, B, delta, VertexThreadGroup, d, cout, i_MaxDegree, i_MaxDegree_Private ) firstprivate(vi_Visited)
+#endif
+		for(int k=0; k< i_MaxNumThreads; k++) {
+			//reset vi_Visited
+			for(size_t i=0; i< vi_Visited.size();i++) vi_Visited[i] = _UNKNOWN;
+
+			//Line 7: while i_NumOfVerticesToBeColored >= 0 do // !!! ??? why not i_NumOfVerticesToBeColored > 0
+			while(i_NumOfVerticesToBeColored > 0) {
+			  int i_thread_num;
+#ifdef _OPENMP
+			  i_thread_num = omp_get_thread_num();
+#else
+			  i_thread_num = 0;
+#endif
+				//Line 8: Let delta be the smallest index j such that B_k [j] is non-empty
+				//update delta
+// 				cout<<"delta[i_thread_num] 1="<< delta[i_thread_num] <<endl;
+// 				cout<<"B[i_thread_num]:"<<endl<<'\t';
+// 				for(int i=0; i<=i_MaxDegree; i++) {cout<<B[i_thread_num][i].size()<<' ';}
+// 				cout<<'*'<<endl;
+				if(delta[i_thread_num]!=0 && B[ i_thread_num ][ delta[i_thread_num] - 1 ].size() != 0) delta[i_thread_num] --;
+// 				cout<<"delta[i_thread_num] 2="<< delta[i_thread_num] <<endl;
+
+				//Line 9: Let v be a vertex drawn from B_k [delta]
+				int v=0;
+
+				for(int i=delta[i_thread_num] ; i<i_MaxDegree_Private[i_thread_num]; i++) {
+					if(B[ i_thread_num ][ i ].size()!=0) {
+						v = B[ i_thread_num ][ delta[i_thread_num] ][ B[ i_thread_num ][ delta[i_thread_num] ].size() - 1 ];
+						d[v]= -1; // mark v as selected
+
+						//Line 10: remove v from B_k [delta]
+						B[ i_thread_num ][ delta[i_thread_num] ].pop_back();
+
+						break;
+					}
+					else delta[i_thread_num]++;
+				}
+// 				cout<<"Select vertex v="<<v<<" ; d[v]="<< d[v]<<endl;
+// 				cout<<"delta[i_thread_num] 3="<< delta[i_thread_num] <<endl;
+
+				//Line 11: for each vertex w which is distance-2-neighbor of (v) do
+				for(int l = m_vi_LeftVertices[v]; l < m_vi_LeftVertices[v+1]; l++) {
+					int i_D1Neighbor = m_vi_Edges[l];
+					for(int m = m_vi_RightVertices[i_D1Neighbor]; m < m_vi_RightVertices[i_D1Neighbor+1]; m++ ) {
+						int w = m_vi_Edges[m];
+
+						//Line 12: if w in B_k then
+						if( VertexThreadGroup[w] != i_thread_num || vi_Visited [w] == v || d[w] < 1 || w == v ) continue;
+
+						//Line 13: remove w from B_k [d (w)]
+						// find location of w in B_k [d (w)] and pop it . !!! naive, improvable by keeping extra data. See if the extra data affacts concurrency
+						int i_w_location = B[ i_thread_num ][ d[w] ].size() - 1;
+// 						cout<<"d[w]="<<d[w]<<endl;
+// 						cout<<"i_w_location before="<<i_w_location<<endl;
+// 						for(int ii = 0; ii <= i_w_location; ii++) {cout<<' '<< B[ i_thread_num ][ d[w] ][ii] ;}
+// 						cout<<"find w="<<w<<endl;
+						while(i_w_location>=0 && B[ i_thread_num ][ d[w] ][i_w_location] != w) i_w_location--;
+// 						if(i_w_location<0) {
+// 							cout<<"*** i_w_location<0"<<endl<<flush;
+// 						}
+// 						cout<<"i_w_location after="<<i_w_location<<endl;
+						if(i_w_location != (((int)B[ i_thread_num ][ d[w] ].size()) - 1) ) B[ i_thread_num ] [ d[w] ][i_w_location] = B[ i_thread_num ] [ d[w] ][ B[ i_thread_num ][ d[w] ].size() - 1 ];
+						B[ i_thread_num ] [ d[w] ].pop_back();
+
+						//Line 14: d (w) <- d (w) - 1
+						d[w]--;
+
+						//Line 15: add w to B_k [d (w)]
+						B[ i_thread_num ] [ d[w] ].push_back(w);
+
+					}
+				}
+
+				//DONE Line 16: W [i_NumOfVerticesToBeColored] <- v; i_NumOfVerticesToBeColored <- i_NumOfVerticesToBeColored - 1 . critical statements
+#ifdef _OPENMP
+				#pragma omp critical
+#endif
+				{
+					//!!! improvable
+					m_vi_OrderedVertices.push_back(v);
+					i_NumOfVerticesToBeColored--;
+// 					cout<<"i_NumOfVerticesToBeColored="<<i_NumOfVerticesToBeColored<<endl;
+				}
+			}
+		}
+// 		cout<<"OUT ROW_SMALLEST_LAST_OMP()"<<endl<<flush;
+
+		return(_TRUE);
+	}
+
+	//Public Function 2359
+	int BipartiteGraphPartialOrdering::RowSmallestLastOrdering_serial()
+	{
+		if(CheckVertexOrdering("ROW_SMALLEST_LAST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, u, l;
+		int i_Current;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		int i_VertexCount;
+		int i_VertexCountMinus1; // = i_VertexCount - 1, used when inserting selected vertices into m_vi_OrderedVertices
+		int i_HighestInducedVertexDegree, i_InducedVertexDegree;
+		vector<int> vi_InducedVertexDegree;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedInducedVertexDegree;
+		vector< int > vi_VertexLocation;
+
+		// initialize
+
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_LeftVertices.size () - 1;
+		i_VertexCountMinus1 = i_VertexCount - 1;
+		i_HighestInducedVertexDegree = 0;
+		vi_Visited.clear();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize(i_VertexCount, _UNKNOWN);
+
+		vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_InducedVertexDegree = 0;
+			// let's loop from mvi_LeftVertices[i] to mvi_LeftVertices[i+1] for the i'th column
+			for ( j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for (k=m_vi_RightVertices[i_Current]; k<m_vi_RightVertices[i_Current+1]; ++k)
+					{
+					// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_InducedVertexDegree;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back ( i_InducedVertexDegree );
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree [i_InducedVertexDegree].push_back ( i );
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if ( i_HighestInducedVertexDegree < i_InducedVertexDegree )
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		i_SelectedVertexCount = 0;
+		// first clear the visited nodes
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		// end clear nodes
+
+		int iMin = 1;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin - 1].size() != _FALSE)
+				iMin--;
+
+			// selecte first item from the bucket
+			for ( i=iMin; i<(i_HighestInducedVertexDegree+1); ++i )
+			{
+
+				if ( vvi_GroupedInducedVertexDegree[i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back ();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+				    iMin++;
+			}
+			// end select first nonzero item from the bucket
+
+			// go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+			for ( i=m_vi_LeftVertices [i_SelectedVertex]; i<m_vi_LeftVertices [i_SelectedVertex+1]; ++i )
+			{
+				// which Column element is Row (i_SelectedVertex) pointing to?
+				i_Current = m_vi_Edges [i];
+				// go to each neighbor of Col (i_SelectedVertex), decrease their degree by 1
+				// and then update their position in vvi_GroupedInducedVertexDegree and vi_VertexLocation
+				for ( j=m_vi_RightVertices [i_Current]; j<m_vi_RightVertices [i_Current+1]; ++j )
+				{
+					// note: m_vi_Edges [j] is the neighbor of Col (i_SelectedVertex)
+					// make sure it's not pointing back to itself, or if we already visited this node
+					if ( m_vi_Edges [j] == i_SelectedVertex || vi_Visited [m_vi_Edges [j]] == i_SelectedVertex )
+					{
+						// it is pointed to itself or already visited
+						continue;
+					}
+
+					u = m_vi_Edges[j];
+
+					// now check to make sure that the neighbor's degree isn't UNKNOWN
+					if ( vi_InducedVertexDegree [u] ==  _UNKNOWN )
+					{
+						// our neighbor doesn't have any neighbors, so skip it.
+						continue;
+					}
+
+					// update that we visited this
+					vi_Visited [u] = i_SelectedVertex;
+					// end up update that we visited this
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegree[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+					vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+
+
+
+				}
+			}
+			// end of go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+
+			//Mark the i_SelectedVertex as  _UNKNOWN, so that we don't look at it again
+			vi_InducedVertexDegree [i_SelectedVertex] =  _UNKNOWN;
+
+			m_vi_OrderedVertices[i_VertexCountMinus1 - i_SelectedVertexCount] = i_SelectedVertex;
+
+			// go to next vertex
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_InducedVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering() {
+		return BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering_serial();
+/*#ifdef _OPENMP
+		return BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering_OMP();
+#else
+		return BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering_serial();
+#endif*/
+	}
+
+	//Line 1: procedure SMALLESTLASTORDERING-EASY(G = (V;E))
+	int BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering_OMP()
+	{
+// 	  cout<<"IN COLUMN_SMALLEST_LAST_OMP()"<<endl<<flush;
+		if(CheckVertexOrdering("COLUMN_SMALLEST_LAST_OMP"))
+		{
+			return(_TRUE);
+		}
+
+// 		PrintBipartiteGraph();
+
+		//int j, k, l, u; //unused variable
+		int i_LeftVertexCount = (signed) m_vi_LeftVertices.size() - 1;
+		int i_RightVertexCount = (signed) m_vi_RightVertices.size() - 1;
+		vector<int> vi_Visited;
+		vi_Visited.clear();
+		vi_Visited.resize ( i_RightVertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+		vector<int> d; // current distance-2 degree of each right vertex
+		d.resize(i_RightVertexCount, _UNKNOWN);
+		vector<int> VertexThreadGroup;
+		VertexThreadGroup.resize(i_RightVertexCount, _UNKNOWN);
+		int i_MaxNumThreads;
+#ifdef _OPENMP
+		i_MaxNumThreads = omp_get_max_threads();
+#else
+		i_MaxNumThreads = 1;
+#endif
+		int i_MaxDegree = 0;
+		int* i_MaxDegree_Private = new int[i_MaxNumThreads];
+		int* i_MinDegree_Private = new int[i_MaxNumThreads];
+		// ??? is this really neccessary ? => #pragma omp parallel for default(none) schedule(static) shared()
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			i_MaxDegree_Private[i] = 0;
+			i_MinDegree_Private[i] = i_RightVertexCount;
+		}
+		int* delta = new int[i_MaxNumThreads];
+
+		vector<int>** B; //private buckets. Each thread i will have their own buckets B[i][]
+		B = new vector<int>*[i_MaxNumThreads];
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, i_MaxDegree, i_MaxNumThreads)
+#endif
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			B[i] = new vector<int>[i_MaxDegree];
+		}
+
+		//DONE Line 2: for each vertex v in V in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, d, i_RightVertexCount, i_MaxDegree_Private, i_MinDegree_Private) firstprivate(vi_Visited)
+#endif
+		for(int v=0; v < i_RightVertexCount; v++) {
+			//DONE Line 3: d(v) <- d2(v,G) . Also find i_MaxDegree_Private
+			d[v] = 0;
+			for(int i=m_vi_RightVertices[v]; i<m_vi_RightVertices[v+1];i++) {
+				int i_Current = m_vi_Edges[i];
+				for(int j=m_vi_LeftVertices [i_Current]; j<m_vi_LeftVertices [i_Current+1]; j++) {
+					if ( m_vi_Edges [j] != v && vi_Visited [m_vi_Edges [j]] != v ) {
+						d[v]++;
+						vi_Visited [m_vi_Edges [j]] = v;
+					}
+				}
+			}
+
+			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			if(i_MaxDegree_Private[i_thread_num]<d[v]) i_MaxDegree_Private[i_thread_num]=d[v];
+			if(i_MinDegree_Private[i_thread_num]>d[v]) {
+				i_MinDegree_Private[i_thread_num]=d[v];
+			}
+		}
+		// find i_MaxDegree; populate delta
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			if(i_MaxDegree<i_MaxDegree_Private[i] ) i_MaxDegree = i_MaxDegree_Private[i];
+			delta[i] = i_MinDegree_Private[i];
+		}
+
+#ifdef _OPENMP
+#pragma omp parallel for default(none) schedule(static) shared(B, i_MaxDegree, i_MaxNumThreads)
+#endif
+		for(int i=0; i < i_MaxNumThreads; i++) {
+			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			B[i_thread_num] = new vector<int>[i_MaxDegree+1];
+		}
+
+		//DONE Line 2: for each vertex v in V in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(B, d, i_RightVertexCount, VertexThreadGroup)
+#endif
+		for(int v=0; v < i_RightVertexCount; v++) {
+ 			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			//DONE Line 4: add v to B_t(v) [d (v)]
+			B[ i_thread_num ][ d[v] ].push_back(v);
+
+			//record that v is in B_t(v)
+			VertexThreadGroup[v] = i_thread_num;
+
+		}
+
+		//DONE Line 5: i_NumOfVerticesToBeColored <- |V|
+		int i_NumOfVerticesToBeColored = i_RightVertexCount;
+
+		//Line 6: for k = 1 to p in parallel do
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) schedule(static) shared(i_LeftVertexCount, i_MaxNumThreads, i_NumOfVerticesToBeColored, B, delta, VertexThreadGroup, d, cout, i_MaxDegree, i_MaxDegree_Private ) firstprivate(vi_Visited)
+#endif
+		for(int k=0; k< i_MaxNumThreads; k++) {
+			//reset vi_Visited
+			for(size_t i=0; i< vi_Visited.size();i++) vi_Visited[i] = _UNKNOWN;
+
+			//Line 7: while i_NumOfVerticesToBeColored >= 0 do // !!! ??? why not i_NumOfVerticesToBeColored > 0
+			while(i_NumOfVerticesToBeColored > 0) {
+			  int i_thread_num;
+#ifdef _OPENMP
+			  i_thread_num = omp_get_thread_num();
+#else
+			  i_thread_num = 0;
+#endif
+				//Line 8: Let delta be the smallest index j such that B_k [j] is non-empty
+				//update delta
+// 				cout<<"delta[i_thread_num] 1="<< delta[i_thread_num] <<endl;
+// 				cout<<"B[i_thread_num]:"<<endl<<'\t';
+// 				for(int i=0; i<=i_MaxDegree; i++) {cout<<B[i_thread_num][i].size()<<' ';}
+// 				cout<<'*'<<endl;
+				if(delta[i_thread_num]!=0 && B[ i_thread_num ][ delta[i_thread_num] - 1 ].size() != 0) delta[i_thread_num] --;
+// 				cout<<"delta[i_thread_num] 2="<< delta[i_thread_num] <<endl;
+
+				//Line 9: Let v be a vertex drawn from B_k [delta]
+				int v=0;
+
+				for(int i=delta[i_thread_num] ; i<i_MaxDegree_Private[i_thread_num]; i++) {
+					if(B[ i_thread_num ][ i ].size()!=0) {
+						v = B[ i_thread_num ][ delta[i_thread_num] ][ B[ i_thread_num ][ delta[i_thread_num] ].size() - 1 ];
+						d[v]= -1; // mark v as selected
+
+						//Line 10: remove v from B_k [delta]
+						B[ i_thread_num ][ delta[i_thread_num] ].pop_back();
+
+						break;
+					}
+					else delta[i_thread_num]++;
+				}
+// 				cout<<"Select vertex v="<<v<<" ; d[v]="<< d[v]<<endl;
+// 				cout<<"delta[i_thread_num] 3="<< delta[i_thread_num] <<endl;
+
+				//Line 11: for each vertex w which is distance-2-neighbor of (v) do
+				for(int l = m_vi_RightVertices[v]; l < m_vi_RightVertices[v+1]; l++) {
+					int i_D1Neighbor = m_vi_Edges[l];
+					for(int m = m_vi_LeftVertices[i_D1Neighbor]; m < m_vi_LeftVertices[i_D1Neighbor+1]; m++ ) {
+						int w = m_vi_Edges[m];
+
+						//Line 12: if w in B_k then
+						if( VertexThreadGroup[w] != i_thread_num || vi_Visited [w] == v || d[w] < 1 || w == v ) continue;
+
+						//Line 13: remove w from B_k [d (w)]
+						// find location of w in B_k [d (w)] and pop it . !!! naive, improvable by keeping extra data. See if the extra data affacts concurrency
+						int i_w_location = B[ i_thread_num ][ d[w] ].size() - 1;
+// 						cout<<"d[w]="<<d[w]<<endl;
+// 						cout<<"i_w_location before="<<i_w_location<<endl;
+// 						for(int ii = 0; ii <= i_w_location; ii++) {cout<<' '<< B[ i_thread_num ][ d[w] ][ii] ;}
+// 						cout<<"find w="<<w<<endl;
+						while(i_w_location>=0 && B[ i_thread_num ][ d[w] ][i_w_location] != w) i_w_location--;
+// 						if(i_w_location<0) {
+// 							cout<<"*** i_w_location<0"<<endl<<flush;
+// 						}
+// 						cout<<"i_w_location after="<<i_w_location<<endl;
+						if(i_w_location != (((signed)B[ i_thread_num ][ d[w] ].size()) - 1) ) B[ i_thread_num ] [ d[w] ][i_w_location] = B[ i_thread_num ] [ d[w] ][ B[ i_thread_num ][ d[w] ].size() - 1 ];
+						B[ i_thread_num ] [ d[w] ].pop_back();
+
+						//Line 14: d (w) <- d (w) - 1
+						d[w]--;
+
+						//Line 15: add w to B_k [d (w)]
+						B[ i_thread_num ] [ d[w] ].push_back(w);
+
+					}
+				}
+
+				//DONE Line 16: W [i_NumOfVerticesToBeColored] <- v; i_NumOfVerticesToBeColored <- i_NumOfVerticesToBeColored - 1 . critical statements
+#ifdef _OPENMP
+				#pragma omp critical
+#endif
+				{
+					//!!! improvable
+					m_vi_OrderedVertices.push_back(v + i_LeftVertexCount);
+					i_NumOfVerticesToBeColored--;
+// 					cout<<"i_NumOfVerticesToBeColored="<<i_NumOfVerticesToBeColored<<endl;
+				}
+			}
+		}
+// 		cout<<"OUT COLUMN_SMALLEST_LAST_OMP()"<<endl<<flush;
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 2360
+	int BipartiteGraphPartialOrdering::ColumnSmallestLastOrdering_serial()
+	{
+		if(CheckVertexOrdering("COLUMN_SMALLEST_LAST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, u, l;
+		int i_Current;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		int i_VertexCount;
+		int i_VertexCountMinus1; // = i_VertexCount - 1, used when inserting selected vertices into m_vi_OrderedVertices
+		int i_HighestInducedVertexDegree, i_InducedVertexDegree;
+		vector<int> vi_InducedVertexDegree;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedInducedVertexDegree;
+		vector< int > vi_VertexLocation;
+
+		// initialize
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_RightVertices.size () - 1;
+		i_VertexCountMinus1 = i_VertexCount - 1;
+		i_HighestInducedVertexDegree = 0;
+		vi_Visited.clear();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize(i_VertexCount, _UNKNOWN);
+
+ 		vi_InducedVertexDegree.clear();
+ 		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+ 		vvi_GroupedInducedVertexDegree.clear();
+ 		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+ 		vi_VertexLocation.clear();
+ 		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_InducedVertexDegree = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_RightVertices [i]; j<m_vi_RightVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_LeftVertices [i_Current]; k<m_vi_LeftVertices [i_Current+1]; ++k )
+				{
+				// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_InducedVertexDegree;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back ( i_InducedVertexDegree );
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree [i_InducedVertexDegree].push_back ( i );
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if ( i_HighestInducedVertexDegree < i_InducedVertexDegree )
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		i_SelectedVertexCount = 0;
+		// first clear the visited nodes
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		// end clear nodes
+
+		int iMin = 1;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin - 1].size() != _FALSE)
+				iMin--;
+
+			// selecte first item from the bucket
+			for ( i=iMin; i<(i_HighestInducedVertexDegree+1); ++i )
+			{
+
+				if ( vvi_GroupedInducedVertexDegree[i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back ();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+				    iMin++;
+			}
+			// end select first nonzero item from the bucket
+
+			// go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+			for ( i=m_vi_RightVertices [i_SelectedVertex]; i<m_vi_RightVertices [i_SelectedVertex+1]; ++i )
+			{
+				// which Row element is Col (i_SelectedVertex) pointing to?
+				i_Current = m_vi_Edges [i];
+				// go to each neighbor of Col (i_SelectedVertex), decrease their degree by 1
+				// and then update their position in vvi_GroupedInducedVertexDegree and vi_VertexLocation
+				for ( j=m_vi_LeftVertices [i_Current]; j<m_vi_LeftVertices [i_Current+1]; ++j )
+				{
+					// note: m_vi_Edges [j] is the neighbor of Col (i_SelectedVertex)
+					// make sure it's not pointing back to itself, or if we already visited this node
+					if ( m_vi_Edges [j] == i_SelectedVertex || vi_Visited [m_vi_Edges [j]] == i_SelectedVertex )
+					{
+						// it is pointed to itself or already visited
+						continue;
+					}
+
+					u = m_vi_Edges[j];
+
+					// now check to make sure that the neighbor's degree isn't UNKNOWN
+					if ( vi_InducedVertexDegree [u] == _UNKNOWN )
+					{
+						// our neighbor doesn't have any neighbors, so skip it.
+						continue;
+					}
+
+					// update that we visited this
+					vi_Visited [u] = i_SelectedVertex;
+					// end up update that we visited this
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegree[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+					vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+				}
+			}
+			// end of go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+
+			//Mark the i_SelectedVertex as  _UNKNOWN, so that we don't look at it again
+			vi_InducedVertexDegree [i_SelectedVertex] =  _UNKNOWN;
+
+			m_vi_OrderedVertices[i_VertexCountMinus1 - i_SelectedVertexCount] = i_SelectedVertex + i_LeftVertexCount;
+
+			// go to next vertex
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_InducedVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+	int BipartiteGraphPartialOrdering::ColumnDynamicLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("COLUMN_DYNAMIC_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, u, l;
+		int i_Current;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		int i_VertexCount;
+
+		int i_HighestInducedVertexDegree, i_InducedVertexDegree;
+
+		vector < int > vi_InducedVertexDegree;
+		vector < int > vi_Visited;
+		vector < vector < int > > vvi_GroupedInducedVertexDegree;
+		vector < int > vi_VertexLocation;
+
+		// initialize
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_RightVertices.size () - 1;
+
+		i_HighestInducedVertexDegree = 0;
+
+		vi_Visited.clear();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve(i_VertexCount);
+
+ 		vi_InducedVertexDegree.clear();
+ 		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+
+		vvi_GroupedInducedVertexDegree.clear();
+ 		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_VertexLocation.clear();
+ 		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		for ( i=0; i<i_VertexCount; ++i)
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_InducedVertexDegree = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_RightVertices [i]; j<m_vi_RightVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_LeftVertices [i_Current]; k<m_vi_LeftVertices [i_Current+1]; ++k )
+				{
+				// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_InducedVertexDegree;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back ( i_InducedVertexDegree );
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree [i_InducedVertexDegree].push_back ( i );
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if ( i_HighestInducedVertexDegree < i_InducedVertexDegree )
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		i_SelectedVertexCount = 0;
+		// first clear the visited nodes
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		// end clear nodes
+
+		//int iMin = 1;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			//if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin - 1].size() != _FALSE)
+			//	iMin--;
+
+			// selecte first item from the bucket
+			for ( i= i_HighestInducedVertexDegree; i>= 0; i-- )
+			{
+				if ( vvi_GroupedInducedVertexDegree[i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back ();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+				    i_HighestInducedVertexDegree--;
+			}
+			// end select first nonzero item from the bucket
+
+			// go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+			for ( i=m_vi_RightVertices [i_SelectedVertex]; i<m_vi_RightVertices [i_SelectedVertex+1]; ++i )
+			{
+				// which Row element is Col (i_SelectedVertex) pointing to?
+				i_Current = m_vi_Edges [i];
+				// go to each neighbor of Col (i_SelectedVertex), decrease their degree by 1
+				// and then update their position in vvi_GroupedInducedVertexDegree and vi_VertexLocation
+				for ( j=m_vi_LeftVertices [i_Current]; j<m_vi_LeftVertices [i_Current+1]; ++j )
+				{
+					// note: m_vi_Edges [j] is the neighbor of Col (i_SelectedVertex)
+					// make sure it's not pointing back to itself, or if we already visited this node
+					if ( m_vi_Edges [j] == i_SelectedVertex || vi_Visited [m_vi_Edges [j]] == i_SelectedVertex )
+					{
+						// it is pointed to itself or already visited
+						continue;
+					}
+
+					u = m_vi_Edges[j];
+
+					// now check to make sure that the neighbor's degree isn't UNKNOWN
+					if ( vi_InducedVertexDegree [u] == _UNKNOWN )
+					{
+						// our neighbor doesn't have any neighbors, so skip it.
+						continue;
+					}
+
+					// update that we visited this
+					vi_Visited [u] = i_SelectedVertex;
+					// end up update that we visited this
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegree[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+					vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+				}
+			}
+			// end of go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+
+			//Mark the i_SelectedVertex as  _UNKNOWN, so that we don't look at it again
+			vi_InducedVertexDegree [i_SelectedVertex] =  _UNKNOWN;
+
+			m_vi_OrderedVertices.push_back(i_SelectedVertex + i_LeftVertexCount);
+
+			// go to next vertex
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_InducedVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+		vi_Visited.clear ();
+		return(_TRUE);
+	}
+
+	int BipartiteGraphPartialOrdering::RowDynamicLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("ROW_DYNAMIC_LARGEST_FIRST"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, u, l;
+		int i_Current;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		int i_VertexCount;
+
+		int i_HighestInducedVertexDegree, i_InducedVertexDegree;
+		vector<int> vi_InducedVertexDegree;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedInducedVertexDegree;
+		vector< int > vi_VertexLocation;
+
+		// initialize
+
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_LeftVertices.size () - 1;
+		i_HighestInducedVertexDegree = 0;
+
+		vi_Visited.clear();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve(i_VertexCount);
+
+		vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_InducedVertexDegree = 0;
+			// let's loop from mvi_LeftVertices[i] to mvi_LeftVertices[i+1] for the i'th column
+			for ( j=m_vi_LeftVertices[i]; j<m_vi_LeftVertices[i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for (k=m_vi_RightVertices[i_Current]; k<m_vi_RightVertices[i_Current+1]; ++k)
+					{
+					// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_InducedVertexDegree;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back ( i_InducedVertexDegree );
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree [i_InducedVertexDegree].push_back ( i );
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if ( i_HighestInducedVertexDegree < i_InducedVertexDegree )
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		i_SelectedVertexCount = 0;
+		// first clear the visited nodes
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		// end clear nodes
+
+		//int iMin = 1;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			//if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin - 1].size() != _FALSE)
+			//	iMin--;
+
+			// selecte first item from the bucket
+			for ( i= i_HighestInducedVertexDegree; i>= 0; i-- )
+			{
+
+				if ( vvi_GroupedInducedVertexDegree[i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back ();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+				    i_HighestInducedVertexDegree--;
+			}
+			// end select first nonzero item from the bucket
+
+			// go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+			for ( i=m_vi_LeftVertices [i_SelectedVertex]; i<m_vi_LeftVertices [i_SelectedVertex+1]; ++i )
+			{
+				// which Column element is Row (i_SelectedVertex) pointing to?
+				i_Current = m_vi_Edges [i];
+				// go to each neighbor of Col (i_SelectedVertex), decrease their degree by 1
+				// and then update their position in vvi_GroupedInducedVertexDegree and vi_VertexLocation
+				for ( j=m_vi_RightVertices [i_Current]; j<m_vi_RightVertices [i_Current+1]; ++j )
+				{
+					// note: m_vi_Edges [j] is the neighbor of Col (i_SelectedVertex)
+					// make sure it's not pointing back to itself, or if we already visited this node
+					if ( m_vi_Edges [j] == i_SelectedVertex || vi_Visited [m_vi_Edges [j]] == i_SelectedVertex )
+					{
+						// it is pointed to itself or already visited
+						continue;
+					}
+
+					u = m_vi_Edges[j];
+
+					// now check to make sure that the neighbor's degree isn't UNKNOWN
+					if ( vi_InducedVertexDegree [u] ==  _UNKNOWN )
+					{
+						// our neighbor doesn't have any neighbors, so skip it.
+						continue;
+					}
+
+					// update that we visited this
+					vi_Visited [u] = i_SelectedVertex;
+					// end up update that we visited this
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegree[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+					vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+
+				}
+			}
+			// end of go to the neighbors of i_SelectedVertex and decrease the degrees by 1
+
+			//Mark the i_SelectedVertex as  _UNKNOWN, so that we don't look at it again
+			vi_InducedVertexDegree [i_SelectedVertex] =  _UNKNOWN;
+
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+
+			// go to next vertex
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_InducedVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+		vi_Visited.clear();
+
+		return(_TRUE);
+	}
+
+	//Public Function 2361
+	int BipartiteGraphPartialOrdering::RowIncidenceDegreeOrdering()
+	{
+		if(CheckVertexOrdering("ROW_INCIDENCE_DEGREE"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l, u;
+		int i_Current;
+		//int i_HighestDegreeVertex; //unused variable
+                int m_i_MaximumVertexDegree;
+		int i_VertexCount, i_VertexDegree, i_IncidenceVertexDegree;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		vector<int> vi_IncidenceVertexDegree;
+		vector<int> vi_Visited;
+		vector< vector <int> > vvi_GroupedIncidenceVertexDegree;
+		vector< int > vi_VertexLocation;
+
+		// initialize
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_LeftVertices.size () - 1;
+		vvi_GroupedIncidenceVertexDegree.clear();
+		vvi_GroupedIncidenceVertexDegree.resize ( i_VertexCount );
+		//i_HighestDegreeVertex = _UNKNOWN;//unused variable
+		m_i_MaximumVertexDegree = _UNKNOWN;
+		i_IncidenceVertexDegree = 0;
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve(i_VertexCount);
+		vi_VertexLocation.clear();
+		vi_VertexLocation.reserve(i_VertexCount);
+		vi_IncidenceVertexDegree.clear();
+		vi_IncidenceVertexDegree.reserve(i_VertexCount);
+
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_VertexDegree = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_LeftVertices [i]; j<m_vi_LeftVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_RightVertices [i_Current]; k<m_vi_RightVertices [i_Current+1]; ++k )
+				{
+				// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					{
+						++i_VertexDegree;
+						// vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						vi_Visited [m_vi_Edges [k]] = i;
+					}
+				}
+			}
+			vi_IncidenceVertexDegree.push_back ( i_IncidenceVertexDegree );
+			vvi_GroupedIncidenceVertexDegree [i_IncidenceVertexDegree].push_back ( i );
+			vi_VertexLocation.push_back ( vvi_GroupedIncidenceVertexDegree [i_IncidenceVertexDegree].size () -1 );
+
+			if ( m_i_MaximumVertexDegree < i_VertexDegree )
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+				//i_HighestDegreeVertex = i; //unused variable
+			}
+		}
+
+		// initialize more things for the bucket "moving"
+		i_SelectedVertexCount = 0;
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		int iMax =  0;
+
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			if(iMax != m_i_MaximumVertexDegree && vvi_GroupedIncidenceVertexDegree[iMax + 1].size() != _FALSE)
+				iMax++;
+
+			for ( i=iMax; i>=0; i-- )
+			{
+				if ( (int)vvi_GroupedIncidenceVertexDegree [i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedIncidenceVertexDegree [i].back ();
+					// now we remove i_SelectedVertex from the bucket
+					vvi_GroupedIncidenceVertexDegree [i].pop_back();
+					break;
+				}
+			}
+			// end select the vertex with the highest Incidence degree
+
+			// tell the neighbors of i_SelectedVertex that we are removing it
+			for ( i=m_vi_LeftVertices [i_SelectedVertex]; i<m_vi_LeftVertices [i_SelectedVertex+1]; ++i )
+			{
+				i_Current = m_vi_Edges [i];
+
+				for ( j=m_vi_RightVertices [i_Current]; j<m_vi_RightVertices [i_Current+1]; ++j )
+				{
+					u = m_vi_Edges[j];
+
+					// now check if the degree of i_SelectedVertex's neighbor isn't unknow to us
+					if ( vi_IncidenceVertexDegree [u] == _UNKNOWN )
+					{
+						// i_SelectedVertex's neighbor's degree is unknown. skip!
+						continue;
+					}
+
+					// note: u = neighbor of i_SelectedVertex
+					// first check if we are pointing to itself or if we already visited this neighbor
+					if ( u == i_SelectedVertex || vi_Visited [u] == i_SelectedVertex )
+					{
+						// we already visited or pointing to itself. skip.
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].back();
+
+						vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					// remove the last element from vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]]
+					vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].pop_back();
+
+					// now update that we are visiting u
+					vi_Visited [u] = i_SelectedVertex;
+					// end now update that we are visiting u
+
+					// now we tell that neighbor to increase its degree by 1
+					++vi_IncidenceVertexDegree [u];
+					// place the neighbor in 1 degree up in the bucket
+					vvi_GroupedIncidenceVertexDegree [vi_IncidenceVertexDegree [u]].push_back ( u );
+					// update the location of the now moved neighbor
+					vi_VertexLocation [u] = vvi_GroupedIncidenceVertexDegree [vi_IncidenceVertexDegree [u]].size () -1;
+				}
+			}
+			// end tell the neighbors of i_SelectedVertex that we are removing it
+
+			// now we say that i_SelectedVertex's degree is unknown to us
+			vi_IncidenceVertexDegree [i_SelectedVertex] = _UNKNOWN;
+			// now we push i_SelectedVertex to the back or VertexOrder
+			m_vi_OrderedVertices.push_back ( i_SelectedVertex );
+			// loop it again
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_IncidenceVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedIncidenceVertexDegree.clear();
+
+		return(_TRUE);
+
+	}
+
+
+
+	//Public Function 2362
+	int BipartiteGraphPartialOrdering::ColumnIncidenceDegreeOrdering()
+	{
+		if(CheckVertexOrdering("COLUMN_INCIDENCE_DEGREE"))
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l, u;
+		int i_Current;
+		//int i_HighestDegreeVertex; //unused variable
+                int m_i_MaximumVertexDegree;
+		int i_VertexCount, i_VertexDegree, i_IncidenceVertexDegree;
+		int i_SelectedVertex, i_SelectedVertexCount;
+		vector<int> vi_IncidenceVertexDegree;
+		vector<int> vi_Visited;
+		vector< vector<int> > vvi_GroupedIncidenceVertexDegree;
+		vector< int > vi_VertexLocation;
+
+		// initialize
+		i_SelectedVertex = _UNKNOWN;
+		i_VertexCount = (int)m_vi_RightVertices.size () - 1;
+		vvi_GroupedIncidenceVertexDegree.resize ( i_VertexCount );
+		//i_HighestDegreeVertex = _UNKNOWN;//unused variable
+		m_i_MaximumVertexDegree = _UNKNOWN;
+		i_IncidenceVertexDegree = 0;
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+		m_vi_OrderedVertices.clear();
+
+		int i_LeftVertexCount = STEP_DOWN((signed) m_vi_LeftVertices.size());
+
+		// enter code here
+		for ( i=0; i<i_VertexCount; ++i )
+		{
+			// clear the visted nodes
+			//vi_VistedNodes.clear ();
+			// reset the degree count
+			i_VertexDegree = 0;
+			// let's loop from mvi_RightVertices[i] to mvi_RightVertices[i+1] for the i'th column
+			for ( j=m_vi_RightVertices [i]; j<m_vi_RightVertices [i+1]; ++j )
+			{
+				i_Current = m_vi_Edges [j];
+
+				for ( k=m_vi_LeftVertices [i_Current]; k<m_vi_LeftVertices [i_Current+1]; ++k )
+				{
+					// b_visited = visitedAlready ( vi_VistedNodes, m_vi_Edges [k] );
+
+					 if ( m_vi_Edges [k] != i && vi_Visited [m_vi_Edges [k]] != i )
+					 {
+						 ++i_VertexDegree;
+						 // vi_VistedNodes.push_back ( m_vi_Edges [k] );
+						 vi_Visited [m_vi_Edges [k]] = i;
+					 }
+				}
+			}
+			vi_IncidenceVertexDegree.push_back ( i_IncidenceVertexDegree );
+			vvi_GroupedIncidenceVertexDegree [i_IncidenceVertexDegree].push_back ( i );
+			vi_VertexLocation.push_back ( vvi_GroupedIncidenceVertexDegree [i_IncidenceVertexDegree].size () - 1);
+
+			if ( m_i_MaximumVertexDegree < i_VertexDegree )
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+				//i_HighestDegreeVertex = i;//unused variable
+			}
+		}
+
+		// initialize more things for the bucket "moving"
+		i_SelectedVertexCount = 0;
+		vi_Visited.clear ();
+		vi_Visited.resize ( i_VertexCount, _UNKNOWN );
+
+		int iMax = 0;
+
+		while ( i_SelectedVertexCount < i_VertexCount )
+		{
+			if(iMax != m_i_MaximumVertexDegree && vvi_GroupedIncidenceVertexDegree[iMax + 1].size() != _FALSE)
+				iMax++;
+
+			// select the vertex with the highest Incidence degree
+			for ( i=m_i_MaximumVertexDegree; i>=0; i-- )
+			{
+				if ( (int)vvi_GroupedIncidenceVertexDegree [i].size () != 0 )
+				{
+					i_SelectedVertex = vvi_GroupedIncidenceVertexDegree [i].back ();
+					// now we remove i_SelectedVertex from the bucket
+					vvi_GroupedIncidenceVertexDegree [i].pop_back();
+					break;
+				}
+			}
+			// end select the vertex with the highest Incidence degree
+
+			// tell the neighbors of i_SelectedVertex that we are removing it
+			for ( i=m_vi_RightVertices [i_SelectedVertex]; i<m_vi_RightVertices [i_SelectedVertex+1]; ++i )
+			{
+				i_Current = m_vi_Edges [i];
+
+				for ( j=m_vi_LeftVertices [i_Current]; j<m_vi_LeftVertices [i_Current+1]; ++j )
+				{
+					u = m_vi_Edges[j];
+
+					// now check if the degree of i_SelectedVertex's neighbor isn't unknow to us
+					if ( vi_IncidenceVertexDegree [u] == _UNKNOWN )
+					{
+						// i_SelectedVertex's neighbor's degree is unknown. skip!
+						continue;
+					}
+
+					// note: u = neighbor of i_SelectedVertex
+					// first check if we are pointing to itself or if we already visited a neighbor
+					if ( u == i_SelectedVertex || vi_Visited [u] == i_SelectedVertex )
+					{
+						// we already visited or pointing to itself. skip.
+						continue;
+					}
+
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+					if(vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].size() > 1)
+					{
+						l = vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].back();
+
+						vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+						vi_VertexLocation[l] = vi_VertexLocation[u];
+					}
+
+					// remove the last element from vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]]
+					vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].pop_back();
+
+					// now update that we are visiting u
+					vi_Visited [u] = i_SelectedVertex;
+					// end now update that we are visiting u
+
+					// now we tell that neighbor to increase its degree by 1
+					++vi_IncidenceVertexDegree [u];
+					// place the neighbor in 1 degree up in the bucket
+					vvi_GroupedIncidenceVertexDegree [vi_IncidenceVertexDegree [u]].push_back ( u );
+					// update the location of the now moved neighbor
+					vi_VertexLocation [u] = vvi_GroupedIncidenceVertexDegree [vi_IncidenceVertexDegree [u]].size () -1;
+				}
+			}
+			// end tell the neighbors of i_SelectedVertex that we are removing it
+
+			// now we say that i_SelectedVertex's degree is unknown to us
+			vi_IncidenceVertexDegree [i_SelectedVertex] = _UNKNOWN;
+			// now we push i_SelectedVertex to the back or VertexOrder
+			m_vi_OrderedVertices.push_back ( i_SelectedVertex + i_LeftVertexCount );
+			// loop it again
+			++i_SelectedVertexCount;
+		}
+
+		// clear the buffer
+                vi_IncidenceVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedIncidenceVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 2363
+	string BipartiteGraphPartialOrdering::GetVertexOrderingVariant()
+	{
+		if(m_s_VertexOrderingVariant.compare("ROW_NATURAL") == 0)
+		{
+			return("Row Natural");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("COLUMN_NATURAL") == 0)
+		{
+			return("Column Natural");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("ROW_LARGEST_FIRST") == 0)
+		{
+			return("Row Largest First");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("COLUMN_LARGEST_FIRST") == 0)
+		{
+			return("Column Largest First");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("ROW_SMALLEST_LAST") == 0)
+		{
+			return("Row Smallest Last");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("COLUMN_SMALLEST_LAST") == 0)
+		{
+			return("Column Smallest Last");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("ROW_INCIDENCE_DEGREE") == 0)
+		{
+			return("Row Incidence Degree");
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("COLUMN_INCIDENCE_DEGREE") == 0)
+		{
+			return("Column Incidence Degree");
+		}
+		else
+		{
+			return("Unknown");
+		}
+	}
+
+	//Public Function 2364
+	void BipartiteGraphPartialOrdering::GetOrderedVertices(vector<int> &output)
+	{
+		output = (m_vi_OrderedVertices);
+	}
+
+	int BipartiteGraphPartialOrdering::OrderVertices(string s_OrderingVariant, string s_ColoringVariant) {
+		s_ColoringVariant = toUpper(s_ColoringVariant);
+		s_OrderingVariant = toUpper(s_OrderingVariant);
+
+		if(s_ColoringVariant == "ROW_PARTIAL_DISTANCE_TWO")
+		{
+			if((s_OrderingVariant.compare("NATURAL") == 0))
+			{
+				return(RowNaturalOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("LARGEST_FIRST") == 0))
+			{
+				return(RowLargestFirstOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("SMALLEST_LAST") == 0))
+			{
+				return(RowSmallestLastOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("INCIDENCE_DEGREE") == 0))
+			{
+				return(RowIncidenceDegreeOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("RANDOM") == 0))
+			{
+				return(RowRandomOrdering());
+			}
+			else
+			{
+				cerr<<endl;
+				cerr<<"Unknown Ordering Method";
+				cerr<<endl;
+			}
+		}
+		else
+		if(s_ColoringVariant == "COLUMN_PARTIAL_DISTANCE_TWO")
+		{
+			if((s_OrderingVariant.compare("NATURAL") == 0))
+			{
+				return(ColumnNaturalOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("LARGEST_FIRST") == 0))
+			{
+				return(ColumnLargestFirstOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("SMALLEST_LAST") == 0))
+			{
+				return(ColumnSmallestLastOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("INCIDENCE_DEGREE") == 0))
+			{
+				return(ColumnIncidenceDegreeOrdering());
+			}
+			else
+			if((s_OrderingVariant.compare("RANDOM") == 0))
+			{
+				return(ColumnRandomOrdering());
+			}
+			else
+			{
+				cerr<<endl;
+				cerr<<"Unknown Ordering Method: "<<s_OrderingVariant;
+				cerr<<endl;
+			}
+		}
+		else
+		{
+			cerr<<endl;
+			cerr<<"Invalid s_ColoringVariant = \""<<s_ColoringVariant<<"\", must be either \"COLUMN_PARTIAL_DISTANCE_TWO\" or \"ROW_PARTIAL_DISTANCE_TWO\".";
+			cerr<<endl;
+		}
+
+		return(_TRUE);
+	}
+
+
+	void BipartiteGraphPartialOrdering::PrintVertexOrdering() {
+		cout<<"PrintVertexOrdering() "<<m_s_VertexOrderingVariant<<endl;
+		for(unsigned int i=0; i<m_vi_OrderedVertices.size();i++) {
+			//printf("\t [%d] %d \n", i, m_vi_OrderedVertices[i]);
+			cout<<"\t["<<setw(5)<<i<<"] "<<setw(5)<<m_vi_OrderedVertices[i]<<endl;
+		}
+		cout<<endl;
+	}
+
+	double BipartiteGraphPartialOrdering::GetVertexOrderingTime() {
+	  return m_d_OrderingTime;
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/BipartiteGraphPartialColoring/BipartiteGraphPartialOrdering.h
@@ -0,0 +1,82 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef BIPARTITEGRAPHPARTIALORDERING_H
+#define BIPARTITEGRAPHPARTIALORDERING_H
+
+#define RIGHT_PARTIAL_DISTANCE_TWO COLUMN_PARTIAL_DISTANCE_TWO
+#define LEFT_PARTIAL_DISTANCE_TWO ROW_PARTIAL_DISTANCE_TWO
+
+namespace ColPack
+{
+	/** @ingroup group21
+	 *  @brief class BipartiteGraphPartialOrdering in @link group21@endlink.
+
+	 The BipartiteGraphPartialOrderingClass stores either the ordered row or column vertices as a
+	 vector of vertex identifiers to be used by bipartite graph partial coloring methods.
+	 */
+	class BipartiteGraphPartialOrdering : public BipartiteGraphInputOutput
+	{
+	public:
+
+		int OrderVertices(string s_OrderingVariant = "NATURAL", string s_ColoringVariant = "COLUMN_PARTIAL_DISTANCE_TWO");
+
+	private:
+
+		int CheckVertexOrdering(string s_VertexOrderingVariant);
+
+	protected:
+
+		double m_d_OrderingTime;
+
+		string m_s_VertexOrderingVariant;
+
+		vector<int> m_vi_OrderedVertices;
+
+	public:
+
+		BipartiteGraphPartialOrdering();
+
+		~BipartiteGraphPartialOrdering();
+
+		virtual void Clear();
+
+		virtual void Reset();
+
+		int RowNaturalOrdering();
+		int ColumnNaturalOrdering();
+
+		int RowRandomOrdering();
+		int ColumnRandomOrdering();
+
+		int RowLargestFirstOrdering();
+		int ColumnLargestFirstOrdering();
+
+		int RowSmallestLastOrdering();
+		int RowSmallestLastOrdering_serial();
+		int RowSmallestLastOrdering_OMP();
+		int ColumnSmallestLastOrdering();
+		int ColumnSmallestLastOrdering_serial();
+		int ColumnSmallestLastOrdering_OMP();
+
+		int RowIncidenceDegreeOrdering();
+		int ColumnIncidenceDegreeOrdering();
+
+                int RowDynamicLargestFirstOrdering();
+                int ColumnDynamicLargestFirstOrdering();
+
+		string GetVertexOrderingVariant();
+
+		void GetOrderedVertices(vector<int> &output);
+
+		void PrintVertexOrdering();
+
+		double GetVertexOrderingTime();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphColoring.cpp
@@ -0,0 +1,6258 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 1401
+	int GraphColoring::FindCycle(int i_Vertex, int i_AdjacentVertex, int i_DistanceOneVertex, int i_SetID, vector<int> & vi_CandidateColors, vector<int> & vi_FirstVisitedOne, vector<int> & vi_FirstVisitedTwo)
+	{
+		int i_VertexOne, i_VertexTwo;
+
+		if(i_SetID != _UNKNOWN)
+		{
+			i_VertexOne = vi_FirstVisitedOne[i_SetID];
+			i_VertexTwo = vi_FirstVisitedTwo[i_SetID];
+
+			if(i_VertexOne != i_Vertex)
+			{
+				vi_FirstVisitedOne[i_SetID] = i_Vertex;
+				vi_FirstVisitedTwo[i_SetID] = i_AdjacentVertex;
+			}
+			else
+			if((i_VertexOne == i_Vertex) && (i_VertexTwo != i_AdjacentVertex))
+			{
+				vi_CandidateColors[m_vi_VertexColors[i_DistanceOneVertex]] = i_Vertex;
+
+#if DEBUG == 1401
+
+				cout<<"DEBUG 1401 | Acyclic Coloring | Found Cycle | Vertex "<<STEP_UP(i_Vertex)<<endl;
+#endif
+
+			}
+		}
+
+		return(_TRUE);
+	}
+
+
+	//Private Function 1402
+	//mimi2_VertexEdgeMap is used as input only
+	int GraphColoring::UpdateSet(int i_Vertex, int i_AdjacentVertex, int i_DistanceOneVertex, map< int, map<int, int> > & mimi2_VertexEdgeMap, vector<int> & vi_FirstSeenOne, vector<int> & vi_FirstSeenTwo, vector<int> & vi_FirstSeenThree)
+	{
+		int i_ColorID;
+
+		int i_VertexOne, i_VertexTwo, i_VertexThree;
+
+		i_ColorID = m_vi_VertexColors[i_AdjacentVertex];
+
+		i_VertexOne = vi_FirstSeenOne[i_ColorID];
+		i_VertexTwo = vi_FirstSeenTwo[i_ColorID];
+		i_VertexThree = vi_FirstSeenThree[i_ColorID];
+
+		if(i_VertexOne != i_Vertex)
+		{
+			vi_FirstSeenOne[i_ColorID] = i_Vertex;
+			vi_FirstSeenTwo[i_ColorID] = i_AdjacentVertex;
+			vi_FirstSeenThree[i_ColorID] = i_DistanceOneVertex;
+		}
+		else
+		{
+			if(i_VertexTwo < i_VertexThree)
+			{
+				return(mimi2_VertexEdgeMap[i_VertexTwo][i_VertexThree]);
+			}
+			else
+			{
+				return(mimi2_VertexEdgeMap[i_VertexThree][i_VertexTwo]);
+			}
+		}
+
+		return(_UNKNOWN);
+	}
+
+
+	//Private Function 1403
+	int GraphColoring::SearchDepthFirst(int i_RootVertex, int i_ParentVertex, int i_Vertex, vector<int> & vi_TouchedVertices)
+	{
+		int i;
+
+		//int i_VertexCount;
+
+		int i_ViolationCount;
+
+		i_ViolationCount = _FALSE;
+
+		//i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(i=m_vi_Vertices[i_Vertex]; i<m_vi_Vertices[STEP_UP(i_Vertex)]; i++)
+		{
+			if(m_vi_Edges[i] == i_ParentVertex)
+			{
+				continue;
+			}
+
+			if(m_vi_Edges[i] == i_RootVertex)
+			{
+				i_ViolationCount++;
+
+				if(i_ViolationCount == _TRUE)
+				{
+					cout<<endl;
+					cout<<"Acyclic Coloring | Violation Check | "<<m_s_InputFile<<endl;
+					cout<<endl;
+				}
+
+				cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i_RootVertex)<<" ["<<STEP_UP(m_vi_VertexColors[i_RootVertex])<<"] ... "<<STEP_UP(i_ParentVertex)<<" ["<<STEP_UP(m_vi_VertexColors[i_ParentVertex])<<"] - "<<STEP_UP(i_Vertex)<<" ["<<STEP_UP(m_vi_VertexColors[i_Vertex])<<"] - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(m_vi_VertexColors[m_vi_Edges[i]])<<"]"<<endl;
+			}
+
+			if(m_vi_VertexColors[m_vi_Edges[i]] == m_vi_VertexColors[i_Vertex])
+			{
+				i_ViolationCount++;
+
+				if(i_ViolationCount == _TRUE)
+				{
+					cout<<endl;
+					cout<<"Acyclic Coloring | Violation Check | "<<m_s_InputFile<<endl;
+					cout<<endl;
+				}
+
+				cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i_Vertex)<<" ["<<STEP_UP(m_vi_VertexColors[i_Vertex])<<"] - "<<STEP_UP(m_vi_Edges[i])<<" ["<<STEP_UP(m_vi_VertexColors[m_vi_Edges[i]])<<"]"<<endl;
+
+			}
+
+			if(vi_TouchedVertices[m_vi_Edges[i]] == _TRUE)
+			{
+				continue;
+			}
+
+			if(m_vi_VertexColors[m_vi_Edges[i]] != m_vi_VertexColors[i_ParentVertex])
+			{
+				continue;;
+			}
+
+			vi_TouchedVertices[m_vi_Edges[i]] = _TRUE;
+
+			i_ViolationCount = SearchDepthFirst(i_RootVertex, i_Vertex, m_vi_Edges[i], vi_TouchedVertices);
+
+		}
+
+		return(i_ViolationCount);
+
+	}
+
+
+	//Private Function 1404
+	int GraphColoring::CheckVertexColoring(string s_GraphColoringVariant)
+	{
+		if(m_s_VertexColoringVariant.compare(s_GraphColoringVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexColoringVariant.compare("ALL") != 0)
+		{
+			m_s_VertexColoringVariant = s_GraphColoringVariant;
+		}
+
+		if(m_s_VertexOrderingVariant.empty())
+		{
+			NaturalOrdering();
+		}
+
+		return(_FALSE);
+	}
+
+
+	//Private Function 1405
+	int GraphColoring::CalculateVertexColorClasses()
+	{
+		if(m_s_VertexColoringVariant.empty())
+		{
+			return(_FALSE);
+		}
+
+		int i_TotalVertexColors = STEP_UP(m_i_VertexColorCount);
+
+		m_vi_VertexColorFrequency.clear();
+		m_vi_VertexColorFrequency.resize((unsigned) i_TotalVertexColors, _FALSE);
+
+		int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(int i = 0; i < i_VertexCount; i++)
+		{
+			m_vi_VertexColorFrequency[m_vi_VertexColors[i]]++;
+		}
+
+		for(int i = 0; i < i_TotalVertexColors; i++)
+		{
+			if(m_i_LargestColorClassSize < m_vi_VertexColorFrequency[i])
+			{
+				m_i_LargestColorClass = i;
+
+				m_i_LargestColorClassSize = m_vi_VertexColorFrequency[i];
+
+			}
+
+			if(m_i_SmallestColorClassSize == _UNKNOWN)
+			{
+				m_i_SmallestColorClass = i;
+
+				m_i_SmallestColorClassSize = m_vi_VertexColorFrequency[i];
+			}
+			else
+			if(m_i_SmallestColorClassSize > m_vi_VertexColorFrequency[i])
+			{
+				m_i_SmallestColorClass = i;
+
+				m_i_SmallestColorClassSize = m_vi_VertexColorFrequency[i];
+			}
+		}
+
+		m_d_AverageColorClassSize = i_TotalVertexColors / i_VertexCount;
+
+		return(_TRUE);
+	}
+
+
+	//Public Constructor 1451
+	GraphColoring::GraphColoring() : GraphOrdering()
+	{
+		Clear();
+
+		Seed_init();
+	}
+
+
+	//Public Destructor 1452
+	GraphColoring::~GraphColoring()
+	{
+		Clear();
+
+		Seed_reset();
+	}
+
+	//Virtual Function 1453
+	void GraphColoring::Clear()
+	{
+		GraphOrdering::Clear();
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_LargestColorClass = _UNKNOWN;
+		m_i_SmallestColorClass = _UNKNOWN;
+
+		m_i_LargestColorClassSize = _UNKNOWN;
+		m_i_SmallestColorClassSize = _UNKNOWN;
+
+		m_d_AverageColorClassSize = _UNKNOWN;
+
+		m_i_ColoringUnits = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_VertexColors.clear();
+
+		m_vi_VertexColorFrequency.clear();
+
+
+		return;
+	}
+
+	void GraphColoring::ClearColoringONLY()
+	{
+		m_i_VertexColorCount = _UNKNOWN;
+
+		m_i_LargestColorClass = _UNKNOWN;
+		m_i_SmallestColorClass = _UNKNOWN;
+
+		m_i_LargestColorClassSize = _UNKNOWN;
+		m_i_SmallestColorClassSize = _UNKNOWN;
+
+		m_d_AverageColorClassSize = _UNKNOWN;
+
+		m_i_ColoringUnits = _UNKNOWN;
+
+		m_d_ColoringTime = _UNKNOWN;
+		m_d_CheckingTime = _UNKNOWN;
+
+		m_s_VertexColoringVariant.clear();
+
+		m_vi_VertexColors.clear();
+
+		m_vi_VertexColorFrequency.clear();
+
+		return;
+	}
+
+	//Public Function 1454
+	int GraphColoring::DistanceOneColoring()
+	{
+		/*
+                if(CheckVertexColoring("DISTANCE ONE"))
+		{
+			return(_TRUE);
+		}
+                */
+
+		int i, j;
+
+		int i_PresentVertex;
+
+		int i_VertexCount;
+
+		vector<int> vi_CandidateColors;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1454 | Distance One Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		return(_TRUE);
+
+	}
+
+
+	//Public Function 1455
+	int GraphColoring::DistanceTwoColoring()
+	{
+		/*
+                 if(CheckVertexColoring("DISTANCE TWO"))
+		{
+			return(_TRUE);
+		}
+                */
+
+		int i, j, k;
+
+		int i_PresentVertex;
+
+		int i_VertexCount;
+
+		vector<int> vi_CandidateColors;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1455 | Distance Two Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+/*
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+				vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+//*/
+				if(m_vi_VertexColors[m_vi_Edges[j]] != _UNKNOWN) vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					//is this "if" statement really necessary? because the i_PresentVertex is not colored anyway
+					// say it another way, the second if statement will take care of the i_PresentVertex
+/*
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+//*/
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] != _UNKNOWN)
+					{
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+					}
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1456
+	int GraphColoring::NaiveStarColoring()
+	{
+		//if(CheckVertexColoring("NAIVE STAR"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k, l;
+
+		int i_PresentVertex;
+
+		int i_VertexCount;
+
+		vector<int> vi_CandidateColors;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+		cout<<"DEBUG 1456 | Naive Star Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] != _UNKNOWN)
+				{
+					vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+					{
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+					}
+					else
+					{
+						for(l=m_vi_Vertices[m_vi_Edges[k]]; l<m_vi_Vertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if(m_vi_Edges[l] == m_vi_Edges[j])
+							{
+								continue;
+							}
+
+							if(m_vi_VertexColors[m_vi_Edges[l]] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							if(m_vi_VertexColors[m_vi_Edges[l]] == m_vi_VertexColors[m_vi_Edges[j]])
+							{
+								vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+								break;
+							}
+						}
+					}
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		return(_TRUE);
+
+	}
+
+	//Public Function 1457
+	int GraphColoring::RestrictedStarColoring()
+	{
+		//if(CheckVertexColoring("RESTRICTED STAR"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k;
+
+		int i_PresentVertex;
+
+		int i_VertexCount;
+
+		vector<int> vi_CandidateColors;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1457 | Restricted Star Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] != _UNKNOWN)
+				{
+					vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+					{
+						//mark as forbidden
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+					}
+					else
+					if(m_vi_VertexColors[m_vi_Edges[k]] < m_vi_VertexColors[m_vi_Edges[j]])
+					{
+						//mark as forbidden
+						 vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+					}
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		return(_TRUE);
+
+	}
+
+	int GraphColoring::PrintVertexColorCombination(map <int, int >* VertexColorCombination) {
+		cout<<"PrintVertexColorCombination"<<endl;
+		map< int, int>::iterator mii_iter;
+		mii_iter = (*VertexColorCombination).begin();
+		for(;mii_iter != (*VertexColorCombination).end(); mii_iter++) {
+			cout<<"\t c "<<mii_iter->first<<": ";
+
+			if( mii_iter->second > -1) {
+				cout<<" NO hub, connect to v "<<mii_iter->second<<" c "<<m_vi_VertexColors[mii_iter->second];
+			}
+			else if ( mii_iter->second == -1) {
+				cout<<" HUB";
+			}
+			else { // (*itr)[iii].second < -1
+				cout<<" LEAF of hub v "<<-(mii_iter->second+2) <<" c "<<m_vi_VertexColors[-(mii_iter->second+2)];
+			}
+			cout<<endl;
+
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintPotentialHub(map< int, int> *PotentialHub_Private, int i_thread_num, pair<int, int> pii_ColorCombination) {
+		cout<<"PrintPotentialHub - Star collection of combination "<< pii_ColorCombination.first << " "<< pii_ColorCombination.second <<endl;
+		map< int, int>::iterator mii_iter;
+		mii_iter = PotentialHub_Private[i_thread_num].begin();
+		for(;mii_iter != PotentialHub_Private[i_thread_num].end(); mii_iter++) {
+			cout<<"\t v "<<mii_iter->first<<" c "<<m_vi_VertexColors[mii_iter->first]<<":";
+
+			if( mii_iter->second > -1) {
+				cout<<" NO hub, connect to v "<<mii_iter->second<<" c "<<m_vi_VertexColors[mii_iter->second];
+			}
+			else if ( mii_iter->second == -1) {
+				cout<<" HUB";
+			}
+			else { // (*itr)[iii].second < -1
+				cout<<" LEAF of hub v "<<-(mii_iter->second+2) <<" c "<<m_vi_VertexColors[-(mii_iter->second+2)];
+			}
+			cout<<endl;
+
+		}
+		return (_TRUE);
+	}
+
+
+	// !!! later on, remove the codes that check for conflicts (because we assume no conflict) => make this function run faster)
+	int GraphColoring::BuildStarFromColorCombination_forChecking(int i_Mode, int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+							  map< int, int> * PotentialHub_Private) {
+		map< pair<int, int>, Colors2Edge_Value, lt_pii >::iterator mpii_iter;
+		map< int, int>::iterator mii_iter;
+		int i_PotentialHub=0;
+		int i_ConflictVertex=-1;
+		bool b_isConflict=false;
+		// reset PotentialHub_Private;
+		PotentialHub_Private[i_thread_num].clear();
+		for(int i= 0; i<i_MaxNumThreads; i++) {
+			mpii_iter = Colors2Edge_Private[i].find(pii_ColorCombination);
+			if(mpii_iter != Colors2Edge_Private[i].end()) { //Colors2Edge_Private[i] contains the color combination
+				vector<int> vi_ConflictedEdgeIndices;
+				vector< pair<int, int> >* vpii_EdgesPtr = &(mpii_iter->second.value);
+				pair<int, int> pii_Edge;
+				// now start counting the appearance of vertices and detect conflict
+				for(int j=0; j<(int) vpii_EdgesPtr->size(); j++  ) {
+					pii_Edge = (*vpii_EdgesPtr)[j];
+#ifdef COLPACK_DEBUG
+					cout<<"\t Looking at "<<pii_Edge.first<<"-"<<pii_Edge.second;
+#endif
+					i_PotentialHub=0;
+					b_isConflict=false;
+					//check and see if either end of the edge could be a potential hub
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+							//pii_Edge.first is a potential hub
+							i_PotentialHub += 1;
+						}
+						else {
+							b_isConflict=true;
+							i_ConflictVertex=pii_Edge.second;
+						}
+					}
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+						//pii_Edge.second is a potential hub
+							i_PotentialHub += 2;
+						}
+						else {
+							b_isConflict=true;
+							i_ConflictVertex=pii_Edge.first;
+						}
+					}
+
+					if(i_PotentialHub == 3 || b_isConflict) { // pii_Edge.first and pii_Edge.second are both potential hubs || conflict has been detected
+						CoutLock::set();
+						{
+							//Detect conflict
+							cerr<<endl<<" !!! conflict detected in BuildStarFromColorCombination_forChecking()"<<endl;
+							cout<<"\t i_PotentialHub="<<i_PotentialHub<<endl;
+							cout<<"\t b_isConflict="<<b_isConflict<<endl;
+							if(!b_isConflict) i_ConflictVertex=-2; // signal that both ends are Potential Hubs
+							cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+							cout<<"\t Looking at "<<pii_Edge.first<<"(color "<< m_vi_VertexColors[pii_Edge.first]<<")-"<<pii_Edge.second<<"(color "<< m_vi_VertexColors[pii_Edge.second]<<") "<<endl;
+							//PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination, 100);
+							PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination);
+							PrintPotentialHub(PotentialHub_Private, i_thread_num, pii_ColorCombination);
+
+							map< int, map<int,bool> > *graph = new map< int, map<int,bool> >;
+							map<int, bool> *mib_FilterByColors = new map<int, bool>;
+							{
+								(*mib_FilterByColors)[m_vi_VertexColors[pii_Edge.first]] = true;
+								(*mib_FilterByColors)[m_vi_VertexColors[pii_Edge.second]] = true;
+
+							}
+							//BuildSubGraph(graph, pii_Edge.first, 4, mib_FilterByColors);
+							BuildColorsSubGraph(graph,mib_FilterByColors);
+							vector<int> vi_VertexColors;
+							GetVertexColors(vi_VertexColors);
+							displayGraph(graph, &vi_VertexColors, true, FDP);
+							delete graph;
+							delete mib_FilterByColors;
+							//Pause();
+
+#if COLPACK_DEBUG_LEVEL	> 100
+							cout<<" FAILED"<<endl;
+							//fout.close();
+#endif
+							if(i_Mode==1) {
+								CoutLock::unset();
+								//cout<<"IN BuildStarFromColorCombination_forChecking i_ConflictVertex="<<i_ConflictVertex<<endl;
+								//Pause();
+								return i_ConflictVertex;
+							}
+							else if(i_Mode==0) {
+								Pause();
+							}
+						}
+						CoutLock::unset();
+						continue;
+					}
+					else if(i_PotentialHub == 1) { //only pii_Edge.first is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.first vertex as hub and (the other connected vertex + pii_Edge.second) as a leaf
+							PotentialHub_Private[i_thread_num][PotentialHub_Private[i_thread_num][pii_Edge.first] ] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.second as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+						}
+					}
+					else if(i_PotentialHub == 2) { //only pii_Edge.second is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.second vertex as hub and (the other connected vertex + pii_Edge.first) as a leaf
+							PotentialHub_Private[i_thread_num][ PotentialHub_Private[i_thread_num][pii_Edge.second] ] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.first as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+						}
+					}
+					else { // Both end of the vertices are seen for the first time => make them potential hubs
+						PotentialHub_Private[i_thread_num][pii_Edge.second] = pii_Edge.first;
+						PotentialHub_Private[i_thread_num][pii_Edge.first] = pii_Edge.second;
+					}
+#ifdef COLPACK_DEBUG
+					cout<<" PASSED"<<endl;
+#endif
+
+				}
+			}
+		}
+
+		//cout<<"IN BuildStarFromColorCombination_forChecking i_ConflictVertex="<<-1<<endl;
+		return -1;
+	}
+
+	int GraphColoring::CheckStarColoring_OMP(int i_Mode, pair<int,int> *pii_ConflictColorCombination) {
+
+		int i_MaxNumThreads;
+#ifdef _OPENMP
+		i_MaxNumThreads = omp_get_max_threads();
+#else
+		i_MaxNumThreads = 1;
+#endif
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		int* i_ConflictVertex= new int[i_MaxNumThreads];
+		for(int i=0; i<i_MaxNumThreads;i++) i_ConflictVertex[i] = -1;
+		map< int, int> * PotentialHub_Private = new map< int, int> [i_MaxNumThreads];
+
+#ifdef COLPACK_DEBUG
+		cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+#endif
+
+		// Threads go through all edges and put each edge into a 2-color group
+		i_ProcessedEdgeCount=0;
+		map< pair<int, int>, Colors2Edge_Value, lt_pii> *Colors2Edge_Private = new map< pair<int, int>, Colors2Edge_Value, lt_pii> [i_MaxNumThreads]; // map 2-color combination to edges that have those 2 colors
+
+		bool b_Stop = false;
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) shared(i_ConflictVertex, i_VertexCount, Colors2Edge_Private, cout , i_MaxNumThreads, i_Mode, b_Stop)
+#endif
+		for(int i=0; i<i_VertexCount; i++) {
+			if(b_Stop) continue;
+			if( m_vi_VertexColors[i] == _UNKNOWN) continue;
+			int i_thread_num;
+#ifdef _OPENMP
+			i_thread_num = omp_get_thread_num();
+#else
+			i_thread_num = 0;
+#endif
+			pair<int, int> pii_ColorCombination;
+			pair<int, int> pii_Edge;
+			for(int j=m_vi_Vertices[i]; j<m_vi_Vertices[i+1]; j++) {
+				if(b_Stop) break;
+				if(i < m_vi_Edges[j]) {
+					if(m_vi_VertexColors[ m_vi_Edges[j] ] == _UNKNOWN ) continue;
+					pii_Edge.first = i;
+					pii_Edge.second = m_vi_Edges[j];
+					//#pragma omp critical
+					//{i_ProcessedEdgeCount++;}
+
+					if(m_vi_VertexColors[i] < m_vi_VertexColors[ m_vi_Edges[j] ]) {
+						pii_ColorCombination.first = m_vi_VertexColors[i];
+						pii_ColorCombination.second = m_vi_VertexColors[m_vi_Edges[j]];
+
+						Colors2Edge_Private[i_thread_num][pii_ColorCombination].value.push_back(pii_Edge);
+					}
+					else if ( m_vi_VertexColors[i] > m_vi_VertexColors[ m_vi_Edges[j] ] ) {
+						pii_ColorCombination.second = m_vi_VertexColors[i];
+						pii_ColorCombination.first = m_vi_VertexColors[m_vi_Edges[j]];
+
+						Colors2Edge_Private[i_thread_num][pii_ColorCombination].value.push_back(pii_Edge);
+					}
+					else { //m_vi_VertexColors[i] == m_vi_VertexColors[ m_vi_Edges[j] ]
+						// conflict found!
+						CoutLock::set();
+						{
+							//Detect conflict
+							cout<<endl<<" !!! conflict detected in CheckStarColoring_OMP()"<<endl;
+							i_ConflictVertex[i_thread_num] = i;
+							cout<<"m_vi_VertexColors[i] == m_vi_VertexColors[ m_vi_Edges[j] ]"<<endl;
+							cout<<"\t m_vi_VertexColors["<<i<<"]="<<m_vi_VertexColors[i]<<endl;
+							cout<<"\t m_vi_VertexColors["<< m_vi_Edges[j]<<"]="<<m_vi_VertexColors[ m_vi_Edges[j]]<<endl;
+							cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+							cout<<"\t Looking at "<<pii_Edge.first<<"(color "<< m_vi_VertexColors[pii_Edge.first]<<")-"<<pii_Edge.second<<"(color "<< m_vi_VertexColors[pii_Edge.second]<<") "<<endl;
+							//PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination, 100);
+							PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination);
+
+#if COLPACK_DEBUG_LEVEL	> 100
+							cout<<" FAILED"<<endl;
+							//fout.close();
+#endif
+							if(i_Mode==1) {
+								CoutLock::unset();
+								b_Stop = true;
+							}
+							else if(i_Mode==0) {
+								Pause();
+							}
+						}
+						CoutLock::unset();
+					}
+				}
+			}
+		}
+		if(b_Stop) {
+			for(int i=0; i<i_MaxNumThreads;i++) {
+				if( i_ConflictVertex[i]!=-1) {
+					int i_tmp = i_ConflictVertex[i];
+					delete[] Colors2Edge_Private;
+					delete[] i_ConflictVertex;
+					return i_tmp;
+				}
+			}
+			delete[] Colors2Edge_Private;
+			delete[] i_ConflictVertex;
+			return -1;
+		}
+
+		/* Each thread will goes through 2-color combination, attemp to build stars (assume that there is no conflict edges)
+		*/
+		for(int i=0; i<i_MaxNumThreads; i++) {
+			if(b_Stop) break;
+
+#ifdef _OPENMP
+			#pragma omp parallel default(none) firstprivate(i) shared(pii_ConflictColorCombination, i_ConflictVertex, cout, i_VertexCount, Colors2Edge_Private, PotentialHub_Private, i_MaxNumThreads, b_Stop, i_Mode)
+#endif
+			for(map< pair<int, int>, Colors2Edge_Value, lt_pii >::iterator iter = Colors2Edge_Private[i].begin(); iter != Colors2Edge_Private[i].end() ; iter++) {
+#ifdef _OPENMP	
+                                #pragma omp single nowait
+#endif
+				{
+					if(iter->second.visited == false && !b_Stop) {
+						iter->second.visited=true;
+						// mark the same color combination in other Colors2Edge_Private[] as visited so that a thread can freely work on this color combination in all Colors2Edge_Private[]
+						for(int ii = i; ii<i_MaxNumThreads;ii++) {
+							//see if the same combination exists in Colors2Edge_Private[ii]
+							map< pair<int, int>, Colors2Edge_Value, lt_pii >::iterator iter2 = Colors2Edge_Private[ii].find(iter->first);
+							if(iter2!=Colors2Edge_Private[ii].end()) { // if the combination exists, we mark it as visited
+								iter2->second.visited = true;
+							}
+						}
+
+						int i_thread_num;
+#ifdef _OPENMP
+						i_thread_num = omp_get_thread_num();
+#else
+						i_thread_num = 0;
+#endif
+
+						// now, let a thread works on this combination:
+						//    build stars and identify conflict edges
+						i_ConflictVertex[i_thread_num] = BuildStarFromColorCombination_forChecking(i_Mode, i_MaxNumThreads, i_thread_num, iter->first, Colors2Edge_Private, PotentialHub_Private);
+
+						if(i_ConflictVertex[i_thread_num]  != -1) {
+#ifdef _OPENMP
+#pragma omp critical
+#endif
+							{
+								if(pii_ConflictColorCombination!=NULL) {
+									(*pii_ConflictColorCombination).first = iter->first.first;
+									(*pii_ConflictColorCombination).second = iter->first.second;
+								}
+							}
+							b_Stop = true;
+							cout<<"IN CheckStarColoring_OMP i_ConflictVertex["<< i_thread_num<<"]="<< i_ConflictVertex[i_thread_num] <<endl;
+							//Pause();
+						}
+/*
+#ifdef COLPACK_DEBUG
+						#pragma omp critical
+						{
+							cout<<flush<<"Color combination "<<(iter->first).first<<" "<<(iter->first).second<<endl;
+							PrintVertex2ColorCombination(i_MaxNumThreads, Vertex2ColorCombination_Private);
+							cout<<"\n\n\n\n\n\n\n"<<flush;
+						}
+#endif
+// */
+					}
+				}
+			}
+		}
+		delete[] Colors2Edge_Private;
+		delete[] PotentialHub_Private;
+
+		if(b_Stop) {
+			for(int i=0; i<i_MaxNumThreads;i++) {
+				if( i_ConflictVertex[i]!=-1) {
+					int i_tmp = i_ConflictVertex[i];
+					delete[] i_ConflictVertex;
+					return i_tmp;
+				}
+			}
+		}
+
+
+		delete[] i_ConflictVertex;
+		return -1;
+	}
+
+	// !!! later on, remove the codes that check for conflicts (because we assume no conflict) => make this function run faster)
+	int GraphColoring::BuildStarFromColorCombination(int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+							 map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, map< int, int> * PotentialHub_Private) {
+		//int i_VertexCount = m_vi_Vertices.size() - 1;
+		map< pair<int, int>, Colors2Edge_Value, lt_pii >::iterator mpii_iter;
+		map< int, int>::iterator mii_iter;
+		int i_PotentialHub=0;
+		bool b_isConflict=false;
+		// reset PotentialHub_Private;
+		PotentialHub_Private[i_thread_num].clear();
+
+#ifdef COLPACK_DEBUG
+		cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+#endif
+
+		for(int i= 0; i<i_MaxNumThreads; i++) {
+			mpii_iter = Colors2Edge_Private[i].find(pii_ColorCombination);
+			if(mpii_iter != Colors2Edge_Private[i].end()) { //Colors2Edge_Private[i] contains the color combination
+				vector<int> vi_ConflictedEdgeIndices;
+				vector< pair<int, int> >* vpii_EdgesPtr = &(mpii_iter->second.value);
+				pair<int, int> pii_Edge;
+				// now start counting the appearance of vertices and detect conflict
+				for(int j=0; j<(int) vpii_EdgesPtr->size(); j++  ) {
+					pii_Edge = (*vpii_EdgesPtr)[j];
+#ifdef COLPACK_DEBUG
+					cout<<"\t Looking at "<<pii_Edge.first<<"-"<<pii_Edge.second;
+#endif
+					i_PotentialHub=0;
+					b_isConflict=false;
+					//check and see if either end of the edge could be a potential hub
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+							//pii_Edge.first is a potential hub
+							i_PotentialHub += 1;
+						}
+						else {
+							b_isConflict=true;
+						}
+					}
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+						//pii_Edge.second is a potential hub
+							i_PotentialHub += 2;
+						}
+						else {
+							b_isConflict=true;
+						}
+					}
+
+					if(i_PotentialHub == 3 || b_isConflict) { // pii_Edge.first and pii_Edge.second are both potential hubs || conflict has been detected => add this edge into ConflictedEdges_Private
+						CoutLock::set();
+						{
+							//Detect conflict
+							cerr<<endl<<" !!! conflict detected in BuildStarFromColorCombination()"<<endl;
+							cout<<"\t i_PotentialHub="<<i_PotentialHub<<endl;
+							cout<<"\t b_isConflict="<<b_isConflict<<endl;
+							cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+							cout<<"\t Looking at "<<pii_Edge.first<<"(color "<< m_vi_VertexColors[pii_Edge.first]<<")-"<<pii_Edge.second<<"(color "<< m_vi_VertexColors[pii_Edge.second]<<") "<<endl;
+							PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination, 100);
+							PrintPotentialHub(PotentialHub_Private, i_thread_num, pii_ColorCombination);
+
+#if COLPACK_DEBUG_LEVEL	> 100
+							cout<<" FAILED"<<endl;
+							//fout.close();
+#endif
+							Pause();
+						}
+						CoutLock::unset();
+						continue;
+					}
+					else if(i_PotentialHub == 1) { //only pii_Edge.first is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.first vertex as hub and (the other connected vertex + pii_Edge.second) as a leaf
+							PotentialHub_Private[i_thread_num][PotentialHub_Private[i_thread_num][pii_Edge.first] ] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.second as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+						}
+					}
+					else if(i_PotentialHub == 2) { //only pii_Edge.second is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.second vertex as hub and (the other connected vertex + pii_Edge.first) as a leaf
+							PotentialHub_Private[i_thread_num][ PotentialHub_Private[i_thread_num][pii_Edge.second] ] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.first as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+						}
+					}
+					else { // Both end of the vertices are seen for the first time => make them potential hubs
+						PotentialHub_Private[i_thread_num][pii_Edge.second] = pii_Edge.first;
+						PotentialHub_Private[i_thread_num][pii_Edge.first] = pii_Edge.second;
+					}
+#ifdef COLPACK_DEBUG
+					cout<<" PASSED"<<endl;
+#endif
+
+				}
+			}
+		}
+
+		//Make each vertex remember this combination and whether or not it is a leaf in this combination
+		int i_TheOtherColor = 0;
+		pair<int, int> pii_pair;
+		mii_iter = PotentialHub_Private[i_thread_num].begin();
+		for(;mii_iter != PotentialHub_Private[i_thread_num].end(); mii_iter++) {
+			if(m_vi_VertexColors[mii_iter->first] == pii_ColorCombination.first) i_TheOtherColor = pii_ColorCombination.second;
+			else i_TheOtherColor = pii_ColorCombination.first;
+			pii_pair.first = i_TheOtherColor;
+			pii_pair.second = mii_iter->second; // if pii_pair.second < -1, then mii_iter->first is a leaf and its hub can be calculated as [-(pii_pair.second+2)]
+			Vertex2ColorCombination_Private[i_thread_num][ mii_iter->first ].push_back(pii_pair);
+		}
+		return (_TRUE);
+	}
+
+
+	/** This function will go through 2-color combination, attemp to build stars and identify conflict edges.
+	 * Conflict edges will be pushed into (thread private) ConflictedEdges. ConflictCount of each vertex will be increased accordingly
+	 */
+	int GraphColoring::DetectConflictInColorCombination(int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+					     map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, map< int, int> * PotentialHub_Private, vector< pair<int, int> >* ConflictedEdges_Private, vector<int>* ConflictCount_Private) {
+		//int i_VertexCount = m_vi_Vertices.size() - 1;
+		map< pair<int, int>, Colors2Edge_Value, lt_pii >::iterator mpii_iter;
+		map< int, int>::iterator mii_iter;
+		int i_PotentialHub=0;
+		bool b_isConflict=false;
+		// reset PotentialHub_Private;
+		PotentialHub_Private[i_thread_num].clear();
+
+		// !!! consider remove AppearanceCount_Private (if not used)
+		//reset AppearanceCount_Private[i_thread_num]
+		//for(int i=0; i<i_VertexCount;i++) AppearanceCount_Private[i_thread_num][i] = 0;
+
+#ifdef COLPACK_DEBUG
+		cout<<"Color combination "<<pii_ColorCombination.first<<" "<<pii_ColorCombination.second<<endl;
+		//cout<<"i_StartingIndex="<<i_StartingIndex<<endl;
+#endif
+
+		// Now count the appearance of each vertex in the star collection
+		// Because we suppose to have a collection of stars, with any edge, only one vertex can have the count > 1. This property is used to detect conflict
+		for(int i= 0; i<i_MaxNumThreads; i++) {
+			mpii_iter = Colors2Edge_Private[i].find(pii_ColorCombination);
+			if(mpii_iter != Colors2Edge_Private[i].end()) { //Colors2Edge_Private[i] contains the color combination
+				//vector<int> vi_ConflictedEdgeIndices;
+				vector< pair<int, int> >* vpii_EdgesPtr = &(mpii_iter->second.value);
+
+				pair<int, int> pii_Edge;
+				// now start counting the appearance of vertices and detect conflict
+				for(int j=0; j<(int) vpii_EdgesPtr->size(); j++  ) {
+					pii_Edge = (*vpii_EdgesPtr)[j];
+					//#pragma omp critical
+					//{i_ProcessedEdgeCount++;}
+#ifdef COLPACK_DEBUG
+					//if(pii_ColorCombination.first==1 && pii_ColorCombination.second==2 && pii_Edge.first==1 && pii_Edge.second==3) cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
+					cout<<"\t Looking at "<<pii_Edge.first<<"-"<<pii_Edge.second<<endl<<flush;
+#endif
+					i_PotentialHub=0;
+					b_isConflict=false;
+					//check and see if either end of the edge could be a potential hub
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+							//pii_Edge.first is a potential hub
+							i_PotentialHub += 1;
+						}
+						else {
+							b_isConflict=true;
+						}
+					}
+					mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+					if(mii_iter != PotentialHub_Private[i_thread_num].end()) {
+						if( mii_iter->second >=-1) {
+						//pii_Edge.second is a potential hub
+							i_PotentialHub += 2;
+						}
+						else {
+							b_isConflict=true;
+						}
+					}
+
+					if(i_PotentialHub == 3 || b_isConflict) { // pii_Edge.first and pii_Edge.second are both potential hubs || conflict has been detected => add this edge into ConflictedEdges_Private
+						//Detect conflict
+						ConflictedEdges_Private[i_thread_num].push_back(pii_Edge);
+						//vi_ConflictedEdgeIndices.push_back(j);
+						ConflictCount_Private[i_thread_num][pii_Edge.first]++;
+						ConflictCount_Private[i_thread_num][pii_Edge.second]++;
+#if COLPACK_DEBUG_LEVEL	> 100
+						cout<<"\t\t"<<pii_Edge.first<<"-"<<pii_Edge.second<<" FAILED"<<endl<<flush;
+						#pragma omp critical
+						{
+							fout<<"\t\t"<<pii_Edge.first<<"-"<<pii_Edge.second<<" FAILED"<<endl;
+						}
+#endif
+						continue;
+					}
+					else if(i_PotentialHub == 1) { //only pii_Edge.first is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.first);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.first vertex as hub and (the other connected vertex + pii_Edge.second) as a leaf
+							PotentialHub_Private[i_thread_num][PotentialHub_Private[i_thread_num][pii_Edge.first] ] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.second as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -(pii_Edge.first+2);
+						}
+					}
+					else if(i_PotentialHub == 2) { //only pii_Edge.second is a potential hub
+						mii_iter = PotentialHub_Private[i_thread_num].find(pii_Edge.second);
+						if(mii_iter->second >=0) { // This is a single edge hub => mark the pii_Edge.second vertex as hub and (the other connected vertex + pii_Edge.first) as a leaf
+							PotentialHub_Private[i_thread_num][ PotentialHub_Private[i_thread_num][pii_Edge.second] ] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+							PotentialHub_Private[i_thread_num][pii_Edge.second] = -1;
+						}
+						else { // mii_iter->second = -1 : This is a hub with more than one edge => mark pii_Edge.first as a leaf
+							PotentialHub_Private[i_thread_num][pii_Edge.first] = -(pii_Edge.second+2);
+						}
+					}
+					else { // Both end of the vertices are seen for the first time => make them potential hubs
+						PotentialHub_Private[i_thread_num][pii_Edge.second] = pii_Edge.first;
+						PotentialHub_Private[i_thread_num][pii_Edge.first] = pii_Edge.second;
+					}
+#if COLPACK_DEBUG_LEVEL	> 100
+					cout<<"\t\t"<<pii_Edge.first<<"-"<<pii_Edge.second<<" PASSED"<<endl;
+					#pragma omp critical
+					{
+						fout<<"\t\t"<<pii_Edge.first<<"-"<<pii_Edge.second<<" PASSED"<<endl;
+					}
+#endif
+
+					/*
+					if( (pii_Edge.first==18310 && pii_Edge.second==18342) || (pii_Edge.first==11413 && pii_Edge.second==11506)
+					    || (pii_Edge.first==117989 && pii_Edge.second==118105) || (pii_Edge.first==46761 && pii_Edge.second==46798)) {
+						#pragma omp critical
+						{
+							cout<<"\t\t"<<pii_Edge.first<<"-"<<pii_Edge.second<<" PASSED"<<endl;
+							PrintColorCombination(Colors2Edge_Private, i_MaxNumThreads, pii_ColorCombination, 100);
+							PrintPotentialHub(PotentialHub_Private, i_thread_num, pii_ColorCombination);
+							Pause();
+						}
+					}
+					//*/
+
+					/* !!! consider remove
+					if(AppearanceCount_Private[i_thread_num][pii_Edge.first]>0 && AppearanceCount_Private[i_thread_num][pii_Edge.second]>0) {
+						//Detect conflict
+						ConflictedEdges_Private[i_thread_num].push_back(pii_Edge);
+						ConflictCount_Private[i_thread_num][pii_Edge.first]++;
+						ConflictCount_Private[i_thread_num][pii_Edge.second]++;
+						continue;
+					}
+					AppearanceCount_Private[i_thread_num][pii_Edge.first]++;
+					AppearanceCount_Private[i_thread_num][pii_Edge.second]++;
+					//*/
+				}
+
+				/*
+
+				//Remove conflict edges out of this ColorCombination
+				for(int j=vi_ConflictedEdgeIndices.size()-1; j>=0;j--) {
+					if(vi_ConflictedEdgeIndices[j] != (vpii_EdgesPtr->size()-1)) {
+						(*vpii_EdgesPtr)[ vi_ConflictedEdgeIndices[j] ] = (*vpii_EdgesPtr)[ vpii_EdgesPtr->size()-1 ];
+					}
+					vpii_EdgesPtr->pop_back();
+				}
+
+				//Make each vertex remember this combination and whether or not it is a leaf in this combination
+				int i_TheOtherColor = 0;
+				pair<int, int> pii_pair;
+				mii_iter = PotentialHub_Private[i_thread_num].begin();
+				for(;mii_iter != PotentialHub_Private[i_thread_num].end(); mii_iter++) {
+					if(m_vi_VertexColors[mii_iter->first] == pii_ColorCombination.first) i_TheOtherColor = pii_ColorCombination.second;
+					else i_TheOtherColor = pii_ColorCombination.first;
+					pii_pair.first = i_TheOtherColor;
+					pii_pair.second = mii_iter->second; // if pii_pair.second < -1, then mii_iter->first is a leaf and its hub can be calculated as [-(pii_pair.second+2)]
+					Vertex2ColorCombination_Private[i_thread_num][ mii_iter->first ].push_back(pii_pair);
+				}
+				//*/
+			}
+		}
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintColorCombination(map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private, int i_MaxNumThreads, pair<int, int> pii_ColorCombination, int i_MaxElementsOfCombination) {
+		cout<<"PrintColorCombination "<<pii_ColorCombination.first<<"-"<<pii_ColorCombination.second<<": "<<endl;
+		int i_ElementCount = 0, i_TotalElementsOfCombination=0;
+		for(int i=0; i< i_MaxNumThreads; i++) {
+			map< pair<int, int>, Colors2Edge_Value , lt_pii>::iterator itr = Colors2Edge_Private[i].find(pii_ColorCombination);
+			if(itr != Colors2Edge_Private[i].end()) {
+				i_TotalElementsOfCombination += (itr->second.value).size();
+			}
+		}
+		for(int i=0; i< i_MaxNumThreads; i++) {
+			map< pair<int, int>, Colors2Edge_Value , lt_pii>::iterator itr = Colors2Edge_Private[i].find(pii_ColorCombination);
+			if(itr != Colors2Edge_Private[i].end()) {
+				cout<<"(thread "<<i<<") ";
+				vector< pair<int, int> > *Edges = &(itr->second.value);
+				for(int ii=0; ii<(int) (*Edges).size(); ii++) {
+					cout<<(*Edges)[ii].first<<"-"<<(*Edges)[ii].second<<"; ";
+					i_ElementCount++;
+					if( i_ElementCount >= i_MaxElementsOfCombination) {
+						cout<<" MAX #="<<i_MaxElementsOfCombination <<" REACHED. Total elements="<<i_TotalElementsOfCombination;
+						break;
+					}
+				}
+				cout<<endl;
+				if( i_ElementCount >= i_MaxElementsOfCombination) break;
+			}
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintAllColorCombination(map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private, int i_MaxNumThreads, int i_MaxNumOfCombination, int i_MaxElementsOfCombination) {
+		cout<<"PrintAllColorCombination"<<endl;
+		map< pair<int, int>, bool, lt_pii > mpiib_VisitedColorCombination;
+		for(int i=0; i< i_MaxNumThreads; i++) {
+			map< pair<int, int>, Colors2Edge_Value , lt_pii>::iterator itr = Colors2Edge_Private[i].begin();
+
+			for(; itr != Colors2Edge_Private[i].end(); itr++) {
+				if(mpiib_VisitedColorCombination.find(itr->first) == mpiib_VisitedColorCombination.end()) {
+					mpiib_VisitedColorCombination[itr->first] = true;
+					cout<<"Combination "<<itr->first.first<<"-"<<itr->first.second<<": "<<endl;
+					int i_ElementCount = 0;
+					for(int ii=i; ii<i_MaxNumThreads; ii++) {
+						map< pair<int, int>, Colors2Edge_Value , lt_pii>::iterator itr2 = Colors2Edge_Private[ii].find(itr->first);
+						if(itr2 != Colors2Edge_Private[ii].end()) {
+							cout<<"(thread "<<ii<<") ";
+							vector< pair<int, int> > *Edges = &(itr2->second.value);
+							for(int iii=0; iii<(int) (*Edges).size(); iii++) {
+								cout<<(*Edges)[iii].first<<"-"<<(*Edges)[iii].second<<"; ";
+								i_ElementCount++;
+								if( i_ElementCount >= i_MaxElementsOfCombination) break;
+							}
+							if( i_ElementCount >= i_MaxElementsOfCombination) break;
+						}
+					}
+					cout<<endl;
+				}
+				if( (int) mpiib_VisitedColorCombination.size() >= i_MaxNumOfCombination) break;
+			}
+			if((int) mpiib_VisitedColorCombination.size() >= i_MaxNumOfCombination) break;
+		}
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintVertex2ColorCombination(int i_MaxNumThreads, map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private) {
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		map< int, vector< pair<int, int> > >::iterator itr;
+		cout<<"PrintVertex2ColorCombination"<<endl;
+
+		for(int i=0; i<i_VertexCount;i++) {
+			cout<<"\t Vertex "<<i;
+			if(m_vi_VertexColors[i]==_UNKNOWN) {
+				cout<<" color UNKNOWN"<<endl;
+				continue;
+			}
+			else {
+				cout<<" color "<< m_vi_VertexColors[i] <<endl;
+			}
+			for(int ii=0; ii<i_MaxNumThreads;ii++) {
+
+				itr = Vertex2ColorCombination_Private[ii].find(i) ;
+				if(itr !=Vertex2ColorCombination_Private[ii].end()) {
+					cout<<"\t   Thread "<<ii<<" size()="<<itr->second.size()<<endl;
+					for(int iii=0; iii<(int) itr->second.size();iii++) {
+						cout<<"\t\t( Color "<<(itr->second)[iii].first<< ";";
+						if( (itr->second)[iii].second > -1) {
+							cout<<" NO hub, connect to "<<(itr->second)[iii].second;
+						}
+						else if ( (itr->second)[iii].second == -1) {
+							cout<<" HUB";
+						}
+						else { // (*itr)[iii].second < -1
+							cout<<" LEAF of hub "<<-((itr->second)[iii].second+2);
+						}
+						cout<<")"<<endl;
+					}
+				}
+			}
+		}
+		cout<<"DONE PrintVertex2ColorCombination"<<endl;
+
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintConflictEdges(vector< pair<int, int> > *ConflictedEdges_Private, int i_MaxNumThreads) {
+		cout<<"PrintConflictEdges"<<endl;
+		for(int i=0; i<i_MaxNumThreads;i++) {
+			for(int ii=0; ii<(int)ConflictedEdges_Private[i].size();ii++) {
+				cout<<ConflictedEdges_Private[i][ii].first<<"-"<< ConflictedEdges_Private[i][ii].second <<endl;
+			}
+		}
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintConflictCount(vector<int> &ConflictCount) {
+		cout<<"PrintConflictCount"<<endl;
+		for(int i=0; i<(int)ConflictCount.size(); i++) {
+			cout<<"Vertex "<<i<<": "<<ConflictCount[i]<<endl;
+		}
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PickVerticesToBeRecolored(int i_MaxNumThreads, vector< pair<int, int> > *ConflictedEdges_Private, vector<int> &ConflictCount) {
+#if COLPACK_DEBUG_LEVEL	> 100
+		fout<<"PickVerticesToBeRecolored ..."<<endl;
+#endif
+#ifdef _OPENMP
+		#pragma omp parallel for schedule(static,1) default(none) shared(cout, ConflictedEdges_Private, ConflictCount, i_MaxNumThreads)
+#endif
+		for(int i=0; i<i_MaxNumThreads; i++) {
+			for(int j=0; j< (int)ConflictedEdges_Private[i].size(); j++) {
+				pair<int, int> pii_Edge = ConflictedEdges_Private[i][j];
+				//before decide which end, remember to check if one end's color is already removed. If this is the case, just skip to the next conflicted edge.
+				if(m_vi_VertexColors[pii_Edge.first] == _UNKNOWN || m_vi_VertexColors[pii_Edge.second] == _UNKNOWN ) continue;
+
+				if(ConflictCount[pii_Edge.first] > ConflictCount[pii_Edge.second]) {
+					m_vi_VertexColors[pii_Edge.first] = _UNKNOWN;
+#if COLPACK_DEBUG_LEVEL	> 100
+					cout<<"\t Pick "<< pii_Edge.first <<endl;
+					#pragma omp critical
+					{
+						fout<<"\t Pick "<<pii_Edge.first<<endl;
+					}
+#endif
+				}
+				else if (ConflictCount[pii_Edge.first] < ConflictCount[pii_Edge.second]) {
+					m_vi_VertexColors[pii_Edge.second] = _UNKNOWN;
+#if COLPACK_DEBUG_LEVEL	> 100
+					cout<<"\t Pick "<< pii_Edge.second <<endl;
+					#pragma omp critical
+					{
+						fout<<"\t Pick "<<pii_Edge.second<<endl;
+					}
+#endif
+				}
+				else { //ConflictCount[pii_Edge.first] == ConflictCount[pii_Edge.second]
+					if(pii_Edge.first < pii_Edge.second) {
+						m_vi_VertexColors[pii_Edge.first] = _UNKNOWN;
+#if COLPACK_DEBUG_LEVEL	> 100
+						cout<<"\t Pick "<< pii_Edge.first <<endl;
+						#pragma omp critical
+						{
+							fout<<"\t Pick "<<pii_Edge.first<<endl;
+						}
+#endif
+					}
+					else {
+						m_vi_VertexColors[pii_Edge.second] = _UNKNOWN;
+#if COLPACK_DEBUG_LEVEL	> 100
+						cout<<"\t Pick "<< pii_Edge.second <<endl;
+						#pragma omp critical
+						{
+							fout<<"\t Pick "<<pii_Edge.second<<endl;
+						}
+#endif
+					}
+				}
+			}
+		}
+		/*
+		bool* ip_VerticesToBeRecolored = new bool[i_VertexCount];
+#ifdef _OPENMP
+		#pragma omp parallel for schedule(static,50) default(none) shared(i_VertexCount, ip_VerticesToBeRecolored)
+#endif
+		for(int i=0; i<i_VertexCount; i++) {
+			ip_VerticesToBeRecolored[i] = false;
+		}
+#ifdef _OPENMP
+		#pragma omp parallel for schedule(static,1) default(none) shared(i_VertexCount, ConflictedEdges_Private, ip_VerticesToBeRecolored, ConflictCount, i_MaxNumThreads)
+#endif
+		for(int i=0; i<i_MaxNumThreads; i++) {
+			for(int j=0; j< ConflictedEdges_Private[i].size(); j++) {
+				pair<int, int> pii_Edge = ConflictedEdges_Private[i][j];
+				if(ConflictCount[pii_Edge.first] > ConflictCount[pii_Edge.second]) {
+					ip_VerticesToBeRecolored[pii_Edge.first] = true;
+				}
+				else if (ConflictCount[pii_Edge.first] < ConflictCount[pii_Edge.second]) {
+					ip_VerticesToBeRecolored[pii_Edge.second] = true;
+				}
+				else { //ConflictCount[pii_Edge.first] == ConflictCount[pii_Edge.second]
+					if(pii_Edge.first < pii_Edge.second) {
+						ip_VerticesToBeRecolored[pii_Edge.first] = true;
+					}
+					else {
+						ip_VerticesToBeRecolored[pii_Edge.second] = true;
+					}
+				}
+			}
+		}
+		int i_TotalVertexToBeRecolored=0;
+#ifdef _OPENMP
+		#pragma omp parallel for schedule(static,50) default(none) shared(i_VertexCount, ip_VerticesToBeRecolored) reduction(+:i_TotalVertexToBeRecolored)
+#endif
+		for(int i=0; i<i_VertexCount; i++) {
+			if(ip_VerticesToBeRecolored[i] == true) i_TotalVertexToBeRecolored = i_TotalVertexToBeRecolored+1;
+		}
+		//*/
+		return (_TRUE);
+	}
+
+	int GraphColoring::BuildVertex2ColorCombination(int i_MaxNumThreads, map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, vector< map <int, int > > *Vertex2ColorCombination) {
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		(*Vertex2ColorCombination).resize(i_VertexCount);
+
+		// Build Vertex2ColorCombination
+#ifdef _OPENMP
+		#pragma omp parallel for default(none) shared(i_VertexCount, Vertex2ColorCombination_Private, Vertex2ColorCombination, i_MaxNumThreads)
+#endif
+		for(int i=0; i<i_VertexCount;i++) {
+			//int i_thread_num;
+#ifdef _OPENMP
+			//i_thread_num = omp_get_thread_num();
+#else
+			//i_thread_num = 0;
+#endif
+			map< int, vector< pair<int, int> > >::iterator iter;
+			for(int ii=0; ii<i_MaxNumThreads;ii++) {
+				iter = Vertex2ColorCombination_Private[ii].find(i);
+				if(iter != Vertex2ColorCombination_Private[ii].end()) {
+					vector< pair<int, int> >* vpii_Ptr = & (iter->second);
+					for(int iii=0; iii< (int) vpii_Ptr->size(); iii++) {
+						(*Vertex2ColorCombination)[i][(*vpii_Ptr)[iii].first] = (*vpii_Ptr)[iii].second;
+					}
+
+				}
+			}
+		}
+
+		// Deallocate memory for Vertex2ColorCombination_Private
+		for(int i=0; i<i_MaxNumThreads;i++) {
+			Vertex2ColorCombination_Private[i].clear();
+		}
+		delete[] Vertex2ColorCombination_Private;
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintD1Colors(map<int, int>* D1Colors, int i_thread_num) {
+		cout<<"PrintD1Colors"<<endl;
+		map<int, int>::iterator mib_itr = D1Colors[i_thread_num].begin();
+		// Note: Theoratically, the locks should have been released in the reverse order.Hope this won't cause any problem
+		for(;mib_itr != D1Colors[i_thread_num].end(); mib_itr++) {
+			cout<<flush<<"\t color "<<mib_itr->first<<"; count "<<mib_itr->second<<endl;
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintForbiddenColors(map<int, bool>* mip_ForbiddenColors,int i_thread_num) {
+		map< int, bool >::iterator itr = mip_ForbiddenColors[i_thread_num].begin();
+		cout<<"PrintForbiddenColors for thread "<<i_thread_num<<": ";
+		for(; itr!= mip_ForbiddenColors[i_thread_num].end(); itr++) {
+			cout<< itr->first<<", ";
+		}
+		cout<<endl;
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintSubGraph(map< int, map<int,bool> > *graph) {
+		cout<<"PrintSubGraph (0-based indexing)"<<endl;
+		map< int, map<int,bool> >::iterator itr = graph->begin();
+		for(; itr != graph->end(); itr++) {
+			cout<<"\t v "<<itr->first<<": ";
+			map<int,bool>::iterator itr2 = (itr->second).begin();
+			for(; itr2 != (itr->second).end(); itr2++) {
+				cout<<" v "<<itr2->first<<";";
+			}
+			cout<<endl;
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintVertexD1NeighborAndColor(int VertexIndex, int excludedVertex) {
+		if(VertexIndex > (int)m_vi_Vertices.size() - 2) {
+			cout<<"Illegal request. VertexIndex is too large. VertexIndex > m_vi_Vertices.size() - 2"<<endl;
+			return _FALSE;
+		}
+		if(VertexIndex < 0) {
+			cout<<"Illegal request. VertexIndex is too small. VertexIndex < 0"<<endl;
+			return _FALSE;
+		}
+		cout<<"Distance-1 neighbors of "<<VertexIndex<<" are (0-based): ";
+		for(int i=m_vi_Vertices[VertexIndex]; i<m_vi_Vertices[STEP_UP(VertexIndex)]; i++) {
+			if( excludedVertex == m_vi_Edges[i]) continue;
+			cout<<"v "<<m_vi_Edges[i]<<" (c "<<m_vi_VertexColors[m_vi_Edges[i]]<<" ); ";
+		}
+		cout<<"( # of edges = "<<m_vi_Vertices[STEP_UP(VertexIndex)] - m_vi_Vertices[VertexIndex]<<")"<<endl;
+
+		return _TRUE;
+	}
+
+	int GraphColoring::FindDistance(int v1, int v2) {
+		cout<<"FindDistance between v "<<v1<<" and v "<<v2<<endl;
+		int i_Distance=0;
+		pair<int,int> pii_tmp;
+		pii_tmp.first = v1; //.first is the vertexID
+		pii_tmp.second = -1; // .second is the parent
+		map<int, int> mib_IncludedVertices;
+
+		// Step *: Run a BFS to get all vertices within  distance-<distance> of i_CenterVertex
+		queue<pair<int,int> > Q;
+		//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+		Q.push(pii_tmp);
+		mib_IncludedVertices[pii_tmp.first] = pii_tmp.second;
+		//cout<<"Q.size()="<<Q.size()<<endl;
+		while(Q.size() > 0 ) {
+			//cout<<"Q.size()="<<Q.size()<<endl;
+			pair<int,int> pii_CurrentVertex;
+			pii_CurrentVertex.first = Q.front().first; //pii_CurrentVertex
+			pii_CurrentVertex.second = Q.front().second; //pii_CurrentVertex
+			//cout<<"CurrentVertex "<< pii_CurrentVertex.first<< " from "<<pii_CurrentVertex.second<<endl;
+
+			for(int i=m_vi_Vertices[pii_CurrentVertex.first]; i < m_vi_Vertices[pii_CurrentVertex.first+1]; i++) {
+				int i_D1Neighbor = m_vi_Edges[i];
+				//cout<<"i_D1Neighbor="<<i_D1Neighbor<<endl;
+
+				if( mib_IncludedVertices.find(i_D1Neighbor) == mib_IncludedVertices.end() //make sure that i_D1Neighbor is not already included
+				) {
+					pii_tmp.first = i_D1Neighbor;
+					pii_tmp.second = pii_CurrentVertex.first;
+					if(i_D1Neighbor == v2) {
+						cout<<"\t"<<pii_tmp.first;
+						while(pii_tmp.second != -1) {
+							pii_tmp.first = pii_tmp.second;
+							cout<<" <= "<<pii_tmp.first;
+							pii_tmp.second = mib_IncludedVertices[pii_tmp.first];
+							i_Distance++;
+						}
+						cout<<endl;
+						cout<< "\tDistance = "<<i_Distance<<endl;
+						return _TRUE;
+					}
+					//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+					Q.push(pii_tmp);
+					mib_IncludedVertices[pii_tmp.first] = pii_tmp.second;
+				}
+			}
+
+			Q.pop();
+		}
+		cout<<"\tDISCONNECTED"<<endl;
+
+		return _FALSE;
+	}
+
+	int GraphColoring::BuildColorsSubGraph(map< int, map<int,bool> > *graph, map<int,bool> *mib_Colors) {
+		cout<<"BuildColorsSubGraph for colors: "<<endl;
+		map<int,bool>::iterator itr= (*mib_Colors).begin();
+		for(;itr != (*mib_Colors).end(); itr++) {
+			cout<<"\t c "<<itr->first<<endl;
+		}
+
+		if(  mib_Colors==NULL) {
+			cout<<"ERR: mib_Colors==NULL"<<endl;
+			return _FALSE;
+		}
+		if(  (*mib_Colors).size()==0) {
+			cout<<"ERR: (*mib_Colors).size()==0"<<endl;
+			return _FALSE;
+		}
+		// Step *: now build a subgraph with my own structure
+		for(int i=0; i<(int)m_vi_Vertices.size()-1;i++) {
+			if((*mib_Colors).find(m_vi_VertexColors[i]) == (*mib_Colors).end()) continue;
+
+			for(int ii=m_vi_Vertices[i]; ii<m_vi_Vertices[i+1];ii++) {
+				int i_D1Neighbor = m_vi_Edges[ii];
+				if(i<=i_D1Neighbor) continue;
+
+				if((*mib_Colors).find(m_vi_VertexColors[i_D1Neighbor]) != (*mib_Colors).end()){
+					(*graph)[i][i_D1Neighbor] = true;
+					(*graph)[i_D1Neighbor][i] = true;
+				}
+
+			}
+
+		}
+
+		return _TRUE;
+	}
+
+	int GraphColoring::BuildSubGraph(map< int, map<int,bool> > *graph, int i_CenterVertex, int distance, map<int, bool> *mib_FilterByColors) {
+		cout<<"BuildSubGraph centered at v "<<i_CenterVertex<<" distance="<<distance<<"... "<<endl;
+		map<int, bool> mib_IncludedVertices;
+		pair<int,int> pii_tmp;
+		pii_tmp.first = i_CenterVertex; //.first is the vertexID
+		pii_tmp.second = 0; // .second is the level/distance
+
+		// Step *: Run a BFS to get all vertices within  distance-<distance> of i_CenterVertex
+		queue<pair<int,int> > Q;
+		//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+		Q.push(pii_tmp);
+		mib_IncludedVertices[pii_tmp.first] = true;
+		//cout<<"Q.size()="<<Q.size()<<endl;
+		while(Q.size() > 0) {
+			pair<int,int> pii_CurrentVertex;
+			pii_CurrentVertex.first = Q.front().first; //pii_CurrentVertex
+			pii_CurrentVertex.second = Q.front().second; //pii_CurrentVertex
+			//cout<<"CurrentVertex "<< pii_CurrentVertex.first<< " l "<<pii_CurrentVertex.second<<endl;
+
+			int i_NexLevel = pii_CurrentVertex.second+1;
+			if(i_NexLevel<=distance) {
+				//cout<<"i_NexLevel<=distance"<<endl;
+				for(int i=m_vi_Vertices[pii_CurrentVertex.first]; i < m_vi_Vertices[pii_CurrentVertex.first+1]; i++) {
+					int i_D1Neighbor = m_vi_Edges[i];
+					//cout<<"i_D1Neighbor="<<i_D1Neighbor<<endl;
+
+					if( mib_IncludedVertices.find(i_D1Neighbor) == mib_IncludedVertices.end() //make sure that i_D1Neighbor is not already included
+					) {
+						pii_tmp.first = i_D1Neighbor;
+						pii_tmp.second = i_NexLevel;
+						//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+						Q.push(pii_tmp);
+						mib_IncludedVertices[pii_tmp.first] = true;
+					}
+				}
+			}
+
+			Q.pop();
+		}
+
+		cout<<" ... "<<endl;
+
+		// Step *: now build a subgraph with my own structure
+		map<int,bool> mib_tmp;
+		for(int i=0; i<(int)m_vi_Vertices.size()-1;i++) {
+			if(mib_IncludedVertices.find(i) == mib_IncludedVertices.end()) continue;
+			(*graph)[i] = mib_tmp; // just to make sure that my graphs will have all vertices (even when the vertex has no edge)
+			if(  mib_FilterByColors==NULL //NOT filter by colors
+				|| ((*mib_FilterByColors).size()>0 && (*mib_FilterByColors).find(m_vi_VertexColors[i])!=(*mib_FilterByColors).end() ) // filter by colors
+			  ) {
+
+				for(int ii=m_vi_Vertices[i]; ii<m_vi_Vertices[i+1];ii++) {
+					int i_D1Neighbor = m_vi_Edges[ii];
+					if(  mib_FilterByColors==NULL //NOT filter by colors
+					      || ((*mib_FilterByColors).size()>0 && (*mib_FilterByColors).find(m_vi_VertexColors[i_D1Neighbor])!=(*mib_FilterByColors).end() ) // filter by colors
+					){
+						if(mib_IncludedVertices.find(i_D1Neighbor) != mib_IncludedVertices.end()){
+							(*graph)[i][i_D1Neighbor] = true;
+						}
+					}
+				}
+			}
+		}
+
+		//PrintSubGraph(graph);
+		//vector<int> vi_VertexColors;
+		//GetVertexColors(vi_VertexColors);
+		//displayGraph(graph, &vi_VertexColors);
+		//Pause();
+
+		cout<<"DONE"<<endl;
+
+		return _TRUE;
+	}
+
+	int GraphColoring::BuildConnectedSubGraph(map< int, map<int,bool> > *graph, int i_CenterVertex, int distance, map<int, bool> *mib_FilterByColors) {
+		cout<<"BuildConnectedSubGraph i_CenterVertex="<<i_CenterVertex<<" distance="<<distance<<"... "<<endl;
+		map<int, bool> mib_IncludedVertices;
+		pair<int,int> pii_tmp;
+		pii_tmp.first = i_CenterVertex; //.first is the vertexID
+		pii_tmp.second = 0; // .second is the level/distance
+
+		// Step *: Run a BFS to get all vertices within  distance-<distance> of i_CenterVertex
+		queue<pair<int,int> > Q;
+		//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+		Q.push(pii_tmp);
+		mib_IncludedVertices[pii_tmp.first] = true;
+		//cout<<"Q.size()="<<Q.size()<<endl;
+		while(Q.size() > 0) {
+			pair<int,int> pii_CurrentVertex;
+			pii_CurrentVertex.first = Q.front().first; //pii_CurrentVertex
+			pii_CurrentVertex.second = Q.front().second; //pii_CurrentVertex
+			//cout<<"CurrentVertex "<< pii_CurrentVertex.first<< " l "<<pii_CurrentVertex.second<<endl;
+
+			int i_NexLevel = pii_CurrentVertex.second+1;
+			if(i_NexLevel<=distance) {
+				//cout<<"i_NexLevel<=distance # of D1 neighbors = "<< m_vi_Vertices[pii_CurrentVertex.first+1] - m_vi_Vertices[pii_CurrentVertex.first] <<endl;
+				for(int i=m_vi_Vertices[pii_CurrentVertex.first]; i < m_vi_Vertices[pii_CurrentVertex.first+1]; i++) {
+					int i_D1Neighbor = m_vi_Edges[i];
+					//cout<<"i_D1Neighbor="<<i_D1Neighbor<<endl;
+
+					if( mib_IncludedVertices.find(i_D1Neighbor) == mib_IncludedVertices.end() //make sure that i_D1Neighbor is not already included
+					      && (  mib_FilterByColors==NULL //NOT filter by colors
+						    || ((*mib_FilterByColors).size()>0 && (*mib_FilterByColors).find(m_vi_VertexColors[i_D1Neighbor])!=(*mib_FilterByColors).end() ) // filter by colors
+						 )
+					) {
+						pii_tmp.first = i_D1Neighbor;
+						pii_tmp.second = i_NexLevel;
+						//cout<<"Push in v "<< pii_tmp.first<< " l "<<pii_tmp.second<<endl;
+						Q.push(pii_tmp);
+						mib_IncludedVertices[pii_tmp.first] = true;
+					}
+				}
+			}
+
+			Q.pop();
+		}
+
+		cout<<" ... "<<endl;
+
+		// Step *: now build a subgraph with my own structure
+		map<int,bool> mib_tmp;
+		for(int i=0; i+1<(int)m_vi_Vertices.size();i++) {
+			if(mib_IncludedVertices.find(i) == mib_IncludedVertices.end()) continue;
+			(*graph)[i] = mib_tmp; // just to make sure that my graphs will have all vertices (even when the vertex has no edge)
+			for(int ii=m_vi_Vertices[i]; ii<m_vi_Vertices[i+1];ii++) {
+				int i_D1Neighbor = m_vi_Edges[ii];
+				if(mib_IncludedVertices.find(i_D1Neighbor) != mib_IncludedVertices.end()){
+					(*graph)[i][i_D1Neighbor] = true;
+				}
+			}
+		}
+
+		//PrintSubGraph(graph);
+		//vector<int> vi_VertexColors;
+		//GetVertexColors(vi_VertexColors);
+		//displayGraph(graph, &vi_VertexColors);
+		//Pause();
+
+		cout<<"DONE"<<endl;
+
+		return _TRUE;
+	}
+
+	int GraphColoring::PrintVertexAndColorAdded(int i_MaxNumThreads, vector< pair<int, int> > *vi_VertexAndColorAdded, int i_LastNEntries) {
+		int i_MaxSize = vi_VertexAndColorAdded[0].size();
+		for(int i=1; i<i_MaxNumThreads;i++) {
+			if(vi_VertexAndColorAdded[i].size()>(size_t)i_MaxSize) i_MaxSize=vi_VertexAndColorAdded[i].size();
+		}
+
+		if(i_LastNEntries>i_MaxSize) i_LastNEntries=i_MaxSize;
+		cout<<"PrintVertexAndColorAdded the last "<< i_LastNEntries<<" entries"<<endl;
+		for(int i=i_MaxSize-i_LastNEntries; i<i_MaxSize;i++) {
+			cout<<"\t "<<setw(7)<<i<<": ";
+			for(int ii=0; ii<i_MaxNumThreads; ii++) {
+				//if( ii< vi_VertexAndColorAdded[i].size() ) {
+					cout<<"(v "<<setw(11)<<vi_VertexAndColorAdded[ii][i].first<<",c "<<setw(11)<<vi_VertexAndColorAdded[ii][i].second<<" )  ";
+				//}
+				//else cout<<setw(32)<<" ";
+			}
+			cout<<endl;
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::BuildForbiddenColors(int i_MaxNumThreads, int i_thread_num, int i_CurrentVertex, map<int, bool>* mip_ForbiddenColors, map<int, int>* D1Colors, vector<  map <int, int > > *Vertex2ColorCombination) {
+			mip_ForbiddenColors[i_thread_num].clear();
+			D1Colors[i_thread_num].clear();
+
+#if COLPACK_DEBUG_LEVEL > 10
+			//cout<<flush<<endl<<"degree of i_CurrentVertex "<<m_vi_Vertices[i_CurrentVertex+1]-m_vi_Vertices[i_CurrentVertex]<<endl;
+#endif
+			// count how many D1 colors are there and mark all of them as forbidden
+			for(int ii=m_vi_Vertices[i_CurrentVertex]; ii<m_vi_Vertices[i_CurrentVertex+1];ii++) {
+				if(m_vi_VertexColors[m_vi_Edges[ii]] != _UNKNOWN) {
+				  int i_Color = m_vi_VertexColors[m_vi_Edges[ii]];
+				  if(D1Colors[i_thread_num].find(i_Color)==D1Colors[i_thread_num].end()) {
+					    D1Colors[i_thread_num][i_Color]=1;
+					    //mark forbidden color
+					    mip_ForbiddenColors[i_thread_num][i_Color] = true;
+#if COLPACK_DEBUG_LEVEL > 10
+					    cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<< "D1 color="<<i_Color<<"; SET count="<< D1Colors[i_thread_num][ i_Color]<<endl;
+#endif
+				  }
+				  else {
+					    D1Colors[i_thread_num][ i_Color]++;
+#if COLPACK_DEBUG_LEVEL > 10
+					    cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<< "D1 color="<<i_Color<<"; INCREASE count="<< D1Colors[i_thread_num][ i_Color]<<endl;
+#endif
+				  }
+				}
+			}
+#if COLPACK_DEBUG_LEVEL > 10
+			cout<<"after D1Colors is polulated"<<endl;
+			PrintD1Colors(D1Colors, i_thread_num);
+#endif
+
+			/* mark forbidden color using these 2 rules:
+			  * - if vertex with color appear more than once or _UNKOWN, forbid all colors that its D1 neighbors have
+			  *    (its D1 neighbors have) => make a function for this so I can improve latter
+			  * - if vertex with color appear once and is NOT a hub, forbid all of its hubs color
+			  */
+			// !!! could to be improved ???
+			for(int ii=m_vi_Vertices[i_CurrentVertex]; ii<m_vi_Vertices[i_CurrentVertex+1];ii++) {
+				int D1Neighbor = m_vi_Edges[ii];
+
+				map <int, int >::iterator mii_iter = (*Vertex2ColorCombination)[D1Neighbor].begin();
+				// !!! could this read from the hash table cause problem if we don't lock it?
+				if( m_vi_VertexColors[D1Neighbor] == _UNKNOWN ) {
+					// Note: the part (m_vi_VertexColors[D1Neighbor] == _UNKNOWN) here is conservative because I assume that if another thread is working on this vertex, it could pick the color D1Colors[i_thread_num][m_vi_VertexColors[D1Neighbor]] and make the whole thing bad
+					// !!! might be able to improve by checking and ?communitation with other threads and see if they works on the vertices around me
+					for(int iii=m_vi_Vertices[D1Neighbor]; iii<m_vi_Vertices[D1Neighbor+1]; iii++) {
+						int D2Neighbor = m_vi_Edges[iii];
+						if(D2Neighbor == i_CurrentVertex) {
+							continue;
+						}
+						if(m_vi_VertexColors[D2Neighbor] != _UNKNOWN) {
+							mip_ForbiddenColors[i_thread_num][m_vi_VertexColors[D2Neighbor]] = true;
+						}
+					}
+				}
+				else if (D1Colors[i_thread_num][m_vi_VertexColors[D1Neighbor]] > 1 ) {
+					//forbid all colors that its D1 neighbors have
+					for(; mii_iter != (*Vertex2ColorCombination)[D1Neighbor].end(); mii_iter++) {
+						//mark mii_iter->first as forbidden
+						mip_ForbiddenColors[i_thread_num][mii_iter->first] = true;
+					}
+				}
+				else {
+					// For any color combinations that D1Neighbor is NOT a hub (i.e. a leaf or a non-HUB), forbid the color of the hub (in this color combination)
+					for(; mii_iter != (*Vertex2ColorCombination)[D1Neighbor].end(); mii_iter++) {
+						if(mii_iter->second != -1) { // D1Neighbor is NOT a hub in the combination (m_vi_VertexColors[D1Neighbor], mii_iter->first)
+							//mark mii_iter->first as forbidden
+							mip_ForbiddenColors[i_thread_num][mii_iter->first] = true;
+						}
+					}
+				}
+
+			}
+		return (_TRUE);
+	}
+
+	int GraphColoring::StarColoring_serial2() {
+		//if(CheckVertexColoring("STAR"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i_MaxNumThreads = 1;
+		int i_MaxColor;
+		if(m_i_VertexColorCount>0) i_MaxColor = m_i_VertexColorCount;
+		else i_MaxColor = 3;
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		/*
+		for(int i=0; i<=i_MaxColor;i++) {
+			if(!omp_test_lock( vl_ColorLock[i] )) {
+				cout<<"Fail to lock color "<<i<<endl;
+			}
+		}
+		//*/
+
+		vector<int> vi_VerticesToBeColored;
+		vector<int>* vip_VerticesToBeRecolored_Private = new vector<int>[i_MaxNumThreads];
+		map<int, bool>* mip_ForbiddenColors = new map<int,bool>[i_MaxNumThreads];
+		map<int, int>* D1Colors = new map<int, int>[i_MaxNumThreads];
+
+		vector<  map <int, int > > *Vertex2ColorCombination = new vector<  map <int, int > >;
+		(*Vertex2ColorCombination).resize(i_VertexCount);
+
+		//Populate (vi_VerticesToBeColored)
+		for(int i=0 ; i< i_VertexCount; i++) {
+			int i_thread_num;
+			i_thread_num = 0;
+			vip_VerticesToBeRecolored_Private[i_thread_num].push_back(m_vi_OrderedVertices[i]);
+		}
+
+		int* i_StartingIndex = new int[i_MaxNumThreads];
+		i_StartingIndex[0] = 0;
+		for(int i=1; i < i_MaxNumThreads; i++) {
+			i_StartingIndex[i] =  i_StartingIndex[i-1]+vip_VerticesToBeRecolored_Private[i-1].size();
+		}
+		vi_VerticesToBeColored.resize(i_StartingIndex[i_MaxNumThreads-1]+vip_VerticesToBeRecolored_Private[i_MaxNumThreads-1].size(),_UNKNOWN);
+		for(int i=0 ; i< i_MaxNumThreads; i++) {
+			for(size_t j=0; j<vip_VerticesToBeRecolored_Private[i].size();j++) {
+				vi_VerticesToBeColored[i_StartingIndex[i]+j] = vip_VerticesToBeRecolored_Private[i][j];
+			}
+		}
+
+#if COLPACK_DEBUG_LEVEL == 0
+		int i_LoopCount = 0;
+#endif
+		while(vi_VerticesToBeColored.size()>0) {
+#if COLPACK_DEBUG_LEVEL == 0
+			i_LoopCount++;
+			//cout<<"(loop "<<i_LoopCount<<") vi_VerticesToBeColored.size()="<<vi_VerticesToBeColored.size()<<"/"<<i_VertexCount<<endl;
+			//cout<<"(loop "<<i_LoopCount<<") i_MaxColor="<<i_MaxColor<<endl;
+			//Pause();
+#endif
+			// reinitialize vip_VerticesToBeRecolored_Private
+			for(int i=0; i < i_MaxNumThreads; i++) {
+				vip_VerticesToBeRecolored_Private[i].clear();
+			}
+
+			int i_RecolorCount = vi_VerticesToBeColored.size();
+			for(int i=0; i<i_RecolorCount;i++) {
+
+				int i_thread_num = 0;
+				int i_CurrentVertex = vi_VerticesToBeColored[i];
+// 				cout<<"v"<<i_CurrentVertex<<endl<<flush;
+// 				if(i_CurrentVertex==20 || i_CurrentVertex==21) {
+// 					PrintVertex2ColorCombination(Vertex2ColorCombination);
+// 					Pause();
+// 				}
+#if COLPACK_DEBUG_LEVEL > 10
+				cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<<"works on v"<<i_CurrentVertex<<endl<<flush;
+#endif
+				mip_ForbiddenColors[i_thread_num].clear();
+				D1Colors[i_thread_num].clear();
+
+#if COLPACK_DEBUG_LEVEL > 10
+				cout<<flush<<endl<<"degree of i_CurrentVertex "<<m_vi_Vertices[i_CurrentVertex+1]-m_vi_Vertices[i_CurrentVertex]<<endl;
+#endif
+				// DONE Step *: count how many D1 colors are there and mark all of them as forbidden
+				for(int ii=m_vi_Vertices[i_CurrentVertex]; ii<m_vi_Vertices[i_CurrentVertex+1];ii++) {
+					if(m_vi_VertexColors[m_vi_Edges[ii]] != _UNKNOWN) {
+					  int i_Color = m_vi_VertexColors[m_vi_Edges[ii]];
+					  if(D1Colors[i_thread_num].find(i_Color)==D1Colors[i_thread_num].end()) {
+						    D1Colors[i_thread_num][i_Color]=1;
+						    //mark forbidden color
+						    mip_ForbiddenColors[i_thread_num][i_Color] = true;
+#if COLPACK_DEBUG_LEVEL > 10
+						    cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<< "D1 color="<<i_Color<<"; SET count="<< D1Colors[i_thread_num][ i_Color]<<endl;
+#endif
+					  }
+					  else {
+						    D1Colors[i_thread_num][ i_Color]++;
+#if COLPACK_DEBUG_LEVEL > 10
+						    cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<< "D1 color="<<i_Color<<"; INCREASE count="<< D1Colors[i_thread_num][ i_Color]<<endl;
+#endif
+					  }
+					}
+				}
+#if COLPACK_DEBUG_LEVEL > 10
+				cout<<"after D1Colors is polulated"<<endl;
+				PrintD1Colors(D1Colors, i_thread_num);
+#endif
+
+/*
+				map<int, int>::iterator mib_itr2 = D1Colors[i_thread_num].begin();
+				for(;mib_itr2 != D1Colors[i_thread_num].end(); mib_itr2++) {
+					cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<< "D1 color="<<mib_itr2->first<<"; count="<< mib_itr2->second<<endl;
+				}
+//*/
+#if COLPACK_DEBUG_LEVEL > 10
+				PrintD1Colors(D1Colors, i_thread_num);
+				cout<<"*Start marking forbidden color"<<endl;
+#endif
+
+				/* DONE Step *: mark forbidden color using these 2 rules:
+				 * - if vertex with color appear more than once, forbid all colors that its D1 neighbors have
+				 *    (its D1 neighbors have) => make a function for this so I can improve latter
+				 * - if vertex with color appear once and is a LEAF, forbid all of its HUBs color.
+				 */
+				// !!! could to be improved ???
+				for(int ii=m_vi_Vertices[i_CurrentVertex]; ii<m_vi_Vertices[i_CurrentVertex+1];ii++) {
+					int D1Neighbor = m_vi_Edges[ii];
+// 					if(i_CurrentVertex==31) {
+// 						cout<<"D1Neighbor="<<D1Neighbor<<" color="<< m_vi_VertexColors[D1Neighbor] <<endl;
+// 						if(D1Neighbor==20) {
+// 							for(int iii=m_vi_Vertices[D1Neighbor]; iii<m_vi_Vertices[D1Neighbor+1];iii++) {
+// 								cout<<"\t D2Neighbor="<< m_vi_Edges[iii] <<" color="<< m_vi_VertexColors[m_vi_Edges[iii]]  <<endl;
+// 							}
+//
+// 						}
+// 					}
+					if(m_vi_VertexColors[D1Neighbor] != _UNKNOWN) {
+						map <int, int >::iterator mii_iter = (*Vertex2ColorCombination)[D1Neighbor].begin();
+						if( D1Colors[i_thread_num][m_vi_VertexColors[D1Neighbor]] > 1 ) {
+							//forbid all colors that its D1 neighbors have
+							for(; mii_iter != (*Vertex2ColorCombination)[D1Neighbor].end(); mii_iter++) {
+								//mark mii_iter->first as forbidden
+								mip_ForbiddenColors[i_thread_num][mii_iter->first] = true;
+// 								if(i_CurrentVertex==31) {
+// 									cout<<"\t Forbid color "<<mii_iter->first<<" around v "<<D1Neighbor<<endl;
+// 								}
+							}
+						}
+						else {
+							// For any color combinations that this vertex is a LEAF, forbid the color of the hub (in this color combination)
+							for(; mii_iter != (*Vertex2ColorCombination)[D1Neighbor].end(); mii_iter++) {
+// 								if(i_CurrentVertex==31 && D1Neighbor==20) {
+// 									cout<<"\t mii_iter->first="<<mii_iter->first<<" mii_iter->second="<< mii_iter->second <<endl;
+// 								}
+								if(mii_iter->second < -1) { // D1Neighbor is a leaf in the combination (m_vi_VertexColors[D1Neighbor], mii_iter->first)
+									//mark mii_iter->first as forbidden
+									mip_ForbiddenColors[i_thread_num][mii_iter->first] = true;
+// 									if(i_CurrentVertex==31) {
+// 										cout<<"\t Forbid color "<<mii_iter->first<<" of v "<<-(mii_iter->second+2)<<endl;
+// 									}
+								}
+							}
+						}
+					}
+				}
+#if COLPACK_DEBUG_LEVEL > 10
+				cout<<"*After finish marking forbidden color"<<endl;
+				PrintD1Colors(D1Colors, i_thread_num);
+#endif
+
+				/* Step *: Pick a color for the current vertex:
+				 * Among the available color, test the lock of that color and see if I can lock it
+				 *      if I'm able to lock one
+				 *      if all current color are locked, allocate a new color & its lock (push into vl_ColorLock)
+				 * 		update i_MaxColor
+				 */
+				int i_PotentialColor = 0;
+				for(; i_PotentialColor<=i_MaxColor;i_PotentialColor++) {
+					if(mip_ForbiddenColors[i_thread_num].find(i_PotentialColor) == mip_ForbiddenColors[i_thread_num].end()) { // if this color is not forbidden
+						// see if we could get the lock for this color
+						break;
+					}
+				}
+				if(i_PotentialColor > i_MaxColor) { //we will need a new color
+					i_MaxColor = i_PotentialColor;
+				}
+				// Now we have a color, i.e. i_PotentialColor
+				m_vi_VertexColors[i_CurrentVertex] = i_PotentialColor;
+				//cout<<"c "<<i_PotentialColor<<" for v "<<i_CurrentVertex<<endl;
+				if(false){
+				//#pragma omp critical
+					{
+						pair<int,int> *pii_ConflictColorCombination = new pair<int,int>;
+						int i_ConflictVertex = CheckStarColoring_OMP(1, pii_ConflictColorCombination);
+						//PrintVertexAndColorAdded(i_MaxNumThreads ,vi_VertexAndColorAdded);
+						//Pause();
+
+						// !! find the 2 vertices and find the distance between them
+						if (i_ConflictVertex!=-1) {
+							//PrintVertexAndColorAdded(i_MaxNumThreads ,vi_VertexAndColorAdded);
+							cout<<"t"<<i_thread_num<<": After assign color "<<i_PotentialColor<<" to v "<<i_CurrentVertex<<endl;
+							PrintForbiddenColors(mip_ForbiddenColors, i_thread_num);
+
+							//map< int, map<int,bool> > *graph = new map< int, map<int,bool> >;
+							//BuildConnectedSubGraph(graph , i_CurrentVertex, 1);
+							//vector<int> vi_VertexColors;
+							//GetVertexColors(vi_VertexColors);
+							//displayGraph(graph, &vi_VertexColors, true, FDP);
+							//delete graph;
+
+							//graph = new map< int, map<int,bool> >;
+							//BuildSubGraph(graph , i_CurrentVertex, 0);
+							//displayGraph(graph, &vi_VertexColors, true, FDP);
+							//delete graph;
+
+							cout<<"i_ConflictVertex="<<i_ConflictVertex;
+							if(i_ConflictVertex>=0)cout<<" with color "<< m_vi_VertexColors[i_ConflictVertex];
+							cout<<endl;
+							//cout<<"i="<<i<<"/vi_VerticesToBeColored.size()="<<vi_VerticesToBeColored.size() <<"/i_VertexCount="<<i_VertexCount <<endl;
+							//displayVector(i_PotentialColor_Private,i_MaxNumThreads);
+							//displayVector(i_CurrentVertex_Private,i_MaxNumThreads);
+							cout<<"CheckStarColoring_OMP() FAILED"<<endl;
+							cout<<"conflict colors "<<(*pii_ConflictColorCombination).first<<" "<<(*pii_ConflictColorCombination).second<<endl;
+							/*
+							map<int, bool> VerticiesWithConflictColors;
+							for(int i=0; i<i_MaxNumThreads; i++) {
+								if(i_PotentialColor_Private[i]==(*pii_ConflictColorCombination).first || i_PotentialColor_Private[i]==(*pii_ConflictColorCombination).second) {
+									VerticiesWithConflictColors[ i_CurrentVertex_Private[i] ]=true;
+									PrintForbiddenColors(mip_ForbiddenColors,i);
+								}
+							}
+							cout<<"VerticiesWithConflictColors.size()="<< VerticiesWithConflictColors.size() <<endl;
+							for(map<int, bool>::iterator itr=VerticiesWithConflictColors.begin(); itr != VerticiesWithConflictColors.end(); itr++) {
+								map<int, bool>::iterator itr2 = itr;itr2++;
+								for(;  itr2 != VerticiesWithConflictColors.end(); itr2++) {
+									FindDistance(itr->first, itr2->first);
+								}
+							}
+							//*/
+
+							cout<<"-----------------------------------"<<endl;
+							Pause();
+						}
+						delete pii_ConflictColorCombination;
+					}
+				}
+#if COLPACK_DEBUG_LEVEL > 10
+				cout<<flush<<endl<<"Thread "<<i_thread_num<<": "<<"Pick color "<< i_PotentialColor <<" for vertex "<<i_CurrentVertex<<endl<<flush;
+#endif
+
+				/* Step *: update Vertex2ColorCombination
+				 */
+				for(int ii=m_vi_Vertices[i_CurrentVertex]; ii<m_vi_Vertices[i_CurrentVertex+1];ii++) {
+					int D1Neighbor = m_vi_Edges[ii];
+					if(m_vi_VertexColors[D1Neighbor] != _UNKNOWN) {
+						if(D1Colors[i_thread_num][ m_vi_VertexColors[D1Neighbor] ] >1) {
+							//i_CurrentVertex should be a hub
+							(*Vertex2ColorCombination)[i_CurrentVertex][ m_vi_VertexColors[D1Neighbor] ] = -1; // mark i_CurrentVertex a hub of ( m_vi_VertexColors[i_CurrentVertex] , m_vi_VertexColors[D1Neighbor] ) combination
+							(*Vertex2ColorCombination)[D1Neighbor][m_vi_VertexColors[i_CurrentVertex]] = -(i_CurrentVertex+2); // mark D1Neighbor a leaf of ( m_vi_VertexColors[i_CurrentVertex] , m_vi_VertexColors[D1Neighbor] ) combination
+						}
+						// D1Colors[i_thread_num][ m_vi_VertexColors[D1Neighbor] ] == 1
+						else if ((*Vertex2ColorCombination)[D1Neighbor].find(m_vi_VertexColors[i_CurrentVertex]) != (*Vertex2ColorCombination)[D1Neighbor].end() ) {
+							int v2 = (*Vertex2ColorCombination)[D1Neighbor][m_vi_VertexColors[i_CurrentVertex]];
+							if(v2 != -1) {
+								// D1Neighbor is currently connected to a vertice v2 with the same color as i_CurrentVertex (i.e. D1Neighbor and v2 formed a non-HUB)
+								//cout<<"\t v2 "<<v2<<endl;
+								(*Vertex2ColorCombination)[v2][m_vi_VertexColors[D1Neighbor]] = -(D1Neighbor+2);
+								// D1Neighbor will become a hub now
+								(*Vertex2ColorCombination)[D1Neighbor][m_vi_VertexColors[i_CurrentVertex]] = -1;
+							} // else D1Neighbor is already a HUB of this color combination
+							(*Vertex2ColorCombination)[i_CurrentVertex][m_vi_VertexColors[D1Neighbor]] = -(D1Neighbor+2);
+						}
+						else {
+							// D1Neighbor does not connect to any other vertex with the same color as i_CurrentVertex
+							//this edge is not a part of any hub (D1Neighbor canNOT be a LEAF)
+							(*Vertex2ColorCombination)[D1Neighbor][m_vi_VertexColors[i_CurrentVertex]] = i_CurrentVertex;
+							(*Vertex2ColorCombination)[i_CurrentVertex][m_vi_VertexColors[D1Neighbor]] = D1Neighbor;
+						}
+					}
+				}
+
+			}
+
+			//Populate (vi_VerticesToBeColored)
+			vi_VerticesToBeColored.clear();
+			for(int i=1; i < i_MaxNumThreads; i++) {
+				i_StartingIndex[i] =  i_StartingIndex[i-1]+vip_VerticesToBeRecolored_Private[i-1].size();
+				//cout<<"i_StartingIndex["<< i <<"]="<<i_StartingIndex[i]<<endl;
+			}
+			vi_VerticesToBeColored.resize(i_StartingIndex[i_MaxNumThreads-1]+vip_VerticesToBeRecolored_Private[i_MaxNumThreads-1].size(),_UNKNOWN);
+#if COLPACK_DEBUG_LEVEL > 10
+			cout<<"vi_VerticesToBeColored.size()="<<vi_VerticesToBeColored.size()<<endl;
+#endif
+			for(int i=0 ; i< i_MaxNumThreads; i++) {
+				for(int j=0; j<(int)vip_VerticesToBeRecolored_Private[i].size();j++) {
+					vi_VerticesToBeColored[i_StartingIndex[i]+j] = vip_VerticesToBeRecolored_Private[i][j];
+				}
+			}
+		}
+
+		//
+
+		delete Vertex2ColorCombination;
+		Vertex2ColorCombination=NULL;
+		delete[] vip_VerticesToBeRecolored_Private;
+		vip_VerticesToBeRecolored_Private = NULL;
+		delete[] mip_ForbiddenColors;
+		mip_ForbiddenColors = NULL;
+		delete[] D1Colors;
+		D1Colors=NULL;
+
+		delete[] i_StartingIndex;
+		i_StartingIndex=NULL;
+
+		m_i_VertexColorCount=i_MaxColor;
+
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintVertex2ColorCombination (vector<  map <int, int > > *Vertex2ColorCombination) {
+		cout<<"PrintVertex2ColorCombination()"<<endl;
+		for(int i=0; i<(int) (*Vertex2ColorCombination).size(); i++) {
+			cout<<"v "<<i<<" c "<<m_vi_VertexColors[i]<<endl;
+			map<int, int>::iterator mii_iter = (*Vertex2ColorCombination)[i].begin();
+			for(; mii_iter != (*Vertex2ColorCombination)[i].end(); mii_iter++) {
+				if(mii_iter->second < -1) { // LEAF
+					cout<<"\t is a LEAF of v "<<-(mii_iter->second+2)<<" c "<<mii_iter->first<<endl;
+				}
+				else if (mii_iter->second == -1) { // HUB
+					cout<<"\t is a HUB with c "<<mii_iter->first<<endl;
+				}
+				else { // non-HUB
+					cout<<"\t just connect with v "<<mii_iter->second<<" c "<<mii_iter->first<<" (non-HUB)"<<endl;
+				}
+			}
+		}
+		return (_TRUE);
+	}
+
+	int GraphColoring::PrintVertex2ColorCombination_raw (vector<  map <int, int > > *Vertex2ColorCombination) {
+		cout<<"PrintVertex2ColorCombination_raw()"<<endl;
+		for(int i=0; i<(int) (*Vertex2ColorCombination).size(); i++) {
+			cout<<"v "<<i<<" c "<<m_vi_VertexColors[i]<<endl;
+			map<int, int>::iterator mii_iter = (*Vertex2ColorCombination)[i].begin();
+			for(; mii_iter != (*Vertex2ColorCombination)[i].end(); mii_iter++) {
+				cout<<"\t Vertex2ColorCombination["<< i <<"][] "<<mii_iter->second<<" c "<<mii_iter->first<<endl;
+			}
+		}
+		return (_TRUE);
+	}
+
+
+	int GraphColoring::StarColoring() {
+		return GraphColoring::StarColoring_serial2();
+	}
+
+
+
+	// !!! if not use, remove this function.
+	/* ?Possible improvement: A dedicate thread will be used to push the result into vi_VerticesToBeRecolored
+	 * NOTE: this routine will not work correctly if there are conflicts
+	 */
+	int GraphColoring::BuildStarCollection(vector<int> & vi_VerticesToBeRecolored) {
+
+		int i, j, k;
+		int i_StarID, i_VertexOne, i_VertexTwo;
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		int i_EdgeCount = (signed) m_vi_Edges.size();
+
+		vector<int> vi_EdgeStarMap; // map an edge to a star. For example vi_EdgeStarMap[edge#1] = star#5
+		vector<int> vi_StarHubMap; // map a star to its hub (the center of 2-color star. For example vi_StarHubMap[star#5] = edge#7
+		map< int, map<int, int> > mimi2_VertexEdgeMap; // map 2 vertices to its edge ID. Note that for mimi2_VertexEdgeMap[vertex#1][vertex#2]= edge#1, the id of vertex#1 must always less than vertex#2
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo;
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_StarHubMap.clear();
+		vi_StarHubMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		// label each edge
+		//populate mimi2_VertexEdgeMap[][] and vi_EdgeStarMap[]
+		k=0;
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					vi_EdgeStarMap[k] = k; // initilized vi_EdgeStarMap, just let each edge belongs to its own star
+
+					k++;
+				}
+			}
+		}
+
+		// This function is similar to Algorithm 4.3: procedure updateStars(v)
+		//		in paper: A. Gebremedhin, A. Tarafdar, F. Manne and A. Pothen, New Acyclic and Star Coloring Algorithms with Applications to Hessian Computation, SIAM Journal on Scientific Computing, Vol 29, No 3, pp 1042--1072, 2007.
+		//  updating the collection of two-colored stars incident on the colored vertex v
+		// i.e. update vi_EdgeStarMap[][] and vi_StarHubMap[]
+		for(i=0; i<((int)m_vi_Vertices.size())-1;i++) {
+			if(m_vi_VertexColors[i] == _UNKNOWN) {
+				vi_VerticesToBeRecolored.push_back(i);
+				continue;
+			}
+			int i_PresentVertex = i;
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				int _FOUND = _FALSE;
+
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				// for each colored vertex, find the star that has colors of i_PresentVertex and m_vi_Edges[j]
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					// skip of m_vi_Edges[k] is the i_PresentVertex
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					// skip of the color of m_vi_Edges[k] (D2 neighbor of v (the i_PresentVertex)
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// Line 3-5, Algorithm 4.3
+					// if D2 neighbor of v and v has the same color
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						_FOUND = _TRUE;
+
+						if(m_vi_Edges[j] < m_vi_Edges[k])
+						{
+							//find the ID of the star that includes m_vi_Edges[j] and m_vi_Edges[k]
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+
+							// m_vi_Edges[j] (D1 neighbor of v) will be the hub of the star that include i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k]
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							// add edge (i_PresentVertex, m_vi_Edges[j]) in to the star i_StarID
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+						else
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+
+						break;
+					}
+				}
+
+				// Line 6-13, Algorithm 4.3
+				// If we cannot find the star that has colors of i_PresentVertex and m_vi_Edges[j]
+				// do ???
+				if (!_FOUND)
+				{
+					i_VertexOne = vi_FirstSeenOne[m_vi_VertexColors[m_vi_Edges[j]]];
+					i_VertexTwo = vi_FirstSeenTwo[m_vi_VertexColors[m_vi_Edges[j]]];
+
+					if((i_VertexOne == i_PresentVertex) && (i_VertexTwo != m_vi_Edges[j])) {
+						if(i_PresentVertex < i_VertexTwo) {
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][i_VertexTwo]];
+						}
+						else {
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_VertexTwo][i_PresentVertex]];
+						}
+
+						vi_StarHubMap[i_StarID] = i_PresentVertex;
+
+						if(i_PresentVertex < m_vi_Edges[j]) {
+							vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+						}
+						else {
+							vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+						}
+
+					}
+				}
+			}
+		}
+
+		PrintVertexColors();
+		PrintStarCollection(vi_EdgeStarMap, vi_StarHubMap, mimi2_VertexEdgeMap);
+		return(_TRUE);
+	}
+
+	int GraphColoring::PrintStarCollection(vector<int>& vi_EdgeStarMap, vector<int>& vi_StarHubMap, map< int, map<int, int> >& mimi2_VertexEdgeMap) {
+		int i, j;
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+				  cout<<"Vertex "<< i <<" - vertex "<< m_vi_Edges[j] <<" : ";
+				  int i_Hub = vi_StarHubMap[ vi_EdgeStarMap[mimi2_VertexEdgeMap[i][ m_vi_Edges[j] ] ] ];
+				  if(i_Hub<0) {
+				    cout<<" NO HUB"<<endl;
+				  }
+				  else cout<<"starhub "<< i_Hub <<endl;
+				}
+			}
+		}
+
+		return (_TRUE);
+	}
+
+	//Public Function 1458
+	int GraphColoring::StarColoring_serial()
+	{
+	  // Line 2: Initialize data structures
+	//	if(CheckVertexColoring("STAR"))
+	//	{
+	//		return(_TRUE);
+	//	}
+
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_PresentVertex;
+
+		int i_VertexCount, i_EdgeCount;
+
+		int i_VertexOne, i_VertexTwo;
+
+		vector<int> vi_MemberEdges;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_EdgeStarMap; // map an edge to a star. For example vi_EdgeStarMap[edge#1] = star#5
+		vector<int> vi_StarHubMap; // map a star to its hub (the center of 2-color star. For example vi_StarHubMap[star#5] = edge#7
+
+		vector<int> vi_FirstTreated; // ??? what these structures are for?
+
+		/* The two vectors vi_FirstSeenOne, vi_FirstSeenTwo are indexed by the color ID
+		 * vi_FirstSeenOne[color a] = vertex 1 : means that color a is first seen when we are processing vertex 1 (as colored vertex w)
+		 * vi_FirstSeenTwo[color a] = vertex 2 : means that vertex 2 (connected to vertex 1) has color a and this is first seen when we were processing vertex 1
+		 * */
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo; // ??? what these structures are for?
+
+		map< int, map<int, int> > mimi2_VertexEdgeMap; // map 2 vertices to its edge ID. Note that for mimi2_VertexEdgeMap[vertex#1][vertex#2]= edge#1, the id of vertex#1 must always less than vertex#2
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_StarHubMap.clear();
+		vi_StarHubMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+	//    vi_FirstTreated.clear();
+	//    vi_FirstTreated.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstTreated.clear();
+		vi_FirstTreated.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		k = _FALSE;
+
+		// label each edge
+		//populate mimi2_VertexEdgeMap[][] and vi_EdgeStarMap[]
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					vi_EdgeStarMap[k] = k; // initilized vi_EdgeStarMap, just let each edge belongs to its own star
+
+					k++;
+				}
+			}
+		}
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+		// Line 3: for each v ∈ V do
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1458 | Star Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+			// Line 4: for each colored vertex w ∈ N1 (v) do
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_ColorID = m_vi_VertexColors[m_vi_Edges[j]];
+
+				if(i_ColorID == _UNKNOWN)
+				{
+				  continue;
+				}
+
+				// Line 5: forbid vertex i_PresentVertex to use color i_ColorID
+				vi_CandidateColors[i_ColorID] = i_PresentVertex;
+
+				// Line 6?
+				i_VertexOne = vi_FirstSeenOne[i_ColorID];
+				i_VertexTwo = vi_FirstSeenTwo[i_ColorID];
+
+				// Line 7-10, Algorithm 4.1
+				if(i_VertexOne == i_PresentVertex)
+				{
+					// Line 8-9, Algorithm 4.1
+					if(vi_FirstTreated[i_VertexTwo] != i_PresentVertex)
+					{
+
+						//forbid colors of neighbors of q
+						for(k=m_vi_Vertices[i_VertexTwo]; k<m_vi_Vertices[STEP_UP(i_VertexTwo)]; k++)
+						{
+							if(m_vi_Edges[k] == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+						}
+
+						vi_FirstTreated[i_VertexTwo] = i_PresentVertex;
+					}
+
+					// Line 10, Algorithm 4.1: forbid colors of neighbors of w
+					for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+					{
+						if(m_vi_Edges[k] == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+					}
+
+					vi_FirstTreated[m_vi_Edges[j]] = i_PresentVertex;
+				}
+				// Line 11-15, Algorithm 4.1
+				else
+				{
+	      			vi_FirstSeenOne[i_ColorID] = i_PresentVertex;
+					vi_FirstSeenTwo[i_ColorID] = m_vi_Edges[j];
+
+					for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+					{
+						if(m_vi_Edges[k] == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_Edges[j] < m_vi_Edges[k])
+						{
+							if(vi_StarHubMap[vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]]] == m_vi_Edges[k])
+							{
+								vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+						}
+						else
+						{
+							if(vi_StarHubMap[vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]]] == m_vi_Edges[k])
+							{
+								vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+						}
+					}
+				}
+			}
+
+			// Line 16, Algorithm 4.1
+			// the smallest permissible color is chosen and assigned to the vertex v (i_PresentVertex)
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+					//cout<<"c "<<j<<" for v "<<i_PresentVertex<<endl;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			// Line 17, Algorithm 4.1
+			// This for loop is also Algorithm 4.3: procedure updateStars(v)
+			//  updating the collection of two-colored stars incident on the colored vertex v
+			// i.e. update vi_EdgeStarMap[][] and vi_StarHubMap[]
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				_FOUND = _FALSE;
+
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				// for each colored vertex, find the star that has colors of i_PresentVertex and m_vi_Edges[j]
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					// skip of m_vi_Edges[k] is the i_PresentVertex
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					// skip of the color of m_vi_Edges[k] (D2 neighbor of v (the i_PresentVertex)
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					// Line 3-5, Algorithm 4.3
+					// if D2 neighbor of v and v has the same color
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						_FOUND = _TRUE;
+
+						if(m_vi_Edges[j] < m_vi_Edges[k])
+						{
+							//find the ID of the star that includes m_vi_Edges[j] and m_vi_Edges[k]
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+
+							// m_vi_Edges[j] (D1 neighbor of v) will be the hub of the star that include i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k]
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							// add edge (i_PresentVertex, m_vi_Edges[j]) in to the star i_StarID
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+						else
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+
+						break;
+					}
+				}
+
+				// Line 6-13, Algorithm 4.3
+				// If we cannot find the star that has colors of i_PresentVertex and m_vi_Edges[j]
+				// do ???
+				if (!_FOUND)
+				{
+					i_VertexOne = vi_FirstSeenOne[m_vi_VertexColors[m_vi_Edges[j]]];
+					i_VertexTwo = vi_FirstSeenTwo[m_vi_VertexColors[m_vi_Edges[j]]];
+
+					if((i_VertexOne == i_PresentVertex) && (i_VertexTwo != m_vi_Edges[j]))
+					{
+						if(i_PresentVertex < i_VertexTwo)
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][i_VertexTwo]];
+
+							vi_StarHubMap[i_StarID] = i_PresentVertex;
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+						else
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_VertexTwo][i_PresentVertex]];
+
+							vi_StarHubMap[i_StarID] = i_PresentVertex;
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+					}
+				}
+			}
+		}
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+#if STATISTICS == _TRUE
+/* Commented out due to apparent Memory violation (see the checking code below)
+		vector<int> vi_Hubs;
+
+		vi_Hubs.resize((unsigned) i_EdgeCount/2, _FALSE);
+
+		m_i_ColoringUnits = _FALSE;
+
+		for(i=0; i<i_EdgeCount/2; i++)
+		{
+			if(vi_StarHubMap[i] == _UNKNOWN)
+			{
+				m_i_ColoringUnits++;
+
+				continue;
+			}
+
+			if(vi_StarHubMap[i] >= vi_Hubs.size() ) {
+			  cout<<"Memory violation vi_StarHubMap[i] = "<<vi_StarHubMap[i]<<" ; vi_Hubs.size() = "<< vi_Hubs.size() <<endl;
+			  Pause();
+			}
+			if(vi_Hubs[vi_StarHubMap[i]] == _FALSE)
+			{
+				vi_Hubs[vi_StarHubMap[i]] = _TRUE;
+
+				m_i_ColoringUnits++;
+			}
+		}
+//*/
+#endif
+
+		return(_TRUE);
+
+	}
+
+
+	//Public Function 1459
+	int GraphColoring::StarColoring(vector<int> & vi_StarHubMap, vector<int> & vi_EdgeStarMap, map< int, map<int, int> > & mimi2_VertexEdgeMap)
+	{
+		int i, j, k;
+
+		int _FOUND;
+
+		int i_ColorID, i_StarID;
+
+		int i_PresentVertex;
+
+		int i_VertexCount, i_EdgeCount;
+
+		int i_VertexOne, i_VertexTwo;
+
+		vector<int> vi_MemberEdges;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_FirstTreated;
+
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo;
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		vi_EdgeStarMap.clear();
+		vi_EdgeStarMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_StarHubMap.clear();
+		vi_StarHubMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+	//    vi_FirstTreated.clear();
+	//    vi_FirstTreated.resize((unsigned) i_EdgeCount, _UNKNOWN);
+
+		vi_FirstTreated.clear();
+		vi_FirstTreated.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		k = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					vi_EdgeStarMap[k] = k;
+
+					k++;
+				}
+			}
+		}
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 305 | Star Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_ColorID = m_vi_VertexColors[m_vi_Edges[j]];
+
+				if(i_ColorID == _UNKNOWN)
+				{
+				  continue;
+				}
+
+				vi_CandidateColors[i_ColorID] = i_PresentVertex;
+
+				i_VertexOne = vi_FirstSeenOne[i_ColorID];
+				i_VertexTwo = vi_FirstSeenTwo[i_ColorID];
+
+				// Line 7-10, Algorithm 4.1
+				if(i_VertexOne == i_PresentVertex)
+				{
+
+					// Line 8-9, Algorithm 4.1
+					if(vi_FirstTreated[i_VertexTwo] != i_PresentVertex)
+					{
+
+						for(k=m_vi_Vertices[i_VertexTwo]; k<m_vi_Vertices[STEP_UP(i_VertexTwo)]; k++)
+						{
+							if(m_vi_Edges[k] == i_PresentVertex)
+							{
+								continue;
+							}
+
+							if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+							{
+								continue;
+							}
+
+							vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+						}
+
+						vi_FirstTreated[i_VertexTwo] = i_PresentVertex;
+					}
+
+					// Line 10, Algorithm 4.1
+					for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+					{
+						if(m_vi_Edges[k] == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+
+					}
+
+					vi_FirstTreated[m_vi_Edges[j]] = i_PresentVertex;
+				}
+				// Line 11-15, Algorithm 4.1
+				else
+				{
+	      			vi_FirstSeenOne[i_ColorID] = i_PresentVertex;
+					vi_FirstSeenTwo[i_ColorID] = m_vi_Edges[j];
+
+					for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+					{
+						if(m_vi_Edges[k] == i_PresentVertex)
+						{
+							continue;
+						}
+
+						if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+						{
+							continue;
+						}
+
+						if(m_vi_Edges[j] < m_vi_Edges[k])
+						{
+							if(vi_StarHubMap[vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]]] == m_vi_Edges[k])
+							{
+								vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+						}
+						else
+						{
+							if(vi_StarHubMap[vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]]] == m_vi_Edges[k])
+							{
+								vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+							}
+						}
+					}
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				_FOUND = _FALSE;
+
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						_FOUND = _TRUE;
+
+						if(m_vi_Edges[j] < m_vi_Edges[k])
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+						else
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+
+							vi_StarHubMap[i_StarID] = m_vi_Edges[j];
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+
+						break;
+					}
+				}
+
+				if (!_FOUND)
+				{
+					i_VertexOne = vi_FirstSeenOne[m_vi_VertexColors[m_vi_Edges[j]]];
+					i_VertexTwo = vi_FirstSeenTwo[m_vi_VertexColors[m_vi_Edges[j]]];
+
+					if((i_VertexOne == i_PresentVertex) && (i_VertexTwo != m_vi_Edges[j]))
+					{
+						if(i_PresentVertex < i_VertexTwo)
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][i_VertexTwo]];
+
+							vi_StarHubMap[i_StarID] = i_PresentVertex;
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+						else
+						{
+							i_StarID = vi_EdgeStarMap[mimi2_VertexEdgeMap[i_VertexTwo][i_PresentVertex]];
+
+							vi_StarHubMap[i_StarID] = i_PresentVertex;
+
+							if(i_PresentVertex < m_vi_Edges[j])
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]]] = i_StarID;
+							}
+							else
+							{
+								vi_EdgeStarMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex]] = i_StarID;
+							}
+						}
+					}
+				}
+			}
+		}
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+#if STATISTICS == _TRUE
+
+		vector<int> vi_Hubs;
+
+		vi_Hubs.resize((unsigned) i_EdgeCount/2, _FALSE);
+
+		m_i_ColoringUnits = _FALSE;
+
+		for(i=0; i<i_EdgeCount/2; i++)
+		{
+			if(vi_StarHubMap[i] == _UNKNOWN)
+			{
+				m_i_ColoringUnits++;
+
+				continue;
+			}
+
+			if(vi_Hubs[vi_StarHubMap[i]] == _FALSE)
+			{
+				vi_Hubs[vi_StarHubMap[i]] = _TRUE;
+
+				m_i_ColoringUnits++;
+			}
+		}
+
+#endif
+
+		return(_TRUE);
+
+	}
+
+
+
+	int GraphColoring::GetStarColoringConflicts(vector<vector<int> > &ListOfConflicts)
+	{
+		int i, j, k, l;
+
+		int i_VertexCount /*, i_EdgeCount*/;
+
+		int i_FirstColor, i_SecondColor, i_ThirdColor, i_FourthColor;
+
+		int i_ViolationCount;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		/*i_EdgeCount = (signed) m_vi_Edges.size();*/
+
+		i_ViolationCount = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_FirstColor = m_vi_VertexColors[i];
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				i_SecondColor = m_vi_VertexColors[m_vi_Edges[j]];
+
+				if(i_SecondColor == i_FirstColor)
+				{
+					i_ViolationCount++;
+
+					//cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i)<<" ["<<STEP_UP(i_FirstColor)<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"]"<<endl;
+					vector<int> violation;    violation.push_back(i);violation.push_back(m_vi_Edges[j]);    ListOfConflicts.push_back(violation);
+
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i)
+					{
+						continue;
+					}
+
+					i_ThirdColor = m_vi_VertexColors[m_vi_Edges[k]];
+
+					if(i_ThirdColor == i_SecondColor)
+					{
+						i_ViolationCount++;
+
+						//cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"]"<<endl;
+						vector<int> violation;    violation.push_back(m_vi_Edges[j]);violation.push_back(m_vi_Edges[k]);    ListOfConflicts.push_back(violation);
+
+						continue;
+					}
+
+					if(i_ThirdColor != i_FirstColor)
+					{
+						continue;
+					}
+
+					if(i_ThirdColor == i_FirstColor)
+					{
+						for(l=m_vi_Vertices[m_vi_Edges[k]]; l<m_vi_Vertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if (m_vi_Edges[l] == m_vi_Edges[j])
+							{
+								continue;
+							}
+
+							i_FourthColor = m_vi_VertexColors[m_vi_Edges[l]];
+
+							if(i_FourthColor == i_ThirdColor)
+							{
+								i_ViolationCount++;
+
+								//cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<STEP_UP(i_FourthColor)<<"]"<<endl;
+								vector<int> violation;    violation.push_back(m_vi_Edges[k]);violation.push_back(m_vi_Edges[l]);    ListOfConflicts.push_back(violation);
+
+							}
+
+							if(i_FourthColor == i_SecondColor)
+							{
+								i_ViolationCount++;
+
+								//cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i)<<" ["<<STEP_UP(i_FirstColor)<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<STEP_UP(i_FourthColor)<<"]"<<endl;
+								vector<int> violation;    violation.push_back(i);violation.push_back(m_vi_Edges[j]);violation.push_back(m_vi_Edges[k]);violation.push_back(m_vi_Edges[l]);    ListOfConflicts.push_back(violation);
+
+								continue;
+							}
+						}
+					}
+				}
+			}
+		}
+/*
+		if(i_ViolationCount)
+		{
+			cout<<endl;
+			cout<<"[Total Violations = "<<i_ViolationCount<<"]"<<endl;
+			cout<<endl;
+		}
+//*/
+		return(i_ViolationCount);
+	}
+
+	//Public Function 1460
+	int GraphColoring::CheckStarColoring()
+	{
+		cout<<"Note: 1-based indexing is used"<<endl;
+		int i, j, k, l;
+
+		int i_VertexCount /*, i_EdgeCount */;
+
+		int i_FirstColor, i_SecondColor, i_ThirdColor, i_FourthColor;
+
+		int i_ViolationCount;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		//i_EdgeCount = (signed) m_vi_Edges.size();
+
+		i_ViolationCount = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_FirstColor = m_vi_VertexColors[i];
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				i_SecondColor = m_vi_VertexColors[m_vi_Edges[j]];
+
+				if(i_SecondColor == i_FirstColor)
+				{
+					i_ViolationCount++;
+
+					if(i_ViolationCount == _TRUE)
+					{
+						cout<<endl;
+						cout<<"Star Coloring | Violation Check | "<<m_s_InputFile<<endl;
+						cout<<endl;
+					}
+
+					cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i)<<" ["<<STEP_UP(i_FirstColor)<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"]"<<endl;
+
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i)
+					{
+						continue;
+					}
+
+					i_ThirdColor = m_vi_VertexColors[m_vi_Edges[k]];
+
+					if(i_ThirdColor == i_SecondColor)
+					{
+						i_ViolationCount++;
+
+						if(i_ViolationCount == _TRUE)
+						{
+							cout<<endl;
+							cout<<"Star Coloring | Violation Check | "<<m_s_InputFile<<endl;
+							cout<<endl;
+						}
+
+						cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"]"<<endl;
+
+						continue;
+					}
+
+					if(i_ThirdColor != i_FirstColor)
+					{
+						continue;
+					}
+
+					if(i_ThirdColor == i_FirstColor)
+					{
+						for(l=m_vi_Vertices[m_vi_Edges[k]]; l<m_vi_Vertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if (m_vi_Edges[l] == m_vi_Edges[j] )
+							{
+								continue;
+							}
+
+							i_FourthColor = m_vi_VertexColors[m_vi_Edges[l]];
+
+							if(i_FourthColor == i_ThirdColor)
+							{
+								i_ViolationCount++;
+
+								if(i_ViolationCount == _TRUE)
+								{
+									cout<<endl;
+									cout<<"Star Coloring | Violation Check | "<<m_s_InputFile<<endl;
+									cout<<endl;
+								}
+
+								cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<STEP_UP(i_FourthColor)<<"]"<<endl;
+
+							}
+
+							if(i_FourthColor == i_SecondColor)
+							{
+								i_ViolationCount++;
+
+								if(i_ViolationCount == _TRUE)
+								{
+									cout<<endl;
+									cout<<"Star Coloring | Violation Check | "<<m_s_InputFile<<endl;
+									cout<<endl;
+								}
+
+								cout<<"Violation "<<i_ViolationCount<<"\t : "<<STEP_UP(i)<<" ["<<STEP_UP(i_FirstColor)<<"] - "<<STEP_UP(m_vi_Edges[j])<<" ["<<STEP_UP(i_SecondColor)<<"] - "<<STEP_UP(m_vi_Edges[k])<<" ["<<STEP_UP(i_ThirdColor)<<"] - "<<STEP_UP(m_vi_Edges[l])<<" ["<<STEP_UP(i_FourthColor)<<"]"<<endl;
+
+								continue;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		if(i_ViolationCount)
+		{
+			cout<<endl;
+			cout<<"[Total Violations = "<<i_ViolationCount<<"]"<<endl;
+			cout<<endl;
+		}
+
+		return(i_ViolationCount);
+	}
+
+
+
+	//Public Function 1461
+	int GraphColoring::AcyclicColoring()
+	{
+		//if(CheckVertexColoring("ACYCLIC"))
+		//{
+	//		return(_TRUE);
+	//	}
+
+		int i, j, k;
+
+		int i_VertexCount, i_EdgeCount;
+
+		int i_AdjacentEdgeID, i_EdgeID, i_SetID;
+
+		int i_PresentVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree;
+		vector<int> vi_FirstVisitedOne, vi_FirstVisitedTwo;
+
+#if DISJOINT_SETS == _FALSE
+
+		int l;
+
+		int i_MemberCount;
+
+		int i_SmallerSetID, i_BiggerSetID;
+
+		vector<int> vi_DisjointSets;
+		vector<int> vi_MemberEdges;
+		vector<int> vi_EdgeSetMap;
+
+		vector< vector<int> > v2i_SetEdgeMap;
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		int i_SetOneID, i_SetTwoID;
+
+#endif
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		k = _FALSE;
+
+		m_mimi2_VertexEdgeMap.clear();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					k++;
+				}
+			}
+		}
+
+#if DEBUG == 1461
+
+		i_EdgeCount = (signed) v2i_EdgeVertexMap.size();
+
+		cout<<endl;
+		cout<<"DEBUG 1461 | Acyclic Coloring | Edge Vertex Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			cout<<"Edge "<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(v2i_EdgeVertexMap[i][0])<<" - "<<STEP_UP(v2i_EdgeVertexMap[i][1])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 1461 | Acyclic Coloring | Vertex Edge Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			cout<<"Vertex "<<STEP_UP(v2i_EdgeVertexMap[i][0])<<" - Vertex "<<STEP_UP(v2i_EdgeVertexMap[i][1])<<"\t"<<" : "<<STEP_UP(m_mimi2_VertexEdgeMap[v2i_EdgeVertexMap[i][0]][v2i_EdgeVertexMap[i][1]])<<endl;
+
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenThree.clear();
+		vi_FirstSeenThree.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstVisitedOne.clear();
+		vi_FirstVisitedOne.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_FirstVisitedTwo.clear();
+		vi_FirstVisitedTwo.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+#if DISJOINT_SETS == _FALSE
+
+		vi_MemberEdges.clear();
+
+		vi_EdgeSetMap.clear();
+		vi_EdgeSetMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		v2i_SetEdgeMap.clear();
+		v2i_SetEdgeMap.resize((unsigned) i_EdgeCount/2);
+
+		vi_DisjointSets.clear();
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		m_ds_DisjointSets.SetSize(i_EdgeCount/2);
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1461 | Acyclic Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] == i_PresentVertex)
+					{
+						continue;
+					}
+
+#if DISJOINT_SETS == _TRUE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]);
+					}
+					else
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]);
+					}
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = vi_EdgeSetMap[m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+					}
+					else
+					{
+						i_SetID = vi_EdgeSetMap[m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+					}
+#endif
+
+					FindCycle(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], i_SetID, vi_CandidateColors, vi_FirstVisitedOne, vi_FirstVisitedTwo);
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(i_PresentVertex < m_vi_Edges[j])
+				{
+					i_EdgeID = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+				}
+				else
+				{
+					i_EdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+				}
+
+#if DISJOINT_SETS == _FALSE
+
+				vi_DisjointSets.push_back(_TRUE);
+
+				vi_EdgeSetMap[i_EdgeID] = STEP_DOWN((signed) vi_DisjointSets.size());
+
+				v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].push_back(i_EdgeID);
+#endif
+
+				i_AdjacentEdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], i_PresentVertex, m_mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+				if(i_AdjacentEdgeID != _UNKNOWN)
+				{
+
+#if DISJOINT_SETS == _TRUE
+
+					i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+					i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1461
+
+					cout<<endl;
+					cout<<"DEBUG 1461 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+					m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1461
+
+					cout<<endl;
+					cout<<"DEBUG 1461 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+					if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+					{
+						i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+					else
+					{
+						i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+
+					vi_MemberEdges.clear();
+					vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+					vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+					i_MemberCount = (signed) vi_MemberEdges.size();
+
+					for(k=0; k<i_MemberCount; k++)
+					{
+						vi_EdgeSetMap[vi_MemberEdges[k]] = i_SmallerSetID;
+
+						v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[k]);
+					}
+#endif
+				}
+			}
+
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						if(m_vi_Edges[j] <  m_vi_Edges[k])
+						{
+							i_AdjacentEdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]];
+						}
+						else
+						{
+							i_AdjacentEdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]];
+						}
+
+						i_EdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], m_mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+						if(i_EdgeID != _UNKNOWN)
+						{
+
+#if DISJOINT_SETS == _TRUE
+
+							i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+							i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1461
+							cout<<endl;
+							cout<<"DEBUG 1461 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+							m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1461
+							cout<<endl;
+							cout<<"DEBUG 1461 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+							if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+							{
+								i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+							else
+							{
+								i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+
+							vi_MemberEdges.clear();
+							vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+							vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+							i_MemberCount = (signed) vi_MemberEdges.size();
+
+							for(l=0; l<i_MemberCount; l++)
+							{
+								vi_EdgeSetMap[vi_MemberEdges[l]] = i_SmallerSetID;
+
+								v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[l]);
+							}
+
+#endif
+						}
+					}
+				}
+			}
+
+#if DEBUG == 1461
+
+			cout<<endl;
+			cout<<"DEBUG 1461 | Acyclic Coloring | Vertex Colors | Upto Vertex "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				cout<<"Vertex "<<STEP_UP(j)<<" = "<<STEP_UP(m_vi_VertexColors[j])<<endl;
+			}
+#endif
+
+		}
+
+
+#if DEBUG == 1461
+
+#if DISJOINT_SETS == _FALSE
+
+		i_EdgeCount = (signed) v2i_EdgeVertexMap.size();
+
+		cout<<endl;
+		cout<<"DEBUG 1461 | Acyclic Coloring | Edge Set Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(vi_EdgeSetMap[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 1461 | Acyclic Coloring | Set Edge Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			i_MemberCount = (signed) v2i_SetEdgeMap[i].size();
+
+			if(i_MemberCount == _FALSE)
+			{
+				continue;
+			}
+
+			cout<<"Set "<<STEP_UP(i)<<"\t"<<" : ";
+
+			for(j=0; j<i_MemberCount; j++)
+			{
+				if(j == STEP_DOWN(i_MemberCount))
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<" ("<<i_MemberCount<<")"<<endl;
+				}
+				else
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+
+#endif
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+#if STATISTICS == _TRUE
+
+#if DISJOINT_SETS == _TRUE
+
+		m_i_ColoringUnits = m_ds_DisjointSets.Count();
+
+
+#elif DISJOINT_SETS == _FALSE
+
+		int i_SetSize;
+
+		m_i_ColoringUnits = _FALSE;
+
+		i_SetSize = (unsigned) v2i_SetEdgeMap.size();
+
+		for(i=0; i<i_SetSize; i++)
+		{
+			if(v2i_SetEdgeMap[i].empty())
+			{
+				continue;
+			}
+
+			m_i_ColoringUnits++;
+		}
+
+#endif
+
+#endif
+
+
+	//cerr<<"START End Coloring ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+		return(_TRUE);
+
+	}
+
+	int GraphColoring::AcyclicColoring_ForIndirectRecovery() {
+//#define DEBUG 1462
+		//if(CheckVertexColoring("ACYCLIC"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k;
+
+		int i_VertexCount, i_EdgeCount;
+
+		int i_AdjacentEdgeID, i_EdgeID, i_SetID;
+
+		int i_PresentVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree;
+		vector<int> vi_FirstVisitedOne, vi_FirstVisitedTwo;
+
+		//m_mimi2_VertexEdgeMap is populated and used in this function;
+
+#if DISJOINT_SETS == _FALSE
+
+		int l;
+
+		int i_MemberCount;
+
+		int i_SmallerSetID, i_BiggerSetID;
+
+		vector<int> vi_DisjointSets;
+		vector<int> vi_MemberEdges;
+		vector<int> vi_EdgeSetMap;
+
+		vector< vector<int> > v2i_SetEdgeMap;
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		int i_SetOneID, i_SetTwoID;
+
+		//DisjointSets ds_DisjointSets;
+
+#endif
+
+		if(m_s_VertexColoringVariant.compare("ALL") != 0)
+		{
+			m_s_VertexColoringVariant = "ACYCLIC";
+		}
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		k=_FALSE;
+
+		//populate m_mimi2_VertexEdgeMap
+		//Basically assign a number (k = 1, 2, 3 ...) for each edge of the graph
+		m_mimi2_VertexEdgeMap.clear();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					k++;
+				}
+			}
+		}
+
+//GraphColoringInterface::PrintVertexEdgeMap(m_vi_Vertices, m_vi_Edges, m_mimi2_VertexEdgeMap);
+#if DEBUG == 1462
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Edge Vertex Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+				cout<<"Edge "<<STEP_UP(m_mimi2_VertexEdgeMap[i][m_vi_Edges[j]])<<"\t"<<" : "<<STEP_UP(i)<<" - "<<STEP_UP(m_vi_Edges[j])<<endl;
+				}
+			}
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenThree.clear();
+		vi_FirstSeenThree.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstVisitedOne.clear();
+		vi_FirstVisitedOne.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_FirstVisitedTwo.clear();
+		vi_FirstVisitedTwo.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+//cout<<"*1"<<endl;
+#if DISJOINT_SETS == _FALSE
+
+		vi_MemberEdges.clear();
+
+		vi_EdgeSetMap.clear();
+		vi_EdgeSetMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		v2i_SetEdgeMap.clear();
+		v2i_SetEdgeMap.resize((unsigned) i_EdgeCount/2);
+
+		vi_DisjointSets.clear();
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		m_ds_DisjointSets.SetSize(i_EdgeCount/2);
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+//cout<<"*11 i_VertexCount="<<i_VertexCount<<endl;
+		for(i=0; i<i_VertexCount; i++)
+		{
+//cout<<"*12 m_vi_OrderedVertices="<<m_vi_OrderedVertices.size()<<endl;
+			i_PresentVertex = m_vi_OrderedVertices[i];
+//cout<<"*13 i_PresentVertex="<<i_PresentVertex<<endl;
+
+#if VERBOSE == _TRUE
+//#if DEBUG == 1462
+
+			cout<<"DEBUG 1462 | Acyclic Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] == i_PresentVertex)
+					{
+						continue;
+					}
+
+#if DISJOINT_SETS == _TRUE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]);
+					}
+					else
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]);
+					}
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = vi_EdgeSetMap[m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+					}
+					else
+					{
+						i_SetID = vi_EdgeSetMap[m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+					}
+#endif
+
+					FindCycle(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], i_SetID, vi_CandidateColors, vi_FirstVisitedOne, vi_FirstVisitedTwo);
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(i_PresentVertex < m_vi_Edges[j])
+				{
+					i_EdgeID = m_mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+				}
+				else
+				{
+					i_EdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+				}
+
+#if DISJOINT_SETS == _FALSE
+
+				vi_DisjointSets.push_back(_TRUE);
+
+				vi_EdgeSetMap[i_EdgeID] = STEP_DOWN((signed) vi_DisjointSets.size());
+
+				v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].push_back(i_EdgeID);
+#endif
+
+//cout<<"*2"<<endl;
+				i_AdjacentEdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], i_PresentVertex, m_mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+				if(i_AdjacentEdgeID != _UNKNOWN)
+				{
+
+#if DISJOINT_SETS == _TRUE
+
+					i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+					i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1462
+
+					cout<<endl;
+					cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+	//cerr<<"START In Coloring before Union ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+					m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+	//cerr<<"START In Coloring after  Union ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1462
+
+					cout<<endl;
+					cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+					if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+					{
+						i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+					else
+					{
+						i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+
+					vi_MemberEdges.clear();
+					vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+					vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+					i_MemberCount = (signed) vi_MemberEdges.size();
+
+					for(k=0; k<i_MemberCount; k++)
+					{
+						vi_EdgeSetMap[vi_MemberEdges[k]] = i_SmallerSetID;
+
+						v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[k]);
+					}
+#endif
+				}
+			}
+
+
+//cout<<"*3"<<endl;
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						if(m_vi_Edges[j] <  m_vi_Edges[k])
+						{
+							i_AdjacentEdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]];
+						}
+						else
+						{
+							i_AdjacentEdgeID = m_mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]];
+						}
+
+						i_EdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], m_mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+						if(i_EdgeID != _UNKNOWN)
+						{
+
+#if DISJOINT_SETS == _TRUE
+
+							i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+							i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1462
+							cout<<endl;
+							cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+	//cerr<<"START In Coloring before Union ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+							m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+	//cerr<<"START In Coloring after  Union ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1462
+
+							cout<<endl;
+							cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+							if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+							{
+								i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+							else
+							{
+								i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+
+							vi_MemberEdges.clear();
+							vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+							vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+							i_MemberCount = (signed) vi_MemberEdges.size();
+
+							for(l=0; l<i_MemberCount; l++)
+							{
+								vi_EdgeSetMap[vi_MemberEdges[l]] = i_SmallerSetID;
+
+								v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[l]);
+							}
+
+#endif
+						}
+					}
+				}
+			}
+
+#if DEBUG == 1462
+
+			cout<<endl;
+			cout<<"DEBUG 1462 | Acyclic Coloring | Vertex Colors | Upto Vertex "<<STEP_UP(i_PresentVertex)<<endl;
+			cout<<endl;
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				cout<<"Vertex "<<STEP_UP(j)<<" = "<<STEP_UP(m_vi_VertexColors[j])<<endl;
+			}
+#endif
+
+		}
+
+
+#if DEBUG == 1462
+
+#if DISJOINT_SETS == _FALSE
+
+		i_EdgeCount = (signed) v2i_EdgeVertexMap.size();
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Edge Set Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(vi_EdgeSetMap[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Set Edge Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			i_MemberCount = (signed) v2i_SetEdgeMap[i].size();
+
+			if(i_MemberCount == _FALSE)
+			{
+				continue;
+			}
+
+			cout<<"Set "<<STEP_UP(i)<<"\t"<<" : ";
+
+			for(j=0; j<i_MemberCount; j++)
+			{
+				if(j == STEP_DOWN(i_MemberCount))
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<" ("<<i_MemberCount<<")"<<endl;
+				}
+				else
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+
+#endif
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+
+	//cerr<<"START End Coloring ds_DisjointSets.Print()"<<endl;
+	//m_ds_DisjointSets.Print();
+	//cerr<<"END ds_DisjointSets.Print()"<<endl;
+	//Pause();
+		return(_TRUE);
+	}
+
+	//Public Function 1462
+	int GraphColoring::AcyclicColoring(vector<int> & vi_Sets, map< int, vector<int> > & mivi_VertexSets)
+	{
+//#define DEBUG 1462
+		//if(CheckVertexColoring("ACYCLIC"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k;
+
+		int i_VertexCount, i_EdgeCount;
+
+		int i_AdjacentEdgeID, i_EdgeID, i_SetID;
+
+		int i_PresentVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree;
+		vector<int> vi_FirstVisitedOne, vi_FirstVisitedTwo;
+
+		map< int, map<int, int> > mimi2_VertexEdgeMap;
+
+#if DISJOINT_SETS == _FALSE
+
+		int l;
+
+		int i_MemberCount;
+
+		int i_SmallerSetID, i_BiggerSetID;
+
+		vector<int> vi_DisjointSets;
+		vector<int> vi_MemberEdges;
+		vector<int> vi_EdgeSetMap;
+
+		vector< vector<int> > v2i_SetEdgeMap;
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		int i_SetOneID, i_SetTwoID;
+
+		//DisjointSets ds_DisjointSets;
+
+#endif
+
+		if(m_s_VertexColoringVariant.compare("ALL") != 0)
+		{
+			m_s_VertexColoringVariant = "ACYCLIC";
+		}
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		k=_FALSE;
+
+		//populate mimi2_VertexEdgeMap
+		//Basically assign a number (k = 1, 2, 3 ...) for each edge of the graph
+		mimi2_VertexEdgeMap.clear();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					mimi2_VertexEdgeMap[i][m_vi_Edges[j]] = k;
+
+					k++;
+				}
+			}
+		}
+
+#if DEBUG == 1462
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Edge Vertex Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+				cout<<"Edge "<<STEP_UP(mimi2_VertexEdgeMap[i][m_vi_Edges[j]])<<"\t"<<" : "<<STEP_UP(i)<<" - "<<STEP_UP(m_vi_Edges[j])<<endl;
+				}
+			}
+		}
+
+		cout<<endl;
+
+#endif
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenOne.clear();
+		vi_FirstSeenOne.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenTwo.clear();
+		vi_FirstSeenTwo.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstSeenThree.clear();
+		vi_FirstSeenThree.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_FirstVisitedOne.clear();
+		vi_FirstVisitedOne.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		vi_FirstVisitedTwo.clear();
+		vi_FirstVisitedTwo.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+//cout<<"*1"<<endl;
+#if DISJOINT_SETS == _FALSE
+
+		vi_MemberEdges.clear();
+
+		vi_EdgeSetMap.clear();
+		vi_EdgeSetMap.resize((unsigned) i_EdgeCount/2, _UNKNOWN);
+
+		v2i_SetEdgeMap.clear();
+		v2i_SetEdgeMap.resize((unsigned) i_EdgeCount/2);
+
+		vi_DisjointSets.clear();
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+
+		m_ds_DisjointSets.SetSize(i_EdgeCount/2);
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+//cout<<"*11 i_VertexCount="<<i_VertexCount<<endl;
+		for(i=0; i<i_VertexCount; i++)
+		{
+//cout<<"*12 m_vi_OrderedVertices="<<m_vi_OrderedVertices.size()<<endl;
+			i_PresentVertex = m_vi_OrderedVertices[i];
+//cout<<"*13 i_PresentVertex="<<i_PresentVertex<<endl;
+
+#if VERBOSE == _TRUE
+//#if DEBUG == 1462
+
+			cout<<"DEBUG 1462 | Acyclic Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] == i_PresentVertex)
+					{
+						continue;
+					}
+
+#if DISJOINT_SETS == _TRUE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]);
+					}
+					else
+					{
+						i_SetID = m_ds_DisjointSets.FindAndCompress(mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]);
+					}
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+					if(m_vi_Edges[j] < m_vi_Edges[k])
+					{
+						i_SetID = vi_EdgeSetMap[mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]]];
+					}
+					else
+					{
+						i_SetID = vi_EdgeSetMap[mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]]];
+					}
+#endif
+
+					FindCycle(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], i_SetID, vi_CandidateColors, vi_FirstVisitedOne, vi_FirstVisitedTwo);
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(m_i_VertexColorCount < j)
+					{
+						m_i_VertexColorCount = j;
+					}
+
+					break;
+				}
+			}
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(i_PresentVertex < m_vi_Edges[j])
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i_PresentVertex][m_vi_Edges[j]];
+				}
+				else
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[m_vi_Edges[j]][i_PresentVertex];
+				}
+
+#if DISJOINT_SETS == _FALSE
+
+				vi_DisjointSets.push_back(_TRUE);
+
+				vi_EdgeSetMap[i_EdgeID] = STEP_DOWN((signed) vi_DisjointSets.size());
+
+				v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].push_back(i_EdgeID);
+#endif
+
+//cout<<"*2"<<endl;
+				i_AdjacentEdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], i_PresentVertex, mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+				if(i_AdjacentEdgeID != _UNKNOWN)
+				{
+
+#if DISJOINT_SETS == _TRUE
+
+					i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+					i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1462
+
+					cout<<endl;
+					cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+					m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1462
+
+					cout<<endl;
+					cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+					cout<<endl;
+
+#endif
+
+					if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+					{
+						i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+					else
+					{
+						i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+						i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+					}
+
+					vi_MemberEdges.clear();
+					vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+					vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+					i_MemberCount = (signed) vi_MemberEdges.size();
+
+					for(k=0; k<i_MemberCount; k++)
+					{
+						vi_EdgeSetMap[vi_MemberEdges[k]] = i_SmallerSetID;
+
+						v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[k]);
+					}
+#endif
+				}
+			}
+
+
+//cout<<"*3"<<endl;
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == m_vi_VertexColors[i_PresentVertex])
+					{
+						if(m_vi_Edges[j] <  m_vi_Edges[k])
+						{
+							i_AdjacentEdgeID = mimi2_VertexEdgeMap[m_vi_Edges[j]][m_vi_Edges[k]];
+						}
+						else
+						{
+							i_AdjacentEdgeID = mimi2_VertexEdgeMap[m_vi_Edges[k]][m_vi_Edges[j]];
+						}
+
+						i_EdgeID = UpdateSet(i_PresentVertex, m_vi_Edges[j], m_vi_Edges[k], mimi2_VertexEdgeMap, vi_FirstSeenOne, vi_FirstSeenTwo, vi_FirstSeenThree);
+
+						if(i_EdgeID != _UNKNOWN)
+						{
+
+#if DISJOINT_SETS == _TRUE
+
+							i_SetOneID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+							i_SetTwoID = m_ds_DisjointSets.FindAndCompress(i_AdjacentEdgeID);
+
+#if DEBUG == 1462
+							cout<<endl;
+							cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(i_SetOneID)<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(i_SetTwoID)<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+							m_ds_DisjointSets.UnionBySize(i_SetOneID, i_SetTwoID);
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+#if DEBUG == 1462
+
+							cout<<endl;
+							cout<<"DEBUG 1462 | Acyclic Coloring | Unify Tree | Tree "<<STEP_UP(vi_EdgeSetMap[i_EdgeID])<<" (Edge "<<STEP_UP(i_EdgeID)<<") and Tree "<<STEP_UP(vi_EdgeSetMap[i_AdjacentEdgeID])<<" (Edge "<<STEP_UP(i_AdjacentEdgeID)<<")"<<endl;
+							cout<<endl;
+
+#endif
+
+							if(v2i_SetEdgeMap[vi_EdgeSetMap[i_EdgeID]].size() < v2i_SetEdgeMap[vi_EdgeSetMap[i_AdjacentEdgeID]].size())
+							{
+								i_SmallerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_BiggerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+							else
+							{
+								i_BiggerSetID = vi_EdgeSetMap[i_EdgeID];
+								i_SmallerSetID = vi_EdgeSetMap[i_AdjacentEdgeID];
+							}
+
+							vi_MemberEdges.clear();
+							vi_MemberEdges.swap(v2i_SetEdgeMap[i_BiggerSetID]);
+
+							vi_DisjointSets[i_BiggerSetID] = _FALSE;
+
+							i_MemberCount = (signed) vi_MemberEdges.size();
+
+							for(l=0; l<i_MemberCount; l++)
+							{
+								vi_EdgeSetMap[vi_MemberEdges[l]] = i_SmallerSetID;
+
+								v2i_SetEdgeMap[i_SmallerSetID].push_back(vi_MemberEdges[l]);
+							}
+
+#endif
+						}
+					}
+				}
+			}
+
+#if DEBUG == 1462
+
+			cout<<endl;
+			cout<<"DEBUG 1462 | Acyclic Coloring | Vertex Colors | Upto Vertex "<<STEP_UP(i_PresentVertex)<<endl;
+			cout<<endl;
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				cout<<"Vertex "<<STEP_UP(j)<<" = "<<STEP_UP(m_vi_VertexColors[j])<<endl;
+			}
+#endif
+
+		}
+
+
+#if DEBUG == 1462
+
+#if DISJOINT_SETS == _FALSE
+
+		i_EdgeCount = (signed) v2i_EdgeVertexMap.size();
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Edge Set Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			cout<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(vi_EdgeSetMap[i])<<endl;
+		}
+
+		cout<<endl;
+		cout<<"DEBUG 1462 | Acyclic Coloring | Set Edge Map"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			i_MemberCount = (signed) v2i_SetEdgeMap[i].size();
+
+			if(i_MemberCount == _FALSE)
+			{
+				continue;
+			}
+
+			cout<<"Set "<<STEP_UP(i)<<"\t"<<" : ";
+
+			for(j=0; j<i_MemberCount; j++)
+			{
+				if(j == STEP_DOWN(i_MemberCount))
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<" ("<<i_MemberCount<<")"<<endl;
+				}
+				else
+				{
+					cout<<STEP_UP(v2i_SetEdgeMap[i][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+
+#endif
+
+#endif
+
+#if VERBOSE == _TRUE
+
+		cout<<endl;
+
+#endif
+
+#if DISJOINT_SETS == _TRUE
+//cout<<"*Here is the difference"<<endl;
+//m_ds_DisjointSets.Print();
+		vi_Sets.clear();
+		mivi_VertexSets.clear();
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(i=0; i<i_VertexCount; i++) // for each vertex A (indexed by i)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++) // for each of the vertex B that connect to A
+			{
+				if(i < m_vi_Edges[j]) // if the index of A (i) is less than the index of B (m_vi_Edges[j])
+										//basic each edge is represented by (vertex with smaller ID, vertex with larger ID). This way, we don't insert a specific edge twice
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i][m_vi_Edges[j]];
+
+					i_SetID = m_ds_DisjointSets.FindAndCompress(i_EdgeID);
+
+					if(i_SetID == i_EdgeID) // that edge is the root of the set => create new set
+					{
+						vi_Sets.push_back(i_SetID);
+					}
+
+					mivi_VertexSets[i_SetID].push_back(i);
+					mivi_VertexSets[i_SetID].push_back(m_vi_Edges[j]);
+				}
+			}
+		}
+//cout<<"*Am I here?"<<endl;
+
+#endif
+
+#if DISJOINT_SETS == _FALSE
+
+		vi_Sets.clear();
+		mivi_VertexSets.clear();
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < m_vi_Edges[j])
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i][m_vi_Edges[j]];
+
+					i_SetID = vi_EdgeSetMap[i_EdgeID];
+
+					if(mivi_VertexSets[i_SetID].empty())
+					{
+						vi_Sets.push_back(i_SetID);
+					}
+
+					mivi_VertexSets[i_SetID].push_back(i);
+					mivi_VertexSets[i_SetID].push_back(m_vi_Edges[j]);
+				}
+			}
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1463
+	int GraphColoring::CheckAcyclicColoring()
+	{
+		int i;
+
+		int i_VertexCount;
+
+		int i_ViolationCount;
+
+		vector<int> vi_TouchedVertices;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		i_ViolationCount = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_TouchedVertices.clear();
+			vi_TouchedVertices.resize((unsigned) i_VertexCount, _FALSE);
+
+			vi_TouchedVertices[i] = _TRUE;
+
+			i_ViolationCount = SearchDepthFirst(i, i, i, vi_TouchedVertices);
+		}
+
+		if(i_ViolationCount)
+		{
+			cout<<endl;
+			cout<<"[Total Violations = "<<i_ViolationCount<<"]"<<endl;
+			cout<<endl;
+		}
+
+		return(i_ViolationCount);
+	}
+
+
+	//Public Function 1464
+	int GraphColoring::TriangularColoring()
+	{
+		//if(CheckVertexColoring("TRIANGULAR"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k, l;
+
+		int _FOUND;
+
+		int i_VertexCount, i_VertexDegree;
+
+		int i_HighestVertexDegree;
+
+		int i_PresentVertex;
+
+		vector<int> vi_VertexHierarchy;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		i_VertexCount = (signed) m_vi_OrderedVertices.size();
+
+		vi_VertexHierarchy.clear();
+		vi_VertexHierarchy.resize((unsigned) i_VertexCount);
+
+		v2i_VertexAdjacency.clear();
+		v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_VertexHierarchy[m_vi_OrderedVertices[i]] = i;
+		}
+
+		//m_vi_VertexColors.clear();
+		//m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		m_i_VertexColorCount = _UNKNOWN;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1464 | Triangular Coloring | Processing Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				v2i_VertexAdjacency[i_PresentVertex].push_back(m_vi_Edges[j]);
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if((vi_VertexHierarchy[m_vi_Edges[j]] > vi_VertexHierarchy[i_PresentVertex]) && (vi_VertexHierarchy[m_vi_Edges[j]] > vi_VertexHierarchy[m_vi_Edges[k]]))
+					{
+						_FOUND = _FALSE;
+
+						for(l=m_vi_Vertices[m_vi_Edges[k]]; l<m_vi_Vertices[STEP_UP(m_vi_Edges[k])]; l++)
+						{
+							if(m_vi_Edges[l] == i_PresentVertex)
+							{
+								_FOUND = TRUE;
+
+								break;
+							}
+						}
+
+						if(_FOUND == _FALSE)
+						{
+							v2i_VertexAdjacency[i_PresentVertex].push_back(m_vi_Edges[k]);
+						}
+					}
+				}
+			}
+		}
+
+		m_vi_Vertices.clear();
+		m_vi_Edges.clear();
+
+		i_HighestVertexDegree = _UNKNOWN;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+
+			if(i_HighestVertexDegree < i_VertexDegree)
+			{
+				i_HighestVertexDegree = i_VertexDegree;
+			}
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				m_vi_Edges.push_back(v2i_VertexAdjacency[i][j]);
+			}
+
+			v2i_VertexAdjacency[i].clear();
+		}
+
+		m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+#if DEBUG == 1464
+
+		int i_EdgeCount;
+
+		cout<<endl;
+		cout<<"DEBUG 1464 | Graph Coloring | Induced Matrix"<<endl;
+		cout<<endl;
+
+		i_VertexCount = (signed) m_vi_Vertices.size();
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				cout<<"Element["<<STEP_UP(i)<<"]["<<STEP_UP(m_vi_Edges[j])<<"] = 1"<<endl;
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Induced Vertices = "<<STEP_DOWN(i_VertexCount)<<"; Induced Edges = "<<i_EdgeCount<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		SmallestLastOrdering();
+
+		return(DistanceOneColoring());
+	}
+
+
+
+	//Public Function 1465
+	int GraphColoring::ModifiedTriangularColoring()
+	{
+		//if(CheckVertexColoring("MODIFIED TRIANGULAR"))
+		//{
+		//	return(_TRUE);
+		//}
+
+		int i, j, k;
+
+		int i_VertexCount;
+
+		int i_HighestColor;
+
+		int i_PresentVertex;
+
+		vector<int> vi_CandidateColors;
+
+		vector<int> vi_VertexHierarchy;
+
+		i_VertexCount = (signed) m_vi_OrderedVertices.size();
+
+		vi_VertexHierarchy.clear();
+		vi_VertexHierarchy.resize((unsigned) i_VertexCount);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_VertexHierarchy[m_vi_OrderedVertices[i]] = i;
+		}
+
+		m_vi_VertexColors.clear();
+		m_vi_VertexColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_CandidateColors.clear();
+		vi_CandidateColors.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		i_HighestColor = _UNKNOWN;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_PresentVertex = m_vi_OrderedVertices[i];
+
+#if VERBOSE == _TRUE
+
+			cout<<"DEBUG 1465 | Triangular Coloring | Coloring Vertex "<<STEP_UP(i_PresentVertex)<<"/"<<i_VertexCount<<endl;
+
+#endif
+
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				if(m_vi_VertexColors[m_vi_Edges[j]] != _UNKNOWN)
+				{
+					vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[j]]] = i_PresentVertex;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(m_vi_Edges[k] == i_PresentVertex)
+					{
+						continue;
+					}
+
+					if(m_vi_VertexColors[m_vi_Edges[k]] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if((vi_VertexHierarchy[m_vi_Edges[j]] > vi_VertexHierarchy[i_PresentVertex]) && (vi_VertexHierarchy[m_vi_Edges[j]] > vi_VertexHierarchy[m_vi_Edges[k]]))
+					{
+						vi_CandidateColors[m_vi_VertexColors[m_vi_Edges[k]]] = i_PresentVertex;
+					}
+				}
+			}
+
+			for(j=0; j<i_VertexCount; j++)
+			{
+				if(vi_CandidateColors[j] != i_PresentVertex)
+				{
+					m_vi_VertexColors[i_PresentVertex] = j;
+
+					if(i_HighestColor < j)
+					{
+						i_HighestColor = j;
+					}
+
+					break;
+				}
+			}
+		}
+
+		return(_TRUE);
+}
+
+	//Public Function 1466
+	int GraphColoring::CheckTriangularColoring()
+	{
+		return(CheckAcyclicColoring());
+	}
+
+
+	//Public Function 1467
+	string GraphColoring::GetVertexColoringVariant()
+	{
+		return(m_s_VertexColoringVariant);
+	}
+
+	void GraphColoring::SetVertexColoringVariant(string s_VertexColoringVariant)
+	{
+		m_s_VertexColoringVariant = s_VertexColoringVariant;
+	}
+
+
+	//Public Function 1468
+	int GraphColoring::GetVertexColorCount()
+	{
+		return(STEP_UP(m_i_VertexColorCount));
+	}
+
+
+	//Public Function 1469
+	void GraphColoring::GetVertexColors(vector<int> &output)
+	{
+		output = (m_vi_VertexColors);
+	}
+
+
+	//Public Function 1470
+	int GraphColoring::GetHubCount()
+	{
+		if(CheckVertexColoring("STAR"))
+		{
+			return(m_i_ColoringUnits);
+		}
+		else
+		{
+			return(_UNKNOWN);
+		}
+	}
+
+
+	//Public Function 1471
+	int GraphColoring::GetSetCount()
+	{
+		if(CheckVertexColoring("ACYCLIC"))
+		{
+			return(m_i_ColoringUnits);
+		}
+		else
+		{
+			return(_UNKNOWN);
+		}
+	}
+
+	//Public Function 1472
+	double GraphColoring::GetVertexColoringTime()
+	{
+		return(m_d_ColoringTime);
+	}
+
+	//Public Function 1473
+	double GraphColoring::GetVertexColoringCheckingTime()
+	{
+		return(m_d_CheckingTime);
+	}
+
+	//Public Function 1474
+	int GraphColoring::PrintVertexColors()
+	{
+		int i;
+
+		int i_VertexCount;
+
+		string _SLASH("/");
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		m_s_InputFile = SlashTokenizer.GetLastToken();
+
+		i_VertexCount = (signed) m_vi_VertexColors.size();
+
+		cout<<endl;
+		cout<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | Vertex Colors | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			cout<<"Vertex "<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_VertexColors[i])<<endl;
+		}
+
+#if STATISTICS == _TRUE
+
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Stars = "<<m_i_ColoringUnits<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Sets = "<<m_i_ColoringUnits<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+
+#endif
+
+#if STATISTICS == _FALSE
+
+
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Sequencing Time = "<<m_d_SequencingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+
+		}
+
+#endif
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1475
+	int GraphColoring::FileVertexColors()
+	{
+		int i;
+
+		int i_VertexCount;
+
+		string s_InputFile, s_OutputFile;
+
+		string s_ColoringExtension, s_OrderingExtension;
+
+		string _SLASH("/");
+
+		ofstream OutputStream;
+
+		//Determine Ordering Suffix
+
+		if(m_s_VertexOrderingVariant.compare("NATURAL") == 0)
+		{
+			s_OrderingExtension = ".N.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("LARGEST_FIRST") == 0)
+		{
+			s_OrderingExtension = ".LF.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE_TWO_LARGEST_FIRST") == 0)
+		{
+			s_OrderingExtension = ".D2LF.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SMALLEST_LAST") == 0)
+		{
+			s_OrderingExtension = ".SL.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE_TWO_SMALLEST_LAST") == 0)
+		{
+			s_OrderingExtension = ".D2SL.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("INCIDENCE_DEGREE") == 0)
+		{
+			s_OrderingExtension = ".ID.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE_TWO_INCIDENCE_DEGREE") == 0)
+		{
+			s_OrderingExtension = ".D2ID.";
+		}
+		else
+		{
+			s_OrderingExtension = ".NONE.";
+		}
+
+		//Determine Coloring Suffix
+
+		if(m_s_VertexColoringVariant.compare("DISTANCE_ONE") == 0)
+		{
+			s_ColoringExtension = ".D1.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("DISTANCE_TWO") == 0)
+		{
+			s_ColoringExtension = ".D2.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("NAIVE_STAR") == 0)
+		{
+			s_ColoringExtension = ".NS.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("RESTRICTED_STAR") == 0)
+		{
+			s_ColoringExtension = ".RS.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			s_ColoringExtension = ".S.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			s_ColoringExtension = ".A.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			s_ColoringExtension = ".T.";
+		}
+		else
+		{
+			s_ColoringExtension = ".NONE.";
+		}
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		s_InputFile = SlashTokenizer.GetLastToken();
+
+		s_OutputFile = s_InputFile;
+		s_OutputFile += s_OrderingExtension;
+		s_OutputFile += s_ColoringExtension;
+		s_OutputFile += ".out";
+
+		OutputStream.open(s_OutputFile.c_str());
+
+		i_VertexCount = (signed) m_vi_VertexColors.size();
+
+		OutputStream<<endl;
+		OutputStream<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | Vertex Colors | "<<m_s_InputFile<<endl;
+		OutputStream<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			OutputStream<<"Vertex "<<STEP_UP(i)<<"\t"<<" : "<<STEP_UP(m_vi_VertexColors[i])<<endl;
+		}
+
+#if STATISTICS == _TRUE
+
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Stars = "<<m_i_ColoringUnits<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Sets = "<<m_i_ColoringUnits<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+
+#endif
+
+#if STATISTICS == _FALSE
+
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Sequencing Time = "<<m_d_SequencingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+
+#endif
+
+		OutputStream.close();
+
+		return(_TRUE);
+	}
+
+
+
+	//Public Function 1476
+	int GraphColoring::PrintVertexColoringMetrics()
+	{
+		cout<<endl;
+		cout<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+#if STATISTICS == _TRUE
+
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Stars = "<<m_i_ColoringUnits<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()/2<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Sets = "<<m_i_ColoringUnits<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()/2<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()/2<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+
+#endif
+
+#if STATISTICS == _FALSE
+
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()/2<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Sequencing Time = "<<m_d_SequencingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		{
+			cout<<endl;
+			cout<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			cout<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()/2<<"]"<<endl;
+			cout<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			cout<<endl;
+
+		}
+
+#endif
+
+		return(_TRUE);
+
+	}
+
+	//Public Function 1477
+	int GraphColoring::FileVertexColoringMetrics()
+	{
+		string s_InputFile, s_OutputFile;
+
+		string s_ColoringExtension, s_OrderingExtension;
+
+		string _SLASH("/");
+
+		ofstream OutputStream;
+
+		//Determine Ordering Suffix
+
+		if(m_s_VertexOrderingVariant.compare("ALL") == 0)
+		{
+			s_OrderingExtension = ".ALL.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("NATURAL") == 0)
+		{
+			s_OrderingExtension = ".N.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("LARGEST FIRST") == 0)
+		{
+			s_OrderingExtension = ".LF.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE TWO LARGEST FIRST") == 0)
+		{
+			s_OrderingExtension = ".D2LF.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("SMALLEST LAST") == 0)
+		{
+			s_OrderingExtension = ".SL.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE TWO SMALLEST LAST") == 0)
+		{
+			s_OrderingExtension = ".D2SL.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("INCIDENCE DEGREE") == 0)
+		{
+			s_OrderingExtension = ".ID.";
+		}
+		else
+		if(m_s_VertexOrderingVariant.compare("DISTANCE TWO INCIDENCE DEGREE") == 0)
+		{
+			s_OrderingExtension = ".D2ID.";
+		}
+		else
+		{
+			s_OrderingExtension = ".NONE.";
+		}
+
+		//Determine Coloring Suffix
+
+		if(m_s_VertexColoringVariant.compare("ALL") == 0)
+		{
+			s_ColoringExtension = ".ALL.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("DISTANCE ONE") == 0)
+		{
+			s_ColoringExtension = ".D1.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("DISTANCE TWO") == 0)
+		{
+			s_ColoringExtension = ".D2.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("NAIVE STAR") == 0)
+		{
+			s_ColoringExtension = ".NS.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("RESTRICTED STAR") == 0)
+		{
+			s_ColoringExtension = ".RS.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			s_ColoringExtension = ".S.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			s_ColoringExtension = ".A.";
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			s_ColoringExtension = ".T.";
+		}
+		else
+		{
+			s_ColoringExtension = ".NONE.";
+		}
+
+		StringTokenizer SlashTokenizer(m_s_InputFile, _SLASH);
+
+		s_InputFile = SlashTokenizer.GetLastToken();
+
+		s_OutputFile = s_InputFile;
+		s_OutputFile += s_OrderingExtension;
+		s_OutputFile += s_ColoringExtension;
+		s_OutputFile += ".out";
+
+		OutputStream.open(s_OutputFile.c_str(), ios::app);
+
+		OutputStream<<endl;
+		OutputStream<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+		OutputStream<<endl;
+
+#if STATISTICS == _TRUE
+
+		if(m_s_VertexColoringVariant.compare("STAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Stars = "<<m_i_ColoringUnits<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("ACYCLIC") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"; Total Sets = "<<m_i_ColoringUnits<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+
+#endif
+
+#if STATISTICS == _FALSE
+
+		if(m_s_VertexColoringVariant.compare("TRIANGULAR") == 0)
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Sequencing Time = "<<m_d_SequencingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+		else
+		{
+			OutputStream<<endl;
+			OutputStream<<"[Total Colors = "<<STEP_UP(m_i_VertexColorCount)<<"]"<<endl;
+			OutputStream<<"[Vertex Count = "<<STEP_DOWN(m_vi_Vertices.size())<<"; Edge Count = "<<m_vi_Edges.size()<<"]"<<endl;
+			OutputStream<<"[Ordering Time = "<<m_d_OrderingTime<<"; Coloring Time = "<<m_d_ColoringTime<<"]"<<endl;
+			OutputStream<<endl;
+		}
+
+#endif
+
+		OutputStream.close();
+
+		return(_TRUE);
+
+	}
+
+
+	//Public Function 1478
+	void GraphColoring::PrintVertexColorClasses()
+	{
+		if(CalculateVertexColorClasses() != _TRUE)
+		{
+			cout<<endl;
+			cout<<"Vertex Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<" | Vertex Colors Not Set"<<endl;
+			cout<<endl;
+
+			return;
+		}
+
+		cout<<endl;
+		cout<<"Vertex Color Classes | "<<m_s_VertexColoringVariant<<" Coloring | "<<m_s_VertexOrderingVariant<<" Ordering | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		int i_TotalVertexColors = STEP_UP(m_i_VertexColorCount);
+
+		for(int i = 0; i < i_TotalVertexColors; i++)
+		{
+			if(m_vi_VertexColorFrequency[i] <= 0)
+			{
+				continue;
+			}
+
+			cout<<"Color "<<STEP_UP(i)<<" : "<<m_vi_VertexColorFrequency[i]<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Largest Color Class : "<<STEP_UP(m_i_LargestColorClass)<<"; Largest Color Class Size : "<<m_i_LargestColorClassSize<<"]"<<endl;
+		cout<<"[Smallest Color Class : "<<STEP_UP(m_i_SmallestColorClass)<<"; Smallest Color Class Size : "<<m_i_SmallestColorClassSize<<"]"<<endl;
+		cout<<"[Average Color Class Size : "<<m_d_AverageColorClassSize<<"]"<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	double** GraphColoring::GetSeedMatrix(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		if(seed_available) Seed_reset();
+
+		dp2_Seed = GetSeedMatrix_unmanaged(i_SeedRowCount, i_SeedColumnCount);
+		i_seed_rowCount = *i_SeedRowCount;
+		seed_available = true;
+
+		return dp2_Seed;
+	}
+
+	double** GraphColoring::GetSeedMatrix_unmanaged(int* i_SeedRowCount, int* i_SeedColumnCount) {
+
+		int i_size = m_vi_VertexColors.size();
+		int i_num_of_colors = m_i_VertexColorCount + 1;
+		(*i_SeedRowCount) = i_size;
+		(*i_SeedColumnCount) = i_num_of_colors;
+		if(i_num_of_colors == 0 || i_size == 0) {return NULL;}
+		double** Seed = new double*[i_size];
+
+		// allocate and initialize Seed matrix
+		for (int i=0; i<i_size; i++) {
+			Seed[i] = new double[i_num_of_colors];
+			for(int j=0; j<i_num_of_colors; j++) Seed[i][j]=0.;
+		}
+
+		// populate Seed matrix
+		for (int i=0; i < i_size; i++) {
+			Seed[i][m_vi_VertexColors[i]] = 1.;
+		}
+
+		return Seed;
+	}
+
+	void GraphColoring::Seed_init() {
+		seed_available = false;
+
+		i_seed_rowCount = 0;
+		dp2_Seed = NULL;
+	}
+
+	void GraphColoring::Seed_reset() {
+		if(seed_available) {
+			seed_available = false;
+
+			free_2DMatrix(dp2_Seed, i_seed_rowCount);
+			dp2_Seed = NULL;
+			i_seed_rowCount = 0;
+		}
+	}
+
+
+	int GraphColoring::CheckQuickDistanceTwoColoring(int Verbose)
+	{
+		if (m_i_MaximumVertexDegree <= STEP_UP(m_i_VertexColorCount)) return 0;
+
+		// If the code reaches this place, DistanceTwoColoring() must have run INcorrectly.
+		// Find the 2 vertices within distance-2 have the same color
+		if (Verbose < 1) return 1;
+
+		//First, if the vertex with Maximum Degree, i.e. the max number of vertices that a vertex connects to
+		int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+		int i_VertexWithMaxDegree = -1;
+		int i_MaximumVertexDegree = -1;
+		int i_VertexDegree = -1;
+
+		for (int i = 0; i < i_VertexCount; i++)
+		{
+			i_VertexDegree = m_vi_Vertices[i + 1] - m_vi_Vertices[i];
+
+			if(i_MaximumVertexDegree < i_VertexDegree)
+			{
+				i_MaximumVertexDegree = i_VertexDegree;
+				i_VertexWithMaxDegree = i;
+			}
+		}
+
+		cout<<"VertexWithMaxDegree = "<< i_VertexWithMaxDegree <<"; MaximumVertexDegree = "<< i_MaximumVertexDegree <<endl;
+		if (Verbose < 2) return 1;
+
+		for (int i = m_vi_Vertices[i_VertexWithMaxDegree]; i < m_vi_Vertices[i_VertexWithMaxDegree + 1] - 1; i++) {
+			//printf("\t*i = %d \n",i);
+			for (int j = i + 1; j < m_vi_Vertices[i_VertexWithMaxDegree + 1]; j++) {
+				if (m_vi_VertexColors[m_vi_Edges[i]] == m_vi_VertexColors[m_vi_Edges[j]])
+					printf("\t m_vi_VertexColors[m_vi_Edges[i(%d)](%d)](%d) == m_vi_VertexColors[m_vi_Edges[j(%d)](%d)](%d)\n", i, m_vi_Edges[i], m_vi_VertexColors[m_vi_Edges[i]], j, m_vi_Edges[j], m_vi_VertexColors[m_vi_Edges[j]]);
+			}
+		}
+
+		return 1;
+	}
+
+	int GraphColoring::CheckDistanceTwoColoring(int Verbose) {
+		//int i = 0;
+		int j = 0, k = 0;
+		int i_PresentVertex, i_DistanceOneVertex, i_DistanceTwoVertex;
+		int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(i_PresentVertex=0; i_PresentVertex<i_VertexCount; i_PresentVertex++)
+		{
+
+			//For each Distance-One Vertex, do ...
+			for(j=m_vi_Vertices[i_PresentVertex]; j<m_vi_Vertices[STEP_UP(i_PresentVertex)]; j++)
+			{
+				i_DistanceOneVertex = m_vi_Edges[j];
+				if(m_vi_VertexColors[i_PresentVertex] == m_vi_VertexColors[i_DistanceOneVertex]) {
+					//Violate the requirement for DistanceTwoColoring(). Print error
+					if (Verbose < 1) return 1;
+					printf("D1 VIOLATION. m_vi_VertexColors[i_PresentVertex(%d)](%d) == m_vi_VertexColors[i_DistanceOneVertex(%d)](%d) \n", i_PresentVertex, m_vi_VertexColors[i_PresentVertex], i_DistanceOneVertex, m_vi_VertexColors[i_DistanceOneVertex]);
+					if (Verbose < 2) return 1;
+				}
+
+				//For each Distance-Two Vertex, do ...
+				for(k=m_vi_Vertices[i_DistanceOneVertex]; k<m_vi_Vertices[STEP_UP(i_DistanceOneVertex)]; k++)
+				{
+					i_DistanceTwoVertex = m_vi_Edges[k];
+
+					if(i_DistanceTwoVertex == i_PresentVertex) continue; //We don't want to make a loop. Ignore this case
+
+					if(m_vi_VertexColors[i_PresentVertex] == m_vi_VertexColors[i_DistanceTwoVertex]) {
+						//Violate the requirement for DistanceTwoColoring(). Print error
+						if (Verbose < 1) return 1;
+						printf("D2 VIOLATION. m_vi_VertexColors[i_PresentVertex(%d)](%d) == m_vi_VertexColors[i_DistanceTwoVertex(%d)](%d) \n", i_PresentVertex, m_vi_VertexColors[i_PresentVertex], i_DistanceTwoVertex, m_vi_VertexColors[i_DistanceTwoVertex]);
+						printf("\t i_PresentVertex(%d) and i_DistanceTwoVertex(%d) connected through i_DistanceOneVertex(%d) \n", i_PresentVertex, i_DistanceTwoVertex, i_DistanceOneVertex);
+						if (Verbose < 2) return 1;
+					}
+				}
+			}
+		}
+		return 0;
+	}
+
+	void GraphColoring::SetStringVertexColoringVariant(string s)
+	{
+		m_s_VertexColoringVariant = s;
+	}
+
+	void GraphColoring::SetVertexColorCount(int i_VertexColorCount)
+	{
+		m_i_VertexColorCount = i_VertexColorCount;
+	}
+
+#ifndef _OPENMP
+//Public Function 
+int GraphColoring::D1_Coloring_OMP(){ printf("OpenMP is disabled. Recompile the code with correct flag\n"); return _TRUE;}
+#endif
+
+#ifdef _OPENMP
+//Public Function 
+int GraphColoring::D1_Coloring_OMP(){
+    int nT=1;
+#pragma omp parallel
+    { nT = omp_get_num_threads(); }
+    double time1=0, time2=0, totalTime=0;
+    long NVer     = m_vi_Vertices.size()-1;  //number of nodes
+    //long NEdge    = m_vi_Edges.size()/2;     //number of edges 
+    int *verPtr   = &m_vi_Vertices[0];       //pointer to first vertex
+    int *verInd   = &m_vi_Edges[0];          //pointer to first edge
+    int MaxDegree = m_i_MaximumVertexDegree; //maxDegree
+    vector<int> vtxColor(NVer, -1);          //uncolored color is -1
+
+    // Build a vector of random numbers
+    double *randValues = (double*) malloc (NVer * sizeof(double));
+    if( randValues==nullptr) {printf("Not enough memory for array of %ld doubles\n",NVer); exit(1); }
+    int seed = 12345;
+    srand(seed);
+    for(int i=0; i<NVer; i++) randValues[i]= double(rand())/(RAND_MAX+1.0);
+
+    long *Q    = (long *) malloc (NVer * sizeof(long)); //assert(Q != 0);
+    long *Qtmp = (long *) malloc (NVer * sizeof(long)); //assert(Qtmp != 0);
+    long *Qswap;    
+    if( (Q == nullptr) || (Qtmp == nullptr) ) {
+        printf("Not enough memory to allocate for the two queues \n");
+        exit(1);
+    }
+    long QTail=0;    //Tail of the queue 
+    long QtmpTail=0; //Tail of the queue (implicitly will represent the size)
+
+#pragma omp parallel for
+    for (long i=0; i<NVer; i++) {
+        Q[i] = m_vi_OrderedVertices[i];
+        // Q[i]= i;     //Natural order
+        Qtmp[i]= -1; //Empty queue
+    }
+    QTail = NVer;	//Queue all vertices
+    /////////////////////////////////////////////////////////////////////////////////////////
+    //////////////////////////// START THE WHILE LOOP ///////////////////////////////////////
+    /////////////////////////////////////////////////////////////////////////////////////////
+    long nConflicts = 0; //Number of conflicts 
+    int nLoops = 0;     //Number of rounds of conflict resolution
+
+    do {
+        ///////////////////////////////////////// PART 1 ////////////////////////////////////////
+        //Color the vertices in parallel - do not worry about conflicts
+        time1 -= omp_get_wtime();
+#pragma omp parallel for
+        for (long Qi=0; Qi<QTail; Qi++) {
+            long v = Q[Qi]; //Q.pop_front();
+
+            //long adj1 =(long) verPtr[v];
+            //long adj2 =(long) verPtr[v+1];
+            int adj1 = verPtr[v];
+            int adj2 = verPtr[v+1];
+            bool *Mark = (bool *) malloc ( MaxDegree * sizeof(bool) );
+            //assert(Mark != 0);
+            for (int i=0; i<MaxDegree; i++)
+                Mark[i]= false;      
+
+            int maxColor = -1;
+            int adjColor = -1;
+            //Browse the adjacency set of vertex v
+            for(int k = adj1; k < adj2; k++ ) {
+                if ( v == verInd[k]) //Self-loops
+                    continue;
+                adjColor =  vtxColor[verInd[k]];
+                if ( adjColor >= 0 ) {
+                    //assert(adjColor < MaxDegree);
+                    Mark[adjColor] = true;
+                    //Find the largest color in the neighborhood
+                    if ( adjColor > maxColor )
+                        maxColor = adjColor;
+                }
+            } //End of for loop to traverse adjacency of v
+            int myColor;
+            for (myColor=0; myColor<=maxColor; myColor++) {
+                if ( Mark[myColor] == false )
+                    break;
+            }
+            if (myColor == maxColor)
+                myColor++; /* no available color with # less than cmax */      
+            vtxColor[v] = myColor; //Color the vertex
+
+            free(Mark);
+        } //End of outer for loop: for each vertex
+        time1  += omp_get_wtime();
+
+        //totalTime += time1;
+#ifdef PRINT_DETAILED_STATS_
+        printf("Time taken for Coloring:  %lf sec.\n", time1);
+#endif
+        ///////////////////////////////////////// PART 2 ////////////////////////////////////////
+        //Detect Conflicts:
+        //printf("Phase 2: Detect Conflicts, add to queue\n");    
+        //Add the conflicting vertices into a Q:
+        //Conflicts are resolved by changing the color of only one of the 
+        //two conflicting vertices, based on their random values 
+        time2 -= omp_get_wtime();
+#pragma omp parallel for
+        for (long Qi=0; Qi<QTail; Qi++) {
+            long v = Q[Qi]; //Q.pop_front();
+            long adj1 =(long) verPtr[v];
+            long adj2 =(long) verPtr[v+1];      
+            //Browse the adjacency set of vertex v
+            for(long k = adj1; k < adj2; k++ ) {
+                if ( v == verInd[k]) //Self-loops
+                    continue;
+                if ( vtxColor[v] == vtxColor[verInd[k]] ) {
+                    if ( (randValues[v] < randValues[verInd[k]]) || 
+                            ((randValues[v] == randValues[verInd[k]])&&(v < verInd[k])) ) {
+                        long whereInQ = __sync_fetch_and_add(&QtmpTail, 1);
+                        Qtmp[whereInQ] = v;//Add to the queue
+                        vtxColor[v] = -1;  //Will prevent v from being in conflict in another pairing
+                        break;
+                    }
+                } //End of if( vtxColor[v] == vtxColor[verInd[k]] )
+            } //End of inner for loop: w in adj(v)
+        } //End of outer for loop: for each vertex
+        time2  += omp_get_wtime();
+        //totalTime += time2;    
+        nConflicts += QtmpTail;
+        nLoops++;
+#ifdef PRINT_DETAILED_STATS_
+        printf("Num conflicts      : %ld \n", QtmpTail);
+        printf("Time for detection : %lf sec\n", time2);
+#endif
+        //Swap the two queues:
+        Qswap = Q;
+        Q = Qtmp; //Q now points to the second vector
+        Qtmp = Qswap;
+        QTail = QtmpTail; //Number of elements
+        QtmpTail = 0; //Symbolic emptying of the second queue    
+    } while (QTail > 0);
+
+    totalTime = time1+time2;
+    
+    //Check the number of colors used
+    int nColors = -1;
+    for (long v=0; v < NVer; v++ ) 
+        if (vtxColor[v] > nColors) nColors = vtxColor[v];
+
+
+#ifdef PRINT_DETAILED_STATS_
+    printf("***********************************************\n");
+    printf("Total number of threads    : %d \n", nT);    
+    printf("Total number of colors used: %d \n", nColors);    
+    printf("Number of conflicts overall: %ld \n", nConflicts);  
+    printf("Number of rounds           : %d \n", nLoops);      
+    printf("Total Time                 : %lf sec\n", totalTime);
+    printf("Time1                      : %lf sec\n", time1);
+    printf("Time2                      : %lf sec\n", time2);
+    printf("***********************************************\n");
+#endif  
+    // *totTime = totalTime;
+    //////////////////////////// /////////////////////////////////////////////////////////////
+    ///////////////////////////////// VERIFY THE COLORS /////////////////////////////////////
+    /////////////////////////////////////////////////////////////////////////////////////////
+    //Verify Results and Cleanup
+    int myConflicts = 0;
+#pragma omp parallel for
+    for (long v=0; v < NVer; v++ ) {
+        long adj1 = verPtr[v];
+        long adj2 = verPtr[v+1];
+        //Browse the adjacency set of vertex v
+        for(long k = adj1; k < adj2; k++ ) {
+            if ( v == verInd[k] ) //Self-loops
+                continue;
+            if ( vtxColor[v] == vtxColor[verInd[k]] ) {
+                __sync_fetch_and_add(&myConflicts, 1); //increment the counter
+            }
+        }//End of inner for loop: w in adj(v)
+    }//End of outer for loop: for each vertex
+    myConflicts = myConflicts / 2; //Have counted each conflict twice
+    
+    printf("nproc\t%d\t", nT);    
+    if (myConflicts > 0)
+        printf("Fail\t"); //printf("Check - WARNING: Number of conflicts detected after resolution: %d \n\n", myConflicts);
+    else
+        printf("Succ\t");//Check - SUCCESS: No conflicts exist\n\n");
+
+    printf("Color\t%d\t", nColors+1);    
+    printf("Time\t%lf\t", totalTime);
+    //printf("%lf\t", time1);
+    //printf("%lf\t", time2);
+    printf("Cnflct\t%ld\t", nConflicts);  
+    printf("Loops\t%d\n", nLoops);      
+    //Clean Up:
+    free(Q);
+    free(Qtmp);
+    free(randValues);
+
+    m_i_VertexColorCount=(unsigned int)(nColors);  //number of colors C <- nColors+1 //color 0 is an valid color 
+    //return nColors; //Return the number of colors used
+    return(_TRUE);
+}//end of function DistanceOneColoring_omp_cx
+#endif
+
+
+
+}//end of class GraphColoring
+//end of file GraphColoring
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphColoring.h
@@ -0,0 +1,380 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef GRAPHCOLORING_H
+#define GRAPHCOLORING_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group1
+	 *  @brief class GraphColoring in @link group1@endlink.
+
+	 Graph coloring is an assignment of consecutive integral numbers (each representing a color) to vertices,
+	 edges or faces or a combination of two or more of these objects of a graph such that it satisfes one or more
+	 constraints. The present version of ColPack provides methods for vertex coloring only. The minimum
+	 number of vertex colors required to color a graph is known as the chromatic number of the graph. The
+	 problem of finding the chromatic number for even a planar graph is NP-hard. ColPack features some of
+	 the most efficient approximation algorithms available to date for some of the vertex coloring problems.
+	 */
+	class GraphColoring : public GraphOrdering
+	{
+	public: //DOCUMENTED
+
+		///Return the Seed matrix based on existing coloring. This Seed matrix is managed and freed by ColPack
+		/** Precondition:
+		- the Graph has been colored
+
+		Postcondition:
+		- Size of the returned matrix is (*ip1_SeedRowCount) rows x (*ip1_SeedColumnCount) columns.
+		(*ip1_SeedRowCount) == num of columns of the original matrix == GetVertexCount()
+		(*ip1_SeedColumnCount) == num of colors used to color vertices == GetVertexColorCount().
+
+		Notes:
+		- This Seed matrix is managed and automatically freed by ColPack when the Graph object is deleted. Therefore, the user should NOT attempt to free the Seed matrix again.
+		*/
+		double** GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		/// Same as GetSeedMatrix(), except that this Seed matrix is NOT managed by ColPack
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		double** GetSeedMatrix_unmanaged(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		///Quick check to see if DistanceTwoColoring() ran correctly
+		/**
+		Return value:
+		- 1 when this function detects that DistanceTwoColoring() must have run INcorrectly.
+		- 0 otherwise
+
+		IMPORTANT: This is the quick check so if CheckQuickDistanceTwoColoring() return 1,
+		then DistanceTwoColoring() definitely ran INcorrectly.
+		However, when CheckQuickDistanceTwoColoring() return 0,
+		it doesn't mean that DistanceTwoColoring() ran correctly (it may, it may not).
+		To be 100% sure, use CheckDistanceTwoColoring()
+
+		Precondition: DistanceTwoColoring() has been run.
+
+		Parameter: int Verbose
+		- If Verbose == 0, this function only check and see if m_i_MaximumVertexDegree <= m_i_VertexColorCount + 1.
+		- If Verbose == 1, this function will print out the vertex with m_i_MaximumVertexDegree where the error can be detected.
+		- If Verbose == 2, this function will print out all the errors (violations) and then return.
+
+		Algorithm:
+		- See if m_i_MaximumVertexDegree <= STEP_UP(m_i_VertexColorCount).
+		If DistanceTwoColoring() ran correctly, this should be the case
+		- If m_i_MaximumVertexDegree > STEP_UP(m_i_VertexColorCount),
+		DistanceTwoColoring() ran INcorrectly and this function will go ahead and
+		find the 2 vertices within distance-2 have the same color
+		*/
+		int CheckQuickDistanceTwoColoring(int Verbose = 0);
+
+		/// Check to see if DistanceTwoColoring() ran correctly
+		/** 100% accurate but slow. For a quick check, use CheckQuickDistanceTwoColoring().
+
+		Return value:
+		- 1 when this function detects that DistanceTwoColoring() must have run INcorrectly.
+		- 0 means DistanceTwoColoring() must have run correctly.
+
+		Precondition: DistanceTwoColoring() has been run.
+
+		Parameter: int Verbose
+		- If Verbose == 0, this function will silently return after the first error is detected.
+		- If Verbose == 1, this function will print out the error message and return after the first error is detected.
+		- If Verbose == 2, this function will print out all the errors and then return.
+		*/
+		int CheckDistanceTwoColoring(int Verbose = 0);
+
+		int CalculateVertexColorClasses();
+
+	private:
+
+		int m_i_ColoringUnits;
+
+		//Private Function 1401
+		int FindCycle(int, int, int, int, vector<int> &, vector<int> &, vector<int> &);
+
+		//Private Function 1402
+		int UpdateSet(int, int, int, map< int, map<int, int> > &, vector<int> &, vector<int> &, vector<int> &);
+
+		//Private Function 1403
+		int SearchDepthFirst(int, int, int, vector<int> &);
+
+		//Private Function 1404
+		int CheckVertexColoring(string s_GraphColoringVariant);
+
+
+	protected:
+
+		int m_i_VertexColorCount;
+
+		int m_i_LargestColorClass;
+		int m_i_SmallestColorClass;
+
+		int m_i_LargestColorClassSize;
+		int m_i_SmallestColorClassSize;
+
+		double m_d_AverageColorClassSize;
+
+		double m_d_ColoringTime;
+		double m_d_CheckingTime;
+
+		string m_s_VertexColoringVariant;
+
+		vector<int> m_vi_VertexColors;
+
+		vector<int> m_vi_VertexColorFrequency;
+
+		bool seed_available;
+		int i_seed_rowCount;
+		double** dp2_Seed;
+
+		void Seed_init();
+		void Seed_reset();
+
+	public:
+
+		void SetStringVertexColoringVariant(string s);
+		void SetVertexColorCount(int i_VertexColorCount);
+
+		//Public Constructor 1451
+		GraphColoring();
+
+		//Public Destructor 1452
+		~GraphColoring();
+
+		//Virtual Function 1453
+		virtual void Clear();
+		void ClearColoringONLY();
+
+		//Public Function 1454
+		int DistanceOneColoring();
+
+		//Public Function 1455
+		int DistanceTwoColoring();
+
+		//Public Function 1456
+		int NaiveStarColoring();
+
+		//Public Function 1457
+		/// Star Coloring with an additional restriction
+		/**
+		 * The additional restriction: When we try to decide the color of a vertex:
+		 * - If D1 neighbor has color id > D2 neighbor's color id, then that D2 neighbor's color is forbidden (the current vertex cannot use that color)
+		 * - Else, we can just reuse the color of that D2 neighbor
+		 */
+		int RestrictedStarColoring();
+
+		//Public Function 1458
+		/*
+		 * Related paper: A. Gebremedhin, A. Tarafdar, F. Manne and A. Pothen, New Acyclic and Star Coloring Algorithms with Applications to Hessian Computation, SIAM Journal on Scientific Computing, Vol 29, No 3, pp 1042--1072, 2007.
+		 *    http://www.cs.purdue.edu/homes/agebreme/publications/SISC29-2-2009.pdf
+		 * ?This is the algorithm 4.1 in the above paper
+		 */
+		int StarColoring_serial();
+		int StarColoring_serial2(); // Essentially based on StarColoring_OMP() v1
+
+		// TO BE IMPLEMENTED
+		int StarColoring();
+
+		/// Build the collection of 2-color star from the coloring result
+		/**
+		 * NOTE: At this point, this routine will not work correctly if there are conflicts
+		 */
+		int BuildStarCollection(vector<int> & vi_VerticesToBeRecolored);
+		int PrintStarCollection(vector<int>& vi_EdgeStarMap, vector<int>& vi_StarHubMap, map< int, map<int, int> >& mimi2_VertexEdgeMap);
+
+		struct lt_pii
+		{
+			bool operator()(const pair<int, int> pii_ColorCombination1, const pair<int, int> pii_ColorCombination2) const
+			{
+				if(pii_ColorCombination1.first < pii_ColorCombination2.first) {
+					return true;
+				}
+				else if (pii_ColorCombination1.first > pii_ColorCombination2.first) {
+					return false;
+				}
+				// pii_ColorCombination1.first == pii_ColorCombination2.first
+				return (pii_ColorCombination1.second < pii_ColorCombination2.second);
+			}
+		};
+
+		struct Colors2Edge_Value {
+			Colors2Edge_Value() {
+				visited=false;
+			}
+			vector< pair<int, int> > value;
+			bool visited;
+		};
+		/// Build the collection of 2-color star from the coloring result
+		/**
+		 * This function also helps us identify a list of vertices need to be recolored if conlict is detected
+		 * If vi_VerticesToBeRecolored.size() == 0, then the coloring is a valid star coloring.
+		 * The algorithm is done in parallel
+		 */
+		int DetectConflictInColorCombination(int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+					     map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, map< int, int> * PotentialHub_Private, vector< pair<int, int> >* ConflictedEdges_Private, vector<int>* ConflictCount_Private);
+		/// This function assume that there is no conflicts in the color assignment
+		int BuildStarFromColorCombination(int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+							 map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, map< int, int> * PotentialHub_Private);
+
+		ofstream fout; // !!!
+		int i_ProcessedEdgeCount; // !!!
+		/// Build Vertex2ColorCombination from Vertex2ColorCombination_Private
+		/**
+		 * This process is done in parallel
+		 * After Vertex2ColorCombination is built, Vertex2ColorCombination_Private will be deallocated
+		 */
+		int BuildVertex2ColorCombination(int i_MaxNumThreads, map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private, vector<  map <int, int > > *Vertex2ColorCombination);
+		/*
+		 * if(i_Mode==1) : stop at the first failure
+		 * else if(i_Mode==0): pause but then continue
+		 *
+		 * Return values:
+		 * - >= 0: Fail. the vertex that causes conflict as this routine progress. Note: this may not be the latest-added vertex that cause coloring conflict in the graph
+		 * - -2: Fail. 2 potential hub are connected
+		 * - -1: Pass.
+		 *
+		 * If pii_ConflictColorCombination is provided (i.e. pii_ConflictColorCombination!=NULL) and this Check fail, pii_ConflictColorCombination will contain the 2 problematic colors
+		 */
+		int CheckStarColoring_OMP(int i_Mode, pair<int,int> *pii_ConflictColorCombination);
+		int BuildStarFromColorCombination_forChecking(int i_Mode, int i_MaxNumThreads, int i_thread_num, pair<int, int> pii_ColorCombination, map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private,
+							  map< int, int> * PotentialHub_Private);
+		int BuildForbiddenColors(int i_MaxNumThreads, int i_thread_num, int i_CurrentVertex, map<int, bool>* mip_ForbiddenColors, map<int, int>* D1Colors, vector<  map <int, int > > *Vertex2ColorCombination);
+		int PrintVertex2ColorCombination (vector<  map <int, int > > *Vertex2ColorCombination);
+		int PrintVertex2ColorCombination_raw (vector<  map <int, int > > *Vertex2ColorCombination);
+		int PrintVertexAndColorAdded(int i_MaxNumThreads, vector< pair<int, int> > *vi_VertexAndColorAdded, int i_LastNEntries = 999999999);
+		int PrintForbiddenColors(map<int, bool>* mip_ForbiddenColors,int i_thread_num);
+		int PickVerticesToBeRecolored(int i_MaxNumThreads, vector< pair<int, int> > *ConflictedEdges_Private, vector<int> &ConflictCount);
+		int PrintAllColorCombination(map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private, int i_MaxNumThreads, int i_MaxNumOfCombination=1000000, int i_MaxElementsOfCombination=100000);
+		int PrintColorCombination(map< pair<int, int>, Colors2Edge_Value , lt_pii>* Colors2Edge_Private, int i_MaxNumThreads, pair<int, int> pii_ColorCombination, int i_MaxElementsOfCombination=100000);
+		int PrintPotentialHub(map< int, int> *PotentialHub_Private, int i_thread_num, pair<int, int> pii_ColorCombination);
+		int PrintConflictEdges(vector< pair<int, int> > *ConflictedEdges_Private, int i_MaxNumThreads);
+		int PrintConflictCount(vector<int> &ConflictCount);
+		int PrintVertex2ColorCombination(int i_MaxNumThreads, map< int, vector< pair<int, int> > > *Vertex2ColorCombination_Private);
+		int PrintD1Colors(map<int, int>* D1Colors, int i_thread_num);
+		int PrintVertexColorCombination(map <int, int >* VertexColorCombination);
+
+		/// Note: FDP and CIRCO  are the 2 good filters to display this subgraph
+		/** Sample code:
+		 	map< int, map<int,bool> > *graph = new map< int, map<int,bool> >;
+			map<int, bool> *mib_FilterByColors = new map<int, bool>;
+			(*mib_FilterByColors)[m_vi_VertexColors[i_CurrentVertex]]=true;
+			(*mib_FilterByColors)[color2]=true;
+			(*mib_FilterByColors)[color3]=true;
+
+			BuildSubGraph(graph, i_CurrentVertex, 2, mib_FilterByColors);
+
+			vector<int> vi_VertexColors;
+			GetVertexColors(vi_VertexColors);
+			displayGraph(graph, &vi_VertexColors, true, FDP);
+			delete graph;
+		 */
+		int BuildSubGraph(map< int, map<int,bool> > *graph, int i_CenterVertex, int distance=1, map<int, bool> *mib_FilterByColors=NULL);
+
+		/** Sample code: (see function int BuildSubGraph() )
+		 */
+		int BuildConnectedSubGraph(map< int, map<int,bool> > *graph, int i_CenterVertex, int distance=1, map<int, bool> *mib_FilterByColors=NULL);
+
+		/** Sample code:
+		 	map< int, map<int,bool> > *graph = new map< int, map<int,bool> >;
+			map<int, bool> *mib_Colors = new map<int, bool>;
+			(*mib_Colors)[m_vi_VertexColors[i_CurrentVertex]]=true;
+			(*mib_Colors)[color2]=true;
+			(*mib_Colors)[color3]=true;
+
+			BuildSubGraph(graph, mib_Colors);
+
+			vector<int> vi_VertexColors;
+			GetVertexColors(vi_VertexColors);
+			displayGraph(graph, &vi_VertexColors, true, FDP);
+			delete graph;
+		 */
+		int BuildColorsSubGraph(map< int, map<int,bool> > *graph, map<int,bool> *mib_Colors);
+		int PrintSubGraph(map< int, map<int,bool> > *graph);
+		int PrintVertexD1NeighborAndColor(int VertexIndex, int excludedVertex=-1);
+		int FindDistance(int v1, int v2);
+
+		//Public Function 1459
+		int StarColoring(vector<int> &, vector<int> &, map< int, map<int, int> > &);
+
+		//Public Function 1460
+		int CheckStarColoring();
+		int GetStarColoringConflicts(vector<vector<int> > &ListOfConflicts);
+
+		//Public Function 1461
+		/**
+		Note: This function can not be used for recovery!
+		*/
+		int AcyclicColoring();
+
+		//Public Function 1462
+		/**
+		Note: Originally created for Hessian Indirect Recovery
+		*/
+		int AcyclicColoring(vector<int> &, map< int, vector<int> > &);
+
+		/**
+		Note: Currently used for Hessian Indirect Recovery
+		*/
+		int AcyclicColoring_ForIndirectRecovery();
+
+		//Public Function 1463
+		int CheckAcyclicColoring();
+
+		//Public Function 1464
+		int TriangularColoring();
+
+		//Public Function 1465
+		int ModifiedTriangularColoring();
+
+		//Public Function 1466
+		int CheckTriangularColoring();
+
+		//Public Function 1467
+		string GetVertexColoringVariant();
+		void SetVertexColoringVariant(string s_VertexColoringVariant);
+
+		//Public Function 1468
+		int GetVertexColorCount();
+
+		//Public Function 1469
+		void GetVertexColors(vector<int> &output);
+		vector <int>* GetVertexColorsPtr(){ return &m_vi_VertexColors; }
+
+		//Public Function 1470
+		int GetHubCount();
+
+		//Public Function 1471
+		int GetSetCount();
+
+		//Public Function 1472
+		double GetVertexColoringTime();
+
+		//Public Function 1473
+		double GetVertexColoringCheckingTime();
+
+		//Public Function 1474
+		int PrintVertexColors();
+
+		//Public Function 1475
+		int FileVertexColors();
+
+		//Public Function 1476
+		int PrintVertexColoringMetrics();
+
+		//Public Function 1477
+		int FileVertexColoringMetrics();
+
+		//Public Function 1478
+		void PrintVertexColorClasses();
+
+                int D1_Coloring_OMP();
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphColoringInterface.cpp
@@ -0,0 +1,577 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+
+	GraphColoringInterface::GraphColoringInterface(int i_type, ...)
+	{
+	  //cout<<"IN GraphColoringInterface(int i_type, ...)"<<endl;
+		Clear();
+
+		if (i_type == SRC_WAIT) return;
+
+		//---------CONVERT INPUT TO ColPack's GRAPH-------------
+		va_list ap; /*will point to each unnamed argument in turn*/
+		va_start(ap,i_type); /* point to first element after i_type*/
+
+		if (i_type == SRC_MEM_ADOLC) {
+		  //get unsigned int ** uip2_HessianSparsityPattern, int i_RowCount
+		  unsigned int ** uip2_HessianSparsityPattern = va_arg(ap,unsigned int **);
+		  int i_RowCount = va_arg(ap,int);
+
+#ifdef	_COLPACK_CHECKPOINT_
+		  string s_postfix = "-GraphColoringInterface_Constructor";
+		  //cout<<"*WriteMatrixMarket_ADOLCInput("<<s_postfix<<", 0, uip2_HessianSparsityPattern, "<< i_RowCount <<", " << i_RowCount  <<endl;
+		  WriteMatrixMarket_ADOLCInput(s_postfix, 0, uip2_HessianSparsityPattern, i_RowCount, i_RowCount);
+#endif
+		  BuildGraphFromRowCompressedFormat(uip2_HessianSparsityPattern, i_RowCount);
+		}
+		else if (i_type == SRC_MEM_ADIC) {
+		  //!!! add interface function that takes input from ADIC
+		  cerr<<"ERR: GraphColoringInterface(): s_inputSource \"ADIC\" is not supported yet"<<endl;
+
+		  va_end(ap); /*cleanup*/
+		  return;
+		}
+		else if (i_type == SRC_FILE) {
+		  // get string s_InputFile, string s_fileFormat
+		  string s_InputFile ( va_arg(ap,char *) );
+		  string s_fileFormat ( va_arg(ap,char *) );
+
+		  ReadAdjacencyGraph(s_InputFile, s_fileFormat);
+		}
+		else {
+		  cerr<<"ERR: GraphColoringInterface(): i_type =\""<< i_type <<"\" unknown or unspecified"<<endl;
+
+		  va_end(ap); /*cleanup*/
+		  return;
+		}
+#ifdef	_COLPACK_CHECKPOINT_
+		string s_OutputFile = "-ColPack_debug.mtx";
+		s_OutputFile = "GraphColoringInterface-InternalGraph"+s_OutputFile;
+		WriteMatrixMarket(s_OutputFile);
+#endif
+
+		//cout<<"START PrintGraph()"<<endl;
+		//PrintGraph();
+		//cout<<"END"<<endl;
+/*
+		// get string s_OrderingVariant
+		string s_OrderingVariant( va_arg(ap,char *) );
+		if (s_OrderingVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------ORDERING-------------
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+		//PrintVertexOrdering();
+		//Pause();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl<<"*ERROR: "<<s_OrderingVariant<<" Ordering Failed"<<endl;
+			return;
+		}
+
+		// get string s_ColoringVariant
+		string s_ColoringVariant( va_arg(ap,char *) );
+		s_ColoringVariant = toUpper(s_ColoringVariant);
+		if (s_ColoringVariant.compare("WAIT") == 0) {
+		  va_end(ap); //cleanup
+		  return;
+		}
+
+		//---------COLORING-------------
+		m_T_Timer.Start();
+
+		if(s_ColoringVariant == "DISTANCE_ONE") DistanceOneColoring();
+		else if (s_ColoringVariant == "ACYCLIC") AcyclicColoring();
+		else if (s_ColoringVariant == "STAR") StarColoring();
+		else if (s_ColoringVariant == "RESTRICTED_STAR") RestrictedStarColoring();
+		else if (s_ColoringVariant == "DISTANCE_TWO") DistanceTwoColoring();
+		else {
+			cerr<<endl<<"*ERROR: Unknown Coloring Method "<<s_ColoringVariant<<". Please use a legal Coloring Method."<<endl;
+			return;
+		}
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+//*/
+		va_end(ap); //cleanup
+		return;
+	}
+
+	int GraphColoringInterface::CalculateVertexColorClasses() {
+	    return GraphColoring::CalculateVertexColorClasses();
+	}
+
+	void GraphColoringInterface::GetOrderedVertices(vector<int> &output) {
+	  GraphOrdering::GetOrderedVertices(output);
+	}
+
+	double** GraphColoringInterface::GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount) {
+	    return GraphColoring::GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+	}
+
+	//Public Destructor 1602
+	GraphColoringInterface::~GraphColoringInterface()
+	{
+		Clear();
+
+		Seed_reset();
+	}
+
+	//Virtual Function 1603
+	void GraphColoringInterface::Clear()
+	{
+		GraphColoring::Clear();
+
+		return;
+	}
+
+        //Public Function ????
+	int GraphColoringInterface::DistanceOneColoring_OMP(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::D1_Coloring_OMP();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1604
+	int GraphColoringInterface::DistanceOneColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::DistanceOneColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1605
+	int GraphColoringInterface::DistanceTwoColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::DistanceTwoColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1606
+	int GraphColoringInterface::NaiveStarColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::NaiveStarColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1607
+	int GraphColoringInterface::RestrictedStarColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingVariant = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingVariant != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(_TRUE);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::RestrictedStarColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1608
+	int GraphColoringInterface::StarColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::StarColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1609
+	int GraphColoringInterface::AcyclicColoring_ForIndirectRecovery(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::AcyclicColoring_ForIndirectRecovery();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1609
+	int GraphColoringInterface::AcyclicColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::AcyclicColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+	//Public Function 1610
+	int GraphColoringInterface::TriangularColoring(string s_OrderingVariant)
+	{
+		m_T_Timer.Start();
+
+		int i_OrderingStatus = OrderVertices(s_OrderingVariant);
+
+		m_T_Timer.Stop();
+
+		m_d_OrderingTime = m_T_Timer.GetWallTime();
+
+		if(i_OrderingStatus != _TRUE)
+		{
+			cerr<<endl;
+			cerr<<s_OrderingVariant<<" Ordering Failed";
+			cerr<<endl;
+
+			return(1);
+		}
+
+		m_T_Timer.Start();
+
+		int i_ColoringStatus = GraphColoring::TriangularColoring();
+
+		m_T_Timer.Stop();
+
+		m_d_ColoringTime = m_T_Timer.GetWallTime();
+
+		return(i_ColoringStatus);
+	}
+
+
+	//void GraphColoringInterface::GenerateSeedHessian(unsigned int ** uip2_HessianSparsityPattern, int i_RowCount, double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+	void GraphColoringInterface::GenerateSeedHessian(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+		//Clear (Re-initialize) the graph
+		//Clear();
+
+		//Read the sparsity pattern of the given Hessian matrix (compressed sparse rows format)
+		//and create the corresponding graph
+		//BuildGraphFromRowCompressedFormat(uip2_HessianSparsityPattern, i_RowCount);
+		//PrintGraphStructure();
+
+		//Color the bipartite graph with the specified ordering
+		if (s_ColoringVariant=="DISTANCE_TWO"
+			|| s_ColoringVariant=="RESTRICTED_STAR"
+			|| s_ColoringVariant=="STAR"
+			|| s_ColoringVariant=="ACYCLIC_FOR_INDIRECT_RECOVERY")
+		{
+			Coloring(s_OrderingVariant, s_ColoringVariant);
+		}
+		else {
+			cerr<<"Error: Unrecognized coloring method."<<endl;
+			return;
+		}
+
+		//Create the seed matrix from the coloring information
+		(*dp3_seed) = GetSeedMatrix(ip1_SeedRowCount, ip1_SeedColumnCount);
+
+		/*
+		PrintVertexColors();
+		PrintVertexColoringMetrics();
+		double **Seed = *dp3_seed;
+		int rows = GetVertexCount();
+		int cols = GetVertexColorCount();
+		cout<<"Seed matrix: ("<<rows<<","<<cols<<")"<<endl;
+		for(int i=0; i<rows; i++) {
+			for(int j=0; j<cols; j++) {
+				cout<<setw(6)<<Seed[i][j];
+			}
+			cout<<endl;
+		}
+		//*/
+	}
+
+	void GraphColoringInterface::GenerateSeedHessian_unmanaged(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant, string s_ColoringVariant) {
+
+		//Color the bipartite graph with the specified ordering
+		if (s_ColoringVariant=="DISTANCE_TWO"
+			|| s_ColoringVariant=="RESTRICTED_STAR"
+			|| s_ColoringVariant=="STAR"
+			|| s_ColoringVariant=="ACYCLIC_FOR_INDIRECT_RECOVERY")
+		{
+			Coloring(s_OrderingVariant, s_ColoringVariant);
+		}
+		else {
+			cerr<<"Error: Unrecognized coloring method."<<endl;
+			return;
+		}
+
+		//Create the seed matrix from the coloring information
+		(*dp3_seed) = GetSeedMatrix_unmanaged(ip1_SeedRowCount, ip1_SeedColumnCount);
+	}
+
+	void GraphColoringInterface::PrintVertexEdgeMap(vector<int> &vi_Vertices, vector<int> &vi_Edges , map< int, map< int, int> > &mimi2_VertexEdgeMap) {
+
+		cout<<endl;
+		cout<<"DEBUG | Acyclic Coloring | Edge Vertex Map"<<endl;
+		cout<<endl;
+
+		int i_VertexCount = vi_Vertices.size() - 1;
+
+		for(int i=0; i<i_VertexCount; i++)
+		{
+			for(int j=vi_Vertices[i]; j<vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(i < vi_Edges[j])
+				{
+				cout<<"Edge "<<STEP_UP(mimi2_VertexEdgeMap[i][vi_Edges[j]])<<"\t"<<" : "<<STEP_UP(i)<<" - "<<STEP_UP(vi_Edges[j])<<endl;
+				}
+			}
+		}
+
+		cout<<endl;
+	}
+
+	void GraphColoringInterface::PrintInducedVertexDegrees(int SetID, int i_HighestInducedVertexDegree, vector< list<int> > &vli_GroupedInducedVertexDegrees) {
+
+		int k;
+
+		list<int>::iterator lit_ListIterator;
+
+		cout<<endl;
+		cout<<"DEBUG 5103 | Hessian Evaluation | Induced Vertex Degrees | Set "<<STEP_UP(SetID)<<endl;
+		cout<<endl;
+
+		for(int j=0; j<STEP_UP(i_HighestInducedVertexDegree); j++)
+		{
+			int i_SetSize = (signed) vli_GroupedInducedVertexDegrees[j].size();
+
+			if(i_SetSize == _FALSE)
+			{
+				continue;
+			}
+
+			k = _FALSE;
+
+			cout<<"Degree "<<j<<"\t"<<" : ";
+
+			for(lit_ListIterator=vli_GroupedInducedVertexDegrees[j].begin(); lit_ListIterator!=vli_GroupedInducedVertexDegrees[j].end(); lit_ListIterator++)
+			{
+				if(k == STEP_DOWN(i_SetSize))
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_SetSize<<")"<<endl;
+				}
+				else
+				{
+					cout<<STEP_UP(*lit_ListIterator)<<", ";
+				}
+
+				k++;
+			}
+		}
+
+	}
+
+	int GraphColoringInterface::Coloring(string s_OrderingVariant, string s_ColoringVariant) {
+		if(s_ColoringVariant == "DISTANCE_ONE") {
+			return DistanceOneColoring(s_OrderingVariant);
+		} else if (s_ColoringVariant == "ACYCLIC") {
+			return AcyclicColoring(s_OrderingVariant);
+		} else if (s_ColoringVariant == "ACYCLIC_FOR_INDIRECT_RECOVERY") {
+			return AcyclicColoring_ForIndirectRecovery(s_OrderingVariant);
+		} else if (s_ColoringVariant == "STAR") {
+			return StarColoring(s_OrderingVariant);
+		} else if (s_ColoringVariant == "RESTRICTED_STAR") {
+			return RestrictedStarColoring(s_OrderingVariant);
+		} else if (s_ColoringVariant == "DISTANCE_TWO") {
+			return DistanceTwoColoring(s_OrderingVariant);
+		} else if (s_ColoringVariant == "DISTANCE_ONE_OMP") {
+			return DistanceOneColoring_OMP(s_OrderingVariant);
+		} else {
+			cout<<" Unknown Coloring Method "<<s_ColoringVariant<<". Please use a legal Coloring Method."<<endl;
+			return (_FALSE);
+		}
+
+		return (_TRUE);
+	}
+	int GraphColoringInterface::GetVertexColorCount(){
+		return GraphColoring::GetVertexColorCount();
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphColoringInterface.h
@@ -0,0 +1,169 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef GRAPHCOLORINGINTERFACE_H
+#define GRAPHCOLORINGINTERFACE_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group1
+	 *  @brief class GraphColoringInterface in @link group1@endlink.
+	 */
+	class GraphColoringInterface : public GraphColoring
+	{
+	public: //DOCUMENTED
+
+		/// Read graph structure and color the adjacency graph
+		/** This function will:
+		- 0. Create initial GraphColoringInterface object
+		- 1. Create the adjacency graph based on the graph structure specified by the input source
+		- 2. Order the vertices based on the requested Ordering Method (s_OrderingVariant)
+		- 3. Color the graph based on the requested Coloring Method (s_ColoringVariant)
+		- Ordering Time and Coloring Time will be recorded.
+
+		Structure of this variadic function's parameters: GraphColoringInterface(int i_type, [2 or more parameters for input source depending on the value of i_type], [char* s_OrderingVariant], [char* s_ColoringVariant]). Here are some examples:
+		  - Just create the GraphColoringInterface object: GraphColoringInterface(SRC_WAIT);
+		  - Just get the input from file without ordering and coloring: GraphColoringInterface(SRC_FILE, s_InputFile.c_str() ,"AUTO_DETECTED");
+		  - Get input from ADOLC and color the graph: GraphColoringInterface(SRC_MEM_ADOLC,uip2_SparsityPattern, i_rowCount);
+
+		About input parameters:
+		- int i_type: specified the input source. i_type can be either:
+		  - -1 (SRC_WAIT): only step 0 will be done.
+		  - 0 (SRC_FILE): The graph structure will be read from file. The next 2 parameters are:
+		    - char* fileName: name of the input file for a symmetric matrix. If the full path is not given, the file is assumed to be in the current directory
+		    - char* fileType can be either:
+			    - "AUTO_DETECTED" or "". ColPack will decide the format of the file based on the file extension:
+				    - ".mtx": MatrixMarket format
+				    - ".hb", or any combination of ".<r, c, p><s, u, h, x, r><a, e>": HarwellBoeing format
+				    - ".graph": MeTiS format
+				    - If the above extensions are not found, MatrixMarket format will be assumed.
+			    - "MM" for MatrixMarket format (http://math.nist.gov/MatrixMarket/formats.html#MMformat). Notes:
+			      - ColPack only accepts MatrixMarket coordinate format (NO array format)
+			      - List of arithmetic fields accepted by ColPack: real, pattern or integer
+			      - List of symmetry structures accepted by ColPack: general or symmetric
+			      - The first line of the input file should be similar to this: "%%MatrixMarket matrix coordinate real general"
+			    - "HB" for HarwellBoeing format (http://math.nist.gov/MatrixMarket/formats.html#hb)
+			    - "MeTiS" for MeTiS format (http://people.sc.fsu.edu/~burkardt/data/metis_graph/metis_graph.html)
+		  - 1 (SRC_MEM_ADOLC): The graph structure will be read from Row Compressed Structure (used by ADOLC). The next 2 parameters are:
+		    - unsigned int **uip2_SparsityPattern: The pattern of Hessian matrix stored in Row Compressed Format
+		    - int i_rowCount: number of rows in the Hessian matrix. Number of rows in uip2_SparsityPattern.
+		  - 2 (SRC_MEM_ADIC): TO BE IMPLEMENTED so that ColPack can interface with ADIC
+		//*/
+		GraphColoringInterface(int i_type, ...);
+
+		/// Color the adjacency graph based on the requested s_ColoringVariant and s_OrderingVariant
+		/**	This function will
+		- 1. Order the vertices based on the requested Ordering Method (s_OrderingVariant)
+		- 2. Color the graph based on the requested Coloring Method (s_ColoringVariant)
+		- Ordering Time and Coloring Time will be recorded.
+
+		About input parameters:
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "DYNAMIC_LARGEST_FIRST"
+			- "DISTANCE_TWO_LARGEST_FIRST" (used primarily for DistanceTwoColoring and various StarColoring)
+			- "SMALLEST_LAST"
+			- "DISTANCE_TWO_SMALLEST_LAST" (used primarily for DistanceTwoColoring and various StarColoring)
+			- "INCIDENCE_DEGREE"
+			- "DISTANCE_TWO_INCIDENCE_DEGREE" (used primarily for DistanceTwoColoring and various StarColoring)
+			- "RANDOM"
+		- s_ColoringVariant can be either
+			- "DISTANCE_ONE" (default)
+			- "ACYCLIC"
+			- "ACYCLIC_FOR_INDIRECT_RECOVERY"
+			- "STAR"
+			- "RESTRICTED_STAR"
+			- "DISTANCE_TWO"
+
+		Postcondition:
+		- The Graph is colored, i.e., m_vi_VertexColors will be populated.
+		*/
+		int Coloring(string s_OrderingVariant = "NATURAL", string s_ColoringVariant = "DISTANCE_ONE");
+
+		/// Generate and return the seed matrix (OpenMP enabled for STAR coloring)
+		/**	This function will
+		- 1. Color the graph based on the specified ordering and coloring
+		- 2. Create and return the seed matrix (*dp3_seed) from the coloring information
+
+		About input parameters:
+		- s_ColoringVariant can be either
+			- "STAR" (default)
+			- "RESTRICTED_STAR"
+			- "ACYCLIC_FOR_INDIRECT_RECOVERY"
+		- s_OrderingVariant can be either
+			- "NATURAL" (default)
+			- "LARGEST_FIRST"
+			- "DYNAMIC_LARGEST_FIRST"
+			- "DISTANCE_TWO_LARGEST_FIRST"
+			- "SMALLEST_LAST"
+			- "DISTANCE_TWO_SMALLEST_LAST"
+			- "INCIDENCE_DEGREE"
+			- "DISTANCE_TWO_INCIDENCE_DEGREE"
+			- "RANDOM"
+
+		Postcondition:
+		- *dp3_seed: [(*ip1_SeedRowCount) == num of cols of the original matrix == i_RowCount (because Hessian is a square matrix)] [(*ip1_SeedColumnCount) == ColorCount]
+		*/
+		void GenerateSeedHessian(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant="STAR");
+
+
+		/// Same as GenerateSeedHessian(), except that this Seed matrix is NOT managed by ColPack  (OpenMP enabled for STAR coloring)
+		/** Notes:
+		- This Seed matrix is NOT managed by ColPack. Therefore, the user should free the Seed matrix manually when the matrix is no longer needed.
+		*/
+		void GenerateSeedHessian_unmanaged(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant="STAR");
+
+		double** GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
+
+		void GetOrderedVertices(vector<int> &output);
+
+		int CalculateVertexColorClasses();
+
+		//Public Destructor 1602
+		~GraphColoringInterface();
+
+		//Virtual Function 1603
+		virtual void Clear();
+
+		//Public Function 1604
+		int DistanceOneColoring(string s_OrderingVariant);
+		int DistanceOneColoring_OMP(string s_OrderingVariant);
+
+		//Public Function 1605
+		int DistanceTwoColoring(string s_OrderingVariant);
+
+		//Public Function 1606
+		int NaiveStarColoring(string s_OrderingVariant);
+
+		//Public Function 1607
+		int RestrictedStarColoring(string s_OrderingVariant);
+
+		//Public Function 1608
+		int StarColoring(string s_OrderingVariant);
+
+		//Public Function 1609
+		int AcyclicColoring(string s_OrderingVariant);
+
+		int AcyclicColoring_ForIndirectRecovery(string s_OrderingVariant);
+
+		//Public Function 1610
+		int TriangularColoring(string s_OrderingVariant);
+
+		int GetVertexColorCount();
+
+		static void PrintInducedVertexDegrees(int SetID, int i_HighestInducedVertexDegree, vector< list<int> > &vli_GroupedInducedVertexDegrees);
+
+		static void PrintVertexEdgeMap(vector<int> &vi_Vertices, vector<int> &vi_Edges , map< int, map< int, int> > &mimi2_VertexEdgeMap);
+
+	private:
+
+		Timer m_T_Timer;
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphCore.cpp
@@ -0,0 +1,266 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Virtual Function 1102
+	void GraphCore::Clear() //!< Reinitialize all variables
+	{
+		m_i_MaximumVertexDegree = _UNKNOWN;
+		m_i_MinimumVertexDegree = _UNKNOWN;
+
+		m_d_AverageVertexDegree = _UNKNOWN;
+
+		m_s_InputFile.clear();
+
+		m_vi_Vertices.clear();
+		m_vi_Edges.clear();
+
+		m_vd_Values.clear();
+
+		return;
+	}
+
+	//Public Function 1103
+	int GraphCore::GetVertexCount()
+	{
+		return(STEP_DOWN(m_vi_Vertices.size()));
+	}
+
+
+	//Public Function 1104
+	int GraphCore::GetEdgeCount()
+	{
+		return(m_vi_Edges.size()/2);
+	}
+
+
+	//Public Function 1105
+	int GraphCore::GetMaximumVertexDegree()
+	{
+		return(m_i_MaximumVertexDegree);
+	}
+
+
+	//Public Function 1106
+	int GraphCore::GetMinimumVertexDegree()
+	{
+		return(m_i_MinimumVertexDegree);
+	}
+
+
+	//Public Function 1107
+	double GraphCore::GetAverageVertexDegree()
+	{
+		return(m_d_AverageVertexDegree);
+	}
+
+
+	//Public Function 1108
+	string GraphCore::GetInputFile()
+	{
+		return(m_s_InputFile);
+	}
+
+	//Public Function 1109
+	void GraphCore::GetVertices(vector<int> &output) const
+	{
+		output = (m_vi_Vertices);
+	}
+
+
+	//Public Function 1110
+	void GraphCore::GetEdges(vector<int> &output) const
+	{
+		output = (m_vi_Edges);
+	}
+
+
+	//Public Function 1111
+	void GraphCore::GetValues(vector<double> &output) const
+	{
+		output = (m_vd_Values);
+	}
+
+	void GraphCore::GetVertexEdgeMap(map< int, map< int, int> > &output)
+	{
+//cerr<<"IN GraphCore::GetVertexEdgeMa()"<<endl;
+//GraphColoringInterface::PrintVertexEdgeMap(m_vi_Vertices, m_vi_Edges, m_mimi2_VertexEdgeMap);
+//cerr<<"OUT GraphCore::GetVertexEdgeMa()"<<endl;
+		output = (m_mimi2_VertexEdgeMap);
+	}
+
+	void GraphCore::GetDisjointSets(DisjointSets &output)
+	{
+//cerr<<"START In Graph ds_DisjointSets.Print()"<<endl;
+//m_ds_DisjointSets.Print();
+//cerr<<"END ds_DisjointSets.Print()"<<endl;
+//Pause();
+		output = (m_ds_DisjointSets);
+	}
+
+	void GraphCore::GetD1Neighbor(int VertexIndex, vector<int> &D1Neighbor, int excludedVertex) {
+		if(VertexIndex > (int)m_vi_Vertices.size() - 2) {
+			cout<<"Illegal request. VertexIndex is too large. VertexIndex > m_vi_Vertices.size() - 2"<<endl;
+			return;
+		}
+		if(VertexIndex < 0) {
+			cout<<"Illegal request. VertexIndex is too small. VertexIndex < 0"<<endl;
+			return;
+		}
+		D1Neighbor.clear();
+		for(int i=m_vi_Vertices[VertexIndex]; i<m_vi_Vertices[STEP_UP(VertexIndex)]; i++) {
+			if( excludedVertex == m_vi_Edges[i]) continue;
+			D1Neighbor.push_back(m_vi_Edges[i]);
+		}
+	}
+
+	///Print all the Distance-1 neighbors of VertexIndex, except the excludedVertex
+	void GraphCore::PrintVertexD1Neighbor(int VertexIndex, int excludedVertex) {
+		if(VertexIndex > (int)m_vi_Vertices.size() - 2) {
+			cout<<"Illegal request. VertexIndex is too large. VertexIndex > m_vi_Vertices.size() - 2"<<endl;
+			return;
+		}
+		if(VertexIndex < 0) {
+			cout<<"Illegal request. VertexIndex is too small. VertexIndex < 0"<<endl;
+			return;
+		}
+		cout<<"Distance-1 neighbors of "<<VertexIndex<<" are (0-based): ";
+		for(int i=m_vi_Vertices[VertexIndex]; i<m_vi_Vertices[STEP_UP(VertexIndex)]; i++) {
+			if( excludedVertex == m_vi_Edges[i]) continue;
+			cout<<m_vi_Edges[i]<<" ";
+		}
+		cout<<"( # of edges = "<<m_vi_Vertices[STEP_UP(VertexIndex)] - m_vi_Vertices[VertexIndex]<<")"<<endl;
+	}
+
+	/// Print all the Distance-2 neighbors of VertexIndex
+	void GraphCore::PrintVertexD2Neighbor(int VertexIndex) {
+		cout<<"--Distance-1 neighbors of "<<VertexIndex<<" are: --------------------------"<<endl;
+		for(int i=m_vi_Vertices[VertexIndex]; i<m_vi_Vertices[STEP_UP(VertexIndex)]; i++) {
+			PrintVertexD1Neighbor(m_vi_Edges[i], VertexIndex);
+		}
+		cout<<"----------------------------------------------------"<<endl;
+	}
+
+	/// Check and see if VertexIndex1 and VertexIndex2 are Distance-2 neighbor
+	/** Algorithm:
+	- Get the set D1_of_VertexIndex1 of all the Distance-1 neighbors of VertexIndex1
+	- Get the set D1_of_VertexIndex2 of all the Distance-1 neighbors of VertexIndex2
+	- Intersect D1_of_VertexIndex1 and D1_of_VertexIndex2 to see which vertices VertexIndex1 and VertexIndex2 have in common. The result is stored in Intersect_set
+	- If the size of Intersect_set > 0 => VertexIndex1 and VertexIndex2 are Distance-2 neighbor
+	*/
+	bool GraphCore::AreD2Neighbor(int VertexIndex1, int VertexIndex2) {
+		set<int> D1_of_VertexIndex1, D1_of_VertexIndex2;
+		vector<int> Intersect_set;
+
+		for(int i=m_vi_Vertices[VertexIndex1]; i<m_vi_Vertices[STEP_UP(VertexIndex1)]; i++)
+			D1_of_VertexIndex1.insert(m_vi_Edges[i]);
+		for(int i=m_vi_Vertices[VertexIndex2]; i<m_vi_Vertices[STEP_UP(VertexIndex2)]; i++)
+			D1_of_VertexIndex2.insert(m_vi_Edges[i]);
+
+		Intersect_set.resize(D1_of_VertexIndex1.size(),-1);
+		set_intersection(D1_of_VertexIndex1.begin(), D1_of_VertexIndex1.end(),
+						D1_of_VertexIndex2.begin(), D1_of_VertexIndex2.end(),
+						Intersect_set.begin()	);
+		int size = Intersect_set.size();
+		while(Intersect_set[size-1] == -1 && size >= 1) size--;
+		Intersect_set.resize(size,-1);
+
+
+		if(size>0) {
+			//Print
+			printf("%d and %d connected through vertices: ", VertexIndex1, VertexIndex2);
+			copy(Intersect_set.begin(), Intersect_set.end(), ostream_iterator<int>(cout, " "));
+			cout << endl;
+			return true;
+		}
+		return false;
+
+		/*
+		//Print
+		printf("%d and %d connected through vertices: ", VertexIndex1, VertexIndex2);
+		set_intersection(D1_of_VertexIndex1.begin(), D1_of_VertexIndex1.end(),
+						D1_of_VertexIndex2.begin(), D1_of_VertexIndex2.end(),
+						ostream_iterator<int>(cout, " ")	);
+		cout << endl;
+		//*/
+	}
+
+	bool GraphCore::operator==(const GraphCore &other) const {
+		// Check for self-assignment!
+		if (this == &other)      // Same object?
+		  return true;        // Yes, so the 2 objects are equal
+
+		//Compare vector<int> m_vi_Vertices; vector<int> m_vi_Edges; vector<double> m_vd_Values;
+		vector<int> other_Vertices, other_Edges;
+		vector<double> other_Values;
+
+		other.GetVertices(other_Vertices);
+		other.GetEdges(other_Edges);
+		other.GetValues(other_Values);
+
+		/*
+		if(m_vi_Vertices==other_Vertices) cout<<"m_vi_Vertices==other_Vertices"<<endl;
+		else  cout<<"m_vi_Vertices!=other_Vertices"<<endl;
+
+		if(m_vi_Edges==other_Edges) cout<<"m_vi_Edges==other_Edges"<<endl;
+		else  cout<<"m_vi_Edges!=other_Edges"<<endl;
+
+		if(m_vd_Values==other_Values) cout<<"m_vd_Values==other_Values"<<endl;
+		else  cout<<"m_vd_Values!=other_Values"<<endl;
+		//*/
+
+		if(m_vi_Vertices==other_Vertices && m_vi_Edges==other_Edges && m_vd_Values==other_Values ) return true;
+		else return false;
+
+	}
+
+	bool GraphCore::areEqual(const GraphCore &other, bool structureOnly) const {
+		// Check for self-assignment!
+		if (this == &other)      // Same object?
+		  return true;        // Yes, so the 2 objects are equal
+
+		//Compare vector<int> m_vi_Vertices; vector<int> m_vi_Edges; vector<double> m_vd_Values;
+		vector<int> other_Vertices, other_Edges;
+		vector<double> other_Values;
+
+		other.GetVertices(other_Vertices);
+		other.GetEdges(other_Edges);
+		if (!structureOnly) other.GetValues(other_Values);
+
+		/*
+		if(m_vi_Vertices==other_Vertices) cout<<"m_vi_Vertices==other_Vertices"<<endl;
+		else  cout<<"m_vi_Vertices!=other_Vertices"<<endl;
+
+		if(m_vi_Edges==other_Edges) cout<<"m_vi_Edges==other_Edges"<<endl;
+		else  cout<<"m_vi_Edges!=other_Edges"<<endl;
+
+		if(m_vd_Values==other_Values) cout<<"m_vd_Values==other_Values"<<endl;
+		else  cout<<"m_vd_Values!=other_Values"<<endl;
+		//*/
+
+		if(!structureOnly) {
+		  if(m_vi_Vertices==other_Vertices && m_vi_Edges==other_Edges && m_vd_Values==other_Values ) return true;
+		  else return false;
+		}
+		else { //structureOnly
+		  if(m_vi_Vertices==other_Vertices && m_vi_Edges==other_Edges ) return true;
+		  else return false;
+		}
+
+	}
+
+
+
+
+
+}
+
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphCore.h
@@ -0,0 +1,100 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+using namespace std;
+
+#ifndef GRAPHCORE_H
+#define GRAPHCORE_H
+namespace ColPack
+{
+	/** @ingroup group1
+	 *  @brief class GraphCore in @link group1@endlink.
+
+	 Base class for Graph. Define a Graph: vertices, edges and values (edge's weight - optional); and its statisitcs: max, min and average degree.
+	 */
+	class GraphCore
+	{
+	public: //DOCUMENTED
+
+		///Print all the Distance-1 neighbors of VertexIndex (0-based), except the excludedVertex
+		void PrintVertexD1Neighbor(int VertexIndex, int excludedVertex = -1);
+		void GetD1Neighbor(int VertexIndex, vector<int> &D1Neighbor, int excludedVertex = -1);
+
+		/// Print all the Distance-2 neighbors of VertexIndex
+		void PrintVertexD2Neighbor(int VertexIndex);
+
+		/// Check and see if VertexIndex1 and VertexIndex2 are Distance-2 neighbor
+		/** Algorithm:
+		- Get the set D1_of_VertexIndex1 of all the Distance-1 neighbors of VertexIndex1
+		- Get the set D1_of_VertexIndex2 of all the Distance-1 neighbors of VertexIndex2
+		- Intersect D1_of_VertexIndex1 and D1_of_VertexIndex2 to see which vertices VertexIndex1 and VertexIndex2 have in common. The result is stored in Intersect_set
+		- If the size of Intersect_set > 0 => VertexIndex1 and VertexIndex2 are Distance-2 neighbor
+		*/
+		bool AreD2Neighbor(int VertexIndex1, int VertexIndex2);
+
+		bool operator==(const GraphCore &other) const;
+		bool areEqual(const GraphCore &other, bool structureOnly = 1) const;
+
+	protected:
+
+		int m_i_MaximumVertexDegree;
+		int m_i_MinimumVertexDegree;
+
+		double m_d_AverageVertexDegree;
+
+		string m_s_InputFile;
+
+		vector<int> m_vi_Vertices;
+
+		vector<int> m_vi_Edges;
+
+		vector<double> m_vd_Values; //!< Edge's weight
+
+		/** m_mimi2_VertexEdgeMap is a matrix that has all the non-zero (edge) in the
+		upper triangle marked from 0 to (total number of non-zeros - 1)
+		Populated by GraphColoring::AcyclicColoring()
+		*/
+		map< int, map< int, int> > m_mimi2_VertexEdgeMap; //moved from int GraphColoring::AcyclicColoring()
+
+		/** m_ds_DisjointSets holds a set of bi-color trees
+		Populated by GraphColoring::AcyclicColoring()
+		*/
+		DisjointSets m_ds_DisjointSets; //moved from int GraphColoring::AcyclicColoring()
+	public:
+
+		virtual ~GraphCore() {}
+
+		virtual void Clear();
+
+		int GetVertexCount();
+
+		int GetEdgeCount();
+
+		int GetMaximumVertexDegree();
+
+		int GetMinimumVertexDegree();
+
+		double GetAverageVertexDegree();
+
+		string GetInputFile();
+
+		void GetVertices(vector<int> &output) const;
+		vector <int>* GetVerticesPtr(){ return &m_vi_Vertices; }
+
+		void GetEdges(vector<int> &output) const;
+		vector <int>* GetEdgesPtr(){ return &m_vi_Edges; }
+
+		void GetValues(vector<double> &output) const;
+
+		void GetVertexEdgeMap(map< int, map< int, int> > &output);
+
+		void GetDisjointSets(DisjointSets &output);
+
+
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphInputOutput.cpp
@@ -0,0 +1,1343 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 1201
+	int GraphInputOutput::ParseWidth(string FortranFormat)
+	{
+		int i;
+
+		int LetterCount;
+
+		char PresentLetter;
+
+		string FieldWidth;
+
+		boolean FOUND;
+
+		FieldWidth.clear();
+
+		FOUND = FALSE;
+
+		LetterCount = (signed) FortranFormat.size();
+
+		for(i=0; i<LetterCount; i++)
+		{
+			PresentLetter = FortranFormat[i];
+
+			if(FOUND == TRUE)
+			{
+			  FieldWidth += PresentLetter;
+			}
+
+			if(PresentLetter == 'I' || PresentLetter == 'Z' || PresentLetter == 'F' || PresentLetter == 'E' || PresentLetter == 'G' || PresentLetter == 'D' || PresentLetter == 'L' || PresentLetter == 'A')
+			{
+				FOUND = TRUE;
+			}
+			else
+			if(PresentLetter == '.' || PresentLetter == ')')
+			{
+				FOUND = FALSE;
+
+				 break;
+			}
+		}
+
+		return(atoi(FieldWidth.c_str()));
+	}
+
+
+	//Private Function 1202
+	void GraphInputOutput::CalculateVertexDegrees()
+	{
+		int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		for(int i = 0; i < i_VertexCount; i++)
+		{
+			int i_VertexDegree = m_vi_Vertices[i + 1] - m_vi_Vertices[i];
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+
+			if(m_i_MinimumVertexDegree == _UNKNOWN)
+			{
+				m_i_MinimumVertexDegree = i_VertexDegree;
+			}
+			else
+			if(m_i_MinimumVertexDegree > i_VertexDegree)
+			{
+				m_i_MinimumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		m_d_AverageVertexDegree = (double)m_vi_Edges.size()/i_VertexCount;
+
+		return;
+
+	}
+
+
+	//Public Constructor 1251
+	GraphInputOutput::GraphInputOutput()
+	{
+		Clear();
+
+		GraphCore::Clear();
+	}
+
+
+	//Public Destructor 1252
+	GraphInputOutput::~GraphInputOutput()
+	{
+		Clear();
+	}
+
+	//Virtual Function 1254
+	void GraphInputOutput::Clear()
+	{
+		GraphCore::Clear();
+
+		return;
+	}
+
+	//Public Function 1255
+	string GraphInputOutput::GetInputFile()
+	{
+		return(m_s_InputFile);
+	}
+
+	int GraphInputOutput::WriteMatrixMarket(string s_OutputFile, bool b_getStructureOnly) {
+		ofstream out (s_OutputFile.c_str());
+		if(!out) {
+			cout<<"Error creating file: \""<<s_OutputFile<<"\""<<endl;
+			exit(1);
+		}
+
+		bool b_printValue = ( (!b_getStructureOnly) && (m_vd_Values.size()==m_vi_Edges.size()) );
+		int i_NumOfLines = 0;
+		int max = m_vi_Vertices.size()-1;
+
+		out<<"%%MatrixMarket matrix coordinate real symmetric"<<endl;
+
+		//Count i_NumOfLines
+		for(int i = 1; i<max;i++) {
+		  for(int j = m_vi_Vertices[i]; j < m_vi_Vertices[i+1]; j++) {
+		    //Only print out the entries in the lower triangular portion of the matrix
+		    if(i>m_vi_Edges[j]) {
+		      i_NumOfLines++;
+		    }
+		  }
+		}
+
+		out<<m_vi_Vertices.size()-1<<" "<<m_vi_Vertices.size()-1<<" "<< i_NumOfLines<<endl;
+
+		out<<setprecision(10)<<scientific<<showpoint;
+		for(int i = 1; i<max;i++) {
+		  for(int j = m_vi_Vertices[i]; j < m_vi_Vertices[i+1]; j++) {
+		    //Only print out the entries in the lower triangular portion of the matrix
+		    if(i>m_vi_Edges[j]) {
+		      out<<i+1<<" "<<m_vi_Edges[j]+1;
+		      if (b_printValue) out<<" "<<m_vd_Values[j];
+		      out<<endl;
+		    }
+		  }
+		}
+
+		return 0;
+	}
+
+
+	//Public Function 1257
+	int GraphInputOutput::ReadMatrixMarketAdjacencyGraph(string s_InputFile, bool b_getStructureOnly)
+	{
+		//Pause();
+		Clear();
+                if(!b_getStructureOnly) { 
+                    printf("Warning, you tried to read matrix market matrix with values. However since graph coloring does not using matrix values but structure. We neglect the values during the reading file.\n");  
+                    b_getStructureOnly=true;
+                }
+
+		m_s_InputFile=s_InputFile;
+
+		//initialize local data
+		int col=0, row=0, rowIndex=0, colIndex=0;
+		int entry_counter = 0, num_of_entries = 0;
+		//bool value_not_specified = false; //unused variable
+		//int num=0, numCount=0;
+		bool b_symmetric;
+		istringstream in2;
+		string line="";
+		map<int,vector<int> > nodeList;
+		map<int,vector<double> > valueList;
+
+		//READ IN BANNER
+		MM_typecode matcode;
+		FILE *f;
+		if ((f = fopen(m_s_InputFile.c_str(), "r")) == NULL)  {
+		  cout<<m_s_InputFile<<" not Found!"<<endl;
+		  exit(1);
+		}
+		//else cout<<"Found file "<<m_s_InputFile<<endl;
+
+		if (mm_read_banner(f, &matcode) != 0)
+		{
+		    printf("Could not process Matrix Market banner.\n");
+		    exit(1);
+		}
+
+                
+                if( !mm_is_coordinate(matcode) ){
+		  printf("Sorry, %s is dense, this application only not support sparse.\n", m_s_InputFile.c_str());
+		  exit(-1);
+                }
+
+ 		if( mm_is_symmetric(matcode) || mm_is_skew(matcode) || mm_is_hermitian(matcode) ) 
+		    b_symmetric = true;
+		else 
+                    b_symmetric = false;
+                
+                fclose(f);  //mm_read_mtx_crd_size(f, &row, &col, &num_of_entries);  //FILE sys is kind of old.
+
+		ifstream in (m_s_InputFile.c_str());
+                if(!in) { printf("cannot open %s",m_s_InputFile.c_str()); exit(1); }
+
+                do{
+		    getline(in,line);
+                }while(line.size()>0 && line[0]=='%');
+
+		in2.str(line);
+		in2>>row>>col>>num_of_entries;
+
+		//if(row!=col) {
+		//	cout<<"* WARNING: GraphInputOutput::ReadMatrixMarketAdjacencyGraph()"<<endl;
+		//	cout<<"*\t row!=col. This is not a square matrix. Can't process."<<endl;
+		//	return _FALSE;
+		//}
+
+		// DONE - FIND OUT THE SIZE OF THE MATRIX
+                
+                if(b_symmetric){
+                    do{
+		        getline(in,line);
+                        if(line.empty() || line[0]=='%') 
+                            continue;
+		        entry_counter++;
+                        in2.clear();
+                        in2.str(line);
+                        in2>>rowIndex>>colIndex;
+                        
+                        if(rowIndex==colIndex) continue;
+                        rowIndex--;  //to 0 base
+                        colIndex--;  //to 0 base
+                        if(rowIndex<colIndex) { 
+                            printf("Error find a entry in symmetric matrix %s upper part. row %d col %d"
+                                    ,m_s_InputFile.c_str(), rowIndex+1, colIndex+1); 
+                            exit(1); 
+                        } 
+                        nodeList[rowIndex].push_back(colIndex);
+                        nodeList[colIndex].push_back(rowIndex);
+                    }while(!in.eof() && entry_counter<num_of_entries);
+                }//end of if b_symmetric
+                else{
+                    // if the graph is non symmetric, this matrix represent a directed graph
+                    // We force directed graph to become un-directed graph by adding the 
+                    // corresponding edge. This may leads to duplicate edges problem.
+                    // we then later sort and unique the duplicated edges.
+                    do{
+		        getline(in,line);
+                        if(line.empty() || line[0]=='%') 
+                            continue;
+		        entry_counter++;
+                        in2.clear();
+                        in2.str(line);
+                        in2>>rowIndex>>colIndex;
+                        
+                        if(rowIndex==colIndex) continue;
+                        rowIndex--;  //to 0 base
+                        colIndex--;  //to 0 base
+                        nodeList[rowIndex].push_back(colIndex);
+                        nodeList[colIndex].push_back(rowIndex);
+                    }while(!in.eof() && entry_counter<num_of_entries);
+                    
+                    for(auto &piv : nodeList){
+                        vector<int>& vec = piv.second;
+                        sort(vec.begin(), vec.end());
+                        vec.erase( unique(vec.begin(), vec.end()), vec.end());
+                    }
+                    row=col=max(row,col);
+
+                }
+
+		if(entry_counter<num_of_entries) { //entry_counter should be == num_of_entries
+			fprintf(stderr,"Error: GraphInputOutput::ReadMatrixMarketAdjacencyGraph()\n");
+                        fprintf(stderr,"       Tries to read matrix %s\n",m_s_InputFile.c_str());
+                        fprintf(stderr,"       entry_counter %d < expected_entries %d\n",entry_counter, num_of_entries);
+                        fprintf(stderr,"       This may caused by trancate of the matrix file\n");
+		        exit(1);
+		}
+
+		//now construct the graph
+		m_vi_Vertices.push_back(m_vi_Edges.size()); //m_vi_Edges.size() == 0 at this point
+		for(int i=0;i<row; i++) {
+			m_vi_Edges.insert(m_vi_Edges.end(),nodeList[i].begin(),nodeList[i].end());
+			m_vi_Vertices.push_back(m_vi_Edges.size());
+		}
+		
+                CalculateVertexDegrees();
+                return(_TRUE);
+	}
+
+
+	int GraphInputOutput::ReadHarwellBoeingAdjacencyGraph(string s_InputFile) {
+		Clear();
+
+		m_s_InputFile=s_InputFile;
+		ifstream in (m_s_InputFile.c_str());
+
+		if(!in)
+		{
+			cout<<"File "<<m_s_InputFile<<" Not Found"<<endl;
+			return _FALSE;
+		}
+		else
+		{
+			cout<<"Found File "<<m_s_InputFile<<endl;
+		}
+		//int i_Dummy; //unused variable
+                int i, j;
+		int num, counter;
+		double d;
+		int nnz;
+		string line, num_string;
+		istringstream iin;
+		vector< vector<int> > vvi_VertexAdjacency;
+		vector< vector<double> > vvd_Values;
+		vector<int> vi_ColumnStartPointers, vi_RowIndices;
+		vector<double> vd_Values;
+
+		//ignore the first line, which is the tittle and key
+		getline(in, line);
+
+		// Get line 2
+		int TOTCRD; // (ignored) Total number of lines excluding header
+		int PTRCRD; // (ignored) Number of lines for pointers
+		int INDCRD; // (ignored) Number of lines for row (or variable) indices
+		int VALCRD; // Number of lines for numerical values. VALCRD == 0 if no values is presented
+		int RHSCRD; // (ignored) Number of lines for right-hand sides. RHSCRD == 0 if no right-hand side data is presented
+
+		getline(in, line);
+		iin.clear();
+		iin.str(line);
+		iin >> TOTCRD >> PTRCRD >> INDCRD >> VALCRD >> RHSCRD;
+
+		// Get line 3
+		string MXTYPE; //Matrix type. We only accept: (R | P) (S | U) (A)
+		int NROW; // Number of rows (or left vertices)
+		int NCOL; // Number of columns (or  right vertices)
+		int NNZERO; // Number of nonzeros
+			    // in case of symmetric matrix, it is the number of nonzeros IN THE UPPER TRIANGULAR including the diagonal
+		int NELTVL; // (ignored) Number of elemental matrix entries (zero in the case of assembled matrices)
+		bool b_symmetric; // true if this matrix is symmetric (MXTYPE[1] == 'S'), false otherwise.
+
+		getline(in, line);
+		iin.clear();
+		iin.str(line);
+		iin >> MXTYPE >> NROW >> NCOL >> NNZERO >> NELTVL;
+		// We only accept MXTYPE = (R|P)(S|U)A
+		if(MXTYPE[0] == 'C') { //Complex matrix
+		  cerr<<"ERR: Complex matrix format is not supported"<<endl;
+		  exit(-1);
+		}
+		if(MXTYPE[1] == 'S') {
+		  b_symmetric = true;
+		}
+		else {
+		  b_symmetric = false;
+		  if(MXTYPE[1] != 'U') { //H, Z, R types are not supported
+		    cerr<<"ERR: Matrix format is not supported. MXTYPE[1] != 'S' && MXTYPE[1] != 'U'"<<endl;
+		    exit(-1);
+		  }
+		}
+		if(MXTYPE[2] == 'E') { //Elemental matrices (unassembled)
+		  cerr<<"ERR: Elemental matrices (unassembled) format is not supported"<<endl;
+		  exit(-1);
+		}
+
+		if(NROW != NCOL) {
+			cout<<"* WARNING: GraphInputOutput::ReadHarwellBoeingAdjacencyGraph()"<<endl;
+			cout<<"*\t row!=col. This is not a square matrix. Can't process."<<endl;
+			return _FALSE;
+		}
+
+		// Ignore line 4 for now
+		getline(in, line);
+
+		//If the right-hand side data is presented, ignore the 5th header line
+		if(RHSCRD) getline(in, line);
+
+		//Initialize data structures
+		m_vi_Vertices.clear();
+		m_vi_Vertices.resize(NROW+1, _UNKNOWN);
+		vvi_VertexAdjacency.clear();
+		vvi_VertexAdjacency.resize(NROW);
+		vvd_Values.clear();
+		vvd_Values.resize(NROW);
+		vi_ColumnStartPointers.clear();
+		vi_ColumnStartPointers.resize(NCOL+1);
+		vi_RowIndices.clear();
+		vi_RowIndices.resize(NNZERO);
+		vd_Values.clear();
+		vd_Values.resize(NNZERO);
+
+		// get the 2nd data block: column start pointers
+		for(int i=0; i<NCOL+1; i++) {
+		  in>> vi_ColumnStartPointers[i];
+		}
+
+		// get the 3rd data block: row (or variable) indices,
+		for(i=0; i<NNZERO; i++) {
+		  in >> num;
+		  vi_RowIndices[i] = num-1;
+		}
+
+		// get the 4th data block: numerical values
+		if(VALCRD !=0) {
+		  for(i=0; i<NNZERO; i++) {
+		    in >> num_string;
+		    ConvertHarwellBoeingDouble(num_string);
+		    iin.clear();
+		    iin.str(num_string);
+		    iin >> d;
+		    vd_Values[i] = d;
+		  }
+		}
+
+		//populate vvi_VertexAdjacency & vvd_Values
+		nnz = 0;
+		counter = 0;
+		for(i=0; i<NCOL; i++) {
+		  for(j=vi_ColumnStartPointers[i]; j< vi_ColumnStartPointers[i+1]; j++) {
+		    num = vi_RowIndices[counter];
+		    d = vd_Values[counter];
+
+		    if(num != i) {
+		      if(b_symmetric) {
+			vvi_VertexAdjacency[i].push_back(num);
+			vvi_VertexAdjacency[num].push_back(i);
+
+			if(VALCRD !=0) {
+			  vvd_Values[i].push_back(d);
+			  vvd_Values[num].push_back(d);
+			}
+
+			nnz+=2;
+		      }
+		      else { // !b_symmetric
+			vvi_VertexAdjacency[i].push_back(num);
+			if(VALCRD !=0) vvd_Values[i].push_back(d);
+			nnz++;
+		      }
+		    }
+		    counter++;
+		  }
+		}
+
+		m_vi_Edges.clear();
+		m_vi_Edges.resize(nnz, _UNKNOWN);
+		if(VALCRD !=0) {
+		  m_vd_Values.clear();
+		  m_vd_Values.resize(nnz, _UNKNOWN);
+		}
+		//populate the m_vi_Vertices, their Edges and Values at the same time
+		m_vi_Vertices[0]=0;
+		for(i=0; i<NROW; i++) {
+		  for(j=0;(size_t)j<vvi_VertexAdjacency[i].size();j++) {
+		    m_vi_Edges[m_vi_Vertices[i]+j] = vvi_VertexAdjacency[i][j];
+		    if(VALCRD !=0) m_vd_Values[m_vi_Vertices[i]+j] = vvd_Values[i][j];
+		  }
+
+		  m_vi_Vertices[i+1] = m_vi_Vertices[i]+vvi_VertexAdjacency[i].size();
+		}
+
+		PrintGraph();
+		Pause();
+
+	  return 0;
+	}
+
+	int GraphInputOutput::ReadMeTiSAdjacencyGraph(string s_InputFile)
+	{
+		istringstream in2;
+		int i, j;
+
+		int i_LineCount, i_TokenCount;
+
+		int i_Vertex;
+
+		int i_VertexCount, i_VertexDegree;
+
+		int i_EdgeCount;
+
+		int i_VertexWeights, i_EdgeWeights;
+
+		string _GAP(" ");
+
+		string s_InputLine;
+
+		ifstream InputStream;
+
+		vector<string> vs_InputTokens;
+
+		vector<double> vi_EdgeWeights;
+		vector<double> vi_VertexWeights;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		vector< vector<double> > v2i_VertexWeights;
+
+		Clear();
+
+		m_s_InputFile = s_InputFile;
+
+		InputStream.open(m_s_InputFile.c_str());
+		if(!InputStream) {
+			cout<<m_s_InputFile<<" not Found!"<<endl;
+			return (_FALSE);
+		}
+		else cout<<"Found file "<<m_s_InputFile<<endl;
+
+		vi_EdgeWeights.clear();
+
+		v2i_VertexWeights.clear();
+
+		i_VertexWeights = i_EdgeWeights = _FALSE;
+
+		i_LineCount = _FALSE;
+
+		do
+		{
+			getline(InputStream, s_InputLine);
+
+			if(!InputStream)
+			{
+				break;
+			}
+
+			if(s_InputLine[0] == '%')
+			{
+				continue;
+			}
+
+			if(i_LineCount == _FALSE)
+			{
+				in2.clear();
+				in2.str(s_InputLine);
+				in2>>i_VertexCount>>i_EdgeCount;
+
+				i_VertexWeights = _FALSE;
+				i_EdgeWeights = _FALSE;
+
+				if(!in2.eof())
+				{
+				  int Weights;
+				  in2>>Weights;
+					if(Weights == 1)
+					{
+						i_EdgeWeights = _TRUE;
+					}
+					else
+					if(Weights == 10)
+					{
+						i_VertexWeights = _TRUE;
+					}
+					else
+					if(Weights == 11)
+					{
+						i_EdgeWeights = _TRUE;
+						i_VertexWeights = _TRUE;
+					}
+			   }
+
+				if(!in2.eof())
+				{
+					in2>>i_VertexWeights ;
+				}
+
+				v2i_VertexAdjacency.clear();
+				v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+				i_LineCount++;
+
+			}
+			else
+			{
+				in2.clear();
+				//remove trailing space or tab in s_InputLine
+				int input_end= s_InputLine.size() - 1;
+				if(input_end>=0) {
+				  while(s_InputLine[input_end] == ' ' || s_InputLine[input_end] == '\t') input_end--;
+				}
+				if(input_end<0) s_InputLine = "";
+				else s_InputLine = s_InputLine.substr(0, input_end+1);
+
+				in2.str(s_InputLine);
+				string tokens;
+
+				vs_InputTokens.clear();
+
+				while( !in2.eof() )
+				{
+					in2>>tokens;
+					vs_InputTokens.push_back(tokens);
+				}
+
+				i_TokenCount = (signed) vs_InputTokens.size();
+
+				vi_VertexWeights.clear();
+
+				for(i=0; i<i_VertexWeights; i++)
+				{
+					vi_VertexWeights.push_back(atoi(vs_InputTokens[i].c_str()));
+				}
+
+				if(i_VertexWeights != _FALSE)
+				{
+					v2i_VertexWeights.push_back(vi_VertexWeights);
+				}
+
+				if(i_EdgeWeights == _FALSE)
+				{
+					for(i=i_VertexWeights; i<i_TokenCount; i++)
+					{
+						if(vs_InputTokens[i] != "") {
+							i_Vertex = STEP_DOWN(atoi(vs_InputTokens[i].c_str()));
+
+							//if(i_Vertex == -1) {
+							//  cout<<"i_Vertex == -1, i = "<<i<<", vs_InputTokens[i] = "<<vs_InputTokens[i]<<endl;
+							//  Pause();
+							//}
+
+							if(i_Vertex != STEP_DOWN(i_LineCount))
+							{
+								v2i_VertexAdjacency[STEP_DOWN(i_LineCount)].push_back(i_Vertex);
+							}
+						}
+					}
+				}
+				else
+				{
+					for(i=i_VertexWeights; i<i_TokenCount; i=i+2)
+					{
+						i_Vertex = STEP_DOWN(atoi(vs_InputTokens[i].c_str()));
+
+						if(i_Vertex != STEP_DOWN(i_LineCount))
+						{
+							v2i_VertexAdjacency[STEP_DOWN(i_LineCount)].push_back(i_Vertex);
+
+							vi_EdgeWeights.push_back(STEP_DOWN(atof(vs_InputTokens[STEP_UP(i)].c_str())));
+						}
+					}
+				}
+
+				i_LineCount++;
+			}
+
+		}
+		while(InputStream);
+
+		InputStream.close();
+
+		i_VertexCount = (signed) v2i_VertexAdjacency.size();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				m_vi_Edges.push_back(v2i_VertexAdjacency[i][j]);
+			}
+		}
+
+		m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+		CalculateVertexDegrees();
+
+#if DEBUG == 1259
+
+		cout<<endl;
+		cout<<"DEBUG 1259 | Graph Coloring | Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		i_EdgeCount = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			cout<<"Vertex "<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				if(j == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(v2i_VertexAdjacency[i][j])<<" ("<<i_VertexDegree<<")";
+
+					i_EdgeCount++;
+				}
+				else
+				{
+					cout<<STEP_UP(v2i_VertexAdjacency[i][j])<<", ";
+
+					i_EdgeCount++;
+				}
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Vertices = "<<i_VertexCount<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+
+	}
+
+
+	//Public Function 1259
+	int GraphInputOutput::ReadMeTiSAdjacencyGraph2(string s_InputFile)
+	{
+		int i, j;
+
+		int i_LineCount, i_TokenCount;
+
+		int i_Vertex;
+
+		int i_VertexCount, i_VertexDegree;
+
+		//int i_EdgeCount; //unused variable
+
+		int i_VertexWeights, i_EdgeWeights;
+
+		string _GAP(" ");
+
+		string s_InputLine;
+
+		ifstream InputStream;
+
+		vector<string> vs_InputTokens;
+
+		vector<double> vi_EdgeWeights;
+		vector<double> vi_VertexWeights;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		vector< vector<double> > v2i_VertexWeights;
+
+		Clear();
+
+		m_s_InputFile = s_InputFile;
+
+		InputStream.open(m_s_InputFile.c_str());
+		if(!InputStream) {
+			cout<<m_s_InputFile<<" not Found!"<<endl;
+			return (_FALSE);
+		}
+		else cout<<"Found file "<<m_s_InputFile<<endl;
+
+		vi_EdgeWeights.clear();
+
+		v2i_VertexWeights.clear();
+
+		i_VertexWeights = i_EdgeWeights = _FALSE;
+
+		i_LineCount = _FALSE;
+
+		do
+		{
+			getline(InputStream, s_InputLine);
+
+			if(!InputStream)
+			{
+				break;
+			}
+
+			if(s_InputLine[0] == '%')
+			{
+				continue;
+			}
+
+			if(i_LineCount == _FALSE)
+			{
+				StringTokenizer GapTokenizer(s_InputLine, _GAP);
+
+				vs_InputTokens.clear();
+
+				while(GapTokenizer.HasMoreTokens())
+				{
+					vs_InputTokens.push_back(GapTokenizer.GetNextToken());
+				}
+
+				i_VertexCount = atoi(vs_InputTokens[0].c_str());
+				//i_EdgeCount = atoi(vs_InputTokens[1].c_str()); //unused variable
+
+				i_VertexWeights = _FALSE;
+				i_EdgeWeights = _FALSE;
+
+				if(vs_InputTokens.size() > 2)
+				{
+					if(atoi(vs_InputTokens[2].c_str()) == 1)
+					{
+						i_EdgeWeights = _TRUE;
+					}
+					else
+					if(atoi(vs_InputTokens[2].c_str()) == 10)
+					{
+						i_VertexWeights = _TRUE;
+					}
+					else
+					if(atoi(vs_InputTokens[2].c_str()) == 11)
+					{
+						i_EdgeWeights = _TRUE;
+						i_VertexWeights = _TRUE;
+					}
+			   }
+
+				if(vs_InputTokens.size() > 3)
+				{
+					i_VertexWeights = atoi(vs_InputTokens[3].c_str());
+				}
+
+				v2i_VertexAdjacency.clear();
+				v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+				i_LineCount++;
+
+			}
+			else
+			{
+				StringTokenizer GapTokenizer(s_InputLine, _GAP);
+
+				vs_InputTokens.clear();
+
+				while(GapTokenizer.HasMoreTokens())
+				{
+					vs_InputTokens.push_back(GapTokenizer.GetNextToken());
+				}
+
+				i_TokenCount = (signed) vs_InputTokens.size();
+
+				vi_VertexWeights.clear();
+
+				for(i=0; i<i_VertexWeights; i++)
+				{
+					vi_VertexWeights.push_back(atoi(vs_InputTokens[i].c_str()));
+				}
+
+				if(i_VertexWeights != _FALSE)
+				{
+					v2i_VertexWeights.push_back(vi_VertexWeights);
+				}
+
+				if(i_EdgeWeights == _FALSE)
+				{
+					for(i=i_VertexWeights; i<i_TokenCount; i++)
+					{
+						i_Vertex = STEP_DOWN(atoi(vs_InputTokens[i].c_str()));
+
+						if(i_Vertex != STEP_DOWN(i_LineCount))
+						{
+							v2i_VertexAdjacency[STEP_DOWN(i_LineCount)].push_back(i_Vertex);
+						}
+					}
+				}
+				else
+				{
+					for(i=i_VertexWeights; i<i_TokenCount; i=i+2)
+					{
+						i_Vertex = STEP_DOWN(atoi(vs_InputTokens[i].c_str()));
+
+						if(i_Vertex != STEP_DOWN(i_LineCount))
+						{
+							v2i_VertexAdjacency[STEP_DOWN(i_LineCount)].push_back(i_Vertex);
+
+							vi_EdgeWeights.push_back(STEP_DOWN(atof(vs_InputTokens[STEP_UP(i)].c_str())));
+						}
+					}
+				}
+
+				i_LineCount++;
+			}
+
+		}
+		while(InputStream);
+
+		InputStream.close();
+
+		i_VertexCount = (signed) v2i_VertexAdjacency.size();
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				m_vi_Edges.push_back(v2i_VertexAdjacency[i][j]);
+			}
+		}
+
+		m_vi_Vertices.push_back((signed) m_vi_Edges.size());
+
+		CalculateVertexDegrees();
+
+#if DEBUG == 1259
+
+		cout<<endl;
+		cout<<"DEBUG 1259 | Graph Coloring | Vertex Adjacency | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		i_EdgeCount = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			cout<<"Vertex "<<STEP_UP(i)<<"\t"<<" : ";
+
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+
+			for(j=0; j<i_VertexDegree; j++)
+			{
+				if(j == STEP_DOWN(i_VertexDegree))
+				{
+					cout<<STEP_UP(v2i_VertexAdjacency[i][j])<<" ("<<i_VertexDegree<<")";
+
+					i_EdgeCount++;
+				}
+				else
+				{
+					cout<<STEP_UP(v2i_VertexAdjacency[i][j])<<", ";
+
+					i_EdgeCount++;
+				}
+			}
+
+			cout<<endl;
+		}
+
+		cout<<endl;
+		cout<<"[Vertices = "<<i_VertexCount<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+		cout<<endl;
+
+#endif
+
+		return(_TRUE);
+
+	}
+
+
+	//Public Function 1260
+	int GraphInputOutput::PrintGraph()
+	{
+		int i;
+
+		int i_VertexCount, i_EdgeCount;
+
+		i_VertexCount = (signed) m_vi_Vertices.size();
+
+		cout<<endl;
+		cout<<"Graph Coloring | Vertex List | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			if(i == STEP_DOWN(i_VertexCount))
+			{
+				cout<<STEP_UP(m_vi_Vertices[i])<<" ("<<i_VertexCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_Vertices[i])<<", ";
+			}
+		}
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		cout<<endl;
+		cout<<"Graph Coloring | Edge List | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			if(i == STEP_DOWN(i_EdgeCount))
+			{
+				cout<<STEP_UP(m_vi_Edges[i])<<" ("<<i_EdgeCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_Edges[i])<<", ";
+			}
+		}
+
+		if(m_vd_Values.size() > _FALSE)
+		{
+
+			cout<<endl;
+			cout<<"Graph Coloring | Nonzero List | "<<m_s_InputFile<<endl;
+			cout<<endl;
+
+			for(i=0; i<i_EdgeCount; i++)
+			{
+				if(i == STEP_DOWN(i_EdgeCount))
+				{
+					cout<<m_vd_Values[i]<<" ("<<i_EdgeCount<<")"<<endl;
+				}
+				else
+				{
+					cout<<m_vd_Values[i]<<", ";
+				}
+			}
+
+			cout<<endl;
+			cout<<"[Vertices = "<<STEP_DOWN(i_VertexCount)<<"; Edges = "<<i_EdgeCount/2<<"; Nonzeros = "<<i_EdgeCount/2<<"]"<<endl;
+			cout<<endl;
+		}
+		else
+		{
+			cout<<endl;
+			cout<<"[Vertices = "<<STEP_DOWN(i_VertexCount)<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+			cout<<endl;
+
+		}
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1261
+	int GraphInputOutput::PrintGraphStructure()
+	{
+		int i;
+
+		int i_VertexCount, i_EdgeCount;
+
+		i_VertexCount = (signed) m_vi_Vertices.size();
+
+		cout<<endl;
+		cout<<"Graph Coloring | Vertex List | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			if(i == STEP_DOWN(i_VertexCount))
+			{
+				cout<<STEP_UP(m_vi_Vertices[i])<<" ("<<i_VertexCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_Vertices[i])<<", ";
+			}
+		}
+
+		i_EdgeCount = (signed) m_vi_Edges.size();
+
+		cout<<endl;
+		cout<<"Graph Coloring | Edge List | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_EdgeCount; i++)
+		{
+			if(i == STEP_DOWN(i_EdgeCount))
+			{
+				cout<<STEP_UP(m_vi_Edges[i])<<" ("<<i_EdgeCount<<")"<<endl;
+			}
+			else
+			{
+				cout<<STEP_UP(m_vi_Edges[i])<<", ";
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Vertices = "<<STEP_DOWN(i_VertexCount)<<"; Edges = "<<i_EdgeCount/2<<"]"<<endl;
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+	int GraphInputOutput::PrintGraphStructure2()
+	{
+		int i;
+
+		int i_VertexCount;
+                //int i_EdgeCount; //unused variable
+
+		i_VertexCount = (signed) m_vi_Vertices.size();
+
+		cout<<endl;
+		cout<<"PrintGraphStructure2() for graph: "<<m_s_InputFile<<endl;
+		cout<<"Format: Vertex id (# of edges): D1 neighbor #1, D1 neighbor #2, ... (all vertices is displayed using 1-based index)"<<endl;
+		cout<<endl;
+
+		for(i=0; i<i_VertexCount-1; i++)
+		{
+			cout<<"Vertex "<<STEP_UP(i)<<" ("<<m_vi_Vertices[i+1] - m_vi_Vertices[i]<<"): ";
+
+			for(int j=m_vi_Vertices[i]; j<m_vi_Vertices[i+1]; j++)
+			{
+				cout<<STEP_UP(m_vi_Edges[j])<<", ";
+			}
+			cout<<endl;
+		}
+
+
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1262
+	int GraphInputOutput::PrintMatrix()
+	{
+		int i, j;
+
+		int i_VertexCount;
+
+		cout<<endl;
+		cout<<"Graph Coloring | Matrix Elements | "<<m_s_InputFile<<endl;
+		cout<<endl;
+
+		i_VertexCount = (signed) m_vi_Vertices.size();
+
+		for(i=0; i<i_VertexCount-1; i++)
+		{
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				cout<<"Element["<<STEP_UP(i)<<"]["<<STEP_UP(m_vi_Edges[j])<<"] = "<<m_vd_Values[j]<<endl;
+			}
+		}
+
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1263
+	int GraphInputOutput::PrintMatrix(vector<int> & vi_Vertices, vector<int> & vi_Edges, vector<double> & vd_Values)
+	{
+		int i, j;
+
+		int i_VertexCount;
+
+		cout<<endl;
+		cout<<"Graph Coloring | Matrix Elements | "<<m_s_InputFile<<endl;
+		cout<<endl;
+		i_VertexCount = (signed) vi_Vertices.size();
+
+		for(i=0; i<i_VertexCount-1; i++)
+		{
+			for(j=vi_Vertices[i]; j<vi_Vertices[STEP_UP(i)]; j++)
+			{
+				cout<<"Element["<<STEP_UP(i)<<"]["<<STEP_UP(vi_Edges[j])<<"] = "<<vd_Values[j]<<endl;
+			}
+		}
+
+		cout<<endl;
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1264
+	void GraphInputOutput::PrintVertexDegrees()
+	{
+		cout<<endl;
+		cout<<"Graph | "<<m_s_InputFile<<" | Maximum Vertex Degree | "<<m_i_MaximumVertexDegree<<endl;
+		cout<<"Graph | "<<m_s_InputFile<<" | Minimum Vertex Degree | "<<m_i_MinimumVertexDegree<<endl;
+		cout<<"Graph | "<<m_s_InputFile<<" | Average Vertex Degree | "<<m_d_AverageVertexDegree<<endl;
+		cout<<endl;
+
+		return;
+	}
+
+	int GraphInputOutput::BuildGraphFromRowCompressedFormat(unsigned int ** uip2_HessianSparsityPattern, int i_RowCount) {
+	  int i, j;
+
+	  int i_ElementCount, i_PositionCount;
+
+	  int i_HighestDegree;
+
+#if DEBUG == 1
+
+	  cout<<endl;
+	  cout<<"DEBUG | Graph Coloring | Sparsity Pattern"<<endl;
+	  cout<<endl;
+
+	  for(i=0; i<i_RowCount; i++)
+	    {
+	      cout<<i<<"\t"<<" : ";
+
+	      i_PositionCount = uip2_HessianSparsityPattern[i][0];
+
+	      for(j=0; j<i_PositionCount; j++)
+		{
+		  if(j == STEP_DOWN(i_PositionCount))
+		    {
+		      cout<<uip2_HessianSparsityPattern[i][STEP_UP(j)]<<" ("<<i_PositionCount<<")";
+		    }
+		  else
+		    {
+		      cout<<uip2_HessianSparsityPattern[i][STEP_UP(j)]<<", ";
+		    }
+
+		}
+
+	      cout<<endl;
+	    }
+
+	  cout<<endl;
+
+#endif
+
+	  m_vi_Vertices.clear();
+	  m_vi_Vertices.push_back(_FALSE);
+
+	  m_vi_Edges.clear();
+
+	  i_HighestDegree = _UNKNOWN;
+
+	  for(i=0; i<i_RowCount; i++)
+	    {
+	      i_ElementCount = _FALSE;
+
+	      i_PositionCount = uip2_HessianSparsityPattern[i][0];
+
+	      if(i_HighestDegree < i_PositionCount)
+		{
+		  i_HighestDegree = i_PositionCount;
+		}
+
+	      for(j=0; j<i_PositionCount; j++)
+		{
+		  if((signed) uip2_HessianSparsityPattern[i][STEP_UP(j)] != i)
+		    {
+		      m_vi_Edges.push_back((signed) uip2_HessianSparsityPattern[i][STEP_UP(j)]);
+
+		      i_ElementCount++;
+		    }
+
+		}
+
+	      m_vi_Vertices.push_back(m_vi_Vertices.back() + i_ElementCount);
+	    }
+
+#if DEBUG == 1
+
+	  int i_VertexCount, i_EdgeCount;
+
+	  cout<<endl;
+	  cout<<"DEBUG | Graph Coloring | Graph Format"<<endl;
+	  cout<<endl;
+
+	  cout<<"Vertices"<<"\t"<<" : ";
+
+	  i_VertexCount = (signed) m_vi_Vertices.size();
+
+	  for(i=0; i<i_VertexCount; i++)
+	    {
+	      if(i == STEP_DOWN(i_VertexCount))
+		{
+		  cout<<m_vi_Vertices[i]<<" ("<<i_VertexCount<<")";
+		}
+	      else
+		{
+		  cout<<m_vi_Vertices[i]<<", ";
+		}
+	    }
+
+	  cout<<endl;
+
+	  cout<<"Edges"<<"\t"<<" : ";
+
+	  i_EdgeCount = (signed) m_vi_Edges.size();
+
+	  for(i=0; i<i_EdgeCount; i++)
+	    {
+	      if(i == STEP_DOWN(i_EdgeCount))
+		{
+		  cout<<m_vi_Edges[i]<<" ("<<i_EdgeCount<<")";
+		}
+	      else
+		{
+		  cout<<m_vi_Edges[i]<<", ";
+		}
+	    }
+
+	  cout<<endl;
+
+#endif
+
+	  CalculateVertexDegrees();
+
+	  return(i_HighestDegree);
+	}
+
+	int GraphInputOutput::ReadAdjacencyGraph(string s_InputFile, string s_fileFormat)
+	{
+		if (s_fileFormat == "AUTO_DETECTED" || s_fileFormat == "") {
+			File file(s_InputFile);
+			string fileExtension = file.GetFileExtension();
+			if (isHarwellBoeingFormat(fileExtension)) {
+				//cout<<"ReadHarwellBoeingAdjacencyGraph"<<endl;
+				return ReadHarwellBoeingAdjacencyGraph(s_InputFile);
+			}
+			else if (isMeTiSFormat(fileExtension)) {
+				//cout<<"ReadMeTiSAdjacencyGraph"<<endl;
+				return ReadMeTiSAdjacencyGraph(s_InputFile);
+			}
+			else if (isMatrixMarketFormat(fileExtension)) {
+				//cout<<"ReadMatrixMarketAdjacencyGraph"<<endl;
+				return ReadMatrixMarketAdjacencyGraph(s_InputFile);
+			}
+			else { //other extensions
+				cout<<"unfamiliar extension \""<<fileExtension<<"\", use ReadMatrixMarketAdjacencyGraph"<<endl;
+				return ReadMatrixMarketAdjacencyGraph(s_InputFile);
+			}
+		}
+		else if (s_fileFormat == "MM") {
+			//cout<<"ReadMatrixMarketAdjacencyGraph"<<endl;
+			return ReadMatrixMarketAdjacencyGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "HB") {
+			//cout<<"ReadHarwellBoeingAdjacencyGraph"<<endl;
+			return ReadHarwellBoeingAdjacencyGraph(s_InputFile);
+		}
+		else if (s_fileFormat == "MeTiS") {
+			//cout<<"ReadMeTiSAdjacencyGraph"<<endl;
+			return ReadMeTiSAdjacencyGraph(s_InputFile);
+		}
+		else {
+			cerr<<"GraphInputOutput::ReadAdjacencyGraph s_fileFormat is not recognized"<<endl;
+			exit(1);
+		}
+
+		return(_TRUE);
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphInputOutput.h
@@ -0,0 +1,122 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef GRAPHINPUTOUTPUT_H
+#define GRAPHINPUTOUTPUT_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group1
+	 *  @brief class GraphInputOutput in @link group1@endlink.
+
+	 This class provides the input methods for reading in matrix or graph files in supported
+	 formats for generating general graphs. Three input formats are supported by default - Matrix Market,
+	 Harwell Boeing and MeTiS.
+	 */
+	class GraphInputOutput : public GraphCore
+	{
+	public:
+
+		/// Read the sparsity pattern of Hessian matrix represented in ADOLC format (Compressed Sparse Row format) and build a corresponding adjacency graph.
+		/**
+		Precondition:
+		- The Hessian matrix must be stored in Row Compressed Format
+
+		Return value:
+		- i_HighestDegree
+		*/
+		int BuildGraphFromRowCompressedFormat(unsigned int ** uip2_HessianSparsityPattern, int i_RowCount);
+
+		/// Read the sparsity pattern of a symmetric matrix in the specified file format from the specified filename and build an adjacency  graph.
+		/**	This function will
+		- 1. Read the name of the matrix file and decide which matrix format the file used (based on the file extension). If the file name has no extension, the user will need to pass the 2nd parameter "fileType" explicitly to tell ColPack which matrix format is used
+		- 2. Call the corresponding reading routine to build the graph
+
+		About input parameters:
+		- fileName: name of the input file for a symmetric matrix. If the full path is not given, the file is assumed to be in the current directory
+		- fileType can be either
+			- "AUTO_DETECTED" (default) or "". ColPack will decide the format of the file based on the file extension:
+				- ".mtx": symmetric MatrixMarket format
+				- ".hb", or any combination of ".<r, c, p><s, u, h, x, r><a, e>": HarwellBoeing format
+				- ".graph": MeTiS format
+				- If the above extensions are not found, MatrixMarket format will be assumed.
+			- "MM" for MatrixMarket format (http://math.nist.gov/MatrixMarket/formats.html#MMformat). Notes:
+			  - ColPack only accepts MatrixMarket coordinate format (NO array format)
+			  - List of arithmetic fields accepted by ColPack: real, pattern or integer
+			  - List of symmetry structures accepted by ColPack: general or symmetric
+			  - The first line of the input file should be similar to this: "%%MatrixMarket matrix coordinate real general"
+			- "HB" for HarwellBoeing format (http://math.nist.gov/MatrixMarket/formats.html#hb)
+			- "MeTiS" for MeTiS format (http://people.sc.fsu.edu/~burkardt/data/metis_graph/metis_graph.html)
+		*/
+		int ReadAdjacencyGraph(string s_InputFile, string s_fileFormat="AUTO_DETECTED");
+
+		// !!! NEED TO BE FIXED
+		/// Read the entries of a symmetric matrix in Matrix Market format and build the corresponding adjacency graph
+		/**
+		Precondition:
+		- s_InputFile should point to the MatrixMarket-format input file (file name usually ends with .mtx)
+		- If (b_getStructureOnly == true) only the structure of the matrix is read.
+		All the values for the non-zeros in the matrix will be ignored.
+		If the input file contains only the graph structure, the value of b_getStructureOnly will be ignored
+		*/
+		int ReadMatrixMarketAdjacencyGraph(string s_InputFile, bool b_getStructureOnly = true);
+
+		/// Write the structure of the graph into a file using Matrix Market format
+		/**
+		NOTES:
+		- Because ColPack's internal graph does not have self loop, the output graph will not have any self-loops that exist in the input,
+		i.e., diagonal entries of the input graph will be removed.
+		*/
+		int WriteMatrixMarket(string s_OutputFile = "-ColPack_debug.mtx", bool b_getStructureOnly = false);
+
+	private:
+
+		// ??? Wonder if this function is useful any more
+		int ParseWidth(string FortranFormat);
+
+		void CalculateVertexDegrees();
+
+	public:
+
+		GraphInputOutput();
+
+		~GraphInputOutput();
+
+		virtual void Clear();
+
+		string GetInputFile();
+
+		/// Read the entries of symmetric matrix in Harwell Boeing format and build the corresponding adjacency graph.
+		/**
+		  Supported sub-format: MXTYPE[3] = (R | P) (S | U) (A)
+		  If MXTYPE[2] = 'U', the matrix structure must still be symmetric for ColPack to work correctly
+		*/
+		int ReadHarwellBoeingAdjacencyGraph(string s_InputFile);
+
+		/// Read the entries of symmetric matrix in MeTiS format and build the corresponding adjacency graph.
+		int ReadMeTiSAdjacencyGraph(string s_InputFile);
+
+		// TO BE DOCUMENTED
+		// ??? When do I need ReadMeTiSAdjacencyGraph2() instead of ReadMeTiSAdjacencyGraph() ?
+		//        probably need ReadMeTiSAdjacencyGraph2() when I need to read from a variant of MeTiS format
+		int ReadMeTiSAdjacencyGraph2(string s_InputFile);
+
+		int PrintGraph();
+
+		int PrintGraphStructure();
+		int PrintGraphStructure2();
+
+		int PrintMatrix();
+
+		int PrintMatrix(vector<int> &, vector<int> &, vector<double> &);
+
+		void PrintVertexDegrees();
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphOrdering.cpp
@@ -0,0 +1,1636 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	//Private Function 1501
+	int GraphOrdering::OrderVertices(string s_OrderingVariant)
+	{
+		s_OrderingVariant = toUpper(s_OrderingVariant);
+
+		if((s_OrderingVariant.compare("NATURAL") == 0))
+		{
+			return(NaturalOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("LARGEST_FIRST") == 0))
+		{
+			return(LargestFirstOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("DYNAMIC_LARGEST_FIRST") == 0))
+		{
+			return(DynamicLargestFirstOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("DISTANCE_TWO_LARGEST_FIRST") == 0))
+		{
+			return(DistanceTwoLargestFirstOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("SMALLEST_LAST_SERIAL") == 0))
+		{
+			return(SmallestLastOrdering_serial());
+		}
+		else
+		if((s_OrderingVariant.substr(0,13).compare("SMALLEST_LAST") == 0)) // match both SMALLEST_LAST_SERIAL and SMALLEST_LAST_OMP
+		{
+			//cout<<"Match "<<s_OrderingVariant.substr(0,13)<<endl;
+			return(SmallestLastOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("DISTANCE_TWO_SMALLEST_LAST") == 0))
+		{
+			return(DistanceTwoSmallestLastOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("INCIDENCE_DEGREE") == 0))
+		{
+			return(IncidenceDegreeOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("DISTANCE_TWO_INCIDENCE_DEGREE") == 0))
+		{
+			return(DistanceTwoIncidenceDegreeOrdering());
+		}
+		else
+		if((s_OrderingVariant.compare("RANDOM") == 0))
+		{
+			return(RandomOrdering());
+		}
+		else
+		{
+			cerr<<endl;
+			cerr<<"Unknown Ordering Method: "<<s_OrderingVariant;
+			cerr<<endl;
+		}
+
+		return(_TRUE);
+	}
+
+	int GraphOrdering::CheckVertexOrdering() {
+		return isValidOrdering(m_vi_OrderedVertices);
+	}
+
+	//Private Function 1301
+	int GraphOrdering::CheckVertexOrdering(string s_VertexOrderingVariant)
+	{
+		if(m_s_VertexOrderingVariant.compare(s_VertexOrderingVariant) == 0)
+		{
+			return(_TRUE);
+		}
+
+		if(m_s_VertexOrderingVariant.compare("ALL") != 0)
+		{
+			m_s_VertexOrderingVariant = s_VertexOrderingVariant;
+		}
+
+		return(_FALSE);
+	}
+
+	//Public Constructor 1351
+	GraphOrdering::GraphOrdering() :GraphInputOutput()
+	{
+		Clear();
+	}
+
+
+	//Public Destructor 1352
+	GraphOrdering::~GraphOrdering()
+	{
+		Clear();
+	}
+
+
+	//Virtual Function 1353
+	void GraphOrdering::Clear()
+	{
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+		m_vi_OrderedVertices.clear();
+
+		GraphCore::Clear();
+
+		return;
+	}
+
+	void GraphOrdering::ClearOrderingONLY()
+	{
+		m_d_OrderingTime = _UNKNOWN;
+
+		m_s_VertexOrderingVariant.clear();
+		m_vi_OrderedVertices.clear();
+
+		return;
+	}
+
+
+	//Public Function 1354
+	int GraphOrdering::NaturalOrdering()
+	{
+		if(CheckVertexOrdering("NATURAL") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i;
+
+		int i_VertexCount;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_OrderedVertices.clear();
+
+		m_vi_OrderedVertices.resize((unsigned) i_VertexCount);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			m_vi_OrderedVertices[i] = i;
+		}
+
+		return(_TRUE);
+	}
+
+	int GraphOrdering::RandomOrdering()
+	{
+		if(CheckVertexOrdering("RANDOM") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		m_s_VertexOrderingVariant = "RANDOM";
+
+		int i_VertexCount;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_OrderedVertices.clear();
+
+		m_vi_OrderedVertices.resize((unsigned) i_VertexCount);
+
+		//initialize m_vi_OrderedVertices
+		for(int i = 0; i<i_VertexCount; i++) {
+			m_vi_OrderedVertices[i] = i;
+		}
+
+		randomOrdering(m_vi_OrderedVertices);
+		/*
+		srand(time(NULL)); //set the seed of random number function
+
+		pair<int, int>* listOfPairs = new pair<int, int>[i_VertexCount];
+
+		//populate listOfPairs
+		for(unsigned int i = 0; i<i_VertexCount; i++) {
+			listOfPairs[i].first = rand();
+			listOfPairs[i].second = i;
+		}
+
+		sort(listOfPairs,listOfPairs + i_VertexCount);
+
+		//Now, populate vector m_vi_OrderedVertices
+		for(unsigned int i = 0; i<i_VertexCount; i++) {
+			//(*out).push_back((*in)[listOfPairs[i].num2]);
+			m_vi_OrderedVertices[i] = listOfPairs[i].second;
+		}
+
+		delete listOfPairs;
+		//*/
+
+		return(_TRUE);
+	}
+
+	int GraphOrdering::ColoringBasedOrdering(vector<int> &vi_VertexColors)
+	{
+
+		m_s_VertexOrderingVariant = "COLORING_BASED";
+
+		int i, j;
+
+		int i_VertexCount;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		m_vi_OrderedVertices.clear();
+
+		m_vi_OrderedVertices.resize((unsigned) i_VertexCount);
+
+		vector< vector <int> > vvi_ColorGroups;
+
+                vvi_ColorGroups.clear();
+                vvi_ColorGroups.resize((unsigned) i_VertexCount); // reserve memory
+
+		int i_HighestColor = _FALSE;
+
+		//Populate ColorGroups
+		for(int i=0; i <(int)vi_VertexColors.size(); i++)
+		{
+			vvi_ColorGroups[vi_VertexColors[i]].push_back(i);
+
+			if(i_HighestColor < vi_VertexColors[i])
+				i_HighestColor = vi_VertexColors[i];
+		}
+
+
+		int count = i_VertexCount;
+
+		for(i = 0; i< STEP_UP(i_HighestColor); i++)
+		{
+			if(vvi_ColorGroups[i].size() > 0)
+			{
+				for(j = vvi_ColorGroups[i].size() - 1; j >= 0; j--)
+				{
+					m_vi_OrderedVertices[count - 1] = vvi_ColorGroups[i][j];
+					count--;
+				}
+
+				vvi_ColorGroups[i].clear();
+			}
+		}
+
+		if(count!=0)
+		{
+			cout << "TROUBLE!!!"<<endl;
+			Pause();
+		}
+
+		vvi_ColorGroups.clear();
+		return(_TRUE);
+	}
+
+
+	//Public Function 1355
+	int GraphOrdering::LargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("LARGEST_FIRST") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i, j;
+
+		int i_VertexCount;
+
+		int i_VertexDegree, i_VertexDegreeCount;
+
+		vector< vector<int> > vvi_GroupedVertexDegree;
+
+		m_i_MaximumVertexDegree = _FALSE;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		vvi_GroupedVertexDegree.resize((unsigned) i_VertexCount);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			i_VertexDegree = m_vi_Vertices[STEP_UP(i)] - m_vi_Vertices[i];
+
+			vvi_GroupedVertexDegree[i_VertexDegree].push_back(i);
+
+			if(m_i_MaximumVertexDegree < i_VertexDegree)
+			{
+				m_i_MaximumVertexDegree = i_VertexDegree;
+			}
+		}
+
+		// reserve memory
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		for(i=m_i_MaximumVertexDegree; i>=0; i--)
+		{
+			i_VertexDegreeCount = (signed) vvi_GroupedVertexDegree[i].size();
+
+			for(j=0; j<i_VertexDegreeCount; j++)
+			{
+				m_vi_OrderedVertices.push_back(vvi_GroupedVertexDegree[i][j]);
+			}
+		}
+
+		// clear the buffer
+		vvi_GroupedVertexDegree.clear();
+		
+                return(_TRUE);
+	}
+
+	int GraphOrdering::printVertexEdgeMap(vector< vector< pair< int, int> > > &vvpii_VertexEdgeMap) {
+		ostringstream oout;
+		string tempS;
+		cout<<"vvpii_VertexEdgeMap.size() = "<<vvpii_VertexEdgeMap.size()<<endl;
+
+		for(int i=0; i<(int)vvpii_VertexEdgeMap.size(); i++) {
+			cout<<'['<<setw(4)<<i<<']';
+			for(int j=0; j<(int)vvpii_VertexEdgeMap[i].size(); j++) {
+				oout.str("");
+				oout << '(' << vvpii_VertexEdgeMap[i][j].first << ", " << vvpii_VertexEdgeMap[i][j].second << ')';
+				tempS = oout.str();
+				cout<<setw(10)<<tempS;
+				if(j%5 == 4 && j !=((int)vvpii_VertexEdgeMap[i].size()) - 1) cout<<endl<<setw(6)<<' ';
+			}
+			cout<<endl;
+		}
+
+		cout<<"*****************"<<endl;
+
+		return _TRUE;
+	}
+
+	struct less_degree_than {
+		bool operator()(const pair< int, int> *a, const pair< int, int> *b) const {
+			//Compare induced degree of a and b
+			if(a->second < b->second) return true;
+			if(a->second > b->second) return false;
+			//a->second == b->second, now use the vertex ID itself to decide the result
+			// Higher ID will be consider to be smaller.
+			return (a->first > b->first);
+		}
+	};
+
+	//Public Function 1356
+        int GraphOrdering::DynamicLargestFirstOrdering() {
+                if(CheckVertexOrdering("DYNAMIC_LARGEST_FIRST") == _TRUE)
+                {
+                        return(_TRUE);
+                }
+
+                int i, u, l;
+
+                int i_HighestInducedVertexDegree;
+
+                int i_VertexCount, i_InducedVertexDegree;
+
+                int i_InducedVertexDegreeCount;
+
+                int i_SelectedVertex, i_SelectedVertexCount;
+
+                vector<int> vi_InducedVertexDegree;
+
+                vector< vector <int> > vvi_GroupedInducedVertexDegree;
+
+                vector< int > vi_VertexLocation;
+
+                i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+                vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+
+                vvi_GroupedInducedVertexDegree.clear();
+                vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+                vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+                i_SelectedVertex = _UNKNOWN;
+
+                i_HighestInducedVertexDegree = _FALSE;
+
+                for(i=0; i<i_VertexCount; i++)
+                {
+			//get vertex degree for each vertex
+			i_InducedVertexDegree = m_vi_Vertices[STEP_UP(i)] - m_vi_Vertices[i];
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+                        {
+                                i_HighestInducedVertexDegree = i_InducedVertexDegree;
+                        }
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+                i_SelectedVertexCount = _FALSE;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+			//pick the vertex with largest degree
+			for(i = i_HighestInducedVertexDegree; i >= 0; i--)
+                        {
+                                i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+                                if(i_InducedVertexDegreeCount != _FALSE)
+                                {
+                                        i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+                                        break;
+                                }
+				else
+					i_HighestInducedVertexDegree--;
+                        }
+
+			//for every D1 neighbor of the i_SelectedVertex, decrease their degree by one and then update their position in vvi_GroupedInducedVertexDegree
+			// and vi_VertexLocation
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+			{
+				u = m_vi_Edges[i];
+
+				if(vi_InducedVertexDegree[u] == _UNKNOWN)
+                                {
+                                        continue;
+                                }
+
+				// move the last element in this bucket to u's position to get rid of expensive erase operation
+				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+				{
+					l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+					vi_VertexLocation[l] = vi_VertexLocation[u];
+				}
+
+				// remove last element from this bucket
+				vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+				// reduce degree of u by 1
+				vi_InducedVertexDegree[u]--;
+
+				// move u to appropriate bucket
+				vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+				// update vi_VertexLocation[u] since it has now been changed
+                                vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+			}
+
+			//Mark the i_SelectedVertex as read (_UNKNOWN), so that we don't look at it again
+			vi_InducedVertexDegree[i_SelectedVertex] = _UNKNOWN;
+
+			//Select the vertex by pushing it to the end of m_vi_OrderedVertices
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+
+			//increment i_SelectedVertexCount
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		// clear the buffers
+		vi_InducedVertexDegree.clear();
+		vi_VertexLocation.clear();
+		vvi_GroupedInducedVertexDegree.clear();
+
+		return(_TRUE);
+	}
+		/*
+	int GraphOrdering::DynamicLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("LARGEST FIRST") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		m_vi_OrderedVertices.clear();
+
+		int i_VertexCount = m_vi_Vertices.size() - 1;
+		int i_D1Neighbor = _UNKNOWN;
+
+		cout<<"i_VertexCount = "<<i_VertexCount<<endl;
+
+		pair< int, int> p_NeighborAndIndex;
+		p_NeighborAndIndex.first = _UNKNOWN; // The neighbor vertex that the current vertex connected to
+		p_NeighborAndIndex.second = _UNKNOWN; // Index (Place) of the pair where that neighbor point back to the current vertex
+
+		// vvpii_VertexEdgeMap[1][2] = {4,5} means (1,4) is the edge and vvpii_VertexEdgeMap[4][5] = {1,2};
+		// Reset the size of vvpii_VertexEdgeMap to be the number of vertices
+		vector< vector< pair< int, int> > > vvpii_VertexEdgeMap(i_VertexCount);
+
+		//For each edge in the graph, populate vvpii_VertexEdgeMap
+		for(int i=0; i <  i_VertexCount; i++) {
+			for(int j = m_vi_Vertices[i]; j < m_vi_Vertices[i+1]; j++) {
+				if(m_vi_Edges[j] > i) {
+					i_D1Neighbor = m_vi_Edges[j];
+
+					p_NeighborAndIndex.first = i_D1Neighbor;
+					p_NeighborAndIndex.second = vvpii_VertexEdgeMap[i_D1Neighbor].size();
+					vvpii_VertexEdgeMap[i].push_back(p_NeighborAndIndex);
+
+					p_NeighborAndIndex.first = i;
+					p_NeighborAndIndex.second = vvpii_VertexEdgeMap[i].size() - 1;
+					vvpii_VertexEdgeMap[i_D1Neighbor].push_back(p_NeighborAndIndex);
+				}
+			}
+		}
+
+		printVertexEdgeMap(vvpii_VertexEdgeMap);
+		Pause();
+
+		pair< int, int> p_VertexAndInducedDegree;
+		vector< pair< int, int>> vpii_ListOfVertexAndInducedDegree(i_VertexCount);
+		priority_queue< pair< int, int>*,
+			vector< pair< int, int>* >,
+			less_degree_than > hpii_VertexHeap;
+
+		for(int i = 0; i < i_VertexCount; i++) {
+			p_VertexAndInducedDegree.first = i;
+			p_VertexAndInducedDegree.second = vvpii_VertexEdgeMap[i].size();
+			vpii_ListOfVertexAndInducedDegree[i] = p_VertexAndInducedDegree;
+			hpii_VertexHeap.push(&vpii_ListOfVertexAndInducedDegree[i]);
+		}
+
+		cout<<"The order is: ";
+		while(!hpii_VertexHeap.empty()) {
+			p_VertexAndInducedDegree = *hpii_VertexHeap.top();
+			hpii_VertexHeap.pop();
+			cout << '(' << setw(4) << p_VertexAndInducedDegree.first
+				<< ", " << setw(4) << p_VertexAndInducedDegree.second << ")\t";
+		}
+		cout<<endl;
+		Pause();
+
+		//Now do the ordering
+		//remember not to pop_back any vertices, just reset them to (-1, -1)
+		for(int i = 0; i < i_VertexCount; i++) {
+			p_VertexAndInducedDegree = *hpii_VertexHeap.top();
+			//...
+			m_vi_OrderedVertices.push_back(p_VertexAndInducedDegree.first);
+			hpii_VertexHeap.pop();
+		}
+		//NEED TO CREATE A HEAP STRUCTURE JUST FOR THIS PROBLEM
+
+		return(_TRUE);
+	}
+	//*/
+
+	//Public Function 1357
+	int GraphOrdering::DistanceTwoLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("DISTANCE_TWO_LARGEST_FIRST") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k;
+
+		int i_VertexCount;
+
+		int i_HighestDistanceTwoVertexDegree;
+
+		int i_DistanceTwoVertexDegree, i_DistanceTwoVertexDegreeCount;
+
+		vector<int> vi_IncludedVertices;
+
+		vector< vector<int> > v2i_GroupedDistanceTwoVertexDegree;
+
+		i_HighestDistanceTwoVertexDegree = _FALSE;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+		v2i_GroupedDistanceTwoVertexDegree.clear();
+		v2i_GroupedDistanceTwoVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_IncludedVertices.clear();
+		vi_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_IncludedVertices[i] = i;
+
+			i_DistanceTwoVertexDegree = _FALSE;
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(vi_IncludedVertices[m_vi_Edges[j]] != i)
+				{
+					i_DistanceTwoVertexDegree++;
+
+					vi_IncludedVertices[m_vi_Edges[j]] = i;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(vi_IncludedVertices[m_vi_Edges[k]] != i)
+					{
+						i_DistanceTwoVertexDegree++;
+
+						vi_IncludedVertices[m_vi_Edges[k]] = i;
+					}
+				}
+			}
+
+			v2i_GroupedDistanceTwoVertexDegree[i_DistanceTwoVertexDegree].push_back(i);
+
+			if(i_HighestDistanceTwoVertexDegree < i_DistanceTwoVertexDegree)
+			{
+				i_HighestDistanceTwoVertexDegree = i_DistanceTwoVertexDegree;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		for(i=i_HighestDistanceTwoVertexDegree; i>=0; i--)
+		{
+			i_DistanceTwoVertexDegreeCount = (signed) v2i_GroupedDistanceTwoVertexDegree[i].size();
+
+			for(j=0; j<i_DistanceTwoVertexDegreeCount; j++)
+			{
+				m_vi_OrderedVertices.push_back(v2i_GroupedDistanceTwoVertexDegree[i][j]);
+			}
+		}
+
+		vi_IncludedVertices.clear();
+		v2i_GroupedDistanceTwoVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+        int GraphOrdering::SmallestLastOrdering() {
+		return GraphOrdering::SmallestLastOrdering_serial();
+	}
+//*
+
+	//Public Function 1358
+        int GraphOrdering::SmallestLastOrdering_serial()
+        {
+                if(CheckVertexOrdering("SMALLEST_LAST_SERIAL") == _TRUE)
+                {
+                        return(_TRUE);
+                }
+
+                int i, u, l;
+
+                int i_HighestInducedVertexDegree;
+
+                int i_VertexCount, i_InducedVertexDegree;
+
+		int i_VertexCountMinus1;
+
+		int i_InducedVertexDegreeCount;
+
+                int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector < int > vi_InducedVertexDegree;
+
+                vector< vector< int > > vvi_GroupedInducedVertexDegree;
+
+                vector< int > vi_VertexLocation;
+
+                i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+                i_VertexCountMinus1 = i_VertexCount - 1; // = i_VertexCount - 1, used when inserting selected vertices into m_vi_OrderedVertices
+
+                vi_InducedVertexDegree.clear();
+		vi_InducedVertexDegree.reserve((unsigned) i_VertexCount);
+
+                vvi_GroupedInducedVertexDegree.clear();
+                vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+                vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+                i_SelectedVertex = _UNKNOWN;
+
+                i_HighestInducedVertexDegree = _FALSE;
+
+
+                for(i=0; i<i_VertexCount; i++)
+		{
+			//get vertex degree for each vertex
+			i_InducedVertexDegree = m_vi_Vertices[STEP_UP(i)] - m_vi_Vertices[i];
+
+			//vi_InducedVertexDegree[i] = vertex degree of vertex i
+			vi_InducedVertexDegree.push_back(i_InducedVertexDegree);
+
+			// vector vvi_GroupedInducedVertexDegree[i] = all the vertices with degree i
+			// for every new vertex with degree i, it will be pushed to the back of vector vvi_GroupedInducedVertexDegree[i]
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+			//vi_VertexLocation[i] = location of vertex i in vvi_GroupedInducedVertexDegree[i_InducedVertexDegree]
+			vi_VertexLocation.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			//get max degree (i_HighestInducedVertexDegree)
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+                        {
+                                i_HighestInducedVertexDegree = i_InducedVertexDegree;
+                        }
+		}
+
+		m_vi_OrderedVertices.clear();
+                m_vi_OrderedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+                i_SelectedVertexCount = _FALSE;
+		int iMin = 1;
+
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while(i_SelectedVertexCount < i_VertexCount)
+                {
+			if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin - 1].size() != _FALSE)
+				iMin--;
+
+			//pick the vertex with smallest degree
+			for(i=iMin; i<STEP_UP(i_HighestInducedVertexDegree); i++)
+                        {
+                                i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+                                if(i_InducedVertexDegreeCount != _FALSE)
+                                {
+                                        i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+					//remove the i_SelectedVertex from vvi_GroupedInducedVertexDegree
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+                                        break;
+                                }
+				else
+					iMin++;
+                        }
+			// and vi_VertexLocation
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+                        {
+                                u = m_vi_Edges[i];
+
+                                if(vi_InducedVertexDegree[u] == _UNKNOWN)
+                                {
+                                        continue;
+                                }
+
+				// move the last element in this bucket to u's position to get rid of expensive erase operation
+                                if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() > 1)
+                                {
+                                        l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].back();
+
+                                        vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+
+                                        vi_VertexLocation[l] = vi_VertexLocation[u];
+                                }
+				// remove last element from this bucket
+                                vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].pop_back();
+
+				// reduce degree of u by 1
+                                vi_InducedVertexDegree[u]--;
+
+				// move u to appropriate bucket
+                                vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].push_back(u);
+
+				// update vi_VertexLocation[u] since it has now been changed
+                                vi_VertexLocation[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegree[u]].size() - 1;
+                        }
+
+			//Mark the i_SelectedVertex as read, so that we don't look at it again
+                        vi_InducedVertexDegree[i_SelectedVertex] = _UNKNOWN;
+                        // insert i_SelectedVertex into m_vi_OrderedVertices
+                        m_vi_OrderedVertices[i_VertexCountMinus1 - i_SelectedVertexCount] = i_SelectedVertex;
+			//increment i_SelectedVertexCount
+                        i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		// clear the buffer
+                vi_InducedVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+	int GraphOrdering::DistanceTwoDynamicLargestFirstOrdering()
+	{
+		if(CheckVertexOrdering("DISTANCE TWO DYNAMIC LARGEST FIRST") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l, u, v;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_VertexCount, i_InducedVertexDegree;
+
+		int i_InducedVertexDegreeCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector < int > vi_IncludedVertices;
+
+		vector < int > vi_InducedVertexDegrees;
+
+		vector < vector < int > > vvi_GroupedInducedVertexDegree;
+
+		vector < int > vi_VertexLocations;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+                vi_IncludedVertices.clear();
+                vi_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.reserve((unsigned) i_VertexCount);
+
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_VertexLocations.clear();
+		vi_VertexLocations.reserve((unsigned) i_VertexCount);
+
+
+		i_SelectedVertex = _UNKNOWN;
+
+		i_HighestInducedVertexDegree = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_IncludedVertices[i] = i;
+
+			i_InducedVertexDegree = _FALSE;
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(vi_IncludedVertices[m_vi_Edges[j]] != i)
+				{
+					i_InducedVertexDegree++;
+
+					vi_IncludedVertices[m_vi_Edges[j]] = i;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(vi_IncludedVertices[m_vi_Edges[k]] != i)
+					{
+						i_InducedVertexDegree++;
+
+						vi_IncludedVertices[m_vi_Edges[k]] = i;
+					}
+				}
+			}
+
+			vi_InducedVertexDegrees.push_back(i_InducedVertexDegree);
+
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+			vi_VertexLocations.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		vi_IncludedVertices.assign((unsigned) i_VertexCount, _UNKNOWN);
+
+		i_SelectedVertexCount = _FALSE;
+
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+			for(i=i_HighestInducedVertexDegree; i >= 0; i--)
+			{
+				i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+				if(i_InducedVertexDegreeCount != _FALSE)
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+					i_HighestInducedVertexDegree--;
+
+			}
+
+			vi_IncludedVertices[i_SelectedVertex] = i_SelectedVertex;
+
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+			{
+				u = m_vi_Edges[i];
+
+				if(vi_InducedVertexDegrees[u] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(vi_IncludedVertices[u] != i_SelectedVertex)
+				{
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+	 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].back();
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]][vi_VertexLocations[u]] = l;
+						vi_VertexLocations[l] = vi_VertexLocations[u];
+					}
+
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegrees[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+	                                vi_VertexLocations[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() - 1;
+
+					// this neighbour has been visited
+					vi_IncludedVertices[u] = i_SelectedVertex;
+				}
+
+				for(j=m_vi_Vertices[m_vi_Edges[i]]; j<m_vi_Vertices[STEP_UP(m_vi_Edges[i])]; j++)
+				{
+					v = m_vi_Edges[j];
+
+					if(vi_InducedVertexDegrees[v] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_IncludedVertices[v] != i_SelectedVertex)
+					{
+						// move the last element in this bucket to v's position to get rid of expensive erase operation
+		 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() > 1)
+						{
+							l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].back();
+							vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]][vi_VertexLocations[v]] = l;
+							vi_VertexLocations[l] = vi_VertexLocations[v];
+						}
+
+						// remove last element from this bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].pop_back();
+
+						// reduce degree of v by 1
+						vi_InducedVertexDegrees[v]--;
+
+						// move v to appropriate bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].push_back(v);
+
+						// update vi_VertexLocation[v] since it has now been changed
+		                                vi_VertexLocations[v] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() - 1;
+
+						// this neighbour has been visited
+						vi_IncludedVertices[v] = i_SelectedVertex;
+					}
+				}
+			}
+
+			vi_InducedVertexDegrees[i_SelectedVertex] = _UNKNOWN;
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		vi_IncludedVertices.clear();
+                vi_InducedVertexDegrees.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+                vi_VertexLocations.clear();
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1359
+	int GraphOrdering::DistanceTwoSmallestLastOrdering()
+	{
+		if(CheckVertexOrdering("DISTANCE_TWO_SMALLEST_LAST") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l, u, v;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_VertexCount, i_InducedVertexDegree;
+
+		int i_VertexCountMinus1;
+
+		int i_InducedVertexDegreeCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector < int > vi_IncludedVertices;
+
+		vector < int > vi_InducedVertexDegrees;
+
+		vector < vector < int > > vvi_GroupedInducedVertexDegree;
+
+		vector < int > vi_VertexLocations;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+		i_VertexCountMinus1 = i_VertexCount - 1; // = i_VertexCount - 1, used when inserting selected vertices into m_vi_OrderedVertices
+
+                vi_IncludedVertices.clear();
+                vi_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.reserve((unsigned) i_VertexCount);
+
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_VertexLocations.clear();
+		vi_VertexLocations.reserve((unsigned) i_VertexCount);
+
+
+		i_SelectedVertex = _UNKNOWN;
+
+		i_HighestInducedVertexDegree = _FALSE;
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+			vi_IncludedVertices[i] = i;
+
+			i_InducedVertexDegree = _FALSE;
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(vi_IncludedVertices[m_vi_Edges[j]] != i)
+				{
+					i_InducedVertexDegree++;
+
+					vi_IncludedVertices[m_vi_Edges[j]] = i;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(vi_IncludedVertices[m_vi_Edges[k]] != i)
+					{
+						i_InducedVertexDegree++;
+
+						vi_IncludedVertices[m_vi_Edges[k]] = i;
+					}
+				}
+			}
+
+			vi_InducedVertexDegrees.push_back(i_InducedVertexDegree);
+
+			vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+			vi_VertexLocations.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			if(i_HighestInducedVertexDegree < i_InducedVertexDegree)
+			{
+				i_HighestInducedVertexDegree = i_InducedVertexDegree;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_IncludedVertices.assign((unsigned) i_VertexCount, _UNKNOWN);
+
+		i_SelectedVertexCount = _FALSE;
+
+		int iMin = 1;
+
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+			if(iMin != 0 && vvi_GroupedInducedVertexDegree[iMin -1].size() != _FALSE)
+				iMin--;
+
+			for(i= iMin; i < STEP_UP(i_HighestInducedVertexDegree); i++)
+			{
+				i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+				if(i_InducedVertexDegreeCount != _FALSE)
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+					iMin++;
+			}
+
+			vi_IncludedVertices[i_SelectedVertex] = i_SelectedVertex;
+
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+			{
+				u = m_vi_Edges[i];
+
+				if(vi_InducedVertexDegrees[u] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(vi_IncludedVertices[u] != i_SelectedVertex)
+				{
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+	 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].back();
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]][vi_VertexLocations[u]] = l;
+						vi_VertexLocations[l] = vi_VertexLocations[u];
+					}
+
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegrees[u]--;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+	                                vi_VertexLocations[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() - 1;
+
+					// this neighbour has been visited
+					vi_IncludedVertices[u] = i_SelectedVertex;
+				}
+
+				for(j=m_vi_Vertices[m_vi_Edges[i]]; j<m_vi_Vertices[STEP_UP(m_vi_Edges[i])]; j++)
+				{
+					v = m_vi_Edges[j];
+
+					if(vi_InducedVertexDegrees[v] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_IncludedVertices[v] != i_SelectedVertex)
+					{
+						// move the last element in this bucket to v's position to get rid of expensive erase operation
+		 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() > 1)
+						{
+							l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].back();
+							vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]][vi_VertexLocations[v]] = l;
+							vi_VertexLocations[l] = vi_VertexLocations[v];
+						}
+
+						// remove last element from this bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].pop_back();
+
+						// reduce degree of v by 1
+						vi_InducedVertexDegrees[v]--;
+
+						// move v to appropriate bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].push_back(v);
+
+						// update vi_VertexLocation[v] since it has now been changed
+		                                vi_VertexLocations[v] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() - 1;
+
+						// this neighbour has been visited
+						vi_IncludedVertices[v] = i_SelectedVertex;
+					}
+				}
+			}
+
+			vi_InducedVertexDegrees[i_SelectedVertex] = _UNKNOWN;
+			//m_vi_OrderedVertices.push_back(i_SelectedVertex);
+			m_vi_OrderedVertices[i_VertexCountMinus1 - i_SelectedVertexCount] = i_SelectedVertex;
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		vi_IncludedVertices.clear();
+                vi_InducedVertexDegrees.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+                vi_VertexLocations.clear();
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1360
+        int GraphOrdering::IncidenceDegreeOrdering()
+        {
+                if(CheckVertexOrdering("INCIDENCE_DEGREE") == _TRUE)
+                {
+                        return(_TRUE);
+                }
+
+                int i, u, v, l;
+
+                int i_HighestDegreeVertex, i_MaximumVertexDegree;
+
+		int i_VertexCount, i_VertexDegree;
+
+                int i_IncidenceVertexDegree, i_IncidenceVertexDegreeCount;
+
+                int i_SelectedVertex, i_SelectedVertexCount;
+
+                vector< int > vi_IncidenceVertexDegree;
+
+                vector< vector< int > > vvi_GroupedIncidenceVertexDegree;
+
+                vector< int > vi_VertexLocation;
+
+                i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+                vi_IncidenceVertexDegree.clear();
+		vi_IncidenceVertexDegree.reserve((unsigned) i_VertexCount);
+
+                vvi_GroupedIncidenceVertexDegree.clear();
+                vvi_GroupedIncidenceVertexDegree.resize((unsigned) i_VertexCount);
+
+                vi_VertexLocation.clear();
+		vi_VertexLocation.reserve((unsigned) i_VertexCount);
+
+                i_HighestDegreeVertex = i_MaximumVertexDegree = _UNKNOWN;
+
+                i_SelectedVertex = _UNKNOWN;
+
+                i_IncidenceVertexDegree = _FALSE;
+
+
+		// initilly push all the vertices into the first bucket assuming that IncidenceVertexDegree is all 0
+		vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].reserve((unsigned) i_VertexCount); // ONLY FOR THE FIRST BUCKET SINCE WE KNOW in THIS case
+
+
+                for(i=0; i<i_VertexCount; i++)
+                {
+			// i_IncidenceVertexDegree is 0 and insert that
+			vi_IncidenceVertexDegree.push_back(i_IncidenceVertexDegree);
+
+			// insert vertex i into bucket vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree]
+                        vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].push_back(i);
+
+			// store the location
+			vi_VertexLocation.push_back(vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].size() - 1);
+
+			// calculate the degree
+			i_VertexDegree = m_vi_Vertices[STEP_UP(i)] - m_vi_Vertices[i];
+
+			// get the max degree vertex
+                        if(i_MaximumVertexDegree < i_VertexDegree)
+                        {
+                                i_MaximumVertexDegree = i_VertexDegree;
+
+                                i_HighestDegreeVertex = i;
+                        }
+                }
+
+		// reserver memory for m_vi_OrderedVertices
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		i_SelectedVertexCount = _FALSE;
+
+		// NOW SWAP THE MAX DEGREE VERTEX WITH THE LAST VERTEX IN THE FIRST BUCKET
+		l = vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree].size() - 1;
+		v = vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree][l];
+		//u = vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree][i_HighestDegreeVertex];
+		u = vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree][vi_VertexLocation[i_HighestDegreeVertex]];
+
+		swap(vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree][vi_VertexLocation[i_HighestDegreeVertex]], vvi_GroupedIncidenceVertexDegree[i_IncidenceVertexDegree][l]);
+		swap(vi_VertexLocation[v], vi_VertexLocation[u]);
+
+		int iMax = i_MaximumVertexDegree - 1;
+		// just counting the number of vertices that we have worked with,
+		// stop when i_SelectedVertexCount == i_VertexCount, i.e. we have looked through all the vertices
+		while(i_SelectedVertexCount < i_VertexCount)
+                {
+
+                        if(iMax != i_MaximumVertexDegree && vvi_GroupedIncidenceVertexDegree[iMax + 1].size() != _FALSE)
+                                iMax++;
+
+			//pick the vertex with maximum incidence degree
+			for(i=iMax; i>=0; i--)
+                        {
+                        	i_IncidenceVertexDegreeCount = (signed) vvi_GroupedIncidenceVertexDegree[i].size();
+
+                                if(i_IncidenceVertexDegreeCount != _FALSE)
+                                {
+                                	i_SelectedVertex = vvi_GroupedIncidenceVertexDegree[i].back();
+					// remove i_SelectedVertex from  vvi_GroupedIncidenceVertexDegree[i]
+					vvi_GroupedIncidenceVertexDegree[i].pop_back();
+                                        break;
+	                        }
+				else
+					iMax--;
+                        }
+
+			//for every D1 neighbor of the i_SelectedVertex, decrease their degree by one and then update their position in vvi_GroupedInducedVertexDegree
+			// and vi_VertexLocation
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+                        {
+                                u = m_vi_Edges[i];
+
+                                if(vi_IncidenceVertexDegree[u] == _UNKNOWN)
+                                {
+                                        continue;
+                                }
+
+                		// move the last element in this bucket to u's position to get rid of expensive erase operation
+				if(vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].size() > 1)
+                                {
+                                        l = vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].back();
+
+                                        vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]][vi_VertexLocation[u]] = l;
+
+                                        vi_VertexLocation[l] = vi_VertexLocation[u];
+                                }
+
+				// remove the last element from vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]]
+                                vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].pop_back();
+
+				// increase incidence degree of u
+				vi_IncidenceVertexDegree[u]++;
+
+				// insert u into appropriate bucket
+                                vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].push_back(u);
+
+				// update location of u
+                                vi_VertexLocation[u] = vvi_GroupedIncidenceVertexDegree[vi_IncidenceVertexDegree[u]].size() - 1;
+                        }
+
+			//Mark the i_SelectedVertex as read, so that we don't look at it again
+			vi_IncidenceVertexDegree[i_SelectedVertex] = _UNKNOWN;
+			// insert i_SelectedVertex into m_vi_OrderedVertices
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+			// increament i_SelectedVertexCount
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		// clear the buffer
+                vi_IncidenceVertexDegree.clear();
+                vi_VertexLocation.clear();
+                vvi_GroupedIncidenceVertexDegree.clear();
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 1361
+	int GraphOrdering::DistanceTwoIncidenceDegreeOrdering()
+	{
+		if(CheckVertexOrdering("DISTANCE_TWO_INCIDENCE_DEGREE") == _TRUE)
+		{
+			return(_TRUE);
+		}
+
+		int i, j, k, l, u, v;
+
+		//int i_HighestInducedVertexDegree;
+		int i_DistanceTwoVertexDegree;
+
+		int i_HighestDistanceTwoDegreeVertex, i_HighestDistanceTwoVertexDegree;
+
+		int i_VertexCount, i_InducedVertexDegree;
+
+		int i_InducedVertexDegreeCount;
+
+		int i_SelectedVertex, i_SelectedVertexCount;
+
+		vector < int > vi_IncludedVertices;
+
+		vector < int > vi_InducedVertexDegrees;
+
+		vector < vector < int > > vvi_GroupedInducedVertexDegree;
+
+		vector < int > vi_VertexLocations;
+
+		i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+
+                vi_IncludedVertices.clear();
+                vi_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.reserve((unsigned) i_VertexCount);
+
+		vvi_GroupedInducedVertexDegree.clear();
+		vvi_GroupedInducedVertexDegree.resize((unsigned) i_VertexCount);
+
+		vi_VertexLocations.clear();
+		vi_VertexLocations.reserve((unsigned) i_VertexCount);
+
+		i_SelectedVertex = _UNKNOWN;
+
+		i_HighestDistanceTwoDegreeVertex = i_HighestDistanceTwoVertexDegree = _UNKNOWN;
+		i_InducedVertexDegree = _FALSE;
+
+		// initilly push all the vertices into the first bucket assuming that IncidenceVertexDegree is all 0
+ 		vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].reserve((unsigned) i_VertexCount); // ONLY FOR THE FIRST BUCKET SINCE WE KNOW in THIS case
+
+		for(i=0; i<i_VertexCount; i++)
+		{
+                        vi_InducedVertexDegrees.push_back(i_InducedVertexDegree);
+
+                        vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].push_back(i);
+
+                        vi_VertexLocations.push_back(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1);
+
+			vi_IncludedVertices[i] = i;
+
+			i_DistanceTwoVertexDegree = _FALSE;
+
+			for(j=m_vi_Vertices[i]; j<m_vi_Vertices[STEP_UP(i)]; j++)
+			{
+				if(vi_IncludedVertices[m_vi_Edges[j]] != i)
+				{
+					i_DistanceTwoVertexDegree++;
+
+					vi_IncludedVertices[m_vi_Edges[j]] = i;
+				}
+
+				for(k=m_vi_Vertices[m_vi_Edges[j]]; k<m_vi_Vertices[STEP_UP(m_vi_Edges[j])]; k++)
+				{
+					if(vi_IncludedVertices[m_vi_Edges[k]] != i)
+					{
+						i_DistanceTwoVertexDegree++;
+
+						vi_IncludedVertices[m_vi_Edges[k]] = i;
+					}
+				}
+			}
+
+			if(i_HighestDistanceTwoVertexDegree < i_DistanceTwoVertexDegree)
+			{
+				i_HighestDistanceTwoVertexDegree = i_DistanceTwoVertexDegree;
+				i_HighestDistanceTwoDegreeVertex = i;
+			}
+		}
+
+		m_vi_OrderedVertices.clear();
+		m_vi_OrderedVertices.reserve((unsigned) i_VertexCount);
+
+		vi_IncludedVertices.assign((unsigned) i_VertexCount, _UNKNOWN);
+
+
+		// NOW SWAP THE MAX DEGREE VERTEX WITH THE LAST VERTEX IN THE FIRST BUCKET
+		l = vvi_GroupedInducedVertexDegree[i_InducedVertexDegree].size() - 1;
+		v = vvi_GroupedInducedVertexDegree[i_InducedVertexDegree][l];
+		u = vvi_GroupedInducedVertexDegree[i_InducedVertexDegree][vi_VertexLocations[i_HighestDistanceTwoDegreeVertex]];
+		swap(vvi_GroupedInducedVertexDegree[i_InducedVertexDegree][vi_VertexLocations[i_HighestDistanceTwoDegreeVertex]], vvi_GroupedInducedVertexDegree[i_InducedVertexDegree][l]);
+		swap(vi_VertexLocations[v], vi_VertexLocations[u]);
+
+		i_SelectedVertexCount = _FALSE;
+
+		int iMax = i_HighestDistanceTwoVertexDegree - 1;
+
+		while(i_SelectedVertexCount < i_VertexCount)
+		{
+                        if(iMax != i_HighestDistanceTwoVertexDegree && vvi_GroupedInducedVertexDegree[iMax + 1].size() != _FALSE)
+                                iMax++;
+
+			for(i= iMax; i>= 0; i--)
+			{
+				i_InducedVertexDegreeCount = (signed) vvi_GroupedInducedVertexDegree[i].size();
+
+				if(i_InducedVertexDegreeCount != _FALSE)
+				{
+					i_SelectedVertex = vvi_GroupedInducedVertexDegree[i].back();
+					vvi_GroupedInducedVertexDegree[i].pop_back();
+					break;
+				}
+				else
+					iMax--;
+			}
+
+			vi_IncludedVertices[i_SelectedVertex] = i_SelectedVertex;
+
+			for(i=m_vi_Vertices[i_SelectedVertex]; i<m_vi_Vertices[STEP_UP(i_SelectedVertex)]; i++)
+			{
+				u = m_vi_Edges[i];
+
+				if(vi_InducedVertexDegrees[u] == _UNKNOWN)
+				{
+					continue;
+				}
+
+				if(vi_IncludedVertices[u] != i_SelectedVertex)
+				{
+					// move the last element in this bucket to u's position to get rid of expensive erase operation
+	 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() > 1)
+					{
+						l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].back();
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]][vi_VertexLocations[u]] = l;
+						vi_VertexLocations[l] = vi_VertexLocations[u];
+					}
+
+					// remove last element from this bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].pop_back();
+
+					// reduce degree of u by 1
+					vi_InducedVertexDegrees[u]++;
+
+					// move u to appropriate bucket
+					vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].push_back(u);
+
+					// update vi_VertexLocation[u] since it has now been changed
+	                                vi_VertexLocations[u] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[u]].size() - 1;
+
+					// this neighbour has been visited
+					vi_IncludedVertices[u] = i_SelectedVertex;
+				}
+
+				for(j=m_vi_Vertices[m_vi_Edges[i]]; j<m_vi_Vertices[STEP_UP(m_vi_Edges[i])]; j++)
+				{
+					v = m_vi_Edges[j];
+
+					if(vi_InducedVertexDegrees[v] == _UNKNOWN)
+					{
+						continue;
+					}
+
+					if(vi_IncludedVertices[v] != i_SelectedVertex)
+					{
+						// move the last element in this bucket to v's position to get rid of expensive erase operation
+		 				if(vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() > 1)
+						{
+							l = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].back();
+							vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]][vi_VertexLocations[v]] = l;
+							vi_VertexLocations[l] = vi_VertexLocations[v];
+						}
+
+						// remove last element from this bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].pop_back();
+
+						// reduce degree of v by 1
+						vi_InducedVertexDegrees[v]++;
+
+						// move v to appropriate bucket
+						vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].push_back(v);
+
+						// update vi_VertexLocation[v] since it has now been changed
+		                                vi_VertexLocations[v] = vvi_GroupedInducedVertexDegree[vi_InducedVertexDegrees[v]].size() - 1;
+
+						// this neighbour has been visited
+						vi_IncludedVertices[v] = i_SelectedVertex;
+					}
+				}
+			}
+
+			vi_InducedVertexDegrees[i_SelectedVertex] = _UNKNOWN;
+			m_vi_OrderedVertices.push_back(i_SelectedVertex);
+			i_SelectedVertexCount = STEP_UP(i_SelectedVertexCount);
+		}
+
+		vi_IncludedVertices.clear();
+                vi_InducedVertexDegrees.clear();
+                vvi_GroupedInducedVertexDegree.clear();
+                vi_VertexLocations.clear();
+
+		return(_TRUE);
+	}
+
+	//Public Function 1362
+	string GraphOrdering::GetVertexOrderingVariant()
+	{
+		return(m_s_VertexOrderingVariant);
+	}
+
+	//Public Function 1363
+	void GraphOrdering::GetOrderedVertices(vector<int> &output)
+	{
+		output = (m_vi_OrderedVertices);
+	}
+
+
+	//Public Function 1364
+	double GraphOrdering::GetVertexOrderingTime()
+	{
+		return(m_d_OrderingTime);
+	}
+
+	int GraphOrdering::GetMaxBackDegree() {
+
+		//create the map from vertexID to orderingID
+		vector<int> vectorID2orderingID;
+		vectorID2orderingID.resize(m_vi_OrderedVertices.size(),-1);
+		for( unsigned int i=0; i < m_vi_OrderedVertices.size(); i++) {
+			vectorID2orderingID[m_vi_OrderedVertices[i]] = i;
+		}
+
+		//double check
+		for( unsigned int i=0; i < vectorID2orderingID.size(); i++) {
+			if(vectorID2orderingID[i]==-1) {
+				cerr<<"What the hell? There is a vertex missing"<<endl;
+			}
+		}
+
+		//Now, for each vertex, find its MaxBackDegree
+		int i_MaxBackDegree = -1;
+		int i_CurrentVertexBackDegre = -1;
+		int currentOrderingID = -1;
+		for( unsigned int i=0; i < m_vi_Vertices.size() - 1; i++) {
+			currentOrderingID = vectorID2orderingID[i];
+			i_CurrentVertexBackDegre = 0;
+			//for through all the D1 neighbor of that vertex
+			for( unsigned int j = m_vi_Vertices[i]; j <(unsigned int) m_vi_Vertices[i + 1]; j++) {
+				if(vectorID2orderingID[m_vi_Edges[j]] < currentOrderingID) i_CurrentVertexBackDegre++;
+			}
+			if( i_MaxBackDegree < i_CurrentVertexBackDegre) i_MaxBackDegree = i_CurrentVertexBackDegre;
+		}
+
+		return i_MaxBackDegree;
+	}
+
+
+	void GraphOrdering::PrintVertexOrdering() {
+		cout<<"PrintVertexOrdering() "<<m_s_VertexOrderingVariant<<endl;
+		for(unsigned int i=0; i<m_vi_OrderedVertices.size();i++) {
+			//printf("\t [%d] %d \n", i, m_vi_OrderedVertices[i]);
+			cout<<"\t["<<setw(5)<<i<<"] "<<setw(5)<<m_vi_OrderedVertices[i]<<endl;
+		}
+		cout<<endl;
+	}
+}
+
--- /dev/null
+++ colpack-1.0.10/src/GeneralGraphColoring/GraphOrdering.h
@@ -0,0 +1,125 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef GRAPHORDERING_H
+#define GRAPHORDERING_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group1
+	 *  @brief class GraphOrdering in @link group1@endlink.
+
+	 This class stores the ordered vertices as a vector of vertex identifiers to be used by coloring methods.
+	 */
+	class GraphOrdering : public GraphInputOutput
+	{
+	public:
+		///Calculate and return the Maximum Back degree
+		/**
+		Precondition: OrderVertices() has been called, i.e. m_vi_OrderedVertices has been populated
+		Note: Back degree of a vertex is the degree of that vertex
+		in the subgraph consisting of vertices that had been ordered (i.e., the vertices that are ordered before the current vertex).
+		Depend on the ordering style, each vertex in vector m_vi_OrderedVertices may have different Back degree.
+		The Maximum Back degree of all vertices in the graph will be returned.
+		This is the UPPER BOUND for the number of colors needed to D1-color the graph.
+		//*/
+		int GetMaxBackDegree();
+
+		int OrderVertices(string s_OrderingVariant);
+
+		/// Test and make sure that the ordering is valid. Return 0 if the ordering is invalid, 1 if the ordering is valid.
+		/** This routine will test for:
+		- Duplicated vertices. If there is no duplicated vertex, this ordering is probably ok.
+		- Invalid vertex #. The vertex # should be between 0 and ordering.size()
+
+		Actually make a call to "bool isValidOrdering(vector<int> & ordering, int offset = 0);"
+		*/
+		int CheckVertexOrdering();
+
+	private:
+
+		/// Get Back Degree of vertex m_vi_OrderedVertices[index]
+		/**
+		Precondition: OrderVertices() has been called, i.e. m_vi_OrderedVertices has been populated
+
+		Note: This function is written quickly so it is not optimal
+		//*/
+		int GetBackDegree(int index);
+
+		//Private Function 1301
+		int CheckVertexOrdering(string s_VertexOrderingVariant);
+
+		int printVertexEdgeMap(vector< vector< pair< int, int> > > &vvpii_VertexEdgeMap);
+
+	protected:
+
+		double m_d_OrderingTime;
+
+		string m_s_VertexOrderingVariant;
+
+		vector<int> m_vi_OrderedVertices; // m_vi_OrderedVertices.size() = m_vi_Vertices.size() - 1
+
+	public:
+
+		//Public Constructor 1351
+		GraphOrdering();
+
+		//Public Destructor 1352
+		~GraphOrdering();
+
+		//Virtual Function 1353
+		virtual void Clear();
+		void ClearOrderingONLY();
+
+		//Public Function 1354
+		int NaturalOrdering();
+
+		int RandomOrdering();
+
+		int ColoringBasedOrdering(vector<int> &vi_VertexColors);
+
+		//Public Function 1355
+		int LargestFirstOrdering();
+
+		//Public Function 1357
+		int DistanceTwoLargestFirstOrdering();
+
+		//Public Function 1356
+		int DynamicLargestFirstOrdering();
+
+		int DistanceTwoDynamicLargestFirstOrdering();
+
+		//Public Function 1358
+		int SmallestLastOrdering();
+		int SmallestLastOrdering_serial();
+
+		//Public Function 1359
+		int DistanceTwoSmallestLastOrdering();
+
+		//Public Function 1360
+		int IncidenceDegreeOrdering();
+
+		//Public Function 1361
+		int DistanceTwoIncidenceDegreeOrdering();
+
+		//Public Function 1362
+		string GetVertexOrderingVariant();
+
+		//Public Function 1363
+		void GetOrderedVertices(vector<int> &output);
+		vector <int>* GetOrderedVerticesPtr(){ return &m_vi_OrderedVertices; }
+
+		void PrintVertexOrdering();
+
+		//Public Function 1364
+		double GetVertexOrderingTime();
+	};
+}
+#endif
+
+
--- /dev/null
+++ colpack-1.0.10/src/Recovery/HessianRecovery.cpp
@@ -0,0 +1,1725 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+//#define DEBUG 5103
+namespace ColPack
+{
+
+	int HessianRecovery::DirectRecover_RowCompressedFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+		int colorCount = g->GetVertexColorCount();
+		//cout<<"colorCount="<<colorCount<<endl;
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[colorCount];
+			for(unsigned int j=0; j < (unsigned int)colorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Hessian: [i][uip2_HessianSparsityPattern[i][j]]
+				//color of that column: vi_VertexColors[uip2_HessianSparsityPattern[i][j]]
+				colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]++;
+			}
+		}
+
+		//Now, go to the main part, recover the values of non-zero entries in the Hessian
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				if(i == uip2_HessianSparsityPattern[i][j]) { // the non-zero is in the diagonal of the matrix
+					(*dp3_HessianValue)[i][j] = dp2_CompressedMatrix[i][vi_VertexColors[i]];
+					//printf("Recover diagonal (*dp3_HessianValue)[%d][%d] = %f from dp2_CompressedMatrix[%d][%d] \n", i, j, dp2_CompressedMatrix[i][vi_VertexColors[i]], i, vi_VertexColors[i]);
+				}
+				else {// i != uip2_HessianSparsityPattern[i][j] // the non-zero is NOT in the diagonal of the matrix
+					if(colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]==1) {
+						(*dp3_HessianValue)[i][j] = dp2_CompressedMatrix[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]];
+						//printf("Recover (*dp3_HessianValue)[%d][%d] = %f from dp2_CompressedMatrix[%d][%d] \n", i, j, dp2_CompressedMatrix[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]], i, vi_VertexColors[uip2_HessianSparsityPattern[i][j]]);
+					}
+					else {
+						(*dp3_HessianValue)[i][j] = dp2_CompressedMatrix[uip2_HessianSparsityPattern[i][j]][vi_VertexColors[i]];
+						//printf("Recover (*dp3_HessianValue)[%d][%d] = %f from dp2_CompressedMatrix[%d][%d] \n", i, j, dp2_CompressedMatrix[uip2_HessianSparsityPattern[i][j]][vi_VertexColors[i]], uip2_HessianSparsityPattern[i][j], vi_VertexColors[i]);
+					}
+				}
+			}
+		}
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return (rowCount);
+	}
+
+	int HessianRecovery::DirectRecover_RowCompressedFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+
+		//allocate memory for *dp3_HessianValue. The dp3_HessianValue and uip2_HessianSparsityPattern matrices should have the same size
+		*dp3_HessianValue = (double**) malloc(rowCount * sizeof(double*));
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			(*dp3_HessianValue)[i] = (double*) malloc( (numOfNonZeros+1) * sizeof(double) );
+			(*dp3_HessianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+			for(unsigned int j=1; j <= numOfNonZeros; j++) (*dp3_HessianValue)[i][j] = 0.; //initialize value of other entries
+		}
+
+		return DirectRecover_RowCompressedFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, dp3_HessianValue);
+	}
+
+	int HessianRecovery::DirectRecover_RowCompressedFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+
+		int returnValue = DirectRecover_RowCompressedFormat_unmanaged(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, dp3_HessianValue);
+
+		if(AF_available) reset();
+
+		AF_available = true;
+		i_AF_rowCount = g->GetVertexCount();
+		dp2_AF_Value = *dp3_HessianValue;
+
+		return (returnValue);
+	}
+
+
+	int HessianRecovery::DirectRecover_SparseSolversFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue) {
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+		int colorCount = g->GetVertexColorCount();
+		//cout<<"colorCount="<<colorCount<<endl;
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		//g->PrintGraph();
+
+		//Making the array indices to start at 0 instead of 1
+		for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		  (*ip2_RowIndex)[i]--;
+		}
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		  (*ip2_ColumnIndex)[i]--;
+		}
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[colorCount];
+			for(unsigned int j=0; j < (unsigned int)colorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Hessian: [i][uip2_HessianSparsityPattern[i][j]]
+				//color of that column: vi_VertexColors[uip2_HessianSparsityPattern[i][j]]
+				colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]++;
+			}
+		}
+
+
+		//Now, go to the main part, recover the values of non-zero entries in the Hessian
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			unsigned int offset = 0;
+			//printf("\ti=%d, \t NumOfNonzeros=%d,\t  \n",i,numOfNonZeros);
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				if (i > uip2_HessianSparsityPattern[i][j]) {
+				  offset++;
+				  continue;
+				}
+				else if(i == uip2_HessianSparsityPattern[i][j]) { // the non-zero is in the diagonal of the matrix
+					(*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - offset - 1] = dp2_CompressedMatrix[i][vi_VertexColors[i]];
+					//printf("DIAGONAL Recover (*dp2_HessianValue)[%d] = %f from dp2_CompressedMatrix[%d][%d] \n", (*ip2_RowIndex)[i] + j - offset - 1, (*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - 1],i,vi_VertexColors[i]);
+					//printf("\t (*ip2_RowIndex)[i = %d] = %d, j = %d, offset = %d \n", i, (*ip2_RowIndex)[i], j, offset);
+				}
+				else {// i != uip2_HessianSparsityPattern[i][j] // the non-zero is NOT in the diagonal of the matrix
+					if(colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]==1) {
+						(*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - offset - 1] = dp2_CompressedMatrix[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]];
+					  //printf("Recover (*dp2_HessianValue)[%d] = %f from dp2_CompressedMatrix[%d][%d] \n", (*ip2_RowIndex)[i] + j - offset - 1, (*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - 1], i , vi_VertexColors[uip2_HessianSparsityPattern[i][j]]);
+					}
+					else {
+						(*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - offset - 1] = dp2_CompressedMatrix[uip2_HessianSparsityPattern[i][j]][vi_VertexColors[i]];
+					  //printf("Recover (*dp2_HessianValue)[%d] = %f from dp2_CompressedMatrix[%d][%d] \n", (*ip2_RowIndex)[i] + j - offset - 1, (*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - 1], uip2_HessianSparsityPattern[i][j], vi_VertexColors[i]);
+					}
+				}
+			}
+		}
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		//Making the array indices to start at 1 instead of 0 to conform with the Intel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		return (rowCount);
+	}
+
+	int HessianRecovery::DirectRecover_SparseSolversFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue) {
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+
+		if (numOfNonZerosInHessianValue < 1) {
+		  numOfNonZerosInHessianValue = ConvertRowCompressedFormat2SparseSolversFormat_StructureOnly(uip2_HessianSparsityPattern, rowCount, ip2_RowIndex, ip2_ColumnIndex);
+
+		  //Making the array indices to start at 1 instead of 0 to conform with the Intel MKL sparse storage scheme for the direct sparse solvers
+		  for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		    (*ip2_RowIndex)[i]++;
+		  }
+		  for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		    (*ip2_ColumnIndex)[i]++;
+		  }
+		}
+
+		//cout<<"allocate memory for *dp2_HessianValue rowCount="<<rowCount<<endl;
+		//printf("i=%d\t numOfNonZerosInHessianValue=%d \n", i, numOfNonZerosInHessianValue);
+		(*dp2_HessianValue) = (double*) malloc(numOfNonZerosInHessianValue * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) (*dp2_HessianValue)[i] = 0.; //initialize value of other entries
+
+		int returnValue = DirectRecover_SparseSolversFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue, numOfNonZerosInHessianValue);
+
+		return returnValue;
+	}
+
+	int HessianRecovery::DirectRecover_SparseSolversFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		int returnValue = DirectRecover_SparseSolversFormat_unmanaged(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue);
+
+		if(SSF_available) {
+			//cout<<"SSF_available="<<SSF_available<<endl; Pause();
+			reset();
+		}
+
+		SSF_available = true;
+		i_SSF_rowCount = g->GetVertexCount();
+		ip_SSF_RowIndex = *ip2_RowIndex;
+		ip_SSF_ColumnIndex = *ip2_ColumnIndex;
+		dp_SSF_Value = *dp2_HessianValue;
+
+		return (returnValue);
+	}
+
+/*
+	int HessianRecovery::DirectRecover_CoordinateFormat_vectors_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue) {
+		int rowCount = g->GetVertexCount();
+		int colorCount = g->GetVertexColorCount();
+		//cout<<"colorCount="<<colorCount<<endl;
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		#pragma omp parallel for default(none) schedule(static) shared(colorStatistic, colorCount, rowCount)
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[colorCount];
+			for(unsigned int j=0; j < (unsigned int)colorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic
+		#pragma omp parallel for default(none) schedule(static) shared(rowCount, uip2_HessianSparsityPattern, colorStatistic, vi_VertexColors)
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Hessian: [i][uip2_HessianSparsityPattern[i][j]]
+				//color of that column: vi_VertexColors[uip2_HessianSparsityPattern[i][j]]
+				colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]++;
+			}
+		}
+
+		int* row_size = new int[rowCount];
+		int total_length=0;
+		row_size[0]=0;
+
+		#pragma omp parallel for default(none) schedule(static) shared(rowCount,row_size, uip2_HessianSparsityPattern) reduction(+:total_length)
+		// Find out the number of elements in each  rows. Note: row_size[1] will has the number of elements in the first row (!!!NOT the 2nd row)
+		for(unsigned int i=0; i < (unsigned int)rowCount-1; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			int rsize=0;
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+			  if(uip2_HessianSparsityPattern[i][j]<i) continue;
+			  rsize++;
+			}
+			total_length = total_length + rsize;
+			row_size[i+1]=rsize;
+		}
+		for(unsigned int j=1; j <= uip2_HessianSparsityPattern[rowCount-1][0]; j++) {
+		  if(uip2_HessianSparsityPattern[rowCount-1][j]<rowCount-1) continue;
+		  total_length++;
+		}
+
+		// Allocate memory for RowIndex,  ColumnIndex and HessianValue. Also modify row_size
+		#pragma omp sections
+		{
+		  #pragma omp section
+		  {
+		    RowIndex.resize(total_length);
+		  }
+		  #pragma omp section
+		  {
+		    ColumnIndex.resize(total_length);
+		  }
+		  #pragma omp section
+		  {
+		    HessianValue.resize(total_length);
+		  }
+		  #pragma omp section
+		  {
+		    //Modify row_size so that each element will keep the starting index of RowIndex,  ColumnIndex and HessianValue
+		    for(unsigned int i=1; i < (unsigned int)rowCount; i++) {
+		      row_size[i] += row_size[i-1];
+		    }
+		  }
+		}
+
+		//Now, go to the main part, recover the values of non-zero entries in the Hessian
+		//!!! Working
+		#pragma omp parallel for default(none) schedule(static) shared(rowCount, uip2_HessianSparsityPattern, HessianValue, RowIndex, ColumnIndex, dp2_CompressedMatrix, vi_VertexColors, colorStatistic, row_size)
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			int index = 0;
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				if(uip2_HessianSparsityPattern[i][j]<i) continue;
+
+				if(i == uip2_HessianSparsityPattern[i][j]) { // the non-zero is in the diagonal of the matrix
+					HessianValue.push_back(dp2_CompressedMatrix[i][vi_VertexColors[i]]);
+				}
+				else {// i != uip2_HessianSparsityPattern[i][j] // the non-zero is NOT in the diagonal of the matrix
+					if(colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]==1) {
+						HessianValue[row_size[i]+index] =dp2_CompressedMatrix[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]];
+					}
+					else {
+						HessianValue[row_size[i]+index] =dp2_CompressedMatrix[uip2_HessianSparsityPattern[i][j]][vi_VertexColors[i]];
+					}
+				}
+				RowIndex[row_size[i]+index] = i;
+				ColumnIndex[row_size[i]+index] = uip2_HessianSparsityPattern[i][j];
+				index++;
+			}
+		}
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return (RowIndex.size());
+	}
+*/
+	int HessianRecovery::DirectRecover_CoordinateFormat_vectors(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue) {
+		int rowCount = g->GetVertexCount();
+		int colorCount = g->GetVertexColorCount();
+		//cout<<"colorCount="<<colorCount<<endl;
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[colorCount];
+			for(unsigned int j=0; j < (unsigned int)colorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Hessian: [i][uip2_HessianSparsityPattern[i][j]]
+				//color of that column: vi_VertexColors[uip2_HessianSparsityPattern[i][j]]
+				colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]++;
+			}
+		}
+
+		//Now, go to the main part, recover the values of non-zero entries in the Hessian
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				if(uip2_HessianSparsityPattern[i][j]<i) continue;
+
+				if(i == uip2_HessianSparsityPattern[i][j]) { // the non-zero is in the diagonal of the matrix
+					HessianValue.push_back(dp2_CompressedMatrix[i][vi_VertexColors[i]]);
+				}
+				else {// i != uip2_HessianSparsityPattern[i][j] // the non-zero is NOT in the diagonal of the matrix
+					if(colorStatistic[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]==1) {
+						HessianValue.push_back(dp2_CompressedMatrix[i][vi_VertexColors[uip2_HessianSparsityPattern[i][j]]]);
+					}
+					else {
+						HessianValue.push_back(dp2_CompressedMatrix[uip2_HessianSparsityPattern[i][j]][vi_VertexColors[i]]);
+					}
+				}
+				RowIndex.push_back(i);
+				ColumnIndex.push_back(uip2_HessianSparsityPattern[i][j]);
+			}
+		}
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return (RowIndex.size());
+	}
+
+	int HessianRecovery::DirectRecover_CoordinateFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+//		int returnValue = DirectRecover_CoordinateFormat_vectors_OMP(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		int returnValue = DirectRecover_CoordinateFormat_vectors(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = RowIndex.size();
+
+//		#pragma omp parallel for default(none) schedule(static) shared(numOfNonZeros, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue, RowIndex, ColumnIndex, HessianValue)
+		for(size_t i=0; i < numOfNonZeros; i++) {
+			(*ip2_RowIndex)[i] = RowIndex[i];
+			(*ip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+		return (returnValue);
+	}
+/*
+	int HessianRecovery::DirectRecover_CoordinateFormat_usermem_serial(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+		int returnValue = DirectRecover_CoordinateFormat_vectors(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = RowIndex.size();
+
+		for(int i=0; i < numOfNonZeros; i++) {
+			(*ip2_RowIndex)[i] = RowIndex[i];
+			(*ip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+		return (returnValue);
+	}
+*/
+/*
+	int HessianRecovery::DirectRecover_CoordinateFormat_unmanaged_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+		int returnValue = DirectRecover_CoordinateFormat_vectors_OMP(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = RowIndex.size();
+		#pragma omp sections
+		{
+		  #pragma omp section
+		  {
+		    (*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*dp2_HessianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_HessianValue.
+		  }
+		}
+
+		#pragma omp parallel for default(none) schedule(static) shared(numOfNonZeros, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue, RowIndex, ColumnIndex, HessianValue)
+		for(int i=0; i < numOfNonZeros; i++) {
+			(*ip2_RowIndex)[i] = RowIndex[i];
+			(*ip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+		return (returnValue);
+	}
+*/
+	int HessianRecovery::DirectRecover_CoordinateFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+		int returnValue = DirectRecover_CoordinateFormat_vectors(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = RowIndex.size();
+		(*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*dp2_HessianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_HessianValue.
+
+		for(size_t i=0; i < numOfNonZeros; i++) {
+			(*ip2_RowIndex)[i] = RowIndex[i];
+			(*ip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+		return (returnValue);
+	}
+/*
+	int HessianRecovery::DirectRecover_CoordinateFormat_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		int numOfNonZeros = DirectRecover_CoordinateFormat_unmanaged_OMP(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex,ip2_ColumnIndex, dp2_HessianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_HessianValue;
+
+		return (numOfNonZeros);
+	}
+*/
+	int HessianRecovery::DirectRecover_CoordinateFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		int numOfNonZeros = DirectRecover_CoordinateFormat_unmanaged(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex,ip2_ColumnIndex, dp2_HessianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_HessianValue;
+
+		return (numOfNonZeros);
+	}
+
+	int HessianRecovery::IndirectRecover_RowCompressedFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+		if (g->GetVertexColorCount()==1){
+			return DirectRecover_RowCompressedFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, dp3_HessianValue);
+		}
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int i=0,j=0;
+		int i_VertexCount = _UNKNOWN;
+		int i_EdgeID, i_SetID;
+		vector<int> vi_Sets;
+		map< int, vector<int> > mivi_VertexSets;
+
+		vector<int> vi_Vertices;
+		g->GetVertices(vi_Vertices);
+
+		vector<int> vi_Edges;
+		g->GetEdges(vi_Edges);
+
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		map< int, map< int, int> > mimi2_VertexEdgeMap;
+		g->GetVertexEdgeMap(mimi2_VertexEdgeMap);
+
+		DisjointSets ds_DisjointSets;
+		g->GetDisjointSets(ds_DisjointSets);
+
+		//populate vi_Sets & mivi_VertexSets
+		vi_Sets.clear();
+		mivi_VertexSets.clear();
+
+		i_VertexCount = g->GetVertexCount();
+
+		for(i=0; i<i_VertexCount; i++) // for each vertex A (indexed by i)
+		{
+		for(j=vi_Vertices[i]; j<vi_Vertices[STEP_UP(i)]; j++) // for each of the vertex B that connect to A
+			{
+				if(i < vi_Edges[j]) // if the index of A (i) is less than the index of B (vi_Edges[j])
+										//basicly each edge is represented by (vertex with smaller ID, vertex with larger ID). This way, we don't insert a specific edge twice
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i][vi_Edges[j]];
+
+					i_SetID = ds_DisjointSets.FindAndCompress(i_EdgeID);
+
+					if(i_SetID == i_EdgeID) // that edge is the root of the set => create new set
+					{
+						vi_Sets.push_back(i_SetID);
+					}
+
+					mivi_VertexSets[i_SetID].push_back(i);
+					mivi_VertexSets[i_SetID].push_back(vi_Edges[j]);
+				}
+			}
+		}
+
+		int i_MaximumVertexDegree;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_LeafVertex, i_ParentVertex, i_PresentVertex;
+
+		int i_VertexDegree;
+
+		int i_SetCount, i_SetSize;
+		//i_SetCount = vi_Sets.size();
+		//i_SetSize: size (number of edges?) in a bicolored tree
+
+		double d_Value;
+
+		vector<int> vi_EvaluatedDiagonals;
+
+		vector<int> vi_InducedVertexDegrees;
+
+		vector<double> vd_IncludedVertices;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		vector< vector<double> > v2d_NonzeroAdjacency;
+
+		vector< list<int> > vli_GroupedInducedVertexDegrees;
+
+		vector< list<int>::iterator > vlit_VertexLocations;
+
+		i_MaximumVertexDegree = g->GetMaximumVertexDegree();
+
+	#if DEBUG == 5103
+
+		cout<<endl;
+		cout<<"DEBUG 5103 | Hessian Evaluation | Bicolored Sets"<<endl;
+		cout<<endl;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			cout<<STEP_UP(vi_Sets[i])<<"\t"<<" : ";
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				if(j == STEP_DOWN(i_SetSize))
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<" ("<<i_SetSize<<")"<<endl;
+				}
+				else
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Set Count = "<<i_SetCount<<"]"<<endl;
+		cout<<endl;
+
+	#endif
+
+		//Step 5: from here on
+		i_VertexCount = g->GetVertexCount();
+
+		v2i_VertexAdjacency.clear();
+		v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+		v2d_NonzeroAdjacency.clear();
+		v2d_NonzeroAdjacency.resize((unsigned) i_VertexCount);
+
+		vi_EvaluatedDiagonals.clear();
+		vi_EvaluatedDiagonals.resize((unsigned) i_VertexCount, _FALSE);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.resize((unsigned) i_VertexCount, _FALSE);
+
+		vd_IncludedVertices.clear();
+		vd_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		i_ParentVertex = _UNKNOWN;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			vli_GroupedInducedVertexDegrees.clear();
+			vli_GroupedInducedVertexDegrees.resize((unsigned) STEP_UP(i_MaximumVertexDegree));
+
+			vlit_VertexLocations.clear();
+			vlit_VertexLocations.resize((unsigned) i_VertexCount);
+
+			i_HighestInducedVertexDegree = _UNKNOWN;
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				i_PresentVertex = mivi_VertexSets[vi_Sets[i]][j];
+
+				vd_IncludedVertices[i_PresentVertex] = _FALSE;
+
+				if(vi_InducedVertexDegrees[i_PresentVertex] != _FALSE)
+				{
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].erase(vlit_VertexLocations[i_PresentVertex]);
+				}
+
+				vi_InducedVertexDegrees[i_PresentVertex]++;
+
+				if(i_HighestInducedVertexDegree < vi_InducedVertexDegrees[i_PresentVertex])
+				{
+					i_HighestInducedVertexDegree = vi_InducedVertexDegrees[i_PresentVertex];
+				}
+
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].push_front(i_PresentVertex);
+
+				vlit_VertexLocations[i_PresentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].begin();
+			}
+
+	#if DEBUG == 5103
+
+			int k;
+
+			list<int>::iterator lit_ListIterator;
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Induced Vertex Degrees | Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+			for(j=0; j<STEP_UP(i_HighestInducedVertexDegree); j++)
+			{
+				i_SetSize = (signed) vli_GroupedInducedVertexDegrees[j].size();
+
+				if(i_SetSize == _FALSE)
+				{
+					continue;
+				}
+
+				k = _FALSE;
+
+				cout<<"Degree "<<j<<"\t"<<" : ";
+
+				for(lit_ListIterator=vli_GroupedInducedVertexDegrees[j].begin(); lit_ListIterator!=vli_GroupedInducedVertexDegrees[j].end(); lit_ListIterator++)
+				{
+					if(k == STEP_DOWN(i_SetSize))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<"{"<<vd_IncludedVertices[*lit_ListIterator]<<"} ("<<i_SetSize<<")"<<endl;
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<"{"<<vd_IncludedVertices[*lit_ListIterator]<<"}, ";
+					}
+
+					k++;
+				}
+			}
+
+	#endif
+
+	#if DEBUG == 5103
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Retrieved Elements"<<"| Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+	#endif
+//#define DEBUG 5103
+			//get the diagonal values
+			for (int index = 0; index < i_VertexCount; index++) {
+				if(vi_EvaluatedDiagonals[index] == _FALSE)
+				{
+					d_Value = dp2_CompressedMatrix[index][vi_VertexColors[index]];
+
+	#if DEBUG == 5103
+
+					cout<<"Element["<<STEP_UP(index)<<"]["<<STEP_UP(index)<<"] = "<<d_Value<<endl;
+
+	#endif
+					v2i_VertexAdjacency[index].push_back(index);
+					v2d_NonzeroAdjacency[index].push_back(d_Value);
+
+					vi_EvaluatedDiagonals[index] = _TRUE;
+
+				}
+			}
+
+			for ( ; ; )
+			{
+				if(vli_GroupedInducedVertexDegrees[_TRUE].empty()) // If there is no leaf left on the color tree
+				{
+					i_LeafVertex = vli_GroupedInducedVertexDegrees[_FALSE].front();
+
+					vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+
+					vd_IncludedVertices[i_LeafVertex] = _UNKNOWN;
+
+					break;
+				}
+
+				i_LeafVertex = vli_GroupedInducedVertexDegrees[_TRUE].front();
+
+				vli_GroupedInducedVertexDegrees[_TRUE].pop_front();
+
+
+				//Find i_ParentVertex
+				for(j=vi_Vertices[i_LeafVertex]; j<vi_Vertices[STEP_UP(i_LeafVertex)]; j++)
+				{
+					if(vd_IncludedVertices[vi_Edges[j]] != _UNKNOWN)
+					{
+						i_ParentVertex = vi_Edges[j];
+
+						break;
+					}
+				}
+
+				d_Value = dp2_CompressedMatrix[i_LeafVertex][vi_VertexColors[i_ParentVertex]] - vd_IncludedVertices[i_LeafVertex];
+
+				vd_IncludedVertices[i_ParentVertex] += d_Value;
+
+				vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+				vd_IncludedVertices[i_LeafVertex] = _UNKNOWN;
+				if(vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].size()>1) {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].erase(vlit_VertexLocations[i_ParentVertex]);
+				}
+				else {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].pop_back();
+				}
+
+				vi_InducedVertexDegrees[i_ParentVertex]--;
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].push_back(i_ParentVertex);
+
+				//Update position of the iterator pointing to i_ParentVertex in "InducedVertexDegrees" structure
+				vlit_VertexLocations[i_ParentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].end();
+				--vlit_VertexLocations[i_ParentVertex];
+
+				v2i_VertexAdjacency[i_LeafVertex].push_back(i_ParentVertex);
+				v2d_NonzeroAdjacency[i_LeafVertex].push_back(d_Value);
+
+				v2i_VertexAdjacency[i_ParentVertex].push_back(i_LeafVertex);
+				v2d_NonzeroAdjacency[i_ParentVertex].push_back(d_Value);
+
+
+	#if DEBUG == 5103
+
+				cout<<"Element["<<STEP_UP(i_LeafVertex)<<"]["<<STEP_UP(i_ParentVertex)<<"] = "<<d_Value<<endl;
+	#endif
+
+			}
+		}
+
+
+		//allocate memory for *dp3_HessianValue. The dp3_HessianValue and uip2_HessianSparsityPattern matrices should have the same size
+		//*dp3_HessianValue = new double*[i_VertexCount];
+		//for(unsigned int i=0; i < (unsigned int)i_VertexCount; i++) {
+		//	unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+		//	(*dp3_HessianValue)[i] = new double[numOfNonZeros+1];
+		//	(*dp3_HessianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+		//	for(unsigned int j=1; j <= numOfNonZeros; j++) (*dp3_HessianValue)[i][j] = 0.; //initialize value of other entries
+		//}
+
+		//populate dp3_HessianValue row by row, column by column
+		for(i=0; i<i_VertexCount; i++) {
+			int NumOfNonzeros = uip2_HessianSparsityPattern[i][0];
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+			for(j=1; j<=NumOfNonzeros; j++) {
+				int targetColumnID = uip2_HessianSparsityPattern[i][j];
+				for (int k=0; k<i_VertexDegree; k++) {// search through the v2i_VertexAdjacency matrix to find the correct column
+					if(targetColumnID == v2i_VertexAdjacency[i][k]) { //found it
+						(*dp3_HessianValue)[i][j] = v2d_NonzeroAdjacency[i][k];
+						break;
+					}
+				}
+			}
+		}
+
+
+		return (i_VertexCount);
+	}
+
+	int HessianRecovery::IndirectRecover_RowCompressedFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+
+		//allocate memory for *dp3_HessianValue. The dp3_HessianValue and uip2_HessianSparsityPattern matrices should have the same size
+		*dp3_HessianValue = (double**) malloc(rowCount * sizeof(double*));
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_HessianSparsityPattern[i][0];
+			(*dp3_HessianValue)[i] = (double*) malloc( (numOfNonZeros+1) * sizeof(double) );
+			(*dp3_HessianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+			for(unsigned int j=1; j <= numOfNonZeros; j++) (*dp3_HessianValue)[i][j] = 0.; //initialize value of other entries
+		}
+
+		return IndirectRecover_RowCompressedFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, dp3_HessianValue);
+	}
+
+	int HessianRecovery::IndirectRecover_RowCompressedFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue) {
+
+		int returnValue = IndirectRecover_RowCompressedFormat_unmanaged( g,  dp2_CompressedMatrix,  uip2_HessianSparsityPattern, dp3_HessianValue);
+
+		if(AF_available) reset();
+
+		AF_available = true;
+		i_AF_rowCount = g->GetVertexCount();
+		dp2_AF_Value = *dp3_HessianValue;
+
+		return (returnValue);
+	}
+
+	int HessianRecovery::IndirectRecover_SparseSolversFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue) {
+		if (g->GetVertexColorCount()==1){
+			return DirectRecover_SparseSolversFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex,  ip2_ColumnIndex, dp2_HessianValue,numOfNonZerosInHessianValue);
+		}
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		//unsigned int numOfNonZerosInHessianValue = ConvertRowCompressedFormat2SparseSolversFormat_StructureOnly(uip2_HessianSparsityPattern, g->GetVertexCount(), ip2_RowIndex, ip2_ColumnIndex);
+
+		int i_VertexCount = g->GetVertexCount();
+
+		//Making the array indices to start at 0 instead of 1
+		for(unsigned int i=0; i <= (unsigned int) i_VertexCount ; i++) {
+		  (*ip2_RowIndex)[i]--;
+		}
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		  (*ip2_ColumnIndex)[i]--;
+		}
+
+		int i=0,j=0;
+		int i_EdgeID, i_SetID;
+		vector<int> vi_Sets;
+		map< int, vector<int> > mivi_VertexSets;
+
+		vector<int> vi_Vertices;
+		g->GetVertices(vi_Vertices);
+
+		vector<int> vi_Edges;
+		g->GetEdges(vi_Edges);
+
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+
+		map< int, map< int, int> > mimi2_VertexEdgeMap;
+		g->GetVertexEdgeMap(mimi2_VertexEdgeMap);
+
+		DisjointSets ds_DisjointSets;
+		g->GetDisjointSets(ds_DisjointSets);
+
+		//populate vi_Sets & mivi_VertexSets
+		vi_Sets.clear();
+		mivi_VertexSets.clear();
+
+
+		for(i=0; i<i_VertexCount; i++) // for each vertex A (indexed by i)
+		{
+			for(j=vi_Vertices[i]; j<vi_Vertices[STEP_UP(i)]; j++) // for each of the vertex B that connect to A
+			{
+				if(i < vi_Edges[j]) // if the index of A (i) is less than the index of B (vi_Edges[j])
+										//basic each edge is represented by (vertex with smaller ID, vertex with larger ID). This way, we don't insert a specific edge twice
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i][vi_Edges[j]];
+
+					i_SetID = ds_DisjointSets.FindAndCompress(i_EdgeID);
+
+					if(i_SetID == i_EdgeID) // that edge is the root of the set => create new set
+					{
+						vi_Sets.push_back(i_SetID);
+					}
+
+					mivi_VertexSets[i_SetID].push_back(i);
+					mivi_VertexSets[i_SetID].push_back(vi_Edges[j]);
+				}
+			}
+		}
+
+		int i_MaximumVertexDegree;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_LeafVertex, i_ParentVertex, i_PresentVertex;
+
+		int i_VertexDegree;
+
+		int i_SetCount, i_SetSize;
+
+		double d_Value;
+
+		vector<int> vi_EvaluatedDiagonals;
+
+		vector<int> vi_InducedVertexDegrees;
+
+		vector<double> vd_IncludedVertices;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		vector< vector<double> > v2d_NonzeroAdjacency;
+
+		vector< list<int> > vli_GroupedInducedVertexDegrees;
+
+		vector< list<int>::iterator > vlit_VertexLocations;
+
+		i_MaximumVertexDegree = g->GetMaximumVertexDegree();
+
+	#if DEBUG == 5103
+
+		cout<<endl;
+		cout<<"DEBUG 5103 | Hessian Evaluation | Bicolored Sets"<<endl;
+		cout<<endl;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			cout<<STEP_UP(vi_Sets[i])<<"\t"<<" : ";
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				if(j == STEP_DOWN(i_SetSize))
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<" ("<<i_SetSize<<")"<<endl;
+				}
+				else
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Set Count = "<<i_SetCount<<"]"<<endl;
+		cout<<endl;
+
+	#endif
+
+		//Step 5: from here on
+		i_VertexCount = g->GetVertexCount();
+
+		v2i_VertexAdjacency.clear();
+		v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+		v2d_NonzeroAdjacency.clear();
+		v2d_NonzeroAdjacency.resize((unsigned) i_VertexCount);
+
+		vi_EvaluatedDiagonals.clear();
+		vi_EvaluatedDiagonals.resize((unsigned) i_VertexCount, _FALSE);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.resize((unsigned) i_VertexCount, _FALSE);
+
+		vd_IncludedVertices.clear();
+		vd_IncludedVertices.resize((unsigned) i_VertexCount, _UNKNOWN);
+
+		i_ParentVertex = _UNKNOWN;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			vli_GroupedInducedVertexDegrees.clear();
+			vli_GroupedInducedVertexDegrees.resize((unsigned) STEP_UP(i_MaximumVertexDegree));
+
+			vlit_VertexLocations.clear();
+			vlit_VertexLocations.resize((unsigned) i_VertexCount);
+
+			i_HighestInducedVertexDegree = _UNKNOWN;
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				i_PresentVertex = mivi_VertexSets[vi_Sets[i]][j];
+
+				vd_IncludedVertices[i_PresentVertex] = _FALSE;
+
+				if(vi_InducedVertexDegrees[i_PresentVertex] != _FALSE)
+				{
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].erase(vlit_VertexLocations[i_PresentVertex]);
+				}
+
+				vi_InducedVertexDegrees[i_PresentVertex]++;
+
+				if(i_HighestInducedVertexDegree < vi_InducedVertexDegrees[i_PresentVertex])
+				{
+					i_HighestInducedVertexDegree = vi_InducedVertexDegrees[i_PresentVertex];
+				}
+
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].push_front(i_PresentVertex);
+
+				vlit_VertexLocations[i_PresentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].begin();
+			}
+
+	#if DEBUG == 5103
+
+			int k;
+
+			list<int>::iterator lit_ListIterator;
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Induced Vertex Degrees | Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+			for(j=0; j<STEP_UP(i_HighestInducedVertexDegree); j++)
+			{
+				i_SetSize = (signed) vli_GroupedInducedVertexDegrees[j].size();
+
+				if(i_SetSize == _FALSE)
+				{
+					continue;
+				}
+
+				k = _FALSE;
+
+				cout<<"Degree "<<j<<"\t"<<" : ";
+
+				for(lit_ListIterator=vli_GroupedInducedVertexDegrees[j].begin(); lit_ListIterator!=vli_GroupedInducedVertexDegrees[j].end(); lit_ListIterator++)
+				{
+					if(k == STEP_DOWN(i_SetSize))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<" ("<<i_SetSize<<")"<<endl;
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<", ";
+					}
+
+					k++;
+				}
+			}
+
+	#endif
+
+	#if DEBUG == 5103
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Retrieved Elements"<<"| Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+	#endif
+//#define DEBUG 5103
+			//get the diagonal values
+			for (int index = 0; index < i_VertexCount; index++) {
+				if(vi_EvaluatedDiagonals[index] == _FALSE)
+				{
+					d_Value = dp2_CompressedMatrix[index][vi_VertexColors[index]];
+
+	#if DEBUG == 5103
+
+					cout<<"Element["<<STEP_UP(index)<<"]["<<STEP_UP(index)<<"] = "<<d_Value<<endl;
+
+	#endif
+					v2i_VertexAdjacency[index].push_back(index);
+					v2d_NonzeroAdjacency[index].push_back(d_Value);
+
+					vi_EvaluatedDiagonals[index] = _TRUE;
+
+				}
+			}
+
+			for ( ; ; )
+			{
+				if(vli_GroupedInducedVertexDegrees[_TRUE].empty()) // If there is no leaf left on the color tree
+				{
+					i_LeafVertex = vli_GroupedInducedVertexDegrees[_FALSE].front();
+
+					vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+
+					vd_IncludedVertices[i_LeafVertex] = _UNKNOWN;
+
+					break;
+				}
+
+				i_LeafVertex = vli_GroupedInducedVertexDegrees[_TRUE].front();
+
+				vli_GroupedInducedVertexDegrees[_TRUE].pop_front();
+
+				//Find i_ParentVertex
+				for(j=vi_Vertices[i_LeafVertex]; j<vi_Vertices[STEP_UP(i_LeafVertex)]; j++)
+				{
+					if(vd_IncludedVertices[vi_Edges[j]] != _UNKNOWN)
+					{
+						i_ParentVertex = vi_Edges[j];
+
+						break;
+					}
+				}
+
+				d_Value = dp2_CompressedMatrix[i_LeafVertex][vi_VertexColors[i_ParentVertex]] - vd_IncludedVertices[i_LeafVertex];
+
+				vd_IncludedVertices[i_ParentVertex] += d_Value;
+
+				vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+				vd_IncludedVertices[i_LeafVertex] = _UNKNOWN;
+				if(vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].size()>1) {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].erase(vlit_VertexLocations[i_ParentVertex]);
+				}
+				else {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].pop_back();
+				}
+
+				vi_InducedVertexDegrees[i_ParentVertex]--;
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].push_back(i_ParentVertex);
+
+				//Update position of the iterator pointing to i_ParentVertex in "InducedVertexDegrees" structure
+				vlit_VertexLocations[i_ParentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].end();
+				--vlit_VertexLocations[i_ParentVertex];
+
+				v2i_VertexAdjacency[i_LeafVertex].push_back(i_ParentVertex);
+				v2d_NonzeroAdjacency[i_LeafVertex].push_back(d_Value);
+
+				v2i_VertexAdjacency[i_ParentVertex].push_back(i_LeafVertex);
+				v2d_NonzeroAdjacency[i_ParentVertex].push_back(d_Value);
+
+	#if DEBUG == 5103
+
+				cout<<"Element["<<STEP_UP(i_LeafVertex)<<"]["<<STEP_UP(i_ParentVertex)<<"] = "<<d_Value<<endl;
+	#endif
+
+			}
+		}
+
+
+
+		//cout<<"allocate memory for *dp2_HessianValue rowCount="<<rowCount<<endl;
+		//printf("i=%d\t numOfNonZerosInHessianValue=%d \n", i, numOfNonZerosInHessianValue);
+		//(*dp2_HessianValue) = new double[numOfNonZerosInHessianValue]; //allocate memory for *dp2_JacobianValue.
+		//for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) (*dp2_HessianValue)[i] = 0.; //initialize value of other entries
+
+		//populate dp2_HessianValue row by row, column by column
+		for(i=0; i<i_VertexCount; i++) {
+			int NumOfNonzeros = uip2_HessianSparsityPattern[i][0];
+			int offset = 0;
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+			for(j=1; j<=NumOfNonzeros; j++) {
+				if( (unsigned)i > uip2_HessianSparsityPattern[i][j] ) {
+				  offset++;
+				  continue;
+				}
+				int targetColumnID = uip2_HessianSparsityPattern[i][j];
+				for (int k=0; k<i_VertexDegree; k++) {// search through the v2i_VertexAdjacency matrix to find the correct column
+					if(targetColumnID == v2i_VertexAdjacency[i][k]) { //found it
+						(*dp2_HessianValue)[(*ip2_RowIndex)[i] + j - offset - 1] = v2d_NonzeroAdjacency[i][k];
+						break;
+					}
+				}
+			}
+		}
+
+
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int) i_VertexCount ; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		return (i_VertexCount);
+	}
+
+	int HessianRecovery::IndirectRecover_SparseSolversFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue) {
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetVertexCount();
+
+		if (numOfNonZerosInHessianValue < 1) {
+		  numOfNonZerosInHessianValue = ConvertRowCompressedFormat2SparseSolversFormat_StructureOnly(uip2_HessianSparsityPattern, rowCount, ip2_RowIndex, ip2_ColumnIndex);
+
+		  //Making the array indices to start at 1 instead of 0 to conform with the Intel MKL sparse storage scheme for the direct sparse solvers
+		  for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		    (*ip2_RowIndex)[i]++;
+		  }
+		  for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) {
+		    (*ip2_ColumnIndex)[i]++;
+		  }
+		}
+
+		//cout<<"allocate memory for *dp2_HessianValue rowCount="<<rowCount<<endl;
+		//printf("i=%d\t numOfNonZerosInHessianValue=%d \n", i, numOfNonZerosInHessianValue);
+		(*dp2_HessianValue) = (double*) malloc(numOfNonZerosInHessianValue * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		for(unsigned int i=0; i < numOfNonZerosInHessianValue; i++) (*dp2_HessianValue)[i] = 0.; //initialize value of other entries
+
+		int returnValue = IndirectRecover_SparseSolversFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue, numOfNonZerosInHessianValue);
+
+		return returnValue;
+	}
+
+	int HessianRecovery::IndirectRecover_SparseSolversFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+
+		int returnValue = IndirectRecover_SparseSolversFormat_unmanaged( g,  dp2_CompressedMatrix,  uip2_HessianSparsityPattern, ip2_RowIndex,  ip2_ColumnIndex,  dp2_HessianValue);
+
+		if(SSF_available) {
+			//cout<<"SSF_available="<<SSF_available<<endl; Pause();
+			reset();
+		}
+
+		SSF_available = true;
+		i_SSF_rowCount = g->GetVertexCount();
+		ip_SSF_RowIndex = *ip2_RowIndex;
+		ip_SSF_ColumnIndex = *ip2_ColumnIndex;
+		dp_SSF_Value = *dp2_HessianValue;
+
+		return (returnValue);
+	}
+
+	int HessianRecovery::IndirectRecover_CoordinateFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue) {
+#ifdef	_COLPACK_CHECKPOINT_
+		cout<<"IN 1 HessianRecovery::IndirectRecover_CoordinateFormat_unmanaged()"<<endl;
+		string s_postfix = "-IndirectRecover_CoordinateFormat_vectors";
+cout<<"*WriteMatrixMarket_ADOLCInput("<<s_postfix<<", 1, uip2_HessianSparsityPattern, "<< g->GetVertexCount() <<", " << g->GetVertexCount() <<", dp2_CompressedMatrix, " << g->GetVertexCount() <<", "  << g->GetVertexColorCount() <<endl;
+		WriteMatrixMarket_ADOLCInput(s_postfix, 1, uip2_HessianSparsityPattern, g->GetVertexCount(), g->GetVertexCount() , dp2_CompressedMatrix, g->GetVertexCount(), g->GetVertexColorCount() );
+#endif
+		if (g->GetVertexColorCount()==1){
+			return DirectRecover_CoordinateFormat_unmanaged(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, uip2_RowIndex,  uip2_ColumnIndex, dp2_HessianValue);
+		}
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+		int returnValue = IndirectRecover_CoordinateFormat_vectors(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = returnValue;
+		(*uip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*uip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*dp2_HessianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_HessianValue.
+
+		for(size_t i=0; i < numOfNonZeros; i++) {
+			(*uip2_RowIndex)[i] = RowIndex[i];
+			(*uip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+#ifdef	_COLPACK_CHECKPOINT_
+		cout<<"IN 2 HessianRecovery::IndirectRecover_CoordinateFormat_unmanaged()"<<endl;
+		unsigned int*** dp3_Pattern = (unsigned int***) malloc( sizeof(unsigned int**) );
+		double*** dp3_Values = (double***) malloc( sizeof(double**) );
+		ConvertCoordinateFormat2RowCompressedFormat((*uip2_RowIndex), (*uip2_ColumnIndex), (*dp2_HessianValue), g->GetVertexCount(), numOfNonZeros, dp3_Pattern, dp3_Values );
+
+		s_postfix = "-IndirectRecover_CoordinateFormat_vectors";
+cout<<"*WriteMatrixMarket_ADOLCInput("<<s_postfix<<", 2, uip2_HessianSparsityPattern, "<< g->GetVertexCount() <<", " << g->GetVertexCount() <<", dp2_CompressedMatrix, " << g->GetVertexCount() <<", "  << g->GetVertexColorCount()<<", dp3_Values" <<endl;
+		WriteMatrixMarket_ADOLCInput(s_postfix, 2, uip2_HessianSparsityPattern, g->GetVertexCount(), g->GetVertexCount() , dp2_CompressedMatrix, g->GetVertexCount(), g->GetVertexColorCount(), dp3_Values );
+
+		//Deallocate dp3_Pattern & dp3_Values
+		freeMatrix(dp3_Pattern, g->GetVertexCount());
+		freeMatrix(dp3_Values, g->GetVertexCount());
+#endif
+		return (returnValue);
+	}
+
+		// !!! Note: the speed of this function could be improved by reserve the vectors size for (RowIndex, ColumnIndex, HessianValue) ahead of time
+	int HessianRecovery::IndirectRecover_CoordinateFormat_vectors(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue) {
+		int i=0,j=0;
+		int i_VertexCount = _UNKNOWN;
+		int i_EdgeID, i_SetID;
+		vector<int> vi_Sets;
+		map< int, vector<int> > mivi_VertexSets;
+		vector<int> vi_Vertices;
+		g->GetVertices(vi_Vertices);
+		vector<int> vi_Edges;
+		g->GetEdges(vi_Edges);
+		vector<int> vi_VertexColors;
+		g->GetVertexColors(vi_VertexColors);
+		map< int, map< int, int> > mimi2_VertexEdgeMap;
+		g->GetVertexEdgeMap(mimi2_VertexEdgeMap);
+		DisjointSets ds_DisjointSets;
+		g->GetDisjointSets(ds_DisjointSets);
+		//populate vi_Sets & mivi_VertexSets
+		vi_Sets.clear();
+		mivi_VertexSets.clear();
+
+		i_VertexCount = g->GetVertexCount();
+
+		for(i=0; i<i_VertexCount; i++) // for each vertex A (indexed by i)
+		{
+			for(j=vi_Vertices[i]; j<vi_Vertices[STEP_UP(i)]; j++) // for each of the vertex B that connect to A
+			{
+				if(i < vi_Edges[j]) // if the index of A (i) is less than the index of B (vi_Edges[j])
+										//basically each edge is represented by (vertex with smaller ID, vertex with larger ID). This way, we don't insert a specific edge twice
+				{
+					i_EdgeID = mimi2_VertexEdgeMap[i][vi_Edges[j]];
+
+					i_SetID = ds_DisjointSets.FindAndCompress(i_EdgeID);
+
+					if(i_SetID == i_EdgeID) // that edge is the root of the set => create new set
+					{
+						vi_Sets.push_back(i_SetID);
+					}
+
+					mivi_VertexSets[i_SetID].push_back(i);
+					mivi_VertexSets[i_SetID].push_back(vi_Edges[j]);
+				}
+			}
+		}
+
+		int i_MaximumVertexDegree;
+
+		int i_HighestInducedVertexDegree;
+
+		int i_LeafVertex, i_ParentVertex, i_PresentVertex;
+
+		int i_VertexDegree;
+
+		int i_SetCount, i_SetSize;
+
+		double d_Value;
+
+		vector<int> vi_EvaluatedDiagonals;
+
+		vector<int> vi_InducedVertexDegrees;
+
+		vector<double> vd_IncludedVertices;
+		vector<bool> vb_IncludedVertices;
+
+		vector< vector<int> > v2i_VertexAdjacency;
+
+		vector< vector<double> > v2d_NonzeroAdjacency;
+
+		vector< list<int> > vli_GroupedInducedVertexDegrees;
+
+		vector< list<int>::iterator > vlit_VertexLocations;
+
+		i_MaximumVertexDegree = g->GetMaximumVertexDegree();
+	#if DEBUG == 5103
+
+		cout<<endl;
+		cout<<"DEBUG 5103 | Hessian Evaluation | Bicolored Sets"<<endl;
+		cout<<endl;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			cout<<STEP_UP(vi_Sets[i])<<"\t"<<" : ";
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				if(j == STEP_DOWN(i_SetSize))
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<" ("<<i_SetSize<<")"<<endl;
+				}
+				else
+				{
+				cout<<STEP_UP(mivi_VertexSets[vi_Sets[i]][j])<<", ";
+				}
+			}
+		}
+
+		cout<<endl;
+		cout<<"[Set Count = "<<i_SetCount<<"]"<<endl;
+		cout<<endl;
+
+	#endif
+
+		//Step 5: from here on
+		i_VertexCount = g->GetVertexCount();
+
+		v2i_VertexAdjacency.clear();
+		v2i_VertexAdjacency.resize((unsigned) i_VertexCount);
+
+		v2d_NonzeroAdjacency.clear();
+		v2d_NonzeroAdjacency.resize((unsigned) i_VertexCount);
+
+		vi_EvaluatedDiagonals.clear();
+		vi_EvaluatedDiagonals.resize((unsigned) i_VertexCount, _FALSE);
+
+		vi_InducedVertexDegrees.clear();
+		vi_InducedVertexDegrees.resize((unsigned) i_VertexCount, _FALSE);
+
+		vd_IncludedVertices.clear();
+		vd_IncludedVertices.resize((unsigned) i_VertexCount, 0.);
+		vb_IncludedVertices.clear();
+		vb_IncludedVertices.resize((unsigned) i_VertexCount, false);
+
+		i_ParentVertex = _UNKNOWN;
+
+		i_SetCount = (signed) vi_Sets.size();
+
+		for(i=0; i<i_SetCount; i++)
+		{
+			vli_GroupedInducedVertexDegrees.clear();
+			vli_GroupedInducedVertexDegrees.resize((unsigned) STEP_UP(i_MaximumVertexDegree));
+
+			vlit_VertexLocations.clear();
+			vlit_VertexLocations.resize((unsigned) i_VertexCount);
+
+			i_HighestInducedVertexDegree = _UNKNOWN;
+
+			i_SetSize = (signed) mivi_VertexSets[vi_Sets[i]].size();
+
+			for(j=0; j<i_SetSize; j++)
+			{
+				i_PresentVertex = mivi_VertexSets[vi_Sets[i]][j];
+
+				vb_IncludedVertices[i_PresentVertex] = true;
+				vd_IncludedVertices[i_PresentVertex] = 0;
+
+				if(vi_InducedVertexDegrees[i_PresentVertex] != _FALSE)
+				{
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].erase(vlit_VertexLocations[i_PresentVertex]);
+				}
+
+				vi_InducedVertexDegrees[i_PresentVertex]++;
+
+				if(i_HighestInducedVertexDegree < vi_InducedVertexDegrees[i_PresentVertex])
+				{
+					i_HighestInducedVertexDegree = vi_InducedVertexDegrees[i_PresentVertex];
+				}
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].push_front(i_PresentVertex);
+
+				vlit_VertexLocations[i_PresentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_PresentVertex]].begin();
+			}
+
+	#if DEBUG == 5103
+
+			int k;
+
+			list<int>::iterator lit_ListIterator;
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Induced Vertex Degrees | Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+			for(j=0; j<STEP_UP(i_HighestInducedVertexDegree); j++)
+			{
+				i_SetSize = (signed) vli_GroupedInducedVertexDegrees[j].size();
+
+				if(i_SetSize == _FALSE)
+				{
+					continue;
+				}
+
+				k = _FALSE;
+
+				cout<<"Degree "<<j<<"\t"<<" : ";
+
+				for(lit_ListIterator=vli_GroupedInducedVertexDegrees[j].begin(); lit_ListIterator!=vli_GroupedInducedVertexDegrees[j].end(); lit_ListIterator++)
+				{
+					if(k == STEP_DOWN(i_SetSize))
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<"{"<<vd_IncludedVertices[*lit_ListIterator]<<"} ("<<i_SetSize<<")"<<endl;
+					}
+					else
+					{
+						cout<<STEP_UP(*lit_ListIterator)<<"{"<<vd_IncludedVertices[*lit_ListIterator]<<"}, ";
+					}
+
+					k++;
+				}
+			}
+
+	#endif
+
+	#if DEBUG == 5103
+
+			cout<<endl;
+			cout<<"DEBUG 5103 | Hessian Evaluation | Retrieved Elements"<<"| Set "<<STEP_UP(i)<<endl;
+			cout<<endl;
+
+	#endif
+			//get the diagonal values
+			for (int index = 0; index < i_VertexCount; index++) {
+				if(vi_EvaluatedDiagonals[index] == _FALSE)
+				{
+					d_Value = dp2_CompressedMatrix[index][vi_VertexColors[index]];
+
+	#if DEBUG == 5103
+
+					cout<<"Element["<<STEP_UP(index)<<"]["<<STEP_UP(index)<<"] = "<<d_Value<<endl;
+
+	#endif
+					v2i_VertexAdjacency[index].push_back(index);
+					v2d_NonzeroAdjacency[index].push_back(d_Value);
+
+					vi_EvaluatedDiagonals[index] = _TRUE;
+
+				}
+			}
+
+			for ( ; ; )
+			{
+				if(vli_GroupedInducedVertexDegrees[_TRUE].empty()) // If there is no leaf left on the color tree
+				{
+					i_LeafVertex = vli_GroupedInducedVertexDegrees[_FALSE].front();
+
+					vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+
+					vb_IncludedVertices[i_LeafVertex] = false;
+
+					break;
+				}
+
+				i_LeafVertex = vli_GroupedInducedVertexDegrees[_TRUE].front();
+
+				vli_GroupedInducedVertexDegrees[_TRUE].pop_front();
+
+				//Find i_ParentVertex
+				for(j=vi_Vertices[i_LeafVertex]; j<vi_Vertices[STEP_UP(i_LeafVertex)]; j++)
+				{
+					if(vb_IncludedVertices[vi_Edges[j]])
+					{
+						i_ParentVertex = vi_Edges[j];
+
+						break;
+					}
+				}
+
+				d_Value = dp2_CompressedMatrix[i_LeafVertex][vi_VertexColors[i_ParentVertex]] - vd_IncludedVertices[i_LeafVertex];
+
+				vd_IncludedVertices[i_ParentVertex] += d_Value;
+
+				vi_InducedVertexDegrees[i_LeafVertex] = _FALSE;
+				vb_IncludedVertices[i_LeafVertex] = false;
+				if(vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].size()>1) {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].erase(vlit_VertexLocations[i_ParentVertex]);
+				}
+				else {
+					vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].pop_back();
+				}
+
+				vi_InducedVertexDegrees[i_ParentVertex]--;
+				vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].push_back(i_ParentVertex);
+
+				//Update position of the iterator pointing to i_ParentVertex in "InducedVertexDegrees" structure
+				vlit_VertexLocations[i_ParentVertex] = vli_GroupedInducedVertexDegrees[vi_InducedVertexDegrees[i_ParentVertex]].end();
+				--vlit_VertexLocations[i_ParentVertex];
+
+				v2i_VertexAdjacency[i_LeafVertex].push_back(i_ParentVertex);
+				v2d_NonzeroAdjacency[i_LeafVertex].push_back(d_Value);
+
+				v2i_VertexAdjacency[i_ParentVertex].push_back(i_LeafVertex);
+				v2d_NonzeroAdjacency[i_ParentVertex].push_back(d_Value);
+
+
+	#if DEBUG == 5103
+
+				cout<<"Element["<<STEP_UP(i_LeafVertex)<<"]["<<STEP_UP(i_ParentVertex)<<"] = "<<d_Value<<endl;
+	#endif
+
+			}
+		}
+
+		//populate dp3_HessianValue row by row, column by column
+		for(i=0; i<i_VertexCount; i++) {
+			int NumOfNonzeros = uip2_HessianSparsityPattern[i][0];
+			i_VertexDegree = (signed) v2i_VertexAdjacency[i].size();
+			for(j=1; j<=NumOfNonzeros; j++) {
+				int targetColumnID = uip2_HessianSparsityPattern[i][j];
+				if(targetColumnID<i) continue;
+				for (int k=0; k<i_VertexDegree; k++) {// search through the v2i_VertexAdjacency matrix to find the correct column
+					if(targetColumnID == v2i_VertexAdjacency[i][k]) { //found it
+						HessianValue.push_back(v2d_NonzeroAdjacency[i][k]);
+						break;
+					}
+				}
+				RowIndex.push_back(i);
+				ColumnIndex.push_back(uip2_HessianSparsityPattern[i][j]);
+			}
+		}
+
+		return ( RowIndex.size() );
+	}
+
+	int HessianRecovery::IndirectRecover_CoordinateFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+		if (g->GetVertexColorCount()==1){
+			return DirectRecover_CoordinateFormat_usermem(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, ip2_RowIndex,  ip2_ColumnIndex, dp2_HessianValue);
+		}
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		vector<unsigned int> RowIndex;
+		vector<unsigned int> ColumnIndex;
+		vector<double> HessianValue;
+
+
+		int returnValue = IndirectRecover_CoordinateFormat_vectors(g, dp2_CompressedMatrix, uip2_HessianSparsityPattern, RowIndex, ColumnIndex, HessianValue);
+
+		unsigned int numOfNonZeros = returnValue;
+
+		for(size_t i=0; i < numOfNonZeros; i++) {
+			(*ip2_RowIndex)[i] = RowIndex[i];
+			(*ip2_ColumnIndex)[i] = ColumnIndex[i];
+			(*dp2_HessianValue)[i] = HessianValue[i];
+		}
+
+		return (returnValue);
+	}
+
+	int HessianRecovery::IndirectRecover_CoordinateFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_HessianValue) {
+//#define DEBUG 5103
+		int returnValue = IndirectRecover_CoordinateFormat_unmanaged( g,  dp2_CompressedMatrix,  uip2_HessianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_HessianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = returnValue;
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_HessianValue;
+
+		return (returnValue);
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Recovery/HessianRecovery.h
@@ -0,0 +1,293 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef HESSIANRECOVERY_H
+#define HESSIANRECOVERY_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group5
+	 *  @brief class HessianRecovery in @link group5@endlink.
+	 */
+	class HessianRecovery : public RecoveryCore
+	{
+	public: //DOCUMENTED
+
+		/// A routine for recovering a Hessian from a star-coloring based compressed representation.
+		/**
+		Parameter:
+		- Input:
+			- *g: GraphColoringInterface object, providing the coloring information
+			- dp2_CompressedMatrix: The compressed matrix that contains all computed values
+			- uip2_HessianSparsityPattern.
+		- Output:
+			- dp3_HessianValue
+
+		Precondition:
+		- Star coloring routine has been called.
+		- uip2_HessianSparsityPattern: The Hessian matrix must be stored in compressed sparse rows format
+		- dp3_HessianValue is just a pointer pointing to a 2D matrix (no memory allocated yet). This matrix will be created (memory will be allocated) by this routine and the pointer will be assigned to dp3_HessianValue
+
+		Postcondition:
+		- dp3_HessianValue points to a 2d matrix contains the numerical values of the Hessian. Row Compressed Format is used
+		The memory allocated for this output vector is managed by ColPack. The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+
+
+		Return value: size of (*dp3_HessianValue) array
+
+		About input parameters:
+		- This routine doesn't need to take (star) coloring result m_vi_VertexColors of the Hessian as another paramenter because that information is known already (because of the 1st precondition). The cologin result can be retrieved from the first parameter "GraphColoringInterface* g"
+
+		Row Compressed Format for dp3_HessianValue:
+		- This is a 2D matrix of doubles.
+		- The first element of each row will specify the number of non-zeros in the Hessian => Value of the first element + 1 will be the length of that row.
+		- The value of each element after the 1st element is the value of the non-zero in the Hessian. The value of dp3_HessianValue[col][row] is the value of element [col][uip2_HessianSparsityPattern[col][row]] in the real (uncompressed) Hessian
+		- An example of compressed sparse rows format:
+			- Uncompressed matrix:	<br>
+		1	.5	0	<br>
+		.5	2	3	<br>
+		0	3	-.5	<br>
+			- Corresponding uip2_HessianSparsityPattern:	<br>
+		2	0	1		<br>
+		3	0	1	2	<br>
+		2	1	2		<br>
+			- Corresponding dp3_HessianValue:	<br>
+		2	1	.5		<br>
+		3	.5	2	3	<br>
+		2	3	-.5		<br>
+
+		Algorithm: optimized version of the algorithm in Figure 2, pg 8, "Efficient Computation of Sparse Hessians using Coloring and Automatic Differentiation" paper.
+		The complexity of this routine is O(|E|) versus O(|E|*average distance-1 neighbour) for DirectRecover1
+		- Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		Results are stored in map<int,int>* colorStatistic. colorStatistic[0] is (column-)color statistic for row 0
+		If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		- Allocate memory for *dp3_HessianValue
+		- (Main part) Recover the values of non-zero entries in the Hessian:
+		For each row, for each entry, see how many entries in that row have the same color by checking colorStatistic[row][column-color of the entry].
+		If colorStatistic[#][#] == 1 => This entry has unique color (in this row). H[j,i] = B[j,color[hi]]
+		else H[j,i] = B[i,color[hj]]
+		Each non-zero value of the Hessian will be recovered from left to right, top to bottom
+		Note: column-color of entry [row 5][column 3] is m_vi_VertexColors[column 3]
+		*/
+		int DirectRecover_RowCompressedFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+		/// Same as DirectRecover_RowCompressedFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_RowCompressedFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+		/// Same as DirectRecover_RowCompressedFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		(*dp3_HessianValue) should have the same structure as uip2_HessianSparsityPattern
+		*/
+		int DirectRecover_RowCompressedFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+
+		/// A routine for recovering a Hessian from a star-coloring based compressed representation.
+		/**
+		Precondition:
+		- (*uip2_RowIndex), (*uip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*uip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+		http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+		- unsigned int** uip2_RowIndex
+		- unsigned int** uip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		NOTE: Since we are returning a symmetric matrix, only the upper triangle are stored.
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int DirectRecover_CoordinateFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+//		int DirectRecover_CoordinateFormat_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as DirectRecover_CoordinateFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_CoordinateFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+//		int DirectRecover_CoordinateFormat_unmanaged_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as DirectRecover_CoordinateFormat_unmanaged(), except that memory allocation for output vector(s) is done by user. (OpenMP enabled)
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+//		int DirectRecover_CoordinateFormat_usermem_serial(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+		int DirectRecover_CoordinateFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+		//int DirectRecover_CoordinateFormat_usermem_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+
+		/// A routine for recovering a Hessian from a star-coloring based compressed representation.
+		/**
+		Precondition:
+		- (*uip2_RowIndex), (*uip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*uip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers" (zero-based indexing)
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+		- unsigned int** uip2_RowIndex
+		- unsigned int** uip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		NOTE: Since we are returning a symmetric matrix, according to format, only the upper triangle are stored.
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		*/
+		int DirectRecover_SparseSolversFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as DirectRecover_SparseSolversFormat(), except that the output is NOT managed by ColPack
+		/**
+		About input parameters:
+		- numOfNonZerosInHessianValue: the size of (*uip2_ColumnIndex) and (*dp2_HessianValue) arrays.
+		The value of numOfNonZerosInHessianValue will be calculated if not provided (i.e. <1).
+
+		Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_SparseSolversFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue = 0);
+
+		/// Same as DirectRecover_SparseSolversFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/**
+		About input parameters:
+		- numOfNonZerosInHessianValue: the size of (*uip2_ColumnIndex) and (*dp2_HessianValue) arrays.
+
+		Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int DirectRecover_SparseSolversFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue);
+
+
+		/// A routine for recovering a Hessian from a acyclic-coloring based compressed representation.
+		/**
+		Parameter:
+		- Input:
+			- *g: GraphColoringInterface object, providing the coloring information
+			- dp2_CompressedMatrix: The compressed matrix that contains all computed values
+			- uip2_HessianSparsityPattern.
+		- Output:
+			- dp3_HessianValue
+
+		Precondition:
+		- Acyclic coloring routine has been called.
+		- uip2_HessianSparsityPattern: The Hessian matrix must be stored in compressed sparse rows format
+		- dp3_HessianValue is just a pointer pointing to a 2D matrix (no memory allocated yet). This matrix will be created (memory will be allocated) by IndirectRecover2() and the pointer will be assigned to dp3_HessianValue
+
+		Postcondition:
+		- dp3_HessianValue points to a 2d matrix contains the numerical values of the Hessian. Row Compressed Format is used
+		The memory allocated for this output vector is managed by ColPack. The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+
+		Return value: size of (*dp3_HessianValue) array
+
+		About input parameters:
+		- This routine doesn't need to take (acyclic) coloring result m_vi_VertexColors of the Hessian as another paramenter because that information is known already (because of the 1st precondition).
+
+		Row Compressed Format for dp3_HessianValue: see DirectRecover2()
+
+		Algorithm: created by Assefaw, 1st implemented by Arijit Tarafdar. This function is just a modification of Arijit's implementation
+		*/
+		int IndirectRecover_RowCompressedFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+		/// Same as IndirectRecover_RowCompressedFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int IndirectRecover_RowCompressedFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+		/// Same as IndirectRecover_RowCompressedFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int IndirectRecover_RowCompressedFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, double*** dp3_HessianValue);
+
+
+		/// A routine for recovering a Hessian from a acyclic-coloring based compressed representation.
+		/**
+		Precondition:
+		- (*uip2_RowIndex), (*uip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*uip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+		http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+		- unsigned int** uip2_RowIndex
+		- unsigned int** uip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		NOTE: Since we are returning a symmetric matrix, only the upper triangle are stored.
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int IndirectRecover_CoordinateFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as IndirectRecover_CoordinateFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int IndirectRecover_CoordinateFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as IndirectRecover_CoordinateFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int IndirectRecover_CoordinateFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+
+		/// A routine for recovering a Hessian from a acyclic-coloring based compressed representation.
+		/**
+		Precondition:
+		- (*uip2_RowIndex), (*uip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*uip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers" (zero-based indexing)
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+		- unsigned int** uip2_RowIndex
+		- unsigned int** uip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		NOTE: Since we are returning a symmetric matrix, according to format, only the upper triangle are stored.
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		*/
+		int IndirectRecover_SparseSolversFormat(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue);
+
+		/// Same as IndirectRecover_SparseSolversFormat(), except that the output is NOT managed by ColPack
+		/**
+		About input parameters:
+		- numOfNonZerosInHessianValue: the size of (*uip2_ColumnIndex) and (*dp2_HessianValue) arrays.
+		The value of numOfNonZerosInHessianValue will be calculated if not provided (i.e. <1).
+
+		Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int IndirectRecover_SparseSolversFormat_unmanaged(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue = 0);
+
+		/// Same as IndirectRecover_SparseSolversFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/**
+		About input parameters:
+		- numOfNonZerosInHessianValue: the size of (*uip2_ColumnIndex) and (*dp2_HessianValue) arrays.
+
+		Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int IndirectRecover_SparseSolversFormat_usermem(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, unsigned int** uip2_RowIndex, unsigned int** uip2_ColumnIndex, double** dp2_HessianValue, unsigned int numOfNonZerosInHessianValue);
+
+	  private:
+		int DirectRecover_CoordinateFormat_vectors(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue);
+//		int DirectRecover_CoordinateFormat_vectors_OMP(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue);
+		int IndirectRecover_CoordinateFormat_vectors(GraphColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_HessianSparsityPattern, vector<unsigned int> &RowIndex, vector<unsigned int> &ColumnIndex, vector<double> &HessianValue);
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Recovery/JacobianRecovery1D.cpp
@@ -0,0 +1,702 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+
+	int JacobianRecovery1D::RecoverD2Row_RowCompressedFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		unsigned int numOfNonZeros = 0;
+
+		//allocate memory for *dp3_JacobianValue. The dp3_JacobianValue and uip2_JacobianSparsityPattern matrices should have the same size
+		*dp3_JacobianValue = (double**) malloc(rowCount * sizeof(double*));
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			(*dp3_JacobianValue)[i] = (double*) malloc( (numOfNonZeros+1) * sizeof(double) );
+			(*dp3_JacobianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+			for(size_t j=1; j <=  numOfNonZeros; j++) (*dp3_JacobianValue)[i][j] = 0.; //initialize value of other entries
+		}
+
+		return RecoverD2Row_RowCompressedFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, dp3_JacobianValue);
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_RowCompressedFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+		unsigned int numOfNonZeros = 0;
+
+		//allocate memory for *dp3_JacobianValue. The dp3_JacobianValue and uip2_JacobianSparsityPattern matrices should have the same size
+		//*dp3_JacobianValue = new double*[rowCount];
+		//for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		//	numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+		//	(*dp3_JacobianValue)[i] = new double[numOfNonZeros+1];
+		//	(*dp3_JacobianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+		//	for(int j=1; j <= numOfNonZeros; j++) (*dp3_JacobianValue)[i][j] = 0.; //initialize value of other entries
+		//}
+
+		//Recover value of the Jacobian
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(size_t j=1; j <= numOfNonZeros; j++) {
+				(*dp3_JacobianValue)[i][j] = dp2_CompressedMatrix[vi_LeftVertexColors[i]][uip2_JacobianSparsityPattern[i][j]];
+			}
+
+		}
+
+		return rowCount;
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_RowCompressedFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		int returnValue = RecoverD2Row_RowCompressedFormat_unmanaged(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, dp3_JacobianValue);
+
+		if(AF_available) reset();
+
+		AF_available = true;
+		i_AF_rowCount = g->GetRowVertexCount();
+		dp2_AF_Value = *dp3_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_SparseSolversFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+		unsigned int numOfNonZeros = 0;
+
+		// Populate ip2_RowIndex and ip2_ColumnIndex
+		//numOfNonZeros = g->GetColumnIndices(ip2_ColumnIndex);
+		numOfNonZeros = g->GetEdgeCount();// !!!! make sure that this line is equivalent to the line above
+
+		//Making the array indices to start at 0 instead of 1
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]--;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]--;
+		}
+
+		//Recover value of the Jacobian
+		unsigned int numOfNonZerosInEachRow = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZerosInEachRow = uip2_JacobianSparsityPattern[i][0];
+			for(size_t j=1; j <= numOfNonZerosInEachRow; j++) {
+				(*dp2_JacobianValue)[(*ip2_RowIndex)[i]+j-1] = dp2_CompressedMatrix[vi_LeftVertexColors[i]][uip2_JacobianSparsityPattern[i][j]];
+			}
+
+		}
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		return rowCount;
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_SparseSolversFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		unsigned int numOfNonZeros = 0;
+
+		// Allocate memory and populate ip2_RowIndex and ip2_ColumnIndex
+		g->GetRowVertices(ip2_RowIndex);
+		numOfNonZeros = g->GetColumnIndices(ip2_ColumnIndex);
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		for(unsigned int i=0; i < numOfNonZeros; i++) (*dp2_JacobianValue)[i] = 0.; //initialize value of other entries
+
+		return RecoverD2Row_SparseSolversFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_SparseSolversFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Row_SparseSolversFormat_unmanaged(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+
+		if(SSF_available) reset();
+
+		SSF_available = true;
+		i_SSF_rowCount = g->GetRowVertexCount();
+		ip_SSF_RowIndex = *ip2_RowIndex;
+		ip_SSF_ColumnIndex = *ip2_ColumnIndex;
+		dp_SSF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+
+		int numOfNonZeros;
+		//vector<int>* LeftVerticesPtr = g->GetLeftVerticesPtr();
+
+		//Recover value of the Jacobian
+
+//		#pragma omp parallel for default(none) schedule(static) shared(rowCount,LeftVerticesPtr,dp2_JacobianValue, ip2_RowIndex, ip2_ColumnIndex, uip2_JacobianSparsityPattern, dp2_CompressedMatrix, vi_LeftVertexColors) private(numOfNonZeros)
+/*		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[(*LeftVerticesPtr)[i]+j-1] = dp2_CompressedMatrix[vi_LeftVertexColors[i]][uip2_JacobianSparsityPattern[i][j]];
+				(*ip2_RowIndex)[(*LeftVerticesPtr)[i]+j-1] = i;
+				(*ip2_ColumnIndex)[(*LeftVerticesPtr)[i]+j-1] = uip2_JacobianSparsityPattern[i][j];
+
+			}
+		}
+		if(numOfNonZeros_count != g->GetEdgeCount()) {
+			cout<<"**Something fishing going on"<<endl;
+			cout<<"numOfNonZeros_count="<<numOfNonZeros_count<<endl;
+			cout<<"numOfNonZeros="<<g->GetEdgeCount()<<endl;
+		}
+		else cout<<"**Good!!!"<<endl;
+		Pause();
+		//
+
+		return (*LeftVerticesPtr)[rowCount];
+*/
+		unsigned int numOfNonZeros_count = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_CompressedMatrix[vi_LeftVertexColors[i]][uip2_JacobianSparsityPattern[i][j]];
+				(*ip2_RowIndex)[numOfNonZeros_count] = i;
+				(*ip2_ColumnIndex)[numOfNonZeros_count] = uip2_JacobianSparsityPattern[i][j];
+				numOfNonZeros_count++;
+			}
+		}
+		/*
+		if(numOfNonZeros_count != g->GetEdgeCount()) {
+			cout<<"**Something fishing going on"<<endl;
+			cout<<"numOfNonZeros_count="<<numOfNonZeros_count<<endl;
+			cout<<"numOfNonZeros="<<g->GetEdgeCount()<<endl;
+		}
+		else cout<<"**Good!!!"<<endl;
+		Pause();
+		// */
+		return numOfNonZeros_count;
+
+	}
+/*
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat_usermem_serial(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+
+		int numOfNonZeros;
+
+		//Recover value of the Jacobian
+		unsigned int numOfNonZeros_count = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_CompressedMatrix[vi_LeftVertexColors[i]][uip2_JacobianSparsityPattern[i][j]];
+				(*ip2_RowIndex)[numOfNonZeros_count] = i;
+				(*ip2_ColumnIndex)[numOfNonZeros_count] = uip2_JacobianSparsityPattern[i][j];
+				numOfNonZeros_count++;
+			}
+		}
+		if(numOfNonZeros_count != g->GetEdgeCount()) {
+			cout<<"**Something fishing going on"<<endl;
+			cout<<"numOfNonZeros_count="<<numOfNonZeros_count<<endl;
+			cout<<"numOfNonZeros="<<g->GetEdgeCount()<<endl;
+		}
+		else cout<<"**Good!!!"<<endl;
+		Pause();
+
+		return numOfNonZeros_count;
+	}
+*/
+/*
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat_unmanaged_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		unsigned int numOfNonZeros =  g->GetEdgeCount();
+
+		// !!! test the effectiveness of this sections. Will I really get any improvement
+		#pragma omp sections
+		{
+		  #pragma omp section
+		  {
+		    (*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		  }
+		}
+		return RecoverD2Row_CoordinateFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+*/
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		unsigned int numOfNonZeros =  g->GetEdgeCount();
+
+		(*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+
+//		return RecoverD2Row_CoordinateFormat_usermem_serial(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+		return RecoverD2Row_CoordinateFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+/*
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Row_CoordinateFormat_unmanaged_OMP(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetRowVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+*/
+	int JacobianRecovery1D::RecoverD2Row_CoordinateFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Row_CoordinateFormat_unmanaged(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetRowVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_ADICFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, std::list<std::set<int> >& lsi_SparsityPattern, std::list<std::vector<double> > &lvd_NewValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_RightVertexColors;
+		g->GetRightVertexColors(vi_RightVertexColors);
+		unsigned int numOfNonZeros = 0;
+		std::list<std::set<int> >::iterator lsii_SparsityPattern = lsi_SparsityPattern.begin();
+
+		//Recover value of the Jacobian
+		//cout<<"Recover value of the Jacobian"<<endl;
+		for(unsigned int i=0; i < (unsigned int)rowCount; lsii_SparsityPattern++, i++) {
+			std::set<int> valset = *lsii_SparsityPattern;
+			std::set<int>::iterator valsetiter = valset.begin();
+			numOfNonZeros = valset.size(); //(*lsii_SparsityPattern) is equivalent to uip2_JacobianSparsityPattern[i]
+			std::vector<double> valuevector;
+			valuevector.resize(numOfNonZeros);
+			for(unsigned int j=0; j < numOfNonZeros; valsetiter++, j++) {
+				valuevector[j] = dp2_CompressedMatrix[i][vi_RightVertexColors[*valsetiter]];
+			}
+
+			lvd_NewValue.push_back(valuevector);
+		}
+
+		return rowCount;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_RowCompressedFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_RightVertexColors;
+		g->GetRightVertexColors(vi_RightVertexColors);
+		unsigned int numOfNonZeros = 0;
+
+		//Recover value of the Jacobian
+		//cout<<"Recover value of the Jacobian"<<endl;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				(*dp3_JacobianValue)[i][j] = dp2_CompressedMatrix[i][vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]];
+			}
+
+		}
+
+		return rowCount;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_RowCompressedFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		unsigned int numOfNonZeros = 0;
+
+		//allocate memory for *dp3_JacobianValue. The dp3_JacobianValue and uip2_JacobianSparsityPattern matrices should have the same size
+		//cout<<"allocate memory for *dp3_JacobianValue rowCount="<<rowCount<<endl;
+		*dp3_JacobianValue = (double**) malloc(rowCount * sizeof(double*));
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			//printf("i=%d\tnumOfNonZeros=%d \n", i, numOfNonZeros);
+			(*dp3_JacobianValue)[i] = (double*) malloc( (numOfNonZeros+1) * sizeof(double) );
+			(*dp3_JacobianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+			for(unsigned int j=1; j <= numOfNonZeros; j++) (*dp3_JacobianValue)[i][j] = 0.; //initialize value of other entries
+		}
+
+		return RecoverD2Cln_RowCompressedFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, dp3_JacobianValue);
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_RowCompressedFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		int returnValue = RecoverD2Cln_RowCompressedFormat_unmanaged(g,  dp2_CompressedMatrix,  uip2_JacobianSparsityPattern,  dp3_JacobianValue);
+
+		if(AF_available) reset();
+
+		AF_available = true;
+		i_AF_rowCount = g->GetRowVertexCount();
+		dp2_AF_Value = *dp3_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_SparseSolversFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_RightVertexColors;
+		g->GetRightVertexColors(vi_RightVertexColors);
+		unsigned int numOfNonZeros = 0;
+
+		numOfNonZeros = g->GetEdgeCount();
+
+		//Making the array indices to start at 0 instead of 1
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]--;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]--;
+		}
+
+		//Recover value of the Jacobian
+		//cout<<"Recover value of the Jacobian"<<endl;
+		unsigned int numOfNonZerosInEachRow = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZerosInEachRow = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZerosInEachRow; j++) {
+				(*dp2_JacobianValue)[(*ip2_RowIndex)[i]+j-1] = dp2_CompressedMatrix[i][vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]];
+			}
+		}
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		return rowCount;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_SparseSolversFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		unsigned int numOfNonZeros = 0;
+
+		// Allocate memory and populate ip2_RowIndex and ip2_ColumnIndex
+		g->GetRowVertices(ip2_RowIndex);
+		numOfNonZeros = g->GetColumnIndices(ip2_ColumnIndex);
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int)rowCount; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		//cout<<"allocate memory for *dp2_JacobianValue rowCount="<<rowCount<<endl;
+		//printf("i=%d\tnumOfNonZeros=%d \n", i, numOfNonZeros);
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		for(unsigned int i=0; i < numOfNonZeros; i++) (*dp2_JacobianValue)[i] = 0.; //initialize value of other entries
+
+		return RecoverD2Cln_SparseSolversFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_SparseSolversFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Cln_SparseSolversFormat_unmanaged( g,  dp2_CompressedMatrix,  uip2_JacobianSparsityPattern, ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(SSF_available) reset();
+
+		SSF_available = true;
+		i_SSF_rowCount = g->GetRowVertexCount();
+		ip_SSF_RowIndex = *ip2_RowIndex;
+		ip_SSF_ColumnIndex = *ip2_ColumnIndex;
+		dp_SSF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_RightVertexColors;
+		g->GetRightVertexColors(vi_RightVertexColors);
+		unsigned int numOfNonZeros = 0;
+//		vector<int>* LeftVerticesPtr = g->GetLeftVerticesPtr();
+
+		//Recover value of the Jacobian
+		//cout<<"Recover value of the Jacobian"<<endl;
+//		#pragma omp parallel for default(none) schedule(static) shared(rowCount,LeftVerticesPtr,dp2_JacobianValue, ip2_RowIndex, ip2_ColumnIndex, uip2_JacobianSparsityPattern, dp2_CompressedMatrix, vi_RightVertexColors) private(numOfNonZeros)
+/*		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[(*LeftVerticesPtr)[i]+j-1] = dp2_CompressedMatrix[i][vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]];
+				(*ip2_RowIndex)[(*LeftVerticesPtr)[i]+j-1] = i;
+				(*ip2_ColumnIndex)[(*LeftVerticesPtr)[i]+j-1] = uip2_JacobianSparsityPattern[i][j];
+			}
+		}
+
+		return (*LeftVerticesPtr)[rowCount];
+*/
+		unsigned int numOfNonZeros_count = 0;
+		//unsigned int ll=0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_CompressedMatrix[i][vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]];
+				(*ip2_RowIndex)[numOfNonZeros_count] = i;
+				(*ip2_ColumnIndex)[numOfNonZeros_count] = uip2_JacobianSparsityPattern[i][j];
+				numOfNonZeros_count++;
+			}
+		}
+
+		return numOfNonZeros_count;
+
+	}
+/*
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat_usermem_serial(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+		vector<int> vi_RightVertexColors;
+		g->GetRightVertexColors(vi_RightVertexColors);
+		unsigned int numOfNonZeros = 0;
+
+		//Recover value of the Jacobian
+		//cout<<"Recover value of the Jacobian"<<endl;
+		unsigned int numOfNonZeros_count = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_CompressedMatrix[i][vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]];
+				(*ip2_RowIndex)[numOfNonZeros_count] = i;
+				(*ip2_ColumnIndex)[numOfNonZeros_count] = uip2_JacobianSparsityPattern[i][j];
+				numOfNonZeros_count++;
+			}
+		}
+
+		return numOfNonZeros_count;
+	}
+*/
+/*
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat_unmanaged_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		unsigned int numOfNonZeros = g->GetEdgeCount();
+
+		// !!! test the effectiveness of this sections. Will I really get any improvement?
+		#pragma omp sections
+		{
+		  #pragma omp section
+		  {
+		    (*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		  }
+		  #pragma omp section
+		  {
+		    (*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		  }
+		}
+
+		return RecoverD2Cln_CoordinateFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+*/
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		unsigned int numOfNonZeros = g->GetEdgeCount();
+
+		(*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+
+//		return RecoverD2Cln_CoordinateFormat_usermem_serial(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+
+		return RecoverD2Cln_CoordinateFormat_usermem(g, dp2_CompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+/*
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Cln_CoordinateFormat_unmanaged_OMP(g,  dp2_CompressedMatrix,  uip2_JacobianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetRowVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+*/
+	int JacobianRecovery1D::RecoverD2Cln_CoordinateFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = RecoverD2Cln_CoordinateFormat_unmanaged(g,  dp2_CompressedMatrix,  uip2_JacobianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetRowVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+
+	int JacobianRecovery1D::CompareMatrix_CoordinateFormat_vs_CoordinateFormat(int i_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue, unsigned int** ip2_RowIndex2, unsigned int** ip2_ColumnIndex2, double** dp2_JacobianValue2) {
+		bool fail_flag=false;
+		for(int i=0;i<i_rowCount;i++) {
+		  if((*ip2_RowIndex)[i]!=(*ip2_RowIndex2)[i]) {
+		    cout<<"i="<<i<<" (*ip2_RowIndex)[i] ("<< (*ip2_RowIndex)[i] <<")!=(*ip2_RowIndex2)[i] ("<< (*ip2_RowIndex2)[i] <<")"<<endl;
+		    fail_flag=true;
+		    break;
+		  }
+
+		  if((*ip2_ColumnIndex)[i]!=(*ip2_ColumnIndex2)[i]) {
+		    cout<<"i="<<i<<" (*ip2_ColumnIndex)[i] ("<< (*ip2_ColumnIndex)[i] <<")!=(*ip2_ColumnIndex2)[i] ("<< (*ip2_ColumnIndex2)[i] <<")"<<endl;
+		    fail_flag=true;
+		    break;
+		  }
+
+
+		  if((*dp2_JacobianValue)[i] != (*dp2_JacobianValue2)[i] ) {
+		    cout<<"i="<<i<<" (*dp2_JacobianValue)[i] ("<< (*dp2_JacobianValue)[i] <<")!=(*dp2_JacobianValue2)[i] ("<< (*dp2_JacobianValue2)[i] <<")"<<endl;
+		    fail_flag=true;
+		    break;
+		  }
+
+		}
+
+		return (fail_flag)?0:1;
+	}
+
+	int JacobianRecovery1D::CompareMatrix_CoordinateFormat_vs_RowCompressedFormat(int i_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue,  int rowCount2, unsigned int *** uip3_SparsityPattern, double*** dp3_Value) {
+		bool fail_flag=false;
+		for(int i=0;i<i_rowCount;i++) {
+		  if((*ip2_RowIndex)[i] >= (unsigned)rowCount2) {
+		    fail_flag = true;
+		    break;
+		  }
+
+		  size_t j =0;
+		  for(;j<= (*uip3_SparsityPattern)[ (*ip2_RowIndex)[i] ][0];j++) {
+		    if((*uip3_SparsityPattern)[ (*ip2_RowIndex)[i] ][j] == (*ip2_ColumnIndex)[i]) break;
+		  }
+		  if(j>(*uip3_SparsityPattern)[ (*ip2_RowIndex)[i] ][0]) {
+		    fail_flag = true;
+		    break;
+		  }
+		  //cout<<"found j = "<<j<<endl;
+
+		  if( (*dp2_JacobianValue)[i] != (*dp3_Value)[(*ip2_RowIndex)[i]][j]) {
+		    cout<<"i="<<i<<" (*dp2_JacobianValue)[i] ("<< (*dp2_JacobianValue)[i] <<")!=(*dp3_Value)["<< (*ip2_RowIndex)[i] <<"]["<< (*ip2_ColumnIndex)[i] <<"] ("<<(*dp3_Value)[(*ip2_RowIndex)[i]][j]<<")"<<endl;
+		    fail_flag=true;
+		    break;
+		  }
+
+		}
+
+		return (fail_flag)?0:1;
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Recovery/JacobianRecovery1D.h
@@ -0,0 +1,277 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef JACOBIANRECOVERY1D_H
+#define JACOBIANRECOVERY1D_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group5
+	 *  @brief class JacobianRecovery1D in @link group5@endlink.
+	 */
+	class JacobianRecovery1D : public RecoveryCore
+	{
+	public: //DOCUMENTED
+
+		/// A routine for recovering a Jacobian from a "Row-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Return by recovery routine: double*** dp3_JacobianValue
+
+		Precondition:
+		- Row-wise Distance 2 coloring routine has been called.
+		- uip2_JacobianSparsityPattern (input) The Jacobian matrix must be stored in compressed sparse rows format
+		- dp3_JacobianValue (output) is just a pointer pointing to a 2D matrix (no memory allocated yet). This matrix will be created (memory will be allocated) by DirectRecover() and the pointer will be assigned to dp3_JacobianValue
+
+		Postcondition:
+		- dp3_JacobianValue points to a 2d matrix contains the numerical values of the Jacobian. Row Compressed Format is used
+		The memory allocated for this output vector is managed by ColPack. The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+
+		Return value: size of (*dp3_JacobianValue) array
+
+		About input parameters:
+		- This routine doesn't take (Row-wise Distance 2) coloring result m_vi_LeftVertexColors of the Jacobian as another paramenter because that information is known already (because of the 1st precondition).
+
+		Row Compressed Format for dp3_JacobianValue:
+		- This is a 2D matrix of doubles.
+		- The first element of each row will specify the number of non-zeros in the Jacobian => Value of the first element + 1 will be the length of that row.
+		- The value of each element after the 1st element is the value of the non-zero in the Jacobian. The value of dp3_JacobianValue[col][row] is the value of element [col][uip2_JacobianSparsityPattern[col][row]] in the real (uncompressed) Jacobian
+
+		An example of compressed sparse rows format:
+			- Uncompressed matrix:	<br>
+		1	.5	0	<br>
+		.2	2	3	<br>
+		0	6	-.5	<br>
+			- Corresponding uip2_JacobianSparsityPattern:	<br>
+		2	0	1		<br>
+		3	0	1	2	<br>
+		2	1	2		<br>
+			- Corresponding dp3_JacobianValue:	<br>
+		2	1	.5		<br>
+		3	.2	2	3	<br>
+		2	6	-.5		<br>
+		*/
+		int RecoverD2Row_RowCompressedFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		/// Same as RecoverD2Row_RowCompressedFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Row_RowCompressedFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		/// Same as RecoverD2Row_RowCompressedFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		(*dp3_JacobianValue) should have the same structure as uip2_JacobianSparsityPattern
+		*/
+		int RecoverD2Row_RowCompressedFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a "Row-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers" (one-based indexing)
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		Note: In case of Jacobian (non-symmetric matrix), Sparse Solvers Format is equivalent to
+		one-based indexing, 3 array variation CSR format
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#table_79228E147DA0413086BEFF4EFA0D3F04
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int RecoverD2Row_SparseSolversFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Row_SparseSolversFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Row_SparseSolversFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Row_SparseSolversFormat_usermem(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int RecoverD2Row_SparseSolversFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a "Row-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+		http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		*/
+		int RecoverD2Row_CoordinateFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+//		int RecoverD2Row_CoordinateFormat_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Row_CoordinateFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Row_CoordinateFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+//		int RecoverD2Row_CoordinateFormat_unmanaged_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Row_CoordinateFormat_unmanaged(), except that memory allocation for output vector(s) is done by user. (OpenMP enabled)
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+//		int RecoverD2Row_CoordinateFormat_usermem_serial(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+		int RecoverD2Row_CoordinateFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+		//int RecoverD2Row_CoordinateFormat_usermem_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a "Column-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Return by recovery routine: double*** dp3_JacobianValue
+
+		Precondition:
+		- Column-wise Distance 2 coloring routine has been called.
+		- uip2_JacobianSparsityPattern (input) The Jacobian matrix must be stored in compressed sparse rows format
+		- dp3_JacobianValue (output) is just a pointer pointing to a 2D matrix (no memory allocated yet). This matrix will be created (memory will be allocated) by DirectRecover() and the pointer will be assigned to dp3_JacobianValue
+
+		Postcondition:
+		- dp3_JacobianValue points to a 2d matrix contains the numerical values of the Jacobian. Row Compressed Format is used
+		The memory allocated for this output vector is managed by ColPack. The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+
+		Return value: size of (*dp3_JacobianValue) array
+
+		About input parameters:
+		- This routine doesn't take (Column-wise Distance 2) coloring result m_vi_RightVertexColors of the Jacobian as another paramenter because that information is known already (because of the 1st precondition).
+
+		Row Compressed Format for dp3_JacobianValue:
+		- This is a 2D matrix of doubles.
+		- The first element of each row will specify the number of non-zeros in the Jacobian => Value of the first element + 1 will be the length of that row.
+		- The value of each element after the 1st element is the value of the non-zero in the Jacobian. The value of dp3_JacobianValue[col][row] is the value of element [col][uip2_JacobianSparsityPattern[col][row]] in the real (uncompressed) Jacobian
+
+		An example of compressed sparse rows format:
+			- Uncompressed matrix:	<br>
+		1	.5	0	<br>
+		.2	2	3	<br>
+		0	6	-.5	<br>
+			- Corresponding uip2_JacobianSparsityPattern:	<br>
+		2	0	1		<br>
+		3	0	1	2	<br>
+		2	1	2		<br>
+			- Corresponding dp3_JacobianValue:	<br>
+		2	1	.5		<br>
+		3	.2	2	3	<br>
+		2	6	-.5		<br>
+		*/
+		int RecoverD2Cln_RowCompressedFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		int RecoverD2Cln_ADICFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, std::list<std::set<int> >& lsi_SparsityPattern, std::list<std::vector<double> > &lvd_NewValue);
+
+		/// Same as RecoverD2Cln_RowCompressedFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Cln_RowCompressedFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		/// Same as RecoverD2Cln_RowCompressedFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		(*dp3_JacobianValue) should have the same structure as uip2_JacobianSparsityPattern
+		*/
+		int RecoverD2Cln_RowCompressedFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a "Column-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers" (one-based indexing)
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		Note: In case of Jacobian (non-symmetric matrix), Sparse Solvers Format is equivalent to
+		one-based indexing, 3 array variation CSR format
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#table_79228E147DA0413086BEFF4EFA0D3F04
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int RecoverD2Cln_SparseSolversFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Cln_SparseSolversFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Cln_SparseSolversFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Cln_SparseSolversFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int RecoverD2Cln_SparseSolversFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a "Column-wise Distance 2 coloring"-based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+		http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int RecoverD2Cln_CoordinateFormat(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+//		int RecoverD2Cln_CoordinateFormat_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Cln_CoordinateFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int RecoverD2Cln_CoordinateFormat_unmanaged(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+//		int RecoverD2Cln_CoordinateFormat_unmanaged_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as RecoverD2Cln_CoordinateFormat_unmanaged(), except that memory allocation for output vector(s) is done by user. (OpenMP enabled)
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+//		int RecoverD2Cln_CoordinateFormat_usermem_serial(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+		int RecoverD2Cln_CoordinateFormat_usermem(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+		//int RecoverD2Cln_CoordinateFormat_usermem_OMP(BipartiteGraphPartialColoringInterface* g, double** dp2_CompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		// Compare 2 matrices in Coordinate Format. Return 1 if they are the same, return 0 if they are different
+		int CompareMatrix_CoordinateFormat_vs_CoordinateFormat(int i_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue, unsigned int** ip2_RowIndex2, unsigned int** ip2_ColumnIndex2, double** dp2_JacobianValue2);
+
+		// Compare 2 matrices (the first one in Coordinate Format and the second one in Row Compressed Format). Return 1 if they are the same, return 0 if they are different
+		// !!! not tested
+		int CompareMatrix_CoordinateFormat_vs_RowCompressedFormat(int i_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue, int rowCount2, unsigned int *** uip3_SparsityPattern, double*** dp3_Value);
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/Recovery/JacobianRecovery2D.cpp
@@ -0,0 +1,361 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+
+	int JacobianRecovery2D::DirectRecover_RowCompressedFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+
+		vector<int> RightVertexColors_Transformed;
+		g->GetRightVertexColors_Transformed(RightVertexColors_Transformed);
+
+		int i_ColumnColorCount = g->GetRightVertexColorCount();
+		if (g->GetRightVertexDefaultColor() == 1) i_ColumnColorCount--; //color ID 0 is used, ignore it
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[i_ColumnColorCount];
+			for(unsigned int j=0; j < (unsigned int)i_ColumnColorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic for right (column) vertices
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Jacobian: [i][uip2_JacobianSparsityPattern[i][j]]
+				//color of that column: RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0) {
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]++;
+				}
+			}
+		}
+
+		//Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix
+//cout<<"Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix"<<endl;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+//printf("Recover uip2_JacobianSparsityPattern[%d][%d] = %d \n", i, j, uip2_JacobianSparsityPattern[i][j]);
+				// Check and see if we can recover the value from dp2_ColumnCompressedMatrix first
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0 &&
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] - 1]==1
+					) {
+//printf("\t from COLUMN [%d][%d] = %7.2f \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1, dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]);
+//printf("\t from COLUMN [%d][%d] \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1);
+					(*dp3_JacobianValue)[i][j] = dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1];
+				}
+				else { // If not, then use dp2_RowCompressedMatrix
+//printf("\t from ROW [%d][%d] = %7.2f \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j], dp2_RowCompressedMatrix[m_vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]]);
+//printf("\t from ROW [%d][%d] \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j]);
+					(*dp3_JacobianValue)[i][j] = dp2_RowCompressedMatrix[vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]];
+				}
+			}
+
+		}
+//cout<<"DONE"<<endl;
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return rowCount;
+	}
+
+	int JacobianRecovery2D::DirectRecover_RowCompressedFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+
+		//allocate memory for *dp3_JacobianValue. The dp3_JacobianValue and uip2_JacobianSparsityPattern matrices should have the same size
+//cout<<"allocate memory for *dp3_JacobianValue"<<endl;
+		*dp3_JacobianValue = (double**) malloc(rowCount * sizeof(double*));
+		for(int i=0; i < rowCount; i++) {
+			int numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			(*dp3_JacobianValue)[i] = (double*) malloc( (numOfNonZeros+1) * sizeof(double) );
+			(*dp3_JacobianValue)[i][0] = numOfNonZeros; //initialize value of the 1st entry
+			for(int j=1; j <= numOfNonZeros; j++) (*dp3_JacobianValue)[i][j] = 0.; //initialize value of other entries
+		}
+
+		return DirectRecover_RowCompressedFormat_usermem(g, dp2_RowCompressedMatrix, dp2_ColumnCompressedMatrix, uip2_JacobianSparsityPattern, dp3_JacobianValue);
+	}
+
+	int JacobianRecovery2D::DirectRecover_RowCompressedFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue) {
+		int returnValue = DirectRecover_RowCompressedFormat_unmanaged(g,  dp2_RowCompressedMatrix,  dp2_ColumnCompressedMatrix,  uip2_JacobianSparsityPattern,  dp3_JacobianValue);
+
+		if(AF_available) {
+			//cout<<"AF_available="<<AF_available<<endl; Pause();
+			reset();
+		}
+
+
+		AF_available = true;
+		i_AF_rowCount = g->GetRowVertexCount();
+		dp2_AF_Value = *dp3_JacobianValue;
+
+		return returnValue;
+	}
+
+//*/
+
+
+	int JacobianRecovery2D::DirectRecover_SparseSolversFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+
+		//Making the array indices to start at 0 instead of 1
+		for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		  (*ip2_RowIndex)[i]--;
+		}
+		for(unsigned int i=0; i < (unsigned int)g->GetEdgeCount(); i++) {
+		  (*ip2_ColumnIndex)[i]--;
+		}
+
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+
+		vector<int> RightVertexColors_Transformed;
+		g->GetRightVertexColors_Transformed(RightVertexColors_Transformed);
+
+		int i_ColumnColorCount = g->GetRightVertexColorCount();
+		if (g->GetRightVertexDefaultColor() == 1) i_ColumnColorCount--; //color ID 0 is used, ignore it
+
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[i_ColumnColorCount];
+			for(unsigned int j=0; j < (unsigned int)i_ColumnColorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic for right (column) vertices
+		unsigned int numOfNonZeros = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZeros = (unsigned int)uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+				//non-zero in the Jacobian: [i][uip2_JacobianSparsityPattern[i][j]]
+				//color of that column: RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0) {
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]++;
+				}
+			}
+		}
+
+
+
+		//Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix
+//cout<<"Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix"<<endl;
+		unsigned int numOfNonZerosInEachRow = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			numOfNonZerosInEachRow = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZerosInEachRow; j++) {
+//printf("Recover uip2_JacobianSparsityPattern[%d][%d] = %d \n", i, j, uip2_JacobianSparsityPattern[i][j]);
+				// Check and see if we can recover the value from dp2_ColumnCompressedMatrix first
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0 &&
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] - 1]==1
+					) {
+//printf("\t from COLUMN [%d][%d] = %7.2f \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1, dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]);
+//printf("\t from COLUMN [%d][%d] \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1);
+					(*dp2_JacobianValue)[(*ip2_RowIndex)[i]+j-1] = dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1];
+				}
+				else { // If not, then use dp2_RowCompressedMatrix
+//printf("\t from ROW [%d][%d] = %7.2f \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j], dp2_RowCompressedMatrix[m_vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]]);
+//printf("\t from ROW [%d][%d] \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j]);
+					(*dp2_JacobianValue)[(*ip2_RowIndex)[i]+j-1] = dp2_RowCompressedMatrix[vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]];
+				}
+			}
+
+		}
+//cout<<"DONE"<<endl;
+
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < (unsigned int)g->GetEdgeCount(); i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return rowCount;
+	}
+
+	int JacobianRecovery2D::DirectRecover_SparseSolversFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+
+		// Allocate memory and populate ip2_RowIndex and ip2_ColumnIndex
+		g->GetRowVertices(ip2_RowIndex);
+		unsigned int numOfNonZeros = g->GetColumnIndices(ip2_ColumnIndex);
+
+		//Making the array indices to start at 1 instead of 0 to conform with theIntel MKL sparse storage scheme for the direct sparse solvers
+		for(unsigned int i=0; i <= (unsigned int) rowCount ; i++) {
+		  (*ip2_RowIndex)[i]++;
+		}
+		for(unsigned int i=0; i < numOfNonZeros; i++) {
+		  (*ip2_ColumnIndex)[i]++;
+		}
+
+		//cout<<"allocate memory for *dp2_JacobianValue rowCount="<<rowCount<<endl;
+		//printf("i=%d\tnumOfNonZeros=%d \n", i, numOfNonZeros);
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+		for(unsigned int i=0; i < numOfNonZeros; i++) (*dp2_JacobianValue)[i] = 0.; //initialize value of other entries
+
+		return DirectRecover_SparseSolversFormat_usermem(g, dp2_RowCompressedMatrix, dp2_ColumnCompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+
+	int JacobianRecovery2D::DirectRecover_SparseSolversFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = DirectRecover_SparseSolversFormat_unmanaged(g,  dp2_RowCompressedMatrix,  dp2_ColumnCompressedMatrix,  uip2_JacobianSparsityPattern,  ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(SSF_available) {
+			//cout<<"SSF_available="<<SSF_available<<endl; Pause();
+			reset();
+		}
+
+		SSF_available = true;
+		i_SSF_rowCount = g->GetRowVertexCount();
+		ip_SSF_RowIndex = *ip2_RowIndex;
+		ip_SSF_ColumnIndex = *ip2_ColumnIndex;
+		dp_SSF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+
+//*/
+
+
+
+	int JacobianRecovery2D::DirectRecover_CoordinateFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		int rowCount = g->GetRowVertexCount();
+
+		vector<int> vi_LeftVertexColors;
+		g->GetLeftVertexColors(vi_LeftVertexColors);
+
+		vector<int> RightVertexColors_Transformed;
+		g->GetRightVertexColors_Transformed(RightVertexColors_Transformed);
+
+		int i_ColumnColorCount = g->GetRightVertexColorCount();
+		if (g->GetRightVertexDefaultColor() == 1) i_ColumnColorCount--; //color ID 0 is used, ignore it
+
+		//Do (column-)color statistic for each row, i.e., see how many elements in that row has color 0, color 1 ...
+		int** colorStatistic = new int*[rowCount];	//color statistic for each row. For example, colorStatistic[0] is color statistic for row 0
+													//If row 0 has 5 columns with color 3 => colorStatistic[0][3] = 5;
+		//Allocate memory for colorStatistic[rowCount][colorCount] and initilize the matrix
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			colorStatistic[i] = new int[i_ColumnColorCount];
+			for(unsigned int j=0; j < (unsigned int)i_ColumnColorCount; j++) colorStatistic[i][j] = 0;
+		}
+
+		//populate colorStatistic for right (column) vertices
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			int numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= (unsigned int)numOfNonZeros; j++) {
+				//non-zero in the Jacobian: [i][uip2_JacobianSparsityPattern[i][j]]
+				//color of that column: m_vi_RightVertexColors[uip2_JacobianSparsityPattern[i][j]]-1
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0) {
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]++;
+				}
+			}
+		}
+
+		//Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix
+//cout<<"Recover value of the Jacobian from dp2_ColumnCompressedMatrix (priority) and dp2_RowCompressedMatrix"<<endl;
+		unsigned int numOfNonZeros_count = 0;
+		for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+			unsigned int numOfNonZeros = uip2_JacobianSparsityPattern[i][0];
+			for(unsigned int j=1; j <= numOfNonZeros; j++) {
+//printf("Recover uip2_JacobianSparsityPattern[%d][%d] = %d \n", i, j, uip2_JacobianSparsityPattern[i][j]);
+				// Check and see if we can recover the value from dp2_ColumnCompressedMatrix first
+				if (RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] > 0 &&
+					colorStatistic[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]] - 1]==1
+					) {
+//printf("\t from COLUMN [%d][%d] = %7.2f \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1, dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1]);
+//printf("\t from COLUMN [%d][%d] \n",i, RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1);
+					(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_ColumnCompressedMatrix[i][RightVertexColors_Transformed[uip2_JacobianSparsityPattern[i][j]]-1];
+				}
+				else { // If not, then use dp2_RowCompressedMatrix
+//printf("\t from ROW [%d][%d] = %7.2f \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j], dp2_RowCompressedMatrix[m_vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]]);
+//printf("\t from ROW [%d][%d] \n",m_vi_LeftVertexColors[i]-1, uip2_JacobianSparsityPattern[i][j]);
+					(*dp2_JacobianValue)[numOfNonZeros_count] = dp2_RowCompressedMatrix[vi_LeftVertexColors[i]-1][uip2_JacobianSparsityPattern[i][j]];
+				}
+				(*ip2_RowIndex)[numOfNonZeros_count] = i;
+				(*ip2_ColumnIndex)[numOfNonZeros_count] = uip2_JacobianSparsityPattern[i][j];
+				numOfNonZeros_count++;
+			}
+
+		}
+//cout<<"DONE"<<endl;
+
+		free_2DMatrix(colorStatistic, rowCount);
+		colorStatistic = NULL;
+
+		return numOfNonZeros_count;
+	}
+
+	int JacobianRecovery2D::DirectRecover_CoordinateFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		if(g==NULL) {
+			cerr<<"g==NULL"<<endl;
+			return _FALSE;
+		}
+
+		unsigned int numOfNonZeros = g->GetEdgeCount();
+		(*ip2_RowIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*ip2_ColumnIndex) = (unsigned int*) malloc(numOfNonZeros * sizeof(unsigned int));
+		(*dp2_JacobianValue) = (double*) malloc(numOfNonZeros * sizeof(double)); //allocate memory for *dp2_JacobianValue.
+
+		return DirectRecover_CoordinateFormat_usermem(g, dp2_RowCompressedMatrix, dp2_ColumnCompressedMatrix, uip2_JacobianSparsityPattern, ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue);
+	}
+
+	int JacobianRecovery2D::DirectRecover_CoordinateFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue) {
+		int returnValue = DirectRecover_CoordinateFormat_unmanaged(g, dp2_RowCompressedMatrix, dp2_ColumnCompressedMatrix,  uip2_JacobianSparsityPattern, ip2_RowIndex,  ip2_ColumnIndex,  dp2_JacobianValue);
+
+		if(CF_available) reset();
+
+		CF_available = true;
+		i_CF_rowCount = g->GetRowVertexCount();
+		ip_CF_RowIndex = *ip2_RowIndex;
+		ip_CF_ColumnIndex = *ip2_ColumnIndex;
+		dp_CF_Value = *dp2_JacobianValue;
+
+		return returnValue;
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Recovery/JacobianRecovery2D.h
@@ -0,0 +1,149 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef JACOBIANRECOVERY2D_H
+#define JACOBIANRECOVERY2D_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group5
+	 *  @brief class JacobianRecovery2D in @link group5@endlink.
+	 */
+	class JacobianRecovery2D : public RecoveryCore
+	{
+	public: //DOCUMENTED
+
+		/// A routine for recovering a Jacobian from a Star-Bicoloring based compressed representation.
+		/**
+		Parameter:
+		- Input:
+			- dp2_RowCompressedMatrix: The row compressed matrix that contains all computed values. Row compressed matrix is the matrix where all rows with the same color ID (the values of m_vi_LeftVertexColors[] are equal) are merged together.
+			- dp2_ColumnCompressedMatrix: The column compressed matrix that contains all computed values. Column compressed matrix is the matrix where all columns with the same color ID (the values of m_vi_RightVertexColors[] are equal) are merged together.
+			- uip2_JacobianSparsityPattern.
+		- Output:
+			- dp3_JacobianValue
+
+		Precondition:
+		- Star Bicoloring routine has been called.
+		- uip2_JacobianSparsityPattern: The Jacobian matrix must be stored in compressed sparse rows format
+		- dp3_JacobianValue is just a pointer pointing to a 2D matrix (no memory allocated yet). This matrix will be created (memory will be allocated) by DirectRecover() and the pointer will be assigned to dp3_JacobianValue
+
+		Postcondition:
+		- dp3_JacobianValue points to a 2d matrix contains the numerical values of the Jacobian. Row Compressed Format is used.
+		The memory allocated for this output vector is managed by ColPack. The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+
+		Return value: size of (*dp3_JacobianValue) array
+
+		About input parameters:
+		- This routine doesn't need to take (Star) Bicoloring results (m_vi_LeftVertexColors and m_vi_RightVertexColors) of the Jacobian as another paramenter because that information is known internally already (because of the 1st precondition).
+
+		Row Compressed Format for dp3_JacobianValue:
+		- This is a 2D matrix of doubles.
+		- The first element of each row will specify the number of non-zeros in the Jacobian => Value of the first element + 1 will be the length of that row.
+		- The value of each element after the 1st element is the value of the non-zero in the Jacobian. The value of dp3_JacobianValue[col][row] is the value of element [col][uip2_JacobianSparsityPattern[col][row]] in the real (uncompressed) Jacobian
+		- An example of compressed sparse rows format:
+			- Uncompressed matrix:	<br>
+		1	.5	0	<br>
+		.2	2	3	<br>
+		0	6	-.5	<br>
+			- Corresponding uip2_JacobianSparsityPattern:	<br>
+		2	0	1		<br>
+		3	0	1	2	<br>
+		2	1	2		<br>
+			- Corresponding dp3_JacobianValue:	<br>
+		2	1	.5		<br>
+		3	.2	2	3	<br>
+		2	6	-.5		<br>
+
+		Algorithm: Basically the combination of RecoverForPD2RowWise() (for dp2_RowCompressedMatrix) and RecoverForPD2ColumnWise() (for dp2_ColumnCompressedMatrix) in BipartiteGraphPartialColoringInterface class
+		*/
+		int DirectRecover_RowCompressedFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		/// Same as DirectRecover_RowCompressedFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_RowCompressedFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+		/// Same as DirectRecover_RowCompressedFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		(*dp3_JacobianValue) should have the same structure as uip2_JacobianSparsityPattern
+		*/
+		int DirectRecover_RowCompressedFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, double*** dp3_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a Star-Bicoloring based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Coordinate Format" (zero-based indexing)
+		http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_5
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int DirectRecover_CoordinateFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as DirectRecover_CoordinateFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_CoordinateFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as DirectRecover_CoordinateFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int DirectRecover_CoordinateFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+
+		/// A routine for recovering a Jacobian from a Star-Bicoloring based compressed representation.
+		/**
+		Precondition:
+		- (*ip2_RowIndex), (*ip2_ColumnIndex), and (*dp2_JacobianValue) are equal to NULL, i.e. no memory has been allocated for these 3 vectors yet
+
+		Return value: size of (*ip2_RowIndex) array
+
+		Return by recovery routine: three vectors in "Storage Formats for the Direct Sparse Solvers" (one-based indexing)
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#mkl_appA_SMSF_1
+		- unsigned int** ip2_RowIndex
+		- unsigned int** ip2_ColumnIndex
+		- double** dp2_JacobianValue // corresponding non-zero values
+		Note: In case of Jacobian (non-symmetric matrix), Sparse Solvers Format is equivalent to
+		one-based indexing, 3 array variation CSR format
+		http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html#table_79228E147DA0413086BEFF4EFA0D3F04
+
+		The memory allocated for these 3 output vectors are managed by ColPack.	The memory will be deallocated when this function is called again or when the Recovery ojbect is deallocated.
+		//*/
+		int DirectRecover_SparseSolversFormat(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as DirectRecover_SparseSolversFormat(), except that the output is NOT managed by ColPack
+		/** Notes:
+		- The output is NOT managed by ColPack. Therefore, the user should free the output manually using free() (NOT delete) function when it is no longer needed.
+		*/
+		int DirectRecover_SparseSolversFormat_unmanaged(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+		/// Same as DirectRecover_SparseSolversFormat_unmanaged(), except that memory allocation for output vector(s) is done by user.
+		/** Notes:
+		- This function will assume the user has properly allocate memory output vector(s).
+		No checking will be done so if you got a SEGMENTATION FAULT in this function, you should check and see if you have allocated memory properly for the output vector(s).
+		*/
+		int DirectRecover_SparseSolversFormat_usermem(BipartiteGraphBicoloringInterface* g, double** dp2_RowCompressedMatrix, double** dp2_ColumnCompressedMatrix, unsigned int ** uip2_JacobianSparsityPattern, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex, double** dp2_JacobianValue);
+
+	};
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/Recovery/RecoveryCore.cpp
@@ -0,0 +1,120 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	RecoveryCore::RecoveryCore() {
+		//formatType = "UNKNOWN";
+
+		//for ADOL-C Format (AF)
+		AF_available = false;
+		i_AF_rowCount = 0;
+		dp2_AF_Value = NULL;
+
+		//for Sparse Solvers Format (SSF)
+		SSF_available = false;
+		i_SSF_rowCount = 0;
+		ip_SSF_RowIndex = NULL;
+		ip_SSF_ColumnIndex = NULL;
+		dp_SSF_Value = NULL;
+
+		//for Coordinate Format (CF)
+		CF_available = false;
+		i_CF_rowCount = 0;
+		ip_CF_RowIndex = NULL;
+		ip_CF_ColumnIndex = NULL;
+		dp_CF_Value = NULL;
+	}
+
+	void RecoveryCore::reset() {
+
+		//for ADOL-C Format (AF)
+		if (AF_available) {
+			//free_2DMatrix(dp2_AF_Value, i_AF_rowCount);
+			for( int i=0; i < i_AF_rowCount; i++ ) {
+			    free( dp2_AF_Value[i] );
+			}
+			free( dp2_AF_Value );
+
+			dp2_AF_Value = NULL;
+			AF_available = false;
+			i_AF_rowCount = 0;
+		}
+
+		//for Sparse Solvers Format (SSF)
+		if (SSF_available) {
+			//delete[] ip_SSF_RowIndex;
+			free(ip_SSF_RowIndex);
+			ip_SSF_RowIndex = NULL;
+			//delete[] ip_SSF_ColumnIndex;
+			free(ip_SSF_ColumnIndex);
+			ip_SSF_ColumnIndex = NULL;
+			//delete[] dp_SSF_Value;
+			free(dp_SSF_Value);
+			dp_SSF_Value = NULL;
+			SSF_available = false;
+			i_SSF_rowCount = 0;
+		}
+
+		//for Coordinate Format (CF)
+		if (CF_available) {
+			//do something
+			//delete[] ip_CF_RowIndex;
+			free(ip_CF_RowIndex);
+			ip_CF_RowIndex = NULL;
+			//delete[] ip_CF_ColumnIndex;
+			free(ip_CF_ColumnIndex);
+			ip_CF_ColumnIndex = NULL;
+			//delete[] dp_CF_Value;
+			free(dp_CF_Value);
+			dp_CF_Value = NULL;
+			CF_available = false;
+			i_CF_rowCount = 0;
+		}
+
+		//formatType = "UNKNOWN";
+	}
+
+	RecoveryCore::~RecoveryCore() {
+
+		//for ADOL-C Format (AF)
+		if (AF_available) {
+			//do something
+			//free_2DMatrix(dp2_AF_Value, i_AF_rowCount);
+
+			for( int i=0; i < i_AF_rowCount; i++ ) {
+			    free( dp2_AF_Value[i] );
+			}
+			free( dp2_AF_Value );
+		}
+
+		//for Sparse Solvers Format (SSF)
+		if (SSF_available) {
+			//do something
+			//delete[] ip_SSF_RowIndex;
+			free(ip_SSF_RowIndex);
+			//delete[] ip_SSF_ColumnIndex;
+			free(ip_SSF_ColumnIndex);
+			//delete[] dp_SSF_Value;
+			free(dp_SSF_Value);
+		}
+
+		//for Coordinate Format (CF)
+		if (CF_available) {
+			//do something
+			//delete[] ip_CF_RowIndex;
+			free(ip_CF_RowIndex);
+			//delete[] ip_CF_ColumnIndex;
+			free(ip_CF_ColumnIndex);
+			//delete[] dp_CF_Value;
+			free(dp_CF_Value);
+		}
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Recovery/RecoveryCore.h
@@ -0,0 +1,71 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef RECOVERYCORE_H
+#define RECOVERYCORE_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group5
+	 *  @brief class RecoveryCore in @link group5@endlink.
+	 *
+	 * This class  will keep track of all the memories allocated and
+	 * its destructor will be responsible to destroy the memory allocated for
+	 * arrays/matrices of all the Recovery classes.
+	 *
+	 * This class currently supports matrices in one of the following three formats:
+	 * RowCompressedFormat (AF), CoordinateFormat (CF), and SparseSolversFormat (SSF)
+	 *
+	 * For one graph, you can call the Recovery routine once for each format.
+	 * Calling the same recovery function twice will make this class reset() (see the example below):
+	 *
+	 * Matrix in a particular format is generated when the Recovery routine of the corresponding format is called.
+	 * For example, here is one possible sequence:
+	 * 		JacobianRecovery1D jr1d; // create an oject of subclass of RecoveryCore
+	 * 		jr1d.RecoverD2Row_RowCompressedFormat(graph1 , ...); // output matrix in ADOLC Format is generated
+	 * 		jr1d.RecoverD2Row_SparseSolversFormat(graph1 , ...); // output matrix in Sparse Solvers Format is generated
+	 * 		jr1d.RecoverD2Row_CoordinateFormat(graph1 , ...); // output matrix in Coordinate Format is generated
+	 *
+	 * 		// Matrices in all 3 formats will be deallocated, a new output matrix in Coordinate Format is generated
+	 * 		// Here, because the user call RecoverD2Row_CoordinateFormat() for the second time,
+	 * 		// we assume that the user have a new graph, so clean up old matrices is necessary.
+	 * 		// Note: DO NOT call the same recovery function twice unless you have a new graph!!!
+	 * 		jr1d.RecoverD2Row_CoordinateFormat(graph2 , ...);
+	 */
+	class  RecoveryCore
+	{
+	public: // !!!NEED DOCUMENT
+		RecoveryCore();
+		~RecoveryCore();
+	protected:
+		//string formatType; //At this point, could be either: "RowCompressedFormat," "CoordinateFormat," or "SparseSolversFormat"
+
+		//for ADOL-C Format (AF)
+		bool AF_available;
+		int i_AF_rowCount;
+		double** dp2_AF_Value;
+
+		//for Sparse Solvers Format (SSF)
+		bool SSF_available;
+		int i_SSF_rowCount;
+		unsigned int* ip_SSF_RowIndex;
+		unsigned int* ip_SSF_ColumnIndex;
+		double* dp_SSF_Value;
+
+		//for Coordinate Format (CF)
+		bool CF_available;
+		int i_CF_rowCount;
+		unsigned int* ip_CF_RowIndex;
+		unsigned int* ip_CF_ColumnIndex;
+		double* dp_CF_Value;
+
+		void reset();
+	};
+}
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGC.cpp
@@ -0,0 +1,27 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGC.h"
+
+const std::string SMPGC::FORMAT_MM = "MM";
+const std::string SMPGC::FORMAT_BINARY= "BINARY";
+
+const int SMPGC::RAND_SEED          ;
+const int SMPGC::HASH_SEED          ;
+const int SMPGC::HASH_SHIFT         ;
+const int SMPGC::HASH_NUM_HASH      ;
+
+const int SMPGC::ORDER_NONE         ;
+const int SMPGC::ORDER_NATURAL      ;
+const int SMPGC::ORDER_RANDOM       ;
+const int SMPGC::ORDER_LARGEST_FIRST;
+const int SMPGC::ORDER_SMALLEST_LAST;
+
+const int SMPGC::HYBRID_GM3P        ;
+const int SMPGC::HYBRID_GMMP        ;
+const int SMPGC::HYBRID_SERIAL      ;
+const int SMPGC::HYBRID_STREAM      ;
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGC.h
@@ -0,0 +1,88 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+******************************************************************************/
+
+
+#ifndef SMPGCDEFINE_H
+#define SMPGCDEFINE_H
+#include <string>
+// ============================================================================
+// SMPGC: Shared Memory Parallel Graph Coloring
+// ----------------------------------------------------------------------------
+// **OVERVIEW**
+//
+// SMPGCCore:                        Graph data, IO
+//     |->SMPGCOrdering:             Ordering
+//          |-> SMPGCColoring:       D1 Coloring
+//          |-> D2SMPGCColoring:     D2 Coloring
+//
+// ----------------------------------------------------------------------------
+// **LIST OF ALGORITHMS**
+// * GM's Algorithm: Gebremedhin and Manne[1].
+// * IP's Algorithm: Catalyurek Feo Gebremedhin and Halappanavar[2]
+// * JP's Algorithm: Jones and Plassmann[3]
+// * Luby's Alg
+// ...
+// ...
+// ----------------------------------------------------------------------------
+// **LIST OF PAPERS**
+// [1] Scalable Parallel Graph Coloring Algorithms
+// [2] Grah coloring algorithms for multi-core and massively multithreaded architectures
+// [3] A Parallel Graph Coloring Heuristic
+// ...
+// ...
+// ============================================================================
+
+class SMPGC{
+//public: // in comman Computer is LP64 Model. change the following in case not. 
+    //typedef unsigned long long int uint64;
+    //typedef          long long int  int64;
+    //typedef unsigned int           uint32;
+    //typedef          int            int32;
+    //#ifndef INT32
+    //    typedef uint64 UINT;
+    //    typedef int64  INT ;
+    //#else
+    //    typedef uint32 UINT;
+    //    typedef int32  INT;
+    //#endif
+
+public:
+    static const int RAND_SEED           = 5489u;
+
+    static const int HASH_SEED           = 5489u;
+    static const int HASH_SHIFT          = 0XC2A50F;
+    static const int HASH_NUM_HASH       = 4;
+
+    static const std::string FORMAT_MM   ;
+    static const std::string FORMAT_BINARY;
+
+    static const int ORDER_NONE          = 0;
+    static const int ORDER_NATURAL       = 1;
+    static const int ORDER_RANDOM        = 2;
+    static const int ORDER_LARGEST_FIRST = 3;
+    static const int ORDER_SMALLEST_LAST = 4;
+
+    static const int HYBRID_GM3P         = 1;
+    static const int HYBRID_GMMP         = 2;
+    static const int HYBRID_SERIAL       = 3;
+    static const int HYBRID_STREAM       = 4;
+
+
+public:
+    SMPGC(){};
+    ~SMPGC(){};
+public:
+    SMPGC(SMPGC&&)=delete;
+    SMPGC(const SMPGC&)=delete;
+    SMPGC& operator=(SMPGC&&)=delete;
+    SMPGC& operator=(const SMPGC&)=delete;
+};
+
+
+
+#endif
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoring.cpp
@@ -0,0 +1,341 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGCColoring.h"
+#include <chrono> //c++11 system time
+#include <random> //c++11 random
+using namespace std;
+using namespace ColPack;
+#include <unordered_map>
+#include <unordered_set>
+// ============================================================================
+// Interface
+// ============================================================================
+int SMPGCColoring::Coloring(int nT, const string& method, const int switch_iter=0){
+    //Method follows the following pattern:
+    //
+    //"  DISTANCE_ONE_OMP_                                                "
+    //"                   <GM3P/GMMP/SERIAL/JP/MTJP>[_<LF/SL/NT/RD/NONE>] "
+    //"                   HB[MT]JP_<GM3P/GMMP/SERIAL>[_<LF/SL/NT/RD/NONE>]"
+    //"  DISTANCE_TWO_OMP_                                                "
+    //"                   <GM3P/GMMP/SERIAL>[_<LF/SL/NT/RD/NONE>]         "
+    //
+    //For example
+    //  DISTANCE_ONE_OMP_GM3P_RD
+    //  DISTANCE_ONE_HBMTJP_SERIAL
+    //  DISTANCE_TWO_GM3P
+    //
+    if     (method.substr(0,7).compare("D1_OMP_")==0) {
+        // distance one coloring algorithms
+        const string mthd = method.substr(7);
+        auto iter_under_line = mthd.find('_');
+        if(iter_under_line==string::npos){
+            if     (mthd.compare("GM3P")==0) return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            else if(mthd.compare("GMMP")==0) return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            else if(mthd.compare("JP")  ==0) return D1_OMP_JP  (nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            else if(mthd.compare("MTJP")==0) return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            else if(mthd.compare("SERIAL")==0) return D1_serial(m_total_num_colors, m_vertex_color, ORDER_NONE);
+        }
+        else{
+            // local ordered algs or hybird algs,
+            string left = mthd.substr(0, iter_under_line+1);
+            string right= mthd.substr(iter_under_line+1);
+            if(left.compare("GM3P_")==0) {
+                if     (right.compare("LF")==0)   return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("GMMP_")==0) {
+                if     (right.compare("LF")==0)   return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("JP_")==0) {
+                if     (right.compare("LF")==0)   return D1_OMP_JP(nT, m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_OMP_JP(nT, m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_OMP_JP(nT, m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_OMP_JP(nT, m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_OMP_JP(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("MTJP_")==0) {
+                if     (right.compare("LF")==0)   return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_OMP_MTJP(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("LB_")==0) {
+                if     (right.compare("LF")==0)   return D1_OMP_LB(nT, m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_OMP_LB(nT, m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_OMP_LB(nT, m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_OMP_LB(nT, m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_OMP_LB(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("SERIAL_")==0) {
+                if     (right.compare("LF")==0)   return D1_serial(m_total_num_colors, m_vertex_color, ORDER_LARGEST_FIRST);
+                else if(right.compare("SL")==0)   return D1_serial(m_total_num_colors, m_vertex_color, ORDER_SMALLEST_LAST);
+                else if(right.compare("NT")==0)   return D1_serial(m_total_num_colors, m_vertex_color, ORDER_NATURAL);
+                else if(right.compare("RD")==0)   return D1_serial(m_total_num_colors, m_vertex_color, ORDER_RANDOM);
+                else if(right.compare("NONE")==0) return D1_serial(m_total_num_colors, m_vertex_color, ORDER_NONE);
+            }
+            else if(left.compare("HBJP_")==0) {
+                int local_order=ORDER_NONE;
+                iter_under_line = right.find('-');
+                if(iter_under_line==string::npos){
+                    left = "";
+                    right.swap(left);
+                    local_order = ORDER_NONE;
+                }
+                else{
+                    left  = right.substr(0, iter_under_line);
+                    right = right.substr(iter_under_line+1); 
+                    if     (right.compare("LF")==0)   local_order=ORDER_LARGEST_FIRST;
+                    else if(right.compare("SL")==0)   local_order=ORDER_SMALLEST_LAST;
+                    else if(right.compare("NT")==0)   local_order=ORDER_NATURAL;
+                    else if(right.compare("RD")==0)   local_order=ORDER_RANDOM;
+                    else if(right.compare("NONE")==0) local_order=ORDER_NONE;
+                    else { printf("Error local_order '%s' in method '%s' is not supported.\n", right.c_str(), method.c_str()); exit(1);}
+                }
+                if     (left.compare("GM3P")==0) return D1_OMP_HBJP(nT, m_total_num_colors, m_vertex_color, local_order, HYBRID_GM3P, switch_iter);
+                else if(left.compare("GMMP")==0) return D1_OMP_HBJP(nT, m_total_num_colors, m_vertex_color, local_order, HYBRID_GMMP, switch_iter);
+                else if(left.compare("SERIAL")==0) return D1_OMP_HBJP(nT, m_total_num_colors, m_vertex_color, local_order, HYBRID_GMMP, switch_iter);
+            }
+            else if(left.compare("HBMTJP_")==0) {
+                int local_order=ORDER_NONE;
+                iter_under_line = right.find('-');
+                if(iter_under_line==string::npos){
+                    left = "";
+                    right.swap(left);
+                    local_order = ORDER_NONE;
+                }
+                else{
+                    left  = right.substr(0, iter_under_line);
+                    right = right.substr(iter_under_line+1); 
+                    if     (right.compare("LF")==0)   local_order=ORDER_LARGEST_FIRST;
+                    else if(right.compare("SL")==0)   local_order=ORDER_SMALLEST_LAST;
+                    else if(right.compare("NT")==0)   local_order=ORDER_NATURAL;
+                    else if(right.compare("RD")==0)   local_order=ORDER_RANDOM;
+                    else if(right.compare("NONE")==0) local_order=ORDER_NONE;
+                    else { printf("Error local_order '%s' in method '%s' is not supported.\n", right.c_str(), method.c_str()); exit(1);}
+                }
+                if     (left.compare("GM3P"  )==0) return D1_OMP_HBMTJP(nT, m_total_num_colors, m_vertex_color, HYBRID_GM3P, switch_iter, local_order);
+                else if(left.compare("GMMP"  )==0) return D1_OMP_HBMTJP(nT, m_total_num_colors, m_vertex_color, HYBRID_GMMP, switch_iter, local_order);
+                else if(left.compare("SERIAL")==0) return D1_OMP_HBMTJP(nT, m_total_num_colors, m_vertex_color, HYBRID_GMMP, switch_iter, local_order);
+           
+            }
+        }
+        printf("Error \"D1_OMP_%s\" is not supported.\n", mthd.c_str());
+        exit(1);
+    }
+    else if(method.substr(0,7).compare("D2_OMP_")==0) {
+        // distance two coloring algorithms
+        const string mthd = method.substr(7);
+        const auto iter_under_line = mthd.find('_');
+        if(iter_under_line==string::npos){
+            if     (mthd.compare("GM3P")==0) return D2_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, ORDER_NONE);
+            else if(mthd.compare("GMMP")==0) return D2_OMP_GMMP(nT, m_total_num_colors, m_vertex_color);
+            else if(mthd.compare("SERIAL")==0) return D2_serial(m_total_num_colors, m_vertex_color);
+            else { printf("Error! method \"%s\" is not supported.\n", method.c_str()); exit(1); }
+        }
+        else{
+            string left = mthd.substr(0, iter_under_line);
+            string right= mthd.substr(iter_under_line+1);
+            int local_order = ORDER_NONE; 
+            if     (right.compare("LF")==0)   local_order=ORDER_LARGEST_FIRST;
+            else if(right.compare("SL")==0)   local_order=ORDER_SMALLEST_LAST;
+            else if(right.compare("NT")==0)   local_order=ORDER_NATURAL;
+            else if(right.compare("RD")==0)   local_order=ORDER_RANDOM;
+            else if(right.compare("NONE")==0) local_order=ORDER_NONE;
+            else { printf("Error! method \"%s\" in \"%s\" is not support.\n", right.c_str(), method.c_str()); exit(1); }
+
+            if     (left.compare("GM3P")==0) 
+                return D2_OMP_GM3P(nT, m_total_num_colors, m_vertex_color, local_order);
+            else if(left.compare("GMMP")==0)
+                return D2_OMP_GMMP(nT, m_total_num_colors, m_vertex_color, local_order);
+        }
+        printf("Error! method \"%s\" with \"%s\" is not support.\n", method.c_str(), mthd.c_str());
+        exit(1);
+    }
+    else{
+        printf("Error! method \"%s\" is not supported.\n", method.c_str());
+        exit(1);
+    }
+} //end function
+
+// ============================================================================
+// Construction
+// ============================================================================
+SMPGCColoring::SMPGCColoring(const string& graph_name)
+: SMPGCOrdering(graph_name, FORMAT_MM, nullptr, "NATURAL", nullptr) {
+    m_vertex_color.reserve(num_nodes());
+    m_total_num_colors=0;
+}
+
+// ============================================================================
+// Construction
+// ============================================================================
+SMPGCColoring::SMPGCColoring(const string& graph_name, const string& fmt, double* iotime, const string& glb_order, double *ordtime) 
+: SMPGCOrdering(graph_name, fmt, iotime, glb_order, ordtime){
+    m_vertex_color.reserve(num_nodes());
+    m_total_num_colors=0;
+}
+
+
+// ============================================================================
+// check if the graph is correct colored
+// ============================================================================
+int SMPGCColoring::cnt_d1conflict(const vector<int>& vtxColorConst, bool bVerbose){
+    vector<int>         vtxColor(vtxColorConst);
+    const int N         = num_nodes();
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    
+    int n_uncolored=0;
+    int n_conflicts=0;
+    #pragma omp parallel reduction(+:n_conflicts), reduction(+:n_uncolored)
+    {
+        #pragma omp for
+        for(int v=0; v<N; v++) {
+            const int vc=vtxColor[v];
+            if(vc<0) {
+                n_uncolored++;
+                continue;
+            }
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const int w = vtxVal[iw];
+                if(v>=w) continue; // only check one side
+                if(vc == vtxColor[w] ) {
+                    vtxColor[w]=-1; // prevent further conflicts, however, since no synchronize used. May count more conflicts than actual.
+                    n_conflicts++;
+                    break;  
+                }
+            }
+        }
+    }
+    if(bVerbose && n_uncolored) printf("There are %d vertex uncolored\nThere are %d vertex has conflicts with other nodes.\n",n_uncolored, n_conflicts);
+    return n_uncolored+n_conflicts;
+}
+
+// ============================================================================
+// check the graph validation
+// ----------------------------------------------------------------------------
+// uncolored vertex will not conflict with any other vertex
+// ============================================================================
+int SMPGCColoring::cnt_d2conflict(const vector<int>&vtxColorConst, bool bVerbose) {
+    //do it serial
+    if(0)
+    {
+        vector<int> vtxColor(vtxColorConst);
+        const int N = num_nodes();
+        const vector<int>& vtxPtr = get_CSR_ia();
+        const vector<int>& vtxVal = get_CSR_ja();
+        
+        vector<int>                            uncolored_nodes;
+        unordered_map<int, unordered_set<int>> conflicts_nodes;
+
+        for(int v=0; v<N; v++){
+            const auto vc = vtxColor[v];
+            if(vc<0) { uncolored_nodes.push_back(v); continue; }
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){  // check d1 neighbors
+                const auto w = vtxVal[iw];
+                if( vc==vtxColor[w] ) 
+                    conflicts_nodes[ min(v,w) ].insert(max(v,w));
+            }
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) { 
+                const auto w = vtxVal[iw];
+                for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++){  // check d2 neighbors
+                    const auto u = vtxVal[iu];
+                    if(v==u) continue;
+                    if( vc == vtxColor[u])  
+                        conflicts_nodes[min(v,u)].insert(max(v,u));
+                }
+            }
+        }
+
+        if(bVerbose) {
+            printf("There is %d vertex uncolored\nThere is %d vertex conflicts with other nodes.\n", 
+                    (int)uncolored_nodes.size(), (int)conflicts_nodes.size());
+        }
+        if(!uncolored_nodes.empty()){
+            printf("uncolored_nodes[%d]: ", (int)uncolored_nodes.size());
+            for(int i=0; i<min((int)uncolored_nodes.size(), 10); i++) 
+                printf("\t%d", uncolored_nodes[i]);
+            printf("\n");
+        }
+        if(!conflicts_nodes.empty()){
+            printf("conflicts_nodes[%d]:\n", (int)conflicts_nodes.size());
+            int cnt_rows=0;
+            for(const auto &x : conflicts_nodes){
+                if(cnt_rows++>10) { 
+                    printf("...");
+                    break;
+                }
+                printf("[%d(%d)]:", x.first, vtxColor[x.first]);
+                int cnt_cols=0;
+                for(const auto &y : x.second) {
+                    if(cnt_cols++>10) {
+                        printf("...");
+                        break;
+                    }
+                    printf("\t%d(%d)",y, vtxColor[y]);
+                }
+                printf("\n");
+            }
+            printf("\n");
+        }
+        return uncolored_nodes.size()+conflicts_nodes.size();
+    }
+    // do it in parallel
+    vector<int>  vtxColor( vtxColorConst );
+    const int N = num_nodes();
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    int   n_conflicts = 0;
+    int   n_uncolored = 0;
+    
+    #pragma omp parallel reduction(+:n_conflicts), reduction(+: n_uncolored)
+    {
+        #pragma omp for
+        for(int v=0; v<N; v++){
+            const auto vc = vtxColor[v];
+            if(vc<0) { n_uncolored++; continue; }
+            bool b_visbad = false;
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){  // check d1 neighbors
+                const auto w = vtxVal[iw];
+                if( v>=w ) continue;   // only check one side
+                if( vc==vtxColor[w] ) { 
+                    n_conflicts ++;
+                    vtxColor[v]=-1;
+                    b_visbad = true;
+                    break;
+                }
+            }
+            for(int iw=vtxPtr[v]; b_visbad==false && iw!=vtxPtr[v+1]; iw++) { 
+                const auto w = vtxVal[iw];
+                for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++){  // check d2 neighbors
+                    const auto u = vtxVal[iu];
+                    if(v >= u) continue;
+                    if( vc == vtxColor[u]) {
+                        n_conflicts ++;
+                        vtxColor[v] =-1;
+                        b_visbad=true;
+                    }
+                }
+            }
+        }
+    }
+    if(bVerbose) {
+        printf("There is %d uncolored vertices.\nThere is %d vertices conflict with other nodes.\n", (int)n_uncolored, (int)n_conflicts);
+    }
+    return n_uncolored + n_conflicts;
+}
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoring.h
@@ -0,0 +1,119 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#ifndef SMPGCColoring_H
+#define SMPGCColoring_H
+#include <vector>
+#include <omp.h>
+#include "ColPackHeaders.h" //#include "GraphOrdering.h"
+#include "SMPGCOrdering.h"
+
+using namespace std;
+
+namespace ColPack {
+
+//=============================================================================
+// Shared Memeory Parallel (Greedy)/Graph Coloring -> SMPGC
+// ----------------------------------------------------------------------------
+// 
+// SMPGC includes three main algorithms
+// * GM's Algorithm: Gebremedhin and Manne[1].
+// * IP's Algorithm: Catalyurek Feo Gebremedhin and Halappanavar[2]
+// * JP's Algorithm: Jones and Plassmann[3]
+// * Luby's Alg
+// * JP-LF
+// * JP_SL
+// ----------------------------------------------------------------------------
+// [1] Scalable Parallel Graph Coloring Algorithms
+// [2] Grah coloring algorithms for multi-core and massively multithreaded architectures
+// [3] A Parallel Graph Coloring Heuristic
+//=============================================================================
+    
+
+// ============================================================================
+// Shared Memeory Parallel Greedy/Graph Coloring
+// ============================================================================
+class SMPGCColoring : public SMPGCOrdering {
+public: // Constructions
+    SMPGCColoring(const string& graph_name);
+    SMPGCColoring(const string& graph_name, const string& fmt, double*iotime=nullptr, const string&ord="NATURAL", double*ordtime=nullptr);
+    virtual ~SMPGCColoring(){}
+
+        // Deplete constructions
+        SMPGCColoring(SMPGCColoring&&)=delete;
+        SMPGCColoring(const SMPGCColoring&)=delete;
+        SMPGCColoring& operator=(SMPGCColoring&&)=delete;
+        SMPGCColoring& operator=(const SMPGCColoring&)=delete;
+
+public: // API
+    int Coloring(int nT, const string& method, const int switch_iter);
+    
+    int get_num_colors(){ return m_total_num_colors; } 
+    const vector<int>& get_vertex_colors() const { return m_vertex_color; }
+    void get_vertex_colors(vector<int>& x) { x.assign(m_vertex_color.begin(), m_vertex_color.end()); }
+
+    // original algorithms
+    int D1_OMP_GM3P_orig(int nT, int&color, vector<int>&vtxColors);
+    int D1_OMP_GMMP_orig(int nT, int&color, vector<int>&vtxColors);
+
+    // Algorithms 
+    int D1_serial(int &color, vector<int>&vtxColors, const int local_order);
+
+    int D1_OMP_GM3P(int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_GMMP(int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_LB  (int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_JP  (int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_MTJP(int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_HBJP  (int nT, int&color, vector<int>&vtxColors, const int option=HYBRID_SERIAL, const int swtich_iter=0, const int local_order=ORDER_NONE);
+    int D1_OMP_HBMTJP(int nT, int&color, vector<int>&vtxColors, const int option=HYBRID_SERIAL, const int switch_iter=0, const int local_order=ORDER_NONE);
+
+    int D1_OMP_GM3P_BIT(int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D1_OMP_GMMP_BIT(int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+   
+
+
+    // Algorithm for distance two coloring
+    int D2_serial(int &color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+
+    int D2_OMP_GM3P   (int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    int D2_OMP_GMMP   (int nT, int&color, vector<int>&vtxColors, const int local_order=ORDER_NONE);
+    
+    // inner Algorithm for Hybird 
+    inline void hybrid_GM3P(const int nT, vector<int>&vtxColors, vector<vector<int>>&Q, const int local_order=ORDER_NONE); 
+    inline void hybrid_GMMP(const int nT, vector<int>&vtxColors, vector<vector<int>>&Q, const int local_order=ORDER_NONE); 
+    inline void hybrid_Serial(vector<int>&vtxColors, vector<vector<int>>&Q, const int local_order=ORDER_NONE); 
+    
+
+public: // Utilites
+    int cnt_d1conflict(const vector<int>& vc, bool bVerbose=false);
+    int cnt_d2conflict(const vector<int>& vc, bool bVerbose=false);
+
+private:
+
+unsigned int mhash(unsigned int a, unsigned int seed){
+    a ^= seed;
+    a = (a + 0x7ed55d16) + (a << 12);
+    a = (a ^ 0xc761c23c) + (a >> 19);
+    a = (a + 0x165667b1) + (a << 5);
+    a = (a ^ 0xd3a2646c) + (a << 9);
+    a = (a + 0xfd7046c5) + (a << 3);
+    a = (a ^ 0xb55a4f09) + (a >> 16);
+    return a;
+}
+
+
+
+
+protected:
+    int         m_total_num_colors;
+    vector<int> m_vertex_color;
+    string      m_method;
+
+}; // end of class SMPGCColoring
+
+
+}// endof namespace ColPack
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoringD1.cpp
@@ -0,0 +1,894 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#include "SMPGCColoring.h"
+#include <chrono> //c++11 system time
+#include <random> //c++11 random
+using namespace std;
+using namespace ColPack;
+
+
+
+// ============================================================================
+// based on Gebremedhin and Manne's GM algorithm [1]
+// ============================================================================
+int SMPGCColoring::D1_serial(int&colors, vector<int>&vtxColors, const int local_order) {
+    omp_set_num_threads(1);
+    
+    //double tim_local_order=.0;
+    double tim_color      =.0;                     // run time
+    const int N               = num_nodes();   //number of vertex
+    const int BufSize         = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    vector<int> Q(const_ordered_vertex);  //copied to local memory
+
+    // phase pseudo color
+    tim_color =- omp_get_wtime();
+    {
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+
+        vector<int> Mask; Mask.assign(BufSize,-1);
+        for(const auto v : Q){
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc=vtxColors[vtxVal[iw]];
+                if( wc >= 0) 
+                    Mask[wc] = v;
+            } 
+            int c=0;
+            for (; c!=BufSize; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+            if(colors<c) colors=c;
+        }
+    } //end omp parallel
+    tim_color  += omp_get_wtime();    
+    colors++; //number of colors, 
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@D1Serial%s_c_T", order_tag.c_str());
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_color);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+// ============================================================================
+// based on Gebremedhin and Manne's GM algorithm [1]
+// ============================================================================
+int SMPGCColoring::D1_OMP_GM3P(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+    
+    //double tim_local_order=.0;
+    double tim_partition  =.0;
+    double tim_color      =.0;                     // run time
+    double tim_detect     =.0;                     // run time
+    double tim_recolor    =.0;                     // run time
+    double tim_total      =.0;                          // run time
+    double tim_maxc       =.0; 
+    
+    int    n_conflicts = 0;                     // Number of conflicts 
+
+    const int N               = num_nodes();   //number of vertex
+    const int BufSize         = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT); 
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_partition += omp_get_wtime();
+    
+
+    // phase pseudo color
+    tim_color =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        const int tid = omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+        
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+
+        vector<int> Mask; Mask.assign(BufSize,-1);
+        for(const auto v : Q){
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc=vtxColors[vtxVal[iw]];
+                if( wc >= 0) 
+                    Mask[wc] = v;
+            } 
+            int c=0;
+            for (; c!=BufSize; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+        }
+    } //end omp parallel
+    tim_color  += omp_get_wtime();    
+
+    // phase conflicts detection
+    tim_detect =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        int qsize = 0;
+        const int tid=omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+        for(int iv=0; iv<(signed)Q.size(); iv++) {
+            const auto v  = Q[iv];
+            const auto vc = vtxColors[v];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){ 
+                const auto w = vtxVal[iw];
+                if(v<w && vc == vtxColors[w]) {
+                    Q[qsize++] = v;
+                    vtxColors[v] = -1;  //Will prevent v from being in conflict in another pairing
+                    break;
+                } 
+            } 
+        }
+        Q.resize(qsize);
+    } //end omp parallel
+    tim_detect  += omp_get_wtime();
+   
+    // phase serial coloring remain part
+    tim_recolor =- omp_get_wtime();
+    {
+        vector<int> Mark; Mark.assign(BufSize, -1);
+        for(int tid=0; tid<nT; tid++){
+            for(const auto v : QQ[tid]){
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto wc = vtxColors[vtxVal[iw]];
+                    if(wc>=0) Mark[wc]=v;
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if( Mark[c]!=v)
+                        break;
+                vtxColors[v]=c;
+            }
+        }
+    }
+    tim_recolor += omp_get_wtime();
+
+    // get maximal colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors, 
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_recolor+tim_maxc;
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+  
+    printf("@GM3P%s_nT_c_T_T(lo+color)_Tdetect_Trecolor_TmaxC_nCnf_Tpart", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    //printf("\t%lf", tim_local_order);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_recolor);
+    printf("\t%lf", tim_maxc);
+    for(int i=0; i<nT; i++) n_conflicts+=QQ[i].size();
+    printf("\t%d", n_conflicts);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors, true)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+  
+    return true;   
+}
+
+
+
+
+// ============================================================================
+// based on Catalyurek et al 's IP algorithm [2]
+// ============================================================================
+int SMPGCColoring::D1_OMP_GMMP(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT); 
+
+    //double tim_local_order=.0;
+    double tim_partition  =.0;
+    double tim_total      =.0;
+    double tim_color      =.0;
+    double tim_detect     =.0;
+    double tim_maxc       =.0;                     // run time
+    int    n_loops        = 0;                     // number of iteration 
+    int    n_conflicts    = 0;                      // number of conflicts 
+    int    uncolored_nodes= 0;
+    const int N                = num_nodes();                    // number of vertex
+    const int BufSize          = max_degree()+1;         // maxDegree
+    const vector<int>& vtxPtr  = get_CSR_ia();     // ia of csr
+    const vector<int>& vtxVal  = get_CSR_ja();     // ja of csr
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+    colors=0;
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT;i++) 
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_partition += omp_get_wtime();
+
+
+    uncolored_nodes=N;
+    while(uncolored_nodes!=0){
+        // phase psedue color
+        tim_color -= omp_get_wtime();
+        #pragma omp parallel
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+            vector<int> Mark; Mark.assign(BufSize,-1);
+            for(const auto v : Q){
+                for(int iw = vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    const auto wc= vtxColors[w];
+                    if(wc>=0) 
+                        Mark[wc]=v;
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if(Mark[c]!=v)
+                        break;
+                vtxColors[v] = c;
+            } 
+        } //end omp parallel
+        tim_color += omp_get_wtime();
+        
+        //phase Detect Conflicts:
+        tim_detect -= omp_get_wtime();
+        uncolored_nodes=0;
+        #pragma omp parallel reduction(+:uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                const auto vc= vtxColors[v];
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    if(v<w && vc==vtxColors[w]){
+                        Q[uncolored_nodes++]=v;
+                        vtxColors[v] = -1;
+                        break;
+                    }
+                }
+            }
+            Q.resize(uncolored_nodes);
+        }
+        n_conflicts += uncolored_nodes;
+        n_loops++;
+        tim_detect += omp_get_wtime();
+    }
+
+    // get number of colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors = largest color(0-based) + 1
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_maxc;
+
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@GMMP%s_nT_c_T_T(Lo+Color)_TDetect_TMaxC_nCnf_nLoop", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    //printf("\t%lf", tim_local_order);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_maxc);
+    printf("\t%d",  n_conflicts);  
+    printf("\t%d",  n_loops);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");      
+    return true;
+}
+
+
+// ============================================================================
+// based on Luby's algorithm [3]
+// ============================================================================
+int SMPGCColoring::D1_OMP_LB(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+   
+    double tim_Ptt=0;    //partition time
+    double tim_Wgt=0;    //run time
+    double tim_MIS=0;    //run time
+    double tim_Tot=0;               //run time
+
+    int n_loops        =0;
+    int n_conflicts    =0;
+    int uncolored_nodes=0;
+
+    const int N               = num_nodes(); //number of vertex
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+    colors=0;
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_Ptt =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_Ptt += omp_get_wtime();
+
+    // generate random numbers
+    //mt19937 mt(std::chrono:system_clock::now().time_since_epoch().count()); //mt(12345);
+    srand(RAND_SEED);
+    tim_Wgt =-omp_get_wtime();
+    vector<int> WeightRnd(N);
+    for(int i=0; i<N; i++) WeightRnd[i]=i;
+    std::random_shuffle(WeightRnd.begin(), WeightRnd.end());
+    //if(N>1) for(int i=0; i<N-1; i++) { uniform_int_distribution<int> dist(i, N-1); swap(WeightRnd[i], WeightRnd[dist(mt)]); }
+    tim_Wgt +=omp_get_wtime();
+    
+    tim_MIS -= omp_get_wtime();
+    uncolored_nodes = N;
+    while(uncolored_nodes!=0) {
+        // phase find maximal indenpend set
+        uncolored_nodes = 0;
+        #pragma omp parallel reduction(+: uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order 
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            vector<int> candi;
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                if(vtxColors[v]>=0) 
+                    continue;
+                const auto vw = WeightRnd[v];
+                bool b_visdomain = true;
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if(vtxColors[w]>=0) 
+                        continue;
+                    const auto ww= WeightRnd[w];
+                    if(vw<ww) {
+                        b_visdomain=false;
+                        break;
+                    }
+                }
+                if(b_visdomain)
+                    candi.push_back(v);
+                else
+                    Q[uncolored_nodes++]=v;
+            }
+            Q.resize(uncolored_nodes);
+            #pragma omp barrier
+            for(auto v : candi)
+                vtxColors[v]=n_loops;
+        } //end omp parallel
+        n_conflicts+=uncolored_nodes;
+        n_loops++;
+    }
+    tim_MIS += omp_get_wtime();
+
+    tim_Tot = tim_Wgt+tim_MIS;
+
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@LB%s_nT_c_T_Twt_T(lo+Mis)_nConf_nLoop_Tpart", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_Tot);
+    printf("\t%lf", tim_Wgt);
+    printf("\t%lf", tim_MIS);
+    printf("\t%d", n_conflicts);
+    printf("\t%d", n_loops);
+    printf("\t%lf", tim_Ptt);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;
+}
+
+
+
+
+// ============================================================================
+// based on Jone Plassmann's JP algorithm [3]
+// ============================================================================
+int SMPGCColoring::D1_OMP_JP(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+
+    double tim_Ptt =.0;
+    double tim_Wgt =.0;    //run time
+    double tim_MIS =.0;
+    double tim_MxC =.0;    //run time
+    double tim_Tot =.0;               //run time
+    int    n_loops = 0;                         //Number of rounds 
+    int    n_conflicts=0;
+    int    uncolored_nodes=0;
+
+    const int N       = num_nodes(); //number of vertex
+    const int BufSize = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;
+    vtxColors.assign(N, -1);
+    
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_Ptt =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_Ptt += omp_get_wtime();
+
+    // generate random numbers
+    //mt19937 mt(std::chrono:system_clock::now().time_since_epoch().count()); //mt(12345);
+    srand(RAND_SEED);
+    tim_Wgt =-omp_get_wtime();
+    vector<int> WeightRnd(N);
+    for(int i=0; i<N; i++) WeightRnd[i]=i;
+    std::random_shuffle(WeightRnd.begin(), WeightRnd.end());
+    //if(N>1) for(int i=0; i<N-1; i++) { uniform_int_distribution<int> dist(i, N-1); swap(WeightRnd[i], WeightRnd[dist(mt)]); }
+    tim_Wgt +=omp_get_wtime();
+    
+    tim_MIS -= omp_get_wtime();
+    uncolored_nodes = N;
+    while(uncolored_nodes!=0){
+
+        uncolored_nodes = 0;
+        #pragma omp parallel reduction(+: uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order 
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            vector<int> candi;
+            // phase find maximal indenpenent set, and color it
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                if(vtxColors[v]>=0) 
+                    continue;
+                const auto vw = WeightRnd[v];
+                bool b_visdomain = true;
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if(vtxColors[w]>=0)
+                        continue;
+                    const auto ww = WeightRnd[w];
+                    if(vw<ww){
+                        b_visdomain = false;
+                        break;
+                    }
+                }
+                if(b_visdomain) candi.push_back(v);
+                else            Q[uncolored_nodes++]=v;
+            }
+            
+            Q.resize(uncolored_nodes);
+            // phase greedy coloring 
+            #pragma omp barrier
+            vector<int> Mask(BufSize, -1);
+            for(const auto v : candi){
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto wc= vtxColors[ vtxVal[iw] ];
+                    if(wc>=0) 
+                        Mask[wc]=v;
+                }
+                int c=0; 
+                for(;c<BufSize; c++)
+                    if(Mask[c]!=v)
+                        break;
+                vtxColors[v]=c;
+            }
+        } //end omp parallel
+
+        n_conflicts+=uncolored_nodes;
+        n_loops++;
+    } //end while 
+    tim_MIS += omp_get_wtime();
+    
+
+    tim_MxC = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        auto c = vtxColors[i];
+        if(c>max_color) max_color=c;
+    }
+    colors=max_color+1;
+    tim_MxC += omp_get_wtime();
+
+    tim_Tot = tim_Wgt + tim_MIS + tim_MxC;
+
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@JP%s_nT_c_T_TWgt_T(lo+mis)_TMxC_nLoop_nPtt",order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_Tot);
+    printf("\t%lf", tim_Wgt);
+    printf("\t%lf", tim_MIS);
+    printf("\t%lf", tim_MxC);
+    printf("\t%d", n_loops);
+    printf("\t%d", n_conflicts);
+    printf("\t%lf", tim_Ptt);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");      
+    return true;
+}
+
+
+
+
+int SMPGCColoring::D1_OMP_MTJP(int nT, int& colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+    
+    double tim_Ptt =.0;
+    double tim_Wgt =.0;                      // run time
+    double tim_MIS =.0;                       // run time
+    double tim_MxC =.0;                       // run time
+    double tim_Tot =.0;                       // run time
+
+    int    n_loops = 0;                         //Number of rounds 
+    int    n_conflicts=0;
+    int    uncolored_nodes=0;
+
+    const int N = num_nodes(); //number of vertex
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;
+    vtxColors.assign(N, -1);
+    
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_Ptt =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_Ptt += omp_get_wtime();
+
+    tim_MIS -= omp_get_wtime();
+    uncolored_nodes = N;
+    while(uncolored_nodes!=0){
+        uncolored_nodes=0;
+
+        #pragma omp parallel reduction(+: uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int> candi_nodes_color;
+            const int CAPACITY = 2*HASH_NUM_HASH;
+            const int Color_Base = n_loops*CAPACITY;
+            vector<int>& Q = QQ[tid];
+            // phase local order
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            // phase find maximal indenpenent set, and color it
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                if(vtxColors[v]>=0)
+                    continue;
+                unsigned int vw[HASH_NUM_HASH];
+                for(int i=0; i<HASH_NUM_HASH; i++) vw[i]=mhash(v, HASH_SEED+HASH_SHIFT*i);
+                int b_visdomain = ((1<<CAPACITY)-1); //0:nether 1:LargeDomain, 2:SmallDomain, 3 Both/Reserve/Init
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if(vtxColors[w]>=0) 
+                        continue;
+                    for(int i=0; i<HASH_NUM_HASH; i++){
+                        const auto ww = mhash(w, HASH_SEED+HASH_SHIFT*i);
+                        if( (b_visdomain&(0x1<<(i<<1))) && (vw[i] <= ww) ) b_visdomain^= (0x1<<(i<<1));
+                        if( (b_visdomain&(0x2<<(i<<1))) && (vw[i] >= ww) ) b_visdomain^= (0x2<<(i<<1));
+                    }
+                    if( b_visdomain==0) break;
+                }
+                if(b_visdomain==0) Q[uncolored_nodes++]=v;
+                else{
+                    for(int i=0; i<CAPACITY; i++){
+                        if(b_visdomain&(1<<i)){
+                            candi_nodes_color.push_back(v);
+                            candi_nodes_color.push_back(Color_Base+i);
+                            break;
+                        }
+                    }
+                }
+            } //end for 
+            Q.resize(uncolored_nodes);
+            #pragma omp barrier
+            for(int i=0; i<(signed)candi_nodes_color.size(); i+=2){
+                vtxColors[ candi_nodes_color[i] ] = candi_nodes_color[i+1];
+            }
+        } //end omp parallel
+        n_loops++;
+        n_conflicts+=uncolored_nodes;
+    } //end while
+
+    tim_MIS += omp_get_wtime();
+    tim_MxC = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        auto c = vtxColors[i];
+        if(c>max_color) max_color=c;
+    }
+    colors=max_color+1;
+    tim_MxC += omp_get_wtime();
+
+    tim_Tot = tim_Wgt + tim_MIS + tim_MxC;
+    
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+    
+    printf("@MTJP%s_nT_c_T_TWgt_TMIS_TMxC_nL_nC_Tptt", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_Tot);
+    printf("\t%lf", tim_Wgt);
+    printf("\t%lf", tim_MIS);
+    printf("\t%lf", tim_MxC);
+    printf("\t%d", n_loops);
+    printf("\t%d", n_conflicts);
+    printf("\t%lf", tim_Ptt);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;
+}
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoringD1BIT.cpp
@@ -0,0 +1,417 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#include "SMPGCColoring.h"
+#include <chrono> //c++11 system time
+#include <random> //c++11 random
+using namespace std;
+using namespace ColPack;
+
+// D1_MASKWIDE marco are use to determin using 64 bits array / 32 bits array for 'forbiden array'. Only used in *_BIT functions.
+#ifdef PARALLEL_D1_MASKWIDE_64
+    #define PARALLEL_D1_MASKWIDE 64
+#else
+    #define PARALLEL_D1_MASKWIDE 32
+#endif
+
+
+// ============================================================================
+// for many core system
+// ============================================================================
+int SMPGCColoring::D1_OMP_GM3P_BIT(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+    
+    //double tim_local_order=.0;
+    double tim_partition  =.0;
+    double tim_color      =.0;                     // run time
+    double tim_detect     =.0;                     // run time
+    double tim_recolor    =.0;                     // run time
+    double tim_total      =.0;                          // run time
+    double tim_maxc       =.0; 
+    double tim_local_order=.0;
+
+    int    n_conflicts = 0;                     // Number of conflicts 
+
+    const int N               = num_nodes();   //number of vertex
+    //const int BufSize         = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+#ifdef PARALLEL_D1_MASKWIDE_64
+    if(sizeof(unsigned long long int)!=8) printf("Warning! ForbiddenArray was configured 64bit, but system cannot set up 64 bit variables for the buffer. undefined behaviors may occurs!\n");
+#else
+    if(sizeof(unsigned int)!=4) printf("Warning! ForbiddenArray was configured 32bit, but system cannot set up a 32bit variable for the buffer. undefined behaviors may occurs.\n");
+#endif
+
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT); 
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+    
+    // pre-partition the graph
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_partition += omp_get_wtime();
+
+    // phase pseudo color
+    tim_local_order =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        const int tid = omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+    }
+    tim_local_order += omp_get_wtime();
+
+
+    tim_color =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        const int tid = omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+#ifdef PARALLEL_D1_MASKWIDE_64
+        unsigned long long int Mask = ~0;
+#else
+        unsigned int Mask = ~0;
+#endif
+
+        for(const auto v : Q){
+            int offset_mask=0;
+            while(true){
+                Mask = ~0;
+                const int LOW = (offset_mask++)*PARALLEL_D1_MASKWIDE;
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto wc_local=vtxColors[vtxVal[iw]] - LOW;  //dis-regards the overflow risk.
+                    if(wc_local>=0 && wc_local<PARALLEL_D1_MASKWIDE) {
+                        Mask &= ~(1<<(wc_local));  // clear the bit
+                    }
+                }
+
+                // find the first settled bit, if there is any
+                if(Mask!=0){
+                    for(int i=0; i<PARALLEL_D1_MASKWIDE; i++) {
+                        if(Mask&(1<<i)){
+                            vtxColors[v]=LOW+i;
+                            break;
+                        }
+                    }
+                    break; // break while loop
+                }
+            }// end while(true) 
+        }// end for v
+    } //end omp parallel
+    tim_color  += omp_get_wtime();    
+
+    // phase conflicts detection
+    tim_detect =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        int qsize = 0;
+        const int tid=omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+        for(int iv=0; iv<(signed)Q.size(); iv++) {
+            const auto v  = Q[iv];
+            const auto vc = vtxColors[v];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){ 
+                const auto w = vtxVal[iw];
+                if(v<w && vc == vtxColors[w]) {
+                    Q[qsize++] = v;
+                    vtxColors[v] = -1;  //Will prevent v from being in conflict in another pairing
+                    break;
+                } 
+            } 
+        }
+        Q.resize(qsize);
+    } //end omp parallel
+    tim_detect  += omp_get_wtime();
+    
+    // phase handle conflicts 
+    tim_recolor =- omp_get_wtime();
+    {
+#ifdef PARALLEL_D1_MASKWIDE_64
+        unsigned long long int Mask = ~0;
+#else
+        unsigned int Mask = ~0;
+#endif
+        for(int tid=0; tid<nT; tid++){
+            for(const auto v : QQ[tid]){
+                int offset_mask=0;
+                while(true){
+                    Mask=~0;
+                    const int LOW = (offset_mask++)*PARALLEL_D1_MASKWIDE;
+                    for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                        const auto wc_local = vtxColors[vtxVal[iw]] - LOW;
+                        if(wc_local>=0 && wc_local<PARALLEL_D1_MASKWIDE){
+                            Mask &= ~(1<<(wc_local)); //clear the bit
+                        }
+                    }// end neighbors
+                
+                    // find the first settled bit, if there is any
+                    if(Mask!=0){
+                        for(int i=0; i<PARALLEL_D1_MASKWIDE; i++){
+                            if(Mask&(1<<i)){
+                                vtxColors[v]=LOW+i;
+                                break;
+                            }
+                        }
+                        break; // break the while(true) loop
+                    }
+                }// end while(true)
+            }//end for v
+        }//end for tid
+    }//end for phase
+    tim_recolor += omp_get_wtime();
+
+    // get maximal colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors, 
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_local_order + tim_color+tim_detect+tim_recolor+tim_maxc;
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@GM3PBIT(%d)%s_nT_c_T_Tlo_Tcolor_Tdetect_Trecolor_TmaxC_nCnf_Tpart", PARALLEL_D1_MASKWIDE, order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    printf("\t%lf", tim_local_order);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_recolor);
+    printf("\t%lf", tim_maxc);
+    for(int i=0; i<nT; i++) n_conflicts+=QQ[i].size();
+    printf("\t%d", n_conflicts);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+// ============================================================================
+// for many core system
+// ============================================================================
+int SMPGCColoring::D1_OMP_GMMP_BIT(int nT, int&colors, vector<int>&vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT); 
+
+    //double tim_local_order=.0;
+    double tim_partition  =.0;
+    double tim_total      =.0;
+    double tim_color      =.0;
+    double tim_detect     =.0;
+    double tim_maxc       =.0;                     // run time
+    int    n_loops        = 0;                     // number of iteration 
+    int    n_conflicts    = 0;                      // number of conflicts 
+    int    uncolored_nodes= 0;
+    const int N                = num_nodes();                    // number of vertex
+    //const int BufSize          = max_degree()+1;         // maxDegree
+    const vector<int>& vtxPtr  = get_CSR_ia();     // ia of csr
+    const vector<int>& vtxVal  = get_CSR_ja();     // ja of csr
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+#ifdef PARALLEL_D1_MASKWIDE_64
+    if(sizeof(unsigned long long int)!=8) printf("Warning! ForbiddenArray was configured 64bit, but system cannot set up 64 bit variables for the buffer. undefined behaviors may occurs!\n");
+#else
+    if(sizeof(unsigned int)!=4) printf("Warning! ForbiddenArray was configured 32bit, but system cannot set up a 32bit variable for the buffer. undefined behaviors may occurs.\n");
+#endif
+
+    colors=0;
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT;i++) 
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_partition += omp_get_wtime();
+
+
+    uncolored_nodes=N;
+    while(uncolored_nodes!=0){
+        // phase psedue color
+        tim_color -= omp_get_wtime();
+        #pragma omp parallel
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+            
+#ifdef PARALLEL_D1_MASKWIDE_64
+        unsigned long long int Mask = ~0;
+#else
+        unsigned int Mask = ~0;
+#endif
+            for(const auto v : Q){
+                int offset_mask=0;
+                while(true){
+                    Mask = ~0;
+                    const int LOW = (offset_mask++)*PARALLEL_D1_MASKWIDE;
+                    for(int iw = vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                        const auto w = vtxVal[iw];
+                        const auto wc_local = vtxColors[w] - LOW; //disregards the overflow risk
+                        if(wc_local>=0 && wc_local<PARALLEL_D1_MASKWIDE) { 
+                            Mask &= ~(1<<(wc_local));  //clear the bit 
+                        }
+                    }
+
+                    //find the first settled bit, if there is any
+                    if(Mask!=0){
+                        for(int i=0; i<PARALLEL_D1_MASKWIDE; i++) {
+                            if(Mask&(1<<i)){
+                                vtxColors[v]=LOW+i;
+                                break;
+                            }
+                        }
+                        break; //break the while loop
+                    }
+                }// end while
+            }// end for
+        } //end omp parallel
+        tim_color += omp_get_wtime();
+        
+        //phase Detect Conflicts:
+        tim_detect -= omp_get_wtime();
+        uncolored_nodes=0;
+        #pragma omp parallel reduction(+:uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                const auto vc= vtxColors[v];
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    if(v<w && vc==vtxColors[w]){
+                        Q[uncolored_nodes++]=v;
+                        vtxColors[v] = -1;
+                        break;
+                    }
+                }
+            }
+            Q.resize(uncolored_nodes);
+        }
+        n_conflicts += uncolored_nodes;
+        n_loops++;
+        tim_detect += omp_get_wtime();
+    }
+
+    // get number of colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors = largest color(0-based) + 1
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_maxc;
+
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@GMMPBIT(%d)%s_nT_c_T_T(Lo+Color)_TDetect_TMaxC_nCnf_nLoop", PARALLEL_D1_MASKWIDE, order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    //printf("\t%lf", tim_local_order);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_maxc);
+    printf("\t%d",  n_conflicts);  
+    printf("\t%d",  n_loops);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");      
+    return true;
+}
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoringD1Orig.cpp
@@ -0,0 +1,244 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#include "SMPGCColoring.h"
+#include <chrono> //c++11 system time
+#include <random> //c++11 random
+using namespace std;
+using namespace ColPack;
+
+
+// ============================================================================
+// based on Gebremedhin and Manne's GM algorithm [1]
+// ============================================================================
+int SMPGCColoring::D1_OMP_GM3P_orig(int nT, int&colors, vector<int>&vtxColors) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+    
+    //double tim_local_order=.0;
+    double tim_color      =.0;                     // run time
+    double tim_detect     =.0;                     // run time
+    double tim_recolor    =.0;                     // run time
+    double tim_total      =.0;                          // run time
+    double tim_maxc       =.0; 
+    
+    //int    n_conflicts = 0;                     // Number of conflicts 
+
+    const int N               = num_nodes();   //number of vertex
+    const int BufSize         = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;                       
+    vtxColors.assign(N, -1);
+    
+    const vector<int> &Q=const_ordered_vertex;
+    vector<int> conflictQ;
+    
+    // phase pseudo color
+    tim_color = -omp_get_wtime();
+    #pragma omp parallel
+    {
+        vector<int> Mask; Mask.assign(BufSize,-1);
+        #pragma omp for
+        for(size_t i=0; i<Q.size(); i++){
+            const auto v = Q[i];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc=vtxColors[vtxVal[iw]];
+                if( wc >= 0) 
+                    Mask[wc] = v;
+            } 
+            int c=0;
+            for (; c!=BufSize; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+        }
+    }
+    tim_color += omp_get_wtime();
+
+    // phase conflicts detection
+    tim_detect =- omp_get_wtime();
+    conflictQ.resize(Q.size());
+    auto qsize = 0;
+    #pragma omp parallel
+    {
+        #pragma omp for
+        for(size_t i=0; i<Q.size(); i++) {
+            const auto v  = Q[i];
+            const auto vc = vtxColors[v];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){ 
+                const auto w = vtxVal[iw];
+                if(v<w && vc == vtxColors[w]) {
+                    auto position =__sync_fetch_and_add(&qsize, 1); //increment the counter
+                    conflictQ[position] = v;
+                    vtxColors[v] = -1;  //Will prevent v from being in conflict in another pairing
+                    break;
+                } 
+            } 
+        }
+    } //end omp parallel
+    conflictQ.resize(qsize);
+    tim_detect  += omp_get_wtime();
+    
+    // phase serial coloring remain part
+    tim_recolor =- omp_get_wtime();
+    {
+        vector<int> Mark; Mark.assign(BufSize, -1);
+        for(const auto v : conflictQ){
+            for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc = vtxColors[vtxVal[iw]];
+                if(wc>=0) Mark[wc]=v;
+            }
+            int c=0;
+            for(; c!=BufSize; c++)
+                if( Mark[c]!=v)
+                    break;
+            vtxColors[v]=c;
+        }
+    }
+    tim_recolor += omp_get_wtime();
+
+    // get maximal colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors, 
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_recolor+tim_maxc;
+
+    printf("@GM3POriginal_nT_c_T_T(lo+color)_Tdetect_Trecolor_TmaxC_nCnf_Tpart");
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_recolor);
+    printf("\t%lf", tim_maxc);
+    printf("\t%d",  (signed)conflictQ.size());
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+
+
+// ============================================================================
+// based on Catalyurek et al 's IP algorithm [2]
+// ============================================================================
+int SMPGCColoring::D1_OMP_GMMP_orig(int nT, int&colors, vector<int>&vtxColors) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT); 
+
+    double tim_total      =.0;
+    double tim_color      =.0;
+    double tim_detect     =.0;
+    double tim_maxc       =.0;                     // run time
+    int    n_loops        = 0;                     // number of iteration 
+    int    n_conflicts    = 0;                      // number of conflicts 
+    int    uncolored_nodes= 0;
+    const int N                = num_nodes();                    // number of vertex
+    const int BufSize          = max_degree()+1;         // maxDegree
+    const vector<int>& vtxPtr  = get_CSR_ia();     // ia of csr
+    const vector<int>& vtxVal  = get_CSR_ja();     // ja of csr
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+    colors=0;
+    vtxColors.assign(N, -1);
+
+    vector<int> Q(const_ordered_vertex.begin(), const_ordered_vertex.end());
+    vector<int> conflictQ(Q.size(), -1);
+
+    uncolored_nodes=N;
+    while(uncolored_nodes!=0){
+        // phase psedue color
+        tim_color -= omp_get_wtime();
+        #pragma omp parallel
+        {
+            vector<int> Mark; Mark.assign(BufSize,-1);
+            #pragma omp for
+            for(size_t i=0; i<Q.size(); i++){
+                const auto v = Q[i];
+                for(int iw = vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    const auto wc= vtxColors[w];
+                    if(wc>=0) 
+                        Mark[wc]=v;
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if(Mark[c]!=v)
+                        break;
+                vtxColors[v] = c;
+            } 
+        } //end omp parallel
+        tim_color += omp_get_wtime();
+        
+
+        //phase Detect Conflicts:
+        tim_detect -= omp_get_wtime();
+        uncolored_nodes=0;
+        #pragma omp parallel for
+        for(size_t i=0; i<Q.size(); i++){
+            const auto v = Q[i];
+            const auto vc= vtxColors[v];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto w = vtxVal[iw];
+                if(v<w && vc==vtxColors[w]){
+                    auto position = __sync_fetch_and_add(&uncolored_nodes, 1);
+                    conflictQ[position]=v;
+                    vtxColors[v] = -1;
+                    break;
+                }
+            }
+        }
+        conflictQ.resize(uncolored_nodes);
+        Q.resize(uncolored_nodes);
+        Q.swap(conflictQ);
+        n_conflicts += uncolored_nodes;
+        n_loops++;
+        tim_detect += omp_get_wtime();
+    }
+
+    // get number of colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors = largest color(0-based) + 1
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_maxc;
+
+    printf("@GMMPOriginal_nT_c_T_T(Lo+Color)_TDetect_TMaxC_nCnf_nLoop");
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_maxc);
+    printf("\t%d",  n_conflicts);  
+    printf("\t%d",  n_loops);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");      
+    return true;
+}
+
+
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoringD2.cpp
@@ -0,0 +1,484 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGCColoring.h"
+#include <unordered_set>
+#include <unordered_map>
+using namespace std;
+using namespace ColPack;
+
+int SMPGCColoring::D2_serial(int&colors, vector<int>& vtxColors, const int local_order) {
+    omp_set_num_threads(1);
+    double tim_total    =.0;                          // run time
+    const int N = num_nodes();                     //number of vertex
+    const int MaxColorCapacity = min( max_degree()*(max_degree()-1)+1, N); //maxDegree
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    vector<int> Q(global_ordered_vertex());
+    
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    tim_total =- omp_get_wtime();
+    {
+        vector<int> Mask; Mask.assign(MaxColorCapacity+1, -1);
+        
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+
+        for(const auto v : Q){
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {  
+                const auto wc = vtxColors[ vtxVal[iw] ];
+                if(wc<0) continue;
+                Mask[wc] = v;
+            }
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto w = vtxVal[iw];
+                for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++) { // d2 neighbors
+                    const auto u = vtxVal[iu];
+                    if(v==u) continue;
+                    const auto uc = vtxColors[u];
+                    if(uc<0) continue;
+                    Mask[uc] = v;
+                }
+            }
+            int c=0;
+            for (; c!=MaxColorCapacity; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+            if(colors<c) colors=c;
+        } //end for
+    }//end of omp parallel
+    tim_total  += omp_get_wtime();    
+    
+    colors++; //number of colors, 
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@D2Serial%s_c_T(lo+Color)\t", order_tag.c_str());
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d2conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+
+// ============================================================================
+// distance two coloring GM 3 phase
+// ============================================================================
+int SMPGCColoring::D2_OMP_GM3P(int nT, int &colors, vector<int>& vtxColors, const int local_order) {
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+
+    double tim_partition=.0;
+    double tim_total    =.0;                          // run time
+    double tim_color    =.0;                     // run time
+    double tim_detect   =.0;                     // run time
+    double tim_recolor  =.0;                     // run time
+    double tim_maxc     =.0;                     // run time
+    
+    int   n_conflicts = 0;                     // Number of conflicts 
+    
+    const int N = num_nodes();                     //number of vertex
+    const int BufSize = min( max_degree()*(max_degree()-1)+1, N); //maxDegree
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT);
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens (nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1,0);   for(int i=1; i<=nT; i++)  disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++){
+            QQ[i].reserve(N/nT+1+16);
+            QQ[i].assign(const_ordered_vertex.begin()+disps[i], const_ordered_vertex.begin()+disps[i+1]); 
+        }
+    }
+    tim_partition += omp_get_wtime();
+
+    // phase - Pseudo Coloring
+    tim_color =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        const int tid = omp_get_thread_num();
+        vector<int> &Q = QQ[tid];
+        vector<int> Mask; Mask.assign(BufSize, -1);
+        
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+
+        for(const auto v : Q){
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {  
+                const auto w  = vtxVal[iw];
+                const auto wc = vtxColors[w];
+                if(wc<0) continue;
+                Mask[wc] = v;
+            }
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto w = vtxVal[iw];
+                for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++) { // d2 neighbors
+                    const auto u = vtxVal[iu];
+                    if(v==u) continue;
+                    const auto uc = vtxColors[u];
+                    if(uc<0) continue;
+                    Mask[uc] = v;
+                }
+            }
+            int c=0;
+            for (; c!=BufSize; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+        } //end for
+    }//end of omp parallel
+    tim_color  += omp_get_wtime();    
+
+    // Phase - Detect Conflicts
+    tim_detect =- omp_get_wtime();
+    #pragma omp parallel
+    {
+        int num_uncolored=0;
+        const int tid=omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+        for(int iv=0; iv<(signed)Q.size(); iv++){
+            const auto v  = Q[iv];
+            const auto vc = vtxColors[v];
+            bool b_vis_conflict=false;
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) { // d1 neighbors
+                const auto w = vtxVal[iw];
+                if(v >= w) continue;   // check conflict is little brother's job
+                if(vc == vtxColors[w]) {
+                    Q[num_uncolored++]=v;
+                    vtxColors[v]=-1;
+                    b_vis_conflict=true;
+                    break;
+                }
+            }
+            for(int iw=vtxPtr[v]; b_vis_conflict==false && iw!=vtxPtr[v+1]; iw++) {
+                const auto w = vtxVal[iw];
+                for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++) { // d2 neighbors
+                    const auto u = vtxVal[iu];
+                    if(v >= u) continue; // check conflict is little brother's job
+                    if(vc == vtxColors[u]) {
+                        Q[num_uncolored++]=v;
+                        vtxColors[v]=-1;
+                        b_vis_conflict=true;
+                        break;
+                    }
+                }
+            } 
+        } //end for vertex v
+        Q.resize(num_uncolored);
+    } //end omp parallel 
+    tim_detect  += omp_get_wtime();
+   
+    // Phase - Resolve Conflicts
+    tim_recolor =- omp_get_wtime();
+    {
+        vector<int> Mark; Mark.assign(BufSize,-1);
+        for(int tid=0; tid<nT; tid++){
+            for(const auto v: QQ[tid]){
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) { // d1 neighbors
+                    const auto wc=vtxColors[ vtxVal[iw] ];
+                    if(wc<0) continue;
+                        Mark[wc]=v;
+                }
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) { 
+                    const auto w = vtxVal[iw];
+                    for(auto iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++) { // d2 neighbors
+                        const auto u = vtxVal[iu];
+                        if(v==u) continue;
+                        const auto uc=vtxColors[u];
+                        if(uc<0) continue;
+                        Mark[uc]=v;
+                    }
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                if(Mark[c]!=v)
+                    break;
+                vtxColors[v] = c;
+            }
+        }
+    }
+    tim_recolor += omp_get_wtime();
+
+    // get number of colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors, 
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_recolor+tim_maxc;
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@D2GM3P%s_nT_c_T_T(lo+Color)_TDetect_TRecolor_TMxC_nCnf_Tpart\t", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_recolor);
+    printf("\t%lf", tim_maxc);
+    for(int i=0; i<nT; i++) n_conflicts+=QQ[i].size();
+    printf("\t%d", n_conflicts);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d2conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+
+// ============================================================================
+// Distance Two Openmp Multiple Phase Coloring
+// ============================================================================
+int SMPGCColoring::D2_OMP_GMMP(int nT, int &colors, vector<int>&vtxColors, int local_order){
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+   
+    double tim_partition  =.0;
+    double tim_total      =.0;                          // run time
+    double tim_color      =.0;                     // run time
+    double tim_detect     =.0;                     // run time
+    double tim_maxc       =.0;                     // run time
+    
+    int    n_loops        = 0;
+    int    n_conflicts    = 0;                     // Number of conflicts 
+    int    n_uncolored    = 0;
+    
+    const int N = num_nodes();                     //number of vertex
+    const int BufSize = min( max_degree()*(max_degree()-1)+1, N); //maxDegree
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+    
+    colors=0;                       
+    vtxColors.assign(N, -1);
+
+    vector<vector<int>> QQ(nT);
+    tim_partition =- omp_get_wtime();
+    {
+        vector<int> lens (nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1,0);   for(int i=1; i<=nT; i++)  disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++){
+            QQ[i].reserve(N/nT+1+16);
+            QQ[i].assign(const_ordered_vertex.begin()+disps[i], const_ordered_vertex.begin()+disps[i+1]); 
+        }
+    }
+    tim_partition += omp_get_wtime();
+
+
+    n_uncolored=N;
+    while(n_uncolored!=0){
+        // phase - Pseudo Coloring
+        tim_color -= omp_get_wtime();
+        #pragma omp parallel
+        {
+            const int tid = omp_get_thread_num();
+            vector<int> &Q = QQ[tid];
+            vector<int> Mask; Mask.assign(BufSize, -1);
+
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            for(const auto v : Q) {
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++ ) {  // d1 neighbors
+                    const auto wc = vtxColors[ vtxVal[iw] ];
+                    if(wc<0) continue;
+                    Mask[wc] = v;
+                }
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++) { // d2 neighbors
+                        const auto u = vtxVal[iu];
+                        if(v==u) continue;
+                        const auto uc = vtxColors[u];
+                        if(uc<0) continue;
+                        Mask[uc] = v;
+                    }
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if(Mask[c]!=v)
+                        break;
+                vtxColors[v] = c;
+            } //end for
+        }//end of omp parallel
+        tim_color  += omp_get_wtime();    
+
+        // Phase - Detect Conflicts
+        tim_detect -= omp_get_wtime();
+        n_uncolored=0;        
+        #pragma omp parallel reduction(+: n_uncolored)
+        {
+            const int tid=omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                const auto vc= vtxColors[v];
+                bool b_vis_conflict=false;
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if( v >= w ) continue;
+                    if( vc== vtxColors[w]) {
+                        Q[n_uncolored++] = v;
+                        vtxColors[v] = -1;
+                        b_vis_conflict=true;
+                        break;
+                    }
+                }
+                for(int iw=vtxPtr[v]; b_vis_conflict==false && iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    for(int iu=vtxPtr[w]; iu!=vtxPtr[w+1]; iu++){
+                        const auto u = vtxVal[iu];
+                        if(v>=u) continue;
+                        if(vc == vtxColors[u]) {
+                            Q[n_uncolored++]=v;
+                            vtxColors[v]=-1;
+                            b_vis_conflict=true;
+                            break;
+                        }
+                    }
+                }
+            }
+            Q.resize(n_uncolored);
+        } //end of omp parallel
+        tim_detect  += omp_get_wtime();
+        n_loops++;
+        n_conflicts+=n_uncolored;
+    } //end while
+
+    // get number of colors
+    tim_maxc = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        max_color = max(max_color, vtxColors[i]);
+    }
+    colors=max_color+1; //number of colors, 
+    tim_maxc += omp_get_wtime();
+
+    tim_total = tim_color+tim_detect+tim_maxc;
+
+    string order_tag="unknown";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NoOrder"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@D2GMMP%s_nT_c_T_T(Lo+Color)_TDetect_TMxC_nCnf_nLoop_TPart", order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_total);
+    printf("\t%lf", tim_color);
+    printf("\t%lf", tim_detect);
+    printf("\t%lf", tim_maxc);
+    printf("\t%d",  n_conflicts);
+    printf("\t%d" , n_loops);
+    printf("\t%lf", tim_partition);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d2conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;   
+}
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCColoringHybrid.cpp
@@ -0,0 +1,593 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGCColoring.h"
+#include <chrono> //c++11 system time
+#include <random> //c++11 random
+using namespace std;
+using namespace ColPack;
+
+
+int SMPGCColoring::D1_OMP_HBJP(int nT, int&colors, vector<int>& vtxColors, const int option, const int switch_iter,  const int local_order){
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+
+    double tim_Ptt =.0;
+    double tim_Wgt =.0;    //run time
+    double tim_MIS =.0;
+    double tim_Alg2=.0;
+    double tim_MxC =.0;    //run time
+    double tim_Tot =.0;               //run time
+    int    n_loops = 0;                         //Number of rounds 
+    int    n_conflicts=0;
+    int    n_uncolored=0;
+
+    const int N       = num_nodes(); //number of vertex
+    const int BufSize = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;
+    vtxColors.assign(N, -1);
+    
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_Ptt =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_Ptt += omp_get_wtime();
+
+    // generate random numbers
+    //mt19937 mt(std::chrono:system_clock::now().time_since_epoch().count()); //mt(12345);
+    srand(RAND_SEED);
+    tim_Wgt =-omp_get_wtime();
+    vector<int> WeightRnd(N);
+    for(int i=0; i<N; i++) WeightRnd[i]=i;
+    std::random_shuffle(WeightRnd.begin(), WeightRnd.end());
+    //if(N>1) for(int i=0; i<N-1; i++) { uniform_int_distribution<int> dist(i, N-1); swap(WeightRnd[i], WeightRnd[dist(mt)]); }
+    tim_Wgt +=omp_get_wtime();
+    
+    tim_MIS -= omp_get_wtime();
+    n_uncolored = N;
+    while(n_uncolored!=0){
+        if(n_loops>=switch_iter) break;
+        n_uncolored = 0;
+        #pragma omp parallel reduction(+ : n_uncolored)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order 
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            vector<int> candi;
+            // phase find maximal indenpenent set, and color it
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                if(vtxColors[v]>=0) 
+                    continue;
+                const auto vw = WeightRnd[v];
+                bool b_visdomain = true;
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if(vtxColors[w]>=0)
+                        continue;
+                    const auto ww = WeightRnd[w];
+                    if(vw<ww){
+                        b_visdomain = false;
+                        break;
+                    }
+                }
+                if(b_visdomain) candi.push_back(v);
+                else            Q[n_uncolored++]=v;
+            }
+            
+            Q.resize(n_uncolored);
+            // phase greedy coloring 
+            #pragma omp barrier
+            vector<int> Mask(BufSize, -1);
+            for(const auto v : candi){
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    const auto wc= vtxColors[w];
+                    if(wc>=0) 
+                        Mask[wc]=v;
+                }
+                int c=0; 
+                for(;c<BufSize; c++)
+                    if(Mask[c]!=v)
+                        break;
+                vtxColors[v]=c;
+            }
+        } //end omp parallel
+
+        n_conflicts+=n_uncolored;
+        n_loops++;
+    } //end while 
+    tim_MIS += omp_get_wtime();
+    
+    tim_Alg2 =- omp_get_wtime();
+    switch(option)
+    {
+        case HYBRID_GM3P:      hybrid_GM3P  (nT, vtxColors, QQ, local_order); break;
+        case HYBRID_GMMP:      hybrid_GMMP  (nT, vtxColors, QQ, local_order); break;
+        case HYBRID_SERIAL:    hybrid_Serial(vtxColors, QQ, local_order); break;
+        case HYBRID_STREAM:
+        default:
+            printf("Error %d option for hybrid alg is not support!", option);
+            exit(1);
+    }
+    tim_Alg2+= omp_get_wtime();
+
+
+    tim_MxC = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        auto c = vtxColors[i];
+        if(c>max_color) max_color=c;
+    }
+    colors=max_color+1;
+    tim_MxC += omp_get_wtime();
+
+    tim_Tot = tim_Wgt + tim_MIS + tim_MxC+ tim_Alg2;
+
+    string alg_tag="unknown";
+    switch(option){
+        case HYBRID_GM3P:       alg_tag="GM3P";    break;
+        case HYBRID_GMMP:       alg_tag="GMMP";    break;
+        case HYBRID_SERIAL:     alg_tag="Serial";  break;
+        case HYBRID_STREAM:
+        default:               printf("Error %d option for hybrid alg is not support!", option);
+    }
+    
+    
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:          order_tag="NONE"; break;
+        case ORDER_LARGEST_FIRST: order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST: order_tag="SL"; break;
+        case ORDER_NATURAL:       order_tag="NT"; break;
+        case ORDER_RANDOM:        order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+
+    printf("@HBJP_%s_(%s)_nT_c_T_Talg1_Talg2_TMxC_switIter_timPTT",alg_tag.c_str(), order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_Tot);
+    printf("\t%lf", tim_Wgt+tim_MIS);
+    printf("\t%lf", tim_Alg2);
+    printf("\t%lf", tim_MxC);
+    printf("\t%d",  switch_iter);
+    printf("\t%lf", tim_Ptt);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");      
+    return true;
+}
+
+
+int SMPGCColoring::D1_OMP_HBMTJP(int nT, int&colors, vector<int>& vtxColors,  const int option, const int switch_iter, const int local_order){
+    if(nT<=0) { printf("Warning, number of threads changed from %d to 1\n",nT); nT=1; }
+    omp_set_num_threads(nT);
+    
+    double tim_Ptt =.0;
+    double tim_Wgt =.0;                      // run time
+    double tim_MIS =.0;                       // run time
+    double tim_Alg2=.0;
+    double tim_MxC =.0;                       // run time
+    double tim_Tot =.0;                       // run time
+
+    int    n_loops = 0;                         //Number of rounds 
+    int    n_conflicts=0;
+    int    uncolored_nodes=0;
+
+    const int N = num_nodes(); //number of vertex
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    const vector<int>& const_ordered_vertex = global_ordered_vertex(); 
+
+    colors=0;
+    vtxColors.assign(N, -1);
+    
+    vector<vector<int>> QQ(nT);
+    for(int i=0; i<nT; i++)
+        QQ[i].reserve(N/nT+1+16); //1-odd/even, 16-bus width
+
+    // pre-partition the graph
+    tim_Ptt =- omp_get_wtime();
+    {
+        vector<int> lens(nT, N/nT); for(int i=0; i<N%nT; i++) lens[i]++;
+        vector<int> disps(nT+1, 0); for(int i=1; i<nT+1; i++) disps[i]=disps[i-1]+lens[i-1];
+        for(int i=0; i<nT; i++)
+            QQ[i].insert(QQ[i].end(), const_ordered_vertex.begin()+disps[i], 
+                    const_ordered_vertex.begin()+disps[i+1]);
+    }
+    tim_Ptt += omp_get_wtime();
+
+    tim_MIS -= omp_get_wtime();
+    uncolored_nodes = N;
+    while(uncolored_nodes!=0){
+        if(switch_iter>=n_loops)
+            break;
+        uncolored_nodes=0;
+
+        #pragma omp parallel reduction(+: uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int> candi_nodes_color;
+            const int CAPACITY = 2*HASH_NUM_HASH;
+            const int Color_Base = n_loops*CAPACITY;
+            vector<int>& Q = QQ[tid];
+            // phase local order
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+
+            // phase find maximal indenpenent set, and color it
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                if(vtxColors[v]>=0)
+                    continue;
+                unsigned int vwt[HASH_NUM_HASH];
+                for(int i=0; i<HASH_NUM_HASH; i++) vwt[i]=mhash(v, HASH_SEED+HASH_SHIFT*i);
+                int b_visdomain = ((1<<CAPACITY)-1); //0:nether 1:LargeDomain, 2:SmallDomain, 3 Both/Reserve/Init
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){
+                    const auto w = vtxVal[iw];
+                    if(vtxColors[w]>=0) 
+                        continue;
+                    for(int i=0; i<HASH_NUM_HASH; i++){
+                        const auto ww = mhash(w, HASH_SEED+HASH_SHIFT*i);
+                        if( (b_visdomain&(0x1<<(i<<1))) && (vwt[i] <= ww) ) b_visdomain^= (0x1<<(i<<1));
+                        if( (b_visdomain&(0x2<<(i<<1))) && (vwt[i] >= ww) ) b_visdomain^= (0x2<<(i<<1));
+                    }
+                    if( b_visdomain==0) break;
+                }
+                if(b_visdomain==0) Q[uncolored_nodes++]=v;
+                else{
+                    for(int i=0; i<CAPACITY; i++){
+                        if(b_visdomain&(1<<i)){
+                            candi_nodes_color.push_back(v);
+                            candi_nodes_color.push_back(Color_Base+i);
+                            break;
+                        }
+                    }
+                }
+            } //end for 
+            Q.resize(uncolored_nodes);
+            #pragma omp barrier
+            for(int i=0; i<(signed)candi_nodes_color.size(); i+=2){
+                vtxColors[ candi_nodes_color[i] ] = candi_nodes_color[i+1];
+            }
+        } //end omp parallel
+        tim_MIS += omp_get_wtime();
+    
+        n_loops++;
+        n_conflicts+=uncolored_nodes;
+    } //end while
+
+    tim_Alg2 =- omp_get_wtime();
+    switch(option)
+    {
+        case HYBRID_GM3P:      hybrid_GM3P  (nT, vtxColors, QQ, local_order ); break;
+        case HYBRID_GMMP:      hybrid_GMMP  (nT, vtxColors, QQ, local_order ); break;
+        case HYBRID_SERIAL:    hybrid_Serial(vtxColors, QQ, local_order ); break;
+        case HYBRID_STREAM:
+        default:
+            printf("Error %d option for hybrid alg is not support!", option);
+            exit(1);
+    }
+    tim_Alg2+= omp_get_wtime();
+
+    tim_MxC = -omp_get_wtime();
+    int max_color=0;
+    #pragma omp parallel for reduction(max:max_color)
+    for(int i=0; i<N; i++){
+        auto c = vtxColors[i];
+        if(c>max_color) max_color=c;
+    }
+    colors=max_color+1;
+    tim_MxC += omp_get_wtime();
+
+    tim_Tot = tim_Wgt + tim_MIS + tim_MxC+ tim_Alg2;
+
+    string alg_tag="unknown";
+    switch(option){
+        case HYBRID_GM3P:       alg_tag="GM3P";    break;
+        case HYBRID_GMMP:       alg_tag="GMMP";    break;
+        case HYBRID_SERIAL:     alg_tag="Serial";  break;
+        case HYBRID_STREAM:
+        default:               printf("Error %d option for hybrid alg is not support!", option);
+    }
+   
+    string order_tag="unkonwn";
+    switch(local_order){
+        case ORDER_NONE:
+            order_tag="NONE"; break;
+        case ORDER_LARGEST_FIRST:
+            order_tag="LF"; break;
+        case ORDER_SMALLEST_LAST:
+            order_tag="SL"; break;
+        case ORDER_NATURAL:
+            order_tag="NT"; break;
+        case ORDER_RANDOM:
+            order_tag="RD"; break;
+        default:
+            printf("unkonw local order %d\n", local_order);
+    }
+    
+    printf("@HBMTJP_%s_(%s)_nT_c_T_TA1_TA2_TMxC_nSwitchIter_Tptt", alg_tag.c_str(), order_tag.c_str());
+    printf("\t%d",  nT);    
+    printf("\t%d",  colors);    
+    printf("\t%lf", tim_Tot);
+    printf("\t%lf", tim_Wgt+tim_MIS);
+    printf("\t%lf", tim_Alg2);
+    printf("\t%lf", tim_MxC);
+    printf("\t%d",  switch_iter);
+    printf("\t%lf", tim_Ptt);
+#ifdef SMPGC_VARIFY
+    printf("\t%s", (cnt_d1conflict(vtxColors)==0)?("Success"):("Failed"));
+#endif
+    printf("\n");
+    return true;
+}
+
+
+
+
+void SMPGCColoring::hybrid_GM3P(const int nT, vector<int>&vtxColors, vector<vector<int>>&QQ, const int local_order){
+    const int BufSize         = max_degree()+1;
+    const vector<int>& vtxPtr = get_CSR_ia();
+    const vector<int>& vtxVal = get_CSR_ja();
+    // phase pseudo color
+    #pragma omp parallel
+    {
+        const int tid = omp_get_thread_num();
+        vector<int>& Q = QQ[tid];
+        switch(local_order){
+            case ORDER_NONE:
+                break;
+            case ORDER_LARGEST_FIRST:
+                local_largest_degree_first_ordering(Q); break;
+            case ORDER_SMALLEST_LAST:
+                local_smallest_degree_last_ordering(Q); break;
+            case ORDER_NATURAL:
+                local_natural_ordering(Q); break;
+            case ORDER_RANDOM:
+                local_random_ordering(Q); break;
+            default:
+                printf("Error! unknown local order \"%d\".\n", local_order);
+                exit(1);
+        }
+
+        vector<int> Mask; Mask.assign(BufSize,-1);
+        for(const auto v : Q){
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc=vtxColors[vtxVal[iw]];
+                if( wc >= 0) 
+                    Mask[wc] = v;
+            } 
+            int c=0;
+            for (; c!=BufSize; c++)
+                if(Mask[c]!=v)
+                    break;
+            vtxColors[v] = c;
+        }
+        
+        #pragma omp barrier
+        // phase conflicts detection
+        int qsize = 0;
+        for(int iv=0; iv<(signed)Q.size(); iv++) {
+            const auto v  = Q[iv];
+            const auto vc = vtxColors[v];
+            for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++){ 
+                const auto w = vtxVal[iw];
+                if(v<w && vc == vtxColors[w]) {
+                    Q[qsize++] = v;
+                    vtxColors[v] = -1;  //Will prevent v from being in conflict in another pairing
+                    break;
+                } 
+            } 
+        }
+        Q.resize(qsize);
+    } //end omp parallel
+    
+    // phase serial coloring remain part
+    {
+        vector<bool> Mark; Mark.assign(BufSize, -1);
+        for(int tid=0; tid<nT; tid++){
+            for(const auto v : QQ[tid]){
+                for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto wc = vtxColors[vtxVal[iw]];
+                    if(wc>=0) Mark[wc]=v;
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if( Mark[c]!=v)
+                        break;
+                vtxColors[v]=c;
+            }
+        }
+    }
+    return;
+}
+
+
+void SMPGCColoring::hybrid_GMMP(const int nT, vector<int>&vtxColors, vector<vector<int>>&QQ, const int local_order){
+    const int BufSize          = max_degree()+1;         // maxDegree
+    const vector<int>& vtxPtr  = get_CSR_ia();     // ia of csr
+    const vector<int>& vtxVal  = get_CSR_ja();     // ja of csr
+   
+    int uncolored_nodes=1;
+    while(uncolored_nodes!=0){
+
+        uncolored_nodes=0;
+        #pragma omp parallel reduction(+: uncolored_nodes)
+        {
+            const int tid = omp_get_thread_num();
+            vector<int>& Q = QQ[tid];
+            // phase local order
+            switch(local_order){
+                case ORDER_NONE:
+                    break;
+                case ORDER_LARGEST_FIRST:
+                    local_largest_degree_first_ordering(Q); break;
+                case ORDER_SMALLEST_LAST:
+                    local_smallest_degree_last_ordering(Q); break;
+                case ORDER_NATURAL:
+                    local_natural_ordering(Q); break;
+                case ORDER_RANDOM:
+                    local_random_ordering(Q); break;
+                default:
+                    printf("Error! unknown local order \"%d\".\n", local_order);
+                    exit(1);
+            }
+            // phase psedue color
+            vector<int> Mark; Mark.assign(BufSize,-1);
+            for(const auto v : Q){
+                for(int iw = vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    const auto wc= vtxColors[w];
+                    if(wc>=0) 
+                        Mark[wc]=v;
+                }
+                int c=0;
+                for(; c!=BufSize; c++)
+                    if(Mark[c]!=v)
+                        break;
+                vtxColors[v] = c;
+            } 
+            // phase Detect Conflicts:
+            uncolored_nodes=0;
+            #pragma omp barrier
+            for(int i=0; i<(signed)Q.size(); i++){
+                const auto v = Q[i];
+                const auto vc= vtxColors[v];
+                for(int iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                    const auto w = vtxVal[iw];
+                    if(v<w && vc==vtxColors[w]){
+                        Q[uncolored_nodes++]=v;
+                        vtxColors[v] = -1;
+                        break;
+                    }
+                }
+            }
+            Q.resize(uncolored_nodes);
+        } //end omp parallel 
+    } //end while
+    return;
+}
+
+
+void SMPGCColoring::hybrid_Serial(vector<int>&vtxColors, vector<vector<int>>&QQ, const int local_order){
+    const int nT               = QQ.size();
+    const int BufSize          = max_degree()+1;         // maxDegree
+    const vector<int>& vtxPtr  = get_CSR_ia();     // ia of csr
+    const vector<int>& vtxVal  = get_CSR_ja();     // ja of csr
+    
+    switch(local_order){
+        case ORDER_NONE:
+            break;
+        case ORDER_LARGEST_FIRST:
+        {
+            for(int i=0; i<nT; i++) 
+                local_largest_degree_first_ordering(QQ[i]); 
+            break;
+        }
+        case ORDER_SMALLEST_LAST:
+        {
+            for(int i=0; i<nT; i++) {
+                local_smallest_degree_last_ordering(QQ[i]); 
+            }
+            break;
+        }
+        case ORDER_NATURAL:
+        {
+            for(int i=0; i<nT; i++) {
+                local_natural_ordering(QQ[i]);
+            }
+            break;
+        }
+        case ORDER_RANDOM:
+        {
+            for(int i=0; i<nT; i++) {
+                local_random_ordering(QQ[i]); 
+            }
+            break;
+        }
+        case -1:
+            break;
+        default:
+            printf("Error! unknown local order \"%d\".\n", local_order);
+            exit(1);
+    }
+
+    vector<bool> Mark; Mark.assign(BufSize, -1);
+    for(int tid=0; tid<nT; tid++){
+        for(const auto v : QQ[tid]){
+            for(auto iw=vtxPtr[v]; iw!=vtxPtr[v+1]; iw++) {
+                const auto wc = vtxColors[vtxVal[iw]];
+                if(wc>=0) Mark[wc]=v;
+            }
+            int c=0;
+            for(; c!=BufSize; c++)
+                if( Mark[c]!=v)
+                    break;
+            vtxColors[v]=c;
+        }
+    }
+    return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCGraph.cpp
@@ -0,0 +1,238 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGCGraph.h"
+#include <time.h>   //clock
+using namespace std;
+using namespace ColPack;
+
+// ============================================================================
+// Construction
+// ============================================================================
+SMPGCGraph::SMPGCGraph(const string& graph_name, const string& format, double* iotime) {
+    m_graph_name = graph_name;
+    if(format=="mm" || format == "MM")
+        do_read_MM_struct(m_graph_name, m_ia, m_ja, &m_max_degree, &m_min_degree, &m_avg_degree, iotime);
+    else if(format=="metis" || format =="Metis" || format =="METIS"){
+        do_read_Metis_struct(m_graph_name, m_ia, m_ja, &m_max_degree, &m_min_degree, &m_avg_degree, iotime);
+    }
+    else{
+        printf("Error! SMPGCCore() tried read graph \"%s\" with format \"%s\". But it is not supported\n", graph_name.c_str(), format.c_str());
+        exit(1);
+    }
+}
+
+
+SMPGCGraph::~SMPGCGraph(){
+}
+
+// ============================================================================
+// Read MatrixMarket only structure into memory
+// ----------------------------------------------------------------------------
+// Note: store as sparsed CSR format
+// ============================================================================
+void SMPGCGraph::do_read_MM_struct(const string& graph_name, vector<int>&ia, vector<int>&ja, int* pMaxDeg, int* pMinDeg, double* pAvgDeg, double* iotime) {
+    if(graph_name.empty()) { printf("Error! SMPGCCore() tried to read a graph with empty name.\n"); exit(1); }
+
+    bool bSymmetric = true;
+    int  entry_encount = 0;
+    int  entry_expect  = 0;
+    int  row_expect    = 0;
+    int  col_expect    = 0;
+    string line,word;
+    istringstream iss;
+    
+    ia.clear(); { vector<int> tmp; tmp.swap(ia); } 
+    ja.clear(); { vector<int> tmp; tmp.swap(ja); }
+
+    if(iotime) { *iotime=0; *(clock_t *)iotime = -clock(); }
+    ifstream in(graph_name.c_str());
+    if(!in.is_open()) { printf("Error! SMPGCCore() cannot open \"%s\".\n", graph_name.c_str()); exit(1); }
+   
+    // parse head
+    getline(in, line);
+    iss.str(line);
+    if( !(iss>>word) || word!="\%\%MatrixMarket" || !(iss>>word) || word!="matrix") {
+        printf("Error! SMPGCGraph() read matrix market file \"%s\". But it is not matrix market format.\n", graph_name.c_str());
+        exit(1);
+    }
+    if( !(iss>>word) || word!="coordinate") { //coordinate, array
+        printf("Error! SMPGCGraph() read \"%s\" is a dense graph. Dense graph is a complete graph. Its chromatic number will be simply N+1.\n", graph_name.c_str());
+        exit(1);
+    }
+    if( !(iss>>word) || word=="complex") { //complex, integer, real, pattern
+        printf("Warning! SMPGCGraph() graph \"%s\" is a complex matrix. Only non-zero structure will be keeped.\n", graph_name.c_str());
+    }
+    if( !(iss>>word) || word=="general") { //general, symmetric, hermitan, skew-symmetric
+        bSymmetric = false;
+        printf("Warning! SMPGCGraph() grpah \"%s\" is not symmetric. The upper triangular and diagonal elements are going to be removed. \n", graph_name.c_str());
+    }
+
+    // parse dimension
+    while(in){
+        getline(in,line);
+        if(line==""||line[0]=='%')
+            continue;
+        break;
+    }
+    if(!in){ 
+        printf("Error! SMPGCCore() cannot get graph \"%s\" dimension. You should make sure it is at least \"Structural Symmetric\"\n", graph_name.c_str());
+        exit(1);
+    }
+    iss.clear(); iss.str(line);
+    iss>>row_expect>>col_expect>>entry_expect;
+    
+    if(row_expect!=col_expect) {
+        printf("Error! SMPGCGraph() read the file \"%s\", but the file is a regular graph. row%d!=col%d\n", graph_name.c_str(), row_expect, col_expect);
+        exit(1);
+    }
+    
+    // read graph into G
+    unordered_map<int, vector<int>> G;
+    int row, col;
+    //ifstream fp(graph_name.c_str());  //unused variable, to be removed.
+    while(in&&entry_encount<=entry_expect){
+        getline(in,line);
+        if(line=="" || line[0]=='%')
+            continue;
+        entry_encount ++;
+        iss.clear(); iss.str(line);
+        iss>>row>>col;
+        if(row<=col){  //upper-triangular or diagonal
+            if(bSymmetric && row!=col){
+                printf("Error! SMPGCGraph() read the file \"%s\", but meet an upper-triangular entry in symmetric graph. %s\n", graph_name.c_str(), line.c_str());
+                exit(1);
+            }
+            continue;     //
+        }
+        row--; col--;              //1-based to 0-based
+        G[row].push_back(col);
+        G[col].push_back(row);
+    }
+    if(entry_encount != entry_expect){
+        printf("Error! graph \"%s\" expected has %d entries, but we have found %d. Check the file.\n", graph_name.c_str(), entry_expect, entry_encount);
+        exit(1);
+    }
+    for(auto it=G.begin();  it!=G.end(); it++) 
+        sort((it->second).begin(), (it->second).end());
+
+    // G into CSR
+    ia.push_back(ja.size());
+    for(int i=0; i<row_expect; i++){
+        auto it=G.find(i);
+        if(it!=G.end()) ja.insert(ja.end(), (it->second).begin(), (it->second).end());
+        ia.push_back(ja.size());
+    }
+
+    // calc degrees if needed
+    if(pMaxDeg||pMinDeg){
+        int maxDeg=0, minDeg=ia.size()-1;
+        for(auto it : G){
+            int d = (it.second).size();
+            maxDeg = (maxDeg<d)?d:maxDeg;
+            minDeg = (minDeg>d)?d:minDeg;
+        }
+        if(pMaxDeg) *pMaxDeg = maxDeg;
+        if(pMinDeg) *pMinDeg = minDeg;
+    }
+    if(pAvgDeg) *pAvgDeg=1.0*(ja.size())/(ia.size()-1);
+
+    if(iotime) { *(clock_t*)iotime += clock(); *iotime = double(*((clock_t*)iotime))/CLOCKS_PER_SEC; }
+    return;
+}
+
+
+
+
+// ============================================================================
+// Read Metis no weight (structure) graph into memory as CSR format (ia,ja)
+// ----------------------------------------------------------------------------
+// Note: store as sparsed CSR format
+// ============================================================================
+void SMPGCGraph::do_read_Metis_struct(const string& graph_name, vector<int>&ia, vector<int>&ja, int* pMaxDeg, int* pMinDeg, double* pAvgDeg, double* iotime) {
+    if(graph_name.empty()) { printf("Error! SMPGCCore() tried to read a graph with empty name.\n"); exit(1); }
+    int  edges_expect  = 0;
+    int  nodes_expect  = 0;
+    int  entry_encount = 0;
+    int  row_encount   = 0;
+    int  entry         = 0;
+    string line;
+    istringstream iss;
+    
+    ia.clear(); { vector<int> tmp; tmp.swap(ia); } 
+    ja.clear(); { vector<int> tmp; tmp.swap(ja); }
+
+    if(iotime) { *iotime=0; *(clock_t *)iotime = -clock(); }
+    ifstream in(graph_name.c_str());
+    if(!in.is_open()) { printf("Error! SMPGCCore() cannot open \"%s\".\n", graph_name.c_str()); exit(1); }
+   
+    // parse the dimension
+    while(getline(in,line)){
+        if(line==""||line[0]=='%')
+            continue;
+        break;
+    }
+    if(!in){ 
+        printf("Error! SMPGCCore() cannot get metis graph \"%s\" dimension. \n", graph_name.c_str());
+        exit(1);
+    }
+    iss.clear(); iss.str(line);
+    if(!(iss>>nodes_expect>>edges_expect)){
+        printf("Error! SMPGCCore() cannot get metis graph \"%s\" dimension from the file.\n", graph_name.c_str());
+        exit(1);
+    }
+    
+    int fmt=0, ncon=0;
+    iss>>fmt>>ncon;
+    
+    if(fmt!=0){
+        printf("Error! SMPGCCore() cannot read metis graph \"%s\" with head '%s', because the graph has weight. The programer is too lazy to handle such situation. Please contact the author to added the support of such format.\n",graph_name.c_str(), line.c_str());
+        exit(1);
+    }
+
+    // read the graph into csr format 
+    ia.push_back(0);
+    while(getline(in,line)&&row_encount<=nodes_expect){
+        if(line.size()>0 && line[0]=='%')
+            continue;
+        row_encount ++;
+        iss.clear(); iss.str(line);
+        while(iss>>entry){
+            ja.push_back(entry-1);
+            entry_encount++;
+        }
+        ia.push_back(ja.size());
+    }
+
+    if(row_encount!=nodes_expect || entry_encount!=2*edges_expect){
+        printf("Error! graph \"%s\" expected has %d vertices and entry of 2*%d neighbors, but we have only found %d vertices with %d neighbor entries. Check the file.\n", graph_name.c_str(), nodes_expect, edges_expect, row_encount, entry_encount);
+        exit(1);
+    }
+
+    // calc degrees if needed
+    if(pMaxDeg||pMinDeg){
+        int maxDeg=0, minDeg=ia.size()-1;
+        for(auto i=0; i<nodes_expect; i++){
+            int d = ia[i+1]-ia[i];
+            maxDeg = (maxDeg<d)?d:maxDeg;
+            minDeg = (minDeg>d)?d:minDeg;
+        }
+        if(pMaxDeg) *pMaxDeg = maxDeg;
+        if(pMinDeg) *pMinDeg = minDeg;
+    }
+    if(pAvgDeg) *pAvgDeg=1.0*(ja.size())/(ia.size()-1);
+
+    if(iotime) { *(clock_t*)iotime += clock(); *iotime = double(*((clock_t*)iotime))/CLOCKS_PER_SEC; }
+    return;
+}
+
+
+// ============================================================================
+//
+// ============================================================================
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCGraph.h
@@ -0,0 +1,68 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#ifndef SMPGCGRAPH_H
+#define SMPGCGRAPH_H
+#include "SMPGC.h"
+#include <vector>
+#include <unordered_map>
+#include <iostream>
+#include <omp.h>
+#include "ColPackHeaders.h" //#include "GraphOrdering.h"
+
+using namespace std;
+
+namespace ColPack {
+// ============================================================================
+// Shared Memory Parallel Graph Coloring Core 
+// ----------------------------------------------------------------------------
+// the graphs are stored uisng using CSR format. 
+// a, ia, ja. are names inherited from Intel MKL Api
+// usually known as non-zero-values,  col-pointers,  col-values
+// ============================================================================
+class SMPGCGraph: public SMPGC{
+public: // Constructions
+    SMPGCGraph();
+    SMPGCGraph(const string& fname, const string& format, double*iotime);
+    virtual ~SMPGCGraph();
+public: // Constructions
+    SMPGCGraph(SMPGCGraph&&)=delete;
+    SMPGCGraph(const SMPGCGraph&)=delete;
+    SMPGCGraph& operator=(SMPGCGraph&&)=delete; 
+    SMPGCGraph& operator=(const SMPGCGraph&)=delete; 
+
+public: // APIs
+    int    num_nodes()  const { return m_ia.empty()?0:(m_ia.size()-1); }
+    double avg_degree() const { return m_avg_degree; }
+    int    max_degree() const { return m_max_degree; }
+    int    min_degree() const { return m_min_degree; }
+
+    const vector<int>&    get_CSR_ia() const { return m_ia; }
+    const vector<int>&    get_CSR_ja() const { return m_ja; }
+    const vector<double>& get_CSR_a () const { return m_a;  }
+    
+
+protected: // implements
+    virtual void do_read_Metis_struct(const string &fname, vector<int>&vi, vector<int>&vj, int*p_maxdeg, int*p_mindeg, double *p_avgdeg, double*iotime);
+    virtual void do_read_MM_struct(const string& fname, vector<int>&vi, vector<int>&vj, int*p_maxdeg, int*p_mindeg, double *p_avgdeg, double*iotime);
+    //virtual void do_read_Binary_struct(const string& fname, vector<int>&vi, vector<int>&vj, int *p_maxdeg, int*p_mindeg, double*p_avgdeg, double*iotime);
+    //virtual void do_write_Binary_struct(const string& fname, vector<int>&vi, vector<int>&vj, double*iotime);
+
+protected:
+    // CSR format, using Intel MKL naming
+    vector<int>    m_ia; //known as verPtr; size: graph size + 1
+    vector<int>    m_ja; //known as verVal; size: nnz
+    vector<double> m_a;  //known as nzval;  size: nnz
+
+    int    m_max_degree;
+    int    m_min_degree;
+    double m_avg_degree;
+
+    string m_graph_name;
+};
+
+}
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCOrdering.cpp
@@ -0,0 +1,357 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "SMPGCOrdering.h"
+#include <time.h>  //clock
+using namespace std;
+using namespace ColPack;
+
+
+// ============================================================================
+// Construction
+// ============================================================================
+SMPGCOrdering::SMPGCOrdering(const string& graph_name, const string& fmt, double*iotime,  const string& order="NATURAL", double* ordtime=nullptr) 
+: SMPGCGraph(graph_name, fmt, iotime), m_mt(SMPGC::RAND_SEED) {
+    const int N = num_nodes();
+    m_global_ordered_vertex.assign(N,0);
+    global_ordering(order, ordtime);
+}
+
+SMPGCOrdering::~SMPGCOrdering(){}
+
+
+// ============================================================================
+// 
+// ============================================================================
+void SMPGCOrdering::global_ordering(const string& order="NATURAL", double * ordtime=nullptr){
+    if(ordtime) *(time_t*)ordtime=-clock();
+
+    if(order == "NATURAL") 
+        global_natural_ordering();
+    else if(order == "RANDOM") 
+        global_random_ordering ();
+    else if(order == "LARGEST_FIRST")
+        global_largest_degree_first_ordering();
+    else{
+        fprintf(stderr, "Err! SMPGCOrdering::Unknow order %s\n",order.c_str());
+        exit(1);
+    }
+    if(ordtime){ *(time_t*)ordtime+=clock(); *ordtime =(double)(*(time_t*)ordtime)/CLOCKS_PER_SEC; }
+}
+
+// ============================================================================
+// Natural is 0 1 2 3 4 5 6 7 ...
+// ============================================================================
+void SMPGCOrdering::global_natural_ordering(){
+    const int N = num_nodes();
+    m_global_ordered_vertex.resize(N);
+    for(int i=0; i<N; i++) m_global_ordered_vertex[i]=i;
+    m_global_ordered_method = "NATURAL";
+}
+
+// ============================================================================
+// Random is shuffle to natural
+// ============================================================================
+void SMPGCOrdering::global_random_ordering () {
+    const int N = num_nodes();
+    m_global_ordered_vertex.resize(N);
+    for(int i=0; i<N; i++) m_global_ordered_vertex[i]=i;
+    if(N<=1) return;
+    for(int i=0; i<N-1; i++){
+        uniform_int_distribution<int> dist(i, N-1); 
+        swap(m_global_ordered_vertex[i], m_global_ordered_vertex[dist(m_mt)]);
+    }
+    m_global_ordered_method = "RANDOM";
+}
+
+// ============================================================================
+// Largest Degree First
+// ============================================================================
+void SMPGCOrdering::global_largest_degree_first_ordering(){
+
+
+    const int N = num_nodes();
+    const vector<int>& verPtr = get_CSR_ia();
+    const int MaxDegreeP1 = max_degree()+1; //maxDegree
+    vector<vector<int>> GroupedVertexDegree(MaxDegreeP1);
+    
+    m_global_ordered_vertex.clear();
+    m_global_ordered_method = "LARGEST_FIRST"; 
+    for(int v=0; v<N; v++){
+        GroupedVertexDegree[-verPtr[v]+verPtr[v+1]].push_back(v);
+    }
+   
+
+    for(int d=MaxDegreeP1-1, it=MaxDegreeP1; it!=0; it--, d--){
+        m_global_ordered_vertex.insert(m_global_ordered_vertex.end(), GroupedVertexDegree[d].begin(), GroupedVertexDegree[d].end());
+    }
+
+    GroupedVertexDegree.clear();
+}
+
+
+// ============================================================================
+// local Natural is just sort ...
+// ============================================================================
+void SMPGCOrdering::local_natural_ordering(vector<int>&vtxs){
+    sort(vtxs.begin(), vtxs.end());
+}
+
+// ============================================================================
+// Random is shuffle to natural
+// ============================================================================
+void SMPGCOrdering::local_random_ordering (vector<int>&vtxs) {
+    sort(vtxs.begin(), vtxs.end());
+    const int N=vtxs.size();
+    if(N<=1) return;
+    for(int i=0; i<N-1; i++){
+        uniform_int_distribution<int> dist(i, N-1); 
+        swap(vtxs[i], vtxs[dist(m_mt)]);
+    }
+}
+
+// ============================================================================
+// Largest Degree First
+// ============================================================================
+void SMPGCOrdering::local_largest_degree_first_ordering(vector<int>& vtxs, const int beg, const int end){
+    const vector<int>& verPtr = get_CSR_ia();
+    const int MaxDegreeP1 = max_degree()+1; //maxDegree
+
+    vector<vector<int>> GroupedVertexDegree(MaxDegreeP1);
+    
+    for(auto i=beg; i<end; i++){
+        const auto v  = vtxs[i];
+        const int deg = verPtr[v+1]-verPtr[v];
+        GroupedVertexDegree[deg].push_back(v);
+    }
+    
+    int pos=beg;
+    for(int d=MaxDegreeP1-1, it=MaxDegreeP1; it!=0; it--, d--){
+        for(const auto v : GroupedVertexDegree[d]){
+            vtxs[pos++]=v;
+        }
+    }
+
+    GroupedVertexDegree.clear();
+}
+
+
+// ============================================================================
+// Largest Degree First
+// ============================================================================
+void SMPGCOrdering::local_largest_degree_first_ordering(vector<int>& vtxs){
+    const vector<int>& verPtr = get_CSR_ia();  
+    const int MaxDegreeP1 = max_degree()+1; //maxDegree
+
+    vector<vector<int>> GroupedVertexDegree(MaxDegreeP1);
+    
+    for(const auto v : vtxs) {
+        const int deg = verPtr[v+1]-verPtr[v];
+        GroupedVertexDegree[deg].push_back(v);
+    }
+   
+    vtxs.clear();
+    for(int d=MaxDegreeP1-1, it=MaxDegreeP1; it!=0; it--, d--){
+        vtxs.insert(vtxs.end(), GroupedVertexDegree[d].begin(), GroupedVertexDegree[d].end());
+    }
+
+    GroupedVertexDegree.clear();
+}
+
+
+
+
+
+// ============================================================================
+// Smallest Degree Last 
+// ----------------------------------------------------------------------------
+// There are many varivations
+//  * the smallest degree vertices are picked 
+//    A.  one by one
+//    B.  whole as a batch
+//  * the smallest degree is 
+//    1.  calculated accurately
+//    2.  considering only increasing for each iteration
+// ----------------------------------------------------------------------------
+// In term of accurate, A>B, 1>2;
+// In term of speed,    B>A, 2>1;
+// The following implementation is B1.
+// ----------------------------------------------------------------------------
+// Smallest Degree Last Local
+// ----------------------------------------------------------------------------
+// local make things complicated, since inter(cross) edge does not update
+//  * a. consider the cross edges as lighter weight edges
+//  * b. consider the cross edge is the same as inner edge
+// The following implementation is b
+// ============================================================================
+void SMPGCOrdering::local_smallest_degree_last_ordering(vector<int>& vtxs){
+    const vector<int>& verPtr = get_CSR_ia();
+    const vector<int>& verVal = get_CSR_ja();
+    const int MaxDegreeP1 = max_degree()+1;
+    const int N = num_nodes();
+    const auto Nloc = vtxs.size();
+    vector<int> Vertex2Degree(N,-1);
+    vector<int> Vertex2Index(N,-1);
+    vector<vector<int>> GroupedVertexDegree(MaxDegreeP1);
+    int max_deg = 0;
+    int min_deg = MaxDegreeP1-1;
+    // set up environment
+    for(const auto v: vtxs){ 
+        const int deg = verPtr[v+1]-verPtr[v];
+        Vertex2Degree[v]=deg;
+        Vertex2Index [v]=GroupedVertexDegree[deg].size();
+        GroupedVertexDegree[deg].push_back(v);
+        if(max_deg<deg) max_deg=deg;
+        if(min_deg>deg) min_deg=deg;
+    }
+
+    vtxs.clear();
+    while(vtxs.size()!=Nloc){
+        const auto prev_vtxs_size=vtxs.size();
+        
+        // picked up lowest degree vertices, move to order, remove from graph
+        for(; min_deg<=max_deg; min_deg++){
+            if(GroupedVertexDegree[min_deg].empty())
+                continue;
+            vtxs.insert(vtxs.end(), GroupedVertexDegree[min_deg].begin(), GroupedVertexDegree[min_deg].end());
+            for(auto v : GroupedVertexDegree[min_deg]){
+                Vertex2Degree[v]=-1;
+                Vertex2Index [v]=-1;
+            }
+            break;
+        }
+        GroupedVertexDegree[min_deg].clear();
+        // for all their neighbors decrease degree by one, if it's a inner edge
+        for(auto vit=prev_vtxs_size; vit<vtxs.size(); vit++){
+            auto v= vtxs[vit];  //selected v
+            for(auto wit = verPtr[v], witEnd=verPtr[v+1]; wit<witEnd; wit++) {
+                const int w = verVal[wit];
+                const int deg = Vertex2Degree[w];
+                if(deg<=0){ // <0 means w is not local, or have deleted; =0 should not happe  
+                    continue;
+                }
+                const int degM1 = deg-1;
+                if(min_deg > degM1) min_deg=degM1;
+                auto tmpv = GroupedVertexDegree[deg][Vertex2Index[w]] = GroupedVertexDegree[deg].back();
+                Vertex2Index [tmpv] = Vertex2Index[w];
+                GroupedVertexDegree[deg].pop_back();
+                Vertex2Degree[w] = degM1;
+                Vertex2Index [w] = GroupedVertexDegree[degM1].size();
+                GroupedVertexDegree[degM1].push_back(w);
+            }//end of for w
+        }//end of for v
+    
+    }//end of while
+    return;    
+}
+
+/*
+
+// ============================================================================
+// Smallest Degree Last 
+// ----------------------------------------------------------------------------
+// There are many varivations
+//  * the smallest degree vertices are picked 
+//    A.  one by one
+//    B.  whole as a batch
+//  * the smallest degree is 
+//    1.  calculated accurately
+//    2.  considering only increasing for each iteration
+// ----------------------------------------------------------------------------
+// In term of accurate, A>B, 1>2;
+// In term of speed,    B>A, 2>1;
+// The following implementation is B1.
+// ----------------------------------------------------------------------------
+// Smallest Degree Last Local
+// ----------------------------------------------------------------------------
+// local make things complicated, since inter(cross) edge does not update
+//  * a. consider the cross edges as lighter weight edges
+//  * b. consider the cross edge is the same as inner edge
+// The following implementation is a
+// ============================================================================
+void SMPGCOrdering::local_smallest_degree_last_ordering_B1a(vector<int>& vtxs){
+    const vector<int> verPtr = get_CSR_ia();
+    const vector<int> verVal = get_CSR_ja();
+    const int MaxDegreeP1 = max_degree()+1;
+    const int N = num_nodes();
+    const auto Nloc = vtxs.size();
+    vector<bool> VertexIsLocal(N, false);
+    for(auto v : vtxs) VertexIsLocal[v]=true;
+
+    vector<int> Vertex2Degree(N,-1);
+    vector<int> Vertex2Index(N,-1);
+    vector<vector<int>> GroupedVertexDegree(MaxDegreeP1);
+    int max_deg = 0;
+    int min_deg = MaxDegreeP1-1;
+    // set up environment
+    for(const auto v: vtxs){ 
+        int deg = verPtr[v+1]-verPtr[v];
+        int inter_deg=0;
+        for(auto wit = verPtr[v], witEnd=verPtr[v+1]; wit<witEnd; wit++) {
+            const auto w = verVal[wit];
+            if(VertexIsLocal[w])
+                inter_deg++;
+        }
+        
+        deg-=inter_deg;
+
+        Vertex2Degree[v]=deg;
+        Vertex2Index [v]=GroupedVertexDegree[deg].size();
+        GroupedVertexDegree[deg].push_back(v);
+        if(max_deg<deg) max_deg=deg;
+        if(min_deg>deg) min_deg=deg;
+    }
+
+    vtxs.clear();
+    while(vtxs.size()!=Nloc){
+        const auto prev_vtxs_size=vtxs.size();
+        
+        // picked up lowest degree vertices, move to order, remove from graph
+        for(; min_deg<=max_deg; min_deg++){
+            if(GroupedVertexDegree[min_deg].empty())
+                continue;
+            vtxs.insert(vtxs.end(), GroupedVertexDegree[min_deg].begin(), GroupedVertexDegree[min_deg].end());
+            for(auto v : GroupedVertexDegree[min_deg]){
+                Vertex2Degree[v]=-1;
+                Vertex2Index [v]=-1;
+            }
+            break;
+        }
+        GroupedVertexDegree[min_deg].clear();
+        // for all their neighbors decrease degree by one, if it's a inner edge
+        for(auto vit=prev_vtxs_size; vit<vtxs.size(); vit++){
+            auto v= vtxs[vit];  //selected v
+            for(auto wit = verPtr[v], witEnd=verPtr[v+1]; wit<witEnd; wit++) {
+                auto w = verVal[wit];
+                const int deg = Vertex2Degree[w];
+                if(deg<=0){ // <0 means w is not local, or have deleted; =0 should not happe  
+                    continue;
+                }
+                const int degM1 = deg-1;
+                if(min_deg > degM1) min_deg=degM1;
+                auto tmpv = GroupedVertexDegree[deg][Vertex2Index[w]] = GroupedVertexDegree[deg].back();
+                Vertex2Index [tmpv] = Vertex2Index[w];
+                GroupedVertexDegree[deg].pop_back();
+                Vertex2Degree[w] = degM1;
+                Vertex2Index [w] = GroupedVertexDegree[degM1].size();
+                GroupedVertexDegree[degM1].push_back(w);
+            }//end of for w
+        }//end of for v
+    
+    }//end of while
+    return;    
+}
+
+
+// ==
+//
+// ==
+//void SMPGCOrdering::DynamicLargestDegreeFirstOrdering(vector<INT>& vtxs, INT N){
+
+//}
+
+*/
+
--- /dev/null
+++ colpack-1.0.10/src/SMPGC/SMPGCOrdering.h
@@ -0,0 +1,89 @@
+/******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+#ifndef SMPGCORDERING_H
+#define SMPGCORDERING_H
+#include <vector>
+#include <iostream>
+#include <omp.h>
+#include "ColPackHeaders.h" //#include "GraphOrdering.h"
+#include "SMPGCGraph.h"
+#include <random>
+#include <algorithm>
+
+using namespace std;
+
+namespace ColPack {
+
+//=============================================================================
+// Shared Memeory Parallel (Greedy)/Graph Coloring -> SMPGC
+// ----------------------------------------------------------------------------
+// 
+// SMPGC includes three main algorithms
+// * GM's Algorithm: Gebremedhin and Manne[1].
+// * IP's Algorithm: Catalyurek Feo Gebremedhin and Halappanavar[2]
+// * JP's Algorithm: Jones and Plassmann[3]
+// * Luby's Alg
+// * JP-LF
+// * JP_SL
+// ----------------------------------------------------------------------------
+// [1] Scalable Parallel Graph Coloring Algorithms
+// [2] Grah coloring algorithms for multi-core and massively multithreaded architectures
+// [3] A Parallel Graph Coloring Heuristic
+//=============================================================================
+    
+
+
+
+// ============================================================================
+// Shared Memory Parallel Greedy/Graph Coloring Ordering wrap
+// ============================================================================
+class SMPGCOrdering : public SMPGCGraph {
+public: // construction
+    SMPGCOrdering(const string& file_name, const string& fmt, double*iotime, const string& order, double *ordtime);
+    virtual ~SMPGCOrdering();
+
+public: // deplete construction
+    SMPGCOrdering(SMPGCOrdering&&)=delete;
+    SMPGCOrdering(const SMPGCOrdering&)=delete;
+    SMPGCOrdering& operator=(SMPGCOrdering&&)=delete;
+    SMPGCOrdering& operator=(const SMPGCOrdering&)=delete;
+
+public: // API: global ordering
+    void global_ordering(const string& order, double*t);
+    const vector<int>& global_ordered_vertex() const { return m_global_ordered_vertex; }
+    const string&      global_ordered_method() const { return m_global_ordered_method; }
+    void set_rseed(const int x){ m_mt.seed(x); }
+
+protected:
+    void global_natural_ordering();
+    void global_random_ordering();
+    void global_largest_degree_first_ordering();
+
+protected: // API: local ordering
+    void local_natural_ordering(vector<int>& vtxs);
+    void local_random_ordering (vector<int>& vtxs);
+    void local_largest_degree_first_ordering(vector<int>& vtxs); 
+    void local_largest_degree_first_ordering(vector<int>& vtxs, const int beg, const int end); 
+    void local_smallest_degree_last_ordering(vector<int>& vtxs);
+    void local_smallest_degree_last_ordering_B1a(vector<int>& vtxs);
+    
+    //void SmallestDegreeLastOrdering(vector<INT>& vtxs, INT N);
+    //void DynamicLargestDegreeFirstOrdering(vector<INT>& vtxs, INT N);
+    //void IncidenceDegreeOrdering(vector<INT>& vtxs, INT N);
+    //void LogOrdering(vector<INT>& vtxs, INT N);
+
+protected: // members
+    vector<int> m_global_ordered_vertex;   
+    string      m_global_ordered_method;
+    mt19937     m_mt;
+};
+
+
+
+
+}// endof namespace ColPack
+#endif
+
--- /dev/null
+++ colpack-1.0.10/src/Utilities/CoutLock.cpp
@@ -0,0 +1,31 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "Definitions.h"
+
+#include "CoutLock.h"
+
+namespace ColPack
+{
+#ifdef _OPENMP
+	omp_lock_t CoutLock::coutLock;
+#endif
+
+	int CoutLock::unset()
+	{
+#ifdef _OPENMP
+		omp_unset_lock(&CoutLock::coutLock);
+#endif
+		return 0;
+	}
+	int CoutLock::set()
+	{
+#ifdef _OPENMP
+		omp_set_lock(&CoutLock::coutLock);
+#endif
+		return 0;
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/CoutLock.h
@@ -0,0 +1,35 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef COUTLOCK_H
+#define COUTLOCK_H
+
+#ifdef _OPENMP
+	#include <omp.h>
+#endif
+
+namespace ColPack
+{
+	/** @ingroup group4
+	 *  @brief class CoutLock in @link group4@endlink.
+
+	 The CoutLock class is used in a multi-thread environment to support printing strings to standard output in a readable manner.
+	 Here is how you do cout:
+	 CoutLock::set(); cout<<"blah blah blah"<<int<<endl;CoutLock::unset();
+	 */
+
+	class CoutLock
+	{
+	public:
+#ifdef _OPENMP
+		static omp_lock_t coutLock;
+#endif
+
+		static int set();
+		static int unset();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/DisjointSets.cpp
@@ -0,0 +1,214 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+#include "Definitions.h"
+
+#include "DisjointSets.h"
+
+namespace ColPack
+{
+	//Public Constructor 4251
+	DisjointSets::DisjointSets()
+	{
+
+	}
+
+
+	//Public Constructor 4252
+	DisjointSets::DisjointSets(int li_SetSize)
+	{
+		p_vi_Nodes.clear();
+		p_vi_Nodes.resize((unsigned) li_SetSize, _UNKNOWN);
+	}
+
+
+	//Public Destructor 4253
+	DisjointSets::~DisjointSets()
+	{
+		p_vi_Nodes.clear();
+	}
+
+
+	//Public Function 4254
+	int DisjointSets::SetSize(int li_SetSize)
+	{
+		p_vi_Nodes.clear();
+		p_vi_Nodes.resize((unsigned) li_SetSize, _UNKNOWN);
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 4255
+	int DisjointSets::Count()
+	{
+		int i;
+
+		int li_SetSize, li_HeadCount;
+
+		li_SetSize = (signed) p_vi_Nodes.size();
+
+		li_HeadCount = _FALSE;
+
+		for(i=0; i<li_SetSize; i++)
+		{
+			if(p_vi_Nodes[i] < _FALSE)
+			{
+				li_HeadCount++;
+			}
+		}
+
+		return(li_HeadCount);
+	}
+
+
+	//Public Function 4256
+	int DisjointSets::Print()
+	{
+		int i;
+
+		int li_SetSize;
+
+		cout<<endl;
+		cout<<"Disjoint Sets | Tree Structure | Present State"<<endl;
+		cout<<endl;
+
+		li_SetSize = (signed) p_vi_Nodes.size();
+
+		for(i=0; i<li_SetSize; i++)
+		{
+			if(i == STEP_DOWN(li_SetSize))
+			{
+				cout<<p_vi_Nodes[i]<<" ("<<li_SetSize<<")"<<endl;
+			}
+			else
+			{
+				cout<<p_vi_Nodes[i]<<", ";
+			}
+		}
+
+		return(_TRUE);
+	}
+
+
+	//Public Function 4257
+	int DisjointSets::Find(int li_Node)
+	{
+		if(p_vi_Nodes[li_Node] < _FALSE)
+		{
+			return(li_Node);
+		}
+		else
+		{
+			return(Find(p_vi_Nodes[li_Node]));
+		}
+	}
+
+
+
+	//Public Function 4258
+	int DisjointSets::FindAndCompress(int li_Node)
+	{
+		if(p_vi_Nodes[li_Node] < _FALSE)
+		{
+			return(li_Node);
+		}
+		else
+		{
+			return(p_vi_Nodes[li_Node] = FindAndCompress(p_vi_Nodes[li_Node]));
+		}
+	}
+
+	/* Written by Duc Nguyen
+	int DisjointSets::Union(int li_SetOne, int li_SetTwo)
+	{
+		if(li_SetOne == li_SetTwo)
+		{
+			return(_TRUE);
+		}
+
+		p_vi_Nodes[li_SetTwo] = li_SetOne;
+
+		return(li_SetOne);
+	}*/
+
+	//* Written by Arijit but seem to be incorrect
+	//Public Function 4259
+	int DisjointSets::Union(int li_SetOne, int li_SetTwo)
+	{
+		if(li_SetOne == li_SetTwo)
+		{
+			return(_TRUE);
+		}
+
+		p_vi_Nodes[li_SetOne] = p_vi_Nodes[li_SetTwo];
+
+		return(_TRUE);
+	}
+	//*/
+
+
+	//Public Function 4260
+	int DisjointSets::UnionByRank(int li_SetOne, int li_SetTwo)
+	{
+		if(li_SetOne == li_SetTwo)
+		{
+		return(_TRUE);
+		}
+
+		if(p_vi_Nodes[li_SetOne] == p_vi_Nodes[li_SetTwo])
+		{
+			p_vi_Nodes[li_SetOne]--;
+
+			p_vi_Nodes[li_SetTwo] = li_SetOne;
+		}
+		if(p_vi_Nodes[li_SetOne] < p_vi_Nodes[li_SetTwo])
+		{
+			p_vi_Nodes[li_SetTwo] = li_SetOne;
+		}
+		else
+		{
+			p_vi_Nodes[li_SetTwo] = p_vi_Nodes[li_SetOne];
+
+			p_vi_Nodes[li_SetOne] = li_SetTwo;
+		}
+
+		return(_TRUE);
+	}
+
+
+
+	//Public Function 4261
+	int DisjointSets::UnionBySize(int li_SetOne, int li_SetTwo)
+	{
+		if(li_SetOne == li_SetTwo)
+		{
+			return(_TRUE);
+		}
+
+		if(p_vi_Nodes[li_SetOne] < p_vi_Nodes[li_SetTwo])
+		{
+			p_vi_Nodes[li_SetOne] += p_vi_Nodes[li_SetTwo];
+
+			p_vi_Nodes[li_SetTwo] = li_SetOne;
+		}
+		else
+		{
+			p_vi_Nodes[li_SetTwo] += p_vi_Nodes[li_SetOne];
+
+			p_vi_Nodes[li_SetOne] = li_SetTwo;
+
+		}
+
+		return(_TRUE);
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/DisjointSets.h
@@ -0,0 +1,92 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef DISJOINTSETS_H
+#define DISJOINTSETS_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group4
+	 *  @brief class DisjointSets in @link group4@endlink.
+
+	 The disjoint set class is used by ColPack to store and operate on disjoint sets of edges identified by
+	 integer numbers. A disjoint set class can be instantiated by specifying the maximum number of such sets to
+	 be stored. The elements in a set are stored as a tree and the identifier of the set (SetID) is the identifier of the root.
+	 The size of the tree is stored in the root and the parent of an element is stored in the element. The tree is
+	 implemented simply as a vector of integers the indices being the identifiers of the elements.
+	*/
+	class DisjointSets
+	{
+	 private:
+
+		vector<int> p_vi_Nodes;
+
+	 public:
+
+		//Public Constructor 4251
+		DisjointSets();
+
+		//Public Constructor 4252
+		DisjointSets(int);
+
+		//Public Destructor 4253
+		~DisjointSets();
+
+		//Public Function 4254
+		/// Set the size of this DisjointSets object, i.e. resize the vector p_vi_Nodes
+		int SetSize(int);
+
+		//Public Function 4255
+		/// Count the number of sets contained by this DisjointSets object
+		int Count();
+
+		//Public Function 4256
+		/// Print out the elements' ID and their values (i.e., p_vi_Nodes's IDs and values)
+		int Print();
+
+		//Public Function 4257
+		/// Find the Set ID of this element
+		int Find(int);
+
+		//Public Function 4258
+		/// Find the Set ID of this element, also shorten the tree by updating all elements with its new SetID
+		int FindAndCompress(int);
+
+		//Public Function 4259
+		/// Union li_SetOne with li_SetTwo by seting li_SetOne to be the parent of li_SetTwo
+		/**
+		Return the SetID of the new set. In this case, SetID will be li_SetOne
+		*/
+		int Union(int li_SetOne, int li_SetTwo);
+
+		//Public Function 4260
+		/// Union li_SetOne with li_SetTwo by their ranks
+		/**
+		Rank: the upper bound on the height of the tree (or set)
+		The root of each set will hold its the negate of its set rank
+		i.e. rank of set 2 is (-p_vi_Nodes[2])
+
+		Note: UnionByRank() and UnionBySize() can not be used together to solve the same
+		problem due to the different meaning of the root's value
+		*/
+		int UnionByRank(int li_SetOne, int li_SetTwo);
+
+		//Public Function 4261
+		/// Union li_SetOne with li_SetTwo by their sizes
+		/**
+		The root of each set will hold its the negate of its set size
+		i.e. size of set 2 is (-p_vi_Nodes[2])
+
+		Note: UnionByRank() and UnionBySize() can not be used together to solve the same
+		problem due to the different meaning of the root's value
+		*/
+		int UnionBySize(int li_SetOne, int li_SetTwo);
+
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/File.cpp
@@ -0,0 +1,107 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include <string>
+
+#include "Definitions.h"
+
+#include "File.h"
+
+using namespace std;
+
+namespace ColPack
+{
+	File::File()
+	{
+		path = "";
+		name = "";
+		fileExtension = "";
+	}
+
+	File::File(string fileName)
+	{
+		path = "";
+		name = "";
+		fileExtension = "";
+		Parse(fileName);
+	}
+
+	string File::GetPath() const {return path;}
+
+	string File::GetName() const {return name;}
+
+	string File::GetFileExtension() const {return fileExtension;}
+
+	string File::GetFullName() const {return name+"."+fileExtension;}
+
+	void File::SetPath(string newPath) {path = newPath;}
+
+	void File::SetName(string newName) {name = newName;}
+
+	void File::SetFileExtension(string newFileExtension) {fileExtension = newFileExtension;}
+
+	void File::Parse(string fileName) {
+		string::size_type result;
+
+		//1. see if the fileName is given in full path
+		result = fileName.rfind(DIR_SEPARATOR, fileName.size() - 1);
+		if(result != string::npos) {//found the path (file prefix)
+			//get the path, including the last DIR_SEPARATOR
+			path = fileName.substr(0,result+1);
+			//remove the path from the fileName
+			fileName = fileName.substr(result+1);
+		}
+
+		//2. see if the fileName has file extension. For example ".mtx"
+		result = fileName.rfind('.', fileName.size() - 1);
+		if(result != string::npos) {//found the fileExtension
+			//get the fileExtension excluding the '.'
+			fileExtension = fileName.substr(result+1);
+			//remove the fileExtension from the fileName
+			fileName = fileName.substr(0,result);
+		}
+
+		//3. get the name of the input file
+		name = fileName;
+	}
+
+	bool isMatrixMarketFormat(string s_fileExtension) {
+		if (s_fileExtension == "mtx")
+			return true;
+		return false;
+	}
+
+	bool isHarwellBoeingFormat(string s_fileExtension){
+		if (s_fileExtension == "hb" || (
+				s_fileExtension.size()==3 && (
+					// First Character of the Extension
+					s_fileExtension[0] == 'r' ||	// Real matrix
+					s_fileExtension[0] == 'c' ||	// Complex matrix
+					s_fileExtension[0] == 'p'		// Pattern only (no numerical values supplied)
+				) && (
+					// Second Character of the Extension
+					s_fileExtension[1] == 's' ||	// Symmetric
+					s_fileExtension[1] == 'u' ||	// Unsymmetric
+					s_fileExtension[1] == 'h' ||	// Hermitian
+					s_fileExtension[1] == 'g' ||	// Skew symmetric
+					s_fileExtension[1] == 'r'		// Rectangular
+				) && (
+					// Third Character of the Extension
+					s_fileExtension[2] == 'a' ||	// Assembled
+					s_fileExtension[2] == 'e'		// Elemental matrices (unassembled)
+				))
+			)
+			return true;
+		return false;
+	}
+
+	bool isMeTiSFormat(string s_fileExtension){
+		if (s_fileExtension == "graph")
+			return true;
+		return false;
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/File.h
@@ -0,0 +1,74 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef FILE_H
+#define FILE_H
+
+#include<string>
+
+using namespace std;
+
+//#undef _WIN32
+
+//define system-dependent directory separator
+#ifdef _WIN32	//Windows
+#define DIR_SEPARATOR "\\"
+#else			//*nix
+#define DIR_SEPARATOR "/"
+#endif
+
+
+namespace ColPack
+{
+	/** @ingroup group4
+	 *  @brief class File in @link group4@endlink.
+
+	 The File class is used to process file name. It should work on both Windows and *nix. A File object will
+	 take a file name, parse and separate it into 3 parts: path (name prefix), name, and file extension.
+	 */
+	class File
+	{
+	  private:
+
+		string path; //including the last DIR_SEPARATOR
+		string name;
+		string fileExtension; //excluding the '.'
+
+	  public:
+
+		File();
+
+		File(string fileName);
+
+		void Parse(string newFileName);
+
+		string GetPath() const;
+
+		string GetName() const;
+
+		///GetFileExtension excluding the '.'
+		string GetFileExtension() const;
+
+		string GetFullName() const;
+
+		void SetPath(string newPath);
+
+		void SetName(string newName);
+
+		void SetFileExtension(string newFileExtension);
+
+	};
+
+	///Tell whether or not the file format is MatrixMarket from its extension
+	bool isMatrixMarketFormat(string s_fileExtension);
+
+	///Tell whether or not the file format is HarwellBoeing from its extension
+	bool isHarwellBoeingFormat(string s_fileExtension);
+
+	///Tell whether or not the file format is MeTiS from its extension
+	bool isMeTiSFormat(string s_fileExtension);
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/MatrixDeallocation.cpp
@@ -0,0 +1,43 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "MatrixDeallocation.h"
+
+int MatrixDeallocation_SparseSolversFormat(unsigned int **ip2_RowIndex, unsigned int **ip2_ColumnIndex, double **dp2_JacobianValue) {
+  //Deallocate the arrays
+  delete[] (*ip2_RowIndex);
+  delete ip2_RowIndex;
+
+  delete[] (*ip2_ColumnIndex);
+  delete ip2_ColumnIndex;
+
+  delete[] (*dp2_JacobianValue);
+  delete dp2_JacobianValue;
+
+  return _TRUE;
+}
+
+int MatrixDeallocation_RowCompressedFormat(double ***dp3_HessianValue, unsigned int i_numOfRows) {
+  //Deallocate the 2D Matrix
+	free_2DMatrix(dp3_HessianValue, i_numOfRows);
+	return _TRUE;
+}
+
+
+int MatrixDeallocation_CoordinateFormat(unsigned int **ip2_RowIndex, unsigned int **ip2_ColumnIndex, double **dp2_HessianValue) {
+  //Deallocate the arrays
+  delete[] (*ip2_RowIndex);
+  delete ip2_RowIndex;
+
+  delete[] (*ip2_ColumnIndex);
+  delete ip2_ColumnIndex;
+
+  delete[] (*dp2_HessianValue);
+  delete dp2_HessianValue;
+
+  return _TRUE;
+}
+
--- /dev/null
+++ colpack-1.0.10/src/Utilities/MatrixDeallocation.h
@@ -0,0 +1,49 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "Definitions.h"
+
+#ifndef MATRIXDEALLOCATION_H
+#define MATRIXDEALLOCATION_H
+
+/// Deallocate all the memory reserved for a matrix presented in Sparse Solvers Format
+/**  Postcondition:
+    - ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue become dangling pointers. So for safety reasons, please set ip2_RowIndex, ip2_ColumnIndex, dp2_JacobianValue to NULL after calling this function.
+*/
+int MatrixDeallocation_SparseSolversFormat(unsigned int **ip2_RowIndex, unsigned int **ip2_ColumnIndex, double **dp2_JacobianValue);
+
+/// Deallocate all the memory reserved for a matrix presented in ADOLC Format
+/** Postcondition:
+    - dp3_HessianValue become dangling pointers. So for safety reasons, please set dp3_HessianValue to NULL after calling this function.
+*/
+int MatrixDeallocation_RowCompressedFormat(double ***dp3_HessianValue, unsigned int i_numOfRows);
+
+/** Deallocate all the memory reserved for a matrix presented in Coordinate Format
+    Postcondition:
+    - ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue become dangling pointers. So for safety reasons, please set ip2_RowIndex, ip2_ColumnIndex, dp2_HessianValue to NULL after calling this function.
+*/
+int MatrixDeallocation_CoordinateFormat(unsigned int **ip2_RowIndex, unsigned int **ip2_ColumnIndex, double **dp2_HessianValue);
+
+
+template<typename T>
+int free_2DMatrix(T **dp2_2DMatrix, unsigned int i_numOfRows) {
+  for(unsigned int i=0; i< i_numOfRows; i++) {
+    delete[] (dp2_2DMatrix)[i];
+  }
+  delete[] (dp2_2DMatrix);
+
+  return _TRUE;
+}
+
+template<typename T>
+int free_2DMatrix(T ***dp3_2DMatrix, unsigned int i_numOfRows) {
+	free_2DMatrix(*dp3_2DMatrix,i_numOfRows);
+	delete dp3_2DMatrix;
+
+  return _TRUE;
+}
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/Pause.cpp
@@ -0,0 +1,16 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+//Special pause that work on both Windows and UNIX for both C and C++
+#include "Pause.h"
+
+using namespace std;
+
+void Pause()
+{
+		printf("Press enter to continue ...");
+		getchar();
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/Pause.h
@@ -0,0 +1,13 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include <iostream>
+#include <stdio.h>
+
+//Special pause that work on both Windows and UNIX for both C and C++
+void Pause();
+
+
--- /dev/null
+++ colpack-1.0.10/src/Utilities/StringTokenizer.cpp
@@ -0,0 +1,357 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include <vector>
+#include <string>
+
+using namespace std;
+
+#include "Definitions.h"
+
+#include "StringTokenizer.h"
+
+namespace ColPack
+{
+	//Public Constructor 4151
+	StringTokenizer::StringTokenizer()
+	{
+
+	}
+
+
+	//Public Constructor 4152
+	StringTokenizer::StringTokenizer(char * InputChar)
+	{
+	  string TempInputString(InputChar);
+
+	  InputString = TempInputString;
+	  TokenString = InputString;
+
+	}
+
+
+	//Public Constructor 4153
+	StringTokenizer::StringTokenizer(char * InputChar, char * DelimiterChar)
+	{
+	  string TempInputString(InputChar);
+	  string TempDelimiterString(DelimiterChar);
+
+	  InputString = TempInputString;
+	  TokenString = InputString;
+
+	  DelimiterString = TempDelimiterString;
+
+	}
+
+
+	//Public Constructor 4154
+	StringTokenizer::StringTokenizer(string InputChar, char * DelimiterChar)
+	{
+	  string TempDelimiterString(DelimiterChar);
+
+	  InputString = InputChar;
+	  TokenString = InputString;
+
+	  DelimiterString = TempDelimiterString;
+
+	}
+
+
+	//Public Constructor 4155
+	StringTokenizer::StringTokenizer(string InputChar, string DelimiterChar)
+	{
+	  InputString = InputChar;
+	  TokenString = InputString;
+
+	  DelimiterString = DelimiterChar;
+
+	}
+
+
+	//Public Destructor 4156
+	StringTokenizer::~StringTokenizer()
+	{
+
+
+	}
+
+
+	//Public Function 4157
+	int StringTokenizer::CountTokens()
+	{
+		int TokenCounter = 1;
+
+		int DelimiterPosition;
+
+		int LastPosition;
+
+		int TokenStringLength = TokenString.size();
+		int DelimiterStringLength = DelimiterString.size();
+
+		string DelimiterSubString;
+
+		if(TokenStringLength == 0)
+		{
+			return(0);
+		}
+
+		if(DelimiterStringLength == 0)
+		{
+			return(1);
+		}
+
+		DelimiterPosition = 0;
+		LastPosition = 0;
+
+		for ( ; ; )
+		{
+
+			DelimiterPosition = TokenString.find(DelimiterString, DelimiterPosition);
+
+			if(DelimiterPosition == 0)
+			{
+				DelimiterPosition += DelimiterStringLength;
+
+				continue;
+			}
+
+			if((DelimiterPosition < 0) || (DelimiterPosition == TokenStringLength))
+			{
+				return(TokenCounter);
+			}
+
+			if(DelimiterStringLength != (DelimiterPosition - LastPosition))
+			{
+				//      cout<<"Delimiter Position = "<<DelimiterPosition<<endl;
+
+				TokenCounter++;
+			}
+
+			LastPosition = DelimiterPosition;
+
+			DelimiterPosition += DelimiterStringLength;
+
+		}
+	}
+
+
+
+	//Public Function 4158
+	int StringTokenizer::CountTokens(char * DelimiterChar)
+	{
+	  SetDelimiterString(DelimiterChar);
+
+	  return(CountTokens());
+	}
+
+
+
+	//Public Function 4159
+	string StringTokenizer::GetDelimiterString() const
+	{
+	  return(DelimiterString);
+	}
+
+
+
+	//Public Function 4160
+	string StringTokenizer::GetFirstToken()
+	{
+	  int TokenCount = 0;
+
+	  string StringToken;
+
+	  TokenString = InputString;
+
+	  while(HasMoreTokens())
+	  {
+		if(TokenCount == 1)
+		{
+		  break;
+		}
+
+		StringToken = GetNextToken();
+
+		TokenCount++;
+
+	  }
+
+	  return(StringToken);
+	}
+
+
+	//Public Function 4161
+	string StringTokenizer::GetInputString() const
+	{
+	  return(InputString);
+	}
+
+
+	//Public Function 4162
+	string StringTokenizer::GetLastToken()
+	{
+	  string StringToken;
+
+	  TokenString = InputString;
+
+	  while(HasMoreTokens())
+	  {
+		StringToken = GetNextToken();
+	  }
+
+	  return(StringToken);
+
+	}
+
+
+	//Public Function 4163
+	string StringTokenizer::GetNextToken()
+	{
+	  string Token;
+
+	  int DelimiterPosition;
+
+	  int TokenStringLength = TokenString.size();
+	  int DelimiterStringLength = DelimiterString.size();
+
+	  string DelimiterSubString;
+
+	  if (TokenStringLength == 0)
+	  {
+		return(NULL);
+	  }
+
+	  if (DelimiterStringLength == 0)
+	  {
+		return(InputString);
+	  }
+
+	  DelimiterPosition = TokenString.find(DelimiterString);
+
+	  if(DelimiterPosition == 0)
+	  {
+		for ( ; ; )
+		{
+		  if(TokenString.substr(0, DelimiterStringLength) == DelimiterString)
+		  {
+			TokenString.erase(0, DelimiterStringLength);
+		  }
+		  else
+		  {
+			break;
+		  }
+		}
+
+		DelimiterPosition = TokenString.find(DelimiterString);
+	  }
+
+	  if(DelimiterPosition < 0)
+	  {
+		Token = TokenString;
+
+		TokenString.erase();
+	  }
+	  else
+	  {
+
+		Token = TokenString.substr(0, DelimiterPosition);
+
+		TokenString.erase(0, DelimiterPosition+DelimiterStringLength);
+
+
+		DelimiterPosition = 0;
+
+		for ( ; ; )
+		{
+		  if(TokenString.substr(0, DelimiterStringLength) == DelimiterString)
+		  {
+			TokenString.erase(0, DelimiterStringLength);
+		  }
+		  else
+		  {
+			break;
+		  }
+		}
+
+	  }
+
+	  return(Token);
+	}
+
+
+	//Public Function 4164
+	string StringTokenizer::GetNextToken(char * DelimiterChar)
+	{
+	  SetDelimiterString(DelimiterChar);
+
+	  return(GetNextToken());
+	}
+
+
+	//Public Function 4165
+	string StringTokenizer::GetToken(int TokenPosition)
+	{
+	  int TokenCount = 0;
+
+	  string StringToken;
+
+	  TokenString = InputString;
+
+	  while(HasMoreTokens())
+	  {
+		if(TokenCount == TokenPosition)
+		{
+		  break;
+		}
+
+		StringToken = GetNextToken();
+
+		TokenCount++;
+	  }
+
+	  return(StringToken);
+	}
+
+
+	//Public Function 4166
+	int StringTokenizer::HasMoreTokens()
+	{
+	  return(CountTokens());
+	}
+
+
+	//Public Function 4167
+	int StringTokenizer::HasMoreTokens(char * DelimiterChar)
+	{
+	  SetDelimiterString(DelimiterChar);
+
+	  return(HasMoreTokens());
+	}
+
+
+	//Public Function 4168
+	int StringTokenizer::SetInputString(char * InputChar)
+	{
+	  string TempInputString(InputChar);
+
+	  InputString = TempInputString;
+	  TokenString = InputString;
+
+	  return(0);
+	}
+
+
+	//Public Function 4169
+	int StringTokenizer::SetDelimiterString(char * DelimiterChar)
+	{
+	  string TempDelimiterString(DelimiterChar);
+
+	  DelimiterString = TempDelimiterString;
+
+	  return(0);
+	}
+
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/StringTokenizer.h
@@ -0,0 +1,92 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef STRINGTOKENIZER_H
+#define STRINGTOKENIZER_H
+
+using namespace std;
+
+namespace ColPack
+{
+	/** @ingroup group4
+	 *  @brief class StringTokenizer in @link group4@endlink.
+
+	 The string tokenizer class is provided as an utility class to assist in reading various matrix and graph
+	 format files. As an input file is read line by line as strings, this class is used to tokenize the lines with one
+	 or more tokenizing strings which are generally the separators used in the input file. The string tokens are
+	 then restored to the intended data format without losing the actual precision of the original data. A string
+	 tokenizer class can be instantiated with an input string and an input tokenizer string or character array.
+	 */
+	class StringTokenizer
+	{
+	 private:
+
+		string DelimiterString;
+		string InputString;
+		string TokenString;
+
+	 public:
+
+		//Public Constructor 4151
+		StringTokenizer();
+
+		//Public Constructor 4152
+		StringTokenizer(char *);
+
+		//Public Constructor 4153
+		StringTokenizer(char *, char *);
+
+		//Public Constructor 4154
+		StringTokenizer(string, char *);
+
+		//Public Constructor 4155
+		StringTokenizer(string, string);
+
+		//Public Destructor 4156
+		~StringTokenizer();
+
+		//Public Function 4157
+		int CountTokens();
+
+		//Public Function 4158
+		int CountTokens(char *);
+
+		//Public Function 4159
+		string GetDelimiterString() const;
+
+		//Public Function 4160
+		string GetFirstToken();
+
+		//Public Function 4161
+		string GetInputString() const;
+
+		//Public Function 4162
+		string GetLastToken();
+
+		//Public Function 4163
+		string GetNextToken();
+
+		//Public Function 4164
+		string GetNextToken(char *);
+
+		//Public Function 4165
+		string GetToken(int);
+
+		//Public Function 4166
+		int HasMoreTokens();
+
+		//Public Function 4167
+		int HasMoreTokens(char *);
+
+		//Public Function 4168
+		int SetInputString(char *);
+
+		//Public Function 4169
+		int SetDelimiterString(char *);
+
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/Timer.cpp
@@ -0,0 +1,131 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+//using namespace std;
+
+#include "Definitions.h"
+
+#include "Timer.h"
+
+namespace ColPack
+{
+	//Public Constructor 4351
+	Timer::Timer()
+	{
+
+	}
+
+
+	//Public Destructor 4352
+	Timer::~Timer()
+	{
+
+	}
+
+
+	//Public Function 4354
+	void Timer::Start()
+	{
+
+#ifdef SYSTEM_TIME
+
+		ct_BeginTimer = times(&tms_BeginTimer);
+
+#else
+
+		ct_BeginTimer = clock();
+
+#endif
+
+	}
+
+	//Public Function 4355
+	void Timer::Stop()
+	{
+
+#ifdef SYSTEM_TIME
+
+		ct_EndTimer = times(&tms_EndTimer);
+
+#else
+
+		ct_EndTimer = clock();
+
+#endif
+
+	}
+
+	//Public Function 4356
+	double Timer::GetWallTime()
+	{
+
+#ifdef SYSTEM_TIME
+
+		return (double)(ct_EndTimer - ct_BeginTimer) / CLK_TCK;
+
+#else
+
+		return (double)(ct_EndTimer - ct_BeginTimer) / CLOCKS_PER_SEC;
+
+#endif
+
+	}
+
+	//Public Function 4357
+	double Timer::GetProcessorTime()
+	{
+
+#ifdef SYSTEM_TIME
+
+		double t_UserTime = (double) (tms_EndTimer.tms_utime - tms_BeginTimer.tms_utime) / CLK_TCK;
+		double t_SystemTime = (double) (tms_EndTimer.tms_stime - tms_BeginTimer.tms_stime) / CLK_TCK;
+
+		return(t_UserTime + t_SystemTime);
+
+#else
+
+		return(_UNKNOWN);
+
+#endif
+
+	}
+
+	//Public Function 4358
+	double Timer::GetUserProcessorTime()
+	{
+
+#ifdef SYSTEM_TIME
+
+		double t_UserTime = (double)(tms_EndTimer.tms_utime - tms_BeginTimer.tms_utime) / CLK_TCK;
+
+		return(t_UserTime);
+
+#else
+
+		return(_UNKNOWN);
+
+#endif
+
+	}
+
+	//Public Function 4359
+	double Timer::GetSystemProcessorTime()
+	{
+
+#ifdef SYSTEM_TIME
+
+		double t_SystemTime = (double)(tms_EndTimer.tms_stime - tms_BeginTimer.tms_stime) / CLK_TCK;
+
+		return(t_SystemTime);
+
+#else
+
+		return(_UNKNOWN);
+
+#endif
+
+	}
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/Timer.h
@@ -0,0 +1,85 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "Definitions.h"
+
+#ifdef SYSTEM_TIME
+
+#include <sys/times.h>
+
+#ifndef CLK_TCK
+#define CLK_TCK 100
+#endif
+
+#else
+
+#include <ctime>
+
+#endif
+
+
+#ifndef TIMER_H
+#define TIMER_H
+
+namespace ColPack
+{
+	/** @ingroup group4
+	 *  @brief class Timer in @link group4@endlink.
+
+	 The timer class is the only class in ColPack which has an optional dependency on the operating
+	 system. It offers both system independent C++ timer based on ctime.h or linux/unix dependent timer based
+	 on sys/times.h. The sytem independent timer only gives wall clock time while linux/unix dependent timer
+	 gives wall, processor, user and system times.
+	 */
+	class Timer
+	{
+	  private:
+
+/// UNIX only.  Used to measure longer execution time.
+/** Define SYSTEM_TIME to measure the execution time of a program which may run for more than 30 minutes
+(35.79 minutes or 2,147 seconds to be accurate)
+Reason: In UNIX, CLOCKS_PER_SEC is defined to be 1,000,000 (In Windows, CLOCKS_PER_SEC == 1,000).
+The # of clock-ticks is measured by using variables of type int => max value is 2,147,483,648.
+Time in seconds = # of clock-ticks / CLOCKS_PER_SEC => max Time in seconds = 2,147,483,648 / 1,000,000 ~= 2,147
+*/
+#ifdef SYSTEM_TIME
+
+		struct tms tms_BeginTimer;
+		struct tms tms_EndTimer;
+#endif
+
+		clock_t ct_BeginTimer;
+		clock_t ct_EndTimer;
+
+
+	  public:
+
+		//Public Constructor 4351
+		Timer();
+
+		//Public Destructor 4352
+		~Timer();
+
+		//Public Function 4354
+		void Start();
+
+		//Public Function 4355
+		void Stop();
+
+		//Public Function 4356
+		double GetWallTime();
+
+		//Public Function 4357
+		double GetProcessorTime();
+
+		//Public Function 4358
+		double GetUserProcessorTime();
+
+		//Public Function 4359
+		double GetSystemProcessorTime();
+	};
+}
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/command_line_parameter_processor.cpp
@@ -0,0 +1,19 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include "command_line_parameter_processor.h"
+
+void createArgs(int argc, const char* argv[], vector<string>& arg) {
+	for(int i=0;i<argc;i++) arg.push_back(argv[i]);
+}
+
+int findArg(string argument, vector<string>& arg) {
+	for (unsigned int i=0; i<arg.size(); i++)
+	{
+		if (arg[i]==argument) return i;
+	}
+	return -1;
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/command_line_parameter_processor.h
@@ -0,0 +1,71 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include<iostream>
+#include<string>
+#include<vector>
+
+using namespace std;
+
+/*Convert command line parameters to vector arg for easiness
+Input: argc, argv
+Output: arg
+Precondition: arg is empty
+*/
+void createArgs(int argc, const char* argv[], vector<string>& arg);
+
+//find argument in vector arg
+int findArg(string argument, vector<string>& arg);
+
+//SAMPLE main.cpp
+/*
+#include "command_line_parameter_processor.h"
+
+using namespace std;
+
+int commandLineProcessing(vector<string>& arg);
+
+int main(int argc, const char* argv[] ) {
+	vector<string> arg;
+
+	//get the list of arguments
+	createArgs(argc, argv, arg);
+
+	//process those arguments
+	commandLineProcessing(arg);
+
+	//...
+
+	return 0;
+}
+
+int commandLineProcessing(vector<string>& arg) {
+
+	int num=findArg("-r", arg);
+	if (num!=-1) //argument is found, do something
+	{
+		//...
+	}
+
+	if (findArg("-append", arg) != -1 || findArg("-app", arg) != -1) //append output to the existing file
+	{
+		output_append = true;
+	}
+
+	//"-suffix" has priority over "-suf", i.e., if both "-suffix" and "-suf" are specified, "-suffix <output_suffix>" will be used
+	int result;
+	result = findArg("-suffix", arg);
+	if (result == -1) result = findArg("-suf", arg);
+	if (result != -1) //suffix is specified
+	{
+		output_suffix = arg[result+1];
+	}
+
+	return 0;
+}
+//*/
+
+
--- /dev/null
+++ colpack-1.0.10/src/Utilities/current_time.cpp
@@ -0,0 +1,17 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#include <iostream>
+#include <ctime>
+
+using namespace std;
+
+#include "current_time.h"
+
+void current_time() {
+  time_t curr=time(0);
+  cout << "Current time is: " << ctime(&curr) <<endl;
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/current_time.h
@@ -0,0 +1,13 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef CURRENT_TIME_H
+#define CURRENT_TIME_H
+
+// Display current time
+void current_time();
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/extra.cpp
@@ -0,0 +1,1472 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef EXTRA_CPP
+#define EXTRA_CPP
+
+#include "extra.h"
+#include "Pause.h"
+#include "mmio.h"
+#include <cmath>
+
+int WriteMatrixMarket_ADOLCInput(string s_postfix, int i_mode, ...) {
+  unsigned int ** uip2_SparsityPattern;
+  int i_Matrix_Row;
+  int i_Matrix_Col;
+  double** dp2_CompressedMatrix;
+  int i_CompressedMatrix_Row;
+  int i_CompressedMatrix_Col;
+  double** dp2_Values;
+
+  string s_BaseName = "-ColPack_debug.mtx";
+
+  va_list ap; /*will point to each unnamed argument in turn*/
+  va_start(ap,i_mode); /* point to first element after i_mode*/
+
+  if (i_mode == 0) {
+    uip2_SparsityPattern = va_arg(ap,unsigned int **);
+    i_Matrix_Row = va_arg(ap,int);
+    i_Matrix_Col = va_arg(ap,int);
+
+    string s_MatrixName = "pattern"+s_postfix+s_BaseName;
+
+    ofstream out_Matrix (s_MatrixName.c_str());
+    if(!out_Matrix) {
+	    cout<<"Error creating file: \""<<s_MatrixName<<"\""<<endl;
+	    exit(1);
+    }
+
+    int i_NumOfLines = 0;
+
+    //Count i_NumOfLines
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      i_NumOfLines += uip2_SparsityPattern[i][0];
+    }
+
+    out_Matrix<<"%%MatrixMarket matrix coordinate real general"<<endl;
+    out_Matrix<<i_Matrix_Row<<" "<<i_Matrix_Col<<" "<< i_NumOfLines<<endl;
+
+    out_Matrix<<setprecision(10)<<scientific<<showpoint;
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      for(unsigned int j = 1; j<=uip2_SparsityPattern[i][0];j++) {
+	out_Matrix<<i+1<<" "<<uip2_SparsityPattern[i][j]+1;
+	out_Matrix<<endl;
+      }
+    }
+
+    out_Matrix.close();
+  }
+  else if (i_mode == 1) {
+    uip2_SparsityPattern = va_arg(ap,unsigned int **);
+    i_Matrix_Row = va_arg(ap,int);
+    i_Matrix_Col = va_arg(ap,int);
+    dp2_CompressedMatrix = va_arg(ap,double**);
+    i_CompressedMatrix_Row = va_arg(ap,int);
+    i_CompressedMatrix_Col = va_arg(ap,int);
+
+    string s_MatrixName = "pattern"+s_postfix+s_BaseName;
+    ofstream out_Matrix (s_MatrixName.c_str());
+    if(!out_Matrix) {
+	    cout<<"Error creating file: \""<<s_MatrixName<<"\""<<endl;
+	    exit(1);
+    }
+
+    int i_NumOfLines = 0;
+
+    //Count i_NumOfLines
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      i_NumOfLines += uip2_SparsityPattern[i][0];
+    }
+
+    out_Matrix<<"%%MatrixMarket matrix coordinate real general"<<endl;
+    out_Matrix<<i_Matrix_Row<<" "<<i_Matrix_Col<<" "<< i_NumOfLines<<endl;
+
+    out_Matrix<<setprecision(10)<<scientific<<showpoint;
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      for(unsigned int j = 1; j<=uip2_SparsityPattern[i][0];j++) {
+	out_Matrix<<i+1<<" "<<uip2_SparsityPattern[i][j]+1;
+	out_Matrix<<endl;
+      }
+    }
+
+    out_Matrix.close();
+
+    string s_CompressedMatrixName = "CompressedMatrix"+s_postfix+s_BaseName;
+    ofstream out_CompressedMatrix (s_CompressedMatrixName.c_str());
+    if(!out_CompressedMatrix) {
+	    cout<<"Error creating file: \""<<s_CompressedMatrixName<<"\""<<endl;
+	    exit(1);
+    }
+
+    out_CompressedMatrix<<"%%MatrixMarket matrix coordinate real general"<<endl;
+    out_CompressedMatrix<<i_CompressedMatrix_Row<<" "<<i_CompressedMatrix_Col<<" "<< i_CompressedMatrix_Row*i_CompressedMatrix_Col<<endl;
+
+    out_CompressedMatrix<<setprecision(10)<<scientific<<showpoint;
+    for(int i = 0; i<i_CompressedMatrix_Row;i++) {
+      for(int j = 0; j<i_CompressedMatrix_Col;j++) {
+	out_CompressedMatrix<<i+1<<" "<<j+1<<" "<<dp2_CompressedMatrix[i][j];
+	out_CompressedMatrix<<endl;
+      }
+    }
+
+    out_CompressedMatrix.close();
+  }
+  else if (i_mode == 2) {
+    uip2_SparsityPattern = va_arg(ap,unsigned int **);
+    i_Matrix_Row = va_arg(ap,int);
+    i_Matrix_Col = va_arg(ap,int);
+    dp2_CompressedMatrix = va_arg(ap,double**);
+    i_CompressedMatrix_Row = va_arg(ap,int);
+    i_CompressedMatrix_Col = va_arg(ap,int);
+    dp2_Values = va_arg(ap,double**);
+
+    string s_MatrixName = "pattern_value"+s_postfix+s_BaseName;
+    ofstream out_Matrix (s_MatrixName.c_str());
+    if(!out_Matrix) {
+	    cout<<"Error creating file: \""<<s_MatrixName<<"\""<<endl;
+	    exit(1);
+    }
+
+    int i_NumOfLines = 0;
+
+    //Count i_NumOfLines
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      i_NumOfLines += uip2_SparsityPattern[i][0];
+    }
+
+    out_Matrix<<"%%MatrixMarket matrix coordinate real general"<<endl;
+    out_Matrix<<i_Matrix_Row<<" "<<i_Matrix_Col<<" "<< i_NumOfLines<<endl;
+
+    out_Matrix<<setprecision(10)<<scientific<<showpoint;
+    for(int i = 0; i<i_Matrix_Row;i++) {
+      for(unsigned int j = 1; j<=uip2_SparsityPattern[i][0];j++) {
+	out_Matrix<<i+1<<" "<<uip2_SparsityPattern[i][j]+1<<" "<<dp2_Values[i][j];
+	out_Matrix<<endl;
+      }
+    }
+
+    out_Matrix.close();
+
+    string s_CompressedMatrixName = "CompressedMatrix"+s_postfix+s_BaseName;
+    ofstream out_CompressedMatrix (s_CompressedMatrixName.c_str());
+    if(!out_CompressedMatrix) {
+	    cout<<"Error creating file: \""<<s_CompressedMatrixName<<"\""<<endl;
+	    exit(1);
+    }
+
+    out_CompressedMatrix<<"%%MatrixMarket matrix coordinate real general"<<endl;
+    out_CompressedMatrix<<i_CompressedMatrix_Row<<" "<<i_CompressedMatrix_Col<<" "<< i_CompressedMatrix_Row*i_CompressedMatrix_Col<<endl;
+
+    out_CompressedMatrix<<setprecision(10)<<scientific<<showpoint;
+    for(int i = 0; i<i_CompressedMatrix_Row;i++) {
+      for(int j = 0; j<i_CompressedMatrix_Col;j++) {
+	out_CompressedMatrix<<i+1<<" "<<j+1<<" "<<dp2_CompressedMatrix[i][j];
+	out_CompressedMatrix<<endl;
+      }
+    }
+
+    out_CompressedMatrix.close();
+  }
+  else {
+    cerr<<"ERR: WriteMatrixMarket_ADOLCInput(): i_mode =\""<< i_mode <<"\" unknown or unspecified"<<endl;
+
+    va_end(ap); //cleanup
+    return 1;
+  }
+
+  va_end(ap); //cleanup
+  return 0;
+}
+
+int displayGraph(map< int, map<int,bool> > *graph, vector<int>* vi_VertexColors,int i_RunInBackground , int filter ) {
+  static int ranNum = rand();
+  static int seq = 0;
+  seq++;
+  vector<string> ListOfColors = getListOfColors("");
+  string fileName = "/tmp/.";
+  fileName = fileName + "ColPack_"+ itoa(ranNum)+"_"+itoa(seq)+".dot";
+
+  //build the dot file of the graph
+  if(vi_VertexColors == NULL) {
+    //build dot file represents graph without color info
+    buildDotWithoutColor(graph, ListOfColors, fileName);
+  } else {
+    //build dot file represents graph with color
+    buildDotWithColor(graph, vi_VertexColors, ListOfColors, fileName);
+  }
+
+  //display the graph using xdot
+  string command;
+  switch (filter) {
+    case NEATO: command="xdot -f neato "; break;
+    case TWOPI: command="xdot -f twopi "; break;
+    case CIRCO: command="xdot -f circo "; break;
+    case FDP: command="xdot -f fdp "; break;
+    default: command="xdot -f dot "; // case DOT
+  }
+
+  command = command + fileName;
+  if(i_RunInBackground) command = command + " &";
+  int i_ReturnValue = system(command.c_str());
+  return i_ReturnValue;
+}
+
+int buildDotWithoutColor(map< int, map<int,bool> > *graph, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithoutColor"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  string line="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build body
+  map< int, map<int,bool> >::iterator itr = graph->begin();
+  for(; itr != graph->end(); itr++) {
+    map<int,bool>::iterator itr2 = (itr->second).begin();
+    for(; itr2 != (itr->second).end(); itr2++) {
+      if(itr2->first<=itr->first) continue;
+      line = "";
+      line = line + "v"+itoa(itr->first)+" -- v"+ itoa(itr2->first) +" ;";
+      OutputStream<<line<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+
+  return 0;
+}
+
+int buildDotWithColor(map< int, map<int,bool> > *graph, vector<int>* vi_VertexColors, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithColor"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  //vector<int> m_vi_Vertices, m_vi_Edges, m_vi_VertexColors;
+  //g.GetVertices(m_vi_Vertices);
+  //g.GetEdges(m_vi_Edges);
+  //g.GetVertexColors(m_vi_VertexColors);
+  //int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+  int i_NumberOfColors = ListOfColors.size();
+  string line="", color_str="", colorID_str="", colorID_str2="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build node colors
+  map< int, map<int,bool> >::iterator itr = graph->begin();
+  for(; itr != graph->end(); itr++) {
+    line="";
+    if((*vi_VertexColors)[itr->first] != _UNKNOWN) {
+      color_str = ListOfColors[(*vi_VertexColors)[itr->first]%i_NumberOfColors];
+      colorID_str = itoa((*vi_VertexColors)[itr->first]);
+    }
+    else {
+      color_str="green";
+      colorID_str = "_";
+    }
+    //a_1 [color=aliceblue]
+    line = line + "v"+itoa(itr->first)+"_c"+ colorID_str +" [style=filled fillcolor="+color_str+"]";
+    OutputStream<<line<<endl;
+  }
+  cout<<endl<<endl;
+
+
+  //build body
+  itr = graph->begin();
+  for(; itr != graph->end(); itr++) {
+    map<int,bool>::iterator itr2 = (itr->second).begin();
+    for(; itr2 != (itr->second).end(); itr2++) {
+      if(itr2->first <= itr->first) continue;
+
+      if((*vi_VertexColors)[itr->first] != _UNKNOWN) {
+	colorID_str = itoa((*vi_VertexColors)[itr->first]);
+      }
+      else {
+	colorID_str = "_";
+      }
+
+      if((*vi_VertexColors)[itr2->first] != _UNKNOWN) {
+	colorID_str2 = itoa((*vi_VertexColors)[itr2->first]);
+      }
+      else {
+	colorID_str2 = "_";
+      }
+
+      line = "";
+      line = line + "v"+itoa(itr->first)+"_c"+colorID_str+" -- v"+ itoa(itr2->first)+"_c"+colorID_str2 ;
+      OutputStream<<line<<" ;"<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+  return 0;
+}
+
+
+int ConvertHarwellBoeingDouble(string & num_string) {
+  for(int i=num_string.size()-1; i>=0; i--) {
+    if(num_string[i] == 'D') {
+      num_string[i]='E';
+      return 1;
+    }
+  }
+  return 0;
+}
+
+string itoa(int i) {
+  string s;
+  stringstream out;
+  out << i;
+  s = out.str();
+
+  return s;
+}
+
+vector<string> getListOfColors(string s_InputFile) {
+  if (s_InputFile.size()==0 || s_InputFile == "" ) s_InputFile="list_of_colors.txt";
+  ifstream InputStream (s_InputFile.c_str());
+  if(!InputStream){
+    cout<<"Not Found File "<<s_InputFile<<endl;
+  } else {
+    cout<<"Found File "<<s_InputFile<<endl;
+  }
+
+  string line;
+  getline(InputStream, line);
+  vector<string> ListOfColors;
+
+  while(!InputStream.eof() && line != "*") {
+    ListOfColors.push_back(line);
+    getline(InputStream, line);
+  }
+
+  return ListOfColors;
+}
+
+
+int buildDotWithoutColor(ColPack::BipartiteGraphPartialColoringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithoutColor - BipartiteGraphPartialColoring"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  vector<int> m_vi_Vertices, m_vi_Edges;
+  g.GetLeftVertices(m_vi_Vertices);
+  g.GetEdges(m_vi_Edges);
+  int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+  string line="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build body
+  for(int i=0; i < i_VertexCount; i++) {
+    for(int j=m_vi_Vertices[i] ; j< m_vi_Vertices[i + 1]; j++) {
+      line = "";
+      line = line + "v"+itoa(i)+" -- v"+ itoa(m_vi_Edges[j] + i_VertexCount) +" ;";
+      OutputStream<<line<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+
+  return 0;
+}
+
+int buildDotWithColor(ColPack::BipartiteGraphPartialColoringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithColor - BipartiteGraphPartialColoringInterface"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  vector<int> m_vi_Vertices, m_vi_Edges, m_vi_LeftVertexColors, m_vi_RightVertexColors;
+  g.GetLeftVertices(m_vi_Vertices);
+  //cout<<"displayVector(m_vi_Vertices);"<<endl;
+  //displayVector(m_vi_Vertices);
+  g.GetEdges(m_vi_Edges);
+  //cout<<"displayVector(m_vi_Edges);"<<endl;
+  //displayVector(m_vi_Edges);
+  g.GetLeftVertexColors(m_vi_LeftVertexColors);
+  //cout<<"displayVector(m_vi_LeftVertexColors);"<<endl;
+  //displayVector(m_vi_LeftVertexColors);
+  g.GetRightVertexColors(m_vi_RightVertexColors);
+  //cout<<"displayVector(m_vi_RightVertexColors);"<<endl;
+  //displayVector(m_vi_RightVertexColors);
+  int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+  int i_RightVertexCount = g.GetRightVertexCount();
+  //cout<<"i_RightVertexCount="<<i_RightVertexCount<<endl;
+  int i_NumberOfColors = ListOfColors.size();
+  string line="", color_str="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build node colors
+  //colors for left vertices
+  for(int i=0; i < i_VertexCount; i++) {
+    line="";
+    if(m_vi_LeftVertexColors.size()>0) {
+      color_str = ListOfColors[m_vi_LeftVertexColors[i]%i_NumberOfColors];
+    //v2_c4 [color=aliceblue]
+    line = line + "v"+itoa(i)+"_c"+itoa(m_vi_LeftVertexColors[i])+" [style=filled fillcolor="+color_str+"]";
+    }
+    else {
+      color_str = ListOfColors[0];
+      line = line + "v"+itoa(i)+"_c_"+" [style=filled fillcolor="+color_str+"]";
+    }
+    OutputStream<<line<<endl;
+  }
+  //colors for right vertices
+  for(int i=0; i < i_RightVertexCount; i++) {
+    line="";
+    if(m_vi_RightVertexColors.size()>0) {
+      color_str = ListOfColors[m_vi_RightVertexColors[i]%i_NumberOfColors];
+      //v2_c4 [color=aliceblue]
+      line = line + "v"+itoa(i+i_VertexCount)+"_c"+itoa(m_vi_RightVertexColors[i])+" [style=filled fillcolor="+color_str+"]";
+    }
+    else {
+      color_str = ListOfColors[0];
+      line = line + "v"+itoa(i+i_VertexCount)+"_c_"+" [style=filled fillcolor="+color_str+"]";
+    }
+    OutputStream<<line<<endl;
+  }
+  cout<<endl<<endl;
+
+  //Find conflicts
+  vector<bool> m_vi_ConflictEdges;
+  /*
+  vector<vector<int> > ListOfConflicts;
+  g.GetStarColoringConflicts(ListOfConflicts);
+
+  //Mark conflict edge
+  m_vi_ConflictEdges.resize(m_vi_Edges.size(),false);
+  if(ListOfConflicts.size()>0) {
+    for(int i=0; i<ListOfConflicts.size();i++) {
+      for(int j=0; j<ListOfConflicts[i].size()-1;j++) {
+	int Vertex1 = ListOfConflicts[i][j];
+	int Vertex2 = ListOfConflicts[i][j+1];
+	if(Vertex1 > Vertex2) { //swap order
+	  for(int k=m_vi_Vertices[Vertex2]; k < m_vi_Vertices[Vertex2+1]; k++) {
+	    if(m_vi_Edges[k] == Vertex1) {
+	      m_vi_ConflictEdges[ k ]=true;
+	      break;
+	    }
+	  }
+	}
+	else {
+	  for(int k=m_vi_Vertices[Vertex1]; k < m_vi_Vertices[Vertex1+1]; k++) {
+	    if(m_vi_Edges[k] == Vertex2) {
+	      m_vi_ConflictEdges[ k ]=true;
+	      break;
+	    }
+	  }
+	}
+
+      }
+    }
+  }
+  //*/
+
+  //build body
+  for(int i=0; i < i_VertexCount; i++) {
+    for(int j=m_vi_Vertices[i] ; j< m_vi_Vertices[i + 1]; j++) {
+      line = "";
+      line = line + "v"+itoa(i)+"_c";
+
+      if(m_vi_LeftVertexColors.size() > 0) {
+	line = line + itoa(m_vi_LeftVertexColors[i]);
+      }
+      else {
+	line = line + '_';
+      }
+
+      line = line + " -- v"+ itoa(m_vi_Edges[j] + i_VertexCount)+"_c";
+
+      if(m_vi_RightVertexColors.size() > 0) {
+	line = line + itoa(m_vi_RightVertexColors[m_vi_Edges[j]]);
+      }
+      else {
+	line = line + '_';
+      }
+
+      if(m_vi_ConflictEdges.size()>0 && m_vi_ConflictEdges[j]) { // make the line bolder if the edge is conflict
+	line = line + "[style=\"setlinewidth(3)\"]";
+      }
+      OutputStream<<line<<" ;"<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+  return 0;
+}
+
+int buildDotWithoutColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"Function to be built! int buildDotWithoutColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName)"<<endl;
+  Pause();
+  return 0;
+}
+
+int buildDotWithColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"Function to be built! int buildDotWithColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName)"<<endl;
+  Pause();
+  return 0;
+}
+
+
+
+int buildDotWithoutColor(ColPack::GraphColoringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithoutColor"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  vector<int> m_vi_Vertices, m_vi_Edges;
+  g.GetVertices(m_vi_Vertices);
+  g.GetEdges(m_vi_Edges);
+  int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+  string line="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build body
+  for(int i=0; i < i_VertexCount; i++) {
+    for(int j=m_vi_Vertices[i] ; j< m_vi_Vertices[i + 1]; j++) {
+      if(m_vi_Edges[j]<=i) continue;
+      line = "";
+      line = line + "v"+itoa(i)+" -- v"+ itoa(m_vi_Edges[j]) +" ;";
+      OutputStream<<line<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+
+  return 0;
+}
+
+int buildDotWithColor(ColPack::GraphColoringInterface &g, vector<string> &ListOfColors, string fileName) {
+  cerr<<"IN buildDotWithColor"<<endl;
+  ofstream OutputStream (fileName.c_str());
+  if(!OutputStream){
+    cout<<"CAN'T create File "<<fileName<<endl;
+    return 1;
+  } else {
+    cout<<"Create File "<<fileName<<endl;
+  }
+
+  vector<int> m_vi_Vertices, m_vi_Edges, m_vi_VertexColors;
+  g.GetVertices(m_vi_Vertices);
+  g.GetEdges(m_vi_Edges);
+  g.GetVertexColors(m_vi_VertexColors);
+  int i_VertexCount = STEP_DOWN((signed) m_vi_Vertices.size());
+  int i_NumberOfColors = ListOfColors.size();
+  string line="", color_str="", colorID_str="", colorID_str2="";
+
+  //build header
+  OutputStream<<"graph g {"<<endl;
+
+  //build node colors
+  for(int i=0; i < i_VertexCount; i++) {
+    line="";
+    if(m_vi_VertexColors[i] != _UNKNOWN) {
+      color_str = ListOfColors[m_vi_VertexColors[i]%i_NumberOfColors];
+      colorID_str = itoa(m_vi_VertexColors[i]);
+    }
+    else {
+      color_str="green";
+      colorID_str = "_";
+    }
+    //a_1 [color=aliceblue]
+    line = line + "v"+itoa(i)+"_c"+ colorID_str +" [style=filled fillcolor="+color_str+"]";
+    OutputStream<<line<<endl;
+  }
+  cout<<endl<<endl;
+
+  //Find conflicts
+  vector<vector<int> > ListOfConflicts;
+  g.GetStarColoringConflicts(ListOfConflicts);
+
+  //Mark conflict edge
+  vector<bool> m_vi_ConflictEdges;
+  m_vi_ConflictEdges.resize(m_vi_Edges.size(),false);
+  if(ListOfConflicts.size()>0) {
+    for(size_t i=0; i<ListOfConflicts.size();i++) {
+      for(int j=0; j< ((int)ListOfConflicts[i].size())-1;j++) {
+	int Vertex1 = ListOfConflicts[i][j];
+	int Vertex2 = ListOfConflicts[i][j+1];
+	if(Vertex1 > Vertex2) { //swap order
+	  for(int k=m_vi_Vertices[Vertex2]; k < m_vi_Vertices[Vertex2+1]; k++) {
+	    if(m_vi_Edges[k] == Vertex1) {
+	      m_vi_ConflictEdges[ k ]=true;
+	      break;
+	    }
+	  }
+	}
+	else {
+	  for(int k=m_vi_Vertices[Vertex1]; k < m_vi_Vertices[Vertex1+1]; k++) {
+	    if(m_vi_Edges[k] == Vertex2) {
+	      m_vi_ConflictEdges[ k ]=true;
+	      break;
+	    }
+	  }
+	}
+      }
+    }
+  }
+
+  //build body
+  for(int i=0; i < i_VertexCount; i++) {
+    for(int j=m_vi_Vertices[i] ; j< m_vi_Vertices[i + 1]; j++) {
+      if(m_vi_Edges[j]<=i) continue;
+
+      if(m_vi_VertexColors[i] != _UNKNOWN) {
+	colorID_str = itoa(m_vi_VertexColors[i]);
+      }
+      else {
+	colorID_str = "_";
+      }
+
+      if(m_vi_VertexColors[m_vi_Edges[j]] != _UNKNOWN) {
+	colorID_str2 = itoa(m_vi_VertexColors[m_vi_Edges[j]]);
+      }
+      else {
+	colorID_str2 = "_";
+      }
+
+      line = "";
+      line = line + "v"+itoa(i)+"_c"+colorID_str+" -- v"+ itoa(m_vi_Edges[j])+"_c"+colorID_str2 ;
+      if(m_vi_ConflictEdges.size()>0 && m_vi_ConflictEdges[j]) { // make the line bolder if the edge is conflict
+	line = line + "[style=\"setlinewidth(3)\"]";
+      }
+      OutputStream<<line<<" ;"<<endl;
+    }
+  }
+
+  //build footer
+  OutputStream<<"}"<<endl;
+
+  OutputStream.close();
+  cout<<"\t File created"<<endl;
+  return 0;
+}
+
+
+bool isValidOrdering(vector<int> & ordering, int offset) {
+  vector<bool> isExist, index;
+  int orderingNum = 0;
+  isExist.resize(ordering.size(), false);
+  index.resize(ordering.size(), false);
+  for(int i=0; i<(int)ordering.size(); i++) {
+    orderingNum = ordering[i] - offset;
+    if(orderingNum<0 || (unsigned int)orderingNum>= ordering.size()) {
+      cerr<<" This vertex # is not in the valid range [0, ordering.size()]. ordering[i]: "<<ordering[i]<<endl;
+      return false;
+    }
+
+    if(isExist[ orderingNum ]) {
+      cerr<<"This vertex id "<<orderingNum<<" has been seen before at ordering["<<index [orderingNum]<<"] and  ordering["<<i<<"]. We have duplication!"<<endl;
+      return false;
+    }
+
+    isExist[ orderingNum ] = true;
+    index [orderingNum] = i;
+  }
+
+  return true;
+}
+
+int ReadRowCompressedFormat(string s_InputFile, unsigned int *** uip3_SparsityPattern, int& rowCount, int& columnCount) {
+  string line;
+  int lineCounter = 0,nz_counter = 0, nonzeros = 0, nnz_per_row = 0;
+  unsigned int num = 0;
+  istringstream in2;
+  ifstream in (s_InputFile.c_str());
+
+  if(!in) {
+    cout<<s_InputFile<<" not Found!"<<endl;
+    exit(1);
+  }
+
+  getline(in,line);
+  lineCounter++;
+  in2.str(line);
+  in2 >> rowCount >> columnCount >> nonzeros;
+
+  (*uip3_SparsityPattern) = new unsigned int*[rowCount];
+
+  for(int i=0;i < rowCount; i++) {
+		getline(in, line);
+		lineCounter++;
+		if(line!="")
+		{
+			in2.clear();
+			in2.str(line);
+			in2>>nnz_per_row;
+			(*uip3_SparsityPattern)[i] = new unsigned int[nnz_per_row + 1];
+			(*uip3_SparsityPattern)[i][0] = nnz_per_row;
+
+			for(int j=1; j<nnz_per_row+1; j++) {
+			  in2>>num;
+			  (*uip3_SparsityPattern)[i][j] = num;
+			  nz_counter++;
+			}
+		}
+		else
+		{
+			cerr<<"* WARNING: ReadRowCompressedFormat()"<<endl;
+			cerr<<"*\t line == \"\" at row "<<lineCounter<<". Empty line. Wrong input format. Can't process."<<endl;
+			cerr<<"\t total non-zeros so far: "<<nz_counter<<endl;
+			exit( -1);
+		}
+  }
+
+  if(nz_counter<nonzeros) { //nz_counter should be == nonzeros
+		  cerr<<"* WARNING: ReadRowCompressedFormat()"<<endl;
+		  cerr<<"*\t nz_counter<nonzeros+1. Wrong input format. Can't process."<<endl;
+		  cerr<<"\t total non-zeros so far: "<<nz_counter<<endl;
+		  exit( -1);
+  }
+
+
+
+  return 0;
+
+}
+
+int ConvertRowCompressedFormat2SparseSolversFormat_StructureOnly (unsigned int ** uip2_HessianSparsityPattern, unsigned int ui_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex) {
+
+	//first, count the number of non-zeros in the upper triangular and also populate *ip2_RowIndex array
+	unsigned int nnz = 0;
+	unsigned int nnz_in1Row = 0;
+	(*ip2_RowIndex) = (unsigned int*) malloc( (ui_rowCount + 1) * sizeof(unsigned int));
+	for (unsigned int i=0; i < ui_rowCount; i++) {
+	  nnz_in1Row = uip2_HessianSparsityPattern[i][0];
+	  (*ip2_RowIndex)[i] = nnz;
+	  for (unsigned int j = 1; j <= nnz_in1Row ; j++) {
+		if (i <= uip2_HessianSparsityPattern[i][j]) nnz++;
+	  }
+	}
+	(*ip2_RowIndex)[ui_rowCount] = nnz;
+	//cout<<"nnz = "<<nnz<<endl;
+
+	//displayVector(*ip2_RowIndex,ui_rowCount+1);
+
+	// populate *ip2_ColumnIndex array
+	(*ip2_ColumnIndex) = (unsigned int*) malloc( (nnz) * sizeof(unsigned int));
+	unsigned int count = 0;
+	for (unsigned int i=0; i < ui_rowCount; i++) {
+	  nnz_in1Row = uip2_HessianSparsityPattern[i][0];
+	  for (unsigned int j = 1; j <= nnz_in1Row ; j++) {
+		if (i <= uip2_HessianSparsityPattern[i][j]) {
+		  (*ip2_ColumnIndex)[count] = uip2_HessianSparsityPattern[i][j];
+		    count++;
+		}
+	  }
+	}
+	if(count != nnz) {
+	  cerr<<"!!! count != nnz. count = "<<count<<endl;
+	  Pause();
+	}
+
+	return nnz;
+}
+
+int ConvertCoordinateFormat2RowCompressedFormat(unsigned int* uip1_RowIndex, unsigned int* uip1_ColumnIndex, double* dp1_HessianValue, int i_RowCount, int i_NonZeroCount, unsigned int *** dp3_Pattern, double*** dp3_Values ) {
+  (*dp3_Pattern) = (unsigned int**) malloc( (i_RowCount) * sizeof(unsigned int*));
+  (*dp3_Values) = (double**) malloc( (i_RowCount) * sizeof(double*));
+
+  //Allocate memory for (*dp3_Pattern) and (*dp3_Values)
+  int count=1;
+  for(int i=1; i<i_NonZeroCount; i++) {
+    if(uip1_RowIndex[i] != uip1_RowIndex[i-1]) {
+      (*dp3_Pattern)[ uip1_RowIndex[i-1] ] = (unsigned int*) malloc( (count + 1) * sizeof(unsigned int));
+      (*dp3_Pattern)[ uip1_RowIndex[i-1] ][0] = count;
+      (*dp3_Values)[ uip1_RowIndex[i-1] ] = (double*) malloc( (count + 1) * sizeof(double));
+      (*dp3_Values)[ uip1_RowIndex[i-1] ][0] = (double)count;
+
+      count=1;
+    } else { //uip1_RowIndex[i] == uip1_RowIndex[i-1]
+      count++;
+    }
+  }
+  (*dp3_Pattern)[ uip1_RowIndex[i_NonZeroCount-1] ] = (unsigned int*) malloc( (count + 1) * sizeof(unsigned int));
+  (*dp3_Pattern)[ uip1_RowIndex[i_NonZeroCount-1] ][0] = count;
+  (*dp3_Values)[ uip1_RowIndex[i_NonZeroCount-1] ] = (double*) malloc( (count + 1) * sizeof(double));
+  (*dp3_Values)[ uip1_RowIndex[i_NonZeroCount-1] ][0] = (double) count;
+
+  //Populate values of (*dp3_Pattern) and (*dp3_Values)
+  count=0;
+  for(int i=0; i<i_RowCount; i++) {
+    for(unsigned int j=1; j<= (*dp3_Pattern)[i][0]; j++) {
+      (*dp3_Pattern)[i][j] = uip1_ColumnIndex[count];
+      (*dp3_Values)[i][j] = dp1_HessianValue[count];
+      count++;
+    }
+  }
+
+  if(count != i_NonZeroCount) {
+    cerr<<"count != i_NonZeroCount"<<endl;
+    exit(1);
+  }
+
+
+  return 0;
+}
+
+void ConvertFileDIMACSFormat2MatrixMarketFormat(string fileNameNoExt) {
+	string inFileName = fileNameNoExt + ".gr";
+	string outFileName = fileNameNoExt + ".mtx";
+	string line, temp;
+	ifstream in(inFileName.c_str());
+	ofstream out(outFileName.c_str());
+	istringstream iin;
+
+	while(in) {
+		getline(in, line);
+		if(line=="") break;
+		switch(line[0]) {
+			case 'a':
+				//Line has this format "a <in_node> <out_node> <edge_weight>"
+				out<<line.substr(2,line.size()-2)<<endl;
+				break;
+			case 'c': // comment line
+				break;
+			default: // 'p'
+				//Heading. Line has this format "p sp <num_of_node> <num_of_edges == num_of_line after this line>"
+				iin.str(line);
+				iin>>temp>>temp>>temp;out<<temp<<" "<<temp<<" ";
+				iin>>temp;out<<temp<<endl;
+				break;
+		}
+	}
+
+	in.close();
+	out.close();
+}
+
+void randomOrdering(vector<int>& ordering) {
+	srand(time(NULL));
+	int size = ordering.size();
+	int ran_num = 0;
+	for(int i=0; i < size; i++) {
+		//Get a random number in range [i,  size]
+		ran_num = (int)(((float) rand() / RAND_MAX) * (size -1 - i)) + i;
+		swap(ordering[i],ordering[ran_num]);
+	}
+}
+
+string toUpper(string input) {
+	string output = input;
+
+	for(int i = input.size() - 1; i>=0; i--) {
+		if(input[i]==' ' || input[i]=='\t' || input[i]=='\n') {
+			output[i] = '_';
+		}
+		else {
+			output[i] = toupper(input[i]);
+		}
+	}
+
+	return output;
+}
+
+//just manipulate the value of dp2_Values a little bit
+int Times2Plus1point5(double** dp2_Values, int i_RowCount, int i_ColumnCount) {
+	for(int i=0; i < i_RowCount; i++) {
+		for(int j=0; j < i_ColumnCount; j++) {
+			if(dp2_Values[i][j] != 0.) dp2_Values[i][j] = dp2_Values[i][j]*2 + 1.5; //for each non-zero entry in the matrix, do the manipulation.
+		}
+
+	}
+	return 0;
+}
+int Times2(double** dp2_Values, int i_RowCount, int i_ColumnCount) {
+	for(int i=0; i < i_RowCount; i++) {
+		for(int j=0; j < i_ColumnCount; j++) {
+			if(dp2_Values[i][j] != 0.) dp2_Values[i][j] = dp2_Values[i][j]*2;
+		}
+
+	}
+	return 0;
+}
+
+int GenerateValues(unsigned int ** uip2_SparsityPattern, int rowCount, double*** dp3_Value) {
+	//srand(time(NULL));
+	srand(0);
+
+	(*dp3_Value) = new double*[rowCount];
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		unsigned int numOfNonZeros = uip2_SparsityPattern[i][0];
+		(*dp3_Value)[i] = new double[numOfNonZeros + 1];
+		(*dp3_Value)[i][0] = (double)numOfNonZeros;
+		for(unsigned int j=1; j <= numOfNonZeros; j++) {
+			(*dp3_Value)[i][j] = (rand()%2001 - 1000)/1000.0;
+			//printf("(*dp3_Value)[%d][%d] = (%d % 2001 - 1000)/1000.0 = %7.2f \n",i,j,rand(),(*dp3_Value)[i][j]);
+		}
+	}
+
+	return 0;
+}
+
+int GenerateValuesForSymmetricMatrix(unsigned int ** uip2_SparsityPattern, int rowCount, double*** dp3_Value) {
+	//srand(time(NULL));
+	srand(0);
+
+	int * nnzCount = new int[rowCount]; // keep track of the # of non-zeros in each row
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) nnzCount[i] = 0;
+
+	(*dp3_Value) = new double*[rowCount];
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		unsigned int numOfNonZeros = uip2_SparsityPattern[i][0];
+		(*dp3_Value)[i] = new double[numOfNonZeros + 1];
+		(*dp3_Value)[i][0] = (double)numOfNonZeros;
+		for(unsigned int j=1; j <= numOfNonZeros; j++) {
+			if (uip2_SparsityPattern[i][j] >i) break;
+			(*dp3_Value)[i][j] = (rand()%2001 - 1000)/1000.0; nnzCount[i]++;
+			if (uip2_SparsityPattern[i][j] <i) { // copy the value from the low triangular to the upper triangular
+			  (*dp3_Value)[uip2_SparsityPattern[i][j]][nnzCount[uip2_SparsityPattern[i][j]]+1] = (*dp3_Value)[i][j]; nnzCount[uip2_SparsityPattern[i][j]]++;
+			}
+			//printf("(*dp3_Value)[%d][%d] = (%d % 2001 - 1000)/1000.0 = %7.2f \n",i,j,rand(),(*dp3_Value)[i][j]);
+		}
+	}
+
+	delete[] nnzCount;
+
+	return 0;
+}
+
+int ConvertRowCompressedFormat2ADIC(unsigned int ** uip2_SparsityPattern_RowCompressedFormat, int i_rowCount , double** dp2_Value, std::list<std::set<int> > &lsi_valsetlist, std::list<std::vector<double> > &lvd_Value) {
+  for(int i=0; i<i_rowCount; i++) {
+    std::set<int> valset;
+    std::vector<double> valuevector;
+    valuevector.reserve(uip2_SparsityPattern_RowCompressedFormat[i][0]);
+    for(unsigned int j= 1; j <= uip2_SparsityPattern_RowCompressedFormat[i][0]; j++) {
+      valset.insert(uip2_SparsityPattern_RowCompressedFormat[i][j]);
+      valuevector.push_back(dp2_Value[i][j]);
+    }
+    (lsi_valsetlist).push_back(valset);
+    (lvd_Value).push_back(valuevector);
+  }
+
+  return 0;
+}
+
+int ConvertRowCompressedFormat2CSR(unsigned int ** uip2_SparsityPattern_RowCompressedFormat, int i_rowCount, int** ip_RowIndex, int** ip_ColumnIndex) {
+  (*ip_RowIndex) = new int[i_rowCount+1];
+  int nnz = 0;
+  for(int i=0; i < i_rowCount; i++) {
+    (*ip_RowIndex)[i] = nnz;
+    nnz += uip2_SparsityPattern_RowCompressedFormat[i][0];
+
+	//cout<<"Display *ip_RowIndex"<<endl;
+	//displayVector(*ip_RowIndex,i_rowCount+1);
+
+  }
+  (*ip_RowIndex)[i_rowCount] = nnz;
+
+  (*ip_ColumnIndex) = new int[nnz];
+  int nz_count=0;
+  for(int i=0; i < i_rowCount; i++) {
+    for(unsigned int j=1; j<= uip2_SparsityPattern_RowCompressedFormat[i][0];j++) {
+      (*ip_ColumnIndex)[nz_count] = uip2_SparsityPattern_RowCompressedFormat[i][j];
+      nz_count++;
+    }
+	//cout<<"Display *ip_ColumnIndex"<<endl;
+	//displayVector(*ip_ColumnIndex, (*ip_RowIndex)[i_rowCount]);
+  }
+
+  if(nz_count != nnz) {
+    cerr<<"IN ConvertRowCompressedFormat2CSR, nz_count ("<<nz_count<<") != nnz ("<<nnz<<")"<<endl;
+  }
+  return 0;
+}
+
+int ConvertMatrixMarketFormat2RowCompressedFormat(string s_InputFile, unsigned int *** uip3_SparsityPattern, double*** dp3_Value, int &rowCount, int &columnCount) {
+
+	string m_s_InputFile=s_InputFile;
+
+	//initialize local data
+	int rowCounter=0, rowIndex=0, colIndex=0, nz_counter=0, entries=0;
+        //int nonzeros=0; //unused variable
+
+	//int num=0, numCount=0;
+	float value;
+	bool b_getValue, b_symmetric;
+	istringstream in2;
+	string line="";
+	map<int,vector<int> > nodeList;
+	map<int,vector<float> > valueList;
+
+	//READ IN BANNER
+	MM_typecode matcode;
+	FILE *f;
+	if ((f = fopen(m_s_InputFile.c_str(), "r")) == NULL)  {
+	  cout<<m_s_InputFile<<" not Found!"<<endl;
+	  exit(1);
+	}
+	else cout<<"Found file "<<m_s_InputFile<<endl;
+
+	if (mm_read_banner(f, &matcode) != 0)
+	{
+	    printf("Could not process Matrix Market banner.\n");
+	    exit(1);
+	}
+
+	if( mm_is_pattern(matcode) ) {
+	  b_getValue = false;
+	}
+	else b_getValue = true;
+
+	if(mm_is_symmetric(matcode)) {
+	  b_symmetric = true;
+	}
+	else b_symmetric = false;
+
+	//Check and make sure that the input file is supported
+	char * result = mm_typecode_to_str(matcode);
+	printf("Graph of Market Market type: [%s]\n", result);
+	free(result);
+	if (b_getValue) printf("\t Graph structure and VALUES will be read\n");
+	else {
+	  printf("\t Read graph struture only. Values will NOT be read. dp3_Value will NOT be allocated memory, so don't try to use it!!!\n");
+	  Pause();
+	}
+	if( !( mm_is_coordinate(matcode) && (mm_is_symmetric(matcode) || mm_is_general(matcode) ) && ( mm_is_real(matcode) || mm_is_pattern(matcode) || mm_is_integer(matcode) ) ) ) {
+	  printf("Sorry, this application does not support this type.");
+	  exit(1);
+	}
+
+	fclose(f);
+	//DONE - READ IN BANNER
+
+	// FIND OUT THE SIZE OF THE MATRIX
+	ifstream in (m_s_InputFile.c_str());
+	if(!in) {
+		cout<<m_s_InputFile<<" not Found!"<<endl;
+		exit(1);
+	}
+	else {
+	  //cout<<"Found file "<<m_s_InputFile<<endl;
+	}
+
+	getline(in,line);
+	rowCounter++;
+	while(line.size()>0&&line[0]=='%') {//ignore comment line
+		getline(in,line);
+	}
+	in2.str(line);
+	in2 >> rowCount >> columnCount >> entries;
+	//cout<<"rowCount="<<rowCount<<"; columnCount="<<columnCount<<"; nonzeros="<<nonzeros<<endl;
+	// DONE - FIND OUT THE SIZE OF THE MATRIX
+
+	while(!in.eof() && rowCounter<=entries) //there should be (nonzeros+1) lines in the input file
+	{
+		getline(in,line);
+		if(line!="")
+		{
+			rowCounter++;
+			//cout<<"Line "<<rowCounter<<"="<<line<<endl;
+
+			in2.clear();
+			in2.str(line);
+			in2>>rowIndex>>colIndex;
+			rowIndex--;
+			colIndex--;
+
+			if(b_symmetric) {
+				if(rowIndex > colIndex) {
+
+					//cout<<"\t"<<setw(4)<<rowIndex<<setw(4)<<colIndex<<setw(4)<<nz_counter<<endl;
+					nodeList[rowIndex].push_back(colIndex);
+					nodeList[colIndex].push_back(rowIndex);
+					nz_counter += 2;
+
+					if(b_getValue) {
+						in2>>value;
+						//cout<<"Value = "<<value<<endl;
+						valueList[rowIndex].push_back(value);
+						valueList[colIndex].push_back(value);
+					}
+				}
+				else if (rowIndex == colIndex) {
+					//cout<<"\t"<<setw(4)<<rowIndex<<setw(4)<<colIndex<<setw(4)<<nz_counter<<endl;
+					nodeList[rowIndex].push_back(rowIndex);
+					nz_counter++;
+					if(b_getValue) {
+					  in2>>value;
+					  valueList[rowIndex].push_back(value);
+					}
+				}
+				else { //rowIndex < colIndex
+				  cerr<<"* WARNING: ConvertMatrixMarketFormatToRowCompressedFormat()"<<endl;
+				  cerr<<"\t Found a nonzero in the upper triangular. A symmetric Matrix Market file format should only specify the nonzeros in the lower triangular."<<endl;
+				  exit( -1);
+				}
+			}
+			else { // !b_symmetric
+				//cout<<"\t"<<setw(4)<<rowIndex<<setw(4)<<colIndex<<setw(4)<<nz_counter<<endl;
+				nodeList[rowIndex].push_back(colIndex);
+				nz_counter++;
+				if(b_getValue) {
+				  in2>>value;
+				  //cout<<"Value = "<<value<<endl;
+				  valueList[rowIndex].push_back(value);
+				}
+			}
+
+		}
+		else
+		{
+			cerr<<"* WARNING: ConvertMatrixMarketFormatToRowCompressedFormat()"<<endl;
+			cerr<<"*\t line == \"\" at row "<<rowCounter<<". Empty line. Wrong input format. Can't process."<<endl;
+			cerr<<"\t total non-zeros so far: "<<nz_counter<<endl;
+			exit( -1);
+		}
+	}
+
+
+	(*uip3_SparsityPattern) = new unsigned int*[rowCount];
+	if(b_getValue)	(*dp3_Value) = new double*[rowCount];
+	for(int i=0;i<rowCount; i++) {
+	  unsigned int numOfNonZeros = nodeList[i].size();
+//printf("row = %d \t numOfNonZeros = %d : ", i, (int)numOfNonZeros);
+
+	  //Allocate memory for each row
+	  (*uip3_SparsityPattern)[i] = new unsigned int[numOfNonZeros+1];
+	  (*uip3_SparsityPattern)[i][0] = numOfNonZeros;
+
+	  if(b_getValue) {
+	    (*dp3_Value)[i] = new double[numOfNonZeros+1];
+	    (*dp3_Value)[i][0] = (double)numOfNonZeros;
+	  }
+
+	  for(unsigned int j=0; j < numOfNonZeros; j++) {
+	    (*uip3_SparsityPattern)[i][j+1] = nodeList[i][j];
+//printf("\t %d", (int) nodeList[i][j]);
+	  }
+
+	  if(b_getValue)	for(unsigned int j=0; j < numOfNonZeros; j++) {
+	    (*dp3_Value)[i][j+1] = valueList[i][j];
+	  }
+//printf("\n");
+	}
+
+
+	return(0);
+}
+
+int MatrixMultiplication_VxS__usingVertexPartialColors(std::list<std::set<int> > &lsi_SparsityPattern, std::list<std::vector<double> > &lvd_Value, int columnCount, vector<int> &vi_VertexPartialColors, int colorCount, double*** dp3_CompressedMatrix) {
+	unsigned int rowCount = lsi_SparsityPattern.size();
+
+	//Allocate memory for (*dp3_CompressedMatrix)[rowCount][colorCount]
+	//cout<<"Allocate memory for (*dp3_CompressedMatrix)[rowCount][colorCount]"<<endl;
+	(*dp3_CompressedMatrix) = new double*[rowCount];
+	for(unsigned int i=0; i < rowCount; i++) {
+		(*dp3_CompressedMatrix)[i] = new double[colorCount];
+		for(unsigned int j=0; j < (unsigned int)colorCount; j++) {
+			(*dp3_CompressedMatrix)[i][j] = 0.;
+		}
+	}
+
+	//do the multiplication
+	//cout<<"Do the multiplication"<<endl;
+	std::list<std::set<int> >::iterator valsetlistiter = lsi_SparsityPattern.begin();
+	std::list<std::vector<double> >::iterator valuelistlistiter = lvd_Value.begin();
+	for (unsigned int i=0; i< rowCount; valsetlistiter++, valuelistlistiter++, i++){
+		unsigned int numOfNonZeros = (*valsetlistiter).size();
+		std::set<int>::iterator valsetiter = (*valsetlistiter).begin();
+		for(unsigned int j=0; j < numOfNonZeros; valsetiter++, j++) {
+		  (*dp3_CompressedMatrix)[i][vi_VertexPartialColors[*valsetiter] ] += (*valuelistlistiter)[j];
+		}
+	}
+
+	return 0;
+}
+
+int MatrixMultiplication_VxS(unsigned int ** uip3_SparsityPattern, double** dp3_Value, int rowCount, int columnCount, double** dp2_seed, int colorCount, double*** dp3_CompressedMatrix) {
+
+	//Allocate memory for (*dp3_CompressedMatrix)[rowCount][colorCount]
+#if DEBUG == 2
+	cout<<"Allocate memory for (*dp3_CompressedMatrix)[rowCount][colorCount]"<<endl;
+#endif
+	(*dp3_CompressedMatrix) = new double*[rowCount];
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		(*dp3_CompressedMatrix)[i] = new double[colorCount];
+		for(unsigned int j=0; j < (unsigned int)colorCount; j++) {
+			(*dp3_CompressedMatrix)[i][j] = 0.;
+		}
+	}
+
+	//do the multiplication
+#if DEBUG == 2
+	cout<<"Do the multiplication"<<endl;
+	Pause();
+#endif
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		unsigned int numOfNonZeros = uip3_SparsityPattern[i][0];
+		for(unsigned int j=1; j <= numOfNonZeros; j++) {
+		  for(unsigned int k=0; k < (unsigned int)colorCount; k++) {
+#if DEBUG == 2
+				printf("i=%d\tj=%d\tuip3_SparsityPattern[i][j]=%d\tk=%d\n", i, j, uip3_SparsityPattern[i][j], k);
+				  cout<<"\trowCount="<<rowCount<<"; numOfNonZeros="<<numOfNonZeros<<"; colorCount="<<colorCount<<endl;
+				if(i==256 && j==1 && k==0) {
+				  cout<<"blah"<<endl;
+				}
+#endif
+				(*dp3_CompressedMatrix)[i][k] += dp3_Value[i][j]*dp2_seed[uip3_SparsityPattern[i][j]][k];
+			}
+		}
+	}
+
+	return 0;
+}
+
+int MatrixMultiplication_SxV(unsigned int ** uip3_SparsityPattern, double** dp3_Value, int rowCount, int columnCount, double** dp2_seed, int colorCount, double*** dp3_CompressedMatrix) {
+
+	//Allocate memory for (*dp3_CompressedMatrix)[colorCount][columnCount]
+	//cout<<"Allocate memory for (*dp3_CompressedMatrix)[colorCount][columnCount]"<<endl;
+	(*dp3_CompressedMatrix) = new double*[colorCount];
+	for(unsigned int i=0; i < (unsigned int)colorCount; i++) {
+		(*dp3_CompressedMatrix)[i] = new double[columnCount];
+		for(unsigned int j=0; j < (unsigned int)columnCount; j++) {
+			(*dp3_CompressedMatrix)[i][j] = 0.;
+		}
+	}
+
+	//do the multiplication
+	//cout<<"Do the multiplication"<<endl;
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		unsigned int numOfNonZeros = uip3_SparsityPattern[i][0];
+		for(unsigned int j=1; j <= numOfNonZeros; j++) {
+		  for(unsigned int k=0; k < (unsigned int)colorCount; k++) {
+				//printf("i=%d\tj=%d\tuip3_SparsityPattern[i][j]=%d\tk=%d\n", i, j, uip3_SparsityPattern[i][j], k);
+				(*dp3_CompressedMatrix)[k][uip3_SparsityPattern[i][j]] += dp2_seed[k][i]*dp3_Value[i][j];
+			}
+		}
+	}
+
+	return 0;
+}
+bool ADICMatricesAreEqual(std::list<std::vector<double> >& lvd_Value, std::list<std::vector<double> >& lvd_NewValue, bool compare_exact, bool print_all) {
+	double ratio = 1.;
+	int none_equal_count = 0;
+	int rowCount = lvd_Value.size();
+	std::list<std::vector<double> >::iterator lvdi_Value = lvd_Value.begin(), lvdi_NewValue = lvd_NewValue.begin() ;
+
+	for(unsigned int i=0; i < (unsigned int)rowCount; lvdi_Value++, lvdi_NewValue++, i++) {
+		unsigned int numOfNonZeros = (unsigned int)(*lvdi_Value).size();
+		if (numOfNonZeros != (unsigned int)(*lvdi_NewValue).size()) {
+			printf("Number of non-zeros in row %d are not equal. (*lvdi_Value).size() = %d; (*lvdi_NewValue).size() = %d; \n",i,(unsigned int)(*lvdi_Value).size(),(unsigned int)(*lvdi_NewValue).size());
+			if (print_all) {
+				none_equal_count++;
+				continue;
+			}
+			else return false;
+		}
+		for(unsigned int j=0; j < numOfNonZeros; j++) {
+			if (compare_exact) {
+				if ((*lvdi_Value)[j] != (*lvdi_NewValue)[j]) {
+					printf("At row %d, column %d, (*lvdi_Value)[j](%f) != (*lvdi_NewValue)[j](%f) \n",i,j,(*lvdi_Value)[j],(*lvdi_NewValue)[j]);
+					if (print_all) {
+						none_equal_count++;
+					}
+					else {
+						printf("You may want to set the flag \"compare_exact\" to 0 to compare the values approximately\n");
+						return false;
+					}
+				}
+			}
+			else {
+				if((*lvdi_NewValue)[j] == 0.) {
+					if((*lvdi_Value)[j] != 0.) {
+						printf("At row %d, column %d, (*lvdi_Value)[j](%f) != (*lvdi_NewValue)[j](0) \n",i,j,(*lvdi_Value)[j]);
+						if (print_all) {
+							none_equal_count++;
+						}
+						else return false;
+					}
+				}
+				else {
+					ratio = (*lvdi_Value)[j] / (*lvdi_NewValue)[j];
+					if( ratio < .99 || ratio > 1.02) {
+						printf("At row %d, column %d, (*lvdi_Value)[j](%f) != (*lvdi_NewValue)[j](%f) ; (*lvdi_Value)[j] / (*lvdi_NewValue)[j]=%f\n",i,j,(*lvdi_Value)[j],(*lvdi_NewValue)[j], ratio);
+						if (print_all) {
+							none_equal_count++;
+						}
+						else return false;
+					}
+				}
+			}
+		}
+	}
+
+	if(none_equal_count!=0) {
+		printf("Total: %d lines. (The total # of non-equals can be greater)\n",none_equal_count);
+		if (compare_exact) printf("You may want to set the flag \"compare_exact\" to 0 to compare the values approximately\n");
+		return false;
+	}
+	else return true;
+}
+
+bool CompressedRowMatricesAreEqual(double** dp3_Value, double** dp3_NewValue, int rowCount, bool compare_exact, bool print_all) {
+	double ratio = 1.;
+	int none_equal_count = 0;
+
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		unsigned int numOfNonZeros = (unsigned int)dp3_Value[i][0];
+		if (numOfNonZeros != (unsigned int)dp3_NewValue[i][0]) {
+			printf("Number of non-zeros in row %d are not equal. dp3_Value[i][0] = %d; dp3_NewValue[i][0] = %d; \n",i,(unsigned int)dp3_Value[i][0],(unsigned int)dp3_NewValue[i][0]);
+			if (print_all) {
+				none_equal_count++;
+				continue;
+			}
+			else return false;
+		}
+		for(unsigned int j=0; j <= numOfNonZeros; j++) {
+			if (compare_exact) {
+				if (dp3_Value[i][j] != dp3_NewValue[i][j]) {
+					printf("At row %d, column %d, dp3_Value[i][j](%f) != dp3_NewValue[i][j](%f) \n",i,j,dp3_Value[i][j],dp3_NewValue[i][j]);
+					if (print_all) {
+						none_equal_count++;
+					}
+					else {
+						printf("You may want to set the flag \"compare_exact\" to 0 to compare the values approximately\n");
+						return false;
+					}
+				}
+			}
+			else {
+				if(dp3_NewValue[i][j] == 0.) {
+					if(fabs(dp3_Value[i][j]) > 1e-10) {
+						printf("At row %d, column %d, dp3_Value[i][j](%f) != dp3_NewValue[i][j](0) \n",i,j,dp3_Value[i][j]);
+						cout<<scientific<<"    dp3_Value="<< dp3_Value[i][j]  <<endl;
+						if (print_all) {
+							none_equal_count++;
+						}
+						else return false;
+					}
+				}
+				else {
+					ratio = fabs(dp3_Value[i][j]) / fabs(dp3_NewValue[i][j]);
+					if( fabs(dp3_Value[i][j]) > 1e-10 && (ratio < .99 || ratio > 1.02) ) {
+						printf("At row %d, column %d, dp3_Value[i][j](%f) != dp3_NewValue[i][j](%f) ; dp3_Value[i][j] / dp3_NewValue[i][j]=%f\n",i,j,dp3_Value[i][j],dp3_NewValue[i][j], ratio);
+						cout<<scientific<<"    dp3_Value="<< dp3_Value[i][j] <<", dp3_NewValue="<< dp3_NewValue[i][j] <<endl;
+						if (print_all) {
+							none_equal_count++;
+						}
+						else return false;
+					}
+				}
+			}
+		}
+	}
+
+	if(none_equal_count!=0) {
+		printf("Total: %d lines. (The total # of non-equals can be greater)\n",none_equal_count);
+		if (compare_exact) printf("You may want to set the flag \"compare_exact\" to 0 to compare the values approximately\n");
+		return false;
+	}
+	else return true;
+}
+
+int DisplayADICFormat_Sparsity(std::list<std::set<int> > &lsi_valsetlist) {
+	//int size = (lsi_valsetlist).size(); //unused variable
+	int rowIndex=-1, colIndex=-1;
+	std::list<std::set<int> >::iterator valsetlistiter = (lsi_valsetlist).begin();
+
+	unsigned int estimateColumnCount = 20;
+	cout<<setw(4)<<"["<<setw(3)<<"\\"<<"]       ";
+	for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(4)<<j;
+	cout<<endl;
+
+	for (; valsetlistiter != (lsi_valsetlist).end(); valsetlistiter++){
+		rowIndex++;
+		std::set<int>::iterator valsetiter = (*valsetlistiter).begin();
+		cout<<setw(4)<<"["<<setw(3)<<rowIndex<<"]";
+		cout<<"  ("<<setw(3)<<(*valsetlistiter).size()<<")";
+		for (; valsetiter != (*valsetlistiter).end() ; valsetiter++) {
+			colIndex = *valsetiter;
+			cout<<setw(4)<<colIndex;
+		}
+		cout<<endl<<flush;
+	}
+	cout<<endl<<endl;
+
+	return 0;
+}
+
+int DisplayADICFormat_Value(std::list<std::vector<double> > &lvd_Value) {
+	//int size = (lvd_Value).size(); //unused variable
+	int rowIndex=-1;
+	double value=0.;
+	std::list<std::vector<double> >::iterator valsetlistiter = (lvd_Value).begin();
+
+	unsigned int estimateColumnCount = 20;
+	cout<<setw(4)<<"["<<setw(3)<<"\\"<<"]       ";
+	for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(9)<<j;
+	cout<<endl;
+
+	for (; valsetlistiter != (lvd_Value).end(); valsetlistiter++){
+		rowIndex++;
+		std::vector<double>::iterator valsetiter = (*valsetlistiter).begin();
+		cout<<setw(4)<<"["<<setw(3)<<rowIndex<<"]";
+		cout<<"  ("<<setw(3)<<(*valsetlistiter).size()<<")";
+		for (; valsetiter != (*valsetlistiter).end() ; valsetiter++) {
+			value = *valsetiter;
+			cout<<setw(9)<<value;
+		}
+		cout<<endl<<flush;
+	}
+	cout<<endl<<endl;
+
+	return 0;
+}
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/extra.h
@@ -0,0 +1,488 @@
+/*******************************************************************************
+    This file is part of ColPack, which is under its License protection.
+    You should have received a copy of the License. If not, see 
+    <https://github.com/CSCsw/ColPack>
+*******************************************************************************/
+
+#ifndef EXTRA_H
+#define EXTRA_H
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <iomanip>
+#include <ctime>
+#include <cstdlib>
+#include <stdarg.h> //  support for variadic functions
+//#include <cctype> //for toupper()
+
+#include <list>
+#include <set>
+#include <map>
+#include <string>
+#include <vector>
+
+#include "ColPackHeaders.h"
+
+using namespace std;
+
+/*
+#include "Definitions.h"
+#include "Pause.h"
+*/
+
+
+//Definition for dot
+#define DOT 1
+#define NEATO 2
+#define TWOPI 3
+#define CIRCO 4
+#define FDP 5
+
+/// Write out to the file ADOLC Input using Matrix Market format
+/**
+Input parameters:
+- string s_postfix: postfix of the output file name
+- int i_mode:
+  - i_mode == 0: output the structure of the matrix only.
+  The next 3 parameter(s) are: unsigned int ** uip2_SparsityPattern, int i_Matrix_Row, int i_Matrix_Col
+  - i_mode == 1: output the structure of the matrix and values in the Compressed Matrix
+  The next 6 parameter(s) are: unsigned int ** uip2_SparsityPattern, int i_Matrix_Row, int i_Matrix_Col, double** dp2_CompressedMatrix, int i_CompressedMatrix_Row, int i_CompressedMatrix_Col
+  - i_mode == 2: output the structure and values of the matrix and values in the Compressed Matrix
+  The next 7 parameter(s) are: unsigned int ** uip2_SparsityPattern, int i_Matrix_Row, int i_Matrix_Col, double** dp2_CompressedMatrix, int i_CompressedMatrix_Row, int i_CompressedMatrix_Col, double** dp2_Values
+*/
+int WriteMatrixMarket_ADOLCInput(string s_postfix, int i_mode, ...);
+
+/// Convert a number string under Harwell-Boeing format to the format that C++ can understand
+/** For example: -6.310289677458059D-07 to -6.310289677458059E-07
+
+Essentially, this function just search backward for the letter D and replace it with E
+
+Return value:
+- 0 if letter D is not found
+- 1 if latter D is found and replace by letter E
+*/
+int ConvertHarwellBoeingDouble(string & num_string);
+
+string itoa(int i);
+
+vector<string> getListOfColors(string s_InputFile);
+
+int buildDotWithoutColor(ColPack::GraphColoringInterface &g, vector<string> &ListOfColors, string fileName);
+
+/// Build dot file with colors, also highlight StarColoringConflicts
+/**
+ * !!! TO DO: improve this function so that it can detect conflicts of all coloring types
+ */
+int buildDotWithColor(ColPack::GraphColoringInterface &g, vector<string> &ListOfColors, string fileName);
+
+int buildDotWithoutColor(ColPack::BipartiteGraphPartialColoringInterface &g, vector<string> &ListOfColors, string fileName);
+// !!! TODO: enable conflict detection
+int buildDotWithColor(ColPack::BipartiteGraphPartialColoringInterface &g, vector<string> &ListOfColors, string fileName);
+
+// !!! TO BE BUILT
+int buildDotWithoutColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName);
+// !!! TO BE BUILT
+int buildDotWithColor(ColPack::BipartiteGraphBicoloringInterface &g, vector<string> &ListOfColors, string fileName);
+
+
+/// Read a Row Compressed Format file
+/** Read a Row Compressed Format file
+Line 1: <# of rows> <# of columns> <# of non-zeros>
+Line 2-(# of non-zeros + 1): <# of non-zeros in that row> <index of the 1st non-zero> <index of the 2nd non-zero> ... <index of the (# of non-zeros in that row)th non-zero>
+*/
+int ReadRowCompressedFormat(string s_InputFile, unsigned int *** uip3_SparsityPattern, int& rowCount, int& columnCount);
+
+/// Test and make sure that this is a valid ordering.
+/** This routine will test for:
+- Duplicated vertices. If there is no duplicated vertex, this ordering is probably ok.
+- Invalid vertex #. The vertex # should be between 0 and ordering.size()
+*/
+bool isValidOrdering(vector<int> & ordering, int offset = 0);
+
+//Re-order the values randomly
+void randomOrdering(vector<int>& ordering);
+
+/// Convert all the characters in input to upper case, ' ', '\ t', '\ n' will be converted to '_'
+string toUpper(string input);
+
+/// Build the index struture from Row Compressed Format to Sparse Solvers Format
+/**
+ip2_RowIndex and ip2_ColumnIndex will be allocated memory (using malloc) and populated with the matrix structure in Sparse Solvers Format
+
+Input:
+- uip2_HessianSparsityPattern in Row Compressed Format
+- ui_rowCount
+
+Output:
+- ip2_RowIndex[ui_rowCount + 1] for Sparse Solvers Format
+- ip2_ColumnIndex[ ip2_RowIndex[ui_rowCount] - 1] for Sparse Solvers Format
+
+
+*/
+int ConvertRowCompressedFormat2SparseSolversFormat_StructureOnly(unsigned int ** uip2_HessianSparsityPattern, unsigned int ui_rowCount, unsigned int** ip2_RowIndex, unsigned int** ip2_ColumnIndex);
+
+/// Convert Coordinate Format to Row Compressed Format
+/**
+dp3_Pattern and dp3_Values will be allocated memory (using malloc) and populated with the matrix structure in Row Compressed Format
+
+Input: (Coordinate Format)
+- unsigned int* uip1_RowIndex
+- unsigned int* uip1_ColumnIndex
+- double* dp1_HessianValue
+- int i_RowCount: number of rows of the matrix
+- int i_ColumnCount: number of columns of the matrix
+
+Output: (Row Compressed Format)
+- unsigned int *** dp3_Pattern
+- double*** dp3_Values
+
+*/
+int ConvertCoordinateFormat2RowCompressedFormat(unsigned int* uip1_RowIndex, unsigned int* uip1_ColumnIndex, double* dp1_HessianValue, int i_RowCount, int i_NonZeroCount, unsigned int *** dp3_Pattern, double*** dp3_Values );
+
+
+/// Covert file with DIMACS format to Matrix Market format
+/**
+DIMACS graph format: http://www.dis.uniroma1.it/~challenge9/format.shtml#graph
+Note: DIMACS graph format is for directed graph => the equivalent matrix is squared and non-systemic
+
+Read input from file "<fileNameNoExt>.gr" (DIMACS graph format)
+and generate file "<fileNameNoExt>.mtx" (Matrix Market format)
+*/
+void ConvertFileDIMACSFormat2MatrixMarketFormat(string fileNameNoExt);
+
+///Read the sparse matrix from Matrix-Market-format file and convert to Row Compressed format (used by ADIC) "uip3_SparsityPattern" & "dp3_Value"
+/** Read in a matrix from matrix-market format file and create a matrix stored in compressed sparse row format
+The Matrix-Market-format has 3 values in each row, the row index, column index and numerical value of each nonzero.
+The last 4 parameters of this routine are output parameters (unsigned int *** uip3_SparsityPattern, double*** dp3_Value,int &rowCount, int &columnCount)
+*/
+int ConvertMatrixMarketFormat2RowCompressedFormat(string s_InputFile, unsigned int *** uip3_SparsityPattern, double*** dp3_Value, int &rowCount, int &columnCount);
+
+/* !!! the documentation here may not be accurate
+"zero-based indexing, 3-array variation CSR format (used by ADIC)"
+Does ADIC use zero-based indexing, 3-array variation CSR format any more?
+//*/
+/// Convert Row Compressed format (used by ADOL-C) to zero-based indexing, 3-array variation CSR format (used by ADIC)
+/**
+Return 0 upon successful.
+*/
+// !!! need to be fixed to accomodate dp2_Value parameter
+int ConvertRowCompressedFormat2CSR(unsigned int ** uip2_SparsityPattern_RowCompressedFormat, int i_rowCount, int** ip_RowIndex, int** ip_ColumnIndex);
+
+int ConvertRowCompressedFormat2ADIC(unsigned int ** uip2_SparsityPattern_RowCompressedFormat, int i_rowCount , double** dp2_Value, std::list<std::set<int> > &lsi_SparsityPattern, std::list<std::vector<double> > &lvd_Value);
+
+/// Multiply the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) with the seed matrix dp2_seed and store the result in "dp3_CompressedMatrix"
+/** (*dp3_CompressedMatrix) = (*dp3_Value) * dp2_seed
+*/
+int MatrixMultiplication_VxS(unsigned int ** uip3_SparsityPattern, double** dp3_Value, int rowCount, int columnCount, double** dp2_seed, int colorCount, double*** dp3_CompressedMatrix);
+
+int MatrixMultiplication_VxS__usingVertexPartialColors(std::list<std::set<int> > &lsi_SparsityPattern, std::list<std::vector<double> > &lvd_Value, int columnCount, vector<int> &vi_VertexPartialColors, int colorCount, double*** dp3_CompressedMatrix);
+
+/// Multiply the seed matrix dp2_seed with the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) and store the result in "dp3_CompressedMatrix"
+/** (*dp3_CompressedMatrix) = dp2_seed * (*dp3_Value)
+*/
+int MatrixMultiplication_SxV(unsigned int ** uip3_SparsityPattern, double** dp3_Value, int rowCount, int columnCount, double** dp2_seed, int colorCount, double*** dp3_CompressedMatrix);
+
+///Compare dp3_Value with dp3_NewValue and see if all the values are equal.
+/**
+	If (compare_exact == 0) num1 and num2 are consider equal if 0.99 <= num1/num2 <= 1.02
+	If (print_all == 1) all cases of non-equal will be print out. Normally (when print_all == 0), this rountine will stop after the first non-equal.
+*/
+bool CompressedRowMatricesAreEqual(double** dp3_Value, double** dp3_NewValue, int rowCount, bool compare_exact = 1, bool print_all = 0);
+
+bool ADICMatricesAreEqual(std::list<std::vector<double> >& lvd_Value, std::list<std::vector<double> >& lvd_NewValue, bool compare_exact = 1, bool print_all = 0);
+
+///just manipulate the value of dp2_Values a little bit. Each non-zero entry in the matrix * 2 + 1.5.
+int Times2Plus1point5(double** dp2_Values, int i_RowCount, int i_ColumnCount);
+
+///just manipulate the value of dp2_Values a little bit. Each non-zero entry in the matrix * 2.
+int Times2(double** dp2_Values, int i_RowCount, int i_ColumnCount);
+
+///Allocate memory and generate random values for dp3_Value
+int GenerateValues(unsigned int ** uip2_SparsityPattern, int rowCount, double*** dp3_Value);
+
+///Allocate memory and generate random values for dp3_Value of a Symmetric Matrix.
+int GenerateValuesForSymmetricMatrix(unsigned int ** uip2_SparsityPattern, int rowCount, double*** dp3_Value);
+
+int DisplayADICFormat_Sparsity(std::list<std::set<int> > &lsi_SparsityPattern);
+int DisplayADICFormat_Value(std::list<std::vector<double> > &lvd_Value);
+
+int displayGraph(map< int, map<int,bool> > *graph, vector<int>* vi_VertexColors=NULL,int i_RunInBackground = false, int filter = DOT);
+int buildDotWithoutColor(map< int, map<int,bool> > *graph, vector<string> &ListOfColors, string fileName);
+int buildDotWithColor(map< int, map<int,bool> > *graph, vector<int>* vi_VertexColors, vector<string> &ListOfColors, string fileName);
+
+#ifndef EXTRA_H_TEMPLATE_FUNCTIONS
+#define EXTRA_H_TEMPLATE_FUNCTIONS
+
+template<class T>
+int displayGraph(T &g,int i_RunInBackground = false, int filter = DOT) {
+  static int ranNum = rand();
+  static int seq = 0;
+  seq++;
+  vector<string> ListOfColors = getListOfColors("");
+  string fileName = "/tmp/.";
+  fileName = fileName + "ColPack_"+ itoa(ranNum)+"_"+itoa(seq)+".dot";
+
+  //build the dot file of the graph
+  string m_s_VertexColoringVariant = g.GetVertexColoringVariant();
+  if(m_s_VertexColoringVariant.empty() || m_s_VertexColoringVariant=="Unknown") {
+    //build dot file represents graph without color info
+    buildDotWithoutColor(g, ListOfColors, fileName);
+  } else {
+    //build dot file represents graph with color
+    buildDotWithColor(g, ListOfColors, fileName);
+  }
+
+  //display the graph using xdot
+  string command;
+  switch (filter) {
+    case NEATO: command="xdot -f neato "; break;
+    case TWOPI: command="xdot -f twopi "; break;
+    case CIRCO: command="xdot -f circo "; break;
+    case FDP: command="xdot -f fdp "; break;
+    default: command="xdot -f dot "; // case DOT
+  }
+
+  command = command + fileName;
+  if(i_RunInBackground) command = command + " &";
+  int i_ReturnValue = system(command.c_str());
+  return i_ReturnValue;
+}
+
+
+///Find the difference between 2 arrays. Return 0 if there is no difference, 1 if there is at least 1 difference
+template<class T>
+int diffArrays(T* array1, T* array2, int rowCount, bool compare_exact = 1, bool print_all = 0) {
+	double ratio = 0.;
+	int none_equal_count = 0;
+	for(int i = 0; i < rowCount; i++) {
+	  if (compare_exact) {
+	    if(array1[i]!=array2[i]) { // found a difference
+	      cout<<"At index i="<<i<<"\t array1[] = "<<array1[i]<";\t array2[] = "<<array2[i]<<endl;
+	      none_equal_count++;
+	      if(!print_all) return 1;
+	    }
+	  }
+	  else {
+	    ratio = array1[i] / array2[i];
+	    if(ratio < .99 || ratio > 1.02) { // found a difference
+	      cout<<"At index i="<<i<<"\t array1[] = "<<array1[i]<";\t array2[] = "<<array2[i]<<endl;
+	      none_equal_count++;
+	      if(!print_all) return 1;
+	    }
+	  }
+	}
+
+	return none_equal_count;
+}
+
+///Find the difference between 2 vectors. Return 0 if there is no difference, 1 if there is at least 1 difference
+template<class T>
+int diffVectors(vector<T> array1, vector<T> array2, bool compare_exact = 1, bool print_all = 0) {
+	double ratio = 0.;
+	int none_equal_count = 0;
+
+	if(array1.size() != array2.size()) {
+	  cout<<"array1.size() "<<array1.size()<<" != array2.size()"<<array2.size()<<endl;
+	  none_equal_count++;
+	}
+
+	int min_array_size = (array1.size() < array2.size())?array1.size():array2.size();
+
+	for(int i = 0; i < min_array_size; i++) {
+	  if (compare_exact) {
+	    if(array1[i]!=array2[i]) { // found a difference
+	      cout<<"At index i="<<i<<"\t array1[] = "<<array1[i]<<";\t array2[] = "<<array2[i]<<endl;
+	      none_equal_count++;
+	      if(!print_all) return none_equal_count;
+	    }
+	  }
+	  else {
+	    ratio = array1[i] / array2[i];
+	    if(ratio < .99 || ratio > 1.02) { // found a difference
+	      cout<<"At index i="<<i<<"\t array1[] = "<<array1[i]<<";\t array2[] = "<<array2[i]<<endl;
+	      none_equal_count++;
+	      if(!print_all) return none_equal_count;
+	    }
+	  }
+	}
+
+	return none_equal_count;
+}
+
+template<class T>
+int freeMatrix(T** xp2_matrix, int rowCount) {
+//cout<<"IN deleteM 2"<<endl<<flush;
+//printf("* deleteMatrix rowCount=%d \n",rowCount);
+//Pause();
+	for(int i = 0; i < rowCount; i++) {
+//printf("delete xp2_matrix[%d][0] = %7.2f \n", i, (float) xp2_matrix[i][0]);
+		free( xp2_matrix[i]);
+	}
+//cout<<"MID deleteM 2"<<endl<<flush;
+	free( xp2_matrix);
+//cout<<"OUT deleteM 2"<<endl<<flush;
+	return 0;
+}
+
+template<class T>
+int freeMatrix(T*** xp3_matrix, int rowCount) {
+//cout<<"IN deleteM 3"<<endl<<flush;
+	freeMatrix(*xp3_matrix,rowCount);
+//cout<<"MID deleteM 3"<<endl<<flush;
+	free( xp3_matrix);
+//cout<<"OUT deleteM 3"<<endl<<flush;
+	return 0;
+}
+
+template<class T>
+int deleteMatrix(T** xp2_matrix, int rowCount) {
+//cout<<"IN deleteM 2"<<endl<<flush;
+//printf("* deleteMatrix rowCount=%d \n",rowCount);
+//Pause();
+	for(int i = 0; i < rowCount; i++) {
+//printf("delete xp2_matrix[%d][0] = %7.2f \n", i, (float) xp2_matrix[i][0]);
+		delete xp2_matrix[i];
+	}
+//cout<<"MID deleteM 2"<<endl<<flush;
+	delete xp2_matrix;
+//cout<<"OUT deleteM 2"<<endl<<flush;
+	return 0;
+}
+
+template<class T>
+int deleteMatrix(T*** xp3_matrix, int rowCount) {
+//cout<<"IN deleteM 3"<<endl<<flush;
+	deleteMatrix(*xp3_matrix,rowCount);
+//cout<<"MID deleteM 3"<<endl<<flush;
+	delete xp3_matrix;
+//cout<<"OUT deleteM 3"<<endl<<flush;
+	return 0;
+}
+
+template<class T>
+void displayCompressedRowMatrix(T** xp2_Value, int rowCount, bool structureOnly = false) {
+	unsigned int estimateColumnCount = 20;
+	cout<<setw(4)<<"["<<setw(3)<<"\\"<<"]       ";
+	if(structureOnly) {
+		for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(4)<<j;
+	}
+	else {
+		for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(9)<<j;
+	}
+	cout<<endl;
+
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+		unsigned int numOfNonZeros = (unsigned int)xp2_Value[i][0];
+		cout<<"  ("<<setw(3)<<numOfNonZeros<<")";
+		if(structureOnly) {
+			for(unsigned int j=1; j <= numOfNonZeros; j++) cout<<setw(4)<<(int)xp2_Value[i][j];
+			//for(unsigned int j=1; j <= numOfNonZeros; j++) {
+			//  printf("  %d",(int)xp2_Value[i][j]);
+			//}
+		}
+		else {
+			for(unsigned int j=1; j <= numOfNonZeros; j++) cout<<setw(9)<<(float)xp2_Value[i][j];
+			//for(unsigned int j=1; j <= numOfNonZeros; j++) {
+			//  printf("  %7.2f",(float)xp2_Value[i][j]);
+			//}
+		}
+		cout<<endl<<flush;
+	}
+	cout<<endl<<endl;
+}
+
+template<class T>
+void displayMatrix(T** xp2_Value, int rowCount, int columnCount, bool structureOnly = false) {
+	cout<<setw(4)<<"["<<setw(3)<<"\\"<<"]";
+	if(structureOnly) {
+		for(unsigned int j=0; j < (unsigned int)columnCount; j++) cout<<setw(3)<<j;
+	}
+	else {
+		for(unsigned int j=0; j < (unsigned int)columnCount; j++) cout<<setw(9)<<j;
+	}
+	cout<<endl;
+
+	for(unsigned int i=0; i < (unsigned int)rowCount; i++) {
+		cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+		if(structureOnly) {
+			for(unsigned int j=0; j < (unsigned int)columnCount; j++) cout<<setw(3)<<(bool)xp2_Value[i][j];
+		}
+		else {
+			for(unsigned int j=0; j < (unsigned int)columnCount; j++) printf("  %7.2f",(float)xp2_Value[i][j]);
+			//for(unsigned int j=0; j < (unsigned int)columnCount; j++) cout<<setw(8)<<xp2_Value[i][j];
+		}
+		cout<<endl<<flush;
+	}
+	cout<<endl<<endl;
+}
+
+template<class T>
+void displayVector(T* xp2_Value, int size, bool structureOnly = false) {
+	if(structureOnly) {
+		for(unsigned int i=0; i < (unsigned int)size; i++) {
+			cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+			cout<<setw(3)<<(bool)xp2_Value[i];
+			cout<<endl<<flush;
+		}
+	}
+	else {
+		for(unsigned int i=0; i < (unsigned int)size; i++) {
+			cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+			printf("  %7.2f",(float)xp2_Value[i]);
+			//cout<<setw(8)<<xp2_Value[i];
+			cout<<endl<<flush;
+		}
+	}
+	cout<<endl<<endl;
+}
+
+template<class T>
+int displayVector(vector<T> v) {
+  for (unsigned int i=0; i < v.size(); i++) {
+    cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+    printf("  %7.2f",(float)v[i]);
+    cout<<endl<<flush;
+  }
+  return 0;
+}
+
+
+/// Used mainly to debug GraphColoringInterface::IndirectRecover() routine
+template<class T>
+void displayAdjacencyMatrix(vector< vector<T> > &xp2_Value, bool structureOnly = false) {
+	unsigned int estimateColumnCount = 20;
+	cout<<setw(4)<<"["<<setw(3)<<"\\"<<"]";
+	if(structureOnly) {
+		for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(3)<<j;
+	}
+	else {
+		for(unsigned int j=0; j < estimateColumnCount; j++) cout<<setw(9)<<j;
+	}
+	cout<<endl;
+
+	unsigned int rowCount = xp2_Value.size();
+	for(unsigned int i=0; i < rowCount; i++) {
+		cout<<setw(4)<<"["<<setw(3)<<i<<"]";
+		unsigned int numOfNonZeros = (int)xp2_Value[i].size();
+		cout<<"("<<setw(5)<<numOfNonZeros<<")";
+		if(structureOnly) {
+			for(unsigned int j=0; j < numOfNonZeros; j++) cout<<setw(3)<<(bool)xp2_Value[i][j];
+		}
+		else {
+			for(unsigned int j=0; j < numOfNonZeros; j++) cout<<setw(9)<<xp2_Value[i][j];
+		}
+		cout<<endl<<flush;
+	}
+	cout<<endl<<endl;
+}
+
+
+#endif //EXTRA_H_TEMPLATE_FUNCTIONS
+
+#endif //EXTRA_H
+
+
+
--- /dev/null
+++ colpack-1.0.10/src/Utilities/mmio.cpp
@@ -0,0 +1,515 @@
+/*
+*   Matrix Market I/O library for ANSI C
+*
+*   See http://math.nist.gov/MatrixMarket for details.
+*
+*
+*/
+
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#include "mmio.h"
+
+int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_,
+                double **val_, int **I_, int **J_)
+{
+    FILE *f;
+    MM_typecode matcode;
+    int M, N, nz;
+    int i;
+    double *val;
+    int *I, *J;
+
+    if ((f = fopen(fname, "r")) == NULL)
+            return -1;
+
+
+    if (mm_read_banner(f, &matcode) != 0)
+    {
+        printf("mm_read_unsymetric: Could not process Matrix Market banner ");
+        printf(" in file [%s]\n", fname);
+        return -1;
+    }
+
+
+
+    if ( !(mm_is_real(matcode) && mm_is_matrix(matcode) &&
+            mm_is_sparse(matcode)))
+    {
+        fprintf(stderr, "Sorry, this application does not support ");
+        fprintf(stderr, "Market Market type: [%s]\n",
+                mm_typecode_to_str(matcode));
+        return -1;
+    }
+
+    /* find out size of sparse matrix: M, N, nz .... */
+
+    if (mm_read_mtx_crd_size(f, &M, &N, &nz) !=0)
+    {
+        fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n");
+        return -1;
+    }
+
+    *M_ = M;
+    *N_ = N;
+    *nz_ = nz;
+
+    /* reseve memory for matrices */
+
+    I = (int *) malloc(nz * sizeof(int));
+    J = (int *) malloc(nz * sizeof(int));
+    val = (double *) malloc(nz * sizeof(double));
+
+    *val_ = val;
+    *I_ = I;
+    *J_ = J;
+
+    /* NOTE: when reading in doubles, ANSI C requires the use of the "l"  */
+    /*   specifier as in "%lg", "%lf", "%le", otherwise errors will occur */
+    /*  (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15)            */
+
+    for (i=0; i<nz; i++)
+    {
+        if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3)
+        {
+          fprintf(stderr, "error: mm read error\n");
+          return -1;
+        }
+        I[i]--;  /* adjust from 1-based to 0-based */
+        J[i]--;
+    }
+    fclose(f);
+
+    return 0;
+}
+
+int mm_is_valid(MM_typecode matcode)
+{
+    if (!mm_is_matrix(matcode)) return 0;
+    if (mm_is_dense(matcode) && mm_is_pattern(matcode)) return 0;
+    if (mm_is_real(matcode) && mm_is_hermitian(matcode)) return 0;
+    if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) ||
+                mm_is_skew(matcode))) return 0;
+    return 1;
+}
+
+int mm_read_banner(FILE *f, MM_typecode *matcode)
+{
+    char line[MM_MAX_LINE_LENGTH];
+    char banner[MM_MAX_TOKEN_LENGTH];
+    char mtx[MM_MAX_TOKEN_LENGTH];
+    char crd[MM_MAX_TOKEN_LENGTH];
+    char data_type[MM_MAX_TOKEN_LENGTH];
+    char storage_scheme[MM_MAX_TOKEN_LENGTH];
+    char *p;
+
+
+    mm_clear_typecode(matcode);
+
+    if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL)
+        return MM_PREMATURE_EOF;
+
+    if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type,
+        storage_scheme) != 5)
+        return MM_PREMATURE_EOF;
+
+    for (p=mtx; *p!='\0'; *p=tolower(*p),p++);  /* convert to lower case */
+    for (p=crd; *p!='\0'; *p=tolower(*p),p++);
+    for (p=data_type; *p!='\0'; *p=tolower(*p),p++);
+    for (p=storage_scheme; *p!='\0'; *p=tolower(*p),p++);
+
+    /* check for banner */
+    if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0)
+        return MM_NO_HEADER;
+
+    /* first field should be "mtx" */
+    if (strcmp(mtx, MM_MTX_STR) != 0)
+        return  MM_UNSUPPORTED_TYPE;
+    mm_set_matrix(matcode);
+
+
+    /* second field describes whether this is a sparse matrix (in coordinate
+            storgae) or a dense array */
+
+
+    if (strcmp(crd, MM_SPARSE_STR) == 0)
+        mm_set_sparse(matcode);
+    else
+    if (strcmp(crd, MM_DENSE_STR) == 0)
+            mm_set_dense(matcode);
+    else
+        return MM_UNSUPPORTED_TYPE;
+
+
+    /* third field */
+
+    if (strcmp(data_type, MM_REAL_STR) == 0)
+        mm_set_real(matcode);
+    else
+    if (strcmp(data_type, MM_COMPLEX_STR) == 0)
+        mm_set_complex(matcode);
+    else
+    if (strcmp(data_type, MM_PATTERN_STR) == 0)
+        mm_set_pattern(matcode);
+    else
+    if (strcmp(data_type, MM_INT_STR) == 0)
+        mm_set_integer(matcode);
+    else
+        return MM_UNSUPPORTED_TYPE;
+
+
+    /* fourth field */
+
+    if (strcmp(storage_scheme, MM_GENERAL_STR) == 0)
+        mm_set_general(matcode);
+    else
+    if (strcmp(storage_scheme, MM_SYMM_STR) == 0)
+        mm_set_symmetric(matcode);
+    else
+    if (strcmp(storage_scheme, MM_HERM_STR) == 0)
+        mm_set_hermitian(matcode);
+    else
+    if (strcmp(storage_scheme, MM_SKEW_STR) == 0)
+        mm_set_skew(matcode);
+    else
+        return MM_UNSUPPORTED_TYPE;
+
+
+    return 0;
+}
+
+int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz)
+{
+    if (fprintf(f, "%d %d %d\n", M, N, nz) != 3)
+        return MM_COULD_NOT_WRITE_FILE;
+    else
+        return 0;
+}
+
+int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz )
+{
+    char line[MM_MAX_LINE_LENGTH];
+    int num_items_read;
+
+    /* set return null parameter values, in case we exit with errors */
+    *M = *N = *nz = 0;
+
+    /* now continue scanning until you reach the end-of-comments */
+    do
+    {
+        if (fgets(line,MM_MAX_LINE_LENGTH,f) == NULL)
+            return MM_PREMATURE_EOF;
+    }while (line[0] == '%');
+
+    /* line[] is either blank or has M,N, nz */
+    if (sscanf(line, "%d %d %d", M, N, nz) == 3)
+        return 0;
+
+    else
+    do
+    {
+        num_items_read = fscanf(f, "%d %d %d", M, N, nz);
+        if (num_items_read == EOF) return MM_PREMATURE_EOF;
+    }
+    while (num_items_read != 3);
+
+    return 0;
+}
+
+
+int mm_read_mtx_array_size(FILE *f, int *M, int *N)
+{
+    char line[MM_MAX_LINE_LENGTH];
+    int num_items_read;
+    /* set return null parameter values, in case we exit with errors */
+    *M = *N = 0;
+
+    /* now continue scanning until you reach the end-of-comments */
+    do
+    {
+        if (fgets(line,MM_MAX_LINE_LENGTH,f) == NULL)
+            return MM_PREMATURE_EOF;
+    }while (line[0] == '%');
+
+    /* line[] is either blank or has M,N, nz */
+    if (sscanf(line, "%d %d", M, N) == 2)
+        return 0;
+
+    else /* we have a blank line */
+    do
+    {
+        num_items_read = fscanf(f, "%d %d", M, N);
+        if (num_items_read == EOF) return MM_PREMATURE_EOF;
+    }
+    while (num_items_read != 2);
+
+    return 0;
+}
+
+int mm_write_mtx_array_size(FILE *f, int M, int N)
+{
+    if (fprintf(f, "%d %d\n", M, N) != 2)
+        return MM_COULD_NOT_WRITE_FILE;
+    else
+        return 0;
+}
+
+
+
+/*-------------------------------------------------------------------------*/
+
+/******************************************************************/
+/* use when I[], J[], and val[]J, and val[] are already allocated */
+/******************************************************************/
+
+int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[],
+        double val[], MM_typecode matcode)
+{
+    int i;
+    if (mm_is_complex(matcode))
+    {
+        for (i=0; i<nz; i++)
+            if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2*i], &val[2*i+1])
+                != 4) return MM_PREMATURE_EOF;
+    }
+    else if (mm_is_real(matcode))
+    {
+        for (i=0; i<nz; i++)
+        {
+            if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i])
+                != 3) return MM_PREMATURE_EOF;
+
+        }
+    }
+
+    else if (mm_is_pattern(matcode))
+    {
+        for (i=0; i<nz; i++)
+            if (fscanf(f, "%d %d", &I[i], &J[i])
+                != 2) return MM_PREMATURE_EOF;
+    }
+    else
+        return MM_UNSUPPORTED_TYPE;
+
+    return 0;
+
+}
+
+int mm_read_mtx_crd_entry(FILE *f, int *I, int *J,
+        double *real, double *imag, MM_typecode matcode)
+{
+    if (mm_is_complex(matcode))
+    {
+            if (fscanf(f, "%d %d %lg %lg", I, J, real, imag)
+                != 4) return MM_PREMATURE_EOF;
+    }
+    else if (mm_is_real(matcode))
+    {
+            if (fscanf(f, "%d %d %lg\n", I, J, real)
+                != 3) return MM_PREMATURE_EOF;
+
+    }
+
+    else if (mm_is_pattern(matcode))
+    {
+            if (fscanf(f, "%d %d", I, J) != 2) return MM_PREMATURE_EOF;
+    }
+    else
+        return MM_UNSUPPORTED_TYPE;
+
+    return 0;
+
+}
+
+
+/************************************************************************
+    mm_read_mtx_crd()  fills M, N, nz, array of values, and return
+                        type code, e.g. 'MCRS'
+
+                        if matrix is complex, values[] is of size 2*nz,
+                            (nz pairs of real/imaginary values)
+************************************************************************/
+
+int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J,
+        double **val, MM_typecode *matcode)
+{
+    int ret_code;
+    FILE *f;
+
+    if (strcmp(fname, "stdin") == 0) f=stdin;
+    else
+    if ((f = fopen(fname, "r")) == NULL)
+        return MM_COULD_NOT_READ_FILE;
+
+
+    if ((ret_code = mm_read_banner(f, matcode)) != 0)
+        return ret_code;
+
+    if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) &&
+            mm_is_matrix(*matcode)))
+        return MM_UNSUPPORTED_TYPE;
+
+    if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0)
+        return ret_code;
+
+
+    *I = (int *)  malloc(*nz * sizeof(int));
+    *J = (int *)  malloc(*nz * sizeof(int));
+    *val = NULL;
+
+    if (mm_is_complex(*matcode))
+    {
+        *val = (double *) malloc(*nz * 2 * sizeof(double));
+        ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val,
+                *matcode);
+        if (ret_code != 0) return ret_code;
+    }
+    else if (mm_is_real(*matcode))
+    {
+        *val = (double *) malloc(*nz * sizeof(double));
+        ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val,
+                *matcode);
+        if (ret_code != 0) return ret_code;
+    }
+
+    else if (mm_is_pattern(*matcode))
+    {
+        ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val,
+                *matcode);
+        if (ret_code != 0) return ret_code;
+    }
+
+    if (f != stdin) fclose(f);
+    return 0;
+}
+
+int mm_write_banner(FILE *f, MM_typecode matcode)
+{
+    char *str = mm_typecode_to_str(matcode);
+    int ret_code;
+
+    ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str);
+    free(str);
+    if (ret_code !=2 )
+        return MM_COULD_NOT_WRITE_FILE;
+    else
+        return 0;
+}
+
+int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[],
+        double val[], MM_typecode matcode)
+{
+    FILE *f;
+    int i;
+
+    if (strcmp(fname, "stdout") == 0)
+        f = stdout;
+    else
+    if ((f = fopen(fname, "w")) == NULL)
+        return MM_COULD_NOT_WRITE_FILE;
+
+    /* print banner followed by typecode */
+    fprintf(f, "%s ", MatrixMarketBanner);
+    fprintf(f, "%s\n", mm_typecode_to_str(matcode));
+
+    /* print matrix sizes and nonzeros */
+    fprintf(f, "%d %d %d\n", M, N, nz);
+
+    /* print values */
+    if (mm_is_pattern(matcode))
+        for (i=0; i<nz; i++)
+            fprintf(f, "%d %d\n", I[i], J[i]);
+    else
+    if (mm_is_real(matcode))
+        for (i=0; i<nz; i++)
+            fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]);
+    else
+    if (mm_is_complex(matcode))
+        for (i=0; i<nz; i++)
+            fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2*i],
+                        val[2*i+1]);
+    else
+    {
+        if (f != stdout) fclose(f);
+        return MM_UNSUPPORTED_TYPE;
+    }
+
+    if (f !=stdout) fclose(f);
+
+    return 0;
+}
+
+
+/**
+*  Create a new copy of a string s.  mm_strdup() is a common routine, but
+*  not part of ANSI C, so it is included here.  Used by mm_typecode_to_str().
+*
+*/
+char *mm_strdup(const char *s)
+{
+	int len = strlen(s);
+	char *s2 = (char *) malloc((len+1)*sizeof(char));
+	return strcpy(s2, s);
+}
+
+char  *mm_typecode_to_str(MM_typecode matcode)
+{
+    char buffer[MM_MAX_LINE_LENGTH];
+    const char *types[4];
+	char *mm_strdup(const char *);
+    //int error =0; //unused variable
+
+    /* check for MTX type */
+    if (mm_is_matrix(matcode))
+        types[0] = MM_MTX_STR;
+    //else             //unused variable
+    //    error=1;     //unused variable
+
+    /* check for CRD or ARR matrix */
+    if (mm_is_sparse(matcode))
+        types[1] = MM_SPARSE_STR;
+    else
+    if (mm_is_dense(matcode))
+        types[1] = MM_DENSE_STR;
+    else
+        return NULL;
+
+    /* check for element data type */
+    if (mm_is_real(matcode))
+        types[2] = MM_REAL_STR;
+    else
+    if (mm_is_complex(matcode))
+        types[2] = MM_COMPLEX_STR;
+    else
+    if (mm_is_pattern(matcode))
+        types[2] = MM_PATTERN_STR;
+    else
+    if (mm_is_integer(matcode))
+        types[2] = MM_INT_STR;
+    else
+        return NULL;
+
+
+    /* check for symmetry type */
+    if (mm_is_general(matcode))
+        types[3] = MM_GENERAL_STR;
+    else
+    if (mm_is_symmetric(matcode))
+        types[3] = MM_SYMM_STR;
+    else
+    if (mm_is_hermitian(matcode))
+        types[3] = MM_HERM_STR;
+    else
+    if (mm_is_skew(matcode))
+        types[3] = MM_SKEW_STR;
+    else
+        return NULL;
+
+    sprintf(buffer,"%s %s %s %s", types[0], types[1], types[2], types[3]);
+    return mm_strdup(buffer);
+
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/mmio.h
@@ -0,0 +1,132 @@
+/*
+*   Matrix Market I/O library for ANSI C
+*
+*   See http://math.nist.gov/MatrixMarket for details.
+*
+*
+*/
+
+#ifndef MM_IO_H
+#define MM_IO_H
+
+#define MM_MAX_LINE_LENGTH 1025
+#define MatrixMarketBanner "%%MatrixMarket"
+#define MM_MAX_TOKEN_LENGTH 64
+
+typedef char MM_typecode[4];
+
+char *mm_typecode_to_str(MM_typecode matcode);
+
+int mm_read_banner(FILE *f, MM_typecode *matcode);
+int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz);
+int mm_read_mtx_array_size(FILE *f, int *M, int *N);
+
+int mm_write_banner(FILE *f, MM_typecode matcode);
+int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz);
+int mm_write_mtx_array_size(FILE *f, int M, int N);
+
+
+/********************* MM_typecode query fucntions ***************************/
+
+#define mm_is_matrix(typecode)	((typecode)[0]=='M')
+
+#define mm_is_sparse(typecode)	((typecode)[1]=='C')
+#define mm_is_coordinate(typecode)((typecode)[1]=='C')
+#define mm_is_dense(typecode)	((typecode)[1]=='A')
+#define mm_is_array(typecode)	((typecode)[1]=='A')
+
+#define mm_is_complex(typecode)	((typecode)[2]=='C')
+#define mm_is_real(typecode)		((typecode)[2]=='R')
+#define mm_is_pattern(typecode)	((typecode)[2]=='P')
+#define mm_is_integer(typecode) ((typecode)[2]=='I')
+
+#define mm_is_symmetric(typecode)((typecode)[3]=='S')
+#define mm_is_general(typecode)	((typecode)[3]=='G')
+#define mm_is_skew(typecode)	((typecode)[3]=='K')
+#define mm_is_hermitian(typecode)((typecode)[3]=='H')
+
+int mm_is_valid(MM_typecode matcode);		/* too complex for a macro */
+
+
+/********************* MM_typecode modify fucntions ***************************/
+
+#define mm_set_matrix(typecode)	((*typecode)[0]='M')
+#define mm_set_coordinate(typecode)	((*typecode)[1]='C')
+#define mm_set_array(typecode)	((*typecode)[1]='A')
+#define mm_set_dense(typecode)	mm_set_array(typecode)
+#define mm_set_sparse(typecode)	mm_set_coordinate(typecode)
+
+#define mm_set_complex(typecode)((*typecode)[2]='C')
+#define mm_set_real(typecode)	((*typecode)[2]='R')
+#define mm_set_pattern(typecode)((*typecode)[2]='P')
+#define mm_set_integer(typecode)((*typecode)[2]='I')
+
+
+#define mm_set_symmetric(typecode)((*typecode)[3]='S')
+#define mm_set_general(typecode)((*typecode)[3]='G')
+#define mm_set_skew(typecode)	((*typecode)[3]='K')
+#define mm_set_hermitian(typecode)((*typecode)[3]='H')
+
+#define mm_clear_typecode(typecode) ((*typecode)[0]=(*typecode)[1]= \
+									(*typecode)[2]=' ',(*typecode)[3]='G')
+
+#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode)
+
+
+/********************* Matrix Market error codes ***************************/
+
+
+#define MM_COULD_NOT_READ_FILE	11
+#define MM_PREMATURE_EOF		12
+#define MM_NOT_MTX				13
+#define MM_NO_HEADER			14
+#define MM_UNSUPPORTED_TYPE		15
+#define MM_LINE_TOO_LONG		16
+#define MM_COULD_NOT_WRITE_FILE	17
+
+
+/******************** Matrix Market internal definitions ********************
+
+   MM_matrix_typecode: 4-character sequence
+
+				    ojbect 		sparse/   	data        storage
+						  		dense     	type        scheme
+
+   string position:	 [0]        [1]			[2]         [3]
+
+   Matrix typecode:  M(atrix)  C(oord)		R(eal)   	G(eneral)
+						        A(array)	C(omplex)   H(ermitian)
+											P(attern)   S(ymmetric)
+								    		I(nteger)	K(kew)
+
+ ***********************************************************************/
+
+#define MM_MTX_STR		"matrix"
+#define MM_ARRAY_STR	"array"
+#define MM_DENSE_STR	"array"
+#define MM_COORDINATE_STR "coordinate"
+#define MM_SPARSE_STR	"coordinate"
+#define MM_COMPLEX_STR	"complex"
+#define MM_REAL_STR		"real"
+#define MM_INT_STR		"integer"
+#define MM_GENERAL_STR  "general"
+#define MM_SYMM_STR		"symmetric"
+#define MM_HERM_STR		"hermitian"
+#define MM_SKEW_STR		"skew-symmetric"
+#define MM_PATTERN_STR  "pattern"
+
+/*  high level routines */
+
+int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[],
+		 double val[], MM_typecode matcode);
+int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[],
+		double val[], MM_typecode matcode);
+int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img,
+			MM_typecode matcode);
+
+int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_,
+                double **val_, int **I_, int **J_);
+
+
+
+#endif
--- /dev/null
+++ colpack-1.0.10/src/Utilities/stat.cpp
@@ -0,0 +1,704 @@
+#include "stat.h"
+
+vector<string> getListOfGraphs(string location_of_graph_list)
+{
+  static vector<string> list;
+  string temp;
+  int i=0, max_iteration=1000;
+
+  //Make sure that this function only run once despite how many times I call toFile...() functions
+  //Help make the statistics data consistent between files.
+  static bool is_run_already = false;
+  if (is_run_already) return list;
+  else is_run_already = true;
+
+  ifstream input (location_of_graph_list.c_str());
+  if(!input) {cout<<"**ERR getListOfGraphs: "<<location_of_graph_list<<" is not found"<<endl;return list;}
+  else cout<<"getListOfGraphs: Found file. The following graphs will be read:"<<endl;
+  list.clear();
+  input>>temp;
+  while(temp!="*" && i<max_iteration)    {
+      if(temp[temp.size()-1]=='*')
+	temp = temp.substr(0,temp.size()-1);
+      list.push_back(temp);
+
+      //Display
+      cout<<"\t "<<temp<<endl;
+
+      input>>temp;
+
+      i++;
+  }
+  if (i==max_iteration) {
+    cerr<<"**ERR getListOfGraphs(): i==max_iteration. May be you forget to use the \"*\" to terminate the list of graphs?"<<endl;
+  }
+  input.close();
+  return list;
+}
+
+
+
+void toFileC_forColoringBasedOrdering(string baseDir, string stat_output_suffix , bool stat_output_append, bool stat_refresh_list )
+{
+	ofstream stat_out1, stat_out2, stat_out3, stat_out4;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+	string s_OrderingVariant = "", s_ColoringVariant = "";
+
+	if(stat_output_append) {
+		stat_out1.open((baseDir+"NumberOfColors"+stat_output_suffix+".csv").c_str(),ios::app);
+		stat_out2.open((baseDir+"Time"+stat_output_suffix+".csv").c_str(),ios::app);
+		stat_out3.open((baseDir+"MaxBackDegree"+stat_output_suffix+".csv").c_str(),ios::app);
+		stat_out4.open((baseDir+"Graph_Stat"+stat_output_suffix+".csv").c_str(),ios::app);
+		stat_out1<<endl<<endl;
+		stat_out2<<endl<<endl;
+		stat_out3<<endl<<endl;
+		stat_out4<<endl<<endl;
+	}
+	else {
+		stat_out1.open((baseDir+"NumberOfColors"+stat_output_suffix+".csv").c_str());
+		stat_out2.open((baseDir+"Time"+stat_output_suffix+".csv").c_str());
+		stat_out3.open((baseDir+"MaxBackDegree"+stat_output_suffix+".csv").c_str());
+		stat_out4.open((baseDir+"Graph_Stat"+stat_output_suffix+".csv").c_str());
+	}
+
+	//Title
+	stat_out1<<"Style,Name,N,LF,SL,ID,D2LF,D2SL,D2ID"<<endl;
+	stat_out2<<"Style,Name,N,,,LF,,,SL,,,ID,,,D2LF,,,D2SL,,,D2ID"<<endl;
+	stat_out2<<",,OT,CT,TT,OT,CT,TT,OT,CT,TT,OT,CT,TT,OT,CT,TT,OT,CT,TT,OT,CT,TT"<<endl;
+	stat_out3<<"Style,Name,N,LF,SL,ID,D2LF,D2SL,D2ID"<<endl;
+	stat_out4<<"Name,|V|,|E|,MaxDegree,MinDegree,AvgDegree"<<endl;
+
+  for(unsigned int i=0;i < listOfGraphs.size(); i++){
+		printListOfGraphs(listOfGraphs,i);
+
+    for(int j=0;j<5;j++)
+    //for(int j=0;j<1;j++)
+      {
+		  if(j==3) continue;
+		  cout<<endl;
+
+		switch(j)
+		{
+		case 0: s_ColoringVariant = "DISTANCE_ONE"; cout<<"D1 "; stat_out1<<"D1,";stat_out2<<"D1,";stat_out3<<"D1,";break;//SL,
+		case 1: s_ColoringVariant = "ACYCLIC"; cout<<"A "; stat_out1<<"A,";stat_out2<<"A,";stat_out3<<"A,";break; //N
+		case 2: s_ColoringVariant = "STAR"; cout<<"S "; stat_out1<<"S,";stat_out2<<"S,";stat_out3<<"S,";break; //D2SL
+		case 3: s_ColoringVariant = "RESTRICTED_STAR"; cout<<"RS "; stat_out1<<"RS,";stat_out2<<"RS,";stat_out3<<"RS,";break;
+		case 4: s_ColoringVariant = "DISTANCE_TWO"; cout<<"D2 "; stat_out1<<"D2,";stat_out2<<"D2,";stat_out3<<"D2,";break; //SL
+		}
+		cout<<"Coloring "<<endl<<flush;
+
+		File stat_file_parsor;
+		stat_file_parsor.Parse(listOfGraphs[i]);
+		stat_out1<<stat_file_parsor.GetName();
+		stat_out2<<stat_file_parsor.GetName();
+		stat_out3<<stat_file_parsor.GetName();
+
+		//for (int k= ordering_num ; k < ordering_num + 1; k++)
+		for (int k=0; k<9; k++)
+		//for (int k=8; k<9; k++)
+		//for (int k=2; k<3; k++)
+		{
+			//if( (j==0 && k==2) || (j==1 && k==0) || (j==2 && k==5) ) {} else continue;
+			//if( (j==0 && k==2) || (j==1 && k==0) || (j==2 && k==5) || (j==4 && k==2) ) {} else continue;
+			//if( (j!=4) && (k==4||k==5||k==6) ) continue;
+			//if( (j!=2 && j!=3 && j!=4) && (k==4||k==5||k==6) ) continue;
+			if (j != 0 || (k != 0 && k !=2)) continue;
+			//if(j!=2||k!=0) continue;
+			//if(k!=2&&k!=7) continue;
+			//if(k!=0) continue;
+			//if(j==0&&k==1) continue;
+			//gGraph->Reset();
+
+			current_time();
+
+			switch(k)
+			{
+			case 0: s_OrderingVariant="NATURAL"; cout<<"NATURAL " ;break;
+			case 1: s_OrderingVariant="LARGEST_FIRST"; cout<<"LARGEST_FIRST " ;break;
+			case 2: s_OrderingVariant="SMALLEST_LAST"; cout<<"SMALLEST_LAST " ;break;
+			case 3: s_OrderingVariant="INCIDENCE_DEGREE"; cout<<"INCIDENCE_DEGREE " ;break;
+			case 4: s_OrderingVariant="DISTANCE_TWO_LARGEST_FIRST"; cout<<"DISTANCE_TWO_LARGEST_FIRST " ;break;
+			case 5: s_OrderingVariant="DISTANCE_TWO_SMALLEST_LAST"; cout<<"DISTANCE_TWO_SMALLEST_LAST " ;break;
+			case 6: s_OrderingVariant="DISTANCE_TWO_INCIDENCE_DEGREE"; cout<<"DISTANCE_TWO_INCIDENCE_DEGREE " ;break;
+			case 7: s_OrderingVariant="DYNAMIC_LARGEST_FIRST"; cout<<"DYNAMIC_LARGEST_FIRST " ;break;
+			case 8: s_OrderingVariant="RANDOM"; cout<<"RANDOM " ;break;
+			}
+			cout<<"Ordering "<<endl;
+
+
+			GraphColoringInterface * gGraph = new GraphColoringInterface(SRC_FILE,listOfGraphs[i].c_str(), "AUTO_DETECTED");
+			gGraph->Coloring(s_OrderingVariant, s_ColoringVariant );
+
+			//cout<<"GetVertexColorCount="<<gGraph->GetVertexColorCount()<<endl<<flush;
+			stat_out1<<","<<gGraph->GetVertexColorCount()<<flush;
+			stat_out2<<","<<gGraph->GetVertexOrderingTime()<<","<<gGraph->GetVertexColoringTime()<<","<<gGraph->GetVertexColoringTime()+gGraph->GetVertexOrderingTime()<<flush;
+
+			Timer m_T_Timer;
+			vector<int> output;
+			gGraph->GetVertexColors(output);
+			m_T_Timer.Start();
+			gGraph->ColoringBasedOrdering(output);
+			m_T_Timer.Stop();
+			double OrderingTime = m_T_Timer.GetWallTime();
+
+			gGraph->SetStringVertexColoringVariant(""); // so that DistanceOneColoring() actually does the coloring
+			m_T_Timer.Start();
+			gGraph->GraphColoring::DistanceOneColoring();
+			m_T_Timer.Stop();
+			double ColoringTime = m_T_Timer.GetWallTime();
+
+			stat_out1<<","<<gGraph->GetVertexColorCount()<<flush;
+			stat_out2<<","<<OrderingTime<<","<<ColoringTime<<","<<ColoringTime+OrderingTime<<flush;
+
+
+			//if(k == 2) { // Only get MaxBackDegree of SL ordering
+			if(j == 0) {
+				cout<<"GetMaxBackDegree ... MaxBackDegree = "<<flush;
+
+				int MaxBackDegree = gGraph->GetMaxBackDegree();
+				stat_out3<<","<<MaxBackDegree<<flush;
+				//stat_out3<<","<<gGraph->GetMaxBackDegree2()<<flush;
+
+				cout<<MaxBackDegree;
+
+				if(k == 0) { // only get statistics once for each graph
+					stat_out4<<stat_file_parsor.GetName();
+					stat_out4<<","<<gGraph->GetVertexCount();
+					stat_out4<<","<<gGraph->GetEdgeCount();
+					stat_out4<<","<<gGraph->GetMaximumVertexDegree();
+					stat_out4<<","<<gGraph->GetMinimumVertexDegree();
+					stat_out4<<","<<gGraph->GetAverageVertexDegree();
+					stat_out4<<endl<<flush;
+				}
+			}
+			cout<<" DONE"<<endl;
+			delete gGraph;
+			//system("pause");
+			//break;
+		}
+		stat_out1<<endl;
+		stat_out2<<endl;
+		stat_out3<<endl;
+		//break;
+	}
+
+	cout<<"***Finish 1 graph"<<endl<<endl<<endl;
+  }
+
+  stat_out1.close();
+  stat_out2.close();
+  stat_out3.close();
+  stat_out4.close();
+}
+
+void toFileC(string baseDir, string stat_output_suffix, vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags ) {
+	ofstream out_NumberOfColors, out_Time, out_MaxBackDegree, out_Graph_Stat;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+
+	// ******************************************************
+	// Open appropriate output stream
+	if( stat_flags["output_append"] ) {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Append to "<<(baseDir+"NumberOfColors"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_NumberOfColors<<endl<<endl;
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Append to "<<(baseDir+"Time"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-Coloring"+"-Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_Time<<endl<<endl;
+	  }
+
+	  if(stat_flags["MaxBackDegree"]) {
+	    cout<<"MaxBackDegree: Append to "<<(baseDir+"MaxBackDegree"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_MaxBackDegree.open((baseDir+"MaxBackDegree"+"-Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_MaxBackDegree<<endl<<endl;
+	  }
+
+	  if(stat_flags["Graph_Stat"]) {
+	    cout<<"Graph_Stat: Append to "<<(baseDir+"Graph_Stat"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Graph_Stat.open((baseDir+"Graph_Stat"+"-Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_Graph_Stat<<endl<<endl;
+	  }
+	}
+	else {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Write to "<<(baseDir+"NumberOfColors"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Write to "<<(baseDir+"Time"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+
+	  if(stat_flags["MaxBackDegree"]) {
+	    cout<<"MaxBackDegree: Write to "<<(baseDir+"MaxBackDegree"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_MaxBackDegree.open((baseDir+"MaxBackDegree"+"-Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+
+	  if(stat_flags["Graph_Stat"]) {
+	    cout<<"Graph_Stat: Write to "<<(baseDir+"Graph_Stat"+"-Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Graph_Stat.open((baseDir+"Graph_Stat"+"-Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+	}
+
+	// ******************************************************
+	// Create titles
+	if(stat_flags["NumberOfColors"]) {
+	  out_NumberOfColors<<"Style, Name";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_NumberOfColors<<", "<<Orderings[i];
+	  }
+	  out_NumberOfColors<<endl;
+	}
+
+	if(stat_flags["Time"]) {
+	  // line 1
+	  out_Time<<"Style,Name";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_Time<<", "<<Orderings[i]<<", , ";
+	  }
+	  out_Time<<endl;
+
+	  // line 2
+	  out_Time<<",";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_Time<<", OT, CT, TT";
+	  }
+	  out_Time<<endl;
+	}
+
+	if(stat_flags["MaxBackDegree"]) {
+	  out_MaxBackDegree<<"Name";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_MaxBackDegree<<", "<<Orderings[i];
+	  }
+	  out_MaxBackDegree<<endl;
+	}
+
+	if(stat_flags["Graph_Stat"]) {
+		out_Graph_Stat<<"Name,|V|,|E|,MaxDegree,MinDegree,AvgDegree"<<endl;
+	}
+
+	for(unsigned int i=0;i < listOfGraphs.size(); i++){
+		printListOfGraphs(listOfGraphs,i);
+
+		for(size_t j=0;j < Colorings.size();j++) {
+			cout<<Colorings[j]<<" Coloring"<<endl<<flush;
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<Colorings[j]<<", ";
+			if(stat_flags["Time"]) out_Time<<Colorings[j]<<", ";
+
+			File stat_file_parsor;
+			stat_file_parsor.Parse(listOfGraphs[i]);
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<stat_file_parsor.GetName();
+			if(stat_flags["Time"]) out_Time<<stat_file_parsor.GetName();
+			if(stat_flags["MaxBackDegree"] && j == 0) out_MaxBackDegree<<stat_file_parsor.GetName();
+
+			for(size_t k=0;k < Orderings.size();k++) {
+				current_time();
+
+				cout<<Orderings[k]<<" Ordering"<<endl<<flush;
+
+				GraphColoringInterface * gGraph = new GraphColoringInterface(SRC_FILE,listOfGraphs[i].c_str(), "AUTO_DETECTED");
+				gGraph->Coloring(Orderings[k], Colorings[j] );
+
+				/*
+				if(Colorings[j] == "ACYCLIC") {
+				  int result =  gGraph->CheckAcyclicColoring();
+					if(result) {
+					  cout<<"gGraph->CheckAcyclicColoring() fail. Violation count = "<<result;
+					}
+					else {
+					  cout<<"gGraph->CheckAcyclicColoring() success. Violation count = "<<result;
+					}
+				}
+				//*/
+				if(Colorings[j] == "STAR") {
+					if(gGraph->GraphColoring::CheckStarColoring()) {
+					  cout<<"CheckStarColoring(): problem found"<<endl;
+					  exit(1);
+					} else {
+					  cout<<"CheckStarColoring(): no problem found"<<endl;
+					}
+
+				}
+
+
+				if(stat_flags["NumberOfColors"]) out_NumberOfColors<<","<<gGraph->GetVertexColorCount()<<flush;
+				if(stat_flags["Time"]) out_Time<<","<<gGraph->GetVertexOrderingTime()<<","<<gGraph->GetVertexColoringTime()<<","<<gGraph->GetVertexColoringTime()+gGraph->GetVertexOrderingTime()<<flush;
+
+				// Only get MaxBackDegree of one coloring
+				if(j == 0) {
+					if(stat_flags["MaxBackDegree"]) {
+						cout<<"GetMaxBackDegree ... MaxBackDegree = "<<flush;
+
+						int MaxBackDegree = gGraph->GetMaxBackDegree();
+						out_MaxBackDegree<<","<<MaxBackDegree<<flush;
+						cout<<MaxBackDegree<<endl;
+					}
+
+					//populate Graph_Stat, done once for each graph
+					if(stat_flags["Graph_Stat"] && k == 0) {
+						out_Graph_Stat<<stat_file_parsor.GetName();
+						out_Graph_Stat<<","<<gGraph->GetVertexCount();
+						out_Graph_Stat<<","<<gGraph->GetEdgeCount();
+						out_Graph_Stat<<","<<gGraph->GetMaximumVertexDegree();
+						out_Graph_Stat<<","<<gGraph->GetMinimumVertexDegree();
+						out_Graph_Stat<<","<<gGraph->GetAverageVertexDegree();
+						out_Graph_Stat<<endl<<flush;
+					}
+				}
+
+				cout<<endl<<" DONE"<<endl;
+				delete gGraph;
+			}
+
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<endl;
+			if(stat_flags["Time"]) out_Time<<endl;
+			if(stat_flags["MaxBackDegree"] && j == 0) out_MaxBackDegree<<endl;
+		}
+
+		cout<<"***Finish 1 graph"<<endl<<endl<<endl;
+
+		if(stat_flags["refresh_list"]) {
+			listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+		}
+	}
+
+	if(stat_flags["NumberOfColors"]) out_NumberOfColors.close();
+	if(stat_flags["Time"]) out_Time.close();
+	if(stat_flags["MaxBackDegree"]) out_MaxBackDegree.close();
+	if(stat_flags["Graph_Stat"]) out_Graph_Stat.close();
+}
+
+
+void toFileStatisticForGraph(string baseDir, string stat_output_suffix , map<string, bool> stat_flags  )
+{
+	ofstream out_Graph_Stat;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+
+	if(stat_flags["output_append"]) {
+		out_Graph_Stat.open((baseDir+"Graph_Stat"+stat_output_suffix+".csv").c_str(),ios::app);
+		out_Graph_Stat<<endl<<endl;
+	}
+	else {
+		out_Graph_Stat.open((baseDir+"Graph_Stat"+stat_output_suffix+".csv").c_str());
+	}
+
+	//Title
+	out_Graph_Stat<<"Name,|V|,|E|,MaxDegree,MinDegree,AvgDegree"<<endl;
+
+    for(unsigned int i=0;i < listOfGraphs.size(); i++){
+
+		current_time();
+
+		cout<<"Graph: "<<listOfGraphs[i]<<endl;
+		//system("pause");
+
+		GraphColoringInterface * gGraph = new GraphColoringInterface(SRC_FILE, listOfGraphs[i].c_str(), "AUTO_DETECTED");
+
+		//gGraph->PrintGraphStructure();
+
+		File stat_file_parsor;
+		stat_file_parsor.Parse(listOfGraphs[i]);
+		out_Graph_Stat<<stat_file_parsor.GetName();
+		out_Graph_Stat<<","<<gGraph->GetVertexCount();
+		out_Graph_Stat<<","<<gGraph->GetEdgeCount();
+		out_Graph_Stat<<","<<gGraph->GetMaximumVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetMinimumVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetAverageVertexDegree();
+		out_Graph_Stat<<endl<<flush;
+
+		delete gGraph;
+		cout<<"***Finish 1 graph"<<endl<<endl<<endl;
+
+		if(stat_flags["refresh_list"]) {
+			listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+		}
+	}
+
+  out_Graph_Stat.close();
+}
+
+void toFileStatisticForBipartiteGraph(string baseDir, string stat_output_suffix, map<string, bool> stat_flags  )
+{
+	ofstream out_Graph_Stat;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+
+	if( stat_flags["output_append"] ) {
+		out_Graph_Stat.open((baseDir+"BiGraph_Stat"+stat_output_suffix+".csv").c_str(),ios::app);
+		out_Graph_Stat<<endl<<endl;
+	}
+	else {
+		out_Graph_Stat.open((baseDir+"BiGraph_Stat"+stat_output_suffix+".csv").c_str());
+	}
+
+	//Title
+	out_Graph_Stat<<"Name,|E|,Density,Col|V|,ColMax,ColMin,ColAvg,Row|V|,RowMax,RowMin,RowAvg"<<endl;
+
+    for(unsigned int i=0;i < listOfGraphs.size(); i++){
+
+		current_time();
+
+		cout<<"Graph: "<<listOfGraphs[i]<<endl;
+		//system("pause");
+
+		//readBipartiteGraph(gGraph, listOfGraphs[i]);
+		BipartiteGraphBicoloringInterface * gGraph = new BipartiteGraphBicoloringInterface(SRC_FILE, listOfGraphs[i].c_str(), "AUTO_DETECTED");
+
+		//gGraph->PrintBipartiteGraph();
+
+		File stat_file_parsor;
+		stat_file_parsor.Parse(listOfGraphs[i]);
+		out_Graph_Stat<<stat_file_parsor.GetName();
+		out_Graph_Stat<<","<<gGraph->GetEdgeCount();
+		out_Graph_Stat<<","<<((double)gGraph->GetEdgeCount())/(gGraph->GetColumnVertexCount()*gGraph->GetRowVertexCount());
+		out_Graph_Stat<<","<<gGraph->GetColumnVertexCount();
+		out_Graph_Stat<<","<<gGraph->GetMaximumColumnVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetMinimumColumnVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetAverageColumnVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetRowVertexCount();
+		out_Graph_Stat<<","<<gGraph->GetMaximumRowVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetMinimumRowVertexDegree();
+		out_Graph_Stat<<","<<gGraph->GetAverageRowVertexDegree();
+		out_Graph_Stat<<endl<<flush;
+
+		delete gGraph;
+		cout<<"***Finish 1 graph"<<endl<<endl<<endl;
+
+		if( stat_flags["refresh_list"] ) {
+			listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+		}
+	}
+
+  out_Graph_Stat.close();
+}
+
+void printListOfGraphs(vector <string>& listOfGraphs, int selected) {
+	for(int i=0; i<(int)listOfGraphs.size();i++) {
+		if(i!=selected) cout<<"  Graph: "<<listOfGraphs[i]<<endl;
+		else cout<<"=>Graph: "<<listOfGraphs[i]<<endl;
+	}
+}
+
+void toFileBiC(string baseDir, string stat_output_suffix , vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags )
+{
+	ofstream out_NumberOfColors, out_Time;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+
+	// ******************************************************
+	// Open appropriate output stream
+	if( stat_flags["output_append"] ) {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Append to "<<(baseDir+"NumberOfColors"+"-BiColoring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-BiColoring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_NumberOfColors<<endl<<endl;
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Append to "<<(baseDir+"Time"+"-BiColoring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-BiColoring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_Time<<endl<<endl;
+	  }
+	}
+	else {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Write to "<<(baseDir+"NumberOfColors"+"-BiColoring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-BiColoring"+stat_output_suffix+".csv").c_str());
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Write to "<<(baseDir+"Time"+"-BiColoring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-BiColoring"+stat_output_suffix+".csv").c_str());
+	  }
+	}
+
+	// ******************************************************
+	// Create titles
+	if(stat_flags["NumberOfColors"]) {
+	  out_NumberOfColors<<"Style, Name";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_NumberOfColors<<", "<<Orderings[i]<<", , ";
+	  }
+	  out_NumberOfColors<<endl;
+
+	  // line 2
+	  out_NumberOfColors<<",";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_NumberOfColors<<", LEFT, RIGHT, TOTAL";
+	  }
+	  out_NumberOfColors<<endl;
+	}
+
+	if(stat_flags["Time"]) {
+	  // line 1
+	  out_Time<<"Style,Name";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_Time<<", "<<Orderings[i]<<", , ";
+	  }
+	  out_Time<<endl;
+
+	  // line 2
+	  out_Time<<",";
+	  for(size_t i=0; i< Orderings.size(); i++) {
+	    out_Time<<", OT, CT, TT";
+	  }
+	  out_Time<<endl;
+	}
+
+    for(unsigned int i=0;i < listOfGraphs.size(); i++){
+		printListOfGraphs(listOfGraphs,i);
+
+		for(size_t j=0;j<Colorings.size();j++)
+		{
+			cout<<Colorings[j]<<" Coloring"<<endl<<flush;
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<Colorings[j]<<", ";
+			if(stat_flags["Time"]) out_Time<<Colorings[j]<<", ";
+
+			File stat_file_parsor;
+			stat_file_parsor.Parse(listOfGraphs[i]);
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<stat_file_parsor.GetName();
+			if(stat_flags["Time"]) out_Time<<stat_file_parsor.GetName();
+
+			for (size_t k=0; k<Orderings.size(); k++)
+			{
+				current_time();
+
+				cout<<Orderings[k]<<" Ordering"<<endl<<flush;
+
+				//readBipartiteGraph(gGraph, listOfGraphs[i]);
+				BipartiteGraphBicoloringInterface * gGraph = new BipartiteGraphBicoloringInterface(SRC_FILE, listOfGraphs[i].c_str(), "AUTO_DETECTED");
+				gGraph->Bicoloring(Orderings[k], Colorings[j]);
+
+				if(stat_flags["NumberOfColors"]) out_NumberOfColors<<","<<gGraph->GetLeftVertexColorCount()<<","<<gGraph->GetRightVertexColorCount()<<","<<gGraph->GetVertexColorCount()<<flush;
+				if(stat_flags["Time"]) out_Time<<','<<gGraph->GetVertexOrderingTime()<<','<<gGraph->GetVertexColoringTime()<<','<<gGraph->GetVertexOrderingTime() + gGraph->GetVertexColoringTime()<<flush;
+
+				//system("pause");
+				//break;
+
+				cout<<endl<<" DONE"<<endl;
+				delete gGraph;
+			}
+
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<endl;
+			if(stat_flags["Time"]) out_Time<<endl;
+		}
+		cout<<"***Finish 1 graph"<<endl<<endl<<endl;
+
+		if(stat_flags["refresh_list"]) {
+			listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+		}
+	}
+
+  if(stat_flags["NumberOfColors"]) out_NumberOfColors.close();
+  if(stat_flags["Time"]) out_Time.close();
+}
+
+
+void toFileBiPC(string baseDir, string stat_output_suffix, vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags )
+{
+	ofstream out_NumberOfColors, out_Time;
+	vector <string> listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+
+	// ******************************************************
+	// Open appropriate output stream
+	if( stat_flags["output_append"] ) {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Append to "<<(baseDir+"NumberOfColors"+"-PD2Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-PD2Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_NumberOfColors<<endl<<endl;
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Append to "<<(baseDir+"Time"+"-PD2Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-PD2Coloring"+stat_output_suffix+".csv").c_str(),ios::app);
+	    out_Time<<endl<<endl;
+	  }
+	}
+	else {
+	  if(stat_flags["NumberOfColors"]) {
+	    cout<<"NumberOfColors: Write to "<<(baseDir+"NumberOfColors"+"-PD2Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_NumberOfColors.open((baseDir+"NumberOfColors"+"-PD2Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+
+	  if(stat_flags["Time"]) {
+	    cout<<"Time: Write to "<<(baseDir+"Time"+"-PD2Coloring"+stat_output_suffix+".csv")<<endl;
+	    out_Time.open((baseDir+"Time"+"-PD2Coloring"+stat_output_suffix+".csv").c_str());
+	  }
+	}
+
+	// ******************************************************
+	// Create titles
+	if(stat_flags["NumberOfColors"]) {
+	  out_NumberOfColors<<"Style, Name";
+	  for(unsigned int i=0; i< Orderings.size(); i++) {
+	    out_NumberOfColors<<", "<<Orderings[i];
+	  }
+	  out_NumberOfColors<<endl;
+	}
+
+	if(stat_flags["Time"]) {
+	  // line 1
+	  out_Time<<"Style,Name";
+	  for(unsigned int i=0; i< Orderings.size(); i++) {
+	    out_Time<<", "<<Orderings[i]<<", , ";
+	  }
+	  out_Time<<endl;
+
+	  // line 2
+	  out_Time<<",";
+	  for(unsigned int i=0; i< Orderings.size(); i++) {
+	    out_Time<<", OT, CT, TT";
+	  }
+	  out_Time<<endl;
+	}
+
+    for(unsigned int i=0;i < listOfGraphs.size(); i++){
+		printListOfGraphs(listOfGraphs,i);
+
+		for(unsigned int j=0;j<Colorings.size();j++)
+		{
+			cout<<Colorings[j]<<" Coloring"<<endl<<flush;
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<Colorings[j]<<", ";
+			if(stat_flags["Time"]) out_Time<<Colorings[j]<<", ";
+
+			File stat_file_parsor;
+			stat_file_parsor.Parse(listOfGraphs[i]);
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<stat_file_parsor.GetName();
+			if(stat_flags["Time"]) out_Time<<stat_file_parsor.GetName();
+
+			for (unsigned int k=0; k<Orderings.size(); k++)	{
+				current_time();
+
+				cout<<Orderings[k]<<" Ordering"<<endl<<flush;
+
+				BipartiteGraphPartialColoringInterface * gGraph = new BipartiteGraphPartialColoringInterface(SRC_FILE, listOfGraphs[i].c_str(), "AUTO_DETECTED");
+				gGraph->PartialDistanceTwoColoring(Orderings[k], Colorings[j] );
+
+				if(stat_flags["NumberOfColors"])  {
+				//!!! Test the value and see whether or not I will need the +1
+				  if(j==0) out_NumberOfColors<<','<<gGraph->GetRightVertexColorCount();
+				  else out_NumberOfColors<<','<<gGraph->GetLeftVertexColorCount();
+				}
+				if(stat_flags["Time"]) out_Time<<','<<gGraph->GetVertexOrderingTime()<<','<<gGraph->GetVertexColoringTime()<<','<<gGraph->GetVertexOrderingTime()+gGraph->GetVertexColoringTime();
+
+				cout<<endl<<" DONE"<<endl;
+				delete gGraph;
+			}
+
+			if(stat_flags["NumberOfColors"]) out_NumberOfColors<<endl;
+			if(stat_flags["Time"]) out_Time<<endl;
+		}
+
+		cout<<"Finish 1 graph"<<endl;
+
+		if(stat_flags["refresh_list"]) {
+			listOfGraphs = getListOfGraphs(baseDir+"listOfGraphs.txt");
+		}
+	}
+
+  if(stat_flags["NumberOfColors"]) out_NumberOfColors.close();
+  if(stat_flags["Time"]) out_Time.close();
+}
--- /dev/null
+++ colpack-1.0.10/src/Utilities/stat.h
@@ -0,0 +1,31 @@
+//This file provides the funtions needed to gather statistics about ColPack
+#ifndef STAT_H
+#define STAT_H
+
+#include "ColPackHeaders.h"
+
+using namespace ColPack;
+using namespace std;
+
+
+void printListOfGraphs(vector <string>& listOfGraphs, int selected);
+vector<string> getListOfGraphs(string location_of_graph_list);
+
+
+void toFileC(string baseDir, string stat_output_suffix, vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags );
+
+void toFileC_forColoringBasedOrdering(string baseDir, string stat_output_suffix, bool stat_output_append=1, bool stat_refresh_list = false);
+
+void toFileBiC(string baseDir, string stat_output_suffix, vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags );
+
+void toFileBiPC(string baseDir, string stat_output_suffix, vector<string> Orderings, vector<string> Colorings, map<string, bool> stat_flags );
+
+/* Note: be careful when you work with MatrixMarket-format.
+Look inside the file (1st line) to see whether the matrix is:
+- 'symmetric': use toFileStatisticForGraph()
+- 'general' (likely to be non-symmetric): use toFileStatisticForBipartiteGraph()
+//*/
+void toFileStatisticForGraph(string baseDir, string stat_output_suffix, map<string, bool> stat_flags); //i.e. Symmetric Matrix, Hessian
+void toFileStatisticForBipartiteGraph(string baseDir, string stat_output_suffix, map<string, bool> stat_flags); //i.e. Matrix, Jacobian
+
+#endif
