Program: 49730
Project: 49730
Buggy source:
void loop(){
  System.out.println(NAME + "String_Node_Str" + AUTHOR);
  BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
  try {
    while (true) {
      String in=reader.readLine();
      String[] tokens=in.split("String_Node_Str");
      int index=0;
      String command=tokens[index++].toLowerCase();
      if ("String_Node_Str".equals(command)) {
        System.out.println("String_Node_Str" + NAME);
        System.out.println("String_Node_Str" + AUTHOR);
        System.out.println("String_Node_Str" + Config.DEFAULT_TRANSPOSITION_TABLE_SIZE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_PONDER);
        System.out.println("String_Node_Str" + Config.DEFAULT_USE_BOOK);
        System.out.println("String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_NULL_MOVE);
        System.out.println("String_Node_Str" + Config.DEFAULT_STATIC_NULL_MOVE);
        System.out.println("String_Node_Str" + Config.DEFAULT_LMR);
        System.out.println("String_Node_Str" + Config.DEFAULT_IID);
        System.out.println("String_Node_Str" + Config.DEFAULT_IID_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_CHECK + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_PAWN_PUSH + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_PASSED_PAWN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_MATE_THREAT + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_SINGULAR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_SINGULAR_EXTENSION_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVALUATOR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_ASPIRATION_WINDOW);
        System.out.println("String_Node_Str" + Config.DEFAULT_ASPIRATION_WINDOW_SIZES);
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY);
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN_QS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN_AGGRESSIVE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_RAZORING);
        System.out.println("String_Node_Str" + Config.DEFAULT_RAZORING_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_CONTEMPT_FACTOR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_CENTER + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_POSITIONAL + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_ATTACKS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_MOBILITY + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_PAWN_STRUCTURE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_PASSED_PAWNS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_KING_SAFETY + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_ELO + "String_Node_Str"+ Config.DEFAULT_ELO);
        System.out.println("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(command)) {
        index++;
        StringBuilder nameSB=new StringBuilder();
        String tok;
        while (!"String_Node_Str".equals(tok=tokens[index++])) {
          nameSB.append(tok);
        }
        String name=nameSB.toString();
        String value=tokens[index++];
        if ("String_Node_Str".equals(name)) {
          config.setTranspositionTableSize(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setPonder(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setUseBook(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setUciChess960(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setNullMove(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setStaticNullMove(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setIid(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setIidMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsCheck(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsPawnPush(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsPassedPawn(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsMateThreat(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsSingular(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setSingularExtensionMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvaluator(value);
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setAspirationWindow(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setAspirationWindowSizes(value);
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutility(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMarginQS(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMarginAggressive(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setRazoring(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setRazoringMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setContemptFactor(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalCenter(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPositional(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalAttacks(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalMobility(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPawnStructure(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPassedPawns(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalKingSafety(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setElo(Integer.parseInt(value));
        }
        needsReload=true;
      }
 else       if ("String_Node_Str".equals(command)) {
        if (needsReload) {
          engine=new SearchEngineThreaded(config);
          engine.setObserver(this);
          needsReload=false;
          System.gc();
        }
 else {
          while (engine.isSearching()) {
            try {
              Thread.sleep(10);
            }
 catch (            Exception e) {
            }
          }
        }
        System.out.println("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(command)) {
        System.exit(0);
      }
 else       if ("String_Node_Str".equals(command)) {
        searchParameters=new SearchParameters();
        while (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setPonder(true);
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setWtime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setBtime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setWinc(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setBinc(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMovesToGo(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setDepth(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setNodes(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMate(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMoveTime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setInfinite(true);
          }
        }
        engine.go(searchParameters);
      }
 else       if ("String_Node_Str".equals(command)) {
        engine.stop();
      }
 else       if ("String_Node_Str".equals(command)) {
        engine.getBoard().startPosition();
        engine.clear();
      }
 else       if ("String_Node_Str".equals(command)) {
        if (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
            engine.getBoard().startPosition();
          }
 else           if ("String_Node_Str".equals(arg1)) {
            StringBuilder fenSb=new StringBuilder();
            while (index < tokens.length) {
              if ("String_Node_Str".equals(tokens[index])) {
                break;
              }
              fenSb.append(tokens[index++]);
              if (index < tokens.length) {
                fenSb.append("String_Node_Str");
              }
            }
            engine.getBoard().setFen(fenSb.toString());
          }
        }
        if (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
            while (index < tokens.length) {
              int move=Move.getFromString(engine.getBoard(),tokens[index++],true);
              engine.getBoard().doMove(move);
            }
          }
        }
      }
 else       if ("String_Node_Str".equals(command)) {
      }
 else       if ("String_Node_Str".equals(command)) {
        if (searchParameters != null) {
          searchParameters.setPonder(false);
          engine.setSearchLimits(searchParameters,false);
        }
      }
 else       if ("String_Node_Str".equals(command)) {
      }
 else {
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
void loop(){
  System.out.println(NAME + "String_Node_Str" + AUTHOR);
  BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
  try {
    while (true) {
      String in=reader.readLine();
      String[] tokens=in.split("String_Node_Str");
      int index=0;
      String command=tokens[index++].toLowerCase();
      if ("String_Node_Str".equals(command)) {
        System.out.println("String_Node_Str" + NAME);
        System.out.println("String_Node_Str" + AUTHOR);
        System.out.println("String_Node_Str" + Config.DEFAULT_TRANSPOSITION_TABLE_SIZE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_PONDER);
        System.out.println("String_Node_Str" + Config.DEFAULT_USE_BOOK);
        System.out.println("String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_NULL_MOVE);
        System.out.println("String_Node_Str" + Config.DEFAULT_STATIC_NULL_MOVE);
        System.out.println("String_Node_Str" + Config.DEFAULT_LMR);
        System.out.println("String_Node_Str" + Config.DEFAULT_IID);
        System.out.println("String_Node_Str" + Config.DEFAULT_IID_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_CHECK + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_PAWN_PUSH + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_PASSED_PAWN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_MATE_THREAT + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EXTENSIONS_SINGULAR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_SINGULAR_EXTENSION_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVALUATOR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_ASPIRATION_WINDOW);
        System.out.println("String_Node_Str" + Config.DEFAULT_ASPIRATION_WINDOW_SIZES);
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY);
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN_QS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_FUTILITY_MARGIN_AGGRESSIVE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_RAZORING);
        System.out.println("String_Node_Str" + Config.DEFAULT_RAZORING_MARGIN + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_CONTEMPT_FACTOR + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_CENTER + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_POSITIONAL + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_ATTACKS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_MOBILITY + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_PAWN_STRUCTURE + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_PASSED_PAWNS + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_EVAL_KING_SAFETY + "String_Node_Str");
        System.out.println("String_Node_Str" + Config.DEFAULT_ELO + "String_Node_Str"+ Config.DEFAULT_ELO);
        System.out.println("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(command)) {
        index++;
        StringBuilder nameSB=new StringBuilder();
        String tok;
        while (!"String_Node_Str".equals(tok=tokens[index++])) {
          nameSB.append(tok);
        }
        String name=nameSB.toString();
        String value=tokens[index];
        if ("String_Node_Str".equals(name)) {
          config.setTranspositionTableSize(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setPonder(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setUseBook(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setUciChess960(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setNullMove(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setStaticNullMove(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setIid(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setIidMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsCheck(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsPawnPush(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsPassedPawn(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsMateThreat(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setExtensionsSingular(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setSingularExtensionMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvaluator(value);
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setAspirationWindow(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setAspirationWindowSizes(value);
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutility(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMarginQS(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setFutilityMarginAggressive(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setRazoring(Boolean.parseBoolean(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setRazoringMargin(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setContemptFactor(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalCenter(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPositional(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalAttacks(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalMobility(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPawnStructure(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalPassedPawns(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setEvalKingSafety(Integer.parseInt(value));
        }
 else         if ("String_Node_Str".equals(name)) {
          config.setElo(Integer.parseInt(value));
        }
        needsReload=true;
      }
 else       if ("String_Node_Str".equals(command)) {
        if (needsReload) {
          engine=new SearchEngineThreaded(config);
          engine.setObserver(this);
          needsReload=false;
          System.gc();
        }
 else {
          while (engine.isSearching()) {
            try {
              Thread.sleep(10);
            }
 catch (            Exception e) {
            }
          }
        }
        System.out.println("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(command)) {
        System.exit(0);
      }
 else       if ("String_Node_Str".equals(command)) {
        searchParameters=new SearchParameters();
        while (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setPonder(true);
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setWtime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setBtime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setWinc(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setBinc(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMovesToGo(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setDepth(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setNodes(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMate(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setMoveTime(Integer.parseInt(tokens[index++]));
          }
 else           if ("String_Node_Str".equals(arg1)) {
            searchParameters.setInfinite(true);
          }
        }
        engine.go(searchParameters);
      }
 else       if ("String_Node_Str".equals(command)) {
        engine.stop();
      }
 else       if ("String_Node_Str".equals(command)) {
        engine.getBoard().startPosition();
        engine.clear();
      }
 else       if ("String_Node_Str".equals(command)) {
        if (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
            engine.getBoard().startPosition();
          }
 else           if ("String_Node_Str".equals(arg1)) {
            StringBuilder fenSb=new StringBuilder();
            while (index < tokens.length) {
              if ("String_Node_Str".equals(tokens[index])) {
                break;
              }
              fenSb.append(tokens[index++]);
              if (index < tokens.length) {
                fenSb.append("String_Node_Str");
              }
            }
            engine.getBoard().setFen(fenSb.toString());
          }
        }
        if (index < tokens.length) {
          String arg1=tokens[index++];
          if ("String_Node_Str".equals(arg1)) {
            while (index < tokens.length) {
              int move=Move.getFromString(engine.getBoard(),tokens[index++],true);
              engine.getBoard().doMove(move);
            }
          }
        }
      }
 else       if ("String_Node_Str".equals(command)) {
      }
 else       if ("String_Node_Str".equals(command)) {
        if (searchParameters != null) {
          searchParameters.setPonder(false);
          engine.setSearchLimits(searchParameters,false);
        }
      }
 else       if ("String_Node_Str".equals(command)) {
      }
 else {
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}