public void render(
      String calledName,
      Object[] args,
      Environment env,
      Map<String, String> attrs,
      utils.LocalTemplateArguments ltas) {
    if (!skipThisTemplate) {
      tryInitializeTemplate(calledName, args, env, attrs, ltas);
      tryInitializeVarsOnce();

      java.io.StringWriter s = new java.io.StringWriter();

      PrintWriter out = new java.io.PrintWriter(s);
      ThreadLocalOut.push(out);
      beforeRender();
      renderInternal();
      afterRender();
      ThreadLocalOut.popChecked(out);
      out = ThreadLocalOut.peek();

      tryWriteSpanOpen(out);
      out.write(s.toString());
      tryWriteSpanClose(out);
    }
  }
 public String executeTemplatePhase(int phase, String name, Object[] args, Environment env) {
   java.io.StringWriter s = new java.io.StringWriter();
   PrintWriter out = new java.io.PrintWriter(s);
   ThreadLocalOut.push(out);
   try {
     TemplateServlet temp = ((TemplateServlet) env.getTemplate(name).newInstance());
     switch (phase) {
       case 2:
         temp.validateInputs(name, args, env, null, null);
         break;
       case 4:
         temp.render(name, args, env, null, null);
         break;
     }
   } catch (Exception oe) {
     try {
       TemplateCall tcall = env.getWithcall(name); // 'elements' or requires arg
       TemplateServlet temp = ((TemplateServlet) env.getTemplate(tcall.name).newInstance());
       String parent = env.getWithcall(name) == null ? null : env.getWithcall(name).parentName;
       switch (phase) {
         case 2:
           temp.validateInputs(parent, tcall.args, env, null, null);
           break;
         case 4:
           temp.render(parent, tcall.args, env, null, null);
           break;
       }
     } catch (Exception ie) {
       oe.printStackTrace();
       ie.printStackTrace();
     }
   }
   ThreadLocalOut.popChecked(out);
   return s.toString();
 }