code: @Override
      public ITemplate __cloneMe(RythmEngine engine, ITemplate caller) {
          if (null == engine) throw new NullPointerException();
          TemplateBase tmpl = __internalClone();
          if (tmpl.__parent != null) {
              tmpl.__parent = (TemplateBase) tmpl.__parent.__cloneMe(engine, caller);
          }
          tmpl.__engine = engine;
          //tmpl.__templateClass = __templateClass;
          tmpl.__ctx = new __Context();
          //if (null != buffer) tmpl.__buffer = buffer;
          if (null != __buffer) tmpl.__buffer = new StringBuilder();
          tmpl.__renderArgs = new HashMap<String, Object>(__renderArgs.size());
          //tmpl.layoutContent = "";
          tmpl.layoutSections = new HashMap<String, String>();
          tmpl.layoutSections0 = new HashMap<String, String>();
          tmpl.renderProperties = new HashMap<String, Object>();
          //tmpl.section = null;
          //tmpl.tmpCaller = null;
          //tmpl.tmpOut = null;
          //tmpl.__logTime = __logTime;
          //tmpl.w = null;
          //tmpl.os = null;
          if (null != caller) {
              tmpl.__caller = (TextBuilder) caller;
              Map<String, Object> callerRenderArgs = new HashMap<String, Object>(((TemplateBase) caller).__renderArgs);
              Map<String, Class> types = tmpl.__renderArgTypeMap();
              for (Map.Entry<String, Object> entry : callerRenderArgs.entrySet()) {
                  if (tmpl.__renderArgs.containsKey(entry.getKey())) continue;
                  Object o = entry.getValue();
                  if (null == o || __isDefVal(o)) continue;
                  Class<?> c = types.get(entry.getKey());
  
                  if (null == c || c.isAssignableFrom(o.getClass())) {
                      tmpl.__setRenderArg(entry.getKey(), o);
                  }
              }
          }
          tmpl.__setUserContext(engine.renderSettings.userContext());
          return tmpl;
      }
docs: Not to be used in user application or template
  
  @param engine the rythm engine
  @param caller the caller template
  @return cloned template