// 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 Blackboard {{
    out.println("before Blackboard");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Blackboard {{
    out.println("after Blackboard");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Blackboard, players, Player_List {{
    out.println("before -> Blackboard, players, Player_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Blackboard, players, Player_List {{
    out.println("after -> Blackboard, players, Player_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Blackboard, store, Store {{
    out.println("before -> Blackboard, store, Store ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Blackboard, store, Store {{
    out.println("after -> Blackboard, store, Store ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Blackboard, transactions, Transaction_List {{
    out.println("before -> Blackboard, transactions, Transaction_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Blackboard, transactions, Transaction_List {{
    out.println("after -> Blackboard, transactions, Transaction_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Blackboard, history, History {{
    out.println("before -> Blackboard, history, History ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Blackboard, history, History {{
    out.println("after -> Blackboard, history, History ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Player {{
    out.println("before Player");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Player {{
    out.println("after Player");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Player, name, PlayerName {{
    out.println("before -> Player, name, PlayerName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Player, name, PlayerName {{
    out.println("after -> Player, name, PlayerName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Player, account, Money {{
    out.println("before -> Player, account, Money ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Player, account, Money {{
    out.println("after -> Player, account, Money ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Player, turn, boolean {{
    out.println("before -> Player, turn, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Player, turn, boolean {{
    out.println("after -> Player, turn, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Player, publickey, PublicKey {{
    out.println("before -> Player, publickey, PublicKey ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Player, publickey, PublicKey {{
    out.println("after -> Player, publickey, PublicKey ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PlayerName {{
    out.println("before PlayerName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PlayerName {{
    out.println("after PlayerName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PlayerName, v, Ident {{
    out.println("before -> PlayerName, v, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PlayerName, v, Ident {{
    out.println("after -> PlayerName, v, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PublicKey {{
    out.println("before PublicKey");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PublicKey {{
    out.println("after PublicKey");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before History {{
    out.println("before History");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after History {{
    out.println("after History");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> History, transaction_elist, Transaction_EList {{
    out.println("before -> History, transaction_elist, Transaction_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> History, transaction_elist, Transaction_EList {{
    out.println("after -> History, transaction_elist, Transaction_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Store {{
    out.println("before Store");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Store {{
    out.println("after Store");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Store, derivative_elist, Derivative_EList {{
    out.println("before -> Store, derivative_elist, Derivative_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Store, derivative_elist, Derivative_EList {{
    out.println("after -> Store, derivative_elist, Derivative_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Transaction {{
    out.println("before Transaction");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Transaction {{
    out.println("after Transaction");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Transaction, trans, Trans {{
    out.println("before -> Transaction, trans, Trans ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Transaction, trans, Trans {{
    out.println("after -> Transaction, trans, Trans ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Trans {{
    out.println("before Trans");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Trans {{
    out.println("after Trans");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Trans, playername, PlayerName {{
    out.println("before -> Trans, playername, PlayerName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Trans, playername, PlayerName {{
    out.println("after -> Trans, playername, PlayerName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Trans, derivative, Derivative {{
    out.println("before -> Trans, derivative, Derivative ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Trans, derivative, Derivative {{
    out.println("after -> Trans, derivative, Derivative ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Trans, digitalsignature, DigitalSignature {{
    out.println("before -> Trans, digitalsignature, DigitalSignature ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Trans, digitalsignature, DigitalSignature {{
    out.println("after -> Trans, digitalsignature, DigitalSignature ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Buy {{
    out.println("before Buy");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Buy {{
    out.println("after Buy");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Create {{
    out.println("before Create");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Create {{
    out.println("after Create");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DeliverR {{
    out.println("before DeliverR");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DeliverR {{
    out.println("after DeliverR");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Finish {{
    out.println("before Finish");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Finish {{
    out.println("after Finish");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DigitalSignature {{
    out.println("before DigitalSignature");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DigitalSignature {{
    out.println("after DigitalSignature");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Derivative {{
    out.println("before Derivative");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Derivative {{
    out.println("after Derivative");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, name, DerivativeName {{
    out.println("before -> Derivative, name, DerivativeName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, name, DerivativeName {{
    out.println("after -> Derivative, name, DerivativeName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, creator, PlayerName {{
    out.println("before -> Derivative, creator, PlayerName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, creator, PlayerName {{
    out.println("after -> Derivative, creator, PlayerName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, price, Money {{
    out.println("before -> Derivative, price, Money ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, price, Money {{
    out.println("after -> Derivative, price, Money ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, type, DerivativeType {{
    out.println("before -> Derivative, type, DerivativeType ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, type, DerivativeType {{
    out.println("after -> Derivative, type, DerivativeType ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, boughtBy, PlayerName {{
    out.println("before -> Derivative, boughtBy, PlayerName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, boughtBy, PlayerName {{
    out.println("after -> Derivative, boughtBy, PlayerName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, rawMaterial, RawMaterial {{
    out.println("before -> Derivative, rawMaterial, RawMaterial ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, rawMaterial, RawMaterial {{
    out.println("after -> Derivative, rawMaterial, RawMaterial ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative, finishedProduct, FinishedProduct {{
    out.println("before -> Derivative, finishedProduct, FinishedProduct ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative, finishedProduct, FinishedProduct {{
    out.println("after -> Derivative, finishedProduct, FinishedProduct ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before FinishedProduct {{
    out.println("before FinishedProduct");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FinishedProduct {{
    out.println("after FinishedProduct");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> FinishedProduct, assignment, Assignment {{
    out.println("before -> FinishedProduct, assignment, Assignment ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> FinishedProduct, assignment, Assignment {{
    out.println("after -> FinishedProduct, assignment, Assignment ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> FinishedProduct, quality, Money {{
    out.println("before -> FinishedProduct, quality, Money ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> FinishedProduct, quality, Money {{
    out.println("after -> FinishedProduct, quality, Money ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DerivativeName {{
    out.println("before DerivativeName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DerivativeName {{
    out.println("after DerivativeName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DerivativeName, name, Ident {{
    out.println("before -> DerivativeName, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DerivativeName, name, Ident {{
    out.println("after -> DerivativeName, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Money {{
    out.println("before Money");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Money {{
    out.println("after Money");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Money, price, float {{
    out.println("before -> Money, price, float ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Money, price, float {{
    out.println("after -> Money, price, float ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DerivativeType {{
    out.println("before DerivativeType");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DerivativeType {{
    out.println("after DerivativeType");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DerivativeType, clausetype_list, ClauseType_List {{
    out.println("before -> DerivativeType, clausetype_list, ClauseType_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DerivativeType, clausetype_list, ClauseType_List {{
    out.println("after -> DerivativeType, clausetype_list, ClauseType_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseType {{
    out.println("before ClauseType");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseType {{
    out.println("after ClauseType");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseType, total_literal_num, TotalLiteralNum {{
    out.println("before -> ClauseType, total_literal_num, TotalLiteralNum ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseType, total_literal_num, TotalLiteralNum {{
    out.println("after -> ClauseType, total_literal_num, TotalLiteralNum ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseType, pos_literal_num, PosLiteralNum {{
    out.println("before -> ClauseType, pos_literal_num, PosLiteralNum ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseType, pos_literal_num, PosLiteralNum {{
    out.println("after -> ClauseType, pos_literal_num, PosLiteralNum ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before TotalLiteralNum {{
    out.println("before TotalLiteralNum");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after TotalLiteralNum {{
    out.println("after TotalLiteralNum");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> TotalLiteralNum, v, int {{
    out.println("before -> TotalLiteralNum, v, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> TotalLiteralNum, v, int {{
    out.println("after -> TotalLiteralNum, v, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PosLiteralNum {{
    out.println("before PosLiteralNum");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PosLiteralNum {{
    out.println("after PosLiteralNum");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PosLiteralNum, v, int {{
    out.println("before -> PosLiteralNum, v, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PosLiteralNum, v, int {{
    out.println("after -> PosLiteralNum, v, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RawMaterial {{
    out.println("before RawMaterial");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RawMaterial {{
    out.println("after RawMaterial");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RawMaterial, clause_list, Clause_List {{
    out.println("before -> RawMaterial, clause_list, Clause_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RawMaterial, clause_list, Clause_List {{
    out.println("after -> RawMaterial, clause_list, Clause_List ");
    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, literal_list, Literal_List {{
    out.println("before -> Clause, literal_list, Literal_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Clause, literal_list, Literal_List {{
    out.println("after -> Clause, literal_list, Literal_List ");
    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, int {{
    out.println("before -> Weight, v, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Weight, v, int {{
    out.println("after -> Weight, v, int ");
    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 PosLiteral {{
    out.println("before PosLiteral");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PosLiteral {{
    out.println("after PosLiteral");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PosLiteral, variable, Variable {{
    out.println("before -> PosLiteral, variable, Variable ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PosLiteral, variable, Variable {{
    out.println("after -> PosLiteral, variable, Variable ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NegLiteral {{
    out.println("before NegLiteral");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NegLiteral {{
    out.println("after NegLiteral");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NegLiteral, variable, Variable {{
    out.println("before -> NegLiteral, variable, Variable ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NegLiteral, variable, Variable {{
    out.println("after -> NegLiteral, variable, Variable ");
    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, v, Ident {{
    out.println("before -> Variable, v, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Variable, v, Ident {{
    out.println("after -> Variable, v, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Assignment {{
    out.println("before Assignment");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Assignment {{
    out.println("after Assignment");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Assignment, literal_list, Literal_List {{
    out.println("before -> Assignment, literal_list, Literal_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Assignment, literal_list, Literal_List {{
    out.println("after -> Assignment, literal_list, Literal_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Quality {{
    out.println("before Quality");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Quality {{
    out.println("after Quality");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Quality, v, float {{
    out.println("before -> Quality, v, float ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Quality, v, float {{
    out.println("after -> Quality, v, float ");
    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 CTVisitor {{
    out.println("before CTVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CTVisitor {{
    out.println("after CTVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CTVisitor, pos, int {{
    out.println("before -> CTVisitor, pos, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CTVisitor, pos, int {{
    out.println("after -> CTVisitor, pos, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CTVisitor, neg, int {{
    out.println("before -> CTVisitor, neg, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CTVisitor, neg, int {{
    out.println("after -> CTVisitor, neg, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseWeightVisitor {{
    out.println("before ClauseWeightVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseWeightVisitor {{
    out.println("after ClauseWeightVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseWeightVisitor, total, int {{
    out.println("before -> ClauseWeightVisitor, total, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseWeightVisitor, total, int {{
    out.println("after -> ClauseWeightVisitor, total, 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(" ");
  }}
  before Player_List {{
    out.println("before Player_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Player_List {{
    out.println("after Player_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Player_List, first, Nonempty_Player_List {{
    out.println("before -> Player_List, first, Nonempty_Player_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Player_List, first, Nonempty_Player_List {{
    out.println("after -> Player_List, first, Nonempty_Player_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Transaction_List {{
    out.println("before Transaction_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Transaction_List {{
    out.println("after Transaction_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Transaction_List, first, Nonempty_Transaction_List {{
    out.println("before -> Transaction_List, first, Nonempty_Transaction_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Transaction_List, first, Nonempty_Transaction_List {{
    out.println("after -> Transaction_List, first, Nonempty_Transaction_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Transaction_EList {{
    out.println("before Transaction_EList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Transaction_EList {{
    out.println("after Transaction_EList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Transaction_EList, first, Nonempty_Transaction_EList {{
    out.println("before -> Transaction_EList, first, Nonempty_Transaction_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Transaction_EList, first, Nonempty_Transaction_EList {{
    out.println("after -> Transaction_EList, first, Nonempty_Transaction_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Derivative_EList {{
    out.println("before Derivative_EList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Derivative_EList {{
    out.println("after Derivative_EList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Derivative_EList, first, Nonempty_Derivative_EList {{
    out.println("before -> Derivative_EList, first, Nonempty_Derivative_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Derivative_EList, first, Nonempty_Derivative_EList {{
    out.println("after -> Derivative_EList, first, Nonempty_Derivative_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClauseType_List {{
    out.println("before ClauseType_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClauseType_List {{
    out.println("after ClauseType_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClauseType_List, first, Nonempty_ClauseType_List {{
    out.println("before -> ClauseType_List, first, Nonempty_ClauseType_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClauseType_List, first, Nonempty_ClauseType_List {{
    out.println("after -> ClauseType_List, first, Nonempty_ClauseType_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Clause_List {{
    out.println("before Clause_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Clause_List {{
    out.println("after Clause_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Clause_List, first, Nonempty_Clause_List {{
    out.println("before -> Clause_List, first, Nonempty_Clause_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Clause_List, first, Nonempty_Clause_List {{
    out.println("after -> Clause_List, first, Nonempty_Clause_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Literal_List {{
    out.println("before Literal_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Literal_List {{
    out.println("after Literal_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Literal_List, first, Nonempty_Literal_List {{
    out.println("before -> Literal_List, first, Nonempty_Literal_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Literal_List, first, Nonempty_Literal_List {{
    out.println("after -> Literal_List, first, Nonempty_Literal_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Player_List {{
    out.println("before Nonempty_Player_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Player_List {{
    out.println("after Nonempty_Player_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Player_List, it, Player {{
    out.println("before -> Nonempty_Player_List, it, Player ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Player_List, it, Player {{
    out.println("after -> Nonempty_Player_List, it, Player ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Player_List, next, Nonempty_Player_List {{
    out.println("before -> Nonempty_Player_List, next, Nonempty_Player_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Player_List, next, Nonempty_Player_List {{
    out.println("after -> Nonempty_Player_List, next, Nonempty_Player_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Transaction_List {{
    out.println("before Nonempty_Transaction_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Transaction_List {{
    out.println("after Nonempty_Transaction_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Transaction_List, it, Transaction {{
    out.println("before -> Nonempty_Transaction_List, it, Transaction ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Transaction_List, it, Transaction {{
    out.println("after -> Nonempty_Transaction_List, it, Transaction ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Transaction_List, next, Nonempty_Transaction_List {{
    out.println("before -> Nonempty_Transaction_List, next, Nonempty_Transaction_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Transaction_List, next, Nonempty_Transaction_List {{
    out.println("after -> Nonempty_Transaction_List, next, Nonempty_Transaction_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Transaction_EList {{
    out.println("before Nonempty_Transaction_EList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Transaction_EList {{
    out.println("after Nonempty_Transaction_EList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Transaction_EList, it, Transaction {{
    out.println("before -> Nonempty_Transaction_EList, it, Transaction ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Transaction_EList, it, Transaction {{
    out.println("after -> Nonempty_Transaction_EList, it, Transaction ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Transaction_EList, next, Nonempty_Transaction_EList {{
    out.println("before -> Nonempty_Transaction_EList, next, Nonempty_Transaction_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Transaction_EList, next, Nonempty_Transaction_EList {{
    out.println("after -> Nonempty_Transaction_EList, next, Nonempty_Transaction_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Derivative_EList {{
    out.println("before Nonempty_Derivative_EList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Derivative_EList {{
    out.println("after Nonempty_Derivative_EList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Derivative_EList, it, Derivative {{
    out.println("before -> Nonempty_Derivative_EList, it, Derivative ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Derivative_EList, it, Derivative {{
    out.println("after -> Nonempty_Derivative_EList, it, Derivative ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Derivative_EList, next, Nonempty_Derivative_EList {{
    out.println("before -> Nonempty_Derivative_EList, next, Nonempty_Derivative_EList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Derivative_EList, next, Nonempty_Derivative_EList {{
    out.println("after -> Nonempty_Derivative_EList, next, Nonempty_Derivative_EList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClauseType_List {{
    out.println("before Nonempty_ClauseType_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClauseType_List {{
    out.println("after Nonempty_ClauseType_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClauseType_List, it, ClauseType {{
    out.println("before -> Nonempty_ClauseType_List, it, ClauseType ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClauseType_List, it, ClauseType {{
    out.println("after -> Nonempty_ClauseType_List, it, ClauseType ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClauseType_List, next, Nonempty_ClauseType_List {{
    out.println("before -> Nonempty_ClauseType_List, next, Nonempty_ClauseType_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClauseType_List, next, Nonempty_ClauseType_List {{
    out.println("after -> Nonempty_ClauseType_List, next, Nonempty_ClauseType_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Clause_List {{
    out.println("before Nonempty_Clause_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Clause_List {{
    out.println("after Nonempty_Clause_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Clause_List, it, Clause {{
    out.println("before -> Nonempty_Clause_List, it, Clause ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Clause_List, it, Clause {{
    out.println("after -> Nonempty_Clause_List, it, Clause ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Clause_List, next, Nonempty_Clause_List {{
    out.println("before -> Nonempty_Clause_List, next, Nonempty_Clause_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Clause_List, next, Nonempty_Clause_List {{
    out.println("after -> Nonempty_Clause_List, next, Nonempty_Clause_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Literal_List {{
    out.println("before Nonempty_Literal_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Literal_List {{
    out.println("after Nonempty_Literal_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Literal_List, it, Literal {{
    out.println("before -> Nonempty_Literal_List, it, Literal ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Literal_List, it, Literal {{
    out.println("after -> Nonempty_Literal_List, it, Literal ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Literal_List, next, Nonempty_Literal_List {{
    out.println("before -> Nonempty_Literal_List, next, Nonempty_Literal_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Literal_List, next, Nonempty_Literal_List {{
    out.println("after -> Nonempty_Literal_List, next, Nonempty_Literal_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}