<% if (paginate.pageCnt) { %>
<div class="ui center aligned grid">
    <div class="ui buttons">
        <a class="ui<% if (paginate.currPage === 1) { %> disabled<% } %> button" <% if (paginate.currPage !== 1) { %>href="<%= syzoj.utils.makeUrl(req, Object.assign(req.query, { page: paginate.currPage - 1 })) %>" <% } %>id="page_prev">
            <i class="left chevron icon"></i>
        </a>
        <%
        let leftCnt = paginate.currPage - 1, rightCnt = paginate.pageCnt - paginate.currPage, omitLeft = leftCnt > 4, omitRight = rightCnt > 4;
        if (omitLeft) leftCnt = 3;
        if (omitRight) rightCnt = 3;
        if (omitLeft) {
        %>
        <li><span>...</span></li>
        <%
        }
        for (let i = paginate.currPage - leftCnt; i < paginate.currPage; i++) { %>
            <a class="ui button" href="<%= syzoj.utils.makeUrl(req, Object.assign(req.query, { page: i })) %>"><%= i %></a>
        <%
        }
        %>
        <a class="ui primary button" href="<%= syzoj.utils.makeUrl(req, Object.assign(req.query, { page: paginate.currPage })) %>"><%= paginate.currPage %></a>
        <% for (let i = paginate.currPage + 1; i <= paginate.currPage + rightCnt; i++) { %>
          <a class="ui button" href="<%= syzoj.utils.makeUrl(req, Object.assign(req.query, { page: i })) %>"><%= i %></a>
        <%
        }
        if (omitRight) {
        %>
        <li><span>...</span></li>
        <% } %>
        <a class="ui<% if (paginate.currPage === paginate.pageCnt) { %> disabled<% } %> button" <% if (paginate.currPage !== paginate.pageCnt) { %>href="<%= syzoj.utils.makeUrl(req, Object.assign(req.query, { page: paginate.currPage + 1 })) %>" <% } %>id="page_next">
            <i class="right chevron icon"></i>
        </a>
    </div>
</div>
<% } %>