SIS
Symmetric Index Structures
/Users/dbr/ma/src/main.cpp
Go to the documentation of this file.
00001 #include "bas/lml/base.h"
00002 
00003 #define mSetCommandArguments( nArguments )\
00004 {\
00005     cmd->numberOfArguments = (nArguments);\
00006     cmd->arguments = arguments;\
00007 }
00008 
00009 #ifdef __cplusplus
00010 #   include <iostream>
00011 #   include <fstream>
00012 #   include <vector>
00013 #   include <string>
00014 #   include "lmu/cis/sis/adapter/ScdawgAdapter.hpp"
00015 #   include "lmu/cis/sis/adapter/InenagaCDAWGAdapter.hpp"
00016 #   include "lmu/cis/sis/adapter/VoidSequenceAdapter.hpp"
00017 #   include "lmu/cis/sis/indexer/DocumentIndexingAutomatonFindResults.hpp"
00018 #   include "lmu/cis/sis/indexer/DocumentIndexingAutomaton.hpp"
00019 #endif
00020 
00021 using lmu::cis::sis::InenagaCDAWGAdapter;
00022 using lmu::cis::sis::SCDAWGAdapter;
00023 using lmu::cis::sis::DocumentIndexingAutomaton;
00024 
00025 S32 main( S32 argc, S8* argv[] ){
00026     Command * cmd;
00027     S64 start, end;
00028     U32 tmp;
00029     double t;
00030 
00031 #ifndef __cplusplus
00032     mSetEndianness()
00033     cmd = CommandInit();
00034     if( argc <= 1 ){
00035         printf( "Please, choose a command:\n" );
00036         printf( "1: reverse_and_sort\n" );
00037         printf( "2: build_suffix_tree\n" );
00038         printf( "3: generate_suffixes\n" );
00039         printf( "4: compressed_automaton_lang\n" );
00040         printf( "5: build_cdawg\n" );
00041         printf( "6: compressed_automaton_stat\n" );
00042         printf( "7: build_scdawg\n" );
00043         printf( "8: scdawg_left_lang\n" );
00044         printf( "9: compressed_automaton_gv\n" );
00045         printf( "10: scdawg_stat\n" );
00046         printf( "11: scdawg_gv\n" );
00047         printf( "12: help\n" );
00048 
00049         scanf( "%u", &tmp ); cmd->cmd = tmp; {char tmp[128]; fgets( tmp, 128, stdin );}
00050 
00051         switch( cmd->cmd ){
00052             case CMD_REVERSE_AND_SORT:
00053             case CMD_GENERATE_SUFFIXES:
00054                 {
00055                     S8 fileNameInput[MAX_INPUT_STRING_SIZE];
00056                     S8 fileNameOutput[MAX_INPUT_STRING_SIZE];
00057                     S8 bitsPerSymbol[MAX_INPUT_STRING_SIZE];
00058                     S8 encoding[MAX_INPUT_STRING_SIZE];
00059                     S8 * arguments[4] = {fileNameInput, fileNameOutput, bitsPerSymbol, encoding};
00060 
00061                     printf( "Please, enter the input file name:\n" );
00062                     mGETS( fileNameInput );
00063 
00064                     printf( "Please, enter the output file name:\n" );
00065                     mGETS( fileNameOutput );
00066 
00067                     printf( "Please, enter the number of bits per symbol:\n" );
00068                     mGETS( bitsPerSymbol );
00069 
00070                     printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" );
00071                     mGETS( encoding );
00072 
00073                     mSetCommandArguments( 4 )
00074                 }; break;
00075 
00076             case CMD_BUILD_SUFFIX_TREE:
00077             case CMD_BUILD_CDAWG:
00078             case CMD_BUILD_SCDAWG:
00079                 {
00080                     S8 fileNameInput[MAX_INPUT_STRING_SIZE];
00081                     S8 fileNameOutput[MAX_INPUT_STRING_SIZE];
00082                     S8 bitsPerSymbol[MAX_INPUT_STRING_SIZE];
00083                     S8 encoding[MAX_INPUT_STRING_SIZE];
00084                     S8 tarjanTable[MAX_INPUT_STRING_SIZE];
00085                     S8 * arguments[5] = {fileNameInput, fileNameOutput, bitsPerSymbol, encoding, tarjanTable};
00086 
00087                     printf( "Please, enter the input file name:\n" );
00088                     mGETS( fileNameInput );
00089 
00090                     printf( "Please, enter the output file name:\n" );
00091                     mGETS( fileNameOutput );
00092 
00093                     printf( "Please, enter the number of bits per symbol:\n" );
00094                     mGETS( bitsPerSymbol );
00095 
00096                     printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" );
00097                     mGETS( encoding );
00098 
00099                     printf( "Please, enter Tarjan table (y / n):\n" );
00100                     mGETS( tarjanTable );
00101 
00102                     mSetCommandArguments( 5 )
00103                 }
00104                 break;
00105             case CMD_COMPRESSED_AUTOMATON_LANG:
00106             case CMD_SCDAWG_LEFT_LANG:
00107             case CMD_COMPRESSED_AUTOMATON_GV:
00108             case CMD_SCDAWG_GV:
00109                 {
00110                     S8 fileNameInput[MAX_INPUT_STRING_SIZE];
00111                     S8 fileNameOutput[MAX_INPUT_STRING_SIZE];
00112                     S8 encoding[MAX_INPUT_STRING_SIZE];
00113                     S8 * arguments[3] = {fileNameInput, fileNameOutput, encoding};
00114 
00115                     printf( "Please, enter the input file name:\n" );
00116                     mGETS( fileNameInput );
00117 
00118                     printf( "Please, enter the output file name:\n" );
00119                     mGETS( fileNameOutput );
00120 
00121                     printf( "Please, enter the encoding (UTF-8 / PLAIN):\n" );
00122                     mGETS( encoding );
00123 
00124                     mSetCommandArguments( 3 )
00125                 }
00126                 break;
00127             case CMD_COMPRESSED_AUTOMATON_STAT:
00128             case CMD_SCDAWG_STAT:
00129                 {
00130                     S8 fileNameInput[MAX_INPUT_STRING_SIZE];
00131                     S8 fileNameOutput[MAX_INPUT_STRING_SIZE];
00132                     S8 * arguments[2] = {fileNameInput, fileNameOutput};
00133 
00134                     printf( "Please, enter the input file name:\n" );
00135                     mGETS( fileNameInput );
00136 
00137                     printf( "Please, enter the output file name:\n" );
00138                     mGETS( fileNameOutput );
00139 
00140                     mSetCommandArguments( 2 )
00141                 }
00142                 break;
00143 
00144             case CMD_HELP: {
00145                 S8 msg[MAX_INPUT_STRING_SIZE];
00146                 S8 helpForCommand[MAX_INPUT_STRING_SIZE];
00147                 S8 * arguments[1] = {helpForCommand};
00148 
00149                 sprintf( msg, "Here is help.");
00150                 printf( "Please, enter the command you would like to get help for:\n" );
00151                 mGETS( helpForCommand );
00152                 mSetCommandArguments(1);
00153             }
00154             break;
00155 
00156             default:
00157                 {
00158                     S8 msg[MAX_INPUT_STRING_SIZE];
00159                     sprintf( msg, "Unknown command: %llu", (U64)(cmd->cmd) );
00160                     Throw( msg );
00161                 }
00162                 break;
00163         }
00164     }
00165     else{
00166         CommandParse( cmd, argc, argv );
00167     }
00168     start = clock();
00169     CommandExecute( cmd );
00170     end = clock();
00171     t = ((double)(end - start)) / CLOCKS_PER_SEC;
00172     printf( "time = %.2f seconds\n", t );
00173     CommandFree( cmd );
00174     Verify();
00175 
00176 #else
00177     std::vector<std::string> documents = {
00178         "/Users/dbruder/MA/etc/doc1",
00179         "/Users/dbruder/MA/etc/doc2",
00180         "/Users/dbruder/MA/etc/doc3",
00181         "/Users/dbruder/MA/etc/doc4"
00182         // "/Users/dbruder/MA/etc/N/MAI_clean.txt",
00183         // "/Users/dbruder/MA/etc/N/M_clean.txt"
00184         // "/Users/dbruder/MA/etc/N/ZAI.txt"
00185     };
00186 
00187     // InenagaCDAWGAdapter   scdawg;
00188     // SCDAWGAdapter   scdawg;
00189 
00190     // std::ifstream   dict("/Users/dbruder/MA/etc/dict.txt");
00191     // dict >> scdawg; // TODO!!!
00192     // scdawg.AddDictionary(dict);
00193     // scdawg.Close();
00194     // scdawg.Write("/Users/dbruder/MA/var/dict.orig.bin");
00195 
00196     // cdawg.AddDocuments(documents);
00197 
00198     // DocumentIndexingAutomaton< InenagaCDAWGAdapter > aut1;
00199     // // DocumentIndexingAutomaton< SCDAWGAdapter > aut2;
00200     // aut1.AddDocuments(documents);
00201     // // aut2.AddDocuments(documents);
00202     // aut1.SortTransitions();
00203     // aut1.Close();
00204     // // aut2.SortTransitions();
00205     // // aut1.DumpGV("/Users/dbruder/MA/var/s71.dot");
00206     // // aut2.DumpGV("/Users/dbruder/MA/var/s71.dot");
00207     // // aut2.DumpGVRight("/Users/dbruder/MA/var/s71.dot");
00208     // aut1.Write("/Users/dbruder/MA/var/s71.bin");
00209     // return 0;
00210 
00211     // DocumentIndexingAutomaton< InenagaCDAWGAdapter > aut(4);
00212     // SCDAWGAdapter adapter;
00213     // adapter.Read("/Users/dbruder/MA/var/s71.bin");
00214     // return 0;
00215     DocumentIndexingAutomaton< SCDAWGAdapter > aut(1);
00216     // DocumentIndexingAutomaton< SCDAWGAdapter > aut;
00217     // SCDAWGAdapter aut;
00218 
00219     // CompressedAutomatonAdapter aut(1);
00220     // std::cout << aut.printsymbolsize() << std::endl;
00221 
00222     aut.AddDocuments(documents);
00223     aut.SortTransitions();
00224     // aut.SortTransitions();
00225 
00226     // aut.Index();
00227 
00228     aut.DumpStat("/Users/dbruder/MA/var/s71.stat");
00229     aut.DumpGV("/Users/dbruder/MA/var/s71.dot");
00230 
00231     // aut.Close();
00232     // aut.Write("/Users/dbruder/MA/var/s71.bin");
00233 
00234 
00235     auto results = aut.findall("anna");
00236     std::cout << " Results empty? " << results.empty() << std::endl;
00237 
00238     // for (auto map: results)
00239     //     for (auto pos: map.second)
00240     //         std::cout << "doc: " << map.first << " -> " << std::get<0>(pos) << " = " << std::get<1>(pos) << " = " << std::get<2>(pos) << std::endl;
00241 
00242     // aut.Index();
00243 
00244     // cdawg.Shrink();
00245     // cdawg.AddTarjanTable();
00246 
00247     // cdawg.Index();
00248 
00249     // DocumentIndexingAutomatonFindResults results;
00250     // auto results = cdawg.findall("anna");
00251     //
00252     // std::cout << " Results empty? " << results.empty() << std::endl;
00253     //
00254     // for (auto map: results)
00255     //     for (auto pos: map.second)
00256     //         std::cout << "doc: " << map.first << " -> " << pos << std::endl;
00257     //
00258     // cdawg.DumpStat("var/s7.stat");
00259     // cdawg.DumpGV("var/s7.dot");
00260     // cdawg.Write("var/s7.bin");
00261 
00262     // cdawg.DumpGV("s7.dot", ENCODING_UTF8);
00263     // std::cout << cdawg << std::endl;
00264     // cdawg.DumpStat("s7.stat");
00265 
00266 
00267     // cdawg.Delta("anna");
00268 
00269 
00270 
00271     // SCDAWGAdapter   scdawg(std::ifstream("example/test.dict"));
00272     // scdawg.Close();
00273     // scdawg.DumpGV("s8.dot");
00274     // return 0;
00275 
00276     // std::ifstream   dict("example/dict.txt");
00277 
00278     // while (dict.good())
00279     //     dict >> scdawg;
00280 
00281     // while (dict >> scdawg)
00282     //     ;
00283     // dict >> scdawg;
00284     // scdawg.AddDictionary(dict);
00285 
00286 
00287     // for (auto d: documents) std::cout << "+++" << d << std::endl;
00288 
00289     // std::cout << "Found moni " << cdawg.findall("moni") << " times" << std::endl;
00290 
00291     // cdawg.Read("s7.bin");
00292     // cdawg.DumpStat("s7.stat");
00293     // cdawg.DumpGV("s7.dot");
00294     // Fopen("var/s7.dot", "rb"); //test DFOPEN_FCLOSE_COUNT later.
00295     // Verify();
00296 #endif
00297     return 0;
00298 }
00299 //dot my.gv -Tps -o"my.ps" -Kdot
00300 //diff -q 1.txt 2.txt
00301 
00302 
00303 
00304 
00305 
00306 
00307 
00308 
00309 
00310 
00311         // "/Users/dbruder/MA/etc/N/MAI.txt",
00312         // "/Users/dbruder/MA/etc/N/ZAI.txt",
00313         // "/Users/dbruder/MA/etc/N/M.txt"
00314         // "/Users/dbruder/MA/etc/N/print.1",
00315         // "/Users/dbruder/MA/etc/N/print.2",
00316         // "/Users/dbruder/MA/etc/N/print.3",
00317         // "/Users/dbruder/MA/etc/N/print.4",
00318         // "/Users/dbruder/MA/etc/N/print.5",
00319         // "/Users/dbruder/MA/etc/N/print.6",
00320         // "/Users/dbruder/MA/etc/N/print.7",
00321         // "/Users/dbruder/MA/etc/N/print.8",
00322         // "/Users/dbruder/MA/etc/N/print.9",
00323         // "/Users/dbruder/MA/etc/N/print.10",
00324         // "/Users/dbruder/MA/etc/N/print.11",
00325         // "/Users/dbruder/MA/etc/N/print.12",
00326         // "/Users/dbruder/MA/etc/N/print.13",
00327         // "/Users/dbruder/MA/etc/N/print.14",
00328         // "/Users/dbruder/MA/etc/N/print.15",
00329         // "/Users/dbruder/MA/etc/N/print.16",
00330         // "/Users/dbruder/MA/etc/N/print.17",
00331         // "/Users/dbruder/MA/etc/N/print.18",
00332         // "/Users/dbruder/MA/etc/N/print.19",
00333         // "/Users/dbruder/MA/etc/N/print.20",
00334         //    "/Users/dbruder/MA/etc/N/print.21",
00335         //    "/Users/dbruder/MA/etc/N/print.22",
00336         //    "/Users/dbruder/MA/etc/N/print.23",
00337         //    "/Users/dbruder/MA/etc/N/print.24",
00338         //    "/Users/dbruder/MA/etc/N/print.25",
00339         //    "/Users/dbruder/MA/etc/N/print.26",
00340         //    "/Users/dbruder/MA/etc/N/print.27",
00341         //    "/Users/dbruder/MA/etc/N/print.28",
00342         //    "/Users/dbruder/MA/etc/N/print.29",
00343         //    "/Users/dbruder/MA/etc/N/print.30",
00344         //    "/Users/dbruder/MA/etc/N/print.31",
00345         //    "/Users/dbruder/MA/etc/N/print.32",
00346         //    "/Users/dbruder/MA/etc/N/print.33",
00347         //    "/Users/dbruder/MA/etc/N/print.34",
00348         //    "/Users/dbruder/MA/etc/N/print.35",
00349         //    "/Users/dbruder/MA/etc/N/print.36",
00350         //    "/Users/dbruder/MA/etc/N/print.37",
00351         //    "/Users/dbruder/MA/etc/N/print.38",
00352         //    "/Users/dbruder/MA/etc/N/print.39",
00353         //    "/Users/dbruder/MA/etc/N/print.40",
00354         //    "/Users/dbruder/MA/etc/N/print.41",
00355         //    "/Users/dbruder/MA/etc/N/print.42",
00356         //    "/Users/dbruder/MA/etc/N/print.43",
00357         //    "/Users/dbruder/MA/etc/N/print.44",
00358         //    "/Users/dbruder/MA/etc/N/print.45",
00359         //    "/Users/dbruder/MA/etc/N/print.46",
00360         //    "/Users/dbruder/MA/etc/N/print.47",
00361         //    "/Users/dbruder/MA/etc/N/print.48",
00362         //    "/Users/dbruder/MA/etc/N/print.49",
00363         //    "/Users/dbruder/MA/etc/N/print.50",
00364         //    "/Users/dbruder/MA/etc/N/print.51",
00365         //    "/Users/dbruder/MA/etc/N/print.52",
00366         //    "/Users/dbruder/MA/etc/N/print.53",
00367         //    "/Users/dbruder/MA/etc/N/print.54",
00368         //    "/Users/dbruder/MA/etc/N/print.55",
00369         //    "/Users/dbruder/MA/etc/N/print.56",
00370         //    "/Users/dbruder/MA/etc/N/print.57",
00371         //    "/Users/dbruder/MA/etc/N/print.58",
00372         //    "/Users/dbruder/MA/etc/N/print.59",
00373         //    "/Users/dbruder/MA/etc/N/print.60",
00374         //    "/Users/dbruder/MA/etc/N/print.61",
00375         //    "/Users/dbruder/MA/etc/N/print.62",
00376         //    "/Users/dbruder/MA/etc/N/print.63",
00377         //    "/Users/dbruder/MA/etc/N/print.64",
00378         //    "/Users/dbruder/MA/etc/N/print.65",
00379         //    "/Users/dbruder/MA/etc/N/print.66",
00380         //    "/Users/dbruder/MA/etc/N/print.67",
00381         //    "/Users/dbruder/MA/etc/N/print.68",
00382         //    "/Users/dbruder/MA/etc/N/print.69",
00383         //    "/Users/dbruder/MA/etc/N/print.70",
00384         //    "/Users/dbruder/MA/etc/N/print.71",
00385         //    "/Users/dbruder/MA/etc/N/print.72",
00386         //    "/Users/dbruder/MA/etc/N/print.73",
00387         //    "/Users/dbruder/MA/etc/N/print.74",
00388         //    "/Users/dbruder/MA/etc/N/print.75",
00389         //    "/Users/dbruder/MA/etc/N/print.76",
00390         //    "/Users/dbruder/MA/etc/N/print.77",
00391         //    "/Users/dbruder/MA/etc/N/print.78",
00392         //    "/Users/dbruder/MA/etc/N/print.79",
00393         //    "/Users/dbruder/MA/etc/N/print.80",
00394         //    "/Users/dbruder/MA/etc/N/print.81",
00395         //    "/Users/dbruder/MA/etc/N/print.82",
00396         //    "/Users/dbruder/MA/etc/N/print.83",
00397         //    "/Users/dbruder/MA/etc/N/print.84",
00398         //    "/Users/dbruder/MA/etc/N/print.85",
00399         //    "/Users/dbruder/MA/etc/N/print.86",
00400         //    "/Users/dbruder/MA/etc/N/print.87",
00401         //    "/Users/dbruder/MA/etc/N/print.88",
00402         //    "/Users/dbruder/MA/etc/N/print.89",
00403         //    "/Users/dbruder/MA/etc/N/print.90",
00404         //    "/Users/dbruder/MA/etc/N/print.91",
00405         //    "/Users/dbruder/MA/etc/N/print.92",
00406         //    "/Users/dbruder/MA/etc/N/print.93",
00407         //    "/Users/dbruder/MA/etc/N/print.94",
00408         //    "/Users/dbruder/MA/etc/N/print.95",
00409         //    "/Users/dbruder/MA/etc/N/print.96",
00410         //    "/Users/dbruder/MA/etc/N/print.97",
00411         //    "/Users/dbruder/MA/etc/N/print.98",
00412         //    "/Users/dbruder/MA/etc/N/print.99",
00413         //    "/Users/dbruder/MA/etc/N/print.100",
00414         //    "/Users/dbruder/MA/etc/N/print.101",
00415         //    "/Users/dbruder/MA/etc/N/print.102",
00416         //    "/Users/dbruder/MA/etc/N/print.103",
00417         //    "/Users/dbruder/MA/etc/N/print.104",
00418         //    "/Users/dbruder/MA/etc/N/print.105",
00419         //    "/Users/dbruder/MA/etc/N/print.106",
00420         //    "/Users/dbruder/MA/etc/N/print.107",
00421         //    "/Users/dbruder/MA/etc/N/print.108",
00422         //    "/Users/dbruder/MA/etc/N/print.109",
00423         //    "/Users/dbruder/MA/etc/N/print.110",
00424         //    "/Users/dbruder/MA/etc/N/print.111",
00425         //    "/Users/dbruder/MA/etc/N/print.112",
00426         //    "/Users/dbruder/MA/etc/N/print.113",
00427         //    "/Users/dbruder/MA/etc/N/print.114",
00428         //    "/Users/dbruder/MA/etc/N/print.115",
00429         //    "/Users/dbruder/MA/etc/N/print.116",
00430         //    "/Users/dbruder/MA/etc/N/print.117",
00431         //    "/Users/dbruder/MA/etc/N/print.118",
00432         //    "/Users/dbruder/MA/etc/N/print.119",
00433         //    "/Users/dbruder/MA/etc/N/print.120",
00434         //    "/Users/dbruder/MA/etc/N/print.121",
00435         //    "/Users/dbruder/MA/etc/N/print.122",
00436         //    "/Users/dbruder/MA/etc/N/print.123",
00437         //    "/Users/dbruder/MA/etc/N/print.124",
00438         //    "/Users/dbruder/MA/etc/N/print.125",
00439         //    "/Users/dbruder/MA/etc/N/print.126",
00440         //    "/Users/dbruder/MA/etc/N/print.127",
00441         //    "/Users/dbruder/MA/etc/N/print.128",
00442         //    "/Users/dbruder/MA/etc/N/print.129",
00443         //    "/Users/dbruder/MA/etc/N/print.130",
00444         //    "/Users/dbruder/MA/etc/N/print.131",
00445         //    "/Users/dbruder/MA/etc/N/print.132",
00446         //    "/Users/dbruder/MA/etc/N/print.133",
00447         //    "/Users/dbruder/MA/etc/N/print.134",
00448         //    "/Users/dbruder/MA/etc/N/print.135",
00449         //    "/Users/dbruder/MA/etc/N/print.136",
00450         //    "/Users/dbruder/MA/etc/N/print.137",
00451         //    "/Users/dbruder/MA/etc/N/print.138",
00452         //    "/Users/dbruder/MA/etc/N/print.139",
00453         //    "/Users/dbruder/MA/etc/N/print.140",
00454         //    "/Users/dbruder/MA/etc/N/print.141",
00455         //    "/Users/dbruder/MA/etc/N/print.142",
00456         //    "/Users/dbruder/MA/etc/N/print.143",
00457         //    "/Users/dbruder/MA/etc/N/print.144",
00458         //    "/Users/dbruder/MA/etc/N/print.145",
00459         //    "/Users/dbruder/MA/etc/N/print.146",
00460         //    "/Users/dbruder/MA/etc/N/print.147",
00461         //    "/Users/dbruder/MA/etc/N/print.148",
00462         //    "/Users/dbruder/MA/etc/N/print.149",
00463         //    "/Users/dbruder/MA/etc/N/print.150",
00464         //    "/Users/dbruder/MA/etc/N/print.151",
00465         //    "/Users/dbruder/MA/etc/N/print.152",
00466         //    "/Users/dbruder/MA/etc/N/print.153",
00467         //    "/Users/dbruder/MA/etc/N/print.154",
00468         //    "/Users/dbruder/MA/etc/N/print.155",
00469         //    "/Users/dbruder/MA/etc/N/print.156",
00470         //    "/Users/dbruder/MA/etc/N/print.157",
00471         //    "/Users/dbruder/MA/etc/N/print.158",
00472         //    "/Users/dbruder/MA/etc/N/print.159",
00473         //    "/Users/dbruder/MA/etc/N/print.160",
00474         //    "/Users/dbruder/MA/etc/N/print.161",
00475         //    "/Users/dbruder/MA/etc/N/print.162",
00476         //    "/Users/dbruder/MA/etc/N/print.163",
00477         //    "/Users/dbruder/MA/etc/N/print.164",
00478         //    "/Users/dbruder/MA/etc/N/print.165",
00479         //    "/Users/dbruder/MA/etc/N/print.166",
00480         //    "/Users/dbruder/MA/etc/N/print.167",
00481         //    "/Users/dbruder/MA/etc/N/print.168",
00482         //    "/Users/dbruder/MA/etc/N/print.169",
00483         //    "/Users/dbruder/MA/etc/N/print.170",
00484         //    "/Users/dbruder/MA/etc/N/print.171",
00485         //    "/Users/dbruder/MA/etc/N/print.172",
00486         //    "/Users/dbruder/MA/etc/N/print.173",
00487         //    "/Users/dbruder/MA/etc/N/print.174",
00488         //    "/Users/dbruder/MA/etc/N/print.175",
00489         //    "/Users/dbruder/MA/etc/N/print.176",
00490         //    "/Users/dbruder/MA/etc/N/print.177",
00491         //    "/Users/dbruder/MA/etc/N/print.178",
00492         //    "/Users/dbruder/MA/etc/N/print.179",
00493         //    "/Users/dbruder/MA/etc/N/print.180",
00494         //    "/Users/dbruder/MA/etc/N/print.181",
00495         //    "/Users/dbruder/MA/etc/N/print.182",
00496         //    "/Users/dbruder/MA/etc/N/print.183",
00497         //    "/Users/dbruder/MA/etc/N/print.184",
00498         //    "/Users/dbruder/MA/etc/N/print.185",
00499         //    "/Users/dbruder/MA/etc/N/print.186",
00500         //    "/Users/dbruder/MA/etc/N/print.187",
00501         //    "/Users/dbruder/MA/etc/N/print.188",
00502         //    "/Users/dbruder/MA/etc/N/print.189",
00503         //    "/Users/dbruder/MA/etc/N/print.190",
00504         //    "/Users/dbruder/MA/etc/N/print.191",
00505         //    "/Users/dbruder/MA/etc/N/print.192",
00506         //    "/Users/dbruder/MA/etc/N/print.193",
00507         //    "/Users/dbruder/MA/etc/N/print.194",
00508         //    "/Users/dbruder/MA/etc/N/print.195",
00509         //    "/Users/dbruder/MA/etc/N/print.196",
00510         //    "/Users/dbruder/MA/etc/N/print.197",
00511         //    "/Users/dbruder/MA/etc/N/print.198",
00512         //    "/Users/dbruder/MA/etc/N/print.199",
00513         //    "/Users/dbruder/MA/etc/N/print.200",
00514         //    "/Users/dbruder/MA/etc/N/print.201",
00515         //    "/Users/dbruder/MA/etc/N/print.202",
00516         //    "/Users/dbruder/MA/etc/N/print.203",
00517         //    "/Users/dbruder/MA/etc/N/print.204",
00518         //    "/Users/dbruder/MA/etc/N/print.205",
00519         //    "/Users/dbruder/MA/etc/N/print.206",
00520         //    "/Users/dbruder/MA/etc/N/print.207",
00521         //    "/Users/dbruder/MA/etc/N/print.208",
00522         //    "/Users/dbruder/MA/etc/N/print.209",
00523         //    "/Users/dbruder/MA/etc/N/print.210",
00524         //    "/Users/dbruder/MA/etc/N/print.211",
00525         //    "/Users/dbruder/MA/etc/N/print.212",
00526         //    "/Users/dbruder/MA/etc/N/print.213",
00527         //    "/Users/dbruder/MA/etc/N/print.214",
00528         //    "/Users/dbruder/MA/etc/N/print.215",
00529         //    "/Users/dbruder/MA/etc/N/print.216",
00530         //    "/Users/dbruder/MA/etc/N/print.217",
00531         //    "/Users/dbruder/MA/etc/N/print.218",
00532         //    "/Users/dbruder/MA/etc/N/print.219",
00533         //    "/Users/dbruder/MA/etc/N/print.220",
00534         //    "/Users/dbruder/MA/etc/N/print.221",
00535         //    "/Users/dbruder/MA/etc/N/print.222",
00536         //    "/Users/dbruder/MA/etc/N/print.223",
00537         //    "/Users/dbruder/MA/etc/N/print.224",
00538         //    "/Users/dbruder/MA/etc/N/print.225",
00539         //    "/Users/dbruder/MA/etc/N/print.226",
00540         //    "/Users/dbruder/MA/etc/N/print.227",
00541         //    "/Users/dbruder/MA/etc/N/print.228",
00542         //    "/Users/dbruder/MA/etc/N/print.229",
00543         //    "/Users/dbruder/MA/etc/N/print.230",
00544         //    "/Users/dbruder/MA/etc/N/print.231",
00545         //    "/Users/dbruder/MA/etc/N/print.232",
00546         //    "/Users/dbruder/MA/etc/N/print.233",
00547         //    "/Users/dbruder/MA/etc/N/print.234",
00548         //    "/Users/dbruder/MA/etc/N/print.235",
00549         //    "/Users/dbruder/MA/etc/N/print.236",
00550         //    "/Users/dbruder/MA/etc/N/print.237",
00551         //    "/Users/dbruder/MA/etc/N/print.238",
00552         //    "/Users/dbruder/MA/etc/N/print.239",
00553         //    "/Users/dbruder/MA/etc/N/print.240",
00554         //    "/Users/dbruder/MA/etc/N/print.241",
00555         //    "/Users/dbruder/MA/etc/N/print.242",
00556         //    "/Users/dbruder/MA/etc/N/print.243",
00557         //    "/Users/dbruder/MA/etc/N/print.244",
00558         //    "/Users/dbruder/MA/etc/N/print.245"
00559         // "/Users/dbruder/MA/etc/N/print.246"
00560         // "/Users/dbruder/MA/etc/N/print.247",
00561         // "/Users/dbruder/MA/etc/N/print.248"