// This file is automatically generated by DemeterJ.

TraceVisitor {
  {{
    protected java.io.PrintWriter out = new java.io.PrintWriter(System.out, true);
    java.io.PrintWriter get_out()             { return out; }
    void set_out(java.io.PrintWriter new_out) { out = new_out; }
    TraceVisitor(java.io.PrintWriter out)     { set_out(out); }
    TraceVisitor(java.io.PrintStream out)
      { set_out(new java.io.PrintWriter(out, true)); }
  }}
  finish {{ out.flush(); }}


  before Formula {{
    out.println("before Formula");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Formula {{
    out.println("after Formula");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Formula, clauses, ClauseList {{
    out.println("before -> Formula, clauses, ClauseList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Formula, clauses, ClauseList {{
    out.println("after -> Formula, clauses, ClauseList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Formula, sats, int {{
    out.println("before -> Formula, sats, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Formula, sats, int {{
    out.println("after -> Formula, sats, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Formula, unsats, int {{
    out.println("before -> Formula, unsats, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Formula, unsats, int {{
    out.println("after -> Formula, unsats, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Clause {{
    out.println("before Clause");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Clause {{
    out.println("after Clause");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Clause, weight, Weight {{
    out.println("before -> Clause, weight, Weight ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Clause, weight, Weight {{
    out.println("after -> Clause, weight, Weight ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Clause, literallist, LiteralList {{
    out.println("before -> Clause, literallist, LiteralList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Clause, literallist, LiteralList {{
    out.println("after -> Clause, literallist, LiteralList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Literal {{
    out.println("before Literal");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Literal {{
    out.println("after Literal");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Literal, variable, Variable {{
    out.println("before -> Literal, variable, Variable ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Literal, variable, Variable {{
    out.println("after -> Literal, variable, Variable ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Positive {{
    out.println("before Positive");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Positive {{
    out.println("after Positive");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Negative {{
    out.println("before Negative");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Negative {{
    out.println("after Negative");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Variable {{
    out.println("before Variable");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Variable {{
    out.println("after Variable");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Variable, integer, Integer {{
    out.println("before -> Variable, integer, Integer ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Variable, integer, Integer {{
    out.println("after -> Variable, integer, Integer ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Weight {{
    out.println("before Weight");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Weight {{
    out.println("after Weight");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Weight, v, Integer {{
    out.println("before -> Weight, v, Integer ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Weight, v, Integer {{
    out.println("after -> Weight, v, Integer ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Main {{
    out.println("before Main");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Main {{
    out.println("after Main");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Main, s, String {{
    out.println("before -> Main, s, String ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Main, s, String {{
    out.println("after -> Main, s, String ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseList {{
    out.println("before ClauseList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseList {{
    out.println("after ClauseList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseCons {{
    out.println("before ClauseCons");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseCons {{
    out.println("after ClauseCons");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseCons, first, Clause {{
    out.println("before -> ClauseCons, first, Clause ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseCons, first, Clause {{
    out.println("after -> ClauseCons, first, Clause ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseCons, rest, ClauseList {{
    out.println("before -> ClauseCons, rest, ClauseList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseCons, rest, ClauseList {{
    out.println("after -> ClauseCons, rest, ClauseList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseEmpty {{
    out.println("before ClauseEmpty");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseEmpty {{
    out.println("after ClauseEmpty");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LiteralList {{
    out.println("before LiteralList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LiteralList {{
    out.println("after LiteralList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LiteralCons {{
    out.println("before LiteralCons");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LiteralCons {{
    out.println("after LiteralCons");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> LiteralCons, first, Literal {{
    out.println("before -> LiteralCons, first, Literal ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> LiteralCons, first, Literal {{
    out.println("after -> LiteralCons, first, Literal ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> LiteralCons, rest, LiteralList {{
    out.println("before -> LiteralCons, rest, LiteralList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> LiteralCons, rest, LiteralList {{
    out.println("after -> LiteralCons, rest, LiteralList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LiteralEmpty {{
    out.println("before LiteralEmpty");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LiteralEmpty {{
    out.println("after LiteralEmpty");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ReduceVisitor {{
    out.println("before ReduceVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ReduceVisitor {{
    out.println("after ReduceVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ReduceVisitor, curLiteral, Literal {{
    out.println("before -> ReduceVisitor, curLiteral, Literal ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ReduceVisitor, curLiteral, Literal {{
    out.println("after -> ReduceVisitor, curLiteral, Literal ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ReduceVisitor, newClauses, ClauseList {{
    out.println("before -> ReduceVisitor, newClauses, ClauseList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ReduceVisitor, newClauses, ClauseList {{
    out.println("after -> ReduceVisitor, newClauses, ClauseList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ReduceVisitor, sats, int {{
    out.println("before -> ReduceVisitor, sats, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ReduceVisitor, sats, int {{
    out.println("after -> ReduceVisitor, sats, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ReduceVisitor, unsats, int {{
    out.println("before -> ReduceVisitor, unsats, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ReduceVisitor, unsats, int {{
    out.println("after -> ReduceVisitor, unsats, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintVisitor {{
    out.println("before PrintVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintVisitor {{
    out.println("after PrintVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, indent, int {{
    out.println("before -> PrintVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, indent, int {{
    out.println("after -> PrintVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, needSpace, boolean {{
    out.println("before -> PrintVisitor, needSpace, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, needSpace, boolean {{
    out.println("after -> PrintVisitor, needSpace, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CopyVisitor {{
    out.println("before CopyVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CopyVisitor {{
    out.println("after CopyVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CopyVisitor, copy, Object {{
    out.println("before -> CopyVisitor, copy, Object ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CopyVisitor, copy, Object {{
    out.println("after -> CopyVisitor, copy, Object ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SubgraphVisitor {{
    out.println("before SubgraphVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SubgraphVisitor {{
    out.println("after SubgraphVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SubgraphVisitor, is_equal, boolean {{
    out.println("before -> SubgraphVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SubgraphVisitor, is_equal, boolean {{
    out.println("after -> SubgraphVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EqualVisitor {{
    out.println("before EqualVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EqualVisitor {{
    out.println("after EqualVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> EqualVisitor, is_equal, boolean {{
    out.println("before -> EqualVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> EqualVisitor, is_equal, boolean {{
    out.println("after -> EqualVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DisplayVisitor {{
    out.println("before DisplayVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DisplayVisitor {{
    out.println("after DisplayVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DisplayVisitor, indent, int {{
    out.println("before -> DisplayVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DisplayVisitor, indent, int {{
    out.println("after -> DisplayVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before TraceVisitor {{
    out.println("before TraceVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after TraceVisitor {{
    out.println("after TraceVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> TraceVisitor, indent, int {{
    out.println("before -> TraceVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> TraceVisitor, indent, int {{
    out.println("after -> TraceVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before UniversalVisitor {{
    out.println("before UniversalVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after UniversalVisitor {{
    out.println("after UniversalVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}