<a name="#${funcInfo.functionName}"></a>

#[[##]]# ${funcInfo.functionName}

<pre>
${util.funcSummary($funcInfo)}
</pre>

${funcInfo.docString}

#if (!$funcInfo.getDeprecated().docString.isEmpty())
**DEPRECATED**

${funcInfo.getDeprecated().docString}

#end
#if (!$funcInfo.getReturn().docString.isEmpty())
**RETURNS**

${funcInfo.getReturn().docString}

#end
**PARAMETERS**

#if (!$funcInfo.getParameterList().isEmpty())

| Name  | Description | Default Value |
| :-------------: | :-------------: | :-------------: |
#foreach ($param in $funcInfo.getParameterList())
| <a name="${funcInfo.functionName}-${param.name}"></a>$param.name | #if(!$param.docString.isEmpty()) ${util.markdownCellFormat($param.docString)} #else <p align="center"> - </p> #end  | #if(!$param.getDefaultValue().isEmpty()) <code>$param.getDefaultValue()</code> #else none #end|
#end
#end
