<#if offset != 0>
first
#if>
<#list [offset - limit * 10, offset - limit * 9, offset - limit * 8, offset - limit * 7, offset - limit * 6, offset - limit * 5, offset - limit * 4, offset - limit * 3, offset - limit * 2, offset - limit] as x>
<#if 0 <= x>
${ ((x / limit)?int + 1)?string.computer }
#if>
#list>
${ (offset / limit)?int + 1 }
<#list [offset + limit, offset + limit * 2, offset + limit * 3, offset + limit * 4, offset + limit * 5, offset + limit * 6, offset + limit * 7, offset + limit * 8, offset + limit * 9, offset + limit * 10] as x>
<#if 0 <= x && x < countAll>
${ ((x / limit)?int + 1)?string.computer }
#if>
#list>
<#if limit < countAll>
<#if (offset / limit)?int != (countAll / limit)?int >
<#if countAll % limit == 0>
last
<#else>
last
#if>
#if>
#if>
<#if offset != 0>
first
#if>
<#list [offset - limit * 10, offset - limit * 9, offset - limit * 8, offset - limit * 7, offset - limit * 6, offset - limit * 5, offset - limit * 4, offset - limit * 3, offset - limit * 2, offset - limit] as x>
<#if 0 <= x>
${ ((x / limit)?int + 1)?string.computer }
#if>
#list>
${ (offset / limit)?int + 1 }
<#list [offset + limit, offset + limit * 2, offset + limit * 3, offset + limit * 4, offset + limit * 5, offset + limit * 6, offset + limit * 7, offset + limit * 8, offset + limit * 9, offset + limit * 10] as x>
<#if 0 <= x && x < countAll>
${ ((x / limit)?int + 1)?string.computer }
#if>
#list>
<#if limit < countAll>
<#if (offset / limit)?int != (countAll / limit)?int >
<#if countAll % limit == 0>
last
<#else>
last
#if>
#if>
#if>