Problems with Standard Library

Discussion in 'C++' started by Marco Chiarandini, Jul 24, 2004.

  1. Dear all,

    I am experiencing a problem in the deallocation of STL data
    structures.
    In paritcular I create a vector of sets and insert integers in each
    set. I do not define any deallocator since they should be already part
    of the STL. Nevertheless, when I exit the code I have memory leackage.
    I checked carefully and the leackage appear related with how many
    insertions I do in the set data structures.

    Is it possible that there are some known problems with the
    deallocation of sets? Or should I do something (clearing does not
    help) before exiting?

    Thank you in advance for the help!


    Regards,

    Marco

    P.S. I enclose the realtive output produced by valgrind on my code:

    ==29845== 8 bytes in 1 blocks are still reachable in loss record 1 of
    3
    ==29845== at 0x4002EFF2: malloc (vg_replace_malloc.c:160)
    ==29845== by 0x402E8D3D: __cxa_get_globals (eh_globals.cc:106)
    ==29845== by 0x402E8A48: std::uncaught_exception()
    (eh_catch.cc:131)
    ==29845== by 0x402CAB02: std::eek:stream::sentry::~sentry()
    (ostream:393)
    ==29845==
    ==29845==
    ==29845== 196296 bytes in 40 blocks are still reachable in loss record
    3 of 3
    ==29845== at 0x4002F202: operator new(unsigned)
    (vg_replace_malloc.c:162)
    ==29845== by 0x402D300A: std::__new_alloc::allocate(unsigned)
    (stl_alloc.h:108)
    ==29845== by 0x402D2D62: std::__default_alloc_template<true,
    0>::_S_chunk_alloc(unsigned, int&) (stl_alloc.h:506)
    ==29845== by 0x402D2BAE: std::__default_alloc_template<true,
    0>::_S_refill(unsigned) (stl_alloc.h:550)
    ==29845==
     
    Marco Chiarandini, Jul 24, 2004
    #1
    1. Advertising

  2. "Marco Chiarandini" <> wrote...
    > I am experiencing a problem in the deallocation of STL data
    > structures.
    > In paritcular I create a vector of sets and insert integers in each
    > set. I do not define any deallocator since they should be already part
    > of the STL. Nevertheless, when I exit the code I have memory leackage.
    > I checked carefully and the leackage appear related with how many
    > insertions I do in the set data structures.
    >
    > Is it possible that there are some known problems with the
    > deallocation of sets?


    Known as in "inherent to the data structure"? Or known as in "a known
    bug in my particular implementation of the standard library"? If you
    mean the former, no, nothing is inherently wrong with sets or vectors
    that would cause memory leaks. If you mean the latter, then how would
    we know?

    > Or should I do something (clearing does not
    > help) before exiting?


    No, the definition of those data structures in the language does not
    require you to do so.

    It is most likely that you're using either a buggy implementation of
    the standard library (or a particular part of it related to std::set)
    _or_ your memory leak reporting tool is not functioning properly and
    reports a bit too soon, and the memory is, in fact released some time
    later (I've seen that happen with other tools and "valgrind" is also
    but a piece of software written by humans just like the library, so
    in general they have equal probabilities of a malfunction).

    Also, please read the FAQ 5.8 for further assistance.

    Victor
     
    Victor Bazarov, Jul 24, 2004
    #2
    1. Advertising

  3. You need to post some code so we can examine it, as a matter
    of principle I'd assume you have a bug in your code rather than
    the STL until you can demonstrate that the problem is really in STL.

    Can you put breakpoints in the destructors of your data items to see
    they are being called when the stl containers go out of scope?

    dave



    "Marco Chiarandini" <> wrote in message
    news:...
    > Dear all,
    >
    > I am experiencing a problem in the deallocation of STL data
    > structures.
    > In paritcular I create a vector of sets and insert integers in each
    > set. I do not define any deallocator since they should be already part
    > of the STL. Nevertheless, when I exit the code I have memory leackage.
    > I checked carefully and the leackage appear related with how many
    > insertions I do in the set data structures.
    >
    > Is it possible that there are some known problems with the
    > deallocation of sets? Or should I do something (clearing does not
    > help) before exiting?
    >
    > Thank you in advance for the help!
    >
    >
    > Regards,
    >
    > Marco
    >
    > P.S. I enclose the realtive output produced by valgrind on my code:
    >
    > ==29845== 8 bytes in 1 blocks are still reachable in loss record 1 of
    > 3
    > ==29845== at 0x4002EFF2: malloc (vg_replace_malloc.c:160)
    > ==29845== by 0x402E8D3D: __cxa_get_globals (eh_globals.cc:106)
    > ==29845== by 0x402E8A48: std::uncaught_exception()
    > (eh_catch.cc:131)
    > ==29845== by 0x402CAB02: std::eek:stream::sentry::~sentry()
    > (ostream:393)
    > ==29845==
    > ==29845==
    > ==29845== 196296 bytes in 40 blocks are still reachable in loss record
    > 3 of 3
    > ==29845== at 0x4002F202: operator new(unsigned)
    > (vg_replace_malloc.c:162)
    > ==29845== by 0x402D300A: std::__new_alloc::allocate(unsigned)
    > (stl_alloc.h:108)
    > ==29845== by 0x402D2D62: std::__default_alloc_template<true,
    > 0>::_S_chunk_alloc(unsigned, int&) (stl_alloc.h:506)
    > ==29845== by 0x402D2BAE: std::__default_alloc_template<true,
    > 0>::_S_refill(unsigned) (stl_alloc.h:550)
    > ==29845==
     
    Dave Townsend, Jul 24, 2004
    #3
  4. Dear Dave,

    the code is quite long and it is true that I cannot be sure there is a
    bug somewhere else. However, given the excerpt below:


    adjacency_set.resize(num_of_vertices);
    for (Vertex i=0;i<num_of_vertices;i++)
    {
    adjacency_set.clear();
    for (Vertex j=0;j<num_of_vertices;j++)
    {
    if (Edge(i,j))
    {
    adjacency_set.insert(j);
    }
    }

    }

    I obtain a different response from valgrind:

    > ==29845== 196296 bytes in 40 blocks are still reachable in loss record


    if the line "adjacency_set.insert(j);" is present

    ==13954== 9952 bytes in 5 blocks are still reachable in loss record 3
    of 3


    if the line is commented.

    From here my conjecture that something strange is happening with
    destructors.
    The destructor of my the class to which the code above belong is
    regularly called but I don't do anything in the destructor.



    Marco




    "Dave Townsend" <> wrote in message news:<>...
    > You need to post some code so we can examine it, as a matter
    > of principle I'd assume you have a bug in your code rather than
    > the STL until you can demonstrate that the problem is really in STL.
    >
    > Can you put breakpoints in the destructors of your data items to see
    > they are being called when the stl containers go out of scope?
    >
    > dave
     
    Marco Chiarandini, Jul 25, 2004
    #4
  5. Dear Victor,

    "Victor Bazarov" <> wrote in message news:<l2wMc.177949$XM6.104624@attbi_s53>...

    > Also, please read the FAQ 5.8 for further assistance.


    Sorry I did not do my homeworks :) I try again.

    Sorry if the messagee becomes too long.

    I use: stdl libstdc++5 from the Debian distribution
    Compiler: g++ (GCC) 3.3.4 (Debian 1:3.3.4-4)
    valgrind: valgrind-2.1.0
    I launch valgrind on my code with the following flags:
    valgrind -v --show-reachable=yes --leak-check=yes a.out DSJC125.5.col

    I add an excerpt of functioning code (compile just as g++ prova.cpp)
    and a file that has to be loaded in execution. Call like a.out
    DSJC125.5.col.

    File: prova.cpp
    ------------------------------------------------------------------
    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <vector>
    #include <set>

    using namespace std;

    typedef unsigned int Vertex;
    typedef unsigned int Color;
    typedef set<Vertex> VertexSet;



    class Graph
    {
    public:
    Graph();
    ~Graph();

    void Load(const char *id, bool print_statistics);
    bool Edge(const Vertex& v, const Vertex& w) const
    { return adjacency_matrix[v][w] != 0; }

    vector< VertexSet > adjacency_set;
    vector<Vertex> degree;
    vector<pair<Vertex, Vertex> > edges;
    vector<Vertex> corresponding;
    protected:
    unsigned int num_of_vertices;
    unsigned int num_of_edges;
    unsigned int max_degree;
    unsigned int min_degree;

    float density;
    float av_degree;
    unsigned char **adjacency_matrix;

    struct _clique
    {
    vector<Vertex> in;
    unsigned int order;
    } largest_clique;
    };


    Graph::Graph()
    {
    num_of_vertices = 0;
    num_of_edges = 0;
    adjacency_matrix = NULL;
    }


    Graph::~Graph()
    {
    if (adjacency_matrix != NULL)
    {
    for (Vertex v = 0; v < num_of_vertices; v++)
    {
    adjacency_set[v].clear();
    delete [] adjacency_matrix[v];
    }
    delete [] adjacency_matrix;
    }
    }



    void Graph::Load(const char *id, bool print_statistics)
    {
    char *tmp; // temporary std::std::string

    char buf[255]; // line buffer

    int cen = 0; // for doublechecking file definition (counts the read
    edges)
    ifstream is(id);

    if (!is.is_open())
    {
    cerr<<"Instance file not found\n";
    exit(1);
    }


    while (!is.eof()) {
    is.getline(buf, 255); // process each line
    switch (buf[0]) {
    case 'p':
    {
    char *p=(char*)(&buf);//strstr((char*)(&buf), "p");
    if(strstr((char*)&buf,"edge")!=NULL) {
    p++;
    while(*p != '\0' && *p != '\n'){
    while(*p == ' ')
    p++;
    while(*p != ' ')
    p++;
    while(*p == ' ')
    p++;
    num_of_vertices = atoi(p);
    while(*p != ' ')
    p++;
    while(*p == ' ')
    p++;
    *p = '\0';
    }
    }

    adjacency_matrix = new unsigned char *[num_of_vertices];
    corresponding.resize(num_of_vertices,0);
    for (Vertex v = 0; v < num_of_vertices; v++) {
    corresponding[v]=v;
    adjacency_matrix[v] = new unsigned char[num_of_vertices];
    for (Vertex w = 0; w < num_of_vertices; w++)
    adjacency_matrix[v][w] = 0;
    }
    degree.resize(num_of_vertices,0);
    adjacency_set.resize(num_of_vertices);
    }
    break;
    case 'e':
    {
    tmp = strtok(buf, " "); // splits buf among the spaces
    tmp = strtok(0, " "); // consider the first number
    Vertex v = atoi(tmp) - 1;
    tmp = strtok(0, " "); // and now the second one
    Vertex w = atoi(tmp) - 1;
    if (adjacency_matrix[v][w] == 0)
    {
    cen++;
    if (v > w)
    {
    Vertex h = v;
    v = w;
    w = h;
    }
    pair<Vertex, Vertex> edge;
    edge.first = v;
    edge.second = w;
    edges.push_back(edge);
    }
    adjacency_matrix[v][w] = adjacency_matrix[w][v] = 1;

    }
    break;
    case 'c':
    case ' ':
    case '\n':

    break;
    default:

    break;
    }
    }
    num_of_edges = cen;
    av_degree = 0;
    max_degree = 0;
    min_degree = INT_MAX;
    for (Vertex i=0;i<num_of_vertices;i++)
    {
    adjacency_set.clear();
    degree=0;
    for (Vertex j=0;j<num_of_vertices;j++)
    {
    if (Edge(i,j))
    {
    degree++;
    adjacency_set.insert(j);
    }
    }
    if (degree>max_degree)
    max_degree = degree;
    if (degree<min_degree)
    min_degree=degree;

    av_degree += degree;
    }
    for (Vertex i=0;i<num_of_vertices;i++)
    {
    adjacency_set.clear();
    }
    adjacency_set.clear();
    av_degree /= num_of_vertices;
    density = ((float)(num_of_edges))/(((float)
    (num_of_vertices)/2)*(num_of_vertices-1));
    }



    int main( int argc, char** argv ) {

    Graph graph;
    graph.Load(argv[1],false);

    }

    --------------------------------------------------------------------
    File DSJC125.5.col
    ---------------------------------------------------------------------
    c FILE: DSJC125.5
    c
    c SOURCE: David Johnson ()
    c
    c DESCRIPTION: Random graph used in the paper
    c "Optimization by Simulated Annealing: An
    c Experimental Evaluation; Part II, Graph
    c Coloring and Number Partitioning" by
    c David S. Johnson, Cecilia R. Aragon,
    c Lyle A. McGeoch and Catherine Schevon
    c Operations Research, 39, 378-406 (1991)
    c
    p edge 125 3891
    e 2 1
    e 3 1
    e 4 1
    e 4 2
    e 4 3
    e 5 1
    e 5 2
    e 5 3
    e 6 1
    e 6 2
    e 6 3
    e 6 4
    e 7 2
    e 7 3
    e 7 6
    e 8 3
    e 8 5
    e 9 5
    e 10 1
    e 10 2
    e 10 3
    e 10 4
    e 10 6
    e 10 7
    e 10 8
    e 11 1
    e 11 2
    e 11 5
    e 11 6
    e 11 8
    e 11 9
    e 12 1
    e 12 4
    e 12 5
    e 12 7
    e 12 8
    e 12 9
    e 12 11
    e 13 1
    e 13 2
    e 13 3
    e 13 5
    e 13 8
    e 13 9
    e 13 11
    e 13 12
    e 14 2
    e 14 3
    e 14 4
    e 14 7
    e 14 8
    e 14 10
    e 15 1
    e 15 2
    e 15 5
    e 15 8
    e 15 10
    e 15 12
    e 15 13
    e 16 1
    e 16 4
    e 16 5
    e 16 8
    e 16 9
    e 16 10
    e 16 13
    e 17 1
    e 17 3
    e 17 4
    e 17 5
    e 17 6
    e 17 8
    e 17 9
    e 17 10
    e 17 12
    e 17 13
    e 17 15
    e 17 16
    e 18 1
    e 18 2
    e 18 3
    e 18 4
    e 18 6
    e 18 7
    e 18 8
    e 18 12
    e 18 13
    e 18 15
    e 19 6
    e 19 7
    e 19 10
    e 19 15
    e 19 16
    e 19 18
    e 20 5
    e 20 7
    e 20 11
    e 20 12
    e 20 13
    e 20 14
    e 20 17
    e 20 18
    e 20 19
    e 21 1
    e 21 2
    e 21 4
    e 21 6
    e 21 7
    e 21 8
    e 21 9
    e 21 10
    e 21 12
    e 21 13
    e 21 15
    e 21 16
    e 21 18
    e 22 1
    e 22 9
    e 22 11
    e 22 13
    e 22 15
    e 22 16
    e 22 17
    e 22 18
    e 22 19
    e 22 21
    e 23 2
    e 23 4
    e 23 6
    e 23 9
    e 23 11
    e 23 16
    e 23 17
    e 23 18
    e 23 19
    e 23 20
    e 23 22
    e 24 3
    e 24 4
    e 24 5
    e 24 7
    e 24 8
    e 24 9
    e 24 12
    e 24 13
    e 24 14
    e 24 16
    e 24 19
    e 24 20
    e 24 21
    e 24 22
    e 24 23
    e 25 1
    e 25 3
    e 25 4
    e 25 7
    e 25 9
    e 25 10
    e 25 11
    e 25 13
    e 25 16
    e 25 17
    e 25 18
    e 25 20
    e 25 22
    e 25 23
    e 25 24
    e 26 1
    e 26 2
    e 26 6
    e 26 7
    e 26 8
    e 26 10
    e 26 12
    e 26 15
    e 26 16
    e 26 17
    e 26 18
    e 26 19
    e 26 20
    e 26 21
    e 26 23
    e 26 24
    e 26 25
    e 27 1
    e 27 2
    e 27 4
    e 27 9
    e 27 10
    e 27 16
    e 27 17
    e 27 18
    e 27 19
    e 27 20
    e 27 21
    e 27 23
    e 27 25
    e 28 1
    e 28 2
    e 28 3
    e 28 6
    e 28 10
    e 28 11
    e 28 18
    e 28 22
    e 28 23
    e 28 24
    e 28 26
    e 29 1
    e 29 4
    e 29 6
    e 29 8
    e 29 10
    e 29 13
    e 29 14
    e 29 15
    e 29 16
    e 29 17
    e 29 21
    e 29 22
    e 29 23
    e 29 24
    e 29 25
    e 29 27
    e 29 28
    e 30 1
    e 30 2
    e 30 3
    e 30 4
    e 30 5
    e 30 10
    e 30 11
    e 30 12
    e 30 15
    e 30 16
    e 30 17
    e 30 18
    e 30 20
    e 30 23
    e 30 25
    e 30 26
    e 30 27
    e 30 28
    e 31 2
    e 31 5
    e 31 7
    e 31 10
    e 31 11
    e 31 14
    e 31 15
    e 31 16
    e 31 18
    e 31 19
    e 31 20
    e 31 21
    e 31 23
    e 31 25
    e 31 29
    e 32 1
    e 32 2
    e 32 3
    e 32 4
    e 32 7
    e 32 9
    e 32 11
    e 32 12
    e 32 17
    e 32 18
    e 32 25
    e 32 28
    e 32 29
    e 33 1
    e 33 2
    e 33 3
    e 33 8
    e 33 10
    e 33 12
    e 33 13
    e 33 15
    e 33 16
    e 33 19
    e 33 21
    e 33 22
    e 33 24
    e 33 26
    e 33 27
    e 33 28
    e 33 29
    e 33 32
    e 34 2
    e 34 3
    e 34 4
    e 34 6
    e 34 9
    e 34 11
    e 34 12
    e 34 16
    e 34 17
    e 34 19
    e 34 20
    e 34 22
    e 34 24
    e 34 25
    e 34 26
    e 34 28
    e 34 33
    e 35 2
    e 35 4
    e 35 5
    e 35 7
    e 35 8
    e 35 9
    e 35 13
    e 35 14
    e 35 17
    e 35 18
    e 35 19
    e 35 23
    e 35 24
    e 35 25
    e 35 27
    e 35 30
    e 35 32
    e 35 34
    e 36 1
    e 36 3
    e 36 6
    e 36 7
    e 36 8
    e 36 10
    e 36 12
    e 36 13
    e 36 15
    e 36 16
    e 36 17
    e 36 18
    e 36 22
    e 36 26
    e 36 28
    e 36 30
    e 36 31
    e 36 32
    e 36 33
    e 36 34
    e 37 1
    e 37 2
    e 37 3
    e 37 6
    e 37 7
    e 37 9
    e 37 10
    e 37 11
    e 37 14
    e 37 15
    e 37 16
    e 37 19
    e 37 21
    e 37 22
    e 37 25
    e 37 30
    e 37 31
    e 37 32
    e 37 33
    e 37 36
    e 38 1
    e 38 6
    e 38 7
    e 38 8
    e 38 9
    e 38 10
    e 38 14
    e 38 16
    e 38 19
    e 38 21
    e 38 22
    e 38 23
    e 38 24
    e 38 26
    e 38 28
    e 38 29
    e 38 30
    e 38 31
    e 38 32
    e 38 35
    e 39 2
    e 39 4
    e 39 7
    e 39 12
    e 39 13
    e 39 14
    e 39 16
    e 39 17
    e 39 18
    e 39 19
    e 39 25
    e 39 27
    e 39 28
    e 39 35
    e 40 1
    e 40 2
    e 40 3
    e 40 4
    e 40 7
    e 40 9
    e 40 10
    e 40 11
    e 40 14
    e 40 19
    e 40 21
    e 40 25
    e 40 26
    e 40 27
    e 40 29
    e 40 33
    e 40 37
    e 40 38
    e 41 3
    e 41 4
    e 41 5
    e 41 10
    e 41 11
    e 41 12
    e 41 13
    e 41 15
    e 41 19
    e 41 20
    e 41 21
    e 41 22
    e 41 24
    e 41 26
    e 41 30
    e 41 31
    e 41 33
    e 41 35
    e 41 40
    e 42 2
    e 42 3
    e 42 6
    e 42 14
    e 42 16
    e 42 20
    e 42 24
    e 42 25
    e 42 26
    e 42 28
    e 42 33
    e 42 34
    e 42 36
    e 42 38
    e 42 40
    e 43 3
    e 43 4
    e 43 7
    e 43 8
    e 43 11
    e 43 12
    e 43 13
    e 43 14
    e 43 15
    e 43 17
    e 43 18
    e 43 20
    e 43 23
    e 43 24
    e 43 25
    e 43 26
    e 43 31
    e 43 32
    e 43 33
    e 43 37
    e 43 38
    e 43 39
    e 44 2
    e 44 3
    e 44 5
    e 44 6
    e 44 7
    e 44 10
    e 44 14
    e 44 20
    e 44 21
    e 44 23
    e 44 24
    e 44 25
    e 44 26
    e 44 28
    e 44 29
    e 44 34
    e 44 35
    e 44 36
    e 44 38
    e 44 39
    e 44 40
    e 44 41
    e 44 42
    e 44 43
    e 45 1
    e 45 3
    e 45 4
    e 45 7
    e 45 8
    e 45 10
    e 45 11
    e 45 12
    e 45 16
    e 45 18
    e 45 19
    e 45 20
    e 45 21
    e 45 22
    e 45 23
    e 45 24
    e 45 26
    e 45 27
    e 45 28
    e 45 30
    e 45 31
    e 45 33
    e 45 35
    e 45 37
    e 45 38
    e 45 39
    e 45 40
    e 45 41
    e 45 43
    e 45 44
    e 46 1
    e 46 2
    e 46 4
    e 46 6
    e 46 7
    e 46 9
    e 46 11
    e 46 12
    e 46 14
    e 46 18
    e 46 21
    e 46 23
    e 46 25
    e 46 26
    e 46 29
    e 46 30
    e 46 31
    e 46 33
    e 46 34
    e 46 35
    e 46 37
    e 47 1
    e 47 4
    e 47 5
    e 47 6
    e 47 7
    e 47 9
    e 47 13
    e 47 14
    e 47 15
    e 47 17
    e 47 20
    e 47 21
    e 47 22
    e 47 23
    e 47 24
    e 47 26
    e 47 27
    e 47 28
    e 47 29
    e 47 32
    e 47 33
    e 47 34
    e 47 36
    e 47 42
    e 47 46
    e 48 5
    e 48 6
    e 48 8
    e 48 10
    e 48 11
    e 48 12
    e 48 13
    e 48 14
    e 48 16
    e 48 18
    e 48 21
    e 48 24
    e 48 25
    e 48 26
    e 48 31
    e 48 32
    e 48 33
    e 48 34
    e 48 36
    e 48 37
    e 48 39
    e 48 40
    e 48 45
    e 48 46
    e 49 1
    e 49 2
    e 49 3
    e 49 6
    e 49 9
    e 49 11
    e 49 19
    e 49 22
    e 49 23
    e 49 24
    e 49 25
    e 49 30
    e 49 33
    e 49 34
    e 49 36
    e 49 38
    e 49 40
    e 49 42
    e 49 47
    e 49 48
    e 50 2
    e 50 3
    e 50 7
    e 50 8
    e 50 9
    e 50 10
    e 50 12
    e 50 13
    e 50 14
    e 50 17
    e 50 18
    e 50 20
    e 50 22
    e 50 24
    e 50 26
    e 50 28
    e 50 31
    e 50 34
    e 50 36
    e 50 41
    e 50 42
    e 50 43
    e 50 44
    e 50 48
    e 50 49
    e 51 4
    e 51 5
    e 51 6
    e 51 7
    e 51 9
    e 51 12
    e 51 14
    e 51 15
    e 51 16
    e 51 18
    e 51 20
    e 51 21
    e 51 23
    e 51 24
    e 51 27
    e 51 33
    e 51 38
    e 51 39
    e 51 40
    e 51 42
    e 51 44
    e 51 45
    e 51 46
    e 51 47
    e 51 48
    e 51 50
    e 52 4
    e 52 6
    e 52 7
    e 52 9
    e 52 11
    e 52 15
    e 52 19
    e 52 20
    e 52 21
    e 52 25
    e 52 26
    e 52 27
    e 52 28
    e 52 29
    e 52 30
    e 52 32
    e 52 33
    e 52 34
    e 52 38
    e 52 39
    e 52 40
    e 52 42
    e 52 44
    e 52 46
    e 52 47
    e 52 48
    e 52 49
    e 53 6
    e 53 12
    e 53 16
    e 53 19
    e 53 21
    e 53 25
    e 53 26
    e 53 30
    e 53 32
    e 53 34
    e 53 35
    e 53 36
    e 53 40
    e 53 41
    e 53 42
    e 53 43
    e 53 44
    e 53 46
    e 53 47
    e 53 49
    e 53 50
    e 53 52
    e 54 1
    e 54 2
    e 54 3
    e 54 5
    e 54 6
    e 54 8
    e 54 9
    e 54 11
    e 54 12
    e 54 13
    e 54 15
    e 54 16
    e 54 18
    e 54 21
    e 54 23
    e 54 24
    e 54 26
    e 54 27
    e 54 28
    e 54 31
    e 54 33
    e 54 37
    e 54 38
    e 54 39
    e 54 45
    e 54 46
    e 54 47
    e 54 48
    e 54 49
    e 54 50
    e 55 2
    e 55 4
    e 55 5
    e 55 6
    e 55 9
    e 55 11
    e 55 14
    e 55 15
    e 55 16
    e 55 18
    e 55 21
    e 55 22
    e 55 23
    e 55 24
    e 55 25
    e 55 26
    e 55 28
    e 55 29
    e 55 32
    e 55 34
    e 55 35
    e 55 36
    e 55 38
    e 55 42
    e 55 47
    e 55 50
    e 55 51
    e 55 54
    e 56 1
    e 56 2
    e 56 4
    e 56 6
    e 56 8
    e 56 9
    e 56 17
    e 56 19
    e 56 20
    e 56 22
    e 56 23
    e 56 24
    e 56 28
    e 56 34
    e 56 35
    e 56 36
    e 56 37
    e 56 39
    e 56 40
    e 56 42
    e 56 43
    e 56 44
    e 56 45
    e 56 46
    e 56 48
    e 56 51
    e 56 52
    e 56 53
    e 56 54
    e 57 1
    e 57 2
    e 57 3
    e 57 7
    e 57 9
    e 57 11
    e 57 12
    e 57 14
    e 57 15
    e 57 16
    e 57 17
    e 57 18
    e 57 22
    e 57 26
    e 57 28
    e 57 29
    e 57 34
    e 57 36
    e 57 38
    e 57 39
    e 57 41
    e 57 42
    e 57 43
    e 57 44
    e 57 47
    e 57 48
    e 57 49
    e 57 50
    e 57 52
    e 57 54
    e 57 55
    e 57 56
    e 58 1
    e 58 2
    e 58 4
    e 58 6
    e 58 7
    e 58 8
    e 58 10
    e 58 11
    e 58 16
    e 58 17
    e 58 21
    e 58 22
    e 58 23
    e 58 24
    e 58 26
    e 58 28
    e 58 29
    e 58 30
    e 58 31
    e 58 33
    e 58 34
    e 58 35
    e 58 36
    e 58 37
    e 58 39
    e 58 40
    e 58 41
    e 58 43
    e 58 44
    e 58 46
    e 58 48
    e 58 51
    e 58 53
    e 58 56
    e 59 1
    e 59 2
    e 59 3
    e 59 5
    e 59 6
    e 59 7
    e 59 8
    e 59 9
    e 59 11
    e 59 12
    e 59 13
    e 59 15
    e 59 16
    e 59 18
    e 59 19
    e 59 23
    e 59 26
    e 59 27
    e 59 28
    e 59 29
    e 59 31
    e 59 32
    e 59 34
    e 59 38
    e 59 40
    e 59 41
    e 59 45
    e 59 46
    e 59 47
    e 59 49
    e 59 50
    e 59 51
    e 59 53
    e 59 54
    e 60 1
    e 60 2
    e 60 3
    e 60 4
    e 60 6
    e 60 10
    e 60 13
    e 60 16
    e 60 18
    e 60 19
    e 60 20
    e 60 21
    e 60 22
    e 60 25
    e 60 26
    e 60 29
    e 60 35
    e 60 38
    e 60 39
    e 60 40
    e 60 42
    e 60 43
    e 60 44
    e 60 46
    e 60 48
    e 60 50
    e 60 53
    e 60 54
    e 60 56
    e 60 58
    e 61 1
    e 61 2
    e 61 3
    e 61 4
    e 61 5
    e 61 6
    e 61 7
    e 61 8
    e 61 11
    e 61 14
    e 61 17
    e 61 19
    e 61 21
    e 61 22
    e 61 23
    e 61 25
    e 61 26
    e 61 31
    e 61 33
    e 61 41
    e 61 44
    e 61 45
    e 61 46
    e 61 47
    e 61 49
    e 61 50
    e 61 51
    e 61 54
    e 61 55
    e 61 56
    e 61 57
    e 61 59
    e 61 60
    e 62 1
    e 62 2
    e 62 5
    e 62 11
    e 62 12
    e 62 17
    e 62 18
    e 62 20
    e 62 21
    e 62 22
    e 62 24
    e 62 26
    e 62 29
    e 62 30
    e 62 31
    e 62 32
    e 62 33
    e 62 34
    e 62 35
    e 62 38
    e 62 39
    e 62 40
    e 62 42
    e 62 45
    e 62 47
    e 62 49
    e 62 51
    e 62 54
    e 62 55
    e 62 56
    e 62 57
    e 63 4
    e 63 7
    e 63 12
    e 63 13
    e 63 15
    e 63 21
    e 63 22
    e 63 24
    e 63 26
    e 63 27
    e 63 29
    e 63 30
    e 63 31
    e 63 32
    e 63 35
    e 63 36
    e 63 37
    e 63 38
    e 63 39
    e 63 40
    e 63 41
    e 63 42
    e 63 45
    e 63 47
    e 63 48
    e 63 49
    e 63 50
    e 63 51
    e 63 60
    e 64 2
    e 64 3
    e 64 8
    e 64 9
    e 64 10
    e 64 12
    e 64 13
    e 64 14
    e 64 17
    e 64 18
    e 64 19
    e 64 21
    e 64 22
    e 64 25
    e 64 26
    e 64 31
    e 64 32
    e 64 38
    e 64 40
    e 64 42
    e 64 44
    e 64 46
    e 64 47
    e 64 48
    e 64 51
    e 64 52
    e 64 53
    e 64 56
    e 64 57
    e 64 58
    e 64 59
    e 64 63
    e 65 3
    e 65 5
    e 65 6
    e 65 7
    e 65 9
    e 65 12
    e 65 13
    e 65 14
    e 65 15
    e 65 16
    e 65 17
    e 65 19
    e 65 21
    e 65 22
    e 65 23
    e 65 25
    e 65 28
    e 65 30
    e 65 31
    e 65 33
    e 65 37
    e 65 39
    e 65 43
    e 65 44
    e 65 46
    e 65 48
    e 65 50
    e 65 51
    e 65 52
    e 65 54
    e 65 55
    e 65 56
    e 65 57
    e 65 59
    e 65 60
    e 65 61
    e 65 62
    e 65 63
    e 65 64
    e 66 2
    e 66 3
    e 66 4
    e 66 5
    e 66 6
    e 66 9
    e 66 10
    e 66 14
    e 66 15
    e 66 19
    e 66 20
    e 66 21
    e 66 23
    e 66 24
    e 66 26
    e 66 27
    e 66 28
    e 66 29
    e 66 31
    e 66 32
    e 66 33
    e 66 36
    e 66 38
    e 66 39
    e 66 42
    e 66 43
    e 66 45
    e 66 48
    e 66 51
    e 66 53
    e 66 55
    e 66 56
    e 66 58
    e 66 65
    e 67 1
    e 67 2
    e 67 4
    e 67 5
    e 67 6
    e 67 7
    e 67 9
    e 67 10
    e 67 11
    e 67 14
    e 67 15
    e 67 17
    e 67 18
    e 67 20
    e 67 23
    e 67 24
    e 67 25
    e 67 28
    e 67 32
    e 67 34
    e 67 35
    e 67 36
    e 67 37
    e 67 39
    e 67 40
    e 67 42
    e 67 45
    e 67 47
    e 67 48
    e 67 49
    e 67 50
    e 67 51
    e 67 58
    e 67 61
    e 67 63
    e 68 2
    e 68 4
    e 68 7
    e 68 10
    e 68 11
    e 68 17
    e 68 20
    e 68 23
    e 68 24
    e 68 26
    e 68 30
    e 68 31
    e 68 32
    e 68 33
    e 68 36
    e 68 37
    e 68 38
    e 68 39
    e 68 40
    e 68 43
    e 68 45
    e 68 46
    e 68 48
    e 68 49
    e 68 53
    e 68 56
    e 68 58
    e 68 61
    e 69 1
    e 69 3
    e 69 8
    e 69 9
    e 69 13
    e 69 16
    e 69 17
    e 69 19
    e 69 20
    e 69 22
    e 69 24
    e 69 26
    e 69 27
    e 69 28
    e 69 29
    e 69 35
    e 69 36
    e 69 38
    e 69 39
    e 69 44
    e 69 47
    e 69 48
    e 69 54
    e 69 58
    e 69 59
    e 69 60
    e 69 64
    e 69 65
    e 69 66
    e 69 68
    e 70 2
    e 70 13
    e 70 14
    e 70 15
    e 70 20
    e 70 23
    e 70 24
    e 70 26
    e 70 28
    e 70 29
    e 70 30
    e 70 31
    e 70 34
    e 70 38
    e 70 40
    e 70 42
    e 70 44
    e 70 45
    e 70 47
    e 70 48
    e 70 51
    e 70 53
    e 70 54
    e 70 55
    e 70 57
    e 70 59
    e 70 63
    e 70 66
    e 71 1
    e 71 3
    e 71 4
    e 71 5
    e 71 9
    e 71 10
    e 71 11
    e 71 14
    e 71 21
    e 71 23
    e 71 27
    e 71 28
    e 71 30
    e 71 32
    e 71 35
    e 71 37
    e 71 38
    e 71 40
    e 71 44
    e 71 45
    e 71 46
    e 71 48
    e 71 49
    e 71 52
    e 71 53
    e 71 54
    e 71 56
    e 71 58
    e 71 59
    e 71 66
    e 71 69
    e 72 2
    e 72 6
    e 72 7
    e 72 8
    e 72 9
    e 72 10
    e 72 12
    e 72 14
    e 72 18
    e 72 19
    e 72 23
    e 72 24
    e 72 27
    e 72 28
    e 72 32
    e 72 33
    e 72 34
    e 72 35
    e 72 36
    e 72 37
    e 72 39
    e 72 42
    e 72 44
    e 72 45
    e 72 49
    e 72 52
    e 72 54
    e 72 55
    e 72 57
    e 72 64
    e 72 66
    e 72 67
    e 72 71
    e 73 2
    e 73 4
    e 73 8
    e 73 9
    e 73 11
    e 73 16
    e 73 17
    e 73 18
    e 73 19
    e 73 22
    e 73 23
    e 73 25
    e 73 27
    e 73 30
    e 73 31
    e 73 34
    e 73 35
    e 73 36
    e 73 39
    e 73 40
    e 73 45
    e 73 46
    e 73 47
    e 73 50
    e 73 51
    e 73 52
    e 73 55
    e 73 57
    e 73 61
    e 73 62
    e 73 65
    e 73 67
    e 73 68
    e 74 2
    e 74 3
    e 74 8
    e 74 9
    e 74 10
    e 74 12
    e 74 13
    e 74 14
    e 74 15
    e 74 17
    e 74 18
    e 74 19
    e 74 21
    e 74 22
    e 74 24
    e 74 28
    e 74 29
    e 74 30
    e 74 31
    e 74 36
    e 74 37
    e 74 41
    e 74 45
    e 74 46
    e 74 48
    e 74 49
    e 74 50
    e 74 51
    e 74 52
    e 74 53
    e 74 54
    e 74 55
    e 74 58
    e 74 59
    e 74 62
    e 74 66
    e 74 67
    e 74 68
    e 74 73
    e 75 2
    e 75 6
    e 75 8
    e 75 9
    e 75 11
    e 75 12
    e 75 13
    e 75 14
    e 75 15
    e 75 17
    e 75 20
    e 75 21
    e 75 27
    e 75 28
    e 75 30
    e 75 32
    e 75 36
    e 75 37
    e 75 39
    e 75 41
    e 75 42
    e 75 43
    e 75 50
    e 75 51
    e 75 56
    e 75 59
    e 75 60
    e 75 62
    e 75 64
    e 75 68
    e 75 71
    e 75 72
    e 75 73
    e 76 2
    e 76 4
    e 76 5
    e 76 8
    e 76 12
    e 76 13
    e 76 16
    e 76 17
    e 76 18
    e 76 20
    e 76 22
    e 76 23
    e 76 24
    e 76 26
    e 76 27
    e 76 29
    e 76 30
    e 76 34
    e 76 35
    e 76 38
    e 76 40
    e 76 41
    e 76 42
    e 76 43
    e 76 54
    e 76 56
    e 76 57
    e 76 58
    e 76 60
    e 76 61
    e 76 64
    e 76 68
    e 76 75
    e 77 4
    e 77 5
    e 77 8
    e 77 9
    e 77 12
    e 77 14
    e 77 15
    e 77 17
    e 77 18
    e 77 30
    e 77 31
    e 77 33
    e 77 35
    e 77 38
    e 77 39
    e 77 40
    e 77 42
    e 77 47
    e 77 48
    e 77 49
    e 77 51
    e 77 52
    e 77 55
    e 77 57
    e 77 60
    e 77 62
    e 77 63
    e 77 66
    e 77 70
    e 77 71
    e 77 72
    e 77 74
    e 77 75
    e 77 76
    e 78 2
    e 78 3
    e 78 5
    e 78 7
    e 78 8
    e 78 9
    e 78 13
    e 78 14
    e 78 15
    e 78 17
    e 78 21
    e 78 23
    e 78 24
    e 78 26
    e 78 27
    e 78 29
    e 78 32
    e 78 33
    e 78 35
    e 78 37
    e 78 38
    e 78 39
    e 78 40
    e 78 43
    e 78 44
    e 78 45
    e 78 46
    e 78 47
    e 78 48
    e 78 49
    e 78 52
    e 78 57
    e 78 58
    e 78 60
    e 78 62
    e 78 63
    e 78 65
    e 78 66
    e 78 68
    e 78 69
    e 78 70
    e 78 74
    e 78 77
    e 79 2
    e 79 3
    e 79 4
    e 79 5
    e 79 7
    e 79 10
    e 79 11
    e 79 12
    e 79 14
    e 79 17
    e 79 18
    e 79 19
    e 79 20
    e 79 21
    e 79 22
    e 79 24
    e 79 25
    e 79 27
    e 79 28
    e 79 29
    e 79 30
    e 79 31
    e 79 33
    e 79 35
    e 79 40
    e 79 42
    e 79 43
    e 79 46
    e 79 47
    e 79 48
    e 79 49
    e 79 50
    e 79 51
    e 79 53
    e 79 54
    e 79 58
    e 79 59
    e 79 60
    e 79 63
    e 79 64
    e 79 65
    e 79 67
    e 79 68
    e 79 75
    e 79 76
    e 79 77
    e 80 1
    e 80 3
    e 80 6
    e 80 8
    e 80 16
    e 80 19
    e 80 23
    e 80 24
    e 80 27
    e 80 33
    e 80 35
    e 80 36
    e 80 37
    e 80 44
    e 80 45
    e 80 46
    e 80 49
    e 80 50
    e 80 51
    e 80 54
    e 80 55
    e 80 56
    e 80 58
    e 80 59
    e 80 60
    e 80 63
    e 80 64
    e 80 68
    e 80 69
    e 80 72
    e 80 74
    e 80 76
    e 80 78
    e 80 79
    e 81 1
    e 81 3
    e 81 4
    e 81 6
    e 81 7
    e 81 9
    e 81 10
    e 81 12
    e 81 13
    e 81 15
    e 81 16
    e 81 18
    e 81 19
    e 81 21
    e 81 25
    e 81 28
    e 81 31
    e 81 36
    e 81 42
    e 81 45
    e 81 47
    e 81 51
    e 81 52
    e 81 53
    e 81 54
    e 81 56
    e 81 57
    e 81 59
    e 81 60
    e 81 63
    e 81 65
    e 81 70
    e 81 71
    e 81 76
    e 81 78
    e 81 80
    e 82 1
    e 82 2
    e 82 3
    e 82 6
    e 82 7
    e 82 8
    e 82 9
    e 82 11
    e 82 15
    e 82 17
    e 82 19
    e 82 20
    e 82 23
    e 82 24
    e 82 33
    e 82 36
    e 82 37
    e 82 41
    e 82 42
    e 82 44
    e 82 45
    e 82 46
    e 82 47
    e 82 48
    e 82 49
    e 82 51
    e 82 53
    e 82 54
    e 82 55
    e 82 58
    e 82 59
    e 82 60
    e 82 61
    e 82 62
    e 82 64
    e 82 66
    e 82 67
    e 82 68
    e 82 71
    e 82 72
    e 82 74
    e 82 75
    e 82 77
    e 83 1
    e 83 3
    e 83 7
    e 83 8
    e 83 9
    e 83 11
    e 83 13
    e 83 15
    e 83 16
    e 83 19
    e 83 20
    e 83 21
    e 83 26
    e 83 27
    e 83 28
    e 83 31
    e 83 32
    e 83 33
    e 83 35
    e 83 37
    e 83 40
    e 83 42
    e 83 43
    e 83 44
    e 83 45
    e 83 48
    e 83 49
    e 83 50
    e 83 54
    e 83 56
    e 83 57
    e 83 59
    e 83 62
    e 83 64
    e 83 65
    e 83 69
    e 83 72
    e 83 74
    e 83 75
    e 83 81
    e 83 82
    e 84 1
    e 84 3
    e 84 5
    e 84 6
    e 84 8
    e 84 9
    e 84 10
    e 84 13
    e 84 14
    e 84 16
    e 84 17
    e 84 18
    e 84 19
    e 84 20
    e 84 25
    e 84 27
    e 84 29
    e 84 31
    e 84 32
    e 84 33
    e 84 34
    e 84 35
    e 84 38
    e 84 40
    e 84 42
    e 84 43
    e 84 45
    e 84 46
    e 84 48
    e 84 51
    e 84 54
    e 84 56
    e 84 61
    e 84 64
    e 84 68
    e 84 70
    e 84 71
    e 84 72
    e 84 75
    e 84 77
    e 84 78
    e 84 80
    e 84 81
    e 84 82
    e 84 83
    e 85 3
    e 85 4
    e 85 6
    e 85 8
    e 85 9
    e 85 10
    e 85 11
    e 85 12
    e 85 13
    e 85 16
    e 85 17
    e 85 18
    e 85 21
    e 85 22
    e 85 25
    e 85 26
    e 85 30
    e 85 33
    e 85 34
    e 85 35
    e 85 36
    e 85 37
    e 85 46
    e 85 47
    e 85 49
    e 85 50
    e 85 51
    e 85 52
    e 85 54
    e 85 55
    e 85 58
    e 85 60
    e 85 61
    e 85 63
    e 85 64
    e 85 66
    e 85 67
    e 85 70
    e 85 71
    e 85 73
    e 85 74
    e 85 77
    e 85 78
    e 85 79
    e 85 80
    e 85 81
    e 85 83
    e 85 84
    e 86 5
    e 86 7
    e 86 8
    e 86 9
    e 86 11
    e 86 15
    e 86 16
    e 86 18
    e 86 25
    e 86 26
    e 86 28
    e 86 31
    e 86 33
    e 86 34
    e 86 35
    e 86 38
    e 86 39
    e 86 40
    e 86 41
    e 86 42
    e 86 46
    e 86 53
    e 86 55
    e 86 58
    e 86 62
    e 86 64
    e 86 65
    e 86 68
    e 86 70
    e 86 71
    e 86 72
    e 86 73
    e 86 75
    e 86 79
    e 86 80
    e 86 82
    e 86 85
    e 87 3
    e 87 4
    e 87 5
    e 87 7
    e 87 9
    e 87 10
    e 87 11
    e 87 12
    e 87 13
    e 87 16
    e 87 18
    e 87 19
    e 87 20
    e 87 21
    e 87 22
    e 87 23
    e 87 24
    e 87 26
    e 87 27
    e 87 28
    e 87 30
    e 87 31
    e 87 34
    e 87 35
    e 87 38
    e 87 40
    e 87 41
    e 87 42
    e 87 44
    e 87 47
    e 87 49
    e 87 53
    e 87 55
    e 87 56
    e 87 58
    e 87 59
    e 87 61
    e 87 62
    e 87 65
    e 87 69
    e 87 70
    e 87 80
    e 87 83
    e 87 84
    e 87 85
    e 87 86
    e 88 5
    e 88 9
    e 88 10
    e 88 11
    e 88 13
    e 88 18
    e 88 19
    e 88 21
    e 88 23
    e 88 24
    e 88 26
    e 88 28
    e 88 29
    e 88 30
    e 88 31
    e 88 33
    e 88 36
    e 88 37
    e 88 40
    e 88 43
    e 88 48
    e 88 52
    e 88 53
    e 88 59
    e 88 66
    e 88 67
    e 88 68
    e 88 69
    e 88 70
    e 88 71
    e 88 73
    e 88 79
    e 88 80
    e 88 81
    e 88 82
    e 89 2
    e 89 3
    e 89 6
    e 89 10
    e 89 11
    e 89 12
    e 89 13
    e 89 14
    e 89 15
    e 89 16
    e 89 18
    e 89 25
    e 89 27
    e 89 28
    e 89 33
    e 89 38
    e 89 39
    e 89 40
    e 89 47
    e 89 49
    e 89 50
    e 89 51
    e 89 53
    e 89 54
    e 89 57
    e 89 58
    e 89 59
    e 89 60
    e 89 61
    e 89 66
    e 89 71
    e 89 72
    e 89 76
    e 89 77
    e 89 78
    e 89 79
    e 89 80
    e 89 81
    e 89 82
    e 89 84
    e 89 85
    e 90 4
    e 90 6
    e 90 8
    e 90 9
    e 90 11
    e 90 12
    e 90 14
    e 90 17
    e 90 19
    e 90 20
    e 90 22
    e 90 26
    e 90 28
    e 90 33
    e 90 34
    e 90 40
    e 90 41
    e 90 46
    e 90 48
    e 90 52
    e 90 54
    e 90 55
    e 90 56
    e 90 57
    e 90 59
    e 90 62
    e 90 63
    e 90 66
    e 90 68
    e 90 69
    e 90 70
    e 90 78
    e 90 79
    e 90 81
    e 90 82
    e 90 83
    e 90 88
    e 91 1
    e 91 2
    e 91 3
    e 91 5
    e 91 6
    e 91 10
    e 91 11
    e 91 14
    e 91 16
    e 91 17
    e 91 18
    e 91 21
    e 91 22
    e 91 24
    e 91 29
    e 91 34
    e 91 38
    e 91 40
    e 91 42
    e 91 43
    e 91 44
    e 91 46
    e 91 47
    e 91 48
    e 91 50
    e 91 51
    e 91 52
    e 91 59
    e 91 60
    e 91 61
    e 91 62
    e 91 63
    e 91 65
    e 91 66
    e 91 68
    e 91 69
    e 91 70
    e 91 72
    e 91 73
    e 91 74
    e 91 75
    e 91 77
    e 91 79
    e 91 80
    e 91 83
    e 91 84
    e 91 86
    e 91 88
    e 91 89
    e 91 90
    e 92 1
    e 92 4
    e 92 5
    e 92 6
    e 92 7
    e 92 10
    e 92 12
    e 92 15
    e 92 18
    e 92 19
    e 92 20
    e 92 27
    e 92 28
    e 92 29
    e 92 33
    e 92 34
    e 92 35
    e 92 38
    e 92 40
    e 92 44
    e 92 45
    e 92 48
    e 92 49
    e 92 50
    e 92 54
    e 92 57
    e 92 62
    e 92 63
    e 92 67
    e 92 68
    e 92 70
    e 92 71
    e 92 75
    e 92 76
    e 92 78
    e 92 79
    e 92 82
    e 92 83
    e 92 84
    e 92 86
    e 92 88
    e 93 1
    e 93 4
    e 93 5
    e 93 7
    e 93 11
    e 93 13
    e 93 14
    e 93 15
    e 93 17
    e 93 18
    e 93 19
    e 93 21
    e 93 24
    e 93 25
    e 93 29
    e 93 30
    e 93 32
    e 93 34
    e 93 36
    e 93 37
    e 93 40
    e 93 41
    e 93 44
    e 93 45
    e 93 49
    e 93 51
    e 93 53
    e 93 55
    e 93 56
    e 93 57
    e 93 59
    e 93 60
    e 93 62
    e 93 64
    e 93 65
    e 93 68
    e 93 69
    e 93 70
    e 93 76
    e 93 77
    e 93 78
    e 93 79
    e 93 80
    e 93 83
    e 93 84
    e 93 85
    e 93 87
    e 93 90
    e 93 91
    e 93 92
    e 94 1
    e 94 2
    e 94 3
    e 94 4
    e 94 7
    e 94 10
    e 94 13
    e 94 14
    e 94 15
    e 94 18
    e 94 23
    e 94 26
    e 94 28
    e 94 29
    e 94 31
    e 94 32
    e 94 38
    e 94 40
    e 94 44
    e 94 45
    e 94 46
    e 94 47
    e 94 48
    e 94 50
    e 94 53
    e 94 54
    e 94 55
    e 94 57
    e 94 59
    e 94 60
    e 94 63
    e 94 66
    e 94 68
    e 94 69
    e 94 70
    e 94 71
    e 94 72
    e 94 77
    e 94 79
    e 94 80
    e 94 81
    e 94 86
    e 94 87
    e 94 88
    e 94 90
    e 94 91
    e 94 92
    e 95 1
    e 95 6
    e 95 7
    e 95 8
    e 95 10
    e 95 14
    e 95 20
    e 95 22
    e 95 24
    e 95 25
    e 95 26
    e 95 27
    e 95 28
    e 95 29
    e 95 30
    e 95 33
    e 95 34
    e 95 35
    e 95 38
    e 95 40
    e 95 41
    e 95 42
    e 95 46
    e 95 48
    e 95 51
    e 95 52
    e 95 54
    e 95 56
    e 95 58
    e 95 61
    e 95 63
    e 95 67
    e 95 69
    e 95 72
    e 95 73
    e 95 74
    e 95 75
    e 95 76
    e 95 79
    e 95 82
    e 95 83
    e 95 84
    e 95 85
    e 95 86
    e 95 87
    e 95 88
    e 95 93
    e 95 94
    e 96 1
    e 96 4
    e 96 5
    e 96 6
    e 96 7
    e 96 8
    e 96 9
    e 96 10
    e 96 16
    e 96 22
    e 96 23
    e 96 24
    e 96 27
    e 96 29
    e 96 30
    e 96 33
    e 96 34
    e 96 35
    e 96 36
    e 96 37
    e 96 40
    e 96 45
    e 96 47
    e 96 48
    e 96 49
    e 96 51
    e 96 54
    e 96 56
    e 96 57
    e 96 58
    e 96 60
    e 96 62
    e 96 64
    e 96 65
    e 96 66
    e 96 70
    e 96 71
    e 96 80
    e 96 81
    e 96 83
    e 96 87
    e 96 90
    e 96 91
    e 96 92
    e 96 93
    e 97 1
    e 97 3
    e 97 10
    e 97 12
    e 97 14
    e 97 17
    e 97 18
    e 97 19
    e 97 22
    e 97 23
    e 97 26
    e 97 28
    e 97 30
    e 97 33
    e 97 35
    e 97 36
    e 97 37
    e 97 42
    e 97 43
    e 97 47
    e 97 48
    e 97 49
    e 97 52
    e 97 53
    e 97 54
    e 97 55
    e 97 58
    e 97 59
    e 97 60
    e 97 61
    e 97 63
    e 97 66
    e 97 67
    e 97 69
    e 97 76
    e 97 79
    e 97 84
    e 97 85
    e 97 86
    e 97 93
    e 97 94
    e 98 1
    e 98 2
    e 98 5
    e 98 6
    e 98 12
    e 98 13
    e 98 14
    e 98 15
    e 98 17
    e 98 19
    e 98 21
    e 98 22
    e 98 23
    e 98 24
    e 98 27
    e 98 28
    e 98 30
    e 98 31
    e 98 32
    e 98 33
    e 98 35
    e 98 39
    e 98 41
    e 98 42
    e 98 44
    e 98 47
    e 98 49
    e 98 52
    e 98 54
    e 98 58
    e 98 59
    e 98 60
    e 98 61
    e 98 65
    e 98 66
    e 98 67
    e 98 68
    e 98 69
    e 98 70
    e 98 71
    e 98 78
    e 98 79
    e 98 80
    e 98 81
    e 98 83
    e 98 84
    e 98 85
    e 98 88
    e 98 92
    e 98 93
    e 98 96
    e 99 1
    e 99 6
    e 99 7
    e 99 8
    e 99 11
    e 99 13
    e 99 16
    e 99 18
    e 99 22
    e 99 23
    e 99 24
    e 99 25
    e 99 26
    e 99 27
    e 99 29
    e 99 30
    e 99 32
    e 99 33
    e 99 34
    e 99 35
    e 99 36
    e 99 37
    e 99 39
    e 99 42
    e 99 43
    e 99 48
    e 99 50
    e 99 51
    e 99 52
    e 99 53
    e 99 54
    e 99 56
    e 99 57
    e 99 59
    e 99 60
    e 99 63
    e 99 66
    e 99 67
    e 99 68
    e 99 69
    e 99 70
    e 99 72
    e 99 73
    e 99 79
    e 99 84
    e 99 85
    e 99 86
    e 99 87
    e 99 90
    e 99 97
    e 100 1
    e 100 2
    e 100 5
    e 100 6
    e 100 7
    e 100 8
    e 100 9
    e 100 13
    e 100 14
    e 100 15
    e 100 16
    e 100 17
    e 100 18
    e 100 19
    e 100 20
    e 100 21
    e 100 22
    e 100 24
    e 100 26
    e 100 31
    e 100 33
    e 100 34
    e 100 35
    e 100 37
    e 100 38
    e 100 39
    e 100 40
    e 100 41
    e 100 44
    e 100 46
    e 100 47
    e 100 50
    e 100 51
    e 100 55
    e 100 56
    e 100 57
    e 100 58
    e 100 59
    e 100 60
    e 100 63
    e 100 64
    e 100 69
    e 100 70
    e 100 71
    e 100 74
    e 100 77
    e 100 78
    e 100 80
    e 100 81
    e 100 83
    e 100 84
    e 100 86
    e 100 87
    e 100 89
    e 100 91
    e 100 92
    e 100 93
    e 100 96
    e 100 98
    e 101 1
    e 101 3
    e 101 4
    e 101 5
    e 101 6
    e 101 8
    e 101 10
    e 101 16
    e 101 18
    e 101 19
    e 101 20
    e 101 24
    e 101 26
    e 101 28
    e 101 29
    e 101 31
    e 101 32
    e 101 36
    e 101 38
    e 101 39
    e 101 40
    e 101 44
    e 101 51
    e 101 52
    e 101 53
    e 101 55
    e 101 57
    e 101 60
    e 101 62
    e 101 64
    e 101 67
    e 101 68
    e 101 69
    e 101 73
    e 101 76
    e 101 80
    e 101 81
    e 101 82
    e 101 83
    e 101 85
    e 101 86
    e 101 88
    e 101 89
    e 101 91
    e 101 92
    e 101 94
    e 101 97
    e 101 100
    e 102 2
    e 102 5
    e 102 10
    e 102 11
    e 102 13
    e 102 16
    e 102 17
    e 102 19
    e 102 20
    e 102 22
    e 102 24
    e 102 28
    e 102 30
    e 102 31
    e 102 33
    e 102 34
    e 102 36
    e 102 37
    e 102 38
    e 102 42
    e 102 43
    e 102 47
    e 102 48
    e 102 49
    e 102 51
    e 102 54
    e 102 55
    e 102 60
    e 102 61
    e 102 63
    e 102 65
    e 102 66
    e 102 67
    e 102 69
    e 102 70
    e 102 71
    e 102 74
    e 102 76
    e 102 81
    e 102 82
    e 102 83
    e 102 84
    e 102 86
    e 102 87
    e 102 88
    e 102 89
    e 102 92
    e 102 93
    e 102 94
    e 102 95
    e 102 96
    e 102 97
    e 102 100
    e 103 1
    e 103 4
    e 103 5
    e 103 6
    e 103 10
    e 103 11
    e 103 12
    e 103 13
    e 103 15
    e 103 17
    e 103 18
    e 103 19
    e 103 22
    e 103 23
    e 103 25
    e 103 26
    e 103 27
    e 103 33
    e 103 35
    e 103 36
    e 103 37
    e 103 39
    e 103 45
    e 103 47
    e 103 49
    e 103 53
    e 103 54
    e 103 57
    e 103 58
    e 103 59
    e 103 60
    e 103 67
    e 103 69
    e 103 71
    e 103 72
    e 103 73
    e 103 74
    e 103 75
    e 103 76
    e 103 77
    e 103 79
    e 103 80
    e 103 85
    e 103 86
    e 103 88
    e 103 92
    e 103 93
    e 103 94
    e 103 96
    e 103 97
    e 103 98
    e 103 99
    e 103 100
    e 103 101
    e 103 102
    e 104 1
    e 104 2
    e 104 4
    e 104 5
    e 104 8
    e 104 11
    e 104 12
    e 104 14
    e 104 15
    e 104 17
    e 104 18
    e 104 19
    e 104 21
    e 104 22
    e 104 24
    e 104 25
    e 104 27
    e 104 28
    e 104 30
    e 104 31
    e 104 35
    e 104 36
    e 104 39
    e 104 43
    e 104 44
    e 104 47
    e 104 50
    e 104 56
    e 104 57
    e 104 58
    e 104 60
    e 104 64
    e 104 65
    e 104 66
    e 104 68
    e 104 69
    e 104 72
    e 104 74
    e 104 77
    e 104 80
    e 104 83
    e 104 84
    e 104 86
    e 104 87
    e 104 89
    e 104 90
    e 104 91
    e 104 92
    e 104 94
    e 104 98
    e 104 102
    e 104 103
    e 105 1
    e 105 2
    e 105 3
    e 105 4
    e 105 8
    e 105 10
    e 105 11
    e 105 12
    e 105 14
    e 105 15
    e 105 16
    e 105 17
    e 105 18
    e 105 22
    e 105 23
    e 105 24
    e 105 25
    e 105 26
    e 105 28
    e 105 30
    e 105 32
    e 105 33
    e 105 36
    e 105 38
    e 105 41
    e 105 46
    e 105 47
    e 105 48
    e 105 53
    e 105 54
    e 105 57
    e 105 58
    e 105 63
    e 105 64
    e 105 67
    e 105 68
    e 105 70
    e 105 72
    e 105 73
    e 105 74
    e 105 75
    e 105 78
    e 105 82
    e 105 85
    e 105 88
    e 105 91
    e 105 92
    e 105 93
    e 105 99
    e 105 101
    e 105 104
    e 106 1
    e 106 3
    e 106 5
    e 106 6
    e 106 7
    e 106 9
    e 106 15
    e 106 17
    e 106 18
    e 106 23
    e 106 24
    e 106 25
    e 106 28
    e 106 31
    e 106 32
    e 106 33
    e 106 35
    e 106 38
    e 106 39
    e 106 40
    e 106 42
    e 106 43
    e 106 46
    e 106 47
    e 106 49
    e 106 52
    e 106 55
    e 106 56
    e 106 57
    e 106 59
    e 106 61
    e 106 65
    e 106 66
    e 106 67
    e 106 69
    e 106 75
    e 106 76
    e 106 78
    e 106 81
    e 106 83
    e 106 84
    e 106 87
    e 106 88
    e 106 89
    e 106 90
    e 106 93
    e 106 94
    e 106 96
    e 106 97
    e 106 98
    e 106 100
    e 106 101
    e 106 102
    e 106 103
    e 106 104
    e 106 105
    e 107 1
    e 107 3
    e 107 5
    e 107 8
    e 107 9
    e 107 13
    e 107 18
    e 107 19
    e 107 23
    e 107 27
    e 107 30
    e 107 32
    e 107 36
    e 107 41
    e 107 43
    e 107 44
    e 107 46
    e 107 48
    e 107 49
    e 107 50
    e 107 55
    e 107 56
    e 107 58
    e 107 61
    e 107 64
    e 107 65
    e 107 66
    e 107 67
    e 107 68
    e 107 71
    e 107 73
    e 107 78
    e 107 79
    e 107 81
    e 107 82
    e 107 83
    e 107 84
    e 107 85
    e 107 91
    e 107 94
    e 107 95
    e 107 96
    e 107 99
    e 107 103
    e 107 104
    e 107 105
    e 108 1
    e 108 3
    e 108 9
    e 108 10
    e 108 11
    e 108 12
    e 108 13
    e 108 17
    e 108 19
    e 108 20
    e 108 22
    e 108 25
    e 108 26
    e 108 30
    e 108 32
    e 108 33
    e 108 34
    e 108 36
    e 108 37
    e 108 43
    e 108 46
    e 108 47
    e 108 48
    e 108 49
    e 108 51
    e 108 53
    e 108 54
    e 108 58
    e 108 59
    e 108 62
    e 108 63
    e 108 65
    e 108 66
    e 108 68
    e 108 70
    e 108 73
    e 108 74
    e 108 76
    e 108 77
    e 108 80
    e 108 81
    e 108 86
    e 108 87
    e 108 88
    e 108 89
    e 108 90
    e 108 94
    e 108 96
    e 108 98
    e 108 100
    e 108 101
    e 108 103
    e 108 106
    e 108 107
    e 109 5
    e 109 8
    e 109 10
    e 109 12
    e 109 14
    e 109 15
    e 109 17
    e 109 24
    e 109 26
    e 109 27
    e 109 30
    e 109 32
    e 109 33
    e 109 37
    e 109 41
    e 109 43
    e 109 49
    e 109 50
    e 109 51
    e 109 52
    e 109 53
    e 109 57
    e 109 58
    e 109 60
    e 109 61
    e 109 62
    e 109 63
    e 109 64
    e 109 65
    e 109 67
    e 109 68
    e 109 69
    e 109 71
    e 109 73
    e 109 74
    e 109 77
    e 109 79
    e 109 80
    e 109 81
    e 109 82
    e 109 83
    e 109 84
    e 109 85
    e 109 88
    e 109 92
    e 109 93
    e 109 95
    e 109 98
    e 109 99
    e 109 102
    e 109 103
    e 109 105
    e 109 107
    e 110 3
    e 110 6
    e 110 7
    e 110 10
    e 110 13
    e 110 15
    e 110 17
    e 110 20
    e 110 21
    e 110 22
    e 110 23
    e 110 24
    e 110 25
    e 110 30
    e 110 32
    e 110 33
    e 110 34
    e 110 36
    e 110 37
    e 110 39
    e 110 40
    e 110 42
    e 110 43
    e 110 44
    e 110 46
    e 110 51
    e 110 52
    e 110 54
    e 110 55
    e 110 56
    e 110 59
    e 110 61
    e 110 62
    e 110 63
    e 110 68
    e 110 72
    e 110 73
    e 110 74
    e 110 75
    e 110 78
    e 110 79
    e 110 80
    e 110 81
    e 110 82
    e 110 87
    e 110 91
    e 110 93
    e 110 96
    e 110 97
    e 110 98
    e 110 100
    e 110 101
    e 110 102
    e 110 103
    e 110 105
    e 110 107
    e 110 108
    e 111 2
    e 111 3
    e 111 5
    e 111 6
    e 111 7
    e 111 9
    e 111 17
    e 111 22
    e 111 23
    e 111 24
    e 111 30
    e 111 33
    e 111 34
    e 111 38
    e 111 39
    e 111 40
    e 111 41
    e 111 44
    e 111 45
    e 111 46
    e 111 48
    e 111 52
    e 111 53
    e 111 55
    e 111 56
    e 111 57
    e 111 60
    e 111 63
    e 111 64
    e 111 65
    e 111 66
    e 111 72
    e 111 73
    e 111 75
    e 111 78
    e 111 80
    e 111 81
    e 111 86
    e 111 90
    e 111 91
    e 111 92
    e 111 94
    e 111 96
    e 111 98
    e 111 100
    e 111 101
    e 111 104
    e 111 106
    e 111 108
    e 111 109
    e 111 110
    e 112 3
    e 112 4
    e 112 5
    e 112 6
    e 112 11
    e 112 12
    e 112 13
    e 112 14
    e 112 16
    e 112 17
    e 112 18
    e 112 19
    e 112 28
    e 112 30
    e 112 31
    e 112 32
    e 112 35
    e 112 36
    e 112 41
    e 112 43
    e 112 44
    e 112 45
    e 112 46
    e 112 49
    e 112 52
    e 112 53
    e 112 56
    e 112 57
    e 112 58
    e 112 59
    e 112 61
    e 112 64
    e 112 65
    e 112 66
    e 112 68
    e 112 69
    e 112 71
    e 112 72
    e 112 73
    e 112 76
    e 112 77
    e 112 79
    e 112 80
    e 112 81
    e 112 82
    e 112 83
    e 112 84
    e 112 85
    e 112 86
    e 112 87
    e 112 88
    e 112 89
    e 112 97
    e 112 101
    e 112 103
    e 112 104
    e 112 106
    e 112 108
    e 113 2
    e 113 3
    e 113 4
    e 113 7
    e 113 11
    e 113 12
    e 113 13
    e 113 21
    e 113 23
    e 113 24
    e 113 26
    e 113 27
    e 113 30
    e 113 31
    e 113 32
    e 113 35
    e 113 36
    e 113 37
    e 113 38
    e 113 39
    e 113 41
    e 113 44
    e 113 46
    e 113 47
    e 113 48
    e 113 50
    e 113 51
    e 113 52
    e 113 61
    e 113 66
    e 113 68
    e 113 69
    e 113 70
    e 113 71
    e 113 73
    e 113 74
    e 113 75
    e 113 77
    e 113 78
    e 113 79
    e 113 85
    e 113 89
    e 113 92
    e 113 93
    e 113 94
    e 113 96
    e 113 97
    e 113 100
    e 113 101
    e 113 102
    e 113 104
    e 113 105
    e 113 110
    e 114 1
    e 114 2
    e 114 3
    e 114 4
    e 114 6
    e 114 8
    e 114 11
    e 114 14
    e 114 15
    e 114 17
    e 114 18
    e 114 20
    e 114 21
    e 114 24
    e 114 26
    e 114 27
    e 114 28
    e 114 29
    e 114 30
    e 114 32
    e 114 33
    e 114 34
    e 114 36
    e 114 38
    e 114 39
    e 114 43
    e 114 45
    e 114 46
    e 114 48
    e 114 50
    e 114 51
    e 114 52
    e 114 54
    e 114 55
    e 114 56
    e 114 57
    e 114 58
    e 114 59
    e 114 61
    e 114 62
    e 114 63
    e 114 64
    e 114 65
    e 114 66
    e 114 68
    e 114 70
    e 114 71
    e 114 73
    e 114 75
    e 114 80
    e 114 81
    e 114 83
    e 114 86
    e 114 87
    e 114 90
    e 114 95
    e 114 101
    e 114 102
    e 114 103
    e 114 106
    e 114 109
    e 114 110
    e 114 111
    e 115 2
    e 115 4
    e 115 7
    e 115 13
    e 115 15
    e 115 16
    e 115 17
    e 115 19
    e 115 20
    e 115 22
    e 115 23
    e 115 27
    e 115 28
    e 115 29
    e 115 31
    e 115 32
    e 115 33
    e 115 34
    e 115 35
    e 115 36
    e 115 40
    e 115 41
    e 115 42
    e 115 44
    e 115 46
    e 115 47
    e 115 48
    e 115 49
    e 115 51
    e 115 52
    e 115 53
    e 115 55
    e 115 60
    e 115 61
    e 115 63
    e 115 66
    e 115 67
    e 115 70
    e 115 73
    e 115 74
    e 115 77
    e 115 80
    e 115 81
    e 115 85
    e 115 86
    e 115 91
    e 115 93
    e 115 95
    e 115 97
    e 115 98
    e 115 100
    e 115 103
    e 115 106
    e 115 107
    e 115 109
    e 115 110
    e 115 111
    e 115 113
    e 116 1
    e 116 2
    e 116 4
    e 116 6
    e 116 8
    e 116 10
    e 116 12
    e 116 13
    e 116 17
    e 116 18
    e 116 19
    e 116 20
    e 116 21
    e 116 22
    e 116 23
    e 116 24
    e 116 27
    e 116 29
    e 116 34
    e 116 35
    e 116 36
    e 116 37
    e 116 40
    e 116 41
    e 116 43
    e 116 49
    e 116 50
    e 116 53
    e 116 56
    e 116 58
    e 116 62
    e 116 66
    e 116 67
    e 116 68
    e 116 72
    e 116 73
    e 116 80
    e 116 86
    e 116 87
    e 116 88
    e 116 89
    e 116 90
    e 116 93
    e 116 94
    e 116 95
    e 116 98
    e 116 104
    e 116 106
    e 116 108
    e 116 109
    e 116 111
    e 116 112
    e 116 113
    e 116 115
    e 117 1
    e 117 4
    e 117 8
    e 117 9
    e 117 10
    e 117 13
    e 117 15
    e 117 17
    e 117 18
    e 117 19
    e 117 20
    e 117 28
    e 117 30
    e 117 33
    e 117 39
    e 117 40
    e 117 42
    e 117 44
    e 117 45
    e 117 46
    e 117 50
    e 117 51
    e 117 54
    e 117 56
    e 117 59
    e 117 60
    e 117 61
    e 117 62
    e 117 64
    e 117 65
    e 117 66
    e 117 72
    e 117 73
    e 117 75
    e 117 77
    e 117 80
    e 117 84
    e 117 89
    e 117 90
    e 117 91
    e 117 94
    e 117 97
    e 117 99
    e 117 101
    e 117 112
    e 117 115
    e 118 2
    e 118 3
    e 118 4
    e 118 7
    e 118 8
    e 118 9
    e 118 10
    e 118 14
    e 118 16
    e 118 17
    e 118 20
    e 118 21
    e 118 24
    e 118 25
    e 118 27
    e 118 28
    e 118 29
    e 118 30
    e 118 32
    e 118 33
    e 118 37
    e 118 38
    e 118 40
    e 118 41
    e 118 45
    e 118 46
    e 118 47
    e 118 48
    e 118 50
    e 118 55
    e 118 56
    e 118 57
    e 118 59
    e 118 62
    e 118 66
    e 118 69
    e 118 70
    e 118 72
    e 118 76
    e 118 77
    e 118 80
    e 118 84
    e 118 86
    e 118 87
    e 118 88
    e 118 91
    e 118 92
    e 118 93
    e 118 95
    e 118 98
    e 118 99
    e 118 100
    e 118 103
    e 118 104
    e 118 107
    e 118 108
    e 118 113
    e 118 114
    e 119 3
    e 119 6
    e 119 9
    e 119 10
    e 119 11
    e 119 12
    e 119 14
    e 119 16
    e 119 18
    e 119 19
    e 119 23
    e 119 24
    e 119 25
    e 119 26
    e 119 28
    e 119 29
    e 119 32
    e 119 33
    e 119 34
    e 119 37
    e 119 39
    e 119 41
    e 119 43
    e 119 45
    e 119 50
    e 119 51
    e 119 53
    e 119 56
    e 119 57
    e 119 61
    e 119 64
    e 119 65
    e 119 66
    e 119 68
    e 119 75
    e 119 76
    e 119 78
    e 119 80
    e 119 83
    e 119 85
    e 119 89
    e 119 90
    e 119 92
    e 119 96
    e 119 100
    e 119 101
    e 119 102
    e 119 103
    e 119 104
    e 119 106
    e 119 108
    e 119 113
    e 119 116
    e 119 117
    e 120 1
    e 120 3
    e 120 5
    e 120 6
    e 120 7
    e 120 10
    e 120 13
    e 120 14
    e 120 15
    e 120 16
    e 120 17
    e 120 18
    e 120 19
    e 120 20
    e 120 21
    e 120 22
    e 120 28
    e 120 31
    e 120 34
    e 120 37
    e 120 38
    e 120 39
    e 120 41
    e 120 46
    e 120 47
    e 120 52
    e 120 53
    e 120 54
    e 120 56
    e 120 57
    e 120 62
    e 120 64
    e 120 65
    e 120 68
    e 120 70
    e 120 71
    e 120 72
    e 120 73
    e 120 77
    e 120 79
    e 120 84
    e 120 87
    e 120 90
    e 120 93
    e 120 95
    e 120 96
    e 120 100
    e 120 102
    e 120 103
    e 120 105
    e 120 110
    e 120 111
    e 120 112
    e 120 113
    e 120 114
    e 120 115
    e 120 118
    e 121 1
    e 121 3
    e 121 4
    e 121 6
    e 121 7
    e 121 10
    e 121 12
    e 121 13
    e 121 14
    e 121 18
    e 121 19
    e 121 20
    e 121 25
    e 121 26
    e 121 27
    e 121 28
    e 121 31
    e 121 32
    e 121 35
    e 121 36
    e 121 37
    e 121 40
    e 121 41
    e 121 43
    e 121 44
    e 121 48
    e 121 53
    e 121 54
    e 121 55
    e 121 56
    e 121 57
    e 121 58
    e 121 59
    e 121 62
    e 121 64
    e 121 66
    e 121 71
    e 121 78
    e 121 82
    e 121 84
    e 121 87
    e 121 90
    e 121 92
    e 121 94
    e 121 95
    e 121 96
    e 121 97
    e 121 98
    e 121 99
    e 121 101
    e 121 104
    e 121 106
    e 121 108
    e 121 109
    e 121 114
    e 121 116
    e 121 117
    e 121 120
    e 122 1
    e 122 3
    e 122 7
    e 122 8
    e 122 9
    e 122 11
    e 122 12
    e 122 15
    e 122 16
    e 122 21
    e 122 23
    e 122 26
    e 122 27
    e 122 29
    e 122 36
    e 122 37
    e 122 41
    e 122 42
    e 122 44
    e 122 45
    e 122 49
    e 122 50
    e 122 51
    e 122 52
    e 122 53
    e 122 54
    e 122 58
    e 122 59
    e 122 60
    e 122 61
    e 122 62
    e 122 64
    e 122 65
    e 122 67
    e 122 70
    e 122 72
    e 122 73
    e 122 74
    e 122 75
    e 122 77
    e 122 78
    e 122 79
    e 122 80
    e 122 81
    e 122 88
    e 122 90
    e 122 91
    e 122 92
    e 122 93
    e 122 95
    e 122 98
    e 122 99
    e 122 102
    e 122 103
    e 122 106
    e 122 109
    e 122 112
    e 122 113
    e 122 114
    e 122 115
    e 122 117
    e 122 118
    e 122 121
    e 123 1
    e 123 2
    e 123 6
    e 123 9
    e 123 10
    e 123 11
    e 123 12
    e 123 13
    e 123 14
    e 123 16
    e 123 21
    e 123 23
    e 123 24
    e 123 26
    e 123 28
    e 123 32
    e 123 34
    e 123 37
    e 123 38
    e 123 40
    e 123 41
    e 123 42
    e 123 44
    e 123 46
    e 123 47
    e 123 48
    e 123 49
    e 123 50
    e 123 53
    e 123 54
    e 123 56
    e 123 57
    e 123 60
    e 123 61
    e 123 62
    e 123 64
    e 123 65
    e 123 67
    e 123 68
    e 123 69
    e 123 72
    e 123 75
    e 123 78
    e 123 80
    e 123 82
    e 123 84
    e 123 85
    e 123 89
    e 123 90
    e 123 91
    e 123 92
    e 123 93
    e 123 94
    e 123 97
    e 123 98
    e 123 100
    e 123 102
    e 123 103
    e 123 104
    e 123 106
    e 123 108
    e 123 109
    e 123 110
    e 123 114
    e 123 115
    e 123 116
    e 123 117
    e 123 118
    e 123 120
    e 123 121
    e 124 1
    e 124 2
    e 124 3
    e 124 4
    e 124 14
    e 124 15
    e 124 17
    e 124 19
    e 124 20
    e 124 25
    e 124 29
    e 124 30
    e 124 33
    e 124 39
    e 124 40
    e 124 43
    e 124 47
    e 124 49
    e 124 52
    e 124 53
    e 124 54
    e 124 57
    e 124 58
    e 124 60
    e 124 62
    e 124 63
    e 124 65
    e 124 68
    e 124 72
    e 124 75
    e 124 77
    e 124 82
    e 124 83
    e 124 88
    e 124 90
    e 124 91
    e 124 92
    e 124 94
    e 124 95
    e 124 96
    e 124 98
    e 124 99
    e 124 104
    e 124 105
    e 124 106
    e 124 107
    e 124 108
    e 124 109
    e 124 111
    e 124 113
    e 124 114
    e 124 115
    e 124 116
    e 124 118
    e 124 119
    e 124 120
    e 124 122
    e 124 123
    e 125 4
    e 125 5
    e 125 6
    e 125 8
    e 125 10
    e 125 12
    e 125 14
    e 125 15
    e 125 18
    e 125 19
    e 125 20
    e 125 23
    e 125 24
    e 125 25
    e 125 26
    e 125 28
    e 125 34
    e 125 35
    e 125 38
    e 125 41
    e 125 42
    e 125 43
    e 125 46
    e 125 48
    e 125 49
    e 125 52
    e 125 54
    e 125 55
    e 125 56
    e 125 58
    e 125 59
    e 125 60
    e 125 61
    e 125 62
    e 125 63
    e 125 66
    e 125 67
    e 125 71
    e 125 72
    e 125 73
    e 125 76
    e 125 78
    e 125 79
    e 125 81
    e 125 85
    e 125 86
    e 125 87
    e 125 89
    e 125 90
    e 125 93
    e 125 95
    e 125 99
    e 125 101
    e 125 106
    e 125 107
    e 125 108
    e 125 111
    e 125 113
    e 125 114
    e 125 117
    e 125 118
    e 125 119
    e 125 122
    -----------------------------------------------------------------------
     
    Marco Chiarandini, Jul 25, 2004
    #5
  6. "Marco Chiarandini" <> wrote...
    > Dear Victor,
    >
    > "Victor Bazarov" <> wrote in message

    news:<l2wMc.177949$XM6.104624@attbi_s53>...
    >
    > > Also, please read the FAQ 5.8 for further assistance.

    >
    > Sorry I did not do my homeworks :) I try again.
    >
    > Sorry if the messagee becomes too long.


    You didn't follow the recommendations of 5.8. Post only the _minimal_
    code that demonstrates the error. Are you sure the code you posted is
    really the _minimal_? How about the data? 36 kilobytes of data seems
    rather a lot to demonstrate a point (no pun intended)...

    >
    > I use: stdl libstdc++5 from the Debian distribution
    > Compiler: g++ (GCC) 3.3.4 (Debian 1:3.3.4-4)
    > valgrind: valgrind-2.1.0
    > I launch valgrind on my code with the following flags:
    > valgrind -v --show-reachable=yes --leak-check=yes a.out DSJC125.5.col


    I don't use valgrind. Perhaps you should talk to people who do (like in
    the newsgroup that deals with your platform, maybe?)

    >
    > I add an excerpt of functioning code (compile just as g++ prova.cpp)
    > and a file that has to be loaded in execution. Call like a.out
    > DSJC125.5.col.


    I found one error in your code. In the d-tor for 'Graph' class the
    line
    adjacency_set[v].clear();

    should be replaced with

    if (adjacency_set.size() > v)
    adjacency_set[v].clear();

    otherwise on my system your program tosses its cookies. Perhaps
    that's the cause of your memory leak. You're trying to 'clear' the
    set that doesn't exist. You clear the 'adjacency_set' before code
    reaches Graph::~Graph.

    Victor
     
    Victor Bazarov, Jul 26, 2004
    #6
  7. Dear Victor

    I reduced my code to the following lines:

    -----------------------
    #include <vector>
    #include <set>

    using namespace std;

    typedef unsigned int Vertex;
    typedef set<Vertex> VertexSet;

    int main( int argc, char** argv ) {

    vector< VertexSet > adjacency_set;
    Vertex num_of_vertices = 125;
    adjacency_set.resize(num_of_vertices);
    for (Vertex i=0;i<num_of_vertices;i++)
    {
    for (Vertex j=0;j<num_of_vertices;j++)
    adjacency_set.insert(j);
    }
    return 1;
    }
    -------------------------

    valgrind still gives me the memory leackage. However, I use similar
    code in a larger program and when I deal with very large data I obtain
    a strange behaviour of my program, that is, as the running time
    increase the performance worsen. This probably indicates that, if
    there are no other bugs, the memory leackage really exists in spite of
    problems with valgrind.

    What am I doing wrong?

    Thanks,

    Marco


    > You didn't follow the recommendations of 5.8. Post only the _minimal_
    > code that demonstrates the error. Are you sure the code you posted is
    > really the _minimal_? How about the data? 36 kilobytes of data seems
    > rather a lot to demonstrate a point (no pun intended)...
     
    Marco Chiarandini, Jul 26, 2004
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Fredrik Lundh
    Replies:
    0
    Views:
    442
    Fredrik Lundh
    Feb 4, 2005
  2. Daniel Bickett
    Replies:
    0
    Views:
    387
    Daniel Bickett
    Feb 4, 2005
  3. steve.leach

    How standard is the standard library?

    steve.leach, Apr 18, 2005, in forum: Python
    Replies:
    1
    Views:
    405
    Christos TZOTZIOY Georgiou
    Apr 18, 2005
  4. funkyj
    Replies:
    5
    Views:
    1,148
    funkyj
    Jan 20, 2006
  5. Carmen Sei
    Replies:
    4
    Views:
    878
    James Kanze
    Mar 5, 2008
Loading...

Share This Page