changelog shortlog graph tags branches files raw help

Mercurial > infra > home / changeset: web init

changeset 73: cd1c5559ddac
parent 64: 10fe0e432340
child 74: 68faf180fee2
author: Richard Westhaver <ellis@rwest.io>
date: Sat, 27 Jul 2024 01:33:36 -0400
files: .gitconfig .homerc .skelrc hgweb.conf hgweb.ini hgweb.wsgi static/followlines.js static/hgicon.png static/hglogo.png static/mercurial.js static/style.css templates/atom/__init__.py templates/atom/bookmarkentry.tmpl templates/atom/bookmarks.tmpl templates/atom/branchentry.tmpl templates/atom/branches.tmpl templates/atom/changelog.tmpl templates/atom/changelogentry.tmpl templates/atom/error.tmpl templates/atom/filelog.tmpl templates/atom/header.tmpl templates/atom/map templates/atom/tagentry.tmpl templates/atom/tags.tmpl templates/coal/__init__.py templates/coal/header.tmpl templates/coal/map templates/gitweb/__init__.py templates/gitweb/bookmarks.tmpl templates/gitweb/branches.tmpl templates/gitweb/changelog.tmpl templates/gitweb/changelogentry.tmpl templates/gitweb/changeset.tmpl templates/gitweb/error.tmpl templates/gitweb/fileannotate.tmpl templates/gitweb/filecomparison.tmpl templates/gitweb/filediff.tmpl templates/gitweb/filelog.tmpl templates/gitweb/filerevision.tmpl templates/gitweb/footer.tmpl templates/gitweb/graph.tmpl templates/gitweb/graphentry.tmpl templates/gitweb/header.tmpl templates/gitweb/help.tmpl templates/gitweb/helptopics.tmpl templates/gitweb/index.tmpl templates/gitweb/manifest.tmpl templates/gitweb/map templates/gitweb/notfound.tmpl templates/gitweb/search.tmpl templates/gitweb/shortlog.tmpl templates/gitweb/summary.tmpl templates/gitweb/tags.tmpl templates/json/__init__.py templates/json/changelist.tmpl templates/json/graph.tmpl templates/json/map templates/map-cmdline.bisect templates/map-cmdline.changelog templates/map-cmdline.compact templates/map-cmdline.default templates/map-cmdline.phases templates/map-cmdline.show templates/map-cmdline.status templates/map-cmdline.xml templates/monoblue/__init__.py templates/monoblue/bookmarks.tmpl templates/monoblue/branches.tmpl templates/monoblue/changelog.tmpl templates/monoblue/changelogentry.tmpl templates/monoblue/changeset.tmpl templates/monoblue/error.tmpl templates/monoblue/fileannotate.tmpl templates/monoblue/filecomparison.tmpl templates/monoblue/filediff.tmpl templates/monoblue/filelog.tmpl templates/monoblue/filerevision.tmpl templates/monoblue/footer.tmpl templates/monoblue/graph.tmpl templates/monoblue/graphentry.tmpl templates/monoblue/header.tmpl templates/monoblue/help.tmpl templates/monoblue/helptopics.tmpl templates/monoblue/index.tmpl templates/monoblue/manifest.tmpl templates/monoblue/map templates/monoblue/notfound.tmpl templates/monoblue/search.tmpl templates/monoblue/shortlog.tmpl templates/monoblue/summary.tmpl templates/monoblue/tags.tmpl templates/paper/__init__.py templates/paper/bookmarks.tmpl templates/paper/branches.tmpl templates/paper/changeset.tmpl templates/paper/diffstat.tmpl templates/paper/error.tmpl templates/paper/fileannotate.tmpl templates/paper/filecomparison.tmpl templates/paper/filediff.tmpl templates/paper/filelog.tmpl templates/paper/filelogentry.tmpl templates/paper/filerevision.tmpl templates/paper/footer.tmpl templates/paper/graph.tmpl templates/paper/graphentry.tmpl templates/paper/header.tmpl templates/paper/help.tmpl templates/paper/helptopics.tmpl templates/paper/index.tmpl templates/paper/manifest.tmpl templates/paper/map templates/paper/notfound.tmpl templates/paper/search.tmpl templates/paper/shortlog.tmpl templates/paper/shortlogentry.tmpl templates/paper/tags.tmpl templates/raw/__init__.py templates/raw/changelog.tmpl templates/raw/changeset.tmpl templates/raw/error.tmpl templates/raw/fileannotate.tmpl templates/raw/filediff.tmpl templates/raw/graph.tmpl templates/raw/graphedge.tmpl templates/raw/graphnode.tmpl templates/raw/index.tmpl templates/raw/logentry.tmpl templates/raw/manifest.tmpl templates/raw/map templates/raw/notfound.tmpl templates/raw/search.tmpl templates/rss/__init__.py templates/rss/bookmarkentry.tmpl templates/rss/bookmarks.tmpl templates/rss/branchentry.tmpl templates/rss/branches.tmpl templates/rss/changelog.tmpl templates/rss/changelogentry.tmpl templates/rss/error.tmpl templates/rss/filelog.tmpl templates/rss/filelogentry.tmpl templates/rss/header.tmpl templates/rss/map templates/rss/tagentry.tmpl templates/rss/tags.tmpl templates/spartan/__init__.py templates/spartan/branches.tmpl templates/spartan/changelog.tmpl templates/spartan/changelogentry.tmpl templates/spartan/changeset.tmpl templates/spartan/error.tmpl templates/spartan/fileannotate.tmpl templates/spartan/filediff.tmpl templates/spartan/filelog.tmpl templates/spartan/filelogentry.tmpl templates/spartan/filerevision.tmpl templates/spartan/footer.tmpl templates/spartan/graph.tmpl templates/spartan/graphentry.tmpl templates/spartan/header.tmpl templates/spartan/index.tmpl templates/spartan/manifest.tmpl templates/spartan/map templates/spartan/notfound.tmpl templates/spartan/search.tmpl templates/spartan/shortlog.tmpl templates/spartan/shortlogentry.tmpl templates/spartan/tags.tmpl templates/static/__init__.py templates/static/background.png templates/static/coal-file.png templates/static/coal-folder.png templates/static/feed-icon-14x14.png templates/static/followlines.js templates/static/hgicon.png templates/static/hglogo.png templates/static/mercurial.js templates/static/style-extra-coal.css templates/static/style-gitweb.css templates/static/style-monoblue.css templates/static/style-paper.css templates/static/style.css
description: web init
     1.1--- a/.gitconfig	Sun Jul 21 21:01:03 2024 -0400
     1.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3@@ -1,9 +0,0 @@
     1.4-[user]
     1.5-	name = cc
     1.6-	email = richard.westhaver@gmail.com
     1.7-[init]
     1.8-	defaultBranch = default
     1.9-[safe]
    1.10-        directory = /home/vc/src
    1.11-[credential]
    1.12-	helper = /usr/lib/git-core/git-credential-libsecret
     2.1--- a/.homerc	Sun Jul 21 21:01:03 2024 -0400
     2.2+++ b/.homerc	Sat Jul 27 01:33:36 2024 -0400
     2.3@@ -1,5 +1,5 @@
     2.4 ;;; -*- mode:skel; -*-
     2.5-:user vc
     2.6+:user web
     2.7 :packy "~/.stash/packy"
     2.8 :shell :bash
     2.9 :src "~/.stash/home/"
     3.1--- a/.skelrc	Sun Jul 21 21:01:03 2024 -0400
     3.2+++ b/.skelrc	Sat Jul 27 01:33:36 2024 -0400
     3.3@@ -1,5 +1,5 @@
     3.4 ;;; .skelrc --- ellis@rurik  -*- mode: skel; -*-
     3.5-:user "vc"
     3.6+:user "web"
     3.7 :vc :hg
     3.8 :log-level :trace
     3.9 :stash "~/.stash"
     4.1--- a/hgweb.conf	Sun Jul 21 21:01:03 2024 -0400
     4.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3@@ -1,31 +0,0 @@
     4.4-[web]
     4.5-port = 8888
     4.6-encoding = UTF-8
     4.7-# allow_archive = zip
     4.8-baseurl = https://vc.compiler.company
     4.9-contact = ellis
    4.10-# templates = theme
    4.11-# style = monoblue
    4.12-templates = /home/vc/templates
    4.13-style = gitweb
    4.14-# pygments_style = tango
    4.15-highlightfiles = size('<100k')
    4.16-# highlightonlymatchfilename = True
    4.17-logourl = https://vc.compiler.company
    4.18-staticurl = /static
    4.19-descend = True
    4.20-collapse = False
    4.21-allow_push = ellis
    4.22-[extensions]
    4.23-# requires pygments to be installed
    4.24-highlight =
    4.25-clonebundles =
    4.26-histedit =
    4.27-git = 
    4.28-# external
    4.29-# hggit = 
    4.30-[paths]
    4.31-/ = /home/vc/src/**
    4.32-[phases]
    4.33-publish = False
    4.34-new-commit = draft
    4.35\ No newline at end of file
     5.1--- a/hgweb.ini	Sun Jul 21 21:01:03 2024 -0400
     5.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3@@ -1,17 +0,0 @@
     5.4-[uwsgi]
     5.5-master = true
     5.6-# max-requests = 1000
     5.7-# logto = {log file path}/hgweb-uwsgi.log
     5.8-uid = vc # set process owner
     5.9-gid = vc
    5.10-stats = /run/vc/stats.sock
    5.11-chmod-socket = 666
    5.12-cap = setgid,setuid
    5.13-# https://www.mercurial-scm.org/wiki/PublishRepositoriesOnNginx
    5.14-plugins = python
    5.15-socket = /run/vc/hgweb.sock
    5.16-chdir = /home/vc/
    5.17-wsgi-file = hgweb.wsgi
    5.18-# https://stackoverflow.com/questions/15878176/uwsgi-invalid-request-block-size
    5.19-# http://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html
    5.20-# buffer-size = 65535
     6.1--- a/hgweb.wsgi	Sun Jul 21 21:01:03 2024 -0400
     6.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3@@ -1,7 +0,0 @@
     6.4-#!/usr/bin/env python3
     6.5-config = b"/home/vc/hgweb.conf"
     6.6-# enable demandloading to reduce startup time
     6.7-from mercurial import demandimport; demandimport.enable()
     6.8-from mercurial.hgweb import hgweb, wsgicgi
     6.9-application = hgweb(config)
    6.10-wsgicgi.launch(application)
     7.1--- a/static/followlines.js	Sun Jul 21 21:01:03 2024 -0400
     7.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3@@ -1,286 +0,0 @@
     7.4-// followlines.js - JavaScript utilities for followlines UI
     7.5-//
     7.6-// Copyright 2017 Logilab SA <contact@logilab.fr>
     7.7-//
     7.8-// This software may be used and distributed according to the terms of the
     7.9-// GNU General Public License version 2 or any later version.
    7.10-
    7.11-//** Install event listeners for line block selection and followlines action */
    7.12-document.addEventListener('DOMContentLoaded', function() {
    7.13-    var sourcelines = document.getElementsByClassName('sourcelines')[0];
    7.14-    if (typeof sourcelines === 'undefined') {
    7.15-        return;
    7.16-    }
    7.17-    // URL to complement with "linerange" query parameter
    7.18-    var targetUri = sourcelines.dataset.logurl;
    7.19-    if (typeof targetUri === 'undefined') {
    7.20-        return;
    7.21-    }
    7.22-
    7.23-    // Tag of children of "sourcelines" element on which to add "line
    7.24-    // selection" style.
    7.25-    var selectableTag = sourcelines.dataset.selectabletag;
    7.26-    if (typeof selectableTag === 'undefined') {
    7.27-        return;
    7.28-    }
    7.29-
    7.30-    var isHead = parseInt(sourcelines.dataset.ishead || "0");
    7.31-
    7.32-    //* position "element" on top-right of cursor */
    7.33-    function positionTopRight(element, event) {
    7.34-        var x = (event.clientX + 10) + 'px',
    7.35-            y = (event.clientY - 20) + 'px';
    7.36-        element.style.top = y;
    7.37-        element.style.left = x;
    7.38-    }
    7.39-
    7.40-    // retrieve all direct *selectable* children of class="sourcelines"
    7.41-    // element
    7.42-    var selectableElements = Array.prototype.filter.call(
    7.43-        sourcelines.children,
    7.44-        function(x) { return x.tagName === selectableTag; });
    7.45-
    7.46-    var btnTitleStart = 'start following lines history from here';
    7.47-    var btnTitleEnd = 'terminate line block selection here';
    7.48-
    7.49-    //** return a <button> element with +/- spans */
    7.50-    function createButton() {
    7.51-        var btn = document.createElement('button');
    7.52-        btn.title = btnTitleStart;
    7.53-        btn.classList.add('btn-followlines');
    7.54-        var plusSpan = document.createElement('span');
    7.55-        plusSpan.classList.add('followlines-plus');
    7.56-        plusSpan.textContent = '+';
    7.57-        btn.appendChild(plusSpan);
    7.58-        var br = document.createElement('br');
    7.59-        btn.appendChild(br);
    7.60-        var minusSpan = document.createElement('span');
    7.61-        minusSpan.classList.add('followlines-minus');
    7.62-        minusSpan.textContent = '−';
    7.63-        btn.appendChild(minusSpan);
    7.64-        return btn;
    7.65-    }
    7.66-
    7.67-    // extend DOM with CSS class for selection highlight and action buttons
    7.68-    var followlinesButtons = [];
    7.69-    for (var i = 0; i < selectableElements.length; i++) {
    7.70-        selectableElements[i].classList.add('followlines-select');
    7.71-        var btn = createButton();
    7.72-        followlinesButtons.push(btn);
    7.73-        // insert the <button> as child of `selectableElements[i]` unless the
    7.74-        // latter has itself a child  with a "followlines-btn-parent" class
    7.75-        // (annotate view)
    7.76-        var btnSupportElm = selectableElements[i];
    7.77-        var childSupportElms = btnSupportElm.getElementsByClassName(
    7.78-            'followlines-btn-parent');
    7.79-        if ( childSupportElms.length > 0 ) {
    7.80-            btnSupportElm = childSupportElms[0];
    7.81-        }
    7.82-        var refNode = btnSupportElm.childNodes[0]; // node to insert <button> before
    7.83-        btnSupportElm.insertBefore(btn, refNode);
    7.84-    }
    7.85-
    7.86-    // ** re-initialize followlines buttons */
    7.87-    function resetButtons() {
    7.88-        for (var i = 0; i < followlinesButtons.length; i++) {
    7.89-            var btn = followlinesButtons[i];
    7.90-            btn.title = btnTitleStart;
    7.91-            btn.classList.remove('btn-followlines-end');
    7.92-            btn.classList.remove('btn-followlines-hidden');
    7.93-        }
    7.94-    }
    7.95-
    7.96-    var lineSelectedCSSClass = 'followlines-selected';
    7.97-
    7.98-    //** add CSS class on selectable elements in `from`-`to` line range */
    7.99-    function addSelectedCSSClass(from, to) {
   7.100-        for (var i = from; i <= to; i++) {
   7.101-            selectableElements[i].classList.add(lineSelectedCSSClass);
   7.102-        }
   7.103-    }
   7.104-
   7.105-    //** remove CSS class from previously selected lines */
   7.106-    function removeSelectedCSSClass() {
   7.107-        var elements = sourcelines.getElementsByClassName(
   7.108-            lineSelectedCSSClass);
   7.109-        while (elements.length) {
   7.110-            elements[0].classList.remove(lineSelectedCSSClass);
   7.111-        }
   7.112-    }
   7.113-
   7.114-    // ** return the element of type "selectableTag" parent of `element` */
   7.115-    function selectableParent(element) {
   7.116-        var parent = element.parentElement;
   7.117-        if (parent === null) {
   7.118-            return null;
   7.119-        }
   7.120-        if (element.tagName === selectableTag && parent.isSameNode(sourcelines)) {
   7.121-            return element;
   7.122-        }
   7.123-        return selectableParent(parent);
   7.124-    }
   7.125-
   7.126-    // ** update buttons title and style upon first click */
   7.127-    function updateButtons(selectable) {
   7.128-        for (var i = 0; i < followlinesButtons.length; i++) {
   7.129-            var btn = followlinesButtons[i];
   7.130-            btn.title = btnTitleEnd;
   7.131-            btn.classList.add('btn-followlines-end');
   7.132-        }
   7.133-        // on clicked button, change title to "cancel"
   7.134-        var clicked = selectable.getElementsByClassName('btn-followlines')[0];
   7.135-        clicked.title = 'cancel';
   7.136-        clicked.classList.remove('btn-followlines-end');
   7.137-    }
   7.138-
   7.139-    //** add `listener` on "click" event for all `followlinesButtons` */
   7.140-    function buttonsAddEventListener(listener) {
   7.141-        for (var i = 0; i < followlinesButtons.length; i++) {
   7.142-            followlinesButtons[i].addEventListener('click', listener);
   7.143-        }
   7.144-    }
   7.145-
   7.146-    //** remove `listener` on "click" event for all `followlinesButtons` */
   7.147-    function buttonsRemoveEventListener(listener) {
   7.148-        for (var i = 0; i < followlinesButtons.length; i++) {
   7.149-            followlinesButtons[i].removeEventListener('click', listener);
   7.150-        }
   7.151-    }
   7.152-
   7.153-    //** event handler for "click" on the first line of a block */
   7.154-    function lineSelectStart(e) {
   7.155-        var startElement = selectableParent(e.target.parentElement);
   7.156-        if (startElement === null) {
   7.157-            // not a "selectable" element (maybe <a>): abort, keeping event
   7.158-            // listener registered for other click with a "selectable" target
   7.159-            return;
   7.160-        }
   7.161-
   7.162-        // update button tooltip text and CSS
   7.163-        updateButtons(startElement);
   7.164-
   7.165-        var startId = parseInt(startElement.id.slice(1));
   7.166-        startElement.classList.add(lineSelectedCSSClass); // CSS
   7.167-
   7.168-        // remove this event listener
   7.169-        buttonsRemoveEventListener(lineSelectStart);
   7.170-
   7.171-        //** event handler for "click" on the last line of the block */
   7.172-        function lineSelectEnd(e) {
   7.173-            var endElement = selectableParent(e.target.parentElement);
   7.174-            if (endElement === null) {
   7.175-                // not a <span> (maybe <a>): abort, keeping event listener
   7.176-                // registered for other click with <span> target
   7.177-                return;
   7.178-            }
   7.179-
   7.180-            // remove this event listener
   7.181-            buttonsRemoveEventListener(lineSelectEnd);
   7.182-
   7.183-            // reset button tooltip text
   7.184-            resetButtons();
   7.185-
   7.186-            // compute line range (startId, endId)
   7.187-            var endId = parseInt(endElement.id.slice(1));
   7.188-            if (endId === startId) {
   7.189-                // clicked twice the same line, cancel and reset initial state
   7.190-                // (CSS, event listener for selection start)
   7.191-                removeSelectedCSSClass();
   7.192-                buttonsAddEventListener(lineSelectStart);
   7.193-                return;
   7.194-            }
   7.195-            var inviteElement = endElement;
   7.196-            if (endId < startId) {
   7.197-                var tmp = endId;
   7.198-                endId = startId;
   7.199-                startId = tmp;
   7.200-                inviteElement = startElement;
   7.201-            }
   7.202-
   7.203-            addSelectedCSSClass(startId - 1, endId -1);  // CSS
   7.204-
   7.205-            // append the <div id="followlines"> element to last line of the
   7.206-            // selection block
   7.207-            var divAndButton = followlinesBox(targetUri, startId, endId, isHead);
   7.208-            var div = divAndButton[0],
   7.209-                button = divAndButton[1];
   7.210-            inviteElement.appendChild(div);
   7.211-            // set position close to cursor (top-right)
   7.212-            positionTopRight(div, e);
   7.213-            // hide all buttons
   7.214-            for (var i = 0; i < followlinesButtons.length; i++) {
   7.215-                followlinesButtons[i].classList.add('btn-followlines-hidden');
   7.216-            }
   7.217-
   7.218-            //** event handler for cancelling selection */
   7.219-            function cancel() {
   7.220-                // remove invite box
   7.221-                div.parentNode.removeChild(div);
   7.222-                // restore initial event listeners
   7.223-                buttonsAddEventListener(lineSelectStart);
   7.224-                buttonsRemoveEventListener(cancel);
   7.225-                for (var i = 0; i < followlinesButtons.length; i++) {
   7.226-                    followlinesButtons[i].classList.remove('btn-followlines-hidden');
   7.227-                }
   7.228-                // remove styles on selected lines
   7.229-                removeSelectedCSSClass();
   7.230-                resetButtons();
   7.231-            }
   7.232-
   7.233-            // bind cancel event to click on <button>
   7.234-            button.addEventListener('click', cancel);
   7.235-            // as well as on an click on any source line
   7.236-            buttonsAddEventListener(cancel);
   7.237-        }
   7.238-
   7.239-        buttonsAddEventListener(lineSelectEnd);
   7.240-
   7.241-    }
   7.242-
   7.243-    buttonsAddEventListener(lineSelectStart);
   7.244-
   7.245-    //** return a <div id="followlines"> and inner cancel <button> elements */
   7.246-    function followlinesBox(targetUri, fromline, toline, isHead) {
   7.247-        // <div id="followlines">
   7.248-        var div = document.createElement('div');
   7.249-        div.id = 'followlines';
   7.250-
   7.251-        //   <div class="followlines-cancel">
   7.252-        var buttonDiv = document.createElement('div');
   7.253-        buttonDiv.classList.add('followlines-cancel');
   7.254-
   7.255-        //     <button>x</button>
   7.256-        var button = document.createElement('button');
   7.257-        button.textContent = 'x';
   7.258-        buttonDiv.appendChild(button);
   7.259-        div.appendChild(buttonDiv);
   7.260-
   7.261-        //   <div class="followlines-link">
   7.262-        var aDiv = document.createElement('div');
   7.263-        aDiv.classList.add('followlines-link');
   7.264-        aDiv.textContent = 'follow history of lines ' + fromline + ':' + toline + ':';
   7.265-        var linesep = document.createElement('br');
   7.266-        aDiv.appendChild(linesep);
   7.267-        //     link to "ascending" followlines
   7.268-        var aAsc = document.createElement('a');
   7.269-        var url = targetUri + '?patch=&linerange=' + fromline + ':' + toline;
   7.270-        aAsc.setAttribute('href', url);
   7.271-        aAsc.textContent = 'older';
   7.272-        aDiv.appendChild(aAsc);
   7.273-
   7.274-        if (!isHead) {
   7.275-            var sep = document.createTextNode(' / ');
   7.276-            aDiv.appendChild(sep);
   7.277-            //     link to "descending" followlines
   7.278-            var aDesc = document.createElement('a');
   7.279-            aDesc.setAttribute('href', url + '&descend=');
   7.280-            aDesc.textContent = 'newer';
   7.281-            aDiv.appendChild(aDesc);
   7.282-        }
   7.283-
   7.284-        div.appendChild(aDiv);
   7.285-
   7.286-        return [div, button];
   7.287-    }
   7.288-
   7.289-}, false);
     8.1Binary file static/hgicon.png has changed
     9.1Binary file static/hglogo.png has changed
    10.1--- a/static/mercurial.js	Sun Jul 21 21:01:03 2024 -0400
    10.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3@@ -1,580 +0,0 @@
    10.4-// mercurial.js - JavaScript utility functions
    10.5-//
    10.6-// Rendering of branch DAGs on the client side
    10.7-// Display of elapsed time
    10.8-// Show or hide diffstat
    10.9-//
   10.10-// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
   10.11-// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
   10.12-//
   10.13-// derived from code written by Scott James Remnant <scott@ubuntu.com>
   10.14-// Copyright 2005 Canonical Ltd.
   10.15-//
   10.16-// This software may be used and distributed according to the terms
   10.17-// of the GNU General Public License, incorporated herein by reference.
   10.18-
   10.19-var colors = [
   10.20-	[ 1.0, 0.0, 0.0 ],
   10.21-	[ 1.0, 1.0, 0.0 ],
   10.22-	[ 0.0, 1.0, 0.0 ],
   10.23-	[ 0.0, 1.0, 1.0 ],
   10.24-	[ 0.0, 0.0, 1.0 ],
   10.25-	[ 1.0, 0.0, 1.0 ]
   10.26-];
   10.27-
   10.28-function Graph() {
   10.29-
   10.30-	this.canvas = document.getElementById('graph');
   10.31-	this.ctx = this.canvas.getContext('2d');
   10.32-	this.ctx.strokeStyle = 'rgb(0, 0, 0)';
   10.33-	this.ctx.fillStyle = 'rgb(0, 0, 0)';
   10.34-	this.bg = [0, 4];
   10.35-	this.cell = [2, 0];
   10.36-	this.columns = 0;
   10.37-
   10.38-}
   10.39-
   10.40-Graph.prototype = {
   10.41-	reset: function() {
   10.42-		this.bg = [0, 4];
   10.43-		this.cell = [2, 0];
   10.44-		this.columns = 0;
   10.45-	},
   10.46-
   10.47-	scale: function(height) {
   10.48-		this.bg_height = height;
   10.49-		this.box_size = Math.floor(this.bg_height / 1.2);
   10.50-		this.cell_height = this.box_size;
   10.51-	},
   10.52-
   10.53-	setColor: function(color, bg, fg) {
   10.54-
   10.55-		// Set the colour.
   10.56-		//
   10.57-		// If color is a string, expect an hexadecimal RGB
   10.58-		// value and apply it unchanged. If color is a number,
   10.59-		// pick a distinct colour based on an internal wheel;
   10.60-		// the bg parameter provides the value that should be
   10.61-		// assigned to the 'zero' colours and the fg parameter
   10.62-		// provides the multiplier that should be applied to
   10.63-		// the foreground colours.
   10.64-		var s;
   10.65-		if(typeof color === "string") {
   10.66-			s = "#" + color;
   10.67-		} else { //typeof color === "number"
   10.68-			color %= colors.length;
   10.69-			var red = (colors[color][0] * fg) || bg;
   10.70-			var green = (colors[color][1] * fg) || bg;
   10.71-			var blue = (colors[color][2] * fg) || bg;
   10.72-			red = Math.round(red * 255);
   10.73-			green = Math.round(green * 255);
   10.74-			blue = Math.round(blue * 255);
   10.75-			s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
   10.76-		}
   10.77-		this.ctx.strokeStyle = s;
   10.78-		this.ctx.fillStyle = s;
   10.79-		return s;
   10.80-
   10.81-	},
   10.82-
   10.83-	edge: function(x0, y0, x1, y1, color, width) {
   10.84-
   10.85-		this.setColor(color, 0.0, 0.65);
   10.86-		if(width >= 0)
   10.87-			 this.ctx.lineWidth = width;
   10.88-		this.ctx.beginPath();
   10.89-		this.ctx.moveTo(x0, y0);
   10.90-		this.ctx.lineTo(x1, y1);
   10.91-		this.ctx.stroke();
   10.92-
   10.93-	},
   10.94-
   10.95-	graphNodeCurrent: function(x, y, radius) {
   10.96-		this.ctx.lineWidth = 2;
   10.97-		this.ctx.beginPath();
   10.98-		this.ctx.arc(x, y, radius * 1.75, 0, Math.PI * 2, true);
   10.99-		this.ctx.stroke();
  10.100-	},
  10.101-
  10.102-	graphNodeClosing: function(x, y, radius) {
  10.103-		this.ctx.fillRect(x - radius, y - 1.5, radius * 2, 3);
  10.104-	},
  10.105-
  10.106-	graphNodeUnstable: function(x, y, radius) {
  10.107-		var x30 = radius * Math.cos(Math.PI / 6);
  10.108-		var y30 = radius * Math.sin(Math.PI / 6);
  10.109-		this.ctx.lineWidth = 2;
  10.110-		this.ctx.beginPath();
  10.111-		this.ctx.moveTo(x, y - radius);
  10.112-		this.ctx.lineTo(x, y + radius);
  10.113-		this.ctx.moveTo(x - x30, y - y30);
  10.114-		this.ctx.lineTo(x + x30, y + y30);
  10.115-		this.ctx.moveTo(x - x30, y + y30);
  10.116-		this.ctx.lineTo(x + x30, y - y30);
  10.117-		this.ctx.stroke();
  10.118-	},
  10.119-
  10.120-	graphNodeObsolete: function(x, y, radius) {
  10.121-		var p45 = radius * Math.cos(Math.PI / 4);
  10.122-		this.ctx.lineWidth = 3;
  10.123-		this.ctx.beginPath();
  10.124-		this.ctx.moveTo(x - p45, y - p45);
  10.125-		this.ctx.lineTo(x + p45, y + p45);
  10.126-		this.ctx.moveTo(x - p45, y + p45);
  10.127-		this.ctx.lineTo(x + p45, y - p45);
  10.128-		this.ctx.stroke();
  10.129-	},
  10.130-
  10.131-	graphNodeNormal: function(x, y, radius) {
  10.132-		this.ctx.beginPath();
  10.133-		this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
  10.134-		this.ctx.fill();
  10.135-	},
  10.136-
  10.137-	vertex: function(x, y, radius, color, parity, cur) {
  10.138-		this.ctx.save();
  10.139-		this.setColor(color, 0.25, 0.75);
  10.140-		if (cur.graphnode[0] === '@') {
  10.141-			this.graphNodeCurrent(x, y, radius);
  10.142-		}
  10.143-		switch (cur.graphnode.substr(-1)) {
  10.144-			case '_':
  10.145-				this.graphNodeClosing(x, y, radius);
  10.146-				break;
  10.147-			case '*':
  10.148-				this.graphNodeUnstable(x, y, radius);
  10.149-				break;
  10.150-			case 'x':
  10.151-				this.graphNodeObsolete(x, y, radius);
  10.152-				break;
  10.153-			default:
  10.154-				this.graphNodeNormal(x, y, radius);
  10.155-		}
  10.156-		this.ctx.restore();
  10.157-
  10.158-		var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
  10.159-		var item = document.querySelector('[data-node="' + cur.node + '"]');
  10.160-		if (item) {
  10.161-			item.style.paddingLeft = left + 'px';
  10.162-		}
  10.163-	},
  10.164-
  10.165-	render: function(data) {
  10.166-
  10.167-		var i, j, cur, line, start, end, color, x, y, x0, y0, x1, y1, column, radius;
  10.168-
  10.169-		var cols = 0;
  10.170-		for (i = 0; i < data.length; i++) {
  10.171-			cur = data[i];
  10.172-			for (j = 0; j < cur.edges.length; j++) {
  10.173-				line = cur.edges[j];
  10.174-				cols = Math.max(cols, line[0], line[1]);
  10.175-			}
  10.176-		}
  10.177-		this.canvas.width = (cols + 1) * this.bg_height;
  10.178-		this.canvas.height = (data.length + 1) * this.bg_height - 27;
  10.179-
  10.180-		for (i = 0; i < data.length; i++) {
  10.181-
  10.182-			var parity = i % 2;
  10.183-			this.cell[1] += this.bg_height;
  10.184-			this.bg[1] += this.bg_height;
  10.185-
  10.186-			cur = data[i];
  10.187-			var fold = false;
  10.188-
  10.189-			var prevWidth = this.ctx.lineWidth;
  10.190-			for (j = 0; j < cur.edges.length; j++) {
  10.191-
  10.192-				line = cur.edges[j];
  10.193-				start = line[0];
  10.194-				end = line[1];
  10.195-				color = line[2];
  10.196-				var width = line[3];
  10.197-				if(width < 0)
  10.198-					 width = prevWidth;
  10.199-				var branchcolor = line[4];
  10.200-				if(branchcolor)
  10.201-					color = branchcolor;
  10.202-
  10.203-				if (end > this.columns || start > this.columns) {
  10.204-					this.columns += 1;
  10.205-				}
  10.206-
  10.207-				if (start === this.columns && start > end) {
  10.208-					fold = true;
  10.209-				}
  10.210-
  10.211-				x0 = this.cell[0] + this.box_size * start + this.box_size / 2;
  10.212-				y0 = this.bg[1] - this.bg_height / 2;
  10.213-				x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
  10.214-				y1 = this.bg[1] + this.bg_height / 2;
  10.215-
  10.216-				this.edge(x0, y0, x1, y1, color, width);
  10.217-
  10.218-			}
  10.219-			this.ctx.lineWidth = prevWidth;
  10.220-
  10.221-			// Draw the revision node in the right column
  10.222-
  10.223-			column = cur.vertex[0];
  10.224-			color = cur.vertex[1];
  10.225-
  10.226-			radius = this.box_size / 8;
  10.227-			x = this.cell[0] + this.box_size * column + this.box_size / 2;
  10.228-			y = this.bg[1] - this.bg_height / 2;
  10.229-			this.vertex(x, y, radius, color, parity, cur);
  10.230-
  10.231-			if (fold) this.columns -= 1;
  10.232-
  10.233-		}
  10.234-
  10.235-	}
  10.236-
  10.237-};
  10.238-
  10.239-
  10.240-function process_dates(parentSelector){
  10.241-
  10.242-	// derived from code from mercurial/templatefilter.py
  10.243-
  10.244-	var scales = {
  10.245-		'year':  365 * 24 * 60 * 60,
  10.246-		'month':  30 * 24 * 60 * 60,
  10.247-		'week':    7 * 24 * 60 * 60,
  10.248-		'day':    24 * 60 * 60,
  10.249-		'hour':   60 * 60,
  10.250-		'minute': 60,
  10.251-		'second': 1
  10.252-	};
  10.253-
  10.254-	function format(count, string){
  10.255-		var ret = count + ' ' + string;
  10.256-		if (count > 1){
  10.257-			ret = ret + 's';
  10.258-		}
  10.259- 		return ret;
  10.260- 	}
  10.261-
  10.262-	function shortdate(date){
  10.263-		var ret = date.getFullYear() + '-';
  10.264-		// getMonth() gives a 0-11 result
  10.265-		var month = date.getMonth() + 1;
  10.266-		if (month <= 9){
  10.267-			ret += '0' + month;
  10.268-		} else {
  10.269-			ret += month;
  10.270-		}
  10.271-		ret += '-';
  10.272-		var day = date.getDate();
  10.273-		if (day <= 9){
  10.274-			ret += '0' + day;
  10.275-		} else {
  10.276-			ret += day;
  10.277-		}
  10.278-		return ret;
  10.279-	}
  10.280-
  10.281- 	function age(datestr){
  10.282- 		var now = new Date();
  10.283- 		var once = new Date(datestr);
  10.284-		if (isNaN(once.getTime())){
  10.285-			// parsing error
  10.286-			return datestr;
  10.287-		}
  10.288-
  10.289-		var delta = Math.floor((now.getTime() - once.getTime()) / 1000);
  10.290-
  10.291-		var future = false;
  10.292-		if (delta < 0){
  10.293-			future = true;
  10.294-			delta = -delta;
  10.295-			if (delta > (30 * scales.year)){
  10.296-				return "in the distant future";
  10.297-			}
  10.298-		}
  10.299-
  10.300-		if (delta > (2 * scales.year)){
  10.301-			return shortdate(once);
  10.302-		}
  10.303-
  10.304-		for (var unit in scales){
  10.305-			if (!scales.hasOwnProperty(unit)) { continue; }
  10.306-			var s = scales[unit];
  10.307-			var n = Math.floor(delta / s);
  10.308-			if ((n >= 2) || (s === 1)){
  10.309-				if (future){
  10.310-					return format(n, unit) + ' from now';
  10.311-				} else {
  10.312-					return format(n, unit) + ' ago';
  10.313-				}
  10.314-			}
  10.315-		}
  10.316-	}
  10.317-
  10.318-	var nodes = document.querySelectorAll((parentSelector || '') + ' .age');
  10.319-	var dateclass = new RegExp('\\bdate\\b');
  10.320-	for (var i=0; i<nodes.length; ++i){
  10.321-		var node = nodes[i];
  10.322-		var classes = node.className;
  10.323-		var agevalue = age(node.textContent);
  10.324-		if (dateclass.test(classes)){
  10.325-			// We want both: date + (age)
  10.326-			node.textContent += ' ('+agevalue+')';
  10.327-		} else {
  10.328-			node.title = node.textContent;
  10.329-			node.textContent = agevalue;
  10.330-		}
  10.331-	}
  10.332-}
  10.333-
  10.334-function toggleDiffstat(event) {
  10.335-    var curdetails = document.getElementById('diffstatdetails').style.display;
  10.336-    var curexpand = curdetails === 'none' ? 'inline' : 'none';
  10.337-    document.getElementById('diffstatdetails').style.display = curexpand;
  10.338-    document.getElementById('diffstatexpand').style.display = curdetails;
  10.339-    event.preventDefault();
  10.340-}
  10.341-
  10.342-function toggleLinewrap(event) {
  10.343-    function getLinewrap() {
  10.344-        var nodes = document.getElementsByClassName('sourcelines');
  10.345-        // if there are no such nodes, error is thrown here
  10.346-        return nodes[0].classList.contains('wrap');
  10.347-    }
  10.348-
  10.349-    function setLinewrap(enable) {
  10.350-        var nodes = document.getElementsByClassName('sourcelines');
  10.351-        var i;
  10.352-        for (i = 0; i < nodes.length; i++) {
  10.353-            if (enable) {
  10.354-                nodes[i].classList.add('wrap');
  10.355-            } else {
  10.356-                nodes[i].classList.remove('wrap');
  10.357-            }
  10.358-        }
  10.359-
  10.360-        var links = document.getElementsByClassName('linewraplink');
  10.361-        for (i = 0; i < links.length; i++) {
  10.362-            links[i].innerHTML = enable ? 'on' : 'off';
  10.363-        }
  10.364-    }
  10.365-
  10.366-    setLinewrap(!getLinewrap());
  10.367-    event.preventDefault();
  10.368-}
  10.369-
  10.370-function format(str, replacements) {
  10.371-    return str.replace(/%(\w+)%/g, function(match, p1) {
  10.372-        return String(replacements[p1]);
  10.373-    });
  10.374-}
  10.375-
  10.376-function makeRequest(url, method, onstart, onsuccess, onerror, oncomplete) {
  10.377-    var xhr = new XMLHttpRequest();
  10.378-    xhr.onreadystatechange = function() {
  10.379-        if (xhr.readyState === 4) {
  10.380-            try {
  10.381-                if (xhr.status === 200) {
  10.382-                    onsuccess(xhr.responseText);
  10.383-                } else {
  10.384-                    throw 'server error';
  10.385-                }
  10.386-            } catch (e) {
  10.387-                onerror(e);
  10.388-            } finally {
  10.389-                oncomplete();
  10.390-            }
  10.391-        }
  10.392-    };
  10.393-
  10.394-    xhr.open(method, url);
  10.395-    xhr.overrideMimeType("text/xhtml; charset=" + document.characterSet.toLowerCase());
  10.396-    xhr.send();
  10.397-    onstart();
  10.398-    return xhr;
  10.399-}
  10.400-
  10.401-function removeByClassName(className) {
  10.402-    var nodes = document.getElementsByClassName(className);
  10.403-    while (nodes.length) {
  10.404-        nodes[0].parentNode.removeChild(nodes[0]);
  10.405-    }
  10.406-}
  10.407-
  10.408-function docFromHTML(html) {
  10.409-    var doc = document.implementation.createHTMLDocument('');
  10.410-    doc.documentElement.innerHTML = html;
  10.411-    return doc;
  10.412-}
  10.413-
  10.414-function appendFormatHTML(element, formatStr, replacements) {
  10.415-    element.insertAdjacentHTML('beforeend', format(formatStr, replacements));
  10.416-}
  10.417-
  10.418-function adoptChildren(from, to) {
  10.419-    var nodes = from.children;
  10.420-    var curClass = 'c' + Date.now();
  10.421-    while (nodes.length) {
  10.422-        var node = nodes[0];
  10.423-        node = document.adoptNode(node);
  10.424-        node.classList.add(curClass);
  10.425-        to.appendChild(node);
  10.426-    }
  10.427-    process_dates('.' + curClass);
  10.428-}
  10.429-
  10.430-function ajaxScrollInit(urlFormat,
  10.431-                        nextPageVar,
  10.432-                        nextPageVarGet,
  10.433-                        containerSelector,
  10.434-                        messageFormat,
  10.435-                        mode) {
  10.436-    var updateInitiated = false;
  10.437-    var container = document.querySelector(containerSelector);
  10.438-
  10.439-    function scrollHandler() {
  10.440-        if (updateInitiated) {
  10.441-            return;
  10.442-        }
  10.443-
  10.444-        var scrollHeight = document.documentElement.scrollHeight;
  10.445-        var clientHeight = document.documentElement.clientHeight;
  10.446-        var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
  10.447-
  10.448-        if (scrollHeight - (scrollTop + clientHeight) < 50) {
  10.449-            updateInitiated = true;
  10.450-            removeByClassName('scroll-loading-error');
  10.451-            container.lastElementChild.classList.add('scroll-separator');
  10.452-
  10.453-            if (!nextPageVar) {
  10.454-                var message = {
  10.455-                    'class': 'scroll-loading-info',
  10.456-                    text: 'No more entries'
  10.457-                };
  10.458-                appendFormatHTML(container, messageFormat, message);
  10.459-                return;
  10.460-            }
  10.461-
  10.462-            makeRequest(
  10.463-                format(urlFormat, {next: nextPageVar}),
  10.464-                'GET',
  10.465-                function onstart() {
  10.466-                    var message = {
  10.467-                        'class': 'scroll-loading',
  10.468-                        text: 'Loading...'
  10.469-                    };
  10.470-                    appendFormatHTML(container, messageFormat, message);
  10.471-                },
  10.472-                function onsuccess(htmlText) {
  10.473-                    var doc = docFromHTML(htmlText);
  10.474-
  10.475-                    if (mode === 'graph') {
  10.476-                        var graph = window.graph;
  10.477-                        var dataStr = htmlText.match(/^\s*var data = (.*);$/m)[1];
  10.478-                        var data = JSON.parse(dataStr);
  10.479-                        graph.reset();
  10.480-                        adoptChildren(doc.querySelector('#graphnodes'), container.querySelector('#graphnodes'));
  10.481-                        graph.render(data);
  10.482-                    } else {
  10.483-                        adoptChildren(doc.querySelector(containerSelector), container);
  10.484-                    }
  10.485-
  10.486-                    nextPageVar = nextPageVarGet(htmlText);
  10.487-                },
  10.488-                function onerror(errorText) {
  10.489-                    var message = {
  10.490-                        'class': 'scroll-loading-error',
  10.491-                        text: 'Error: ' + errorText
  10.492-                    };
  10.493-                    appendFormatHTML(container, messageFormat, message);
  10.494-                },
  10.495-                function oncomplete() {
  10.496-                    removeByClassName('scroll-loading');
  10.497-                    updateInitiated = false;
  10.498-                    scrollHandler();
  10.499-                }
  10.500-            );
  10.501-        }
  10.502-    }
  10.503-
  10.504-    window.addEventListener('scroll', scrollHandler);
  10.505-    window.addEventListener('resize', scrollHandler);
  10.506-    scrollHandler();
  10.507-}
  10.508-
  10.509-function renderDiffOptsForm() {
  10.510-    // We use URLSearchParams for query string manipulation. Old browsers don't
  10.511-    // support this API.
  10.512-    if (!("URLSearchParams" in window)) {
  10.513-        return;
  10.514-    }
  10.515-
  10.516-    var form = document.getElementById("diffopts-form");
  10.517-
  10.518-    var KEYS = [
  10.519-        "ignorews",
  10.520-        "ignorewsamount",
  10.521-        "ignorewseol",
  10.522-        "ignoreblanklines",
  10.523-    ];
  10.524-
  10.525-    var urlParams = new window.URLSearchParams(window.location.search);
  10.526-
  10.527-    function updateAndRefresh(e) {
  10.528-        var checkbox = e.target;
  10.529-        var name = checkbox.id.substr(0, checkbox.id.indexOf("-"));
  10.530-        urlParams.set(name, checkbox.checked ? "1" : "0");
  10.531-        window.location.search = urlParams.toString();
  10.532-    }
  10.533-
  10.534-    var allChecked = form.getAttribute("data-ignorews") === "1";
  10.535-
  10.536-    for (var i = 0; i < KEYS.length; i++) {
  10.537-        var key = KEYS[i];
  10.538-
  10.539-        var checkbox = document.getElementById(key + "-checkbox");
  10.540-        if (!checkbox) {
  10.541-            continue;
  10.542-        }
  10.543-
  10.544-        var currentValue = form.getAttribute("data-" + key);
  10.545-        checkbox.checked = currentValue !== "0";
  10.546-
  10.547-        // ignorews implies ignorewsamount and ignorewseol.
  10.548-        if (allChecked && (key === "ignorewsamount" || key === "ignorewseol")) {
  10.549-            checkbox.checked = true;
  10.550-            checkbox.disabled = true;
  10.551-        }
  10.552-
  10.553-        checkbox.addEventListener("change", updateAndRefresh, false);
  10.554-    }
  10.555-
  10.556-    form.style.display = 'block';
  10.557-}
  10.558-
  10.559-function addDiffStatToggle() {
  10.560-    var els = document.getElementsByClassName("diffstattoggle");
  10.561-
  10.562-    for (var i = 0; i < els.length; i++) {
  10.563-        els[i].addEventListener("click", toggleDiffstat, false);
  10.564-    }
  10.565-}
  10.566-
  10.567-function addLineWrapToggle() {
  10.568-    var els = document.getElementsByClassName("linewraptoggle");
  10.569-
  10.570-    for (var i = 0; i < els.length; i++) {
  10.571-        var nodes = els[i].getElementsByClassName("linewraplink");
  10.572-
  10.573-        for (var j = 0; j < nodes.length; j++) {
  10.574-            nodes[j].addEventListener("click", toggleLinewrap, false);
  10.575-        }
  10.576-    }
  10.577-}
  10.578-
  10.579-document.addEventListener('DOMContentLoaded', function() {
  10.580-   process_dates();
  10.581-   addDiffStatToggle();
  10.582-   addLineWrapToggle();
  10.583-}, false);
    11.1--- a/static/style.css	Sun Jul 21 21:01:03 2024 -0400
    11.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3@@ -1,128 +0,0 @@
    11.4-body { background-color: #232220; color: antiquewhite; }
    11.5-h2 { font-family: mono; }
    11.6-
    11.7-a { text-decoration:none; color: #2B944B; font-weight: bold; }
    11.8-a:visited { color: chocolate; }
    11.9-a:hover { color: #E7600E; text-decoration:underline overline; }
   11.10-.age { white-space:nowrap; color: #87606C;}
   11.11-.date { white-space:nowrap; color: #232436; font-weight: bold;}
   11.12-.indexlinks { white-space:nowrap; }
   11.13-.parity0 { background-color: antiquewhite; color: #111111; font-family: mono; }
   11.14-.parity1 { background-color: antiquewhite; color: #111111; font-family: mono;}
   11.15-.lineno { width: 60px; color: black; font-size: x-small;
   11.16-          text-align: left;
   11.17-	  display: inline-table; }
   11.18-.author { color: #9470FF; }
   11.19-.plusline { color: green; }
   11.20-.minusline { color: red; }
   11.21-.atline { color: purple; }
   11.22-.annotate { font-size: smaller; text-align: right; padding-right: 1em; }
   11.23-tr.thisrev a { color:#999999; text-decoration: none; text-style: oblique; }
   11.24-tr.thisrev pre { color:#009900; }
   11.25-td.annotate {
   11.26-  white-space: nowrap;
   11.27-}
   11.28-div.annotate-info {
   11.29-  display: none;
   11.30-  position: absolute;
   11.31-  background-color: #FFFFFF;
   11.32-  border: 1px solid #888;
   11.33-  text-align: left;
   11.34-  color: #000000;
   11.35-  padding: 5px;
   11.36-}
   11.37-div.annotate-info a { color: #0000FF; }
   11.38-td.annotate:hover div.annotate-info { display: inline; }
   11.39-div.buttons { background-color: black; padding: 10px; }
   11.40-.buttons a {
   11.41-  background-color: #D64F53;
   11.42-  padding: 2pt;
   11.43-  color: wheat;
   11.44-  font-family: mono;
   11.45-  font-weight: bold;
   11.46-  
   11.47-}
   11.48-.navigate a {
   11.49-  background-color: #ccc;
   11.50-  padding: 2pt;
   11.51-  font-family: mono;
   11.52-  color: black;
   11.53-}
   11.54-
   11.55-.metatag {
   11.56-  background-color: #000000;
   11.57-  color: #FFFF;
   11.58-  text-align: right;
   11.59-  font-weight: bolder;
   11.60-}
   11.61-
   11.62-/* Common */
   11.63-pre { margin: 0; }
   11.64-
   11.65-.logo {
   11.66-  bottom:0;
   11.67-  right:0;
   11.68-  position:fixed;
   11.69-}
   11.70-
   11.71-/* Changelog/Filelog entries */
   11.72-.logEntry { width: 100%; }
   11.73-.logEntry .age { width: 15%; }
   11.74-.logEntry th.label { width: 16em; }
   11.75-.logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
   11.76-.logEntry th.age, .logEntry th.firstline { font-weight: bold; }
   11.77-.logEntry th.firstline { text-align: left; width: inherit; }
   11.78-
   11.79-/* Shortlog entries */
   11.80-.slogEntry { width: 100%; }
   11.81-.slogEntry .age { width: 8em; font-style: italic; }
   11.82-.slogEntry td { text-align: left; vertical-align: top; }
   11.83-.slogEntry td.author { width: 15em; font-weight: bold;}
   11.84-
   11.85-/* Tag entries */
   11.86-#tagEntries { list-style: none; margin: 0; padding: 0; }
   11.87-#tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
   11.88-
   11.89-/* Changeset entry */
   11.90-#changesetEntry { }
   11.91-#changesetEntry th { font-weight: normal; background-color: #382738; color: #E8CEBD; text-align: right; }
   11.92-#changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
   11.93-
   11.94-/* File diff view */
   11.95-#filediffEntry { }
   11.96-#filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
   11.97-
   11.98-/* Graph */
   11.99-div#wrapper {
  11.100-	position: relative;
  11.101-	margin: 0;
  11.102-	padding: 0;
  11.103-}
  11.104-
  11.105-canvas {
  11.106-	position: absolute;
  11.107-	z-index: 5;
  11.108-	top: -0.6em;
  11.109-	margin: 0;
  11.110-}
  11.111-
  11.112-ul#graphnodes {
  11.113-	list-style: none inside none;
  11.114-	padding: 0;
  11.115-	margin: 0;
  11.116-}
  11.117-
  11.118-ul#graphnodes li {
  11.119-	height: 37px;
  11.120-	overflow: visible;
  11.121-	padding-top: 2px;
  11.122-}
  11.123-
  11.124-ul#graphnodes li .fg {
  11.125-	position: absolute;
  11.126-	z-index: 10;
  11.127-}
  11.128-
  11.129-ul#graphnodes li .info {
  11.130-	font-size: 70%;
  11.131-}
    13.1--- a/templates/atom/bookmarkentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    13.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3@@ -1,8 +0,0 @@
    13.4- <entry>
    13.5-  <title>{bookmark|escape}</title>
    13.6-  <link rel="alternate" href="{urlbase}{url|urlescape}rev/{node|short}"/>
    13.7-  <id>{urlbase}{url|urlescape}#bookmark-{node}</id>
    13.8-  <updated>{date|rfc3339date}</updated>
    13.9-  <published>{date|rfc3339date}</published>
   13.10-  <content type="text">{bookmark|strip|escape}</content>
   13.11- </entry>
    14.1--- a/templates/atom/bookmarks.tmpl	Sun Jul 21 21:01:03 2024 -0400
    14.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3@@ -1,11 +0,0 @@
    14.4-{header}
    14.5- <id>{urlbase}{url|urlescape}</id>
    14.6- <link rel="self" href="{urlbase}{url|urlescape}atom-bookmarks"/>
    14.7- <link rel="alternate" href="{urlbase}{url|urlescape}bookmarks"/>
    14.8- <title>{repo|escape}: bookmarks</title>
    14.9- <summary>{repo|escape} bookmark history</summary>
   14.10- <author><name>Mercurial SCM</name></author>
   14.11- {lastchange%feedupdated}
   14.12-
   14.13-{entries%bookmarkentry}
   14.14-</feed>
    15.1--- a/templates/atom/branchentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    15.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3@@ -1,8 +0,0 @@
    15.4- <entry>
    15.5-  <title>{branch|escape}</title>
    15.6-  <link rel="alternate" href="{urlbase}{url|urlescape}rev/{node|short}"/>
    15.7-  <id>{urlbase}{url|urlescape}#branch-{node}</id>
    15.8-  <updated>{date|rfc3339date}</updated>
    15.9-  <published>{date|rfc3339date}</published>
   15.10-  <content type="text">{branch|strip|escape}</content>
   15.11- </entry>
    16.1--- a/templates/atom/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
    16.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3@@ -1,11 +0,0 @@
    16.4-{header}
    16.5- <id>{urlbase}{url|urlescape}</id>
    16.6- <link rel="self" href="{urlbase}{url|urlescape}atom-branches"/>
    16.7- <link rel="alternate" href="{urlbase}{url|urlescape}branches"/>
    16.8- <title>{repo|escape}: branches</title>
    16.9- <summary>{repo|escape} branch history</summary>
   16.10- <author><name>Mercurial SCM</name></author>
   16.11- {latestentry%feedupdated}
   16.12-
   16.13- {entries%branchentry}
   16.14-</feed>
    17.1--- a/templates/atom/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    17.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3@@ -1,10 +0,0 @@
    17.4-{header}
    17.5- <!-- Changelog -->
    17.6- <id>{urlbase}{url|urlescape}</id>
    17.7- <link rel="self" href="{urlbase}{url|urlescape}atom-log"/>
    17.8- <link rel="alternate" href="{urlbase}{url|urlescape}"/>
    17.9- <title>{repo|escape} Changelog</title>
   17.10- {latestentry%feedupdated}
   17.11-
   17.12-{entries%changelogentry}
   17.13-</feed>
    18.1--- a/templates/atom/changelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    18.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3@@ -1,43 +0,0 @@
    18.4- <entry>
    18.5-  <title>{inbranch%"{if(name, '[{name|escape}] ')}"}{branches%"{if(name, '[{name|escape}] ')}"}{desc|strip|firstline|strip|escape|nonempty}</title>
    18.6-  <id>{urlbase}{url|urlescape}#changeset-{node}</id>
    18.7-  <link href="{urlbase}{url|urlescape}rev/{node|short}"/>
    18.8-  <author>
    18.9-   <name>{author|person|escape}</name>
   18.10-   <email>{author|email|obfuscate}</email>
   18.11-  </author>
   18.12-  <updated>{date|rfc3339date}</updated>
   18.13-  <published>{date|rfc3339date}</published>
   18.14-  <content type="xhtml">
   18.15-   <table xmlns="http://www.w3.org/1999/xhtml">
   18.16-    <tr>
   18.17-     <th style="text-align:left;">changeset</th>
   18.18-     <td>{node|short}</td>
   18.19-    </tr>
   18.20-    <tr>
   18.21-     <th style="text-align:left;">branch</th>
   18.22-     <td>{inbranch%"{name|escape}"}{branches%"{name|escape}"}</td>
   18.23-    </tr>
   18.24-    <tr>
   18.25-     <th style="text-align:left;">bookmark</th>
   18.26-     <td>{bookmarks%"{name|escape}"}</td>
   18.27-    </tr>
   18.28-    <tr>
   18.29-     <th style="text-align:left;">tag</th>
   18.30-     <td>{tags%"{name|escape}"}</td>
   18.31-    </tr>
   18.32-    <tr>
   18.33-     <th style="text-align:left;">user</th>
   18.34-     <td>{author|obfuscate}</td>
   18.35-    </tr>
   18.36-    <tr>
   18.37-     <th style="text-align:left;vertical-align:top;">description</th>
   18.38-     <td>{desc|strip|escape|websub|addbreaks|nonempty}</td>
   18.39-    </tr>
   18.40-    <tr>
   18.41-     <th style="text-align:left;vertical-align:top;">files</th>
   18.42-     <td>{files}</td>
   18.43-    </tr>
   18.44-   </table>
   18.45-  </content>
   18.46- </entry>
    19.1--- a/templates/atom/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
    19.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3@@ -1,17 +0,0 @@
    19.4-{header}
    19.5- <!-- Error -->
    19.6- <id>{urlbase}{url|urlescape}</id>
    19.7- <link rel="self" href="{urlbase}{url|urlescape}atom-log"/>
    19.8- <link rel="alternate" href="{urlbase}{url|urlescape}"/>
    19.9- <title>Error</title>
   19.10- <updated>1970-01-01T00:00:00+00:00</updated>
   19.11- <entry>
   19.12-  <title>Error</title>
   19.13-  <id>https://mercurial-scm.org/#error</id>
   19.14-  <author>
   19.15-    <name>mercurial</name>
   19.16-  </author>
   19.17-  <updated>1970-01-01T00:00:00+00:00</updated>
   19.18-  <content type="text">{error|escape}</content>
   19.19- </entry>
   19.20-</feed>
    20.1--- a/templates/atom/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    20.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3@@ -1,8 +0,0 @@
    20.4-{header}
    20.5- <id>{urlbase}{url|urlescape}atom-log/tip/{file|escape}</id>
    20.6- <link rel="self" href="{urlbase}{url|urlescape}atom-log/tip/{file|urlescape}"/>
    20.7- <title>{repo|escape}: {file|escape} history</title>
    20.8- {latestentry%feedupdated}
    20.9-
   20.10-{entries%changelogentry}
   20.11-</feed>
    21.1--- a/templates/atom/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
    21.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3@@ -1,2 +0,0 @@
    21.4-<?xml version="1.0" encoding="{encoding}"?>
    21.5-<feed xmlns="http://www.w3.org/2005/Atom">
    21.6\ No newline at end of file
    22.1--- a/templates/atom/map	Sun Jul 21 21:01:03 2024 -0400
    22.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3@@ -1,18 +0,0 @@
    22.4-default = 'changelog'
    22.5-feedupdated = '<updated>{date|rfc3339date}</updated>'
    22.6-mimetype = 'application/atom+xml; charset={encoding}'
    22.7-header = header.tmpl
    22.8-changelog = changelog.tmpl
    22.9-changelogentry = changelogentry.tmpl
   22.10-filelog = filelog.tmpl
   22.11-tags = tags.tmpl
   22.12-tagentry = tagentry.tmpl
   22.13-bookmarks = bookmarks.tmpl
   22.14-bookmarkentry = bookmarkentry.tmpl
   22.15-branches = branches.tmpl
   22.16-branchentry = branchentry.tmpl
   22.17-error = error.tmpl
   22.18-filedifflink = '{file|escape}<br />'
   22.19-fileellipses = '{file|escape}<br />'
   22.20-filenodelink = '{file|escape}<br />'
   22.21-filenolink = '{file|escape}<br />'
    23.1--- a/templates/atom/tagentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    23.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.3@@ -1,8 +0,0 @@
    23.4- <entry>
    23.5-  <title>{tag|escape}</title>
    23.6-  <link rel="alternate" href="{urlbase}{url|urlescape}rev/{node|short}"/>
    23.7-  <id>{urlbase}{url|urlescape}#tag-{node}</id>
    23.8-  <updated>{date|rfc3339date}</updated>
    23.9-  <published>{date|rfc3339date}</published>
   23.10-  <content type="text">{tag|strip|escape}</content>
   23.11- </entry>
    24.1--- a/templates/atom/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
    24.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3@@ -1,11 +0,0 @@
    24.4-{header}
    24.5- <id>{urlbase}{url|urlescape}</id>
    24.6- <link rel="self" href="{urlbase}{url|urlescape}atom-tags"/>
    24.7- <link rel="alternate" href="{urlbase}{url|urlescape}tags"/>
    24.8- <title>{repo|escape}: tags</title>
    24.9- <summary>{repo|escape} tag history</summary>
   24.10- <author><name>Mercurial SCM</name></author>
   24.11- {latestentry%feedupdated}
   24.12-
   24.13-{entriesnotip%tagentry}
   24.14-</feed>
    26.1--- a/templates/coal/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
    26.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3@@ -1,8 +0,0 @@
    26.4-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    26.5-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
    26.6-<head>
    26.7-<link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png" />
    26.8-<meta name="robots" content="index, nofollow" />
    26.9-<link rel="stylesheet" href="{staticurl|urlescape}style-paper.css" type="text/css" />
   26.10-<link rel="stylesheet" href="{staticurl|urlescape}style-extra-coal.css" type="text/css" />
   26.11-<script type="text/javascript" src="{staticurl|urlescape}mercurial.js"></script>
    27.1--- a/templates/coal/map	Sun Jul 21 21:01:03 2024 -0400
    27.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3@@ -1,2 +0,0 @@
    27.4-__base__ = ../paper/map
    27.5-header = header.tmpl
    29.1--- a/templates/gitweb/bookmarks.tmpl	Sun Jul 21 21:01:03 2024 -0400
    29.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.3@@ -1,35 +0,0 @@
    29.4-{header}
    29.5-<title>{repo|escape}: Bookmarks</title>
    29.6-<link rel="alternate" type="application/atom+xml"
    29.7-   href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks"/>
    29.8-<link rel="alternate" type="application/rss+xml"
    29.9-   href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks"/>
   29.10-</head>
   29.11-<body>
   29.12-
   29.13-<div class="page_header">
   29.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   29.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / bookmarks
   29.16-</div>
   29.17-
   29.18-<div class="page_nav">
   29.19-<div>
   29.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   29.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   29.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   29.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   29.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   29.25-bookmarks |
   29.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   29.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   29.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   29.29-</div>
   29.30-{searchform}
   29.31-</div>
   29.32-
   29.33-<div class="title">&nbsp;</div>
   29.34-<table cellspacing="0">
   29.35-{entries%bookmarkentry}
   29.36-</table>
   29.37-
   29.38-{footer}
    30.1--- a/templates/gitweb/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
    30.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.3@@ -1,35 +0,0 @@
    30.4-{header}
    30.5-<title>{repo|escape}: Branches</title>
    30.6-<link rel="alternate" type="application/atom+xml"
    30.7-   href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches"/>
    30.8-<link rel="alternate" type="application/rss+xml"
    30.9-   href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches"/>
   30.10-</head>
   30.11-<body>
   30.12-
   30.13-<div class="page_header">
   30.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   30.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / branches
   30.16-</div>
   30.17-
   30.18-<div class="page_nav">
   30.19-<div>
   30.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   30.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   30.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   30.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   30.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   30.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   30.26-branches |
   30.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   30.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   30.29-</div>
   30.30-{searchform}
   30.31-</div>
   30.32-
   30.33-<div class="title">&nbsp;</div>
   30.34-<table cellspacing="0">
   30.35-{entries%branchentry}
   30.36-</table>
   30.37-
   30.38-{footer}
    31.1--- a/templates/gitweb/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    31.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.3@@ -1,38 +0,0 @@
    31.4-{header}
    31.5-<title>{repo|escape}: Changelog</title>
    31.6-<link rel="alternate" type="application/atom+xml"
    31.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    31.8-<link rel="alternate" type="application/rss+xml"
    31.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   31.10-</head>
   31.11-<body>
   31.12-
   31.13-<div class="page_header">
   31.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   31.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog
   31.16-</div>
   31.17-
   31.18-<div class="page_nav">
   31.19-<div>
   31.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   31.21-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> |
   31.22-changelog |
   31.23-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> |
   31.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   31.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   31.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   31.27-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
   31.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   31.29-<br/>
   31.30-{changenav%nav}<br/>
   31.31-</div>
   31.32-{searchform}
   31.33-</div>
   31.34-
   31.35-{entries%changelogentry}
   31.36-
   31.37-<div class="extra_nav">
   31.38-{changenav%nav}<br/>
   31.39-</div>
   31.40-
   31.41-{footer}
    32.1--- a/templates/gitweb/changelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    32.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.3@@ -1,16 +0,0 @@
    32.4-<div>
    32.5- <a class="title" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
    32.6-  <span class="age">{date|rfc822date}</span>
    32.7-  {desc|strip|firstline|escape|nonempty}
    32.8-  {alltags}
    32.9- </a>
   32.10-</div>
   32.11-<div class="title_text">
   32.12-<div class="log_link">
   32.13-<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/>
   32.14-</div>
   32.15-<i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/>
   32.16-</div>
   32.17-<div class="log_body description">{desc|strip|escape|websub|nonempty}
   32.18-
   32.19-</div>
    33.1--- a/templates/gitweb/changeset.tmpl	Sun Jul 21 21:01:03 2024 -0400
    33.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.3@@ -1,62 +0,0 @@
    33.4-{header}
    33.5-<title>{repo|escape}: changeset {rev}:{node|short}</title>
    33.6-<link rel="alternate" type="application/atom+xml"
    33.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    33.8-<link rel="alternate" type="application/rss+xml"
    33.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   33.10-</head>
   33.11-<body>
   33.12-
   33.13-<div class="page_header">
   33.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   33.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset
   33.16-</div>
   33.17-
   33.18-<div class="page_nav">
   33.19-<div>
   33.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   33.21-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> |
   33.22-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> |
   33.23-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> |
   33.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   33.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   33.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   33.27-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a> |
   33.28-changeset |
   33.29-<a href="{url|urlescape}raw-rev/{symrev}">raw</a> {archives%archiveentry} |
   33.30-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   33.31-</div>
   33.32-{searchform}
   33.33-</div>
   33.34-
   33.35-<div>
   33.36- <a class="title" href="{url|urlescape}raw-rev/{node|short}">
   33.37-  {desc|strip|escape|firstline|nonempty}
   33.38-  {alltags}
   33.39- </a>
   33.40-</div>
   33.41-<div class="title_text">
   33.42-<table cellspacing="0">
   33.43-<tr><td>author</td><td>{author|obfuscate}</td></tr>
   33.44-<tr><td></td><td class="date age">{date|rfc822date}</td></tr>
   33.45-{branch%changesetbranch}
   33.46-<tr>
   33.47- <td>changeset {rev}</td>
   33.48- <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
   33.49-</tr>
   33.50-{if(obsolete, succsandmarkers%obsfateentry)}
   33.51-{if(instabilities, whyunstable%whyunstableentry)}
   33.52-{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}
   33.53-{child%changesetchild}
   33.54-</table></div>
   33.55-
   33.56-<div class="page_body description">{desc|strip|escape|websub|nonempty}</div>
   33.57-<div class="list_head"></div>
   33.58-<div class="title_text">
   33.59-<table cellspacing="0">
   33.60-{files}
   33.61-</table></div>
   33.62-
   33.63-<div class="page_body diffblocks">{diff}</div>
   33.64-
   33.65-{footer}
    34.1--- a/templates/gitweb/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
    34.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.3@@ -1,37 +0,0 @@
    34.4-{header}
    34.5-<title>{repo|escape}: Error</title>
    34.6-<link rel="alternate" type="application/atom+xml"
    34.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    34.8-<link rel="alternate" type="application/rss+xml"
    34.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   34.10-</head>
   34.11-<body>
   34.12-
   34.13-<div class="page_header">
   34.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   34.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / error
   34.16-</div>
   34.17-
   34.18-<div class="page_nav">
   34.19-<div>
   34.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   34.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   34.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   34.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   34.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   34.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   34.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   34.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   34.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   34.29-</div>
   34.30-{searchform}
   34.31-</div>
   34.32-
   34.33-<div class="page_body">
   34.34-<br/>
   34.35-<i>An error occurred while processing your request</i><br/>
   34.36-<br/>
   34.37-{error|escape}
   34.38-</div>
   34.39-
   34.40-{footer}
    35.1--- a/templates/gitweb/fileannotate.tmpl	Sun Jul 21 21:01:03 2024 -0400
    35.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.3@@ -1,85 +0,0 @@
    35.4-{header}
    35.5-<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
    35.6-<link rel="alternate" type="application/atom+xml"
    35.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    35.8-<link rel="alternate" type="application/rss+xml"
    35.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   35.10-</head>
   35.11-<body>
   35.12-
   35.13-<div class="page_header">
   35.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   35.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate
   35.16-</div>
   35.17-
   35.18-<div class="page_nav">
   35.19-<div>
   35.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   35.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   35.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   35.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   35.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   35.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   35.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   35.27-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
   35.28-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> |
   35.29-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   35.30-<a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
   35.31-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   35.32-annotate |
   35.33-<a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   35.34-<a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   35.35-<a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a> |
   35.36-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   35.37-</div>
   35.38-{searchform}
   35.39-</div>
   35.40-
   35.41-<div class="title">{file|escape}</div>
   35.42-
   35.43-<div class="title_text">
   35.44-<table cellspacing="0">
   35.45-<tr>
   35.46- <td>author</td>
   35.47- <td>{author|obfuscate}</td>
   35.48-</tr>
   35.49-<tr>
   35.50- <td></td>
   35.51- <td class="date age">{date|rfc822date}</td>
   35.52-</tr>
   35.53-{branch%filerevbranch}
   35.54-<tr>
   35.55- <td>changeset {rev}</td>
   35.56- <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
   35.57-</tr>
   35.58-{parent%fileannotateparent}
   35.59-{child%fileannotatechild}
   35.60-<tr>
   35.61- <td>permissions</td>
   35.62- <td style="font-family:monospace">{permissions|permissions}</td>
   35.63-</tr>
   35.64-</table>
   35.65-</div>
   35.66-
   35.67-<div class="page_path description">{desc|strip|escape|websub|nonempty}</div>
   35.68-
   35.69-{diffoptsform}
   35.70-
   35.71-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   35.72-    renderDiffOptsForm();
   35.73-</script>
   35.74-
   35.75-<div class="page_body">
   35.76-<table>
   35.77-<tbody class="sourcelines"
   35.78-       data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}"
   35.79-       data-selectabletag="TR"
   35.80-       data-ishead="{ishead}">
   35.81-{annotate%annotateline}
   35.82-</tbody>
   35.83-</table>
   35.84-</div>
   35.85-
   35.86-<script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script>
   35.87-
   35.88-{footer}
    36.1--- a/templates/gitweb/filecomparison.tmpl	Sun Jul 21 21:01:03 2024 -0400
    36.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.3@@ -1,75 +0,0 @@
    36.4-{header}
    36.5-<title>{repo|escape}: comparison {file|escape}</title>
    36.6-<link rel="alternate" type="application/atom+xml"
    36.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    36.8-<link rel="alternate" type="application/rss+xml"
    36.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   36.10-</head>
   36.11-<body>
   36.12-
   36.13-<div class="page_header">
   36.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   36.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / comparison
   36.16-</div>
   36.17-
   36.18-<div class="page_nav">
   36.19-<div>
   36.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   36.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   36.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   36.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   36.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   36.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   36.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   36.27-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
   36.28-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> |
   36.29-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   36.30-<a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
   36.31-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   36.32-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   36.33-<a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   36.34-comparison |
   36.35-<a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a> |
   36.36-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   36.37-</div>
   36.38-{searchform}
   36.39-</div>
   36.40-
   36.41-<div class="title">{file|escape}</div>
   36.42-
   36.43-<table>
   36.44-{branch%filerevbranch}
   36.45-<tr>
   36.46- <td>changeset {rev}</td>
   36.47- <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
   36.48-</tr>
   36.49-{parent%filecompparent}
   36.50-{child%filecompchild}
   36.51-</table>
   36.52-
   36.53-<div class="list_head"></div>
   36.54-
   36.55-<div class="page_body">
   36.56-
   36.57-<div class="legend">
   36.58-  <span class="legendinfo equal">equal</span>
   36.59-  <span class="legendinfo delete">deleted</span>
   36.60-  <span class="legendinfo insert">inserted</span>
   36.61-  <span class="legendinfo replace">replaced</span>
   36.62-</div>
   36.63-
   36.64-<div class="comparison">
   36.65-  <table style="border-collapse:collapse;">
   36.66-    <thead class="header">
   36.67-      <tr>
   36.68-        <th>{leftrev}:{leftnode|short}</th>
   36.69-        <th>{rightrev}:{rightnode|short}</th>
   36.70-      </tr>
   36.71-    </thead>
   36.72-    {comparison}
   36.73-  </table>
   36.74-</div>
   36.75-
   36.76-</div>
   36.77-
   36.78-{footer}
    37.1--- a/templates/gitweb/filediff.tmpl	Sun Jul 21 21:01:03 2024 -0400
    37.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.3@@ -1,56 +0,0 @@
    37.4-{header}
    37.5-<title>{repo|escape}: diff {file|escape}</title>
    37.6-<link rel="alternate" type="application/atom+xml"
    37.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    37.8-<link rel="alternate" type="application/rss+xml"
    37.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   37.10-</head>
   37.11-<body>
   37.12-
   37.13-<div class="page_header">
   37.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   37.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / diff
   37.16-</div>
   37.17-
   37.18-<div class="page_nav">
   37.19-<div>
   37.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   37.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   37.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   37.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   37.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   37.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   37.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   37.27-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
   37.28-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> |
   37.29-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   37.30-<a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
   37.31-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   37.32-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   37.33-diff |
   37.34-<a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   37.35-<a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a> |
   37.36-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   37.37-</div>
   37.38-{searchform}
   37.39-</div>
   37.40-
   37.41-<div class="title">{file|escape}</div>
   37.42-
   37.43-<table>
   37.44-{branch%filerevbranch}
   37.45-<tr>
   37.46- <td>changeset {rev}</td>
   37.47- <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
   37.48-</tr>
   37.49-{parent%filediffparent}
   37.50-{child%filediffchild}
   37.51-</table>
   37.52-
   37.53-<div class="list_head"></div>
   37.54-
   37.55-<div class="page_body">
   37.56-{diff}
   37.57-</div>
   37.58-
   37.59-{footer}
    38.1--- a/templates/gitweb/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    38.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3@@ -1,52 +0,0 @@
    38.4-{header}
    38.5-<title>{repo|escape}: File revisions</title>
    38.6-<link rel="alternate" type="application/atom+xml"
    38.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    38.8-<link rel="alternate" type="application/rss+xml"
    38.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   38.10-</head>
   38.11-<body>
   38.12-
   38.13-<div class="page_header">
   38.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   38.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / file revisions
   38.16-</div>
   38.17-
   38.18-<div class="page_nav">
   38.19-<div>
   38.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   38.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   38.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   38.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   38.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   38.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   38.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   38.27-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   38.28-revisions |
   38.29-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   38.30-<a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   38.31-<a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   38.32-<a href="{url|urlescape}rss-log/tip/{file|urlescape}">rss</a> |
   38.33-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   38.34-<br/>
   38.35-{nav%filenav}
   38.36-</div>
   38.37-{searchform}
   38.38-</div>
   38.39-
   38.40-<div class="title" >
   38.41-  {file|urlescape}{if(linerange,
   38.42-' (following lines {linerange}{if(descend, ', descending')} <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">all revisions for this file</a>)')}
   38.43-</div>
   38.44-
   38.45-<table>
   38.46-{entries%filelogentry}
   38.47-</table>
   38.48-
   38.49-<div class="extra_nav">
   38.50-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a>
   38.51-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a>
   38.52-{nav%filenav}
   38.53-</div>
   38.54-
   38.55-{footer}
    39.1--- a/templates/gitweb/filerevision.tmpl	Sun Jul 21 21:01:03 2024 -0400
    39.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.3@@ -1,77 +0,0 @@
    39.4-{header}
    39.5-<title>{repo|escape}: {file|escape}@{node|short}</title>
    39.6-<link rel="alternate" type="application/atom+xml"
    39.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    39.8-<link rel="alternate" type="application/rss+xml"
    39.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   39.10-</head>
   39.11-<body>
   39.12-
   39.13-<div class="page_header">
   39.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   39.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / file revision
   39.16-</div>
   39.17-
   39.18-<div class="page_nav">
   39.19-<div>
   39.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   39.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   39.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   39.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   39.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   39.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   39.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   39.27-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
   39.28-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> |
   39.29-file |
   39.30-<a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
   39.31-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   39.32-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   39.33-<a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   39.34-<a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   39.35-<a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a> |
   39.36-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   39.37-</div>
   39.38-{searchform}
   39.39-</div>
   39.40-
   39.41-<div class="title">{file|escape}</div>
   39.42-
   39.43-<div class="title_text">
   39.44-<table cellspacing="0">
   39.45-<tr>
   39.46- <td>author</td>
   39.47- <td>{author|obfuscate}</td>
   39.48-</tr>
   39.49-<tr>
   39.50- <td></td>
   39.51- <td class="date age">{date|rfc822date}</td>
   39.52-</tr>
   39.53-{branch%filerevbranch}
   39.54-<tr>
   39.55- <td>changeset {rev}</td>
   39.56- <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
   39.57-</tr>
   39.58-{parent%filerevparent}
   39.59-{child%filerevchild}
   39.60-<tr>
   39.61- <td>permissions</td>
   39.62- <td style="font-family:monospace">{permissions|permissions}</td>
   39.63-</tr>
   39.64-</table>
   39.65-</div>
   39.66-
   39.67-<div class="page_path description">{desc|strip|escape|websub|nonempty}</div>
   39.68-
   39.69-<div class="page_body">
   39.70-<pre class="sourcelines stripes"
   39.71-     data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}"
   39.72-     data-selectabletag="SPAN"
   39.73-     data-ishead="{ishead}">
   39.74-{text%fileline}
   39.75-</pre>
   39.76-</div>
   39.77-
   39.78-<script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script>
   39.79-
   39.80-{footer}
    40.1--- a/templates/gitweb/footer.tmpl	Sun Jul 21 21:01:03 2024 -0400
    40.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.3@@ -1,11 +0,0 @@
    40.4-<div class="page_footer">
    40.5-<div class="page_footer_text">{repo|escape}</div>
    40.6-<div class="rss_logo">
    40.7-<a href="{url|urlescape}rss-log">RSS</a>
    40.8-<a href="{url|urlescape}atom-log">Atom</a>
    40.9-</div>
   40.10-<br />
   40.11-{motd}
   40.12-</div>
   40.13-</body>
   40.14-</html>
    41.1--- a/templates/gitweb/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
    41.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.3@@ -1,70 +0,0 @@
    41.4-{header}
    41.5-<title>{repo|escape}: Graph</title>
    41.6-<link rel="alternate" type="application/atom+xml"
    41.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    41.8-<link rel="alternate" type="application/rss+xml"
    41.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   41.10-</head>
   41.11-<body>
   41.12-
   41.13-<div class="page_header">
   41.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   41.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / graph
   41.16-</div>
   41.17-
   41.18-<div class="page_nav">
   41.19-<div>
   41.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   41.21-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> |
   41.22-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> |
   41.23-graph |
   41.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   41.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   41.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   41.27-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
   41.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   41.29-<br/>
   41.30-<a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
   41.31-<a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
   41.32-| {changenav%navgraph}
   41.33-</div>
   41.34-{searchform}
   41.35-</div>
   41.36-
   41.37-<div class="title">&nbsp;</div>
   41.38-
   41.39-<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
   41.40-
   41.41-<div id="wrapper">
   41.42-<canvas id="graph"></canvas>
   41.43-<ul id="graphnodes">{nodes%graphentry}</ul>
   41.44-</div>
   41.45-
   41.46-<script{if(nonce, ' nonce="{nonce}"')}>
   41.47-var data = {jsdata|json};
   41.48-var graph = new Graph();
   41.49-graph.scale({bg_height});
   41.50-graph.render(data);
   41.51-</script>
   41.52-
   41.53-<div class="extra_nav">
   41.54-<a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
   41.55-<a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
   41.56-| {changenav%navgraph}
   41.57-</div>
   41.58-
   41.59-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   41.60-    ajaxScrollInit(
   41.61-            '{url|urlescape}graph/%next%{graphvars%urlparameter}',
   41.62-            '{nextentry%"{node}"}', <!-- NEXTHASH
   41.63-            function (htmlText) \{
   41.64-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
   41.65-                return m ? m[1] : null;
   41.66-            },
   41.67-            '#wrapper',
   41.68-            '<div class="%class%" style="text-align: center;">%text%</div>',
   41.69-            'graph'
   41.70-    );
   41.71-</script>
   41.72-
   41.73-{footer}
    42.1--- a/templates/gitweb/graphentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    42.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.3@@ -1,9 +0,0 @@
    42.4-<li class="parity{parity}" data-node="{node|short}">
    42.5- <div class="fg">
    42.6-  <span class="desc">
    42.7-   <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"><b>{desc|strip|firstline|escape|nonempty}</b></a>
    42.8-  </span>
    42.9-  {alltags}
   42.10-  <div class="info">{date|age}, by {author|person}</div>
   42.11- </div>
   42.12-</li>
    43.1--- a/templates/gitweb/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
    43.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.3@@ -1,8 +0,0 @@
    43.4-<?xml version="1.0" encoding="{encoding}"?>
    43.5-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    43.6-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
    43.7-<head>
    43.8-<link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png" />
    43.9-<meta name="robots" content="index, nofollow"/>
   43.10-<link rel="stylesheet" href="{staticurl|urlescape}style-gitweb.css" type="text/css" />
   43.11-<script type="text/javascript" src="{staticurl|urlescape}mercurial.js"></script>
    44.1--- a/templates/gitweb/help.tmpl	Sun Jul 21 21:01:03 2024 -0400
    44.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.3@@ -1,36 +0,0 @@
    44.4-{header}
    44.5-<title>Help: {topic}</title>
    44.6-<link rel="alternate" type="application/atom+xml"
    44.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    44.8-<link rel="alternate" type="application/rss+xml"
    44.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   44.10-</head>
   44.11-<body>
   44.12-
   44.13-<div class="page_header">
   44.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   44.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / help
   44.16-</div>
   44.17-
   44.18-<div class="page_nav">
   44.19-<div>
   44.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   44.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   44.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   44.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   44.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   44.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   44.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   44.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   44.28-help
   44.29-</div>
   44.30-{searchform}
   44.31-</div>
   44.32-
   44.33-<div class="title">&nbsp;</div>
   44.34-
   44.35-<div id="doc">
   44.36-{rstdoc(doc, "html")}
   44.37-</div>
   44.38-
   44.39-{footer}
    45.1--- a/templates/gitweb/helptopics.tmpl	Sun Jul 21 21:01:03 2024 -0400
    45.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.3@@ -1,50 +0,0 @@
    45.4-{header}
    45.5-<title>Help: {title}</title>
    45.6-<link rel="alternate" type="application/atom+xml"
    45.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    45.8-<link rel="alternate" type="application/rss+xml"
    45.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   45.10-</head>
   45.11-<body>
   45.12-
   45.13-<div class="page_header">
   45.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   45.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / help
   45.16-</div>
   45.17-
   45.18-<div class="page_nav">
   45.19-<div>
   45.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   45.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   45.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   45.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   45.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   45.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   45.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   45.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   45.28-{if(subindex,
   45.29-  '<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>',
   45.30-  'help'
   45.31-)}
   45.32-</div>
   45.33-{searchform}
   45.34-</div>
   45.35-
   45.36-<div class="title">&nbsp;</div>
   45.37-<table cellspacing="0">
   45.38-<tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
   45.39-{topics % helpentry}
   45.40-
   45.41-{if(earlycommands, '
   45.42-<tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
   45.43-{earlycommands % helpentry}
   45.44-')}
   45.45-
   45.46-{if(othercommands, '
   45.47-<tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
   45.48-{othercommands % helpentry}
   45.49-')}
   45.50-
   45.51-</table>
   45.52-
   45.53-{footer}
    46.1--- a/templates/gitweb/index.tmpl	Sun Jul 21 21:01:03 2024 -0400
    46.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.3@@ -1,26 +0,0 @@
    46.4-{header}
    46.5-<title>Mercurial repositories index</title>
    46.6-</head>
    46.7-<body>
    46.8-
    46.9-<div class="page_header">
   46.10-    <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   46.11-    <a href="/">Mercurial</a> {pathdef%breadcrumb}
   46.12-</div>
   46.13-
   46.14-<table cellspacing="0">
   46.15-    <tr>
   46.16-        <td><a href="?sort={sort_name}">Name</a></td>
   46.17-        <td><a href="?sort={sort_description}">Description</a></td>
   46.18-        <td><a href="?sort={sort_contact}">Contact</a></td>
   46.19-        <td><a href="?sort={sort_lastchange}">Last modified</a></td>
   46.20-        <td>&nbsp;</td>
   46.21-        <td>&nbsp;</td>
   46.22-    </tr>
   46.23-    {entries%indexentry}
   46.24-</table>
   46.25-<div class="page_footer">
   46.26-{motd}
   46.27-</div>
   46.28-</body>
   46.29-</html>
    47.1--- a/templates/gitweb/manifest.tmpl	Sun Jul 21 21:01:03 2024 -0400
    47.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.3@@ -1,38 +0,0 @@
    47.4-{header}
    47.5-<title>{repo|escape}: files</title>
    47.6-<link rel="alternate" type="application/atom+xml"
    47.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    47.8-<link rel="alternate" type="application/rss+xml"
    47.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   47.10-</head>
   47.11-<body>
   47.12-
   47.13-<div class="page_header">
   47.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   47.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / files
   47.16-</div>
   47.17-
   47.18-<div class="page_nav">
   47.19-<div>
   47.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   47.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   47.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   47.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   47.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   47.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   47.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   47.27-files |
   47.28-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
   47.29-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   47.30-</div>
   47.31-{searchform}
   47.32-</div>
   47.33-
   47.34-<div class="title">{path|escape} {alltags}</div>
   47.35-<table cellspacing="0">
   47.36-{ifeq(path, up, '', updirentry)}
   47.37-{dentries%direntry}
   47.38-{fentries%fileentry}
   47.39-</table>
   47.40-
   47.41-{footer}
    48.1--- a/templates/gitweb/map	Sun Jul 21 21:01:03 2024 -0400
    48.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.3@@ -1,383 +0,0 @@
    48.4-default = 'summary'
    48.5-mimetype = 'text/html; charset={encoding}'
    48.6-header = header.tmpl
    48.7-footer = footer.tmpl
    48.8-search = search.tmpl
    48.9-changelog = changelog.tmpl
   48.10-summary = summary.tmpl
   48.11-error = error.tmpl
   48.12-notfound = notfound.tmpl
   48.13-
   48.14-help = help.tmpl
   48.15-helptopics = helptopics.tmpl
   48.16-
   48.17-helpentry = '
   48.18-  <tr><td>
   48.19-    <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
   48.20-      {if(basename, '{basename|escape}', '{topic|escape}')}
   48.21-    </a>
   48.22-  </td><td>
   48.23-    {summary|escape}
   48.24-  </td></tr>'
   48.25-
   48.26-naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   48.27-navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   48.28-navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   48.29-filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
   48.30-filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
   48.31-filenodelink = '
   48.32-  <tr class="parity{parity}">
   48.33-    <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
   48.34-    <td></td>
   48.35-    <td class="link">
   48.36-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   48.37-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   48.38-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   48.39-      <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   48.40-      <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
   48.41-    </td>
   48.42-  </tr>'
   48.43-filenolink = '
   48.44-  <tr class="parity{parity}">
   48.45-    <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
   48.46-    <td></td>
   48.47-    <td class="link">
   48.48-      file |
   48.49-      annotate |
   48.50-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   48.51-      <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   48.52-      <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
   48.53-    </td>
   48.54-  </tr>'
   48.55-
   48.56-nav = '{before%naventry} {after%naventry}'
   48.57-navshort = '{before%navshortentry}{after%navshortentry}'
   48.58-navgraph = '{before%navgraphentry}{after%navgraphentry}'
   48.59-filenav = '{before%filenaventry}{after%filenaventry}'
   48.60-
   48.61-fileellipses = '...'
   48.62-changelogentry = changelogentry.tmpl
   48.63-changeset = changeset.tmpl
   48.64-manifest = manifest.tmpl
   48.65-updirentry = '
   48.66-  <tr class="parity{upparity}">
   48.67-    <td style="font-family:monospace">drwxr-xr-x</td>
   48.68-    <td style="font-family:monospace"></td>
   48.69-    <td style="font-family:monospace"></td>
   48.70-    <td>
   48.71-      <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
   48.72-    </td>
   48.73-    <td class="link">&nbsp;</td>
   48.74-  </tr>'
   48.75-direntry = '
   48.76-  <tr class="parity{parity}">
   48.77-    <td style="font-family:monospace">drwxr-xr-x</td>
   48.78-    <td style="font-family:monospace"></td>
   48.79-    <td style="font-family:monospace"></td>
   48.80-    <td>
   48.81-      <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
   48.82-      <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
   48.83-    </td>
   48.84-    <td class="link">
   48.85-      <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
   48.86-    </td>
   48.87-  </tr>'
   48.88-fileentry = '
   48.89-  <tr class="parity{parity}">
   48.90-    <td style="font-family:monospace">{permissions|permissions}</td>
   48.91-    <td style="font-family:monospace" align=right>{date|isodate}</td>
   48.92-    <td style="font-family:monospace" align=right>{size}</td>
   48.93-    <td class="list">
   48.94-      <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
   48.95-    </td>
   48.96-    <td class="link">
   48.97-      <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   48.98-      <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   48.99-      <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  48.100-    </td>
  48.101-  </tr>'
  48.102-filerevision = filerevision.tmpl
  48.103-fileannotate = fileannotate.tmpl
  48.104-filediff = filediff.tmpl
  48.105-filecomparison = filecomparison.tmpl
  48.106-filelog = filelog.tmpl
  48.107-fileline = '
  48.108-  <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
  48.109-annotateline = '
  48.110-  <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
  48.111-    <td class="annotate linenr parity{blockparity}" style="text-align: right;">
  48.112-      {if(blockhead,
  48.113-          '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  48.114-             {rev}
  48.115-           </a>')}
  48.116-      <div class="annotate-info">
  48.117-        <div>
  48.118-          <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  48.119-            {node|short}</a>
  48.120-          {desc|escape|firstline}
  48.121-        </div>
  48.122-        <div><em>{author|obfuscate}</em></div>
  48.123-        <div>parents: {parents%annotateparent}</div>
  48.124-        <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
  48.125-        <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
  48.126-      </div>
  48.127-    </td>
  48.128-    <td class="followlines-btn-parent"><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
  48.129-    <td><pre>{line|escape}</pre></td>
  48.130-  </tr>'
  48.131-annotateparent = '
  48.132-  <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
  48.133-difflineplus = '
  48.134-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
  48.135-difflineminus = '
  48.136-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
  48.137-difflineat = '
  48.138-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
  48.139-diffline = '
  48.140-  <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
  48.141-
  48.142-comparisonblock ='
  48.143-  <tbody class="block">
  48.144-  {lines}
  48.145-  </tbody>'
  48.146-comparisonline = '
  48.147-  <tr id="{lineid}" style="font-family:monospace">
  48.148-    <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
  48.149-    <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
  48.150-  </tr>'
  48.151-
  48.152-changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
  48.153-changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
  48.154-changesetparent = '
  48.155-  <tr>
  48.156-    <td>parent {rev}</td>
  48.157-    <td style="font-family:monospace">
  48.158-      {changesetlink}
  48.159-    </td>
  48.160-  </tr>'
  48.161-changesetparentdiff = '
  48.162-  <tr>
  48.163-    <td>parent {rev}</td>
  48.164-    <td style="font-family:monospace">
  48.165-      {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
  48.166-    </td>
  48.167-  </tr>'
  48.168-difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
  48.169-filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
  48.170-filerevparent = '
  48.171-  <tr>
  48.172-    <td>parent {rev}</td>
  48.173-    <td style="font-family:monospace">
  48.174-      <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  48.175-        {rename%filerename}{node|short}
  48.176-      </a>
  48.177-    </td>
  48.178-  </tr>'
  48.179-filerename = '{file|escape}@'
  48.180-filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
  48.181-fileannotateparent = '
  48.182-  <tr>
  48.183-    <td>parent {rev}</td>
  48.184-    <td style="font-family:monospace">
  48.185-      <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  48.186-        {rename%filerename}{node|short}
  48.187-      </a>
  48.188-    </td>
  48.189-  </tr>'
  48.190-changesetchild = '
  48.191-  <tr>
  48.192-    <td>child {rev}</td>
  48.193-    <td style="font-family:monospace">
  48.194-      <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
  48.195-    </td>
  48.196-  </tr>'
  48.197-filerevchild = '
  48.198-  <tr>
  48.199-    <td>child {rev}</td>
  48.200-    <td style="font-family:monospace">
  48.201-      <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
  48.202-    </tr>'
  48.203-fileannotatechild = '
  48.204-  <tr>
  48.205-    <td>child {rev}</td>
  48.206-    <td style="font-family:monospace">
  48.207-      <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
  48.208-    </tr>'
  48.209-tags = tags.tmpl
  48.210-tagentry = '
  48.211-  <tr class="parity{parity}">
  48.212-    <td class="age"><i class="age">{date|rfc822date}</i></td>
  48.213-    <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
  48.214-    <td class="link">
  48.215-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  48.216-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  48.217-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  48.218-    </td>
  48.219-  </tr>'
  48.220-bookmarks = bookmarks.tmpl
  48.221-bookmarkentry = '
  48.222-  <tr class="parity{parity}">
  48.223-    <td class="age"><i class="age">{date|rfc822date}</i></td>
  48.224-    <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
  48.225-    <td class="link">
  48.226-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  48.227-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  48.228-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  48.229-    </td>
  48.230-  </tr>'
  48.231-branches = branches.tmpl
  48.232-branchentry = '
  48.233-  <tr class="parity{parity}">
  48.234-    <td class="age"><i class="age">{date|rfc822date}</i></td>
  48.235-    <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
  48.236-    <td class="link">
  48.237-      <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
  48.238-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  48.239-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  48.240-    </td>
  48.241-  </tr>'
  48.242-diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
  48.243-filediffparent = '
  48.244-  <tr>
  48.245-    <td>parent {rev}</td>
  48.246-    <td style="font-family:monospace">
  48.247-      <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  48.248-        {node|short}
  48.249-      </a>
  48.250-    </td>
  48.251-  </tr>'
  48.252-filecompparent = '
  48.253-  <tr>
  48.254-    <td>parent {rev}</td>
  48.255-    <td style="font-family:monospace">
  48.256-      <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  48.257-        {node|short}
  48.258-      </a>
  48.259-    </td>
  48.260-  </tr>'
  48.261-filediffchild = '
  48.262-  <tr>
  48.263-    <td>child {rev}</td>
  48.264-    <td style="font-family:monospace">
  48.265-      <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
  48.266-    </td>
  48.267-  </tr>'
  48.268-filecompchild = '
  48.269-  <tr>
  48.270-    <td>child {rev}</td>
  48.271-    <td style="font-family:monospace">
  48.272-      <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
  48.273-    </td>
  48.274-  </tr>'
  48.275-shortlog = shortlog.tmpl
  48.276-graph = graph.tmpl
  48.277-graphentry = graphentry.tmpl
  48.278-phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}'
  48.279-obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}'
  48.280-instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> '
  48.281-tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
  48.282-branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
  48.283-inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
  48.284-bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
  48.285-alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>'
  48.286-successorlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
  48.287-obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
  48.288-obsfateverb = '{obsfateverb(successors, markers)}'
  48.289-obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
  48.290-obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
  48.291-obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
  48.292-obsfateentry = '
  48.293-  <tr>
  48.294-    <td>obsolete</td>
  48.295-    <td>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td>
  48.296-  </tr>'
  48.297-instabilitychangesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
  48.298-divergentnode = '{instabilitychangesetlink} ({phase})'
  48.299-whyunstableentry = '
  48.300-  <tr>
  48.301-    <td>unstable</td>
  48.302-    <td>{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</td>
  48.303-  </tr>'
  48.304-shortlogentry = '
  48.305-  <tr class="parity{parity}">
  48.306-    <td class="age"><i class="age">{date|rfc822date}</i></td>
  48.307-    <td><i>{author|person}</i></td>
  48.308-    <td>
  48.309-      <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
  48.310-        <b>{desc|strip|firstline|escape|nonempty}</b>
  48.311-        {alltags}
  48.312-      </a>
  48.313-    </td>
  48.314-    <td class="link" nowrap>
  48.315-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  48.316-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  48.317-    </td>
  48.318-  </tr>'
  48.319-filelogentry = '
  48.320-  <tr class="parity{if(patch, '1', '{parity}')}">
  48.321-    <td class="age"><i class="age">{date|rfc822date}</i></td>
  48.322-    <td><i>{author|person}</i></td>
  48.323-    <td>
  48.324-      <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
  48.325-        <b>{desc|strip|firstline|escape|nonempty}</b>
  48.326-        {alltags}
  48.327-      </a>
  48.328-    </td>
  48.329-    <td class="link">
  48.330-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
  48.331-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
  48.332-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  48.333-      {rename%filelogrename}
  48.334-    </td>
  48.335-  </tr>
  48.336-  {if(patch, '<tr><td colspan="4">{diff}</td></tr>')}'
  48.337-archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
  48.338-indexentry = '
  48.339-  <tr class="parity{parity}">
  48.340-    <td>
  48.341-      <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
  48.342-        <b>{name|escape}</b>
  48.343-      </a>
  48.344-    </td>
  48.345-    <td>{description}</td>
  48.346-    <td>{contact|obfuscate}</td>
  48.347-    <td class="age">{lastchange|rfc822date}</td>
  48.348-    <td class="indexlinks">{archives%indexarchiveentry}</td>
  48.349-    <td>{if(isdirectory, '',
  48.350-            '<div class="rss_logo">
  48.351-                <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
  48.352-            </div>'
  48.353-            )}
  48.354-    </td>
  48.355-  </tr>\n'
  48.356-indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
  48.357-index = index.tmpl
  48.358-urlparameter = '{separator}{name}={value|urlescape}'
  48.359-hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
  48.360-breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
  48.361-
  48.362-searchform = '
  48.363-  <div class="search">
  48.364-    <form id="searchform" action="{url|urlescape}log">
  48.365-      {sessionvars%hiddenformentry}
  48.366-      <input name="rev" type="text" value="{query|escape}" size="40" />
  48.367-      <div id="hint">{searchhint}</div>
  48.368-    </form>
  48.369-  </div>'
  48.370-searchhint = 'Find changesets by keywords (author, files, the commit message), revision
  48.371-  number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
  48.372-
  48.373-diffoptsform = '
  48.374-  <form id="diffopts-form"
  48.375-    data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}"
  48.376-    data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}"
  48.377-    data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}"
  48.378-    data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}">
  48.379-    <span>Ignore whitespace changes - </span>
  48.380-    <span>Everywhere:</span>
  48.381-    <input id="ignorews-checkbox" type="checkbox" />
  48.382-    <span>Within whitespace:</span>
  48.383-    <input id="ignorewsamount-checkbox" type="checkbox" />
  48.384-    <span>At end of lines:</span>
  48.385-    <input id="ignorewseol-checkbox" type="checkbox" />
  48.386-  </form>'
    49.1--- a/templates/gitweb/notfound.tmpl	Sun Jul 21 21:01:03 2024 -0400
    49.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.3@@ -1,18 +0,0 @@
    49.4-{header}
    49.5-<title>Mercurial repository not found</title>
    49.6-</head>
    49.7-
    49.8-<body>
    49.9-
   49.10-<div class="page_header">
   49.11-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape}
   49.12-</div>
   49.13-
   49.14-<div class="page_body">
   49.15-The specified repository "{repo|escape}" is unknown, sorry.
   49.16-<br/>
   49.17-<br/>
   49.18-Please go back to the <a href="{url|urlescape}">main repository list page</a>.
   49.19-</div>
   49.20-
   49.21-{footer}
    50.1--- a/templates/gitweb/search.tmpl	Sun Jul 21 21:01:03 2024 -0400
    50.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.3@@ -1,35 +0,0 @@
    50.4-{header}
    50.5-<title>{repo|escape}: Search</title>
    50.6-<link rel="alternate" type="application/atom+xml"
    50.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    50.8-<link rel="alternate" type="application/rss+xml"
    50.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   50.10-</head>
   50.11-<body>
   50.12-
   50.13-<div class="page_header">
   50.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   50.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / search
   50.16-</div>
   50.17-
   50.18-<div class="page_nav">
   50.19-<div>
   50.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   50.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   50.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   50.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   50.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   50.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   50.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   50.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>{archives%archiveentry}
   50.28- |
   50.29- <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   50.30-</div>
   50.31-{searchform}
   50.32-</div>
   50.33-
   50.34-<div class="title">searching for {query|escape}</div>
   50.35-
   50.36-{entries%changelogentry}
   50.37-
   50.38-{footer}
    51.1--- a/templates/gitweb/shortlog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    51.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.3@@ -1,55 +0,0 @@
    51.4-{header}
    51.5-<title>{repo|escape}: Shortlog</title>
    51.6-<link rel="alternate" type="application/atom+xml"
    51.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    51.8-<link rel="alternate" type="application/rss+xml"
    51.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   51.10-</head>
   51.11-<body>
   51.12-
   51.13-<div class="page_header">
   51.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   51.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / shortlog
   51.16-</div>
   51.17-
   51.18-<div class="page_nav">
   51.19-<div>
   51.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   51.21-shortlog |
   51.22-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> |
   51.23-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a> |
   51.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   51.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   51.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   51.27-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
   51.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   51.29-<br/>{changenav%navshort}<br/>
   51.30-</div>
   51.31-{searchform}
   51.32-</div>
   51.33-
   51.34-<div class="title">&nbsp;</div>
   51.35-<table class="shortlogtable" cellspacing="0">
   51.36-{entries%shortlogentry}
   51.37-</table>
   51.38-
   51.39-<div class="extra_nav">
   51.40-{changenav%navshort}
   51.41-</div>
   51.42-
   51.43-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   51.44-    ajaxScrollInit(
   51.45-            '{url|urlescape}shortlog/%next%{sessionvars%urlparameter}',
   51.46-            '{nextentry%"{node}"}', <!-- NEXTHASH
   51.47-            function (htmlText) \{
   51.48-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
   51.49-                return m ? m[1] : null;
   51.50-            },
   51.51-            '.shortlogtable > tbody:nth-of-type(1)',
   51.52-            '<tr class="%class%">\
   51.53-            <td colspan="4" style="text-align: center;">%text%</td>\
   51.54-            </tr>'
   51.55-    );
   51.56-</script>
   51.57-
   51.58-{footer}
    52.1--- a/templates/gitweb/summary.tmpl	Sun Jul 21 21:01:03 2024 -0400
    52.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.3@@ -1,62 +0,0 @@
    52.4-{header}
    52.5-<title>{repo|escape}: Summary</title>
    52.6-<link rel="alternate" type="application/atom+xml"
    52.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    52.8-<link rel="alternate" type="application/rss+xml"
    52.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
   52.10-</head>
   52.11-<body>
   52.12-
   52.13-<div class="page_header">
   52.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   52.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / summary
   52.16-</div>
   52.17-
   52.18-<div class="page_nav">
   52.19-<div>
   52.20-summary |
   52.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   52.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   52.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   52.24-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
   52.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   52.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   52.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
   52.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   52.29-</div>
   52.30-{searchform}
   52.31-</div>
   52.32-
   52.33-<div class="title">&nbsp;</div>
   52.34-<table cellspacing="0">
   52.35-<tr><td>description</td><td>{desc}</td></tr>
   52.36-<tr><td>owner</td><td>{owner|obfuscate}</td></tr>
   52.37-<tr><td>last change</td><td class="date age">{lastchange|rfc822date}</td></tr>
   52.38-</table>
   52.39-
   52.40-<div><a  class="title" href="{url|urlescape}shortlog{sessionvars%urlparameter}">changes</a></div>
   52.41-<table cellspacing="0">
   52.42-{shortlog%shortlogentry}
   52.43-<tr class="light"><td colspan="4"><a class="list" href="{url|urlescape}shortlog{sessionvars%urlparameter}">...</a></td></tr>
   52.44-</table>
   52.45-
   52.46-<div><a class="title" href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></div>
   52.47-<table cellspacing="0">
   52.48-{tags%tagentry}
   52.49-<tr class="light"><td colspan="3"><a class="list" href="{url|urlescape}tags{sessionvars%urlparameter}">...</a></td></tr>
   52.50-</table>
   52.51-
   52.52-<div><a class="title" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></div>
   52.53-<table cellspacing="0">
   52.54-{bookmarks%bookmarkentry}
   52.55-<tr class="light"><td colspan="3"><a class="list" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
   52.56-</table>
   52.57-
   52.58-<div><a class="title" href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></div>
   52.59-<table cellspacing="0">
   52.60-{branches%branchentry}
   52.61-<tr class="light">
   52.62-  <td colspan="3"><a class="list" href="{url|urlescape}branches{sessionvars%urlparameter}">...</a></td>
   52.63-</tr>
   52.64-</table>
   52.65-{footer}
    53.1--- a/templates/gitweb/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
    53.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    53.3@@ -1,35 +0,0 @@
    53.4-{header}
    53.5-<title>{repo|escape}: Tags</title>
    53.6-<link rel="alternate" type="application/atom+xml"
    53.7-   href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags"/>
    53.8-<link rel="alternate" type="application/rss+xml"
    53.9-   href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags"/>
   53.10-</head>
   53.11-<body>
   53.12-
   53.13-<div class="page_header">
   53.14-<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
   53.15-<a href="/">Mercurial</a> {pathdef%breadcrumb} / tags
   53.16-</div>
   53.17-
   53.18-<div class="page_nav">
   53.19-<div>
   53.20-<a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
   53.21-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
   53.22-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
   53.23-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
   53.24-tags |
   53.25-<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
   53.26-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
   53.27-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a> |
   53.28-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
   53.29-</div>
   53.30-{searchform}
   53.31-</div>
   53.32-
   53.33-<div class="title">&nbsp;</div>
   53.34-<table cellspacing="0">
   53.35-{entries%tagentry}
   53.36-</table>
   53.37-
   53.38-{footer}
    55.1--- a/templates/json/changelist.tmpl	Sun Jul 21 21:01:03 2024 -0400
    55.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.3@@ -1,5 +0,0 @@
    55.4-\{
    55.5-  "node": {node|json},
    55.6-  "changeset_count": {changesets|json},
    55.7-  "changesets": [{join(entries%changelistentry, ", ")}]
    55.8-}
    56.1--- a/templates/json/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
    56.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.3@@ -1,5 +0,0 @@
    56.4-\{
    56.5-  "node": {node|json},
    56.6-  "changeset_count": {changesets|json},
    56.7-  "changesets": [{join(nodes%graphentry, ", ")}]
    56.8-}
    57.1--- a/templates/json/map	Sun Jul 21 21:01:03 2024 -0400
    57.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.3@@ -1,252 +0,0 @@
    57.4-default = 'shortlog'
    57.5-mimetype = 'application/json'
    57.6-
    57.7-filerevision = '\{
    57.8-  "node": {node|json},
    57.9-  "path": {file|json},
   57.10-  "date": {date|json},
   57.11-  "desc": {desc|utf8|json},
   57.12-  "branch": {if(branch, branch%changesetbranch, "default"|json)},
   57.13-  "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
   57.14-  "tags": [{join(tags%changelistentryname, ", ")}],
   57.15-  "user": {author|utf8|json},
   57.16-  "parents": [{join(parent%changesetparent, ", ")}],
   57.17-  "phase": {phase|json},
   57.18-  "lines": [{join(text%lineentry, ", ")}]
   57.19-  }'
   57.20-lineentry = '\{
   57.21-  "line": {line|json}
   57.22-  }'
   57.23-search = '\{
   57.24-  "node": {node|json},
   57.25-  "query": {query|json},
   57.26-  "entries": [{join(entries%changelistentry, ", ")}]
   57.27-  }'
   57.28-# changelog and shortlog are the same web API but with different
   57.29-# number of entries.
   57.30-changelog = changelist.tmpl
   57.31-shortlog = changelist.tmpl
   57.32-graph = graph.tmpl
   57.33-changelistentry = '\{
   57.34-  "node": {node|json},
   57.35-  "date": {date|json},
   57.36-  "desc": {desc|utf8|json},
   57.37-  "branch": {if(branch, branch%changesetbranch, "default"|json)},
   57.38-  "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
   57.39-  "tags": [{join(tags%changelistentryname, ", ")}],
   57.40-  "user": {author|utf8|json},
   57.41-  "phase": {phase|json},
   57.42-  "parents": [{if(allparents, join(allparents%changesetparent, ", "),
   57.43-                  join(parent%changesetparent, ", "))}]
   57.44-  }'
   57.45-graphentry = '\{
   57.46-  "node": {node|json},
   57.47-  "date": {date|json},
   57.48-  "desc": {desc|utf8|json},
   57.49-  "branch": {if(branch, branch%changesetbranch, "default"|json)},
   57.50-  "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
   57.51-  "tags": [{join(tags%changelistentryname, ", ")}],
   57.52-  "user": {author|utf8|json},
   57.53-  "phase": {phase|json},
   57.54-  "col": {col|json},
   57.55-  "row": {row|json},
   57.56-  "color": {color|json},
   57.57-  "edges": {edges|json},
   57.58-  "parents": [{if(allparents, join(allparents%changesetparent, ", "),
   57.59-                  join(parent%changesetparent, ", "))}]
   57.60-  }'
   57.61-changelistentryname = '{name|utf8|json}'
   57.62-changeset = '\{
   57.63-  "node": {node|json},
   57.64-  "date": {date|json},
   57.65-  "desc": {desc|utf8|json},
   57.66-  "branch": {if(branch, branch%changesetbranch, "default"|json)},
   57.67-  "bookmarks": [{join(changesetbookmark, ", ")}],
   57.68-  "tags": [{join(changesettag, ", ")}],
   57.69-  "user": {author|utf8|json},
   57.70-  "parents": [{join(parent%changesetparent, ", ")}],
   57.71-  "children": [{join(child%changesetparent, ", ")}],
   57.72-  "files": [{join(files, ", ")}],
   57.73-  "diff": [{join(diff, ", ")}],
   57.74-  "phase": {phase|json}
   57.75-  }'
   57.76-changesetbranch = '{name|utf8|json}'
   57.77-changesetbookmark = '{bookmark|utf8|json}'
   57.78-changesettag = '{tag|utf8|json}'
   57.79-changesetparent = '{node|json}'
   57.80-manifest = '\{
   57.81-  "node": {node|json},
   57.82-  "abspath": {path|json},
   57.83-  "directories": [{join(dentries%direntry, ", ")}],
   57.84-  "files": [{join(fentries%fileentry, ", ")}],
   57.85-  "bookmarks": [{join(bookmarks%name, ", ")}],
   57.86-  "tags": [{join(tags%name, ", ")}]
   57.87-  }'
   57.88-name = '{name|utf8|json}'
   57.89-direntry = '\{
   57.90-  "abspath": {path|json},
   57.91-  "basename": {basename|json},
   57.92-  "emptydirs": {emptydirs|json}
   57.93-  }'
   57.94-fileentry = '\{
   57.95-  "abspath": {file|json},
   57.96-  "basename": {basename|json},
   57.97-  "date": {date|json},
   57.98-  "size": {size|json},
   57.99-  "flags": {permissions|json}
  57.100-  }'
  57.101-tags = '\{
  57.102-  "node": {node|json},
  57.103-  "tags": [{join(entriesnotip%tagentry, ", ")}]
  57.104-  }'
  57.105-tagentry = '\{
  57.106-  "tag": {tag|utf8|json},
  57.107-  "node": {node|json},
  57.108-  "date": {date|json}
  57.109-  }'
  57.110-bookmarks = '\{
  57.111-  "node": {node|json},
  57.112-  "bookmarks": [{join(entries%bookmarkentry, ", ")}]
  57.113-  }'
  57.114-bookmarkentry = '\{
  57.115-  "bookmark": {bookmark|utf8|json},
  57.116-  "node": {node|json},
  57.117-  "date": {date|json}
  57.118-  }'
  57.119-branches = '\{
  57.120-  "branches": [{join(entries%branchentry, ", ")}]
  57.121-  }'
  57.122-branchentry = '\{
  57.123-  "branch": {branch|utf8|json},
  57.124-  "node": {node|json},
  57.125-  "date": {date|json},
  57.126-  "status": {status|json}
  57.127-  }'
  57.128-shortlogentry = '{changelistentry}'
  57.129-summary = '\{
  57.130-  "node": {node|json},
  57.131-  "lastchange": {lastchange|json},
  57.132-  "bookmarks": [{join(bookmarks%bookmarkentry, ", ")}],
  57.133-  "branches": [{join(branches%branchentry, ", ")}],
  57.134-  "shortlog": [{join(shortlog%shortlogentry, ", ")}],
  57.135-  "tags": [{join(tags%tagentry, ", ")}],
  57.136-  "archives": [{join(archives%archiveentry, ", ")}],
  57.137-  "labels": {labels|json}
  57.138-  }'
  57.139-archiveentry = '\{
  57.140-  "node": {node|json},
  57.141-  "extension": {extension|json},
  57.142-  "type": {type|json},
  57.143-  "url": {"{urlbase}{url}archive/{node}{extension}"|json}
  57.144-  }'
  57.145-filediff = '\{
  57.146-  "path": {file|json},
  57.147-  "node": {node|json},
  57.148-  "date": {date|json},
  57.149-  "desc": {desc|utf8|json},
  57.150-  "author": {author|utf8|json},
  57.151-  "parents": [{join(parent%changesetparent, ", ")}],
  57.152-  "children": [{join(child%changesetparent, ", ")}],
  57.153-  "diff": [{join(diff, ", ")}]
  57.154-  }'
  57.155-diffblock = '\{
  57.156-  "blockno": {blockno|json},
  57.157-  "lines": [{join(lines, ", ")}]
  57.158-  }'
  57.159-difflineplus = '\{
  57.160-  "t": "+",
  57.161-  "n": {lineno|json},
  57.162-  "l": {line|json}
  57.163-  }'
  57.164-difflineminus = '\{
  57.165-  "t": "-",
  57.166-  "n": {lineno|json},
  57.167-  "l": {line|json}
  57.168-  }'
  57.169-difflineat = '\{
  57.170-  "t": "@",
  57.171-  "n": {lineno|json},
  57.172-  "l": {line|json}
  57.173-  }'
  57.174-diffline = '\{
  57.175-  "t": "",
  57.176-  "n": {lineno|json},
  57.177-  "l": {line|json}
  57.178-  }'
  57.179-filecomparison = '\{
  57.180-  "path": {file|json},
  57.181-  "node": {node|json},
  57.182-  "date": {date|json},
  57.183-  "desc": {desc|utf8|json},
  57.184-  "author": {author|utf8|json},
  57.185-  "parents": [{join(parent%changesetparent, ", ")}],
  57.186-  "children": [{join(child%changesetparent, ", ")}],
  57.187-  "leftnode": {leftnode|json},
  57.188-  "rightnode": {rightnode|json},
  57.189-  "comparison": [{join(comparison, ", ")}]
  57.190-  }'
  57.191-comparisonblock = '\{
  57.192-  "lines": [{join(lines, ", ")}]
  57.193-  }'
  57.194-comparisonline = '\{
  57.195-  "t": {type|json},
  57.196-  "ln": {leftlineno|json},
  57.197-  "ll": {leftline|json},
  57.198-  "rn": {rightlineno|json},
  57.199-  "rl": {rightline|json}
  57.200-  }'
  57.201-fileannotate = '\{
  57.202-  "abspath": {file|json},
  57.203-  "node": {node|json},
  57.204-  "author": {author|utf8|json},
  57.205-  "date": {date|json},
  57.206-  "desc": {desc|utf8|json},
  57.207-  "parents": [{join(parent%changesetparent, ", ")}],
  57.208-  "children": [{join(child%changesetparent, ", ")}],
  57.209-  "permissions": {permissions|json},
  57.210-  "annotate": [{join(annotate%fileannotation, ", ")}]
  57.211-  }'
  57.212-fileannotation = '\{
  57.213-  "node": {node|json},
  57.214-  "author": {author|utf8|json},
  57.215-  "desc": {desc|utf8|json},
  57.216-  "abspath": {file|json},
  57.217-  "targetline": {targetline|json},
  57.218-  "line": {line|json},
  57.219-  "lineno": {lineno|json},
  57.220-  "revdate": {revdate|json}
  57.221-  }'
  57.222-filelog = '\{
  57.223-  "entries": [{join(entries%changelistentry, ", ")}]
  57.224-  }'
  57.225-helptopics = '\{
  57.226-  "topics": [{join(topics%helptopicentry, ", ")}],
  57.227-  "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
  57.228-  "othercommands": [{join(othercommands%helptopicentry, ", ")}]
  57.229-  }'
  57.230-helptopicentry = '\{
  57.231-  "topic": {topic|utf8|json},
  57.232-  "summary": {summary|utf8|json}
  57.233-  }'
  57.234-help = '\{
  57.235-  "topic": {topic|utf8|json},
  57.236-  "rawdoc": {doc|utf8|json}
  57.237-  }'
  57.238-filenodelink = '\{
  57.239-  "file": {file|json},
  57.240-  "status": {status|json}
  57.241-  }'
  57.242-filenolink = '{filenodelink}'
  57.243-index = '\{
  57.244-  "entries": [{join(entries%indexentry, ", ")}]
  57.245-  }'
  57.246-indexentry = '\{
  57.247-  "name": {name|utf8|json},
  57.248-  "description": {description|utf8|json},
  57.249-  "contact": {contact|utf8|json},
  57.250-  "lastchange": {lastchange|json},
  57.251-  "labels": {labels|json}
  57.252-  }'
  57.253-error = '\{
  57.254-  "error": {error|utf8|json}
  57.255-  }'
    58.1--- a/templates/map-cmdline.bisect	Sun Jul 21 21:01:03 2024 -0400
    58.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.3@@ -1,15 +0,0 @@
    58.4-%include map-cmdline.default
    58.5-
    58.6-[templates]
    58.7-changeset = '{cset}{lbisect}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{summary}\n'
    58.8-changeset_quiet = '{lshortbisect} {rev}:{node|short}\n'
    58.9-changeset_verbose = '{cset}{lbisect}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{lfiles}{lfile_copies_switch}{description}\n'
   58.10-changeset_debug = '{fullcset}{lbisect}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{luser}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
   58.11-
   58.12-# We take the zeroth word in order to omit "(implicit)" in the label
   58.13-bisectlabel = ' bisect.{word('0', bisect)}'
   58.14-
   58.15-lbisect ='{label("log.bisect{if(bisect, bisectlabel)}",
   58.16-                                "bisect:      {bisect}\n")}'
   58.17-lshortbisect ='{label("log.bisect{if(bisect, bisectlabel)}",
   58.18-                                    "{bisect|shortbisect}")}'
    59.1--- a/templates/map-cmdline.changelog	Sun Jul 21 21:01:03 2024 -0400
    59.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.3@@ -1,18 +0,0 @@
    59.4-[templates]
    59.5-header = '{date|shortdate}  {author|person}  <{author|email}>\n\n'
    59.6-header_verbose = ''
    59.7-changeset = '\t* {files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\t[{node|short}]{tags}{branches}\n\n'
    59.8-changeset_quiet = '\t* {desc|firstline|fill68|tabindent|strip}\n\n'
    59.9-changeset_verbose = '{date|isodate}  {author|person}  <{author|email}>  ({node|short}{tags}{branches})\n\n\t* {file_adds|stringify|fill68|tabindent}{file_dels|stringify|fill68|tabindent}{files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\n'
   59.10-start_tags = ' ['
   59.11-tag = '{tag}, '
   59.12-last_tag = '{tag}]'
   59.13-start_branches = ' <'
   59.14-branch = '{branch}, '
   59.15-last_branch = '{branch}>'
   59.16-file = '{file}, '
   59.17-last_file = '{file}:\n\t'
   59.18-file_add = '{file_add}, '
   59.19-last_file_add = '{file_add}: new file.\n* '
   59.20-file_del = '{file_del}, '
   59.21-last_file_del = '{file_del}: deleted file.\n* '
    60.1--- a/templates/map-cmdline.compact	Sun Jul 21 21:01:03 2024 -0400
    60.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.3@@ -1,31 +0,0 @@
    60.4-[templates]
    60.5-ldate = '{label("log.date",
    60.6-                "{date|isodate}")}'
    60.7-
    60.8-ldesc = '{label('ui.note log.description',
    60.9-                      '{desc|strip}')}'
   60.10-ldescfirst = '{label('ui.note log.description',
   60.11-                     '{desc|firstline|strip}')}'
   60.12-
   60.13-changeset = '{lrev}{tags}{bookmarks}{parents}   {lnode}   {ldate}   {luser}\n  {ldescfirst}\n\n'
   60.14-changeset_quiet = '{lrev}:{lnode}\n'
   60.15-changeset_verbose = '{lrev}{tags}{parents}   {lnode}   {ldate}   {lauthor}\n  {ldesc}\n\n'
   60.16-lrev = '{label("log.changeset changeset.{phase}",
   60.17-              "{rev}")}'
   60.18-lnode = '{label("log.node",
   60.19-                "{node|short}")}'
   60.20-lauthor = '{label("log.user",
   60.21-                  "{author}")}'
   60.22-luser = '{label("log.user",
   60.23-                "{author|user}")}'
   60.24-start_tags = '['
   60.25-tag = '{label("log.tag",
   60.26-              "{tag},")}'
   60.27-last_tag = '{tag}]'
   60.28-start_parents = ':'
   60.29-parent = '{lrev},'
   60.30-last_parent = '{lrev}'
   60.31-start_bookmarks = '['
   60.32-bookmark = '{label("log.bookmark",
   60.33-                   "{bookmark},")}'
   60.34-last_bookmark = '{bookmark}]'
    61.1--- a/templates/map-cmdline.default	Sun Jul 21 21:01:03 2024 -0400
    61.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.3@@ -1,91 +0,0 @@
    61.4-# Base templates. Due to name clashes with existing keywords, we have
    61.5-# to replace some keywords with 'lkeyword', for 'labelled keyword'
    61.6-
    61.7-[templates]
    61.8-changeset = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{ltroubles}{lobsfate}{summary}\n'
    61.9-changeset_quiet = '{lnode}'
   61.10-changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{ltroubles}{lobsfate}{lfiles}{lfile_copies_switch}{description}\n'
   61.11-changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{luser}{ldate}{ltroubles}{lobsfate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
   61.12-
   61.13-# File templates
   61.14-lfiles = '{if(files,
   61.15-               label("ui.note log.files",
   61.16-                     "files:       {files}\n"))}'
   61.17-
   61.18-lfile_mods = '{if(file_mods,
   61.19-                  label("ui.debug log.files",
   61.20-                        "files:       {file_mods}\n"))}'
   61.21-
   61.22-lfile_adds = '{if(file_adds,
   61.23-                  label("ui.debug log.files",
   61.24-                        "files+:      {file_adds}\n"))}'
   61.25-
   61.26-lfile_dels = '{if(file_dels,
   61.27-                  label("ui.debug log.files",
   61.28-                        "files-:      {file_dels}\n"))}'
   61.29-
   61.30-lfile_copies_switch = '{if(file_copies_switch,
   61.31-                           label("ui.note log.copies",
   61.32-                                 "copies:     {file_copies_switch
   61.33-                                               % ' {name} ({source})'}\n"))}'
   61.34-
   61.35-# General templates
   61.36-cset = '{labelcset("changeset:   {rev}:{node|short}")}\n'
   61.37-fullcset = '{labelcset("changeset:   {rev}:{node}")}\n'
   61.38-
   61.39-lphase = '{label("log.phase",
   61.40-                 "phase:       {phase}")}\n'
   61.41-
   61.42-parent = '{label("log.parent changeset.{phase}",
   61.43-                  "parent:      {rev}:{node|formatnode}")}\n'
   61.44-
   61.45-lnode = '{label("log.node",
   61.46-                "{rev}:{node|short}")}\n'
   61.47-
   61.48-manifest = '{label("ui.debug log.manifest",
   61.49-                   "manifest:    {rev}:{node}")}\n'
   61.50-
   61.51-branch = '{label("log.branch",
   61.52-                 "branch:      {branch}")}\n'
   61.53-
   61.54-tag = '{label("log.tag",
   61.55-              "tag:         {tag}")}\n'
   61.56-
   61.57-bookmark = '{label("log.bookmark",
   61.58-                   "bookmark:    {bookmark}")}\n'
   61.59-
   61.60-luser = '{label("log.user",
   61.61-                "user:        {author}")}\n'
   61.62-
   61.63-summary = '{if(desc|strip, "{label('log.summary',
   61.64-                                   'summary:     {desc|firstline}')}\n")}'
   61.65-
   61.66-ldate = '{label("log.date",
   61.67-                "date:        {date|date}")}\n'
   61.68-
   61.69-ltroubles = '{if(instabilities, "{label('log.instability',
   61.70-                                   'instability: {join(instabilities, ", ")}')}\n")}'
   61.71-
   61.72-extra = '{label("ui.debug log.extra",
   61.73-                "extra:       {key}={value|stringescape}")}\n'
   61.74-
   61.75-description = '{if(desc|strip, "{label('ui.note log.description',
   61.76-                                       'description:')}
   61.77-                                {label('ui.note log.description',
   61.78-                                       '{desc|strip}')}\n\n")}'
   61.79-
   61.80-status = '{status} {path|relpath}\n{if(source, "  {source|relpath}\n")}'
   61.81-
   61.82-# Obsfate templates, it would be removed once we introduce the obsfate
   61.83-# template fragment
   61.84-lobsfate = '{if(obsfate, "{label('log.obsfate', '{obsfate % "obsolete:    {fate}\n"}')}")}'
   61.85-
   61.86-[templatealias]
   61.87-labelcset(expr) = label(separate(" ",
   61.88-                                 "log.changeset",
   61.89-                                 "changeset.{phase}",
   61.90-                                 if(obsolete, "changeset.obsolete"),
   61.91-                                 if(instabilities, "changeset.unstable"),
   61.92-                                 join(instabilities
   61.93-                                      % "instability.{instability}", " ")),
   61.94-                        expr)
    62.1--- a/templates/map-cmdline.phases	Sun Jul 21 21:01:03 2024 -0400
    62.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.3@@ -1,5 +0,0 @@
    62.4-%include map-cmdline.default
    62.5-
    62.6-[templates]
    62.7-changeset = '{cset}{branches}{bookmarks}{tags}{lphase}{parents}{luser}{ldate}{summary}\n'
    62.8-changeset_verbose = '{cset}{branches}{bookmarks}{tags}{lphase}{parents}{luser}{ldate}{lfiles}{lfile_copies_switch}{description}\n'
    63.1--- a/templates/map-cmdline.show	Sun Jul 21 21:01:03 2024 -0400
    63.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.3@@ -1,25 +0,0 @@
    63.4-# TODO there are a few deficiencies in this file:
    63.5-# * The "namespace" of the labels needs to be worked out. We currently
    63.6-#   piggyback on existing values so color works.
    63.7-
    63.8-%include map-cmdline.default
    63.9-
   63.10-[templates]
   63.11-showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, nodelen)}\n'
   63.12-
   63.13-showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
   63.14-showstack = '{showwork}'
   63.15-
   63.16-cset_shortnode = '{labelcset(shortest(node, nodelen))}'
   63.17-
   63.18-# Treat branch and tags specially so we don't display "default" or "tip"
   63.19-cset_namespace = '{ifeq(namespace, "branches", names_branches, ifeq(namespace, "tags", names_tags, names_others))}'
   63.20-names_branches = '{ifeq(branch, "default", "", " ({label('log.{colorname}', branch)})")}'
   63.21-names_tags = '{if(filter_tags(names),
   63.22-                  " ({label('log.{colorname}', join(filter_tags(names), ' '))})")}'
   63.23-names_others = '{if(names, " ({label('log.{colorname}', join(names, ' '))})")}'
   63.24-
   63.25-cset_shortdesc = '{label("log.description", desc|firstline)}'
   63.26-
   63.27-[templatealias]
   63.28-filter_tags(names) = filter(names, ifeq(name, 'tip', '', name))
    64.1--- a/templates/map-cmdline.status	Sun Jul 21 21:01:03 2024 -0400
    64.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.3@@ -1,21 +0,0 @@
    64.4-%include map-cmdline.default
    64.5-
    64.6-[templates]
    64.7-# Override base templates
    64.8-changeset = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{summary}{lfiles}\n'
    64.9-changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{luser}{ldate}{description}{lfiles}\n'
   64.10-changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{luser}{ldate}{extras}{description}{lfiles}\n'
   64.11-
   64.12-# Override the file templates
   64.13-lfiles = '{if(files,
   64.14-              label('ui.note log.files',
   64.15-                    'files:\n'))}{lfile_mods}{lfile_adds}{lfile_dels}'
   64.16-
   64.17-lfile_adds = '{file_adds % "{lfile_add}{lfile_src}"}'
   64.18-lfile_mods = '{file_mods % "{lfile_mod}{lfile_src}"}'
   64.19-lfile_add = '{label("status.added", "A {file}\n")}'
   64.20-lfile_mod = '{label("status.modified", "M {file}\n")}'
   64.21-lfile_src = '{ifcontains(file, file_copies_switch,
   64.22-              label("status.copied", "  {get(file_copies_switch, file)}\n"))}'
   64.23-
   64.24-lfile_dels = '{file_dels % "{label('status.removed', 'R {file}\n')}"}'
    65.1--- a/templates/map-cmdline.xml	Sun Jul 21 21:01:03 2024 -0400
    65.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.3@@ -1,21 +0,0 @@
    65.4-[templates]
    65.5-docheader = '<?xml version="1.0"?>\n<log>\n'
    65.6-docfooter = '</log>\n'
    65.7-
    65.8-changeset = '<logentry revision="{rev}" node="{node}">\n{branches}{bookmarks}{tags}{parents}<author email="{author|email|xmlescape}">{author|person|xmlescape}</author>\n<date>{date|rfc3339date}</date>\n<msg xml:space="preserve">{desc|xmlescape}</msg>\n</logentry>\n'
    65.9-changeset_verbose = '<logentry revision="{rev}" node="{node}">\n{branches}{bookmarks}{tags}{parents}<author email="{author|email|xmlescape}">{author|person|xmlescape}</author>\n<date>{date|rfc3339date}</date>\n<msg xml:space="preserve">{desc|xmlescape}</msg>\n<paths>\n{file_adds}{file_dels}{file_mods}</paths>\n{file_copies}</logentry>\n'
   65.10-changeset_debug = '<logentry revision="{rev}" node="{node}">\n{branches}{bookmarks}{tags}{parents}<author email="{author|email|xmlescape}">{author|person|xmlescape}</author>\n<date>{date|rfc3339date}</date>\n<msg xml:space="preserve">{desc|xmlescape}</msg>\n<paths>\n{file_adds}{file_dels}{file_mods}</paths>\n{file_copies}{extras}</logentry>\n'
   65.11-
   65.12-file_add  = '<path action="A">{file_add|xmlescape}</path>\n'
   65.13-file_mod  = '<path action="M">{file_mod|xmlescape}</path>\n'
   65.14-file_del  = '<path action="R">{file_del|xmlescape}</path>\n'
   65.15-
   65.16-start_file_copies = '<copies>\n'
   65.17-file_copy = '<copy source="{source|xmlescape}">{name|xmlescape}</copy>\n'
   65.18-end_file_copies = '</copies>\n'
   65.19-
   65.20-parent = '<parent revision="{rev}" node="{node}" />\n'
   65.21-branch = '<branch>{branch|xmlescape}</branch>\n'
   65.22-tag = '<tag>{tag|xmlescape}</tag>\n'
   65.23-bookmark = '<bookmark>{bookmark|xmlescape}</bookmark>\n'
   65.24-extra = '<extra key="{key|xmlescape}">{value|xmlescape}</extra>\n'
    67.1--- a/templates/monoblue/bookmarks.tmpl	Sun Jul 21 21:01:03 2024 -0400
    67.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.3@@ -1,32 +0,0 @@
    67.4-{header}
    67.5-    <title>{repo|escape}: Bookmarks</title>
    67.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks"/>
    67.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks"/>
    67.8-</head>
    67.9-
   67.10-<body>
   67.11-<div id="container">
   67.12-    <div class="page-header">
   67.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / bookmarks</h1>
   67.14-
   67.15-        {searchform}
   67.16-
   67.17-        <ul class="page-nav">
   67.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   67.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   67.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   67.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   67.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   67.23-            <li class="current">bookmarks</li>
   67.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   67.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   67.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   67.27-        </ul>
   67.28-    </div>
   67.29-
   67.30-    <h2 class="no-link no-border">bookmarks</h2>
   67.31-    <table cellspacing="0">
   67.32-{entries%bookmarkentry}
   67.33-    </table>
   67.34-
   67.35-{footer}
    68.1--- a/templates/monoblue/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
    68.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    68.3@@ -1,32 +0,0 @@
    68.4-{header}
    68.5-    <title>{repo|escape}: Branches</title>
    68.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches"/>
    68.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches"/>
    68.8-</head>
    68.9-
   68.10-<body>
   68.11-<div id="container">
   68.12-    <div class="page-header">
   68.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / branches</h1>
   68.14-
   68.15-        {searchform}
   68.16-
   68.17-        <ul class="page-nav">
   68.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   68.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   68.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   68.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   68.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   68.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   68.24-            <li class="current">branches</li>
   68.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   68.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   68.27-        </ul>
   68.28-    </div>
   68.29-
   68.30-    <h2 class="no-link no-border">branches</h2>
   68.31-    <table cellspacing="0">
   68.32-{entries%branchentry}
   68.33-    </table>
   68.34-
   68.35-{footer}
    69.1--- a/templates/monoblue/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    69.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.3@@ -1,37 +0,0 @@
    69.4-{header}
    69.5-    <title>{repo|escape}: changelog</title>
    69.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    69.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    69.8-</head>
    69.9-
   69.10-<body>
   69.11-<div id="container">
   69.12-    <div class="page-header">
   69.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog</h1>
   69.14-
   69.15-        {searchform}
   69.16-
   69.17-        <ul class="page-nav">
   69.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   69.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   69.20-            <li class="current">changelog</li>
   69.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   69.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   69.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   69.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   69.25-            <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a></li>
   69.26-            {archives%archiveentry}
   69.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   69.28-        </ul>
   69.29-    </div>
   69.30-
   69.31-    <h2 class="no-link no-border">changelog</h2>
   69.32-    <div>
   69.33-    {entries%changelogentry}
   69.34-    </div>
   69.35-
   69.36-    <div class="page-path">
   69.37-{changenav%nav}
   69.38-    </div>
   69.39-
   69.40-{footer}
    70.1--- a/templates/monoblue/changelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    70.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.3@@ -1,11 +0,0 @@
    70.4-<h3 class="changelog">
    70.5-    <a class="title" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
    70.6-        {desc|strip|firstline|escape|nonempty}
    70.7-        {alltags}
    70.8-    </a>
    70.9-</h3>
   70.10-<ul class="changelog-entry">
   70.11-    <li class="age">{date|rfc822date}</li>
   70.12-    <li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li>
   70.13-    <li class="description">{desc|strip|escape|websub|addbreaks|nonempty}</li>
   70.14-</ul>
    71.1--- a/templates/monoblue/changeset.tmpl	Sun Jul 21 21:01:03 2024 -0400
    71.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.3@@ -1,67 +0,0 @@
    71.4-{header}
    71.5-<title>{repo|escape}: changeset {rev}:{node|short}</title>
    71.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    71.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    71.8-</head>
    71.9-
   71.10-<body>
   71.11-<div id="container">
   71.12-    <div class="page-header">
   71.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset</h1>
   71.14-
   71.15-        {searchform}
   71.16-
   71.17-        <ul class="page-nav">
   71.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   71.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   71.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   71.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   71.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   71.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   71.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   71.25-            <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a></li>
   71.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   71.27-        </ul>
   71.28-    </div>
   71.29-
   71.30-    <ul class="submenu">
   71.31-        <li class="current">changeset</li>
   71.32-        <li><a href="{url|urlescape}raw-rev/{symrev}">raw</a></li>
   71.33-        {archives%archiveentry}
   71.34-    </ul>
   71.35-
   71.36-    <h2 class="no-link no-border">changeset</h2>
   71.37-
   71.38-    <h3 class="changeset">
   71.39-        <a href="{url|urlescape}raw-rev/{node|short}">
   71.40-            {desc|strip|escape|firstline|nonempty}
   71.41-            {alltags}
   71.42-        </a>
   71.43-    </h3>
   71.44-    <p class="changeset-age"><span class="age">{date|rfc822date}</span></p>
   71.45-
   71.46-    <dl class="overview">
   71.47-        <dt>author</dt>
   71.48-        <dd>{author|obfuscate}</dd>
   71.49-        <dt>date</dt>
   71.50-        <dd class="date age">{date|rfc822date}</dd>
   71.51-        {branch%changesetbranch}
   71.52-        <dt>changeset {rev}</dt>
   71.53-        <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
   71.54-        {if(obsolete, succsandmarkers%obsfateentry)}
   71.55-        {if(instabilities, whyunstable%whyunstableentry)}
   71.56-        {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}
   71.57-        {child%changesetchild}
   71.58-    </dl>
   71.59-
   71.60-    <p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p>
   71.61-
   71.62-    <table>
   71.63-    {files}
   71.64-    </table>
   71.65-
   71.66-    <div class="diff diffblocks">
   71.67-    {diff}
   71.68-    </div>
   71.69-
   71.70-{footer}
    72.1--- a/templates/monoblue/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
    72.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.3@@ -1,30 +0,0 @@
    72.4-{header}
    72.5-    <title>{repo|escape}: Error</title>
    72.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    72.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    72.8-</head>
    72.9-
   72.10-<body>
   72.11-<div id="container">
   72.12-    <div class="page-header">
   72.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / not found: {repo|escape}</h1>
   72.14-
   72.15-        {searchform}
   72.16-
   72.17-        <ul class="page-nav">
   72.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   72.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   72.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   72.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   72.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   72.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   72.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   72.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   72.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   72.27-        </ul>
   72.28-    </div>
   72.29-
   72.30-    <h2 class="no-link no-border">An error occurred while processing your request</h2>
   72.31-    <p class="normal">{error|escape}</p>
   72.32-
   72.33-{footer}
    73.1--- a/templates/monoblue/fileannotate.tmpl	Sun Jul 21 21:01:03 2024 -0400
    73.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.3@@ -1,61 +0,0 @@
    73.4-{header}
    73.5-<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
    73.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    73.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    73.8-</head>
    73.9-
   73.10-<body>
   73.11-<div id="container">
   73.12-    <div class="page-header">
   73.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate</h1>
   73.14-
   73.15-        {searchform}
   73.16-
   73.17-        <ul class="page-nav">
   73.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   73.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   73.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   73.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   73.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   73.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   73.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   73.25-            <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
   73.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   73.27-        </ul>
   73.28-    </div>
   73.29-
   73.30-    <ul class="submenu">
   73.31-        <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   73.32-        <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   73.33-        <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
   73.34-        <li class="current">annotate</li>
   73.35-        <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   73.36-        <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
   73.37-        <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
   73.38-    </ul>
   73.39-
   73.40-    <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
   73.41-    <h3 class="changeset">{file|escape}</h3>
   73.42-    <p class="changeset-age"><span class="age">{date|rfc822date}</span></p>
   73.43-
   73.44-    <dl class="overview">
   73.45-        <dt>author</dt>
   73.46-        <dd>{author|obfuscate}</dd>
   73.47-        <dt>date</dt>
   73.48-        <dd class="date age">{date|rfc822date}</dd>
   73.49-        {branch%filerevbranch}
   73.50-        <dt>changeset {rev}</dt>
   73.51-        <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
   73.52-        {parent%fileannotateparent}
   73.53-        {child%fileannotatechild}
   73.54-        <dt>permissions</dt>
   73.55-        <dd>{permissions|permissions}</dd>
   73.56-    </dl>
   73.57-
   73.58-    <p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p>
   73.59-
   73.60-    <table class="annotated">
   73.61-    {annotate%annotateline}
   73.62-    </table>
   73.63-
   73.64-{footer}
    74.1--- a/templates/monoblue/filecomparison.tmpl	Sun Jul 21 21:01:03 2024 -0400
    74.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.3@@ -1,67 +0,0 @@
    74.4-{header}
    74.5-<title>{repo|escape}: comparison {file|escape}</title>
    74.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    74.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    74.8-</head>
    74.9-
   74.10-<body>
   74.11-<div id="container">
   74.12-    <div class="page-header">
   74.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file comparison</h1>
   74.14-
   74.15-        {searchform}
   74.16-
   74.17-        <ul class="page-nav">
   74.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   74.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   74.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   74.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   74.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   74.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   74.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   74.25-            <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
   74.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   74.27-        </ul>
   74.28-    </div>
   74.29-
   74.30-    <ul class="submenu">
   74.31-        <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   74.32-        <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   74.33-        <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
   74.34-        <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
   74.35-        <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   74.36-        <li class="current">comparison</li>
   74.37-        <li><a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a></li>
   74.38-    </ul>
   74.39-
   74.40-    <h2 class="no-link no-border">comparison: {file|escape}</h2>
   74.41-    <h3 class="changeset">{file|escape}</h3>
   74.42-
   74.43-    <dl class="overview">
   74.44-        {branch%filerevbranch}
   74.45-        <dt>changeset {rev}</dt>
   74.46-        <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
   74.47-        {parent%filecompparent}
   74.48-        {child%filecompchild}
   74.49-    </dl>
   74.50-
   74.51-    <div class="legend">
   74.52-      <span class="legendinfo equal">equal</span>
   74.53-      <span class="legendinfo delete">deleted</span>
   74.54-      <span class="legendinfo insert">inserted</span>
   74.55-      <span class="legendinfo replace">replaced</span>
   74.56-    </div>
   74.57-
   74.58-    <div class="comparison">
   74.59-      <table class="bigtable">
   74.60-        <thead class="header">
   74.61-          <tr>
   74.62-            <th>{leftrev}:{leftnode|short}</th>
   74.63-            <th>{rightrev}:{rightnode|short}</th>
   74.64-          </tr>
   74.65-        </thead>
   74.66-        {comparison}
   74.67-      </table>
   74.68-    </div>
   74.69-
   74.70-{footer}
    75.1--- a/templates/monoblue/filediff.tmpl	Sun Jul 21 21:01:03 2024 -0400
    75.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.3@@ -1,52 +0,0 @@
    75.4-{header}
    75.5-<title>{repo|escape}: diff {file|escape}</title>
    75.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    75.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    75.8-</head>
    75.9-
   75.10-<body>
   75.11-<div id="container">
   75.12-    <div class="page-header">
   75.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file diff</h1>
   75.14-
   75.15-        {searchform}
   75.16-
   75.17-        <ul class="page-nav">
   75.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   75.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   75.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   75.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   75.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   75.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   75.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   75.25-            <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
   75.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   75.27-        </ul>
   75.28-    </div>
   75.29-
   75.30-    <ul class="submenu">
   75.31-        <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   75.32-        <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   75.33-        <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
   75.34-        <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
   75.35-        <li class="current">diff</li>
   75.36-        <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
   75.37-        <li><a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a></li>
   75.38-    </ul>
   75.39-
   75.40-    <h2 class="no-link no-border">diff: {file|escape}</h2>
   75.41-    <h3 class="changeset">{file|escape}</h3>
   75.42-
   75.43-    <dl class="overview">
   75.44-        {branch%filerevbranch}
   75.45-        <dt>changeset {rev}</dt>
   75.46-        <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
   75.47-        {parent%filediffparent}
   75.48-        {child%filediffchild}
   75.49-    </dl>
   75.50-
   75.51-    <div class="diff diffblocks">
   75.52-    {diff}
   75.53-    </div>
   75.54-
   75.55-{footer}
    76.1--- a/templates/monoblue/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    76.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    76.3@@ -1,46 +0,0 @@
    76.4-{header}
    76.5-<title>{repo|escape}: File revisions</title>
    76.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    76.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    76.8-</head>
    76.9-
   76.10-<body>
   76.11-<div id="container">
   76.12-    <div class="page-header">
   76.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file revisions</h1>
   76.14-
   76.15-        {searchform}
   76.16-
   76.17-        <ul class="page-nav">
   76.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   76.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   76.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   76.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   76.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   76.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   76.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   76.25-            <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
   76.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   76.27-        </ul>
   76.28-    </div>
   76.29-
   76.30-    <ul class="submenu">
   76.31-        <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   76.32-        <li class="current">revisions</li>
   76.33-        <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
   76.34-        <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   76.35-        <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
   76.36-        <li><a href="{url|urlescape}rss-log/tip/{file|urlescape}">rss</a></li>
   76.37-    </ul>
   76.38-
   76.39-    <h2 class="no-link no-border">{file|urlescape}</h2>
   76.40-
   76.41-    <table>
   76.42-    {entries%filelogentry}
   76.43-    </table>
   76.44-
   76.45-    <div class="page-path">
   76.46-    {nav%filenav}
   76.47-    </div>
   76.48-
   76.49-{footer}
    77.1--- a/templates/monoblue/filerevision.tmpl	Sun Jul 21 21:01:03 2024 -0400
    77.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    77.3@@ -1,61 +0,0 @@
    77.4-{header}
    77.5-<title>{repo|escape}: {file|escape}@{node|short}</title>
    77.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    77.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    77.8-</head>
    77.9-
   77.10-<body>
   77.11-<div id="container">
   77.12-    <div class="page-header">
   77.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file revision</h1>
   77.14-
   77.15-        {searchform}
   77.16-
   77.17-        <ul class="page-nav">
   77.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   77.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   77.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   77.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   77.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   77.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   77.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   77.25-            <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
   77.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   77.27-        </ul>
   77.28-    </div>
   77.29-
   77.30-    <ul class="submenu">
   77.31-        <li class="current">file</li>
   77.32-        <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   77.33-        <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
   77.34-        <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
   77.35-        <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   77.36-        <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
   77.37-        <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
   77.38-    </ul>
   77.39-
   77.40-    <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
   77.41-    <h3 class="changeset">{file|escape}</h3>
   77.42-    <p class="changeset-age"><span class="age">{date|rfc822date}</span></p>
   77.43-
   77.44-    <dl class="overview">
   77.45-        <dt>author</dt>
   77.46-        <dd>{author|obfuscate}</dd>
   77.47-        <dt>date</dt>
   77.48-        <dd class="date age">{date|rfc822date}</dd>
   77.49-        {branch%filerevbranch}
   77.50-        <dt>changeset {rev}</dt>
   77.51-        <dd><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
   77.52-        {parent%filerevparent}
   77.53-        {child%filerevchild}
   77.54-        <dt>permissions</dt>
   77.55-        <dd>{permissions|permissions}</dd>
   77.56-    </dl>
   77.57-
   77.58-    <p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p>
   77.59-
   77.60-    <div class="source">
   77.61-        <pre class="sourcelines stripes">{text%fileline}</pre>
   77.62-    </div>
   77.63-
   77.64-{footer}
    78.1--- a/templates/monoblue/footer.tmpl	Sun Jul 21 21:01:03 2024 -0400
    78.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.3@@ -1,17 +0,0 @@
    78.4-    <div class="page-footer">
    78.5-        <p>Mercurial Repository: {repo|escape}</p>
    78.6-        <ul class="rss-logo">
    78.7-            <li><a href="{url|urlescape}rss-log">RSS</a></li>
    78.8-            <li><a href="{url|urlescape}atom-log">Atom</a></li>
    78.9-        </ul>
   78.10-        {motd}
   78.11-    </div>
   78.12-
   78.13-    <div id="powered-by">
   78.14-        <p><a href="{logourl}" title="Mercurial"><img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a></p>
   78.15-    </div>
   78.16-
   78.17-</div>
   78.18-
   78.19-</body>
   78.20-</html>
    79.1--- a/templates/monoblue/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
    79.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    79.3@@ -1,65 +0,0 @@
    79.4-{header}
    79.5-    <title>{repo|escape}: graph</title>
    79.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    79.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    79.8-</head>
    79.9-
   79.10-<body>
   79.11-<div id="container">
   79.12-    <div class="page-header">
   79.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / graph</h1>
   79.14-
   79.15-        {searchform}
   79.16-
   79.17-        <ul class="page-nav">
   79.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   79.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   79.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   79.21-            <li class="current">graph</li>
   79.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   79.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   79.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   79.25-            <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a></li>
   79.26-            {archives%archiveentry}
   79.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   79.28-        </ul>
   79.29-    </div>
   79.30-
   79.31-    <h2 class="no-link no-border">graph</h2>
   79.32-
   79.33-    <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
   79.34-    <div id="wrapper">
   79.35-        <canvas id="graph"></canvas>
   79.36-        <ul id="graphnodes">{nodes%graphentry}</ul>
   79.37-    </div>
   79.38-
   79.39-    <script{if(nonce, ' nonce="{nonce}"')}>
   79.40-    document.getElementById('noscript').style.display = 'none';
   79.41-
   79.42-    var data = {jsdata|json};
   79.43-    var graph = new Graph();
   79.44-    graph.scale({bg_height});
   79.45-    graph.render(data);
   79.46-    </script>
   79.47-
   79.48-    <div class="page-path">
   79.49-        <a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
   79.50-        <a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
   79.51-        | {changenav%navgraph}
   79.52-    </div>
   79.53-
   79.54-    <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   79.55-    ajaxScrollInit(
   79.56-            '{url|urlescape}graph/%next%{graphvars%urlparameter}',
   79.57-            '{nextentry%"{node}"}', <!-- NEXTHASH
   79.58-            function (htmlText) \{
   79.59-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
   79.60-                return m ? m[1] : null;
   79.61-            },
   79.62-            '#wrapper',
   79.63-            '<div class="%class%" style="text-align: center;">%text%</div>',
   79.64-            'graph'
   79.65-    );
   79.66-    </script>
   79.67-
   79.68-{footer}
    80.1--- a/templates/monoblue/graphentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
    80.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    80.3@@ -1,9 +0,0 @@
    80.4-<li class="parity{parity}" data-node="{node|short}">
    80.5-    <div class="fg">
    80.6-        <span class="desc">
    80.7-            <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
    80.8-        </span>
    80.9-        {alltags}
   80.10-        <div class="info"><span class="age">{date|rfc822date}</span>, by {author|person}</div>
   80.11-    </div>
   80.12-</li>
    81.1--- a/templates/monoblue/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
    81.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    81.3@@ -1,7 +0,0 @@
    81.4-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    81.5-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    81.6-<head>
    81.7-    <link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png" />
    81.8-    <meta name="robots" content="index, nofollow"/>
    81.9-    <link rel="stylesheet" href="{staticurl|urlescape}style-monoblue.css" type="text/css" />
   81.10-    <script type="text/javascript" src="{staticurl|urlescape}mercurial.js"></script>
    82.1--- a/templates/monoblue/help.tmpl	Sun Jul 21 21:01:03 2024 -0400
    82.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.3@@ -1,32 +0,0 @@
    82.4-{header}
    82.5-    <title>Help: {topic}</title>
    82.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    82.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    82.8-</head>
    82.9-
   82.10-<body>
   82.11-<div id="container">
   82.12-    <div class="page-header">
   82.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / help</h1>
   82.14-
   82.15-        {searchform}
   82.16-
   82.17-        <ul class="page-nav">
   82.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   82.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   82.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   82.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   82.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   82.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   82.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   82.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   82.26-            <li class="current">help</li>
   82.27-        </ul>
   82.28-    </div>
   82.29-
   82.30-    <h2 class="no-link no-border">help</h2>
   82.31-    <div id="doc">
   82.32-    {rstdoc(doc, "html")}
   82.33-    </div>
   82.34-
   82.35-{footer}
    83.1--- a/templates/monoblue/helptopics.tmpl	Sun Jul 21 21:01:03 2024 -0400
    83.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.3@@ -1,46 +0,0 @@
    83.4-{header}
    83.5-    <title>Help: {title}</title>
    83.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    83.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    83.8-</head>
    83.9-
   83.10-<body>
   83.11-<div id="container">
   83.12-    <div class="page-header">
   83.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / help</h1>
   83.14-
   83.15-        {searchform}
   83.16-
   83.17-        <ul class="page-nav">
   83.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   83.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   83.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   83.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   83.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   83.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   83.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   83.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   83.26-            {if(subindex,
   83.27-              '<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>',
   83.28-              '<li class="current">help</li>'
   83.29-            )}
   83.30-        </ul>
   83.31-    </div>
   83.32-
   83.33-    <h2 class="no-link no-border">help</h2>
   83.34-    <table cellspacing="0">
   83.35-    <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
   83.36-    {topics % helpentry}
   83.37-
   83.38-    {if(earlycommands, '
   83.39-    <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
   83.40-    {earlycommands % helpentry}
   83.41-    ')}
   83.42-
   83.43-    {if(othercommands, '
   83.44-    <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
   83.45-    {othercommands % helpentry}
   83.46-    ')}
   83.47-    </table>
   83.48-
   83.49-{footer}
    84.1--- a/templates/monoblue/index.tmpl	Sun Jul 21 21:01:03 2024 -0400
    84.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    84.3@@ -1,34 +0,0 @@
    84.4-{header}
    84.5-    <title>Mercurial repositories index</title>
    84.6-</head>
    84.7-
    84.8-<body>
    84.9-<div id="container">
   84.10-    <div class="page-header">
   84.11-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h1>
   84.12-        <ul class="page-nav">
   84.13-        </ul>
   84.14-    </div>
   84.15-
   84.16-    <table cellspacing="0">
   84.17-        <tr>
   84.18-            <td><a href="?sort={sort_name}">Name</a></td>
   84.19-            <td><a href="?sort={sort_description}">Description</a></td>
   84.20-            <td><a href="?sort={sort_contact}">Contact</a></td>
   84.21-            <td><a href="?sort={sort_lastchange}">Last modified</a></td>
   84.22-            <td>&nbsp;</td>
   84.23-            <td>&nbsp;</td>
   84.24-        </tr>
   84.25-        {entries%indexentry}
   84.26-    </table>
   84.27-    <div class="page-footer">
   84.28-        {motd}
   84.29-    </div>
   84.30-
   84.31-    <div id="powered-by">
   84.32-        <p><a href="{logourl}" title="Mercurial"><img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
   84.33-    </div>
   84.34-
   84.35-</div>
   84.36-</body>
   84.37-</html>
    85.1--- a/templates/monoblue/manifest.tmpl	Sun Jul 21 21:01:03 2024 -0400
    85.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.3@@ -1,41 +0,0 @@
    85.4-{header}
    85.5-<title>{repo|escape}: files</title>
    85.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    85.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    85.8-</head>
    85.9-
   85.10-<body>
   85.11-<div id="container">
   85.12-    <div class="page-header">
   85.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / files</h1>
   85.14-
   85.15-        {searchform}
   85.16-
   85.17-        <ul class="page-nav">
   85.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   85.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   85.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   85.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   85.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   85.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   85.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   85.25-            <li class="current">files</li>
   85.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   85.27-        </ul>
   85.28-    </div>
   85.29-
   85.30-    <ul class="submenu">
   85.31-        <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
   85.32-        {archives%archiveentry}
   85.33-    </ul>
   85.34-
   85.35-    <h2 class="no-link no-border">files</h2>
   85.36-    <p class="files">{path|escape} {alltags}</p>
   85.37-
   85.38-    <table>
   85.39-        {ifeq(path, up, '', updirentry)}
   85.40-        {dentries%direntry}
   85.41-        {fentries%fileentry}
   85.42-    </table>
   85.43-
   85.44-{footer}
    86.1--- a/templates/monoblue/map	Sun Jul 21 21:01:03 2024 -0400
    86.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    86.3@@ -1,318 +0,0 @@
    86.4-default = 'summary'
    86.5-mimetype = 'text/html; charset={encoding}'
    86.6-header = header.tmpl
    86.7-footer = footer.tmpl
    86.8-search = search.tmpl
    86.9-changelog = changelog.tmpl
   86.10-summary = summary.tmpl
   86.11-error = error.tmpl
   86.12-notfound = notfound.tmpl
   86.13-
   86.14-help = help.tmpl
   86.15-helptopics = helptopics.tmpl
   86.16-
   86.17-helpentry = '
   86.18-  <tr><td>
   86.19-    <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
   86.20-      {if(basename, '{basename|escape}', '{topic|escape}')}
   86.21-    </a>
   86.22-  </td><td>
   86.23-    {summary|escape}
   86.24-  </td></tr>'
   86.25-
   86.26-naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   86.27-navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   86.28-navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
   86.29-filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
   86.30-filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
   86.31-filenodelink = '
   86.32-  <tr class="parity{parity}">
   86.33-    <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
   86.34-    <td></td>
   86.35-    <td>
   86.36-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   86.37-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
   86.38-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   86.39-      <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   86.40-      <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
   86.41-    </td>
   86.42-  </tr>'
   86.43-filenolink = '
   86.44-  <tr class="parity{parity}">
   86.45-    <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
   86.46-    <td></td>
   86.47-    <td>
   86.48-      file |
   86.49-      annotate |
   86.50-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
   86.51-      <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
   86.52-      <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
   86.53-    </td>
   86.54-  </tr>'
   86.55-
   86.56-nav = '{before%naventry} {after%naventry}'
   86.57-navshort = '{before%navshortentry}{after%navshortentry}'
   86.58-navgraph = '{before%navgraphentry}{after%navgraphentry}'
   86.59-filenav = '{before%filenaventry}{after%filenaventry}'
   86.60-
   86.61-fileellipses = '...'
   86.62-changelogentry = changelogentry.tmpl
   86.63-changeset = changeset.tmpl
   86.64-manifest = manifest.tmpl
   86.65-updirentry = '
   86.66-  <tr class="parity{upparity}">
   86.67-    <td>drwxr-xr-x</td>
   86.68-    <td></td>
   86.69-    <td></td>
   86.70-    <td>
   86.71-      <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
   86.72-    </td>
   86.73-    <td class="link">&nbsp;</td>
   86.74-  </tr>'
   86.75-direntry = '
   86.76-  <tr class="parity{parity}">
   86.77-    <td>drwxr-xr-x</td>
   86.78-    <td></td>
   86.79-    <td></td>
   86.80-    <td>
   86.81-      <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
   86.82-      <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
   86.83-    </td>
   86.84-    <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
   86.85-  </tr>'
   86.86-fileentry = '
   86.87-  <tr class="parity{parity}">
   86.88-    <td>{permissions|permissions}</td>
   86.89-    <td>{date|isodate}</td>
   86.90-    <td>{size}</td>
   86.91-    <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
   86.92-    <td>
   86.93-      <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
   86.94-      <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
   86.95-      <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
   86.96-    </td>
   86.97-  </tr>'
   86.98-filerevision = filerevision.tmpl
   86.99-fileannotate = fileannotate.tmpl
  86.100-filediff = filediff.tmpl
  86.101-filecomparison = filecomparison.tmpl
  86.102-filelog = filelog.tmpl
  86.103-fileline = '
  86.104-  <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
  86.105-annotateline = '
  86.106-  <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
  86.107-    <td class="annotate linenr parity{blockparity}">
  86.108-      {if(blockhead,
  86.109-          '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  86.110-             {rev}
  86.111-           </a>')}
  86.112-      <div class="annotate-info">
  86.113-        <div>
  86.114-          <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  86.115-            {node|short}</a>
  86.116-          {desc|escape|firstline}
  86.117-        </div>
  86.118-        <div><em>{author|obfuscate}</em></div>
  86.119-        <div>parents: {parents%annotateparent}</div>
  86.120-        <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
  86.121-        <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
  86.122-      </div>
  86.123-    </td>
  86.124-    <td class="lineno">
  86.125-      <a href="#{lineid}">{linenumber}</a>
  86.126-    </td>
  86.127-    <td class="source">{line|escape}</td>
  86.128-  </tr>'
  86.129-annotateparent = '
  86.130-  <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
  86.131-difflineplus = '
  86.132-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
  86.133-difflineminus = '
  86.134-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
  86.135-difflineat = '
  86.136-  <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
  86.137-diffline = '
  86.138-  <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
  86.139-
  86.140-comparisonblock ='
  86.141-  <tbody class="block">
  86.142-  {lines}
  86.143-  </tbody>'
  86.144-comparisonline = '
  86.145-  <tr id="{lineid}">
  86.146-    <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
  86.147-    <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
  86.148-  </tr>'
  86.149-
  86.150-changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
  86.151-changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
  86.152-changesetparent = '
  86.153-  <dt>parent {rev}</dt>
  86.154-  <dd>{changesetlink}</dd>'
  86.155-changesetparentdiff = '
  86.156-  <dt>parent {rev}</dt>
  86.157-  <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>'
  86.158-difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
  86.159-filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
  86.160-filerevparent = '
  86.161-  <dt>parent {rev}</dt>
  86.162-  <dd>
  86.163-    <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  86.164-      {rename%filerename}{node|short}
  86.165-    </a>
  86.166-  </dd>'
  86.167-filerename = '{file|escape}@'
  86.168-filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
  86.169-fileannotateparent = '
  86.170-  <dt>parent {rev}</dt>
  86.171-  <dd>
  86.172-    <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
  86.173-      {rename%filerename}{node|short}
  86.174-    </a>
  86.175-  </dd>'
  86.176-changesetchild = '
  86.177-  <dt>child {rev}</dt>
  86.178-  <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
  86.179-filerevchild = '
  86.180-  <dt>child {rev}</dt>
  86.181-  <dd>
  86.182-    <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
  86.183-  </dd>'
  86.184-fileannotatechild = '
  86.185-  <dt>child {rev}</dt>
  86.186-  <dd>
  86.187-    <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
  86.188-  </dd>'
  86.189-tags = tags.tmpl
  86.190-tagentry = '
  86.191-  <tr class="parity{parity}">
  86.192-    <td class="nowrap age">{date|rfc822date}</td>
  86.193-    <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td>
  86.194-    <td class="nowrap">
  86.195-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  86.196-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  86.197-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  86.198-    </td>
  86.199-  </tr>'
  86.200-bookmarks = bookmarks.tmpl
  86.201-bookmarkentry = '
  86.202-  <tr class="parity{parity}">
  86.203-    <td class="nowrap age">{date|rfc822date}</td>
  86.204-    <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
  86.205-    <td class="nowrap">
  86.206-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  86.207-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  86.208-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  86.209-    </td>
  86.210-  </tr>'
  86.211-branches = branches.tmpl
  86.212-branchentry = '
  86.213-  <tr class="parity{parity}">
  86.214-    <td class="nowrap age">{date|rfc822date}</td>
  86.215-    <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td>
  86.216-    <td class="nowrap">
  86.217-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  86.218-      <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
  86.219-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  86.220-    </td>
  86.221-  </tr>'
  86.222-diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
  86.223-filediffparent = '
  86.224-  <dt>parent {rev}</dt>
  86.225-  <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
  86.226-filecompparent = '
  86.227-  <dt>parent {rev}</dt>
  86.228-  <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
  86.229-filediffchild = '
  86.230-  <dt>child {rev}</dt>
  86.231-  <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
  86.232-filecompchild = '
  86.233-  <dt>child {rev}</dt>
  86.234-  <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
  86.235-shortlog = shortlog.tmpl
  86.236-phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}'
  86.237-obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}'
  86.238-instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> '
  86.239-tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
  86.240-branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
  86.241-inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
  86.242-bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
  86.243-alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>'
  86.244-successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
  86.245-obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
  86.246-obsfateverb = '{obsfateverb(successors, markers)}'
  86.247-obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
  86.248-obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
  86.249-obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
  86.250-obsfateentry = '
  86.251-  <dt>obsolete</dt>
  86.252-  <dd>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</dd>'
  86.253-instabilitychangesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
  86.254-divergentnode = '{instabilitychangesetlink} ({phase})'
  86.255-whyunstableentry = '
  86.256-  <dt>unstable</dt>
  86.257-  <dd>{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</dd>'
  86.258-shortlogentry = '
  86.259-  <tr class="parity{parity}">
  86.260-    <td class="nowrap age">{date|rfc822date}</td>
  86.261-    <td>{author|person}</td>
  86.262-    <td>
  86.263-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
  86.264-        {desc|strip|firstline|escape|nonempty}
  86.265-        {alltags}
  86.266-      </a>
  86.267-    </td>
  86.268-    <td class="nowrap">
  86.269-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
  86.270-      <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
  86.271-    </td>
  86.272-  </tr>'
  86.273-filelogentry = '
  86.274-  <tr class="parity{parity}">
  86.275-    <td class="nowrap age">{date|rfc822date}</td>
  86.276-    <td>{author|person}</td>
  86.277-    <td>
  86.278-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
  86.279-        {desc|strip|firstline|escape|nonempty}
  86.280-        {alltags}
  86.281-      </a>
  86.282-    </td>
  86.283-    <td class="nowrap">
  86.284-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
  86.285-      <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
  86.286-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  86.287-      {rename%filelogrename}
  86.288-    </td>
  86.289-  </tr>'
  86.290-archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>'
  86.291-indexentry = '
  86.292-  <tr class="parity{parity}">
  86.293-    <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
  86.294-    <td>{description}</td>
  86.295-    <td>{contact|obfuscate}</td>
  86.296-    <td class="age">{lastchange|rfc822date}</td>
  86.297-    <td class="indexlinks">{archives%indexarchiveentry}</td>
  86.298-    <td>
  86.299-        {if(isdirectory, '',
  86.300-            '<div class="rss_logo">
  86.301-                <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
  86.302-            </div>'
  86.303-            )}
  86.304-    </td>
  86.305-  </tr>\n'
  86.306-indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
  86.307-index = index.tmpl
  86.308-urlparameter = '{separator}{name}={value|urlescape}'
  86.309-hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
  86.310-graph = graph.tmpl
  86.311-graphentry = graphentry.tmpl
  86.312-breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
  86.313-
  86.314-searchform = '
  86.315-  <form action="{url|urlescape}log">
  86.316-    {sessionvars%hiddenformentry}
  86.317-    <dl class="search">
  86.318-      <dt><label>Search: </label></dt>
  86.319-      <dd><input type="text" name="rev" value="{query|escape}" /></dd>
  86.320-    </dl>
  86.321-  </form>'
    87.1--- a/templates/monoblue/notfound.tmpl	Sun Jul 21 21:01:03 2024 -0400
    87.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    87.3@@ -1,32 +0,0 @@
    87.4-{header}
    87.5-    <title>Mercurial repository not found</title>
    87.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    87.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    87.8-</head>
    87.9-
   87.10-<body>
   87.11-<div id="container">
   87.12-    <div class="page-header">
   87.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / not found: {repo|escape}</h1>
   87.14-
   87.15-        {searchform}
   87.16-
   87.17-        <ul class="page-nav">
   87.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   87.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   87.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   87.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   87.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   87.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   87.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   87.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   87.26-            {archives%archiveentry}
   87.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   87.28-        </ul>
   87.29-    </div>
   87.30-
   87.31-    <h2 class="no-link no-border">Not Found</h2>
   87.32-    <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
   87.33-    <p class="normal">Please go back to the <a href="{url|urlescape}">main repository list page</a>.</p>
   87.34-
   87.35-{footer}
    88.1--- a/templates/monoblue/search.tmpl	Sun Jul 21 21:01:03 2024 -0400
    88.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    88.3@@ -1,31 +0,0 @@
    88.4-{header}
    88.5-    <title>{repo|escape}: Search</title>
    88.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    88.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    88.8-</head>
    88.9-
   88.10-<body>
   88.11-<div id="container">
   88.12-    <div class="page-header">
   88.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / search</h1>
   88.14-
   88.15-        {searchform}
   88.16-
   88.17-        <ul class="page-nav">
   88.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   88.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   88.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   88.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   88.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   88.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   88.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   88.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   88.26-            {archives%archiveentry}
   88.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   88.28-        </ul>
   88.29-    </div>
   88.30-
   88.31-    <h2 class="no-link no-border">searching for {query|escape}</h2>
   88.32-    {entries%changelogentry}
   88.33-
   88.34-{footer}
    89.1--- a/templates/monoblue/shortlog.tmpl	Sun Jul 21 21:01:03 2024 -0400
    89.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    89.3@@ -1,53 +0,0 @@
    89.4-{header}
    89.5-    <title>{repo|escape}: shortlog</title>
    89.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    89.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    89.8-</head>
    89.9-
   89.10-<body>
   89.11-<div id="container">
   89.12-    <div class="page-header">
   89.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / shortlog</h1>
   89.14-
   89.15-        {searchform}
   89.16-
   89.17-        <ul class="page-nav">
   89.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   89.19-            <li class="current">shortlog</li>
   89.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   89.21-            <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   89.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   89.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   89.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   89.25-            <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a></li>
   89.26-            {archives%archiveentry}
   89.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   89.28-        </ul>
   89.29-    </div>
   89.30-
   89.31-    <h2 class="no-link no-border">shortlog</h2>
   89.32-
   89.33-    <table class="shortlogtable">
   89.34-{entries%shortlogentry}
   89.35-    </table>
   89.36-
   89.37-    <div class="page-path">
   89.38-    {changenav%navshort}
   89.39-    </div>
   89.40-
   89.41-    <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   89.42-    ajaxScrollInit(
   89.43-            '{url|urlescape}shortlog/%next%{sessionvars%urlparameter}',
   89.44-            '{nextentry%"{node}"}', <!-- NEXTHASH
   89.45-            function (htmlText) \{
   89.46-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
   89.47-                return m ? m[1] : null;
   89.48-            },
   89.49-            '.shortlogtable > tbody:nth-of-type(1)',
   89.50-            '<tr class="%class%">\
   89.51-            <td colspan="4" style="text-align: center;">%text%</td>\
   89.52-            </tr>'
   89.53-    );
   89.54-    </script>
   89.55-
   89.56-{footer}
    90.1--- a/templates/monoblue/summary.tmpl	Sun Jul 21 21:01:03 2024 -0400
    90.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    90.3@@ -1,71 +0,0 @@
    90.4-{header}
    90.5-    <title>{repo|escape}: Summary</title>
    90.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
    90.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
    90.8-</head>
    90.9-
   90.10-<body>
   90.11-<div id="container">
   90.12-    <div class="page-header">
   90.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / summary</h1>
   90.14-
   90.15-        {searchform}
   90.16-
   90.17-        <ul class="page-nav">
   90.18-            <li class="current">summary</li>
   90.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   90.20-            <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
   90.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   90.22-            <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   90.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   90.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   90.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   90.26-            {archives%archiveentry}
   90.27-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   90.28-        </ul>
   90.29-    </div>
   90.30-
   90.31-    <h2 class="no-link no-border">Mercurial Repository Overview</h2>
   90.32-    <dl class="overview">
   90.33-        <dt>name</dt>
   90.34-        <dd>{repo|escape}</dd>
   90.35-        <dt>description</dt>
   90.36-        <dd>{desc}</dd>
   90.37-        <dt>owner</dt>
   90.38-        <dd>{owner|obfuscate}</dd>
   90.39-        <dt>last change</dt>
   90.40-        <dd class="date age">{lastchange|rfc822date}</dd>
   90.41-    </dl>
   90.42-
   90.43-    <h2><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">Changes</a></h2>
   90.44-    <table>
   90.45-{shortlog%shortlogentry}
   90.46-        <tr class="light">
   90.47-            <td colspan="4"><a class="list" href="{url|urlescape}shortlog{sessionvars%urlparameter}">...</a></td>
   90.48-        </tr>
   90.49-    </table>
   90.50-
   90.51-    <h2><a href="{url|urlescape}tags{sessionvars%urlparameter}">Tags</a></h2>
   90.52-    <table>
   90.53-{tags%tagentry}
   90.54-        <tr class="light">
   90.55-            <td colspan="3"><a class="list" href="{url|urlescape}tags{sessionvars%urlparameter}">...</a></td>
   90.56-        </tr>
   90.57-    </table>
   90.58-
   90.59-    <h2><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">Bookmarks</a></h2>
   90.60-    <table>
   90.61-    {bookmarks%bookmarkentry}
   90.62-        <tr class="light">
   90.63-            <td colspan="3"><a class="list" href="{url|urlescape}bookmarks{sessionvars%urlparameter}">...</a></td>
   90.64-        </tr>
   90.65-    </table>
   90.66-
   90.67-    <h2><a href="{url|urlescape}branches{sessionvars%urlparameter}">Branches</a></h2>
   90.68-    <table>
   90.69-    {branches%branchentry}
   90.70-        <tr class="light">
   90.71-          <td colspan="3"><a class="list" href="{url|urlescape}branches{sessionvars%urlparameter}">...</a></td>
   90.72-        </tr>
   90.73-    </table>
   90.74-{footer}
    91.1--- a/templates/monoblue/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
    91.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    91.3@@ -1,32 +0,0 @@
    91.4-{header}
    91.5-    <title>{repo|escape}: Tags</title>
    91.6-    <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags"/>
    91.7-    <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags"/>
    91.8-</head>
    91.9-
   91.10-<body>
   91.11-<div id="container">
   91.12-    <div class="page-header">
   91.13-        <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / tags</h1>
   91.14-
   91.15-        {searchform}
   91.16-
   91.17-        <ul class="page-nav">
   91.18-            <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
   91.19-            <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
   91.20-            <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
   91.21-            <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   91.22-            <li class="current">tags</li>
   91.23-            <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   91.24-            <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   91.25-            <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li>
   91.26-            <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   91.27-        </ul>
   91.28-    </div>
   91.29-
   91.30-    <h2 class="no-link no-border">tags</h2>
   91.31-    <table cellspacing="0">
   91.32-{entries%tagentry}
   91.33-    </table>
   91.34-
   91.35-{footer}
    93.1--- a/templates/paper/bookmarks.tmpl	Sun Jul 21 21:01:03 2024 -0400
    93.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    93.3@@ -1,53 +0,0 @@
    93.4-{header}
    93.5-<title>{repo|escape}: bookmarks</title>
    93.6-<link rel="alternate" type="application/atom+xml"
    93.7-   href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
    93.8-<link rel="alternate" type="application/rss+xml"
    93.9-   href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
   93.10-</head>
   93.11-<body>
   93.12-
   93.13-<div class="container">
   93.14-<div class="menu">
   93.15-<div class="logo">
   93.16-<a href="{logourl}">
   93.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
   93.18-</div>
   93.19-<ul>
   93.20-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
   93.21-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   93.22-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   93.23-<li class="active">bookmarks</li>
   93.24-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   93.25-</ul>
   93.26-<ul>
   93.27-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   93.28-</ul>
   93.29-<div class="atom-logo">
   93.30-<a href="{url|urlescape}atom-bookmarks" title="subscribe to atom feed">
   93.31-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
   93.32-</a>
   93.33-</div>
   93.34-</div>
   93.35-
   93.36-<div class="main">
   93.37-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   93.38-<h3>bookmarks</h3>
   93.39-
   93.40-{searchform}
   93.41-
   93.42-<table class="bigtable">
   93.43-<thead>
   93.44-<tr>
   93.45- <th>bookmark</th>
   93.46- <th>node</th>
   93.47-</tr>
   93.48-</thead>
   93.49-<tbody class="stripes2">
   93.50-{entries%bookmarkentry}
   93.51-</tbody>
   93.52-</table>
   93.53-</div>
   93.54-</div>
   93.55-
   93.56-{footer}
    94.1--- a/templates/paper/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
    94.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.3@@ -1,53 +0,0 @@
    94.4-{header}
    94.5-<title>{repo|escape}: branches</title>
    94.6-<link rel="alternate" type="application/atom+xml"
    94.7-   href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches" />
    94.8-<link rel="alternate" type="application/rss+xml"
    94.9-   href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches" />
   94.10-</head>
   94.11-<body>
   94.12-
   94.13-<div class="container">
   94.14-<div class="menu">
   94.15-<div class="logo">
   94.16-<a href="{logourl}">
   94.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
   94.18-</div>
   94.19-<ul>
   94.20-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
   94.21-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   94.22-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   94.23-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   94.24-<li class="active">branches</li>
   94.25-</ul>
   94.26-<ul>
   94.27- <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   94.28-</ul>
   94.29-<div class="atom-logo">
   94.30-<a href="{url|urlescape}atom-branches" title="subscribe to atom feed">
   94.31-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
   94.32-</a>
   94.33-</div>
   94.34-</div>
   94.35-
   94.36-<div class="main">
   94.37-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   94.38-<h3>branches</h3>
   94.39-
   94.40-{searchform}
   94.41-
   94.42-<table class="bigtable">
   94.43-<thead>
   94.44-<tr>
   94.45- <th>branch</th>
   94.46- <th>node</th>
   94.47-</tr>
   94.48-</thead>
   94.49-<tbody class="stripes2">
   94.50-{entries % branchentry}
   94.51-</tbody>
   94.52-</table>
   94.53-</div>
   94.54-</div>
   94.55-
   94.56-{footer}
    95.1--- a/templates/paper/changeset.tmpl	Sun Jul 21 21:01:03 2024 -0400
    95.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.3@@ -1,95 +0,0 @@
    95.4-{header}
    95.5-<title>{repo|escape}: {node|short}</title>
    95.6-</head>
    95.7-<body>
    95.8-<div class="container">
    95.9-<div class="menu">
   95.10-<div class="logo">
   95.11-<a href="{logourl}">
   95.12-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
   95.13-</div>
   95.14-<ul>
   95.15- <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
   95.16- <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   95.17- <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   95.18- <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   95.19- <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   95.20-</ul>
   95.21-<ul>
   95.22- <li class="active">changeset</li>
   95.23- <li><a href="{url|urlescape}raw-rev/{symrev}{sessionvars%urlparameter}">raw</a></li>
   95.24- <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">browse</a></li>
   95.25-</ul>
   95.26-<ul>
   95.27- {archives%archiveentry}
   95.28-</ul>
   95.29-<ul>
   95.30- <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   95.31-</ul>
   95.32-</div>
   95.33-
   95.34-<div class="main">
   95.35-
   95.36-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   95.37-<h3>
   95.38- changeset {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
   95.39- {alltags}
   95.40-</h3>
   95.41-
   95.42-{searchform}
   95.43-
   95.44-<div class="description">{desc|strip|escape|websub|nonempty}</div>
   95.45-
   95.46-<table id="changesetEntry">
   95.47-<tr>
   95.48- <th class="author">author</th>
   95.49- <td class="author">{author|obfuscate}</td>
   95.50-</tr>
   95.51-<tr>
   95.52- <th class="date">date</th>
   95.53- <td class="date age">{date|rfc822date}</td>
   95.54-</tr>
   95.55-{if(obsolete, '<tr>
   95.56- <th>obsolete</th>
   95.57- <td>{join(succsandmarkers%obsfateentry, '<br>\n')}</td>
   95.58-</tr>')}
   95.59-{if(instabilities, '<tr>
   95.60- <th>unstable</th>
   95.61- <td>{join(whyunstable%whyunstableentry, '<br>\n')}</td>
   95.62-</tr>')}
   95.63-<tr>
   95.64- <th class="author">parents</th>
   95.65- <td class="author">{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}</td>
   95.66-</tr>
   95.67-<tr>
   95.68- <th class="author">children</th>
   95.69- <td class="author">{child%changesetchild}</td>
   95.70-</tr>
   95.71-<tr>
   95.72- <th class="files">files</th>
   95.73- <td class="files">{files}</td>
   95.74-</tr>
   95.75-<tr>
   95.76-  <th class="diffstat">diffstat</th>
   95.77-  <td class="diffstat">
   95.78-    {diffsummary}
   95.79-    <a id="diffstatexpand" class="diffstattoggle" href="#">[<tt>+</tt>]</a>
   95.80-    <div id="diffstatdetails" style="display:none;">
   95.81-      <a class="diffstattoggle" href="#">[<tt>-</tt>]</a>
   95.82-      <table class="diffstat-table stripes2">{diffstat}</table>
   95.83-    </div>
   95.84-  </td>
   95.85-</tr>
   95.86-</table>
   95.87-
   95.88-<div class="overflow">
   95.89-<div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div>
   95.90-<div class="sourcefirst"> line diff</div>
   95.91-<div class="stripes2 diffblocks">
   95.92-{diff}
   95.93-</div>
   95.94-</div>
   95.95-
   95.96-</div>
   95.97-</div>
   95.98-{footer}
    96.1--- a/templates/paper/diffstat.tmpl	Sun Jul 21 21:01:03 2024 -0400
    96.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    96.3@@ -1,8 +0,0 @@
    96.4-  <tr>
    96.5-    <td class="diffstat-file"><a href="#l{fileno}.1">{file|escape}</a></td>
    96.6-    <td class="diffstat-total" align="right">{total}</td>
    96.7-    <td class="diffstat-graph">
    96.8-      <span class="diffstat-add" style="width:{addpct}%;">&nbsp;</span>
    96.9-      <span class="diffstat-remove" style="width:{removepct}%;">&nbsp;</span>
   96.10-    </td>
   96.11-  </tr>
    97.1--- a/templates/paper/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
    97.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    97.3@@ -1,42 +0,0 @@
    97.4-{header}
    97.5-<title>{repo|escape}: error</title>
    97.6-</head>
    97.7-<body>
    97.8-
    97.9-<div class="container">
   97.10-<div class="menu">
   97.11-<div class="logo">
   97.12-<a href="{logourl}">
   97.13-<img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
   97.14-</div>
   97.15-<ul>
   97.16-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
   97.17-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
   97.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   97.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   97.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   97.21-</ul>
   97.22-<ul>
   97.23-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   97.24-</ul>
   97.25-</div>
   97.26-
   97.27-<div class="main">
   97.28-
   97.29-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   97.30-<h3>error</h3>
   97.31-
   97.32-{searchform}
   97.33-
   97.34-<div class="description">
   97.35-<p>
   97.36-An error occurred while processing your request:
   97.37-</p>
   97.38-<p>
   97.39-{error|escape}
   97.40-</p>
   97.41-</div>
   97.42-</div>
   97.43-</div>
   97.44-
   97.45-{footer}
    98.1--- a/templates/paper/fileannotate.tmpl	Sun Jul 21 21:01:03 2024 -0400
    98.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    98.3@@ -1,95 +0,0 @@
    98.4-{header}
    98.5-<title>{repo|escape}: {file|escape} annotate</title>
    98.6-</head>
    98.7-<body>
    98.8-
    98.9-<div class="container">
   98.10-<div class="menu">
   98.11-<div class="logo">
   98.12-<a href="{logourl}">
   98.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
   98.14-</div>
   98.15-<ul>
   98.16-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
   98.17-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   98.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   98.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   98.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   98.21-</ul>
   98.22-
   98.23-<ul>
   98.24-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
   98.25-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
   98.26-</ul>
   98.27-<ul>
   98.28-<li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   98.29-<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   98.30-<li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   98.31-<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
   98.32-<li class="active">annotate</li>
   98.33-<li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
   98.34-<li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
   98.35-</ul>
   98.36-<ul>
   98.37-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   98.38-</ul>
   98.39-</div>
   98.40-
   98.41-<div class="main">
   98.42-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   98.43-<h3>
   98.44- annotate {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
   98.45- {alltags}
   98.46-</h3>
   98.47-
   98.48-{searchform}
   98.49-
   98.50-<div class="description">{desc|strip|escape|websub|nonempty}</div>
   98.51-
   98.52-<table id="changesetEntry">
   98.53-<tr>
   98.54- <th class="author">author</th>
   98.55- <td class="author">{author|obfuscate}</td>
   98.56-</tr>
   98.57-<tr>
   98.58- <th class="date">date</th>
   98.59- <td class="date age">{date|rfc822date}</td>
   98.60-</tr>
   98.61-<tr>
   98.62- <th class="author">parents</th>
   98.63- <td class="author">{parent%filerevparent}</td>
   98.64-</tr>
   98.65-<tr>
   98.66- <th class="author">children</th>
   98.67- <td class="author">{child%filerevchild}</td>
   98.68-</tr>
   98.69-</table>
   98.70-
   98.71-{diffoptsform}
   98.72-
   98.73-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
   98.74-    renderDiffOptsForm();
   98.75-</script>
   98.76-
   98.77-<div class="overflow">
   98.78-<table class="bigtable">
   98.79-<thead>
   98.80-<tr>
   98.81- <th class="annotate">rev</th>
   98.82- <th class="line">&nbsp;&nbsp;line source</th>
   98.83-</tr>
   98.84-</thead>
   98.85-<tbody class="stripes2 sourcelines"
   98.86-       data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}"
   98.87-       data-selectabletag="TR"
   98.88-       data-ishead="{ishead}">
   98.89-  {annotate%annotateline}
   98.90-</tbody>
   98.91-</table>
   98.92-</div>
   98.93-</div>
   98.94-</div>
   98.95-
   98.96-<script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script>
   98.97-
   98.98-{footer}
    99.1--- a/templates/paper/filecomparison.tmpl	Sun Jul 21 21:01:03 2024 -0400
    99.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.3@@ -1,90 +0,0 @@
    99.4-{header}
    99.5-<title>{repo|escape}: {file|escape} comparison</title>
    99.6-</head>
    99.7-<body>
    99.8-
    99.9-<div class="container">
   99.10-<div class="menu">
   99.11-<div class="logo">
   99.12-<a href="{logourl}">
   99.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
   99.14-</div>
   99.15-<ul>
   99.16-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
   99.17-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
   99.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
   99.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
   99.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
   99.21-</ul>
   99.22-<ul>
   99.23-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
   99.24-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
   99.25-</ul>
   99.26-<ul>
   99.27-<li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
   99.28-<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
   99.29-<li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
   99.30-<li class="active">comparison</li>
   99.31-<li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
   99.32-<li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
   99.33-<li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
   99.34-</ul>
   99.35-<ul>
   99.36-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
   99.37-</ul>
   99.38-</div>
   99.39-
   99.40-<div class="main">
   99.41-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
   99.42-<h3>
   99.43- comparison {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
   99.44- {alltags}
   99.45-</h3>
   99.46-
   99.47-{searchform}
   99.48-
   99.49-<div class="description">{desc|strip|escape|websub|nonempty}</div>
   99.50-
   99.51-<table id="changesetEntry">
   99.52-<tr>
   99.53- <th>author</th>
   99.54- <td>{author|obfuscate}</td>
   99.55-</tr>
   99.56-<tr>
   99.57- <th>date</th>
   99.58- <td class="date age">{date|rfc822date}</td>
   99.59-</tr>
   99.60-<tr>
   99.61- <th>parents</th>
   99.62- <td>{parent%filerevparent}</td>
   99.63-</tr>
   99.64-<tr>
   99.65- <th>children</th>
   99.66- <td>{child%filerevchild}</td>
   99.67-</tr>
   99.68-</table>
   99.69-
   99.70-<div class="overflow">
   99.71-<div class="sourcefirst">   comparison</div>
   99.72-<div class="legend">
   99.73-  <span class="legendinfo equal">equal</span>
   99.74-  <span class="legendinfo delete">deleted</span>
   99.75-  <span class="legendinfo insert">inserted</span>
   99.76-  <span class="legendinfo replace">replaced</span>
   99.77-</div>
   99.78-
   99.79-<table class="bigtable">
   99.80-  <thead class="header">
   99.81-    <tr>
   99.82-      <th>{leftrev}:{leftnode|short}</th>
   99.83-      <th>{rightrev}:{rightnode|short}</th>
   99.84-    </tr>
   99.85-  </thead>
   99.86-  {comparison}
   99.87-</table>
   99.88-
   99.89-</div>
   99.90-</div>
   99.91-</div>
   99.92-
   99.93-{footer}
   100.1--- a/templates/paper/filediff.tmpl	Sun Jul 21 21:01:03 2024 -0400
   100.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.3@@ -1,77 +0,0 @@
   100.4-{header}
   100.5-<title>{repo|escape}: {file|escape} diff</title>
   100.6-</head>
   100.7-<body>
   100.8-
   100.9-<div class="container">
  100.10-<div class="menu">
  100.11-<div class="logo">
  100.12-<a href="{logourl}">
  100.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  100.14-</div>
  100.15-<ul>
  100.16-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
  100.17-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
  100.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  100.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  100.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  100.21-</ul>
  100.22-<ul>
  100.23-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  100.24-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
  100.25-</ul>
  100.26-<ul>
  100.27-<li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
  100.28-<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
  100.29-<li class="active">diff</li>
  100.30-<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
  100.31-<li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
  100.32-<li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
  100.33-<li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
  100.34-</ul>
  100.35-<ul>
  100.36-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  100.37-</ul>
  100.38-</div>
  100.39-
  100.40-<div class="main">
  100.41-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  100.42-<h3>
  100.43- diff {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
  100.44- {alltags}
  100.45-</h3>
  100.46-
  100.47-{searchform}
  100.48-
  100.49-<div class="description">{desc|strip|escape|websub|nonempty}</div>
  100.50-
  100.51-<table id="changesetEntry">
  100.52-<tr>
  100.53- <th>author</th>
  100.54- <td>{author|obfuscate}</td>
  100.55-</tr>
  100.56-<tr>
  100.57- <th>date</th>
  100.58- <td class="date age">{date|rfc822date}</td>
  100.59-</tr>
  100.60-<tr>
  100.61- <th>parents</th>
  100.62- <td>{parent%filerevparent}</td>
  100.63-</tr>
  100.64-<tr>
  100.65- <th>children</th>
  100.66- <td>{child%filerevchild}</td>
  100.67-</tr>
  100.68-</table>
  100.69-
  100.70-<div class="overflow">
  100.71-<div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div>
  100.72-<div class="sourcefirst"> line diff</div>
  100.73-<div class="stripes2 diffblocks">
  100.74-{diff}
  100.75-</div>
  100.76-</div>
  100.77-</div>
  100.78-</div>
  100.79-
  100.80-{footer}
   101.1--- a/templates/paper/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   101.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   101.3@@ -1,83 +0,0 @@
   101.4-{header}
   101.5-<title>{repo|escape}: {file|escape} history</title>
   101.6-<link rel="alternate" type="application/atom+xml"
   101.7-   href="{url|urlescape}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" />
   101.8-<link rel="alternate" type="application/rss+xml"
   101.9-   href="{url|urlescape}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" />
  101.10-</head>
  101.11-<body>
  101.12-
  101.13-<div class="container">
  101.14-<div class="menu">
  101.15-<div class="logo">
  101.16-<a href="{logourl}">
  101.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  101.18-</div>
  101.19-<ul>
  101.20-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
  101.21-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
  101.22-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  101.23-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  101.24-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  101.25-</ul>
  101.26-<ul>
  101.27-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  101.28-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
  101.29-</ul>
  101.30-<ul>
  101.31-<li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
  101.32-<li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
  101.33-<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
  101.34-<li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
  101.35-<li class="active">file log</li>
  101.36-<li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
  101.37-</ul>
  101.38-<ul>
  101.39-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  101.40-</ul>
  101.41-<div class="atom-logo">
  101.42-<a href="{url|urlescape}atom-log/tip/{file|urlescape}" title="subscribe to atom feed">
  101.43-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
  101.44-</a>
  101.45-</div>
  101.46-</div>
  101.47-
  101.48-<div class="main">
  101.49-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  101.50-<h3>
  101.51- log {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
  101.52- {alltags}
  101.53- {if(linerange,
  101.54-' (following lines {linerange}{if(descend, ', descending')} <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">all revisions for this file</a>)')}
  101.55-</h3>
  101.56-
  101.57-{searchform}
  101.58-
  101.59-<div class="navigate">
  101.60-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a>
  101.61-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a>
  101.62-| {nav%filenav}</div>
  101.63-
  101.64-<table class="bigtable">
  101.65-<thead>
  101.66- <tr>
  101.67-  <th class="age">age</th>
  101.68-  <th class="author">author</th>
  101.69-  <th class="description">description</th>
  101.70- </tr>
  101.71-</thead>
  101.72-<tbody class="stripes2">
  101.73-{entries%filelogentry}
  101.74-</tbody>
  101.75-</table>
  101.76-
  101.77-<div class="navigate">
  101.78-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a>
  101.79-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a>
  101.80-| {nav%filenav}
  101.81-</div>
  101.82-
  101.83-</div>
  101.84-</div>
  101.85-
  101.86-{footer}
   102.1--- a/templates/paper/filelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   102.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   102.3@@ -1,9 +0,0 @@
   102.4- <tr>
   102.5-  <td class="age">{date|rfc822date}</td>
   102.6-  <td class="author">{author|person}</td>
   102.7-  <td class="description">
   102.8-   <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
   102.9-   {alltags}{rename%filelogrename}
  102.10-  </td>
  102.11- </tr>
  102.12- {if(patch, '<tr><td colspan="3">{diff}</td></tr>')}
   103.1--- a/templates/paper/filerevision.tmpl	Sun Jul 21 21:01:03 2024 -0400
   103.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   103.3@@ -1,83 +0,0 @@
   103.4-{header}
   103.5-<title>{repo|escape}: {node|short} {file|escape}</title>
   103.6-</head>
   103.7-<body>
   103.8-
   103.9-<div class="container">
  103.10-<div class="menu">
  103.11-<div class="logo">
  103.12-<a href="{logourl}">
  103.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  103.14-</div>
  103.15-<ul>
  103.16-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
  103.17-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
  103.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  103.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  103.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  103.21-</ul>
  103.22-<ul>
  103.23-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  103.24-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
  103.25-</ul>
  103.26-<ul>
  103.27-<li class="active">file</li>
  103.28-<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
  103.29-<li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
  103.30-<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
  103.31-<li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
  103.32-<li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
  103.33-<li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
  103.34-</ul>
  103.35-<ul>
  103.36-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  103.37-</ul>
  103.38-</div>
  103.39-
  103.40-<div class="main">
  103.41-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  103.42-<h3>
  103.43- view {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
  103.44- {alltags}
  103.45-</h3>
  103.46-
  103.47-{searchform}
  103.48-
  103.49-<div class="description">{desc|strip|escape|websub|nonempty}</div>
  103.50-
  103.51-<table id="changesetEntry">
  103.52-<tr>
  103.53- <th class="author">author</th>
  103.54- <td class="author">{author|obfuscate}</td>
  103.55-</tr>
  103.56-<tr>
  103.57- <th class="date">date</th>
  103.58- <td class="date age">{date|rfc822date}</td>
  103.59-</tr>
  103.60-<tr>
  103.61- <th class="author">parents</th>
  103.62- <td class="author">{parent%filerevparent}</td>
  103.63-</tr>
  103.64-<tr>
  103.65- <th class="author">children</th>
  103.66- <td class="author">{child%filerevchild}</td>
  103.67-</tr>
  103.68-</table>
  103.69-
  103.70-<div class="overflow">
  103.71-<div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div>
  103.72-<div class="sourcefirst"> line source</div>
  103.73-<pre class="sourcelines stripes4 wrap bottomline"
  103.74-     data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}"
  103.75-     data-selectabletag="SPAN"
  103.76-     data-ishead="{ishead}">
  103.77-{text%fileline}
  103.78-</pre>
  103.79-</div>
  103.80-
  103.81-<script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script>
  103.82-
  103.83-</div>
  103.84-</div>
  103.85-
  103.86-{footer}
   104.1--- a/templates/paper/footer.tmpl	Sun Jul 21 21:01:03 2024 -0400
   104.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   104.3@@ -1,4 +0,0 @@
   104.4-{motd}
   104.5-
   104.6-</body>
   104.7-</html>
   105.1--- a/templates/paper/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
   105.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.3@@ -1,89 +0,0 @@
   105.4-{header}
   105.5-<title>{repo|escape}: revision graph</title>
   105.6-<link rel="alternate" type="application/atom+xml"
   105.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}: log" />
   105.8-<link rel="alternate" type="application/rss+xml"
   105.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}: log" />
  105.10-</head>
  105.11-<body>
  105.12-
  105.13-<div class="container">
  105.14-<div class="menu">
  105.15-<div class="logo">
  105.16-<a href="{logourl}">
  105.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  105.18-</div>
  105.19-<ul>
  105.20-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
  105.21-<li class="active">graph</li>
  105.22-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  105.23-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  105.24-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  105.25-</ul>
  105.26-<ul>
  105.27-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  105.28-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
  105.29-</ul>
  105.30-<ul>
  105.31-{archives%archiveentry}
  105.32-</ul>
  105.33-<ul>
  105.34- <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  105.35-</ul>
  105.36-<div class="atom-logo">
  105.37-<a href="{url|urlescape}atom-log" title="subscribe to atom feed">
  105.38-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
  105.39-</a>
  105.40-</div>
  105.41-</div>
  105.42-
  105.43-<div class="main">
  105.44-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  105.45-<h3>graph</h3>
  105.46-
  105.47-{searchform}
  105.48-
  105.49-<div class="navigate">
  105.50-<a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
  105.51-<a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
  105.52-| rev {rev}: {changenav%navgraph}
  105.53-</div>
  105.54-
  105.55-<noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
  105.56-
  105.57-<div id="wrapper">
  105.58-<canvas id="graph"></canvas>
  105.59-<ul id="graphnodes" class="stripes2">{nodes%graphentry}</ul>
  105.60-</div>
  105.61-
  105.62-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
  105.63-var data = {jsdata|json};
  105.64-var graph = new Graph();
  105.65-graph.scale({bg_height});
  105.66-graph.render(data);
  105.67-</script>
  105.68-
  105.69-<div class="navigate">
  105.70-<a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
  105.71-<a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
  105.72-| rev {rev}: {changenav%navgraph}
  105.73-</div>
  105.74-
  105.75-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
  105.76-    ajaxScrollInit(
  105.77-            '{url|urlescape}graph/%next%{graphvars%urlparameter}',
  105.78-            '{nextentry%"{node}"}', <!-- NEXTHASH
  105.79-            function (htmlText) \{
  105.80-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
  105.81-                return m ? m[1] : null;
  105.82-            },
  105.83-            '#wrapper',
  105.84-            '<div class="%class%" style="text-align: center;">%text%</div>',
  105.85-            'graph'
  105.86-    );
  105.87-</script>
  105.88-
  105.89-</div>
  105.90-</div>
  105.91-
  105.92-{footer}
   106.1--- a/templates/paper/graphentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   106.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   106.3@@ -1,9 +0,0 @@
   106.4-<li data-node="{node|short}">
   106.5- <div class="fg">
   106.6-  <span class="desc">
   106.7-   <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
   106.8-  </span>
   106.9-  {alltags}
  106.10-  <div class="info"><span class="age">{date|rfc822date}</span>, by {author|person}</div>
  106.11- </div>
  106.12-</li>
   107.1--- a/templates/paper/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
   107.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   107.3@@ -1,7 +0,0 @@
   107.4-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
   107.5-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
   107.6-<head>
   107.7-<link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png" />
   107.8-<meta name="robots" content="index, nofollow" />
   107.9-<link rel="stylesheet" href="{staticurl|urlescape}style-paper.css" type="text/css" />
  107.10-<script type="text/javascript" src="{staticurl|urlescape}mercurial.js"></script>
   108.1--- a/templates/paper/help.tmpl	Sun Jul 21 21:01:03 2024 -0400
   108.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   108.3@@ -1,34 +0,0 @@
   108.4-{header}
   108.5-<title>Help: {topic}</title>
   108.6-</head>
   108.7-<body>
   108.8-
   108.9-<div class="container">
  108.10-<div class="menu">
  108.11-<div class="logo">
  108.12-<a href="{logourl}">
  108.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  108.14-</div>
  108.15-<ul>
  108.16-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
  108.17-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
  108.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  108.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  108.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  108.21-</ul>
  108.22-<ul>
  108.23- <li class="active"><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  108.24-</ul>
  108.25-</div>
  108.26-
  108.27-<div class="main">
  108.28-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  108.29-<h3>Help: {topic}</h3>
  108.30-{searchform}
  108.31-<div id="doc">
  108.32-{rstdoc(doc, "html")}
  108.33-</div>
  108.34-</div>
  108.35-</div>
  108.36-
  108.37-{footer}
   109.1--- a/templates/paper/helptopics.tmpl	Sun Jul 21 21:01:03 2024 -0400
   109.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   109.3@@ -1,48 +0,0 @@
   109.4-{header}
   109.5-<title>Help: {title}</title>
   109.6-</head>
   109.7-<body>
   109.8-
   109.9-<div class="container">
  109.10-<div class="menu">
  109.11-<div class="logo">
  109.12-<a href="{logourl}">
  109.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  109.14-</div>
  109.15-<ul>
  109.16-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
  109.17-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
  109.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  109.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  109.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  109.21-</ul>
  109.22-<ul>
  109.23-{if(subindex,
  109.24-  '<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>',
  109.25-  '<li class="active">help</li>'
  109.26-)}
  109.27-</ul>
  109.28-</div>
  109.29-
  109.30-<div class="main">
  109.31-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  109.32-{searchform}
  109.33-<table class="bigtable">
  109.34-<tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
  109.35-{topics % helpentry}
  109.36-
  109.37-{if(earlycommands, '
  109.38-<tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
  109.39-{earlycommands % helpentry}
  109.40-')}
  109.41-
  109.42-{if(othercommands, '
  109.43-<tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
  109.44-{othercommands % helpentry}
  109.45-')}
  109.46-
  109.47-</table>
  109.48-</div>
  109.49-</div>
  109.50-
  109.51-{footer}
   110.1--- a/templates/paper/index.tmpl	Sun Jul 21 21:01:03 2024 -0400
   110.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   110.3@@ -1,31 +0,0 @@
   110.4-{header}
   110.5-<title>Mercurial repositories index</title>
   110.6-</head>
   110.7-<body>
   110.8-
   110.9-<div class="container">
  110.10-<div class="menu">
  110.11-<a href="{logourl}">
  110.12-<img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
  110.13-</div>
  110.14-<div class="main">
  110.15-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  110.16-
  110.17-<table class="bigtable">
  110.18-    <thead>
  110.19-    <tr>
  110.20-        <th><a href="?sort={sort_name}">Name</a></th>
  110.21-        <th><a href="?sort={sort_description}">Description</a></th>
  110.22-        <th><a href="?sort={sort_contact}">Contact</a></th>
  110.23-        <th><a href="?sort={sort_lastchange}">Last modified</a></th>
  110.24-        <th>&nbsp;</th>
  110.25-        <th>&nbsp;</th>
  110.26-    </tr>
  110.27-    </thead>
  110.28-    <tbody class="stripes2">
  110.29-    {entries%indexentry}
  110.30-    </tbody>
  110.31-</table>
  110.32-</div>
  110.33-</div>
  110.34-{footer}
   111.1--- a/templates/paper/manifest.tmpl	Sun Jul 21 21:01:03 2024 -0400
   111.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.3@@ -1,56 +0,0 @@
   111.4-{header}
   111.5-<title>{repo|escape}: {node|short} {path|escape}</title>
   111.6-</head>
   111.7-<body>
   111.8-
   111.9-<div class="container">
  111.10-<div class="menu">
  111.11-<div class="logo">
  111.12-<a href="{logourl}">
  111.13-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  111.14-</div>
  111.15-<ul>
  111.16-<li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
  111.17-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
  111.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  111.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  111.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  111.21-</ul>
  111.22-<ul>
  111.23-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  111.24-<li class="active">browse</li>
  111.25-</ul>
  111.26-<ul>
  111.27-{archives%archiveentry}
  111.28-</ul>
  111.29-<ul>
  111.30- <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  111.31-</ul>
  111.32-</div>
  111.33-
  111.34-<div class="main">
  111.35-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  111.36-<h3>
  111.37- directory {path|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
  111.38- {alltags}
  111.39-</h3>
  111.40-
  111.41-{searchform}
  111.42-
  111.43-<table class="bigtable">
  111.44-<thead>
  111.45-<tr>
  111.46-  <th class="name">name</th>
  111.47-  <th class="size">size</th>
  111.48-  <th class="permissions">permissions</th>
  111.49-</tr>
  111.50-</thead>
  111.51-<tbody class="stripes2">
  111.52-{ifeq(path, up, '', updirentry)}
  111.53-{dentries%direntry}
  111.54-{fentries%fileentry}
  111.55-</tbody>
  111.56-</table>
  111.57-</div>
  111.58-</div>
  111.59-{footer}
   112.1--- a/templates/paper/map	Sun Jul 21 21:01:03 2024 -0400
   112.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   112.3@@ -1,292 +0,0 @@
   112.4-default = 'shortlog'
   112.5-
   112.6-mimetype = 'text/html; charset={encoding}'
   112.7-header = header.tmpl
   112.8-footer = footer.tmpl
   112.9-search = search.tmpl
  112.10-
  112.11-changelog = shortlog.tmpl
  112.12-shortlog = shortlog.tmpl
  112.13-shortlogentry = shortlogentry.tmpl
  112.14-graph = graph.tmpl
  112.15-graphentry = graphentry.tmpl
  112.16-help = help.tmpl
  112.17-helptopics = helptopics.tmpl
  112.18-
  112.19-helpentry = '
  112.20-  <tr><td>
  112.21-    <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
  112.22-      {if(basename, '{basename|escape}', '{topic|escape}')}
  112.23-    </a>
  112.24-  </td><td>
  112.25-    {summary|escape}
  112.26-  </td></tr>'
  112.27-
  112.28-naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  112.29-navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  112.30-navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  112.31-filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
  112.32-filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
  112.33-filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
  112.34-filenolink = '{file|escape} '
  112.35-fileellipses = '...'
  112.36-diffstatlink = diffstat.tmpl
  112.37-diffstatnolink = diffstat.tmpl
  112.38-changelogentry = shortlogentry.tmpl
  112.39-changeset = changeset.tmpl
  112.40-manifest = manifest.tmpl
  112.41-
  112.42-nav = '{before%naventry} {after%naventry}'
  112.43-navshort = '{before%navshortentry}{after%navshortentry}'
  112.44-navgraph = '{before%navgraphentry}{after%navgraphentry}'
  112.45-filenav = '{before%filenaventry}{after%filenaventry}'
  112.46-
  112.47-updirentry = '
  112.48-  <tr class="fileline">
  112.49-    <td class="name">
  112.50-      <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
  112.51-    </td>
  112.52-    <td class="size"></td>
  112.53-    <td class="permissions">drwxr-xr-x</td>
  112.54-  </tr>'
  112.55-
  112.56-direntry = '
  112.57-  <tr class="fileline">
  112.58-    <td class="name">
  112.59-      <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
  112.60-        <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
  112.61-      </a>
  112.62-      <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
  112.63-        {emptydirs|escape}
  112.64-      </a>
  112.65-    </td>
  112.66-    <td class="size"></td>
  112.67-    <td class="permissions">drwxr-xr-x</td>
  112.68-  </tr>'
  112.69-
  112.70-fileentry = '
  112.71-  <tr class="fileline">
  112.72-    <td class="filename">
  112.73-      <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
  112.74-        <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
  112.75-      </a>
  112.76-    </td>
  112.77-    <td class="size">{size}</td>
  112.78-    <td class="permissions">{permissions|permissions}</td>
  112.79-  </tr>'
  112.80-
  112.81-filerevision = filerevision.tmpl
  112.82-fileannotate = fileannotate.tmpl
  112.83-filediff = filediff.tmpl
  112.84-filecomparison = filecomparison.tmpl
  112.85-filelog = filelog.tmpl
  112.86-fileline = '
  112.87-  <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
  112.88-filelogentry = filelogentry.tmpl
  112.89-
  112.90-annotateline = '
  112.91-  <tr id="{lineid}"{ifeq(node, originalnode, ' class="thisrev"')}>
  112.92-    <td class="annotate parity{blockparity}">
  112.93-      {if(blockhead,
  112.94-          '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  112.95-             {rev}
  112.96-           </a>')}
  112.97-      <div class="annotate-info">
  112.98-        <div>
  112.99-          <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
 112.100-            {node|short}</a>
 112.101-          {desc|escape|firstline}
 112.102-        </div>
 112.103-        <div><em>{author|obfuscate}</em></div>
 112.104-        <div>parents: {parents%annotateparent}</div>
 112.105-        <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
 112.106-        <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
 112.107-      </div>
 112.108-    </td>
 112.109-    <td class="source followlines-btn-parent"><a href="#{lineid}">{linenumber}</a> {line|escape}</td>
 112.110-  </tr>'
 112.111-annotateparent = '
 112.112-  <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
 112.113-diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>'
 112.114-difflineplus = '
 112.115-  <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
 112.116-difflineminus = '
 112.117-  <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
 112.118-difflineat = '
 112.119-  <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
 112.120-diffline = '
 112.121-  <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
 112.122-
 112.123-comparisonblock ='
 112.124-  <tbody class="block">
 112.125-  {lines}
 112.126-  </tbody>'
 112.127-comparisonline = '
 112.128-  <tr id="{lineid}">
 112.129-    <td class="source {type}"><a href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
 112.130-    <td class="source {type}"><a href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
 112.131-  </tr>'
 112.132-
 112.133-changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
 112.134-
 112.135-changesetparentdiff = '
 112.136-  {changesetparent}
 112.137-  {ifeq(node, basenode, '(current diff)', '({difffrom})')}'
 112.138-
 112.139-difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
 112.140-
 112.141-filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
 112.142-filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
 112.143-
 112.144-filerename = '{file|escape}@'
 112.145-filelogrename = '
 112.146-  <span class="base">
 112.147-    base
 112.148-    <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 112.149-      {file|escape}@{node|short}
 112.150-    </a>
 112.151-  </span>'
 112.152-fileannotateparent = '
 112.153-  <tr>
 112.154-    <td class="metatag">parent:</td>
 112.155-    <td>
 112.156-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 112.157-        {rename%filerename}{node|short}
 112.158-      </a>
 112.159-    </td>
 112.160-  </tr>'
 112.161-changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
 112.162-fileannotatechild = '
 112.163-  <tr>
 112.164-    <td class="metatag">child:</td>
 112.165-    <td>
 112.166-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 112.167-        {node|short}
 112.168-      </a>
 112.169-    </td>
 112.170-  </tr>'
 112.171-tags = tags.tmpl
 112.172-tagentry = '
 112.173-  <tr class="tagEntry">
 112.174-    <td>
 112.175-      <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">
 112.176-        {tag|escape}
 112.177-      </a>
 112.178-    </td>
 112.179-    <td class="node">
 112.180-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
 112.181-        {node|short}
 112.182-      </a>
 112.183-    </td>
 112.184-  </tr>'
 112.185-bookmarks = bookmarks.tmpl
 112.186-bookmarkentry = '
 112.187-  <tr class="tagEntry">
 112.188-    <td>
 112.189-      <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">
 112.190-        {bookmark|escape}
 112.191-      </a>
 112.192-    </td>
 112.193-    <td class="node">
 112.194-      <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
 112.195-        {node|short}
 112.196-      </a>
 112.197-    </td>
 112.198-  </tr>'
 112.199-branches = branches.tmpl
 112.200-branchentry = '
 112.201-  <tr class="tagEntry">
 112.202-    <td>
 112.203-      <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}">
 112.204-        {branch|escape}
 112.205-      </a>
 112.206-    </td>
 112.207-    <td class="node">
 112.208-      <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
 112.209-        {node|short}
 112.210-      </a>
 112.211-    </td>
 112.212-  </tr>'
 112.213-phasetag = '{ifeq(phase, 'public', '', '<span class="phase">{phase|escape}</span> ')}'
 112.214-obsoletetag = '{if(obsolete, '<span class="obsolete">obsolete</span> ')}'
 112.215-instabilitytag = '<span class="instability">{instability|escape}</span> '
 112.216-changelogtag = '<span class="tag">{name|escape}</span> '
 112.217-changesettag = '<span class="tag">{tag|escape}</span> '
 112.218-changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
 112.219-changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
 112.220-changelogbranchname = '<span class="branchname">{name|escape}</span> '
 112.221-alltags = '{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}{bookmarks%changelogtag}'
 112.222-
 112.223-successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
 112.224-obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
 112.225-obsfateverb = '{obsfateverb(successors, markers)}'
 112.226-obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
 112.227-obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
 112.228-obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
 112.229-obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}'
 112.230-instabilitychangesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
 112.231-divergentnode = '{instabilitychangesetlink} ({phase})'
 112.232-whyunstableentry = '{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}'
 112.233-
 112.234-filediffparent = '
 112.235-  <tr>
 112.236-    <th class="parent">parent {rev}:</th>
 112.237-    <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
 112.238-  </tr>'
 112.239-filediffchild = '
 112.240-  <tr>
 112.241-    <th class="child">child {rev}:</th>
 112.242-    <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
 112.243-  </td>
 112.244-  </tr>'
 112.245-
 112.246-indexentry = '
 112.247-  <tr>
 112.248-    <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
 112.249-    <td>{description}</td>
 112.250-    <td>{contact|obfuscate}</td>
 112.251-    <td class="age">{lastchange|rfc822date}</td>
 112.252-    <td class="indexlinks">{archives%indexarchiveentry}</td>
 112.253-    <td>
 112.254-        {if(isdirectory, '',
 112.255-            '<a href="{url|urlescape}atom-log" title="subscribe to repository atom feed">
 112.256-                <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository atom feed">
 112.257-            </a>'
 112.258-            )}
 112.259-    </td>
 112.260-  </tr>\n'
 112.261-indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
 112.262-index = index.tmpl
 112.263-archiveentry = '
 112.264-  <li>
 112.265-    <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
 112.266-  </li>'
 112.267-notfound = notfound.tmpl
 112.268-error = error.tmpl
 112.269-urlparameter = '{separator}{name}={value|urlescape}'
 112.270-hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
 112.271-breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
 112.272-
 112.273-searchform = '
 112.274-  <form class="search" action="{url|urlescape}log">
 112.275-    {sessionvars%hiddenformentry}
 112.276-    <p><input name="rev" id="search1" type="text" size="30" value="{query|escape}" /></p>
 112.277-    <div id="hint">{searchhint}</div>
 112.278-  </form>'
 112.279-searchhint = 'Find changesets by keywords (author, files, the commit message), revision
 112.280-  number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
 112.281-
 112.282-diffoptsform = '
 112.283-  <form id="diffopts-form"
 112.284-    data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}"
 112.285-    data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}"
 112.286-    data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}"
 112.287-    data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}">
 112.288-    <span>Ignore whitespace changes - </span>
 112.289-    <span>Everywhere:</span>
 112.290-    <input id="ignorews-checkbox" type="checkbox" />
 112.291-    <span>Within whitespace:</span>
 112.292-    <input id="ignorewsamount-checkbox" type="checkbox" />
 112.293-    <span>At end of lines:</span>
 112.294-    <input id="ignorewseol-checkbox" type="checkbox" />
 112.295-  </form>'
   113.1--- a/templates/paper/notfound.tmpl	Sun Jul 21 21:01:03 2024 -0400
   113.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.3@@ -1,12 +0,0 @@
   113.4-{header}
   113.5-<title>Mercurial repository not found</title>
   113.6-</head>
   113.7-<body>
   113.8-
   113.9-<h2>Mercurial repository not found</h2>
  113.10-
  113.11-The specified repository "{repo|escape}" is unknown, sorry.
  113.12-
  113.13-Please go back to the <a href="{url|urlescape}">main repository list page</a>.
  113.14-
  113.15-{footer}
   114.1--- a/templates/paper/search.tmpl	Sun Jul 21 21:01:03 2024 -0400
   114.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   114.3@@ -1,64 +0,0 @@
   114.4-{header}
   114.5-<title>{repo|escape}: searching for {query|escape}</title>
   114.6-</head>
   114.7-<body>
   114.8-
   114.9-<div class="container">
  114.10-<div class="menu">
  114.11-<div class="logo">
  114.12-<a href="{logourl}">
  114.13-<img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
  114.14-</div>
  114.15-<ul>
  114.16-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
  114.17-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
  114.18-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  114.19-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  114.20-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  114.21-</ul>
  114.22-<ul>
  114.23-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  114.24-</ul>
  114.25-</div>
  114.26-
  114.27-<div class="main">
  114.28-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  114.29-<h3>searching for '{query|escape}'</h3>
  114.30-
  114.31-<p>
  114.32-Assuming {modedesc}.
  114.33-{if(showforcekw, '<a href="{url|urlescape}log?rev={query|urlescape}&forcekw=1">
  114.34-Use {showforcekw}</a> instead.')}
  114.35-{if(showunforcekw, '<a href="{url|urlescape}log?rev={query|urlescape}">
  114.36-Use {showunforcekw}</a> instead.')}
  114.37-</p>
  114.38-
  114.39-{searchform}
  114.40-
  114.41-<div class="navigate">
  114.42-<a href="{url|urlescape}log{lessvars%urlparameter}">less</a>
  114.43-<a href="{url|urlescape}log{morevars%urlparameter}">more</a>
  114.44-</div>
  114.45-
  114.46-<table class="bigtable">
  114.47-<thead>
  114.48- <tr>
  114.49-  <th class="age">age</th>
  114.50-  <th class="author">author</th>
  114.51-  <th class="description">description</th>
  114.52- </tr>
  114.53-</thead>
  114.54-<tbody class="stripes2">
  114.55-{entries%changelogentry}
  114.56-</tbody>
  114.57-</table>
  114.58-
  114.59-<div class="navigate">
  114.60-<a href="{url|urlescape}log{lessvars%urlparameter}">less</a>
  114.61-<a href="{url|urlescape}log{morevars%urlparameter}">more</a>
  114.62-</div>
  114.63-
  114.64-</div>
  114.65-</div>
  114.66-
  114.67-{footer}
   115.1--- a/templates/paper/shortlog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   115.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   115.3@@ -1,89 +0,0 @@
   115.4-{header}
   115.5-<title>{repo|escape}: log</title>
   115.6-<link rel="alternate" type="application/atom+xml"
   115.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}" />
   115.8-<link rel="alternate" type="application/rss+xml"
   115.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}" />
  115.10-</head>
  115.11-<body>
  115.12-
  115.13-<div class="container">
  115.14-<div class="menu">
  115.15-<div class="logo">
  115.16-<a href="{logourl}">
  115.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  115.18-</div>
  115.19-<ul>
  115.20-<li class="active">log</li>
  115.21-<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
  115.22-<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
  115.23-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  115.24-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  115.25-</ul>
  115.26-<ul>
  115.27-<li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
  115.28-<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
  115.29-</ul>
  115.30-<ul>
  115.31-{archives%archiveentry}
  115.32-</ul>
  115.33-<ul>
  115.34- <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  115.35-</ul>
  115.36-<div class="atom-logo">
  115.37-<a href="{url|urlescape}atom-log" title="subscribe to atom feed">
  115.38-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
  115.39-</a>
  115.40-</div>
  115.41-</div>
  115.42-
  115.43-<div class="main">
  115.44-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  115.45-<h3>log</h3>
  115.46-
  115.47-{searchform}
  115.48-
  115.49-<div class="navigate">
  115.50-<a href="{url|urlescape}shortlog/{symrev}{lessvars%urlparameter}">less</a>
  115.51-<a href="{url|urlescape}shortlog/{symrev}{morevars%urlparameter}">more</a>
  115.52-| rev {rev}: {changenav%navshort}
  115.53-</div>
  115.54-
  115.55-<table class="bigtable">
  115.56-<thead>
  115.57- <tr>
  115.58-  <th class="age">age</th>
  115.59-  <th class="author">author</th>
  115.60-  <th class="description">description</th>
  115.61- </tr>
  115.62-</thead>
  115.63-<tbody class="stripes2">
  115.64-{entries%shortlogentry}
  115.65-</tbody>
  115.66-</table>
  115.67-
  115.68-<div class="navigate">
  115.69-<a href="{url|urlescape}shortlog/{symrev}{lessvars%urlparameter}">less</a>
  115.70-<a href="{url|urlescape}shortlog/{symrev}{morevars%urlparameter}">more</a>
  115.71-| rev {rev}: {changenav%navshort}
  115.72-</div>
  115.73-
  115.74-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
  115.75-    ajaxScrollInit(
  115.76-            '{url|urlescape}shortlog/%next%{sessionvars%urlparameter}',
  115.77-            '{nextentry%"{node}"}', <!-- NEXTHASH
  115.78-            function (htmlText) \{
  115.79-                var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
  115.80-                return m ? m[1] : null;
  115.81-            },
  115.82-            '.bigtable > tbody',
  115.83-            '<tr class="%class%">\\
  115.84-            <td colspan="3" style="text-align: center;">%text%</td>\\
  115.85-            </tr>'
  115.86-    );
  115.87-</script>
  115.88-
  115.89-</div>
  115.90-</div>
  115.91-
  115.92-{footer}
   116.1--- a/templates/paper/shortlogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   116.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.3@@ -1,8 +0,0 @@
   116.4- <tr>
   116.5-  <td class="age">{date|rfc822date}</td>
   116.6-  <td class="author">{author|person}</td>
   116.7-  <td class="description">
   116.8-   <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
   116.9-   {alltags}
  116.10-  </td>
  116.11- </tr>
   117.1--- a/templates/paper/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
   117.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   117.3@@ -1,53 +0,0 @@
   117.4-{header}
   117.5-<title>{repo|escape}: tags</title>
   117.6-<link rel="alternate" type="application/atom+xml"
   117.7-   href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags" />
   117.8-<link rel="alternate" type="application/rss+xml"
   117.9-   href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags" />
  117.10-</head>
  117.11-<body>
  117.12-
  117.13-<div class="container">
  117.14-<div class="menu">
  117.15-<div class="logo">
  117.16-<a href="{logourl}">
  117.17-<img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
  117.18-</div>
  117.19-<ul>
  117.20-<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li>
  117.21-<li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li>
  117.22-<li class="active">tags</li>
  117.23-<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
  117.24-<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
  117.25-</ul>
  117.26-<ul>
  117.27-<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
  117.28-</ul>
  117.29-<div class="atom-logo">
  117.30-<a href="{url|urlescape}atom-tags" title="subscribe to atom feed">
  117.31-<img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
  117.32-</a>
  117.33-</div>
  117.34-</div>
  117.35-
  117.36-<div class="main">
  117.37-<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  117.38-<h3>tags</h3>
  117.39-
  117.40-{searchform}
  117.41-
  117.42-<table class="bigtable">
  117.43-<thead>
  117.44-<tr>
  117.45- <th>tag</th>
  117.46- <th>node</th>
  117.47-</tr>
  117.48-</thead>
  117.49-<tbody class="stripes2">
  117.50-{entries%tagentry}
  117.51-</tbody>
  117.52-</table>
  117.53-</div>
  117.54-</div>
  117.55-
  117.56-{footer}
   119.1--- a/templates/raw/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   119.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.3@@ -1,5 +0,0 @@
   119.4-{header}
   119.5-# HG changelog
   119.6-# Node ID {node}
   119.7-
   119.8-{entries%changelogentry}
   120.1--- a/templates/raw/changeset.tmpl	Sun Jul 21 21:01:03 2024 -0400
   120.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.3@@ -1,9 +0,0 @@
   120.4-{header}
   120.5-# HG changeset patch
   120.6-# User {author}
   120.7-# Date {date|hgdate}
   120.8-# Node ID {node}
   120.9-{parent%changesetparent}
  120.10-{desc}
  120.11-
  120.12-{diff}
   121.1--- a/templates/raw/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
   121.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   121.3@@ -1,2 +0,0 @@
   121.4-{header}
   121.5-error: {error}
   122.1--- a/templates/raw/fileannotate.tmpl	Sun Jul 21 21:01:03 2024 -0400
   122.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   122.3@@ -1,5 +0,0 @@
   122.4-{header}
   122.5-{annotate%annotateline}
   122.6-{footer}
   122.7-
   122.8-
   123.1--- a/templates/raw/filediff.tmpl	Sun Jul 21 21:01:03 2024 -0400
   123.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   123.3@@ -1,5 +0,0 @@
   123.4-{header}
   123.5-{diff}
   123.6-{footer}
   123.7-
   123.8-
   124.1--- a/templates/raw/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
   124.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   124.3@@ -1,6 +0,0 @@
   124.4-{header}
   124.5-# HG graph
   124.6-# Node ID {node}
   124.7-# Rows shown {rows}
   124.8-
   124.9-{nodes%graphnode}
   125.1--- a/templates/raw/graphedge.tmpl	Sun Jul 21 21:01:03 2024 -0400
   125.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   125.3@@ -1,1 +0,0 @@
   125.4-edge:        ({col}, {row}) -> ({nextcol}, {nextrow}) (color {color})
   126.1--- a/templates/raw/graphnode.tmpl	Sun Jul 21 21:01:03 2024 -0400
   126.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.3@@ -1,7 +0,0 @@
   126.4-changeset:   {node|short}
   126.5-user:        {author|person}
   126.6-date:        {date|age}
   126.7-summary:     {desc|firstline|nonempty}
   126.8-{branches%branchname}{tags%tagname}{bookmarks%bookmarkname}
   126.9-node:        ({col}, {row}) (color {color})
  126.10-{edges%graphedge}
   127.1--- a/templates/raw/index.tmpl	Sun Jul 21 21:01:03 2024 -0400
   127.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.3@@ -1,2 +0,0 @@
   127.4-{header}
   127.5-{entries%indexentry}
   128.1--- a/templates/raw/logentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   128.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.3@@ -1,6 +0,0 @@
   128.4-changeset:   {node}
   128.5-revision:    {rev}
   128.6-user:        {author}
   128.7-date:        {date|rfc822date}
   128.8-summary:     {desc}
   128.9-{branches%branchname}{tags%tagname}{bookmarks%bookmarkname}
   129.1--- a/templates/raw/manifest.tmpl	Sun Jul 21 21:01:03 2024 -0400
   129.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.3@@ -1,3 +0,0 @@
   129.4-{header}
   129.5-{dentries%direntry}{fentries%fileentry}
   129.6-{footer}
   130.1--- a/templates/raw/map	Sun Jul 21 21:01:03 2024 -0400
   130.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.3@@ -1,41 +0,0 @@
   130.4-default = 'shortlog'
   130.5-shortlog = "'raw' is not a browsable style"
   130.6-changelog = changelog.tmpl
   130.7-changelogentry = logentry.tmpl
   130.8-search = search.tmpl
   130.9-mimetype = 'text/plain; charset={encoding}'
  130.10-header = ''
  130.11-footer = ''
  130.12-changeset = changeset.tmpl
  130.13-difflineplus = '{line}'
  130.14-difflineminus = '{line}'
  130.15-difflineat = '{line}'
  130.16-diffline = '{line}'
  130.17-changesetparent = '# Parent  {node}'
  130.18-changesetchild = '# Child   {node}'
  130.19-filenodelink = ''
  130.20-filenolink = ''
  130.21-fileline = '{line}'
  130.22-diffblock = '{lines}'
  130.23-filediff = filediff.tmpl
  130.24-fileannotate = fileannotate.tmpl
  130.25-annotateline = '{author|user}@{rev}: {line}'
  130.26-manifest = manifest.tmpl
  130.27-direntry = 'drwxr-xr-x {basename}\n'
  130.28-fileentry = '{permissions|permissions} {size} {basename}\n'
  130.29-index = index.tmpl
  130.30-notfound = notfound.tmpl
  130.31-error = error.tmpl
  130.32-indexentry = '{url}\n'
  130.33-tags = '{entries%tagentry}'
  130.34-tagentry = '{tag}	{node}\n'
  130.35-bookmarks = '{entries%bookmarkentry}'
  130.36-bookmarkentry = '{bookmark}	{node}\n'
  130.37-branches = '{entries%branchentry}'
  130.38-branchentry = '{branch}	{node}	{status}\n'
  130.39-graph = graph.tmpl
  130.40-graphnode = graphnode.tmpl
  130.41-graphedge = graphedge.tmpl
  130.42-bookmarkname = 'bookmark:    {name}\n'
  130.43-branchname = 'branch:      {name}\n'
  130.44-tagname = 'tag:         {name}\n'
   131.1--- a/templates/raw/notfound.tmpl	Sun Jul 21 21:01:03 2024 -0400
   131.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   131.3@@ -1,2 +0,0 @@
   131.4-{header}
   131.5-error: repository {repo} not found
   132.1--- a/templates/raw/search.tmpl	Sun Jul 21 21:01:03 2024 -0400
   132.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.3@@ -1,7 +0,0 @@
   132.4-{header}
   132.5-# HG changesets search
   132.6-# Node ID {node}
   132.7-# Query "{query}"
   132.8-# Mode {modedesc}
   132.9-
  132.10-{entries%changelogentry}
   134.1--- a/templates/rss/bookmarkentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   134.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.3@@ -1,6 +0,0 @@
   134.4-<item>
   134.5-    <title>{bookmark|escape}</title>
   134.6-    <link>{urlbase}{url|urlescape}rev/{node|short}</link>
   134.7-    <description><![CDATA[{bookmark|strip|escape|addbreaks}]]></description>
   134.8-    <pubDate>{date|rfc822date}</pubDate>
   134.9-</item>
   135.1--- a/templates/rss/bookmarks.tmpl	Sun Jul 21 21:01:03 2024 -0400
   135.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   135.3@@ -1,6 +0,0 @@
   135.4-{header}
   135.5-    <title>{repo|escape}: bookmarks</title>
   135.6-    <description>{repo|escape} bookmark history</description>
   135.7-    {entries%bookmarkentry}
   135.8-  </channel>
   135.9-</rss>
   136.1--- a/templates/rss/branchentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   136.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   136.3@@ -1,6 +0,0 @@
   136.4-<item>
   136.5-    <title>{branch|escape}</title>
   136.6-    <link>{urlbase}{url|urlescape}rev/{node|short}</link>
   136.7-    <description><![CDATA[{branch|strip|escape|addbreaks}]]></description>
   136.8-    <pubDate>{date|rfc822date}</pubDate>
   136.9-</item>
   137.1--- a/templates/rss/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
   137.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   137.3@@ -1,6 +0,0 @@
   137.4-{header}
   137.5-    <title>{repo|escape}: branches</title>
   137.6-    <description>{repo|escape} branch history</description>
   137.7-    {entries%branchentry}
   137.8-  </channel>
   137.9-</rss>
   138.1--- a/templates/rss/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   138.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.3@@ -1,6 +0,0 @@
   138.4-{header}
   138.5-    <title>{repo|escape} Changelog</title>
   138.6-    <description>{repo|escape} Changelog</description>
   138.7-    {entries%changelogentry}
   138.8-  </channel>
   138.9-</rss>
  138.10\ No newline at end of file
   139.1--- a/templates/rss/changelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   139.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   139.3@@ -1,41 +0,0 @@
   139.4-<item>
   139.5-    <title>{inbranch%"{if(name, '[{name|escape}] ')}"}{branches%"{if(name, '[{name|escape}] ')}"}{desc|strip|firstline|strip|escape}</title>
   139.6-    <guid isPermaLink="true">{urlbase}{url|urlescape}rev/{node|short}</guid>
   139.7-    <link>{urlbase}{url|urlescape}rev/{node|short}</link>
   139.8-    <description>
   139.9-    <![CDATA[
  139.10-        <table>
  139.11-            <tr>
  139.12-                <th style="text-align:left;">changeset</th>
  139.13-                <td>{node|short}</td>
  139.14-            </tr>
  139.15-            <tr>
  139.16-                <th style="text-align:left;">branch</th>
  139.17-                <td>{inbranch%"{name|escape}"}{branches%"{name|escape}"}</td>
  139.18-            </tr>
  139.19-            <tr>
  139.20-                <th style="text-align:left;">bookmark</th>
  139.21-                <td>{bookmarks%"{name|escape}"}</td>
  139.22-            </tr>
  139.23-            <tr>
  139.24-                <th style="text-align:left;">tag</th>
  139.25-                <td>{tags%"{name|escape}"}</td>
  139.26-            </tr>
  139.27-            <tr>
  139.28-                <th style="text-align:left;vertical-align:top;">user</th>
  139.29-                <td>{author|obfuscate}</td>
  139.30-            </tr>
  139.31-            <tr>
  139.32-                <th style="text-align:left;vertical-align:top;">description</th>
  139.33-                <td>{desc|strip|escape|websub|addbreaks|nonempty}</td>
  139.34-            </tr>
  139.35-            <tr>
  139.36-                <th style="text-align:left;vertical-align:top;">files</th>
  139.37-                <td>{files}</td>
  139.38-            </tr>
  139.39-        </table>
  139.40-    ]]>
  139.41-    </description>
  139.42-    <author>{author|obfuscate}</author>
  139.43-    <pubDate>{date|rfc822date}</pubDate>
  139.44-</item>
   140.1--- a/templates/rss/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
   140.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.3@@ -1,10 +0,0 @@
   140.4-{header}
   140.5-    <title>Error</title>
   140.6-    <description>Error</description>
   140.7-    <item>
   140.8-      <title>Error</title>
   140.9-      <description>{error|escape}</description>
  140.10-      <guid>https://mercurial-scm.org/#error</guid>
  140.11-    </item>
  140.12-  </channel>
  140.13-</rss>
   141.1--- a/templates/rss/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   141.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.3@@ -1,6 +0,0 @@
   141.4-{header}
   141.5-    <title>{repo|escape}: {file|escape} history</title>
   141.6-    <description>{file|escape} revision history</description>
   141.7-    {entries%filelogentry}
   141.8-  </channel>
   141.9-</rss>
   142.1--- a/templates/rss/filelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   142.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.3@@ -1,7 +0,0 @@
   142.4-<item>
   142.5-    <title>{desc|strip|firstline|strip|escape}</title>
   142.6-    <link>{urlbase}{url|urlescape}log/{node|short}/{file|urlescape}</link>
   142.7-    <description><![CDATA[{desc|strip|escape|websub|addbreaks|nonempty}]]></description>
   142.8-    <author>{author|obfuscate}</author>
   142.9-    <pubDate>{date|rfc822date}</pubDate>
  142.10-</item>
   143.1--- a/templates/rss/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
   143.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.3@@ -1,5 +0,0 @@
   143.4-<?xml version="1.0" encoding="{encoding}"?>
   143.5-<rss version="2.0">
   143.6-  <channel>
   143.7-    <link>{urlbase}{url|urlescape}</link>
   143.8-    <language>en-us</language>
   144.1--- a/templates/rss/map	Sun Jul 21 21:01:03 2024 -0400
   144.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.3@@ -1,18 +0,0 @@
   144.4-default = 'changelog'
   144.5-mimetype = 'text/xml; charset={encoding}'
   144.6-header = header.tmpl
   144.7-changelog = changelog.tmpl
   144.8-changelogentry = changelogentry.tmpl
   144.9-filelog = filelog.tmpl
  144.10-filelogentry = filelogentry.tmpl
  144.11-tags = tags.tmpl
  144.12-tagentry = tagentry.tmpl
  144.13-bookmarks = bookmarks.tmpl
  144.14-bookmarkentry = bookmarkentry.tmpl
  144.15-branches = branches.tmpl
  144.16-branchentry = branchentry.tmpl
  144.17-error = error.tmpl
  144.18-filedifflink = '{file|escape}<br />'
  144.19-fileellipses = '{file|escape}<br />'
  144.20-filenodelink = '{file|escape}<br />'
  144.21-filenolink = '{file|escape}<br />'
   145.1--- a/templates/rss/tagentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   145.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.3@@ -1,6 +0,0 @@
   145.4-<item>
   145.5-    <title>{tag|escape}</title>
   145.6-    <link>{urlbase}{url|urlescape}rev/{node|short}</link>
   145.7-    <description><![CDATA[{tag|strip|escape|addbreaks}]]></description>
   145.8-    <pubDate>{date|rfc822date}</pubDate>
   145.9-</item>
   146.1--- a/templates/rss/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
   146.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.3@@ -1,6 +0,0 @@
   146.4-{header}
   146.5-    <title>{repo|escape}: tags</title>
   146.6-    <description>{repo|escape} tag history</description>
   146.7-    {entriesnotip%tagentry}
   146.8-  </channel>
   146.9-</rss>
   148.1--- a/templates/spartan/branches.tmpl	Sun Jul 21 21:01:03 2024 -0400
   148.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.3@@ -1,27 +0,0 @@
   148.4-{header}
   148.5-<title>{repo|escape}: branches</title>
   148.6-<link rel="alternate" type="application/atom+xml"
   148.7-   href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches">
   148.8-<link rel="alternate" type="application/rss+xml"
   148.9-   href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches">
  148.10-</head>
  148.11-<body>
  148.12-
  148.13-<div class="buttons">
  148.14-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a>
  148.15-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a>
  148.16-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a>
  148.17-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  148.18-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>
  148.19-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  148.20-<a type="application/rss+xml" href="{url|urlescape}rss-branches">rss</a>
  148.21-<a type="application/atom+xml" href="{url|urlescape}atom-branches">atom</a>
  148.22-</div>
  148.23-
  148.24-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / branches</h2>
  148.25-
  148.26-<ul id="tagEntries">
  148.27-{entries%branchentry}
  148.28-</ul>
  148.29-
  148.30-{footer}
   149.1--- a/templates/spartan/changelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   149.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.3@@ -1,44 +0,0 @@
   149.4-{header}
   149.5-<title>{repo|escape}: changelog</title>
   149.6-<link rel="alternate" type="application/atom+xml"
   149.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">
   149.8-<link rel="alternate" type="application/rss+xml"
   149.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}">
  149.10-</head>
  149.11-<body>
  149.12-
  149.13-<div class="buttons">
  149.14-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  149.15-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  149.16-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  149.17-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  149.18-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>
  149.19-{archives%archiveentry}
  149.20-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  149.21-<a type="application/rss+xml" href="{url|urlescape}rss-log">rss</a>
  149.22-<a type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">atom</a>
  149.23-</div>
  149.24-
  149.25-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog</h2>
  149.26-
  149.27-<form action="{url|urlescape}log">
  149.28-{sessionvars%hiddenformentry}
  149.29-<p>
  149.30-<label for="search1">search:</label>
  149.31-<input name="rev" id="search1" type="text" size="30">
  149.32-navigate: <small class="navigate">{changenav%nav}</small>
  149.33-</p>
  149.34-</form>
  149.35-
  149.36-{entries%changelogentry}
  149.37-
  149.38-<form action="{url|urlescape}log">
  149.39-{sessionvars%hiddenformentry}
  149.40-<p>
  149.41-<label for="search2">search:</label>
  149.42-<input name="rev" id="search2" type="text" size="30">
  149.43-navigate: <small class="navigate">{changenav%nav}</small>
  149.44-</p>
  149.45-</form>
  149.46-
  149.47-{footer}
   150.1--- a/templates/spartan/changelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   150.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.3@@ -1,31 +0,0 @@
   150.4-<table class="logEntry parity{parity}">
   150.5- <tr>
   150.6-  <th class="label"><span class="age">{date|rfc822date}</span>:</th>
   150.7-  <th class="firstline">{desc|strip|firstline|escape|nonempty}</th>
   150.8- </tr>
   150.9- <tr>
  150.10-  <th class="revision">changeset {rev}:</th>
  150.11-  <td class="node"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
  150.12- </tr>
  150.13- {parent%changelogparent}
  150.14- {child%changelogchild}
  150.15- {changelogtag}
  150.16- <tr>
  150.17-  <th class="author">author:</th>
  150.18-  <td class="author">{author|obfuscate}</td>
  150.19- </tr>
  150.20- <tr>
  150.21-  <th class="date">date:</th>
  150.22-  <td class="date">{date|rfc822date}</td>
  150.23- </tr>
  150.24- {ifeq(phase, 'public', '', '<tr>
  150.25-  <th class="phase">phase:</th>
  150.26-  <td class="phase">{phase|escape}</td>
  150.27- </tr>')}
  150.28- {if(obsolete, succsandmarkers%obsfateentry)}
  150.29- {if(instabilities, whyunstable%whyunstableentry)}
  150.30- <tr>
  150.31-  <th class="files"><a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>:</th>
  150.32-  <td class="files">{files}</td>
  150.33- </tr>
  150.34-</table>
   151.1--- a/templates/spartan/changeset.tmpl	Sun Jul 21 21:01:03 2024 -0400
   151.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.3@@ -1,58 +0,0 @@
   151.4-{header}
   151.5-<title>{repo|escape}: changeset {node|short}</title>
   151.6-</head>
   151.7-<body>
   151.8-
   151.9-<div class="buttons">
  151.10-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  151.11-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  151.12-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  151.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  151.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  151.15-<a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">files</a>
  151.16-<a href="{url|urlescape}raw-rev/{symrev}">raw</a>
  151.17-{archives%archiveentry}
  151.18-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  151.19-</div>
  151.20-
  151.21-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset: {desc|strip|escape|firstline|nonempty}</h2>
  151.22-
  151.23-<table id="changesetEntry">
  151.24-<tr>
  151.25- <th class="changeset">changeset {rev}:</th>
  151.26- <td class="changeset"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
  151.27-</tr>
  151.28-{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}
  151.29-{child%changesetchild}
  151.30-{changesettag}
  151.31-<tr>
  151.32- <th class="author">author:</th>
  151.33- <td class="author">{author|obfuscate}</td>
  151.34-</tr>
  151.35-<tr>
  151.36- <th class="date">date:</th>
  151.37- <td class="date age">{date|rfc822date}</td>
  151.38-</tr>
  151.39-{ifeq(phase, 'public', '', '<tr>
  151.40- <th class="phase">phase:</th>
  151.41- <td class="phase">{phase|escape}</td>
  151.42-</tr>')}
  151.43-{if(obsolete, succsandmarkers%obsfateentry)}
  151.44-{if(instabilities, whyunstable%whyunstableentry)}
  151.45-<tr>
  151.46- <th class="files">files:</th>
  151.47- <td class="files">{files}</td>
  151.48-</tr>
  151.49-<tr>
  151.50- <th class="description">description:</th>
  151.51- <td class="description">{desc|strip|escape|websub|addbreaks|nonempty}</td>
  151.52-</tr>
  151.53-</table>
  151.54-
  151.55-<div id="changesetDiff">
  151.56-{diff}
  151.57-</div>
  151.58-
  151.59-{footer}
  151.60-
  151.61-
   152.1--- a/templates/spartan/error.tmpl	Sun Jul 21 21:01:03 2024 -0400
   152.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.3@@ -1,15 +0,0 @@
   152.4-{header}
   152.5-<title>Mercurial Error</title>
   152.6-</head>
   152.7-<body>
   152.8-
   152.9-<h2>Mercurial Error</h2>
  152.10-
  152.11-<p>
  152.12-An error occurred while processing your request:
  152.13-</p>
  152.14-<p>
  152.15-{error|escape}
  152.16-</p>
  152.17-
  152.18-{footer}
   153.1--- a/templates/spartan/fileannotate.tmpl	Sun Jul 21 21:01:03 2024 -0400
   153.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.3@@ -1,51 +0,0 @@
   153.4-{header}
   153.5-<title>{repo|escape}: {file|escape} annotate</title>
   153.6-</head>
   153.7-<body>
   153.8-
   153.9-<div class="buttons">
  153.10-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  153.11-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  153.12-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  153.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  153.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  153.15-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a>
  153.16-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
  153.17-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a>
  153.18-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
  153.19-<a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a>
  153.20-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  153.21-</div>
  153.22-
  153.23-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate {file|escape}</h2>
  153.24-
  153.25-<table>
  153.26-<tr>
  153.27- <td class="metatag">changeset {rev}:</td>
  153.28- <td><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
  153.29-</tr>
  153.30-{parent%fileannotateparent}
  153.31-{child%fileannotatechild}
  153.32-<tr>
  153.33- <td class="metatag">author:</td>
  153.34- <td>{author|obfuscate}</td>
  153.35-</tr>
  153.36-<tr>
  153.37- <td class="metatag">date:</td>
  153.38- <td class="date age">{date|rfc822date}</td>
  153.39-</tr>
  153.40-<tr>
  153.41- <td class="metatag">permissions:</td>
  153.42- <td>{permissions|permissions}</td>
  153.43-</tr>
  153.44-<tr>
  153.45-  <td class="metatag">description:</td>
  153.46-  <td>{desc|strip|escape|websub|addbreaks|nonempty}</td>
  153.47-</tr>
  153.48-</table>
  153.49-
  153.50-<table cellspacing="0" cellpadding="0">
  153.51-{annotate%annotateline}
  153.52-</table>
  153.53-
  153.54-{footer}
   154.1--- a/templates/spartan/filediff.tmpl	Sun Jul 21 21:01:03 2024 -0400
   154.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.3@@ -1,37 +0,0 @@
   154.4-{header}
   154.5-<title>{repo|escape}: {file|escape} diff</title>
   154.6-</head>
   154.7-<body>
   154.8-
   154.9-<div class="buttons">
  154.10-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  154.11-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  154.12-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  154.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  154.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  154.15-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a>
  154.16-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a>
  154.17-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
  154.18-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  154.19-<a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a>
  154.20-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  154.21-</div>
  154.22-
  154.23-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / {file|escape}</h2>
  154.24-
  154.25-<table id="filediffEntry">
  154.26-<tr>
  154.27- <th class="revision">revision {rev}:</th>
  154.28- <td class="revision"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
  154.29-</tr>
  154.30-{parent%filediffparent}
  154.31-{child%filediffchild}
  154.32-</table>
  154.33-
  154.34-<div id="fileDiff">
  154.35-{diff}
  154.36-</div>
  154.37-
  154.38-{footer}
  154.39-
  154.40-
   155.1--- a/templates/spartan/filelog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   155.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.3@@ -1,29 +0,0 @@
   155.4-{header}
   155.5-<title>{repo|escape}: {file|escape} history</title>
   155.6-<link rel="alternate" type="application/atom+xml"
   155.7-   href="{url|urlescape}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">
   155.8-<link rel="alternate" type="application/rss+xml"
   155.9-   href="{url|urlescape}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}">
  155.10-</head>
  155.11-<body>
  155.12-
  155.13-<div class="buttons">
  155.14-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a>
  155.15-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a>
  155.16-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a>
  155.17-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  155.18-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  155.19-<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a>
  155.20-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  155.21-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  155.22-<a type="application/rss+xml" href="{url|urlescape}rss-log/tip/{file|urlescape}">rss</a>
  155.23-<a type="application/atom+xml" href="{url|urlescape}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">atom</a>
  155.24-</div>
  155.25-
  155.26-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / {file|escape} revision history</h2>
  155.27-
  155.28-<p>navigate: <small class="navigate">{nav%filenav}</small></p>
  155.29-
  155.30-{entries%filelogentry}
  155.31-
  155.32-{footer}
   156.1--- a/templates/spartan/filelogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   156.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   156.3@@ -1,25 +0,0 @@
   156.4-<table class="logEntry parity{parity}">
   156.5- <tr>
   156.6-  <th class="label"><span class="age">{date|rfc822date}</span>:</th>
   156.7-  <th class="firstline"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th>
   156.8- </tr>
   156.9- <tr>
  156.10-  <th class="revision">revision {filerev}:</th>
  156.11-  <td class="node">
  156.12-   <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
  156.13-   <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(diff)</a>
  156.14-   <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(annotate)</a>
  156.15-  </td>
  156.16- </tr>
  156.17- {rename%filelogrename}
  156.18- <tr>
  156.19-  <th class="author">author:</th>
  156.20-  <td class="author">{author|obfuscate}</td>
  156.21- </tr>
  156.22- <tr>
  156.23-  <th class="date">date:</th>
  156.24-  <td class="date">{date|rfc822date}</td>
  156.25- </tr>
  156.26-</table>
  156.27-
  156.28-
   157.1--- a/templates/spartan/filerevision.tmpl	Sun Jul 21 21:01:03 2024 -0400
   157.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   157.3@@ -1,51 +0,0 @@
   157.4-{header}
   157.5-<title>{repo|escape}:{file|escape}</title>
   157.6-</head>
   157.7-<body>
   157.8-
   157.9-<div class="buttons">
  157.10-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  157.11-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  157.12-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  157.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  157.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  157.15-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a>
  157.16-<a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
  157.17-<a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
  157.18-<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
  157.19-<a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a>
  157.20-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  157.21-</div>
  157.22-
  157.23-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / {file|escape}</h2>
  157.24-
  157.25-<table>
  157.26-<tr>
  157.27- <td class="metatag">changeset {rev}:</td>
  157.28- <td><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
  157.29-</tr>
  157.30-{parent%filerevparent}
  157.31-{child%filerevchild}
  157.32-<tr>
  157.33- <td class="metatag">author:</td>
  157.34- <td>{author|obfuscate}</td>
  157.35-</tr>
  157.36-<tr>
  157.37- <td class="metatag">date:</td>
  157.38- <td class="date age">{date|rfc822date}</td>
  157.39-</tr>
  157.40-<tr>
  157.41- <td class="metatag">permissions:</td>
  157.42- <td>{permissions|permissions}</td>
  157.43-</tr>
  157.44-<tr>
  157.45-  <td class="metatag">description:</td>
  157.46-  <td>{desc|strip|escape|websub|addbreaks|nonempty}</td>
  157.47-</tr>
  157.48-</table>
  157.49-
  157.50-<pre>
  157.51-{text%fileline}
  157.52-</pre>
  157.53-
  157.54-{footer}
   158.1--- a/templates/spartan/footer.tmpl	Sun Jul 21 21:01:03 2024 -0400
   158.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   158.3@@ -1,8 +0,0 @@
   158.4-{motd}
   158.5-<div class="logo">
   158.6-<a href="{logourl}">
   158.7-<img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
   158.8-</div>
   158.9-
  158.10-</body>
  158.11-</html>
   159.1--- a/templates/spartan/graph.tmpl	Sun Jul 21 21:01:03 2024 -0400
   159.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.3@@ -1,53 +0,0 @@
   159.4-{header}
   159.5-<title>{repo|escape}: graph</title>
   159.6-<link rel="alternate" type="application/atom+xml"
   159.7-   href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags">
   159.8-<link rel="alternate" type="application/rss+xml"
   159.9-   href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags">
  159.10-</head>
  159.11-<body>
  159.12-
  159.13-<div class="buttons">
  159.14-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  159.15-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  159.16-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  159.17-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  159.18-<a href="{url|urlescape}file/{symrev}/{sessionvars%urlparameter}">files</a>
  159.19-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  159.20-</div>
  159.21-
  159.22-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / graph</h2>
  159.23-
  159.24-<form action="{url|urlescape}log">
  159.25-{sessionvars%hiddenformentry}
  159.26-<p>
  159.27-<label for="search1">search:</label>
  159.28-<input name="rev" id="search1" type="text" size="30">
  159.29-navigate: <small class="navigate">{changenav%navgraph}</small>
  159.30-</p>
  159.31-</form>
  159.32-
  159.33-<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
  159.34-
  159.35-<div id="wrapper">
  159.36-<canvas id="graph"></canvas>
  159.37-<ul id="graphnodes">{nodes%graphentry}</ul>
  159.38-</div>
  159.39-
  159.40-<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
  159.41-var data = {jsdata|json};
  159.42-var graph = new Graph();
  159.43-graph.scale({bg_height});
  159.44-graph.render(data);
  159.45-</script>
  159.46-
  159.47-<form action="{url|urlescape}log">
  159.48-{sessionvars%hiddenformentry}
  159.49-<p>
  159.50-<label for="search1">search:</label>
  159.51-<input name="rev" id="search1" type="text" size="30">
  159.52-navigate: <small class="navigate">{changenav%navgraph}</small>
  159.53-</p>
  159.54-</form>
  159.55-
  159.56-{footer}
   160.1--- a/templates/spartan/graphentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   160.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.3@@ -1,8 +0,0 @@
   160.4-<li class="parity{parity}" data-node="{node|short}">
   160.5- <div class="fg">
   160.6-  <span class="desc">
   160.7-   <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
   160.8-  </span>
   160.9-  <div class="info"><span class="age">{date|rfc822date}</span>, by {author|person}</div>
  160.10- </div>
  160.11-</li>
   161.1--- a/templates/spartan/header.tmpl	Sun Jul 21 21:01:03 2024 -0400
   161.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.3@@ -1,7 +0,0 @@
   161.4-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
   161.5-<html>
   161.6-<head>
   161.7-<link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png">
   161.8-<meta name="robots" content="index, nofollow" />
   161.9-<link rel="stylesheet" href="{staticurl|urlescape}style.css" type="text/css" />
  161.10-<script type="text/javascript" src="{staticurl|urlescape}mercurial.js"></script>
   162.1--- a/templates/spartan/index.tmpl	Sun Jul 21 21:01:03 2024 -0400
   162.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.3@@ -1,19 +0,0 @@
   162.4-{header}
   162.5-<title>Mercurial repositories index</title>
   162.6-</head>
   162.7-<body>
   162.8-
   162.9-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
  162.10-
  162.11-<table>
  162.12-    <tr>
  162.13-        <td><a href="?sort={sort_name}">Name</a></td>
  162.14-        <td><a href="?sort={sort_description}">Description</a></td>
  162.15-        <td><a href="?sort={sort_contact}">Contact</a></td>
  162.16-        <td><a href="?sort={sort_lastchange}">Last modified</a></td>
  162.17-        <td>&nbsp;</td>
  162.18-    </tr>
  162.19-    {entries%indexentry}
  162.20-</table>
  162.21-
  162.22-{footer}
   163.1--- a/templates/spartan/manifest.tmpl	Sun Jul 21 21:01:03 2024 -0400
   163.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   163.3@@ -1,24 +0,0 @@
   163.4-{header}
   163.5-<title>{repo|escape}: files for changeset {node|short}</title>
   163.6-</head>
   163.7-<body>
   163.8-
   163.9-<div class="buttons">
  163.10-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  163.11-<a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a>
  163.12-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  163.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  163.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  163.15-<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a>
  163.16-{archives%archiveentry}
  163.17-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  163.18-</div>
  163.19-
  163.20-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / files for changeset <a href="{url|urlescape}rev/{node|short}">{node|short}</a>: {path|escape}</h2>
  163.21-
  163.22-<table cellpadding="0" cellspacing="0">
  163.23-{ifeq(path, up, '', updirentry)}
  163.24-{dentries%direntry}
  163.25-{fentries%fileentry}
  163.26-</table>
  163.27-{footer}
   164.1--- a/templates/spartan/map	Sun Jul 21 21:01:03 2024 -0400
   164.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.3@@ -1,227 +0,0 @@
   164.4-default = 'shortlog'
   164.5-mimetype = 'text/html; charset={encoding}'
   164.6-header = header.tmpl
   164.7-footer = footer.tmpl
   164.8-search = search.tmpl
   164.9-changelog = changelog.tmpl
  164.10-shortlog = shortlog.tmpl
  164.11-shortlogentry = shortlogentry.tmpl
  164.12-graph = graph.tmpl
  164.13-graphentry = graphentry.tmpl
  164.14-naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  164.15-navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  164.16-navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
  164.17-filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
  164.18-filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
  164.19-filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
  164.20-filenolink = '{file|escape} '
  164.21-fileellipses = '...'
  164.22-changelogentry = changelogentry.tmpl
  164.23-changeset = changeset.tmpl
  164.24-manifest = manifest.tmpl
  164.25-
  164.26-nav = '{before%naventry} {after%naventry}'
  164.27-navshort = '{before%navshortentry}{after%navshortentry}'
  164.28-navgraph = '{before%navgraphentry}{after%navgraphentry}'
  164.29-filenav = '{before%filenaventry}{after%filenaventry}'
  164.30-
  164.31-updirentry = '
  164.32-  <tr class="parity{upparity}">
  164.33-    <td><tt>drwxr-xr-x</tt>&nbsp;</td>
  164.34-    <td>&nbsp;</td>
  164.35-    <td>&nbsp;</td>
  164.36-    <td>
  164.37-      <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
  164.38-    </td>
  164.39-  </tr> '
  164.40-
  164.41-direntry = '
  164.42-  <tr class="parity{parity}">
  164.43-    <td><tt>drwxr-xr-x</tt>&nbsp;</td>
  164.44-    <td>&nbsp;</td>
  164.45-    <td>&nbsp;</td>
  164.46-    <td>
  164.47-      <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
  164.48-      <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
  164.49-        {emptydirs|urlescape}
  164.50-      </a>
  164.51-    </td>
  164.52-  </tr>'
  164.53-
  164.54-fileentry = '
  164.55-  <tr class="parity{parity}">
  164.56-    <td><tt>{permissions|permissions}</tt>&nbsp;</td>
  164.57-    <td align=right><tt class="date">{date|isodate}</tt>&nbsp;</td>
  164.58-    <td align=right><tt>{size}</tt>&nbsp;</td>
  164.59-    <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
  164.60-  </tr>'
  164.61-
  164.62-filerevision = filerevision.tmpl
  164.63-fileannotate = fileannotate.tmpl
  164.64-filediff = filediff.tmpl
  164.65-filelog = filelog.tmpl
  164.66-fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
  164.67-filelogentry = filelogentry.tmpl
  164.68-
  164.69-# The &nbsp; ensures that all table cells have content (even if there
  164.70-# is an empty line in the annotated file), which in turn ensures that
  164.71-# all table rows have equal height.
  164.72-annotateline = '
  164.73-  <tr class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
  164.74-    <td class="annotate parity{blockparity}">
  164.75-      {if(blockhead,
  164.76-          '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  164.77-             {rev}
  164.78-           </a>')}
  164.79-      <div class="annotate-info">
  164.80-        <div>
  164.81-          <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
  164.82-            {node|short}</a>
  164.83-          {desc|escape|firstline}
  164.84-        </div>
  164.85-        <div><em>{author|obfuscate}</em></div>
  164.86-        <div>parents: {parents%annotateparent}</div>
  164.87-        <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
  164.88-        <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
  164.89-      </div>
  164.90-    </td>
  164.91-    <td>
  164.92-      <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
  164.93-    </td>
  164.94-    <td><pre>&nbsp;{line|escape}</pre></td>
  164.95-  </tr>'
  164.96-annotateparent = '
  164.97-  <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
  164.98-difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
  164.99-difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
 164.100-difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
 164.101-diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
 164.102-changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
 164.103-changelogparent = '
 164.104-  <tr>
 164.105-    <th class="parent">parent {rev}:</th>
 164.106-    <td class="parent">
 164.107-      {changesetlink}
 164.108-    </td>
 164.109-  </tr>'
 164.110-changesetparent = '
 164.111-  <tr>
 164.112-    <th class="parent">parent {rev}:</th>
 164.113-    <td class="parent">{changesetlink}</td>
 164.114-  </tr>'
 164.115-changesetparentdiff = '
 164.116-  <tr>
 164.117-    <th class="parent">parent {rev}:</th>
 164.118-    <td class="parent">{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</td>
 164.119-  </tr>'
 164.120-difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
 164.121-filerevparent = '
 164.122-  <tr>
 164.123-    <td class="metatag">parent:</td>
 164.124-    <td>
 164.125-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 164.126-        {rename%filerename}{node|short}
 164.127-      </a>
 164.128-    </td>
 164.129-  </tr>'
 164.130-filerename = '{file|escape}@'
 164.131-filelogrename = '
 164.132-  <tr>
 164.133-    <th>base:</th>
 164.134-    <td>
 164.135-      <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 164.136-        {file|escape}@{node|short}
 164.137-      </a>
 164.138-    </td>
 164.139-  </tr>'
 164.140-fileannotateparent = '
 164.141-  <tr>
 164.142-    <td class="metatag">parent:</td>
 164.143-    <td>
 164.144-      <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
 164.145-        {rename%filerename}{node|short}
 164.146-      </a>
 164.147-    </td>
 164.148-  </tr>'
 164.149-changesetchild = '
 164.150-  <tr>
 164.151-    <th class="child">child {rev}:</th>
 164.152-    <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
 164.153-  </tr>'
 164.154-changelogchild = '
 164.155-  <tr>
 164.156-    <th class="child">child {rev}:</th>
 164.157-    <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
 164.158-  </tr>'
 164.159-filerevchild = '
 164.160-  <tr>
 164.161-    <td class="metatag">child:</td>
 164.162-    <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
 164.163-  </tr>'
 164.164-fileannotatechild = '
 164.165-  <tr>
 164.166-    <td class="metatag">child:</td>
 164.167-    <td><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
 164.168-  </tr>'
 164.169-tags = tags.tmpl
 164.170-tagentry = '
 164.171-  <li class="tagEntry parity{parity}">
 164.172-    <tt class="node">{node}</tt>
 164.173-    <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
 164.174-  </li>'
 164.175-branches = branches.tmpl
 164.176-branchentry = '
 164.177-  <li class="tagEntry parity{parity}">
 164.178-    <tt class="node">{node}</tt>
 164.179-    <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
 164.180-  </li>'
 164.181-diffblock = '<pre class="parity{parity}">{lines}</pre>'
 164.182-changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
 164.183-changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
 164.184-successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
 164.185-obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
 164.186-obsfateverb = '{obsfateverb(successors, markers)}'
 164.187-obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
 164.188-obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
 164.189-obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
 164.190-obsfateentry = '
 164.191-  <tr>
 164.192-    <th class="obsolete">obsolete:</th>
 164.193-    <td class="obsolete">{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td>
 164.194-  </tr>'
 164.195-instabilitychangesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
 164.196-divergentnode = '{instabilitychangesetlink} ({phase})'
 164.197-whyunstableentry = '
 164.198-  <tr>
 164.199-    <th class="unstable">unstable:</th>
 164.200-    <td class="unstable">{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</td>
 164.201-  </tr>'
 164.202-filediffparent = '
 164.203-  <tr>
 164.204-    <th class="parent">parent {rev}:</th>
 164.205-    <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
 164.206-  </tr>'
 164.207-filediffchild = '
 164.208-  <tr>
 164.209-    <th class="child">child {rev}:</th>
 164.210-    <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
 164.211-  </tr>'
 164.212-indexentry = '
 164.213-  <tr class="parity{parity}">
 164.214-    <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
 164.215-    <td>{description}</td>
 164.216-    <td>{contact|obfuscate}</td>
 164.217-    <td class="age">{lastchange|rfc822date}</td>
 164.218-    <td class="indexlinks">
 164.219-      <a href="{url|urlescape}rss-log">RSS</a>
 164.220-      <a href="{url|urlescape}atom-log">Atom</a>
 164.221-      {archives%archiveentry}
 164.222-    </td>
 164.223-  </tr>'
 164.224-index = index.tmpl
 164.225-archiveentry = '<a href="{url|urlescape}archive/{symrev}{extension|urlescape}">{type|escape}</a> '
 164.226-notfound = notfound.tmpl
 164.227-error = error.tmpl
 164.228-urlparameter = '{separator}{name}={value|urlescape}'
 164.229-hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
 164.230-breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
   165.1--- a/templates/spartan/notfound.tmpl	Sun Jul 21 21:01:03 2024 -0400
   165.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.3@@ -1,12 +0,0 @@
   165.4-{header}
   165.5-<title>Mercurial repository not found</title>
   165.6-</head>
   165.7-<body>
   165.8-
   165.9-<h2>Mercurial repository not found</h2>
  165.10-
  165.11-The specified repository "{repo|escape}" is unknown, sorry.
  165.12-
  165.13-Please go back to the <a href="{url|urlescape}">main repository list page</a>.
  165.14-
  165.15-{footer}
   166.1--- a/templates/spartan/search.tmpl	Sun Jul 21 21:01:03 2024 -0400
   166.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.3@@ -1,37 +0,0 @@
   166.4-{header}
   166.5-<title>{repo|escape}: searching for {query|escape}</title>
   166.6-</head>
   166.7-<body>
   166.8-
   166.9-<div class="buttons">
  166.10-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a>
  166.11-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a>
  166.12-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a>
  166.13-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  166.14-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  166.15-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>
  166.16-{archives%archiveentry}
  166.17-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  166.18-</div>
  166.19-
  166.20-<h2>searching for {query|escape}</h2>
  166.21-
  166.22-<form>
  166.23-{sessionvars%hiddenformentry}
  166.24-<p>
  166.25-search:
  166.26-<input name="rev" type="text" width="30" value="{query|escape}">
  166.27-</p>
  166.28-</form>
  166.29-
  166.30-{entries%changelogentry}
  166.31-
  166.32-<form>
  166.33-{sessionvars%hiddenformentry}
  166.34-<p>
  166.35-search:
  166.36-<input name="rev" type="text" width="30" value="{query|escape}">
  166.37-</p>
  166.38-</form>
  166.39-
  166.40-{footer}
   167.1--- a/templates/spartan/shortlog.tmpl	Sun Jul 21 21:01:03 2024 -0400
   167.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   167.3@@ -1,44 +0,0 @@
   167.4-{header}
   167.5-<title>{repo|escape}: shortlog</title>
   167.6-<link rel="alternate" type="application/atom+xml"
   167.7-   href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">
   167.8-<link rel="alternate" type="application/rss+xml"
   167.9-   href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}">
  167.10-</head>
  167.11-<body>
  167.12-
  167.13-<div class="buttons">
  167.14-<a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a>
  167.15-<a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a>
  167.16-<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
  167.17-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  167.18-<a href="{url|urlescape}file/{symrev}/{sessionvars%urlparameter}">files</a>
  167.19-{archives%archiveentry}
  167.20-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  167.21-<a type="application/rss+xml" href="{url|urlescape}rss-log">rss</a>
  167.22-<a type="application/rss+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}">atom</a>
  167.23-</div>
  167.24-
  167.25-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / shortlog</h2>
  167.26-
  167.27-<form action="{url|urlescape}log">
  167.28-{sessionvars%hiddenformentry}
  167.29-<p>
  167.30-<label for="search1">search:</label>
  167.31-<input name="rev" id="search1" type="text" size="30">
  167.32-navigate: <small class="navigate">{changenav%navshort}</small>
  167.33-</p>
  167.34-</form>
  167.35-
  167.36-{entries%shortlogentry}
  167.37-
  167.38-<form action="{url|urlescape}log">
  167.39-{sessionvars%hiddenformentry}
  167.40-<p>
  167.41-<label for="search2">search:</label>
  167.42-<input name="rev" id="search2" type="text" size="30">
  167.43-navigate: <small class="navigate">{changenav%navshort}</small>
  167.44-</p>
  167.45-</form>
  167.46-
  167.47-{footer}
   168.1--- a/templates/spartan/shortlogentry.tmpl	Sun Jul 21 21:01:03 2024 -0400
   168.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.3@@ -1,7 +0,0 @@
   168.4-<table class="slogEntry parity{parity}">
   168.5- <tr>
   168.6-  <td class="age">{date|rfc822date}</td>
   168.7-  <td class="author">{author|person}</td>
   168.8-  <td class="node"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
   168.9- </tr>
  168.10-</table>
   169.1--- a/templates/spartan/tags.tmpl	Sun Jul 21 21:01:03 2024 -0400
   169.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.3@@ -1,27 +0,0 @@
   169.4-{header}
   169.5-<title>{repo|escape}: tags</title>
   169.6-<link rel="alternate" type="application/atom+xml"
   169.7-   href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags">
   169.8-<link rel="alternate" type="application/rss+xml"
   169.9-   href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags">
  169.10-</head>
  169.11-<body>
  169.12-
  169.13-<div class="buttons">
  169.14-<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a>
  169.15-<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a>
  169.16-<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a>
  169.17-<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a>
  169.18-<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>
  169.19-<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
  169.20-<a type="application/rss+xml" href="{url|urlescape}rss-tags">rss</a>
  169.21-<a type="application/atom+xml" href="{url|urlescape}atom-tags">atom</a>
  169.22-</div>
  169.23-
  169.24-<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / tags</h2>
  169.25-
  169.26-<ul id="tagEntries">
  169.27-{entries%tagentry}
  169.28-</ul>
  169.29-
  169.30-{footer}
   171.1Binary file templates/static/background.png has changed
   172.1Binary file templates/static/coal-file.png has changed
   173.1Binary file templates/static/coal-folder.png has changed
   174.1Binary file templates/static/feed-icon-14x14.png has changed
   175.1--- a/templates/static/followlines.js	Sun Jul 21 21:01:03 2024 -0400
   175.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.3@@ -1,286 +0,0 @@
   175.4-// followlines.js - JavaScript utilities for followlines UI
   175.5-//
   175.6-// Copyright 2017 Logilab SA <contact@logilab.fr>
   175.7-//
   175.8-// This software may be used and distributed according to the terms of the
   175.9-// GNU General Public License version 2 or any later version.
  175.10-
  175.11-//** Install event listeners for line block selection and followlines action */
  175.12-document.addEventListener('DOMContentLoaded', function() {
  175.13-    var sourcelines = document.getElementsByClassName('sourcelines')[0];
  175.14-    if (typeof sourcelines === 'undefined') {
  175.15-        return;
  175.16-    }
  175.17-    // URL to complement with "linerange" query parameter
  175.18-    var targetUri = sourcelines.dataset.logurl;
  175.19-    if (typeof targetUri === 'undefined') {
  175.20-        return;
  175.21-    }
  175.22-
  175.23-    // Tag of children of "sourcelines" element on which to add "line
  175.24-    // selection" style.
  175.25-    var selectableTag = sourcelines.dataset.selectabletag;
  175.26-    if (typeof selectableTag === 'undefined') {
  175.27-        return;
  175.28-    }
  175.29-
  175.30-    var isHead = parseInt(sourcelines.dataset.ishead || "0");
  175.31-
  175.32-    //* position "element" on top-right of cursor */
  175.33-    function positionTopRight(element, event) {
  175.34-        var x = (event.clientX + 10) + 'px',
  175.35-            y = (event.clientY - 20) + 'px';
  175.36-        element.style.top = y;
  175.37-        element.style.left = x;
  175.38-    }
  175.39-
  175.40-    // retrieve all direct *selectable* children of class="sourcelines"
  175.41-    // element
  175.42-    var selectableElements = Array.prototype.filter.call(
  175.43-        sourcelines.children,
  175.44-        function(x) { return x.tagName === selectableTag; });
  175.45-
  175.46-    var btnTitleStart = 'start following lines history from here';
  175.47-    var btnTitleEnd = 'terminate line block selection here';
  175.48-
  175.49-    //** return a <button> element with +/- spans */
  175.50-    function createButton() {
  175.51-        var btn = document.createElement('button');
  175.52-        btn.title = btnTitleStart;
  175.53-        btn.classList.add('btn-followlines');
  175.54-        var plusSpan = document.createElement('span');
  175.55-        plusSpan.classList.add('followlines-plus');
  175.56-        plusSpan.innerHTML = '&plus;';
  175.57-        btn.appendChild(plusSpan);
  175.58-        var br = document.createElement('br');
  175.59-        btn.appendChild(br);
  175.60-        var minusSpan = document.createElement('span');
  175.61-        minusSpan.classList.add('followlines-minus');
  175.62-        minusSpan.innerHTML = '&minus;';
  175.63-        btn.appendChild(minusSpan);
  175.64-        return btn;
  175.65-    }
  175.66-
  175.67-    // extend DOM with CSS class for selection highlight and action buttons
  175.68-    var followlinesButtons = [];
  175.69-    for (var i = 0; i < selectableElements.length; i++) {
  175.70-        selectableElements[i].classList.add('followlines-select');
  175.71-        var btn = createButton();
  175.72-        followlinesButtons.push(btn);
  175.73-        // insert the <button> as child of `selectableElements[i]` unless the
  175.74-        // latter has itself a child  with a "followlines-btn-parent" class
  175.75-        // (annotate view)
  175.76-        var btnSupportElm = selectableElements[i];
  175.77-        var childSupportElms = btnSupportElm.getElementsByClassName(
  175.78-            'followlines-btn-parent');
  175.79-        if ( childSupportElms.length > 0 ) {
  175.80-            btnSupportElm = childSupportElms[0];
  175.81-        }
  175.82-        var refNode = btnSupportElm.childNodes[0]; // node to insert <button> before
  175.83-        btnSupportElm.insertBefore(btn, refNode);
  175.84-    }
  175.85-
  175.86-    // ** re-initialize followlines buttons */
  175.87-    function resetButtons() {
  175.88-        for (var i = 0; i < followlinesButtons.length; i++) {
  175.89-            var btn = followlinesButtons[i];
  175.90-            btn.title = btnTitleStart;
  175.91-            btn.classList.remove('btn-followlines-end');
  175.92-            btn.classList.remove('btn-followlines-hidden');
  175.93-        }
  175.94-    }
  175.95-
  175.96-    var lineSelectedCSSClass = 'followlines-selected';
  175.97-
  175.98-    //** add CSS class on selectable elements in `from`-`to` line range */
  175.99-    function addSelectedCSSClass(from, to) {
 175.100-        for (var i = from; i <= to; i++) {
 175.101-            selectableElements[i].classList.add(lineSelectedCSSClass);
 175.102-        }
 175.103-    }
 175.104-
 175.105-    //** remove CSS class from previously selected lines */
 175.106-    function removeSelectedCSSClass() {
 175.107-        var elements = sourcelines.getElementsByClassName(
 175.108-            lineSelectedCSSClass);
 175.109-        while (elements.length) {
 175.110-            elements[0].classList.remove(lineSelectedCSSClass);
 175.111-        }
 175.112-    }
 175.113-
 175.114-    // ** return the element of type "selectableTag" parent of `element` */
 175.115-    function selectableParent(element) {
 175.116-        var parent = element.parentElement;
 175.117-        if (parent === null) {
 175.118-            return null;
 175.119-        }
 175.120-        if (element.tagName === selectableTag && parent.isSameNode(sourcelines)) {
 175.121-            return element;
 175.122-        }
 175.123-        return selectableParent(parent);
 175.124-    }
 175.125-
 175.126-    // ** update buttons title and style upon first click */
 175.127-    function updateButtons(selectable) {
 175.128-        for (var i = 0; i < followlinesButtons.length; i++) {
 175.129-            var btn = followlinesButtons[i];
 175.130-            btn.title = btnTitleEnd;
 175.131-            btn.classList.add('btn-followlines-end');
 175.132-        }
 175.133-        // on clicked button, change title to "cancel"
 175.134-        var clicked = selectable.getElementsByClassName('btn-followlines')[0];
 175.135-        clicked.title = 'cancel';
 175.136-        clicked.classList.remove('btn-followlines-end');
 175.137-    }
 175.138-
 175.139-    //** add `listener` on "click" event for all `followlinesButtons` */
 175.140-    function buttonsAddEventListener(listener) {
 175.141-        for (var i = 0; i < followlinesButtons.length; i++) {
 175.142-            followlinesButtons[i].addEventListener('click', listener);
 175.143-        }
 175.144-    }
 175.145-
 175.146-    //** remove `listener` on "click" event for all `followlinesButtons` */
 175.147-    function buttonsRemoveEventListener(listener) {
 175.148-        for (var i = 0; i < followlinesButtons.length; i++) {
 175.149-            followlinesButtons[i].removeEventListener('click', listener);
 175.150-        }
 175.151-    }
 175.152-
 175.153-    //** event handler for "click" on the first line of a block */
 175.154-    function lineSelectStart(e) {
 175.155-        var startElement = selectableParent(e.target.parentElement);
 175.156-        if (startElement === null) {
 175.157-            // not a "selectable" element (maybe <a>): abort, keeping event
 175.158-            // listener registered for other click with a "selectable" target
 175.159-            return;
 175.160-        }
 175.161-
 175.162-        // update button tooltip text and CSS
 175.163-        updateButtons(startElement);
 175.164-
 175.165-        var startId = parseInt(startElement.id.slice(1));
 175.166-        startElement.classList.add(lineSelectedCSSClass); // CSS
 175.167-
 175.168-        // remove this event listener
 175.169-        buttonsRemoveEventListener(lineSelectStart);
 175.170-
 175.171-        //** event handler for "click" on the last line of the block */
 175.172-        function lineSelectEnd(e) {
 175.173-            var endElement = selectableParent(e.target.parentElement);
 175.174-            if (endElement === null) {
 175.175-                // not a <span> (maybe <a>): abort, keeping event listener
 175.176-                // registered for other click with <span> target
 175.177-                return;
 175.178-            }
 175.179-
 175.180-            // remove this event listener
 175.181-            buttonsRemoveEventListener(lineSelectEnd);
 175.182-
 175.183-            // reset button tooltip text
 175.184-            resetButtons();
 175.185-
 175.186-            // compute line range (startId, endId)
 175.187-            var endId = parseInt(endElement.id.slice(1));
 175.188-            if (endId === startId) {
 175.189-                // clicked twice the same line, cancel and reset initial state
 175.190-                // (CSS, event listener for selection start)
 175.191-                removeSelectedCSSClass();
 175.192-                buttonsAddEventListener(lineSelectStart);
 175.193-                return;
 175.194-            }
 175.195-            var inviteElement = endElement;
 175.196-            if (endId < startId) {
 175.197-                var tmp = endId;
 175.198-                endId = startId;
 175.199-                startId = tmp;
 175.200-                inviteElement = startElement;
 175.201-            }
 175.202-
 175.203-            addSelectedCSSClass(startId - 1, endId -1);  // CSS
 175.204-
 175.205-            // append the <div id="followlines"> element to last line of the
 175.206-            // selection block
 175.207-            var divAndButton = followlinesBox(targetUri, startId, endId, isHead);
 175.208-            var div = divAndButton[0],
 175.209-                button = divAndButton[1];
 175.210-            inviteElement.appendChild(div);
 175.211-            // set position close to cursor (top-right)
 175.212-            positionTopRight(div, e);
 175.213-            // hide all buttons
 175.214-            for (var i = 0; i < followlinesButtons.length; i++) {
 175.215-                followlinesButtons[i].classList.add('btn-followlines-hidden');
 175.216-            }
 175.217-
 175.218-            //** event handler for cancelling selection */
 175.219-            function cancel() {
 175.220-                // remove invite box
 175.221-                div.parentNode.removeChild(div);
 175.222-                // restore initial event listeners
 175.223-                buttonsAddEventListener(lineSelectStart);
 175.224-                buttonsRemoveEventListener(cancel);
 175.225-                for (var i = 0; i < followlinesButtons.length; i++) {
 175.226-                    followlinesButtons[i].classList.remove('btn-followlines-hidden');
 175.227-                }
 175.228-                // remove styles on selected lines
 175.229-                removeSelectedCSSClass();
 175.230-                resetButtons();
 175.231-            }
 175.232-
 175.233-            // bind cancel event to click on <button>
 175.234-            button.addEventListener('click', cancel);
 175.235-            // as well as on an click on any source line
 175.236-            buttonsAddEventListener(cancel);
 175.237-        }
 175.238-
 175.239-        buttonsAddEventListener(lineSelectEnd);
 175.240-
 175.241-    }
 175.242-
 175.243-    buttonsAddEventListener(lineSelectStart);
 175.244-
 175.245-    //** return a <div id="followlines"> and inner cancel <button> elements */
 175.246-    function followlinesBox(targetUri, fromline, toline, isHead) {
 175.247-        // <div id="followlines">
 175.248-        var div = document.createElement('div');
 175.249-        div.id = 'followlines';
 175.250-
 175.251-        //   <div class="followlines-cancel">
 175.252-        var buttonDiv = document.createElement('div');
 175.253-        buttonDiv.classList.add('followlines-cancel');
 175.254-
 175.255-        //     <button>x</button>
 175.256-        var button = document.createElement('button');
 175.257-        button.textContent = 'x';
 175.258-        buttonDiv.appendChild(button);
 175.259-        div.appendChild(buttonDiv);
 175.260-
 175.261-        //   <div class="followlines-link">
 175.262-        var aDiv = document.createElement('div');
 175.263-        aDiv.classList.add('followlines-link');
 175.264-        aDiv.textContent = 'follow history of lines ' + fromline + ':' + toline + ':';
 175.265-        var linesep = document.createElement('br');
 175.266-        aDiv.appendChild(linesep);
 175.267-        //     link to "ascending" followlines
 175.268-        var aAsc = document.createElement('a');
 175.269-        var url = targetUri + '?patch=&linerange=' + fromline + ':' + toline;
 175.270-        aAsc.setAttribute('href', url);
 175.271-        aAsc.textContent = 'older';
 175.272-        aDiv.appendChild(aAsc);
 175.273-
 175.274-        if (!isHead) {
 175.275-            var sep = document.createTextNode(' / ');
 175.276-            aDiv.appendChild(sep);
 175.277-            //     link to "descending" followlines
 175.278-            var aDesc = document.createElement('a');
 175.279-            aDesc.setAttribute('href', url + '&descend=');
 175.280-            aDesc.textContent = 'newer';
 175.281-            aDiv.appendChild(aDesc);
 175.282-        }
 175.283-
 175.284-        div.appendChild(aDiv);
 175.285-
 175.286-        return [div, button];
 175.287-    }
 175.288-
 175.289-}, false);
   176.1Binary file templates/static/hgicon.png has changed
   177.1Binary file templates/static/hglogo.png has changed
   178.1--- a/templates/static/mercurial.js	Sun Jul 21 21:01:03 2024 -0400
   178.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.3@@ -1,580 +0,0 @@
   178.4-// mercurial.js - JavaScript utility functions
   178.5-//
   178.6-// Rendering of branch DAGs on the client side
   178.7-// Display of elapsed time
   178.8-// Show or hide diffstat
   178.9-//
  178.10-// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
  178.11-// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
  178.12-//
  178.13-// derived from code written by Scott James Remnant <scott@ubuntu.com>
  178.14-// Copyright 2005 Canonical Ltd.
  178.15-//
  178.16-// This software may be used and distributed according to the terms
  178.17-// of the GNU General Public License, incorporated herein by reference.
  178.18-
  178.19-var colors = [
  178.20-	[ 1.0, 0.0, 0.0 ],
  178.21-	[ 1.0, 1.0, 0.0 ],
  178.22-	[ 0.0, 1.0, 0.0 ],
  178.23-	[ 0.0, 1.0, 1.0 ],
  178.24-	[ 0.0, 0.0, 1.0 ],
  178.25-	[ 1.0, 0.0, 1.0 ]
  178.26-];
  178.27-
  178.28-function Graph() {
  178.29-
  178.30-	this.canvas = document.getElementById('graph');
  178.31-	this.ctx = this.canvas.getContext('2d');
  178.32-	this.ctx.strokeStyle = 'rgb(0, 0, 0)';
  178.33-	this.ctx.fillStyle = 'rgb(0, 0, 0)';
  178.34-	this.bg = [0, 4];
  178.35-	this.cell = [2, 0];
  178.36-	this.columns = 0;
  178.37-
  178.38-}
  178.39-
  178.40-Graph.prototype = {
  178.41-	reset: function() {
  178.42-		this.bg = [0, 4];
  178.43-		this.cell = [2, 0];
  178.44-		this.columns = 0;
  178.45-	},
  178.46-
  178.47-	scale: function(height) {
  178.48-		this.bg_height = height;
  178.49-		this.box_size = Math.floor(this.bg_height / 1.2);
  178.50-		this.cell_height = this.box_size;
  178.51-	},
  178.52-
  178.53-	setColor: function(color, bg, fg) {
  178.54-
  178.55-		// Set the colour.
  178.56-		//
  178.57-		// If color is a string, expect an hexadecimal RGB
  178.58-		// value and apply it unchanged. If color is a number,
  178.59-		// pick a distinct colour based on an internal wheel;
  178.60-		// the bg parameter provides the value that should be
  178.61-		// assigned to the 'zero' colours and the fg parameter
  178.62-		// provides the multiplier that should be applied to
  178.63-		// the foreground colours.
  178.64-		var s;
  178.65-		if(typeof color === "string") {
  178.66-			s = "#" + color;
  178.67-		} else { //typeof color === "number"
  178.68-			color %= colors.length;
  178.69-			var red = (colors[color][0] * fg) || bg;
  178.70-			var green = (colors[color][1] * fg) || bg;
  178.71-			var blue = (colors[color][2] * fg) || bg;
  178.72-			red = Math.round(red * 255);
  178.73-			green = Math.round(green * 255);
  178.74-			blue = Math.round(blue * 255);
  178.75-			s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
  178.76-		}
  178.77-		this.ctx.strokeStyle = s;
  178.78-		this.ctx.fillStyle = s;
  178.79-		return s;
  178.80-
  178.81-	},
  178.82-
  178.83-	edge: function(x0, y0, x1, y1, color, width) {
  178.84-
  178.85-		this.setColor(color, 0.0, 0.65);
  178.86-		if(width >= 0)
  178.87-			 this.ctx.lineWidth = width;
  178.88-		this.ctx.beginPath();
  178.89-		this.ctx.moveTo(x0, y0);
  178.90-		this.ctx.lineTo(x1, y1);
  178.91-		this.ctx.stroke();
  178.92-
  178.93-	},
  178.94-
  178.95-	graphNodeCurrent: function(x, y, radius) {
  178.96-		this.ctx.lineWidth = 2;
  178.97-		this.ctx.beginPath();
  178.98-		this.ctx.arc(x, y, radius * 1.75, 0, Math.PI * 2, true);
  178.99-		this.ctx.stroke();
 178.100-	},
 178.101-
 178.102-	graphNodeClosing: function(x, y, radius) {
 178.103-		this.ctx.fillRect(x - radius, y - 1.5, radius * 2, 3);
 178.104-	},
 178.105-
 178.106-	graphNodeUnstable: function(x, y, radius) {
 178.107-		var x30 = radius * Math.cos(Math.PI / 6);
 178.108-		var y30 = radius * Math.sin(Math.PI / 6);
 178.109-		this.ctx.lineWidth = 2;
 178.110-		this.ctx.beginPath();
 178.111-		this.ctx.moveTo(x, y - radius);
 178.112-		this.ctx.lineTo(x, y + radius);
 178.113-		this.ctx.moveTo(x - x30, y - y30);
 178.114-		this.ctx.lineTo(x + x30, y + y30);
 178.115-		this.ctx.moveTo(x - x30, y + y30);
 178.116-		this.ctx.lineTo(x + x30, y - y30);
 178.117-		this.ctx.stroke();
 178.118-	},
 178.119-
 178.120-	graphNodeObsolete: function(x, y, radius) {
 178.121-		var p45 = radius * Math.cos(Math.PI / 4);
 178.122-		this.ctx.lineWidth = 3;
 178.123-		this.ctx.beginPath();
 178.124-		this.ctx.moveTo(x - p45, y - p45);
 178.125-		this.ctx.lineTo(x + p45, y + p45);
 178.126-		this.ctx.moveTo(x - p45, y + p45);
 178.127-		this.ctx.lineTo(x + p45, y - p45);
 178.128-		this.ctx.stroke();
 178.129-	},
 178.130-
 178.131-	graphNodeNormal: function(x, y, radius) {
 178.132-		this.ctx.beginPath();
 178.133-		this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
 178.134-		this.ctx.fill();
 178.135-	},
 178.136-
 178.137-	vertex: function(x, y, radius, color, parity, cur) {
 178.138-		this.ctx.save();
 178.139-		this.setColor(color, 0.25, 0.75);
 178.140-		if (cur.graphnode[0] === '@') {
 178.141-			this.graphNodeCurrent(x, y, radius);
 178.142-		}
 178.143-		switch (cur.graphnode.substr(-1)) {
 178.144-			case '_':
 178.145-				this.graphNodeClosing(x, y, radius);
 178.146-				break;
 178.147-			case '*':
 178.148-				this.graphNodeUnstable(x, y, radius);
 178.149-				break;
 178.150-			case 'x':
 178.151-				this.graphNodeObsolete(x, y, radius);
 178.152-				break;
 178.153-			default:
 178.154-				this.graphNodeNormal(x, y, radius);
 178.155-		}
 178.156-		this.ctx.restore();
 178.157-
 178.158-		var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
 178.159-		var item = document.querySelector('[data-node="' + cur.node + '"]');
 178.160-		if (item) {
 178.161-			item.style.paddingLeft = left + 'px';
 178.162-		}
 178.163-	},
 178.164-
 178.165-	render: function(data) {
 178.166-
 178.167-		var i, j, cur, line, start, end, color, x, y, x0, y0, x1, y1, column, radius;
 178.168-
 178.169-		var cols = 0;
 178.170-		for (i = 0; i < data.length; i++) {
 178.171-			cur = data[i];
 178.172-			for (j = 0; j < cur.edges.length; j++) {
 178.173-				line = cur.edges[j];
 178.174-				cols = Math.max(cols, line[0], line[1]);
 178.175-			}
 178.176-		}
 178.177-		this.canvas.width = (cols + 1) * this.bg_height;
 178.178-		this.canvas.height = (data.length + 1) * this.bg_height - 27;
 178.179-
 178.180-		for (i = 0; i < data.length; i++) {
 178.181-
 178.182-			var parity = i % 2;
 178.183-			this.cell[1] += this.bg_height;
 178.184-			this.bg[1] += this.bg_height;
 178.185-
 178.186-			cur = data[i];
 178.187-			var fold = false;
 178.188-
 178.189-			var prevWidth = this.ctx.lineWidth;
 178.190-			for (j = 0; j < cur.edges.length; j++) {
 178.191-
 178.192-				line = cur.edges[j];
 178.193-				start = line[0];
 178.194-				end = line[1];
 178.195-				color = line[2];
 178.196-				var width = line[3];
 178.197-				if(width < 0)
 178.198-					 width = prevWidth;
 178.199-				var branchcolor = line[4];
 178.200-				if(branchcolor)
 178.201-					color = branchcolor;
 178.202-
 178.203-				if (end > this.columns || start > this.columns) {
 178.204-					this.columns += 1;
 178.205-				}
 178.206-
 178.207-				if (start === this.columns && start > end) {
 178.208-					fold = true;
 178.209-				}
 178.210-
 178.211-				x0 = this.cell[0] + this.box_size * start + this.box_size / 2;
 178.212-				y0 = this.bg[1] - this.bg_height / 2;
 178.213-				x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
 178.214-				y1 = this.bg[1] + this.bg_height / 2;
 178.215-
 178.216-				this.edge(x0, y0, x1, y1, color, width);
 178.217-
 178.218-			}
 178.219-			this.ctx.lineWidth = prevWidth;
 178.220-
 178.221-			// Draw the revision node in the right column
 178.222-
 178.223-			column = cur.vertex[0];
 178.224-			color = cur.vertex[1];
 178.225-
 178.226-			radius = this.box_size / 8;
 178.227-			x = this.cell[0] + this.box_size * column + this.box_size / 2;
 178.228-			y = this.bg[1] - this.bg_height / 2;
 178.229-			this.vertex(x, y, radius, color, parity, cur);
 178.230-
 178.231-			if (fold) this.columns -= 1;
 178.232-
 178.233-		}
 178.234-
 178.235-	}
 178.236-
 178.237-};
 178.238-
 178.239-
 178.240-function process_dates(parentSelector){
 178.241-
 178.242-	// derived from code from mercurial/templatefilter.py
 178.243-
 178.244-	var scales = {
 178.245-		'year':  365 * 24 * 60 * 60,
 178.246-		'month':  30 * 24 * 60 * 60,
 178.247-		'week':    7 * 24 * 60 * 60,
 178.248-		'day':    24 * 60 * 60,
 178.249-		'hour':   60 * 60,
 178.250-		'minute': 60,
 178.251-		'second': 1
 178.252-	};
 178.253-
 178.254-	function format(count, string){
 178.255-		var ret = count + ' ' + string;
 178.256-		if (count > 1){
 178.257-			ret = ret + 's';
 178.258-		}
 178.259- 		return ret;
 178.260- 	}
 178.261-
 178.262-	function shortdate(date){
 178.263-		var ret = date.getFullYear() + '-';
 178.264-		// getMonth() gives a 0-11 result
 178.265-		var month = date.getMonth() + 1;
 178.266-		if (month <= 9){
 178.267-			ret += '0' + month;
 178.268-		} else {
 178.269-			ret += month;
 178.270-		}
 178.271-		ret += '-';
 178.272-		var day = date.getDate();
 178.273-		if (day <= 9){
 178.274-			ret += '0' + day;
 178.275-		} else {
 178.276-			ret += day;
 178.277-		}
 178.278-		return ret;
 178.279-	}
 178.280-
 178.281- 	function age(datestr){
 178.282- 		var now = new Date();
 178.283- 		var once = new Date(datestr);
 178.284-		if (isNaN(once.getTime())){
 178.285-			// parsing error
 178.286-			return datestr;
 178.287-		}
 178.288-
 178.289-		var delta = Math.floor((now.getTime() - once.getTime()) / 1000);
 178.290-
 178.291-		var future = false;
 178.292-		if (delta < 0){
 178.293-			future = true;
 178.294-			delta = -delta;
 178.295-			if (delta > (30 * scales.year)){
 178.296-				return "in the distant future";
 178.297-			}
 178.298-		}
 178.299-
 178.300-		if (delta > (2 * scales.year)){
 178.301-			return shortdate(once);
 178.302-		}
 178.303-
 178.304-		for (var unit in scales){
 178.305-			if (!scales.hasOwnProperty(unit)) { continue; }
 178.306-			var s = scales[unit];
 178.307-			var n = Math.floor(delta / s);
 178.308-			if ((n >= 2) || (s === 1)){
 178.309-				if (future){
 178.310-					return format(n, unit) + ' from now';
 178.311-				} else {
 178.312-					return format(n, unit) + ' ago';
 178.313-				}
 178.314-			}
 178.315-		}
 178.316-	}
 178.317-
 178.318-	var nodes = document.querySelectorAll((parentSelector || '') + ' .age');
 178.319-	var dateclass = new RegExp('\\bdate\\b');
 178.320-	for (var i=0; i<nodes.length; ++i){
 178.321-		var node = nodes[i];
 178.322-		var classes = node.className;
 178.323-		var agevalue = age(node.textContent);
 178.324-		if (dateclass.test(classes)){
 178.325-			// We want both: date + (age)
 178.326-			node.textContent += ' ('+agevalue+')';
 178.327-		} else {
 178.328-			node.title = node.textContent;
 178.329-			node.textContent = agevalue;
 178.330-		}
 178.331-	}
 178.332-}
 178.333-
 178.334-function toggleDiffstat(event) {
 178.335-    var curdetails = document.getElementById('diffstatdetails').style.display;
 178.336-    var curexpand = curdetails === 'none' ? 'inline' : 'none';
 178.337-    document.getElementById('diffstatdetails').style.display = curexpand;
 178.338-    document.getElementById('diffstatexpand').style.display = curdetails;
 178.339-    event.preventDefault();
 178.340-}
 178.341-
 178.342-function toggleLinewrap(event) {
 178.343-    function getLinewrap() {
 178.344-        var nodes = document.getElementsByClassName('sourcelines');
 178.345-        // if there are no such nodes, error is thrown here
 178.346-        return nodes[0].classList.contains('wrap');
 178.347-    }
 178.348-
 178.349-    function setLinewrap(enable) {
 178.350-        var nodes = document.getElementsByClassName('sourcelines');
 178.351-        var i;
 178.352-        for (i = 0; i < nodes.length; i++) {
 178.353-            if (enable) {
 178.354-                nodes[i].classList.add('wrap');
 178.355-            } else {
 178.356-                nodes[i].classList.remove('wrap');
 178.357-            }
 178.358-        }
 178.359-
 178.360-        var links = document.getElementsByClassName('linewraplink');
 178.361-        for (i = 0; i < links.length; i++) {
 178.362-            links[i].innerHTML = enable ? 'on' : 'off';
 178.363-        }
 178.364-    }
 178.365-
 178.366-    setLinewrap(!getLinewrap());
 178.367-    event.preventDefault();
 178.368-}
 178.369-
 178.370-function format(str, replacements) {
 178.371-    return str.replace(/%(\w+)%/g, function(match, p1) {
 178.372-        return String(replacements[p1]);
 178.373-    });
 178.374-}
 178.375-
 178.376-function makeRequest(url, method, onstart, onsuccess, onerror, oncomplete) {
 178.377-    var xhr = new XMLHttpRequest();
 178.378-    xhr.onreadystatechange = function() {
 178.379-        if (xhr.readyState === 4) {
 178.380-            try {
 178.381-                if (xhr.status === 200) {
 178.382-                    onsuccess(xhr.responseText);
 178.383-                } else {
 178.384-                    throw 'server error';
 178.385-                }
 178.386-            } catch (e) {
 178.387-                onerror(e);
 178.388-            } finally {
 178.389-                oncomplete();
 178.390-            }
 178.391-        }
 178.392-    };
 178.393-
 178.394-    xhr.open(method, url);
 178.395-    xhr.overrideMimeType("text/xhtml; charset=" + document.characterSet.toLowerCase());
 178.396-    xhr.send();
 178.397-    onstart();
 178.398-    return xhr;
 178.399-}
 178.400-
 178.401-function removeByClassName(className) {
 178.402-    var nodes = document.getElementsByClassName(className);
 178.403-    while (nodes.length) {
 178.404-        nodes[0].parentNode.removeChild(nodes[0]);
 178.405-    }
 178.406-}
 178.407-
 178.408-function docFromHTML(html) {
 178.409-    var doc = document.implementation.createHTMLDocument('');
 178.410-    doc.documentElement.innerHTML = html;
 178.411-    return doc;
 178.412-}
 178.413-
 178.414-function appendFormatHTML(element, formatStr, replacements) {
 178.415-    element.insertAdjacentHTML('beforeend', format(formatStr, replacements));
 178.416-}
 178.417-
 178.418-function adoptChildren(from, to) {
 178.419-    var nodes = from.children;
 178.420-    var curClass = 'c' + Date.now();
 178.421-    while (nodes.length) {
 178.422-        var node = nodes[0];
 178.423-        node = document.adoptNode(node);
 178.424-        node.classList.add(curClass);
 178.425-        to.appendChild(node);
 178.426-    }
 178.427-    process_dates('.' + curClass);
 178.428-}
 178.429-
 178.430-function ajaxScrollInit(urlFormat,
 178.431-                        nextPageVar,
 178.432-                        nextPageVarGet,
 178.433-                        containerSelector,
 178.434-                        messageFormat,
 178.435-                        mode) {
 178.436-    var updateInitiated = false;
 178.437-    var container = document.querySelector(containerSelector);
 178.438-
 178.439-    function scrollHandler() {
 178.440-        if (updateInitiated) {
 178.441-            return;
 178.442-        }
 178.443-
 178.444-        var scrollHeight = document.documentElement.scrollHeight;
 178.445-        var clientHeight = document.documentElement.clientHeight;
 178.446-        var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
 178.447-
 178.448-        if (scrollHeight - (scrollTop + clientHeight) < 50) {
 178.449-            updateInitiated = true;
 178.450-            removeByClassName('scroll-loading-error');
 178.451-            container.lastElementChild.classList.add('scroll-separator');
 178.452-
 178.453-            if (!nextPageVar) {
 178.454-                var message = {
 178.455-                    'class': 'scroll-loading-info',
 178.456-                    text: 'No more entries'
 178.457-                };
 178.458-                appendFormatHTML(container, messageFormat, message);
 178.459-                return;
 178.460-            }
 178.461-
 178.462-            makeRequest(
 178.463-                format(urlFormat, {next: nextPageVar}),
 178.464-                'GET',
 178.465-                function onstart() {
 178.466-                    var message = {
 178.467-                        'class': 'scroll-loading',
 178.468-                        text: 'Loading...'
 178.469-                    };
 178.470-                    appendFormatHTML(container, messageFormat, message);
 178.471-                },
 178.472-                function onsuccess(htmlText) {
 178.473-                    var doc = docFromHTML(htmlText);
 178.474-
 178.475-                    if (mode === 'graph') {
 178.476-                        var graph = window.graph;
 178.477-                        var dataStr = htmlText.match(/^\s*var data = (.*);$/m)[1];
 178.478-                        var data = JSON.parse(dataStr);
 178.479-                        graph.reset();
 178.480-                        adoptChildren(doc.querySelector('#graphnodes'), container.querySelector('#graphnodes'));
 178.481-                        graph.render(data);
 178.482-                    } else {
 178.483-                        adoptChildren(doc.querySelector(containerSelector), container);
 178.484-                    }
 178.485-
 178.486-                    nextPageVar = nextPageVarGet(htmlText);
 178.487-                },
 178.488-                function onerror(errorText) {
 178.489-                    var message = {
 178.490-                        'class': 'scroll-loading-error',
 178.491-                        text: 'Error: ' + errorText
 178.492-                    };
 178.493-                    appendFormatHTML(container, messageFormat, message);
 178.494-                },
 178.495-                function oncomplete() {
 178.496-                    removeByClassName('scroll-loading');
 178.497-                    updateInitiated = false;
 178.498-                    scrollHandler();
 178.499-                }
 178.500-            );
 178.501-        }
 178.502-    }
 178.503-
 178.504-    window.addEventListener('scroll', scrollHandler);
 178.505-    window.addEventListener('resize', scrollHandler);
 178.506-    scrollHandler();
 178.507-}
 178.508-
 178.509-function renderDiffOptsForm() {
 178.510-    // We use URLSearchParams for query string manipulation. Old browsers don't
 178.511-    // support this API.
 178.512-    if (!("URLSearchParams" in window)) {
 178.513-        return;
 178.514-    }
 178.515-
 178.516-    var form = document.getElementById("diffopts-form");
 178.517-
 178.518-    var KEYS = [
 178.519-        "ignorews",
 178.520-        "ignorewsamount",
 178.521-        "ignorewseol",
 178.522-        "ignoreblanklines",
 178.523-    ];
 178.524-
 178.525-    var urlParams = new window.URLSearchParams(window.location.search);
 178.526-
 178.527-    function updateAndRefresh(e) {
 178.528-        var checkbox = e.target;
 178.529-        var name = checkbox.id.substr(0, checkbox.id.indexOf("-"));
 178.530-        urlParams.set(name, checkbox.checked ? "1" : "0");
 178.531-        window.location.search = urlParams.toString();
 178.532-    }
 178.533-
 178.534-    var allChecked = form.getAttribute("data-ignorews") === "1";
 178.535-
 178.536-    for (var i = 0; i < KEYS.length; i++) {
 178.537-        var key = KEYS[i];
 178.538-
 178.539-        var checkbox = document.getElementById(key + "-checkbox");
 178.540-        if (!checkbox) {
 178.541-            continue;
 178.542-        }
 178.543-
 178.544-        var currentValue = form.getAttribute("data-" + key);
 178.545-        checkbox.checked = currentValue !== "0";
 178.546-
 178.547-        // ignorews implies ignorewsamount and ignorewseol.
 178.548-        if (allChecked && (key === "ignorewsamount" || key === "ignorewseol")) {
 178.549-            checkbox.checked = true;
 178.550-            checkbox.disabled = true;
 178.551-        }
 178.552-
 178.553-        checkbox.addEventListener("change", updateAndRefresh, false);
 178.554-    }
 178.555-
 178.556-    form.style.display = 'block';
 178.557-}
 178.558-
 178.559-function addDiffStatToggle() {
 178.560-    var els = document.getElementsByClassName("diffstattoggle");
 178.561-
 178.562-    for (var i = 0; i < els.length; i++) {
 178.563-        els[i].addEventListener("click", toggleDiffstat, false);
 178.564-    }
 178.565-}
 178.566-
 178.567-function addLineWrapToggle() {
 178.568-    var els = document.getElementsByClassName("linewraptoggle");
 178.569-
 178.570-    for (var i = 0; i < els.length; i++) {
 178.571-        var nodes = els[i].getElementsByClassName("linewraplink");
 178.572-
 178.573-        for (var j = 0; j < nodes.length; j++) {
 178.574-            nodes[j].addEventListener("click", toggleLinewrap, false);
 178.575-        }
 178.576-    }
 178.577-}
 178.578-
 178.579-document.addEventListener('DOMContentLoaded', function() {
 178.580-   process_dates();
 178.581-   addDiffStatToggle();
 178.582-   addLineWrapToggle();
 178.583-}, false);
   179.1--- a/templates/static/style-extra-coal.css	Sun Jul 21 21:01:03 2024 -0400
   179.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.3@@ -1,46 +0,0 @@
   179.4-body {
   179.5-    background: black url('background.png') repeat-x;
   179.6-}
   179.7-
   179.8-.container {
   179.9-    padding-left: 0;
  179.10-    padding-right: 150px;
  179.11-}
  179.12-
  179.13-.main {
  179.14-    padding: 2em;
  179.15-    border-right: 15px solid black;
  179.16-    border-bottom: 15px solid black;
  179.17-}
  179.18-
  179.19-.menu {
  179.20-    background: #999;
  179.21-    padding: 10px;
  179.22-    width: 75px;
  179.23-    position: fixed;
  179.24-    top: 27px;
  179.25-    left: auto;
  179.26-    right: 27px;
  179.27-}
  179.28-
  179.29-.menu ul {
  179.30-    border-left: 0;
  179.31-}
  179.32-
  179.33-.menu li.active {
  179.34-    font-weight: normal;
  179.35-    background: black;
  179.36-    color: white;
  179.37-}
  179.38-
  179.39-.menu li.active a {
  179.40-    color: white;
  179.41-}
  179.42-
  179.43-h3 {
  179.44-    margin-top: -.7em;
  179.45-}
  179.46-
  179.47-div.description {
  179.48-    border-left-width: 3px;
  179.49-}
   180.1--- a/templates/static/style-gitweb.css	Sun Jul 21 21:01:03 2024 -0400
   180.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.3@@ -1,389 +0,0 @@
   180.4-body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
   180.5-a { color:#0000cc; }
   180.6-a:hover, a:visited, a:active { color:#880000; }
   180.7-div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
   180.8-div.page_header a:visited { color:#0000cc; }
   180.9-div.page_header a:hover { color:#880000; }
  180.10-div.page_nav {
  180.11-    padding:8px;
  180.12-    display: flex;
  180.13-    justify-content: space-between;
  180.14-    align-items: center;
  180.15-}
  180.16-div.page_nav a:visited { color:#0000cc; }
  180.17-div.extra_nav {
  180.18-    padding: 8px;
  180.19-}
  180.20-div.extra_nav a:visited {
  180.21-    color: #0000cc;
  180.22-}
  180.23-div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
  180.24-div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
  180.25-div.page_footer_text { float:left; color:#555555; font-style:italic; }
  180.26-div.page_body { padding:8px; }
  180.27-div.title, a.title {
  180.28-	display:block; padding:6px 8px;
  180.29-	font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
  180.30-}
  180.31-a.title:hover { background-color: #d9d8d1; }
  180.32-div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
  180.33-div.log_body { padding:8px 8px 8px 150px; }
  180.34-.age { white-space:nowrap; }
  180.35-a.title span.age { position:relative; float:left; width:142px; font-style:italic; }
  180.36-div.log_link {
  180.37-	padding:0px 8px;
  180.38-	font-size:10px; font-family:sans-serif; font-style:normal;
  180.39-	position:relative; float:left; width:136px;
  180.40-}
  180.41-div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
  180.42-a.list { text-decoration:none; color:#000000; }
  180.43-a.list:hover { text-decoration:underline; color:#880000; }
  180.44-table { padding:8px 4px; }
  180.45-th { padding:2px 5px; font-size:12px; text-align:left; }
  180.46-.parity0 { background-color:#ffffff; }
  180.47-tr.dark, .parity1, pre.sourcelines.stripes > :nth-child(4n+4) { background-color:#f6f6f0; }
  180.48-tr.light:hover, .parity0:hover, tr.dark:hover, .parity1:hover,
  180.49-pre.sourcelines.stripes > :nth-child(4n+2):hover,
  180.50-pre.sourcelines.stripes > :nth-child(4n+4):hover,
  180.51-pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
  180.52-pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color:#edece6; }
  180.53-td { padding:2px 5px; font-size:12px; vertical-align:top; }
  180.54-td.closed { background-color: #99f; }
  180.55-td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
  180.56-td.indexlinks { white-space: nowrap; }
  180.57-td.indexlinks a {
  180.58-  padding: 2px 5px; line-height: 10px;
  180.59-  border: 1px solid;
  180.60-  color: #ffffff; background-color: #7777bb;
  180.61-  border-color: #aaaadd #333366 #333366 #aaaadd;
  180.62-  font-weight: bold;  text-align: center; text-decoration: none;
  180.63-  font-size: 10px;
  180.64-}
  180.65-td.indexlinks a:hover { background-color: #6666aa; }
  180.66-div.pre { font-family:monospace; font-size:12px; white-space:pre; }
  180.67-
  180.68-.search {
  180.69-    margin-right: 8px;
  180.70-}
  180.71-
  180.72-div#hint {
  180.73-  position: absolute;
  180.74-  display: none;
  180.75-  width: 250px;
  180.76-  padding: 5px;
  180.77-  background: #ffc;
  180.78-  border: 1px solid yellow;
  180.79-  border-radius: 5px;
  180.80-  z-index: 15;
  180.81-}
  180.82-
  180.83-#searchform:hover div#hint { display: block; }
  180.84-
  180.85-tr.thisrev a { color:#999999; text-decoration: none; }
  180.86-tr.thisrev pre { color:#009900; }
  180.87-td.annotate {
  180.88-  white-space: nowrap;
  180.89-}
  180.90-div.annotate-info {
  180.91-  z-index: 5;
  180.92-  display: none;
  180.93-  position: absolute;
  180.94-  background-color: #FFFFFF;
  180.95-  border: 1px solid #d9d8d1;
  180.96-  text-align: left;
  180.97-  color: #000000;
  180.98-  padding: 5px;
  180.99-}
 180.100-div.annotate-info a { color: #0000FF; text-decoration: underline; }
 180.101-td.annotate:hover div.annotate-info { display: inline; }
 180.102-
 180.103-#diffopts-form {
 180.104-  padding-left: 8px;
 180.105-  display: none;
 180.106-}
 180.107-
 180.108-.linenr { color:#999999; text-decoration:none }
 180.109-div.rss_logo { float: right; white-space: nowrap; }
 180.110-div.rss_logo a {
 180.111-	padding:3px 6px; line-height:10px;
 180.112-	border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
 180.113-	color:#ffffff; background-color:#ff6600;
 180.114-	font-weight:bold; font-family:sans-serif; font-size:10px;
 180.115-	text-align:center; text-decoration:none;
 180.116-}
 180.117-div.rss_logo a:hover { background-color:#ee5500; }
 180.118-pre { margin: 0; }
 180.119-span.logtags span {
 180.120-	padding: 0px 4px;
 180.121-	font-size: 10px;
 180.122-	font-weight: normal;
 180.123-	border: 1px solid;
 180.124-	background-color: #ffaaff;
 180.125-	border-color: #ffccff #ff00ee #ff00ee #ffccff;
 180.126-}
 180.127-span.logtags span.phasetag {
 180.128-	background-color: #dfafff;
 180.129-	border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
 180.130-}
 180.131-span.logtags span.obsoletetag {
 180.132-	background-color: #dddddd;
 180.133-	border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
 180.134-}
 180.135-span.logtags span.instabilitytag {
 180.136-	background-color: #ffb1c0;
 180.137-	border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
 180.138-}
 180.139-span.logtags span.tagtag {
 180.140-	background-color: #ffffaa;
 180.141-	border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
 180.142-}
 180.143-span.logtags span.branchtag {
 180.144-	background-color: #aaffaa;
 180.145-	border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
 180.146-}
 180.147-span.logtags span.inbranchtag {
 180.148-	background-color: #d5dde6;
 180.149-	border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
 180.150-}
 180.151-span.logtags span.bookmarktag {
 180.152-	background-color: #afdffa;
 180.153-	border-color: #ccecff #46ace6 #46ace6 #ccecff;
 180.154-}
 180.155-span.difflineplus { color:#008800; }
 180.156-span.difflineminus { color:#cc0000; }
 180.157-span.difflineat { color:#990099; }
 180.158-div.diffblocks { counter-reset: lineno; }
 180.159-div.diffblock { counter-increment: lineno; }
 180.160-pre.sourcelines { position: relative; counter-reset: lineno; }
 180.161-pre.sourcelines > span {
 180.162-	display: inline-block;
 180.163-	box-sizing: border-box;
 180.164-	width: 100%;
 180.165-	padding: 0 0 0 5em;
 180.166-	counter-increment: lineno;
 180.167-	vertical-align: top;
 180.168-}
 180.169-pre.sourcelines > span:before {
 180.170-	-moz-user-select: -moz-none;
 180.171-	-khtml-user-select: none;
 180.172-	-webkit-user-select: none;
 180.173-	-ms-user-select: none;
 180.174-	user-select: none;
 180.175-	display: inline-block;
 180.176-	margin-left: -6em;
 180.177-	width: 4em;
 180.178-	color: #999;
 180.179-	text-align: right;
 180.180-	content: counters(lineno,".");
 180.181-	float: left;
 180.182-}
 180.183-pre.sourcelines > a {
 180.184-	display: inline-block;
 180.185-	position: absolute;
 180.186-	left: 0px;
 180.187-	width: 4em;
 180.188-	height: 1em;
 180.189-}
 180.190-tr:target td,
 180.191-pre.sourcelines > span:target,
 180.192-pre.sourcelines.stripes > span:target {
 180.193-	background-color: #bfdfff;
 180.194-}
 180.195-
 180.196-.description {
 180.197-    font-family: monospace;
 180.198-    white-space: pre;
 180.199-}
 180.200-
 180.201-/* Followlines */
 180.202-tbody.sourcelines > tr.followlines-selected,
 180.203-pre.sourcelines > span.followlines-selected {
 180.204-  background-color: #99C7E9 !important;
 180.205-}
 180.206-
 180.207-div#followlines {
 180.208-  background-color: #FFF;
 180.209-  border: 1px solid #d9d8d1;
 180.210-  padding: 5px;
 180.211-  position: fixed;
 180.212-}
 180.213-
 180.214-div.followlines-cancel {
 180.215-  text-align: right;
 180.216-}
 180.217-
 180.218-div.followlines-cancel > button {
 180.219-  line-height: 80%;
 180.220-  padding: 0;
 180.221-  border: 0;
 180.222-  border-radius: 2px;
 180.223-  background-color: inherit;
 180.224-  font-weight: bold;
 180.225-}
 180.226-
 180.227-div.followlines-cancel > button:hover {
 180.228-  color: #FFFFFF;
 180.229-  background-color: #CF1F1F;
 180.230-}
 180.231-
 180.232-div.followlines-link {
 180.233-  margin: 2px;
 180.234-  margin-top: 4px;
 180.235-  font-family: sans-serif;
 180.236-}
 180.237-
 180.238-.btn-followlines {
 180.239-  position: absolute;
 180.240-  display: none;
 180.241-  cursor: pointer;
 180.242-  box-sizing: content-box;
 180.243-  font-size: 11px;
 180.244-  width: 13px;
 180.245-  height: 13px;
 180.246-  border-radius: 3px;
 180.247-  margin: 0px;
 180.248-  margin-top: -2px;
 180.249-  padding: 0px;
 180.250-  background-color: #E5FDE5;
 180.251-  border: 1px solid #9BC19B;
 180.252-  font-family: monospace;
 180.253-  text-align: center;
 180.254-  line-height: 5px;
 180.255-}
 180.256-
 180.257-span.followlines-select .btn-followlines {
 180.258-  margin-left: -1.6em;
 180.259-}
 180.260-
 180.261-.btn-followlines:hover {
 180.262-  transform: scale(1.1, 1.1);
 180.263-}
 180.264-
 180.265-.btn-followlines .followlines-plus {
 180.266-  color: green;
 180.267-}
 180.268-
 180.269-.btn-followlines .followlines-minus {
 180.270-  color: red;
 180.271-}
 180.272-
 180.273-.btn-followlines-end {
 180.274-  background-color: #ffdcdc;
 180.275-}
 180.276-
 180.277-.sourcelines tr:hover .btn-followlines,
 180.278-.sourcelines span.followlines-select:hover > .btn-followlines {
 180.279-  display: inline;
 180.280-}
 180.281-
 180.282-.btn-followlines-hidden,
 180.283-.sourcelines tr:hover .btn-followlines-hidden {
 180.284-  display: none;
 180.285-}
 180.286-
 180.287-/* Graph */
 180.288-div#wrapper {
 180.289-	position: relative;
 180.290-	margin: 0;
 180.291-	padding: 0;
 180.292-	margin-top: 3px;
 180.293-}
 180.294-
 180.295-canvas {
 180.296-	position: absolute;
 180.297-	z-index: 5;
 180.298-	top: -0.9em;
 180.299-	margin: 0;
 180.300-}
 180.301-
 180.302-ul#graphnodes {
 180.303-	list-style: none inside none;
 180.304-	padding: 0;
 180.305-	margin: 0;
 180.306-}
 180.307-
 180.308-ul#graphnodes li {
 180.309-	position: relative;
 180.310-	height: 37px;
 180.311-	overflow: visible;
 180.312-	padding-top: 2px;
 180.313-}
 180.314-
 180.315-ul#graphnodes li .fg {
 180.316-	position: absolute;
 180.317-	z-index: 10;
 180.318-}
 180.319-
 180.320-ul#graphnodes li .info {
 180.321-	font-size: 100%;
 180.322-	font-style: italic;
 180.323-}
 180.324-
 180.325-/* Comparison */
 180.326-.legend {
 180.327-    padding: 1.5% 0 1.5% 0;
 180.328-}
 180.329-
 180.330-.legendinfo {
 180.331-    border: 1px solid #d9d8d1;
 180.332-    font-size: 80%;
 180.333-    text-align: center;
 180.334-    padding: 0.5%;
 180.335-}
 180.336-
 180.337-.equal {
 180.338-    background-color: #ffffff;
 180.339-}
 180.340-
 180.341-.delete {
 180.342-    background-color: #faa;
 180.343-    color: #333;
 180.344-}
 180.345-
 180.346-.insert {
 180.347-    background-color: #ffa;
 180.348-}
 180.349-
 180.350-.replace {
 180.351-    background-color: #e8e8e8;
 180.352-}
 180.353-
 180.354-.comparison {
 180.355-    overflow-x: auto;
 180.356-}
 180.357-
 180.358-.header th {
 180.359-    text-align: center;
 180.360-}
 180.361-
 180.362-.block {
 180.363-    border-top: 1px solid #d9d8d1;
 180.364-}
 180.365-
 180.366-.scroll-loading {
 180.367-  -webkit-animation: change_color 1s linear 0s infinite alternate;
 180.368-  -moz-animation: change_color 1s linear 0s infinite alternate;
 180.369-  -o-animation: change_color 1s linear 0s infinite alternate;
 180.370-  animation: change_color 1s linear 0s infinite alternate;
 180.371-}
 180.372-
 180.373-@-webkit-keyframes change_color {
 180.374-  from { background-color: #A0CEFF; } to {  }
 180.375-}
 180.376-@-moz-keyframes change_color {
 180.377-  from { background-color: #A0CEFF; } to {  }
 180.378-}
 180.379-@-o-keyframes change_color {
 180.380-  from { background-color: #A0CEFF; } to {  }
 180.381-}
 180.382-@keyframes change_color {
 180.383-  from { background-color: #A0CEFF; } to {  }
 180.384-}
 180.385-
 180.386-.scroll-loading-error {
 180.387-    background-color: #FFCCCC !important;
 180.388-}
 180.389-
 180.390-#doc {
 180.391-    margin: 0 8px;
 180.392-}
   181.1--- a/templates/static/style-monoblue.css	Sun Jul 21 21:01:03 2024 -0400
   181.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.3@@ -1,588 +0,0 @@
   181.4-/*** Initial Settings ***/
   181.5-* {
   181.6-  margin: 0;
   181.7-  padding: 0;
   181.8-  font-weight: normal;
   181.9-  font-style: normal;
  181.10-}
  181.11-
  181.12-html {
  181.13-  font-size: 100%;
  181.14-  font-family: sans-serif;
  181.15-}
  181.16-
  181.17-body {
  181.18-  font-size: 77%;
  181.19-  margin: 15px 50px;
  181.20-  background: #4B4B4C;
  181.21-}
  181.22-
  181.23-a {
  181.24-  color:#0000cc;
  181.25-  text-decoration: none;
  181.26-}
  181.27-/*** end of Initial Settings ***/
  181.28-
  181.29-
  181.30-/** common settings **/
  181.31-div#container {
  181.32-  background: #FFFFFF;
  181.33-  position: relative;
  181.34-  color: #666;
  181.35-}
  181.36-
  181.37-div.page-header {
  181.38-  padding: 50px 20px 0;
  181.39-  background: #006699 top left repeat-x;
  181.40-  position: relative;
  181.41-}
  181.42-  div.page-header h1 {
  181.43-    margin: 10px 0 30px;
  181.44-    font-size: 1.8em;
  181.45-    font-weight: bold;
  181.46-    font-family: osaka,'MS P Gothic', Georgia, serif;
  181.47-    letter-spacing: 1px;
  181.48-    color: #DDD;
  181.49-  }
  181.50-  div.page-header h1 a {
  181.51-    font-weight: bold;
  181.52-    color: #FFF;
  181.53-  }
  181.54-  div.page-header a {
  181.55-    text-decoration: none;
  181.56-  }
  181.57-
  181.58-  div.page-header form {
  181.59-    float: right;
  181.60-    margin-top: -2px;
  181.61-  }
  181.62-  div.page-header form label {
  181.63-    color: #DDD;
  181.64-  }
  181.65-  div.page-header form input {
  181.66-    padding: 2px;
  181.67-    border: solid 1px #DDD;
  181.68-  }
  181.69-  div.page-header form dl {
  181.70-    overflow: hidden;
  181.71-  }
  181.72-  div.page-header form dl dt {
  181.73-    font-size: 1.2em;
  181.74-  }
  181.75-  div.page-header form dl dt,
  181.76-  div.page-header form dl dd {
  181.77-    margin: 0 0 0 5px;
  181.78-    float: left;
  181.79-    height: 24px;
  181.80-    line-height: 20px;
  181.81-  }
  181.82-
  181.83-  ul.page-nav {
  181.84-    margin: 10px 0 0 0;
  181.85-    list-style-type: none;
  181.86-    overflow: hidden;
  181.87-  }
  181.88-    ul.page-nav li {
  181.89-      margin: 0 2px 0 0;
  181.90-      float: left;
  181.91-      width: 80px;
  181.92-      height: 24px;
  181.93-      font-size: 1.1em;
  181.94-      line-height: 24px;
  181.95-      text-align: center;
  181.96-    }
  181.97-    ul.page-nav li.current {
  181.98-      background: #FFF;
  181.99-    }
 181.100-    ul.page-nav li a {
 181.101-      height: 24px;
 181.102-      color: #666;
 181.103-      background: #DDD;
 181.104-      display: block;
 181.105-      text-decoration: none;
 181.106-    }
 181.107-    ul.page-nav li a:hover {
 181.108-      color:#333;
 181.109-      background: #FFF;
 181.110-    }
 181.111-
 181.112-ul.submenu {
 181.113-  margin: 10px 0 -10px 20px;
 181.114-  list-style-type: none;
 181.115-}
 181.116-ul.submenu li {
 181.117-  margin: 0 10px 0 0;
 181.118-  font-size: 1.2em;
 181.119-  display: inline;
 181.120-}
 181.121-
 181.122-h2 {
 181.123-  margin: 20px 0 10px;
 181.124-  height: 30px;
 181.125-  line-height: 30px;
 181.126-  text-indent: 20px;
 181.127-  background: #FFF;
 181.128-  font-size: 1.2em;
 181.129-  border-top: dotted 1px #D5E1E6;
 181.130-  font-weight: bold;
 181.131-}
 181.132-h2.no-link {
 181.133-  color:#006699;
 181.134-}
 181.135-h2.no-border {
 181.136-  color: #FFF;
 181.137-  background: #006699;
 181.138-  border: 0;
 181.139-}
 181.140-h2 a {
 181.141-  font-weight:bold;
 181.142-  color:#006699;
 181.143-}
 181.144-
 181.145-div.page-path {
 181.146-  text-align: right;
 181.147-  padding: 20px 30px 10px 0;
 181.148-  border:solid #d9d8d1;
 181.149-  border-width:0px 0px 1px;
 181.150-  font-size: 1.2em;
 181.151-}
 181.152-
 181.153-div.page-footer {
 181.154-  margin: 50px 0 0;
 181.155-  position: relative;
 181.156-}
 181.157-  div.page-footer p {
 181.158-    position: relative;
 181.159-    padding-left: 20px;
 181.160-    bottom: 5px;
 181.161-    font-size: 1.2em;
 181.162-  }
 181.163-
 181.164-  ul.rss-logo {
 181.165-    position: absolute;
 181.166-    top: -10px;
 181.167-    right: 20px;
 181.168-    height: 20px;
 181.169-    list-style-type: none;
 181.170-  }
 181.171-  ul.rss-logo li {
 181.172-    display: inline;
 181.173-  }
 181.174-  ul.rss-logo li a {
 181.175-    padding: 3px 6px;
 181.176-    line-height: 10px;
 181.177-    border:1px solid;
 181.178-    border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
 181.179-    color:#ffffff;
 181.180-    background-color:#ff6600;
 181.181-    font-weight:bold;
 181.182-    font-family:sans-serif;
 181.183-    font-size:10px;
 181.184-    text-align:center;
 181.185-    text-decoration:none;
 181.186-  }
 181.187-  div.rss-logo li a:hover {
 181.188-    background-color:#ee5500;
 181.189-  }
 181.190-
 181.191-p.normal {
 181.192-  margin: 20px 0 20px 30px;
 181.193-  font-size: 1.2em;
 181.194-}
 181.195-
 181.196-table {
 181.197-  margin: 10px 0 0 20px;
 181.198-  width: 95%;
 181.199-  border-collapse: collapse;
 181.200-}
 181.201-table tr td {
 181.202-  font-size: 1.1em;
 181.203-}
 181.204-table tr td.nowrap {
 181.205-  white-space: nowrap;
 181.206-}
 181.207-table tr td.closed {
 181.208-  background-color: #99f;
 181.209-}
 181.210-/*
 181.211-table tr.parity0:hover,
 181.212-table tr.parity1:hover {
 181.213-  background: #D5E1E6;
 181.214-}
 181.215-*/
 181.216-table tr.parity0,
 181.217-table td.annotate.parity0 {
 181.218-  background: #F1F6F7;
 181.219-}
 181.220-table tr.parity1,
 181.221-table td.annotate.parity1 {
 181.222-  background: #FFFFFF;
 181.223-}
 181.224-table tr td {
 181.225-  padding: 5px 5px;
 181.226-}
 181.227-table.annotated tr td {
 181.228-  padding: 0px 5px;
 181.229-}
 181.230-
 181.231-span.logtags span {
 181.232-  padding: 2px 6px;
 181.233-  font-weight: normal;
 181.234-  font-size: 11px;
 181.235-  border: 1px solid;
 181.236-  background-color: #ffaaff;
 181.237-  border-color: #ffccff #ff00ee #ff00ee #ffccff;
 181.238-}
 181.239-span.logtags span.phasetag {
 181.240-  background-color: #dfafff;
 181.241-  border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
 181.242-}
 181.243-span.logtags span.obsoletetag {
 181.244-  background-color: #dddddd;
 181.245-  border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
 181.246-}
 181.247-span.logtags span.instabilitytag {
 181.248-  background-color: #ffb1c0;
 181.249-  border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
 181.250-}
 181.251-span.logtags span.tagtag {
 181.252-  background-color: #ffffaa;
 181.253-  border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
 181.254-}
 181.255-span.logtags span.branchtag {
 181.256-  background-color: #aaffaa;
 181.257-  border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
 181.258-}
 181.259-span.logtags span.inbranchtag {
 181.260-  background-color: #d5dde6;
 181.261-  border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
 181.262-}
 181.263-span.logtags span.bookmarktag {
 181.264-  background-color: #afdffa;
 181.265-  border-color: #ccecff #46ace6 #46ace6 #ccecff;
 181.266-}
 181.267-
 181.268-div.diff pre {
 181.269-  margin: 10px 0 0 0;
 181.270-}
 181.271-div.diff pre span {
 181.272-  font-family: monospace;
 181.273-  white-space: pre;
 181.274-  font-size: 1.2em;
 181.275-}
 181.276-div.diffblocks { counter-reset: lineno; }
 181.277-div.diffblock { counter-increment: lineno; }
 181.278-span.difflineplus { color:#008800; }
 181.279-span.difflineminus { color:#cc0000; }
 181.280-span.difflineat { color:#990099; }
 181.281-
 181.282-pre.sourcelines {
 181.283-    position: relative;
 181.284-    counter-reset: lineno;
 181.285-    font-size: 1.2em;
 181.286-}
 181.287-pre.sourcelines > span {
 181.288-    display: inline-block;
 181.289-    box-sizing: border-box;
 181.290-    width: 100%;
 181.291-    padding: 0 0 0 5em;
 181.292-    counter-increment: lineno;
 181.293-    vertical-align: top;
 181.294-}
 181.295-div.source > pre.sourcelines > span {
 181.296-    padding: 1px 1px 1px 5em;
 181.297-}
 181.298-pre.sourcelines > span:before {
 181.299-    -moz-user-select: -moz-none;
 181.300-    -khtml-user-select: none;
 181.301-    -webkit-user-select: none;
 181.302-    -ms-user-select: none;
 181.303-    user-select: none;
 181.304-    display: inline-block;
 181.305-    margin-left: -5em;
 181.306-    width: 4em;
 181.307-    color: #999;
 181.308-    text-align: right;
 181.309-    content: counters(lineno,".");
 181.310-    float: left;
 181.311-}
 181.312-pre.sourcelines > a {
 181.313-    display: inline-block;
 181.314-    position: absolute;
 181.315-    left: 0px;
 181.316-    width: 4em;
 181.317-    height: 1em;
 181.318-    padding: 0.15em;
 181.319-}
 181.320-pre.sourcelines.stripes > :nth-child(4n+2) { background-color: #F1F6F7; }
 181.321-pre.sourcelines.stripes > :nth-child(4n+4) { background-color: #FFFFFF; }
 181.322-pre.sourcelines.stripes > :nth-child(4n+2):hover,
 181.323-pre.sourcelines.stripes > :nth-child(4n+4):hover,
 181.324-pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
 181.325-pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color: #D5E1E6; }
 181.326-
 181.327-tr:target td,
 181.328-pre.sourcelines > span:target,
 181.329-pre.sourcelines.stripes > span:target {
 181.330-    background-color: #bfdfff;
 181.331-}
 181.332-
 181.333-td.source {
 181.334-  white-space: pre;
 181.335-  margin: 10px 30px 0;
 181.336-  font-size: 1.2em;
 181.337-  font-family: monospace;
 181.338-}
 181.339-.linenr {
 181.340-  color: #999;
 181.341-  text-align: right;
 181.342-}
 181.343-.lineno {
 181.344-  text-align: right;
 181.345-}
 181.346-.lineno a {
 181.347-  color: #999;
 181.348-}
 181.349-td.linenr {
 181.350-  width: 60px;
 181.351-}
 181.352-tr.thisrev a { color:#999999; text-decoration: none; }
 181.353-tr.thisrev td.source { color:#009900; }
 181.354-td.annotate {
 181.355-  white-space: nowrap;
 181.356-}
 181.357-div.annotate-info {
 181.358-  display: none;
 181.359-  position: absolute;
 181.360-  background-color: #FFFFFF;
 181.361-  border: solid 1px #CCC;
 181.362-  text-align: left;
 181.363-  color: #666;
 181.364-  padding: 5px;
 181.365-}
 181.366-div.annotate-info a { color: #0000FF; }
 181.367-td.annotate:hover div.annotate-info { display: inline; }
 181.368-
 181.369-div#powered-by {
 181.370-  position: absolute;
 181.371-  width: 75px;
 181.372-  top: 15px;
 181.373-  right: 20px;
 181.374-  font-size: 1.2em;
 181.375-}
 181.376-div#powered-by a {
 181.377-  color: #EEE;
 181.378-  text-decoration: none;
 181.379-}
 181.380-div#powered-by a:hover {
 181.381-  text-decoration: underline;
 181.382-}
 181.383-/** end of common settings **/
 181.384-
 181.385-/** summary **/
 181.386-dl.overview {
 181.387-  margin: 0 0 0 30px;
 181.388-  font-size: 1.1em;
 181.389-  overflow: hidden;
 181.390-}
 181.391-  dl.overview dt,
 181.392-  dl.overview dd {
 181.393-    margin: 5px 0;
 181.394-    float: left;
 181.395-  }
 181.396-  dl.overview dt {
 181.397-    clear: left;
 181.398-    font-weight: bold;
 181.399-    width: 150px;
 181.400-  }
 181.401-/** end of summary **/
 181.402-
 181.403-/** chagelog **/
 181.404-h3.changelog {
 181.405-  margin: 20px 0 5px 30px;
 181.406-  padding: 0 0 2px;
 181.407-  font-size: 1.4em;
 181.408-  border-bottom: dotted 1px #D5E1E6;
 181.409-}
 181.410-ul.changelog-entry {
 181.411-  margin: 0 0 10px 30px;
 181.412-  list-style-type: none;
 181.413-  position: relative;
 181.414-}
 181.415-ul.changelog-entry li span.revdate {
 181.416-  font-size: 1.1em;
 181.417-}
 181.418-ul.changelog-entry li.age {
 181.419-  position: absolute;
 181.420-  top: -25px;
 181.421-  right: 10px;
 181.422-  font-size: 1.4em;
 181.423-  color: #CCC;
 181.424-  font-weight: bold;
 181.425-  font-style: italic;
 181.426-}
 181.427-ul.changelog-entry li span.name {
 181.428-  font-size: 1.2em;
 181.429-  font-weight: bold;
 181.430-}
 181.431-ul.changelog-entry li.description {
 181.432-  margin: 10px 0 0;
 181.433-  font-size: 1.1em;
 181.434-}
 181.435-/** end of changelog **/
 181.436-
 181.437-/** file **/
 181.438-p.files {
 181.439-  margin: 0 0 0 20px;
 181.440-  font-size: 2.0em;
 181.441-  font-weight: bold;
 181.442-}
 181.443-/** end of file **/
 181.444-
 181.445-/** changeset **/
 181.446-h3.changeset {
 181.447-  margin: 20px 0 5px 20px;
 181.448-  padding: 0 0 2px;
 181.449-  font-size: 1.6em;
 181.450-  border-bottom: dotted 1px #D5E1E6;
 181.451-}
 181.452-p.changeset-age {
 181.453-  position: relative;
 181.454-}
 181.455-p.changeset-age span {
 181.456-  position: absolute;
 181.457-  top: -25px;
 181.458-  right: 10px;
 181.459-  font-size: 1.4em;
 181.460-  color: #CCC;
 181.461-  font-weight: bold;
 181.462-  font-style: italic;
 181.463-}
 181.464-p.description {
 181.465-  margin: 10px 30px 0 30px;
 181.466-  padding: 10px;
 181.467-  border: solid 1px #CCC;
 181.468-  font-size: 1.2em;
 181.469-}
 181.470-/** end of changeset **/
 181.471-
 181.472-/** canvas **/
 181.473-div#wrapper {
 181.474-	position: relative;
 181.475-	font-size: 1.1em;
 181.476-}
 181.477-
 181.478-canvas {
 181.479-	position: absolute;
 181.480-	z-index: 5;
 181.481-	top: -0.7em;
 181.482-}
 181.483-
 181.484-ul#graphnodes li.parity0 {
 181.485-    background: #F1F6F7;
 181.486-}
 181.487-
 181.488-ul#graphnodes li.parity1 {
 181.489-    background: #FFFFFF;
 181.490-}
 181.491-
 181.492-ul#graphnodes {
 181.493-	list-style: none inside none;
 181.494-	margin: 0;
 181.495-	padding: 0;
 181.496-}
 181.497-
 181.498-ul#graphnodes li {
 181.499-	height: 37px;
 181.500-	overflow: visible;
 181.501-	padding-top: 2px;
 181.502-}
 181.503-
 181.504-ul#graphnodes li .fg {
 181.505-	position: absolute;
 181.506-	z-index: 10;
 181.507-}
 181.508-
 181.509-ul#graphnodes li .info {
 181.510-	margin-top: 2px;
 181.511-}
 181.512-/** end of canvas **/
 181.513-
 181.514-/** comparison **/
 181.515-.legend {
 181.516-    margin-left: 20px;
 181.517-    padding: 1.5% 0 1.5% 0;
 181.518-}
 181.519-
 181.520-.legendinfo {
 181.521-    border: 1px solid #999;
 181.522-    font-size: 80%;
 181.523-    text-align: center;
 181.524-    padding: 0.5%;
 181.525-}
 181.526-
 181.527-.equal {
 181.528-    background-color: #ffffff;
 181.529-}
 181.530-
 181.531-.delete {
 181.532-    background-color: #faa;
 181.533-    color: #333;
 181.534-}
 181.535-
 181.536-.insert {
 181.537-    background-color: #ffa;
 181.538-}
 181.539-
 181.540-.replace {
 181.541-    background-color: #e8e8e8;
 181.542-}
 181.543-
 181.544-.comparison {
 181.545-    overflow-x: auto;
 181.546-}
 181.547-
 181.548-.comparison table td {
 181.549-    padding: 0px 5px;
 181.550-}
 181.551-
 181.552-.header th {
 181.553-    font-weight: bold;
 181.554-}
 181.555-
 181.556-.block {
 181.557-    border-top: 1px solid #999;
 181.558-}
 181.559-/** end of comparison **/
 181.560-
 181.561-.breadcrumb a:hover {
 181.562-    text-decoration:underline;
 181.563-}
 181.564-
 181.565-.scroll-loading {
 181.566-  -webkit-animation: change_color 1s linear 0s infinite alternate;
 181.567-  -moz-animation: change_color 1s linear 0s infinite alternate;
 181.568-  -o-animation: change_color 1s linear 0s infinite alternate;
 181.569-  animation: change_color 1s linear 0s infinite alternate;
 181.570-}
 181.571-
 181.572-@-webkit-keyframes change_color {
 181.573-  from { background-color: #A0CEFF; } to {  }
 181.574-}
 181.575-@-moz-keyframes change_color {
 181.576-  from { background-color: #A0CEFF; } to {  }
 181.577-}
 181.578-@-o-keyframes change_color {
 181.579-  from { background-color: #A0CEFF; } to {  }
 181.580-}
 181.581-@keyframes change_color {
 181.582-  from { background-color: #A0CEFF; } to {  }
 181.583-}
 181.584-
 181.585-.scroll-loading-error {
 181.586-    background-color: #FFCCCC !important;
 181.587-}
 181.588-
 181.589-#doc {
 181.590-    margin: 0 30px;
 181.591-}
   182.1--- a/templates/static/style-paper.css	Sun Jul 21 21:01:03 2024 -0400
   182.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.3@@ -1,548 +0,0 @@
   182.4-body {
   182.5-  margin: 0;
   182.6-  padding: 0;
   182.7-  background: white;
   182.8-  color: black;
   182.9-  font-family: sans-serif;
  182.10-}
  182.11-
  182.12-.container {
  182.13-  padding-left: 115px;
  182.14-}
  182.15-
  182.16-.main {
  182.17-  position: relative;
  182.18-  background: white;
  182.19-  padding: 2em 2em 2em 0;
  182.20-}
  182.21-
  182.22-#.main {
  182.23-  width: 98%;
  182.24-}
  182.25-
  182.26-.overflow {
  182.27-  width: 100%;
  182.28-  overflow: auto;
  182.29-}
  182.30-
  182.31-.menu {
  182.32-  width: 90px;
  182.33-  margin: 0;
  182.34-  font-size: 80%;
  182.35-  text-align: left;
  182.36-  position: absolute;
  182.37-  top: 20px;
  182.38-  left: 20px;
  182.39-  right: auto;
  182.40-}
  182.41-
  182.42-.menu ul {
  182.43-  list-style: none;
  182.44-  padding: 0;
  182.45-  margin: 10px 0 0 0;
  182.46-  border-left: 2px solid #999;
  182.47-}
  182.48-
  182.49-.menu li {
  182.50-  margin-bottom: 3px;
  182.51-  padding: 2px 4px;
  182.52-  background: white;
  182.53-  color: black;
  182.54-  font-weight: normal;
  182.55-}
  182.56-
  182.57-.menu li.active {
  182.58-  font-weight: bold;
  182.59-}
  182.60-
  182.61-.menu img {
  182.62-  width: 75px;
  182.63-  height: 90px;
  182.64-  border: 0;
  182.65-}
  182.66-
  182.67-div.atom-logo {
  182.68-  margin-top: 10px;
  182.69-}
  182.70-
  182.71-.atom-logo img{
  182.72-  width: 14px;
  182.73-  height: 14px;
  182.74-  border: 0;
  182.75-}
  182.76-
  182.77-.menu a { color: black; display: block; }
  182.78-
  182.79-.search {
  182.80-  position: absolute;
  182.81-  top: .7em;
  182.82-  right: 2em;
  182.83-}
  182.84-
  182.85-form.search div#hint {
  182.86-  display: none;
  182.87-  position: absolute;
  182.88-  top: 40px;
  182.89-  right: 0px;
  182.90-  width: 190px;
  182.91-  padding: 5px;
  182.92-  background: #ffc;
  182.93-  font-size: 70%;
  182.94-  border: 1px solid yellow;
  182.95-  border-radius: 5px;
  182.96-  z-index: 15;
  182.97-}
  182.98-
  182.99-form.search:hover div#hint { display: block; }
 182.100-
 182.101-a { text-decoration:none; }
 182.102-.age { white-space:nowrap; }
 182.103-.date { white-space:nowrap; }
 182.104-.indexlinks { white-space:nowrap; }
 182.105-.parity0,
 182.106-.stripes4 > :nth-child(4n+1),
 182.107-.stripes2 > :nth-child(2n+1) { background-color: #f0f0f0; }
 182.108-.parity1,
 182.109-.stripes4 > :nth-child(4n+3),
 182.110-.stripes2 > :nth-child(2n+2) { background-color: white; }
 182.111-.plusline { color: green; }
 182.112-.minusline { color: #dc143c; } /* crimson */
 182.113-.atline { color: purple; }
 182.114-
 182.115-.diffstat-table {
 182.116-  margin-top: 1em;
 182.117-}
 182.118-.diffstat-file {
 182.119-  white-space: nowrap;
 182.120-  font-size: 90%;
 182.121-}
 182.122-.diffstat-total {
 182.123-  white-space: nowrap;
 182.124-  font-size: 90%;
 182.125-}
 182.126-.diffstat-graph {
 182.127-  width: 100%;
 182.128-}
 182.129-.diffstat-add {
 182.130-  background-color: green;
 182.131-  float: left;
 182.132-}
 182.133-.diffstat-remove {
 182.134-  background-color: red;
 182.135-  float: left;
 182.136-}
 182.137-
 182.138-.navigate {
 182.139-  text-align: right;
 182.140-  font-size: 60%;
 182.141-  margin: 1em 0;
 182.142-}
 182.143-
 182.144-.phase {
 182.145-  color: #999;
 182.146-  font-size: 70%;
 182.147-  border-bottom: 1px dotted #999;
 182.148-  font-weight: normal;
 182.149-  margin-left: .5em;
 182.150-  vertical-align: baseline;
 182.151-}
 182.152-
 182.153-.obsolete {
 182.154-  color: #999;
 182.155-  font-size: 70%;
 182.156-  border-bottom: 1px dashed #999;
 182.157-  font-weight: normal;
 182.158-  margin-left: .5em;
 182.159-  vertical-align: baseline;
 182.160-}
 182.161-
 182.162-.instability {
 182.163-  color: #000;
 182.164-  font-size: 70%;
 182.165-  border-bottom: 1px solid #000;
 182.166-  font-weight: normal;
 182.167-  margin-left: .5em;
 182.168-  vertical-align: baseline;
 182.169-}
 182.170-
 182.171-.tag {
 182.172-  color: #999;
 182.173-  font-size: 70%;
 182.174-  font-weight: normal;
 182.175-  margin-left: .5em;
 182.176-  vertical-align: baseline;
 182.177-}
 182.178-
 182.179-.branchhead {
 182.180-  color: #000;
 182.181-  font-size: 80%;
 182.182-  font-weight: normal;
 182.183-  margin-left: .5em;
 182.184-  vertical-align: baseline;
 182.185-}
 182.186-
 182.187-ul#graphnodes .branchhead {
 182.188-  font-size: 75%;
 182.189-}
 182.190-
 182.191-.branchname {
 182.192-  color: #000;
 182.193-  font-size: 60%;
 182.194-  font-weight: normal;
 182.195-  margin-left: .5em;
 182.196-  vertical-align: baseline;
 182.197-}
 182.198-
 182.199-/* Common */
 182.200-pre { margin: 0; }
 182.201-
 182.202-h2 { font-size: 120%; border-bottom: 1px solid #999; }
 182.203-h2 a { color: #000; }
 182.204-h3 {
 182.205-  margin-top: +.7em;
 182.206-  font-size: 100%;
 182.207-}
 182.208-
 182.209-/* log and tags tables */
 182.210-.bigtable {
 182.211-  border-bottom: 1px solid #999;
 182.212-  border-collapse: collapse;
 182.213-  font-size: 90%;
 182.214-  width: 100%;
 182.215-  font-weight: normal;
 182.216-  text-align: left;
 182.217-}
 182.218-
 182.219-.bigtable td {
 182.220-  padding: 1px 4px;
 182.221-  vertical-align: top;
 182.222-}
 182.223-
 182.224-.bigtable th {
 182.225-  padding: 1px 4px;
 182.226-  border-bottom: 1px solid #999;
 182.227-}
 182.228-.bigtable tr { border: none; }
 182.229-.bigtable .age { width: 7em; }
 182.230-.bigtable .author { width: 15em; }
 182.231-.bigtable .description { }
 182.232-.bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
 182.233-.bigtable .node { width: 5em; font-family: monospace;}
 182.234-.bigtable .permissions { width: 8em; text-align: left;}
 182.235-.bigtable .size { width: 5em; text-align: right; }
 182.236-.bigtable .annotate { text-align: right; }
 182.237-.bigtable td.annotate { font-size: smaller; }
 182.238-.bigtable td.source { font-size: inherit; }
 182.239-tr.thisrev a { color:#999999; text-decoration: none; }
 182.240-tr.thisrev td.source { color:#009900; }
 182.241-td.annotate {
 182.242-  white-space: nowrap;
 182.243-}
 182.244-div.annotate-info {
 182.245-  z-index: 5;
 182.246-  display: none;
 182.247-  position: absolute;
 182.248-  background-color: #FFFFFF;
 182.249-  border: 1px solid #999;
 182.250-  text-align: left;
 182.251-  color: #000000;
 182.252-  padding: 5px;
 182.253-}
 182.254-div.annotate-info a { color: #0000FF; }
 182.255-td.annotate:hover div.annotate-info { display: inline; }
 182.256-
 182.257-#diffopts-form {
 182.258-  font-size: smaller;
 182.259-  color: #424242;
 182.260-  padding-bottom: 10px;
 182.261-  display: none;
 182.262-}
 182.263-
 182.264-.source, .sourcefirst {
 182.265-  font-family: monospace;
 182.266-  white-space: pre;
 182.267-  padding: 1px 4px;
 182.268-  font-size: 90%;
 182.269-}
 182.270-.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
 182.271-.source a { color: #999; font-size: smaller; font-family: monospace;}
 182.272-.bottomline { border-bottom: 1px solid #999; }
 182.273-
 182.274-.sourcelines {
 182.275-  font-size: 90%;
 182.276-  position: relative;
 182.277-  counter-reset: lineno;
 182.278-}
 182.279-
 182.280-.wrap > span {
 182.281-    white-space: pre-wrap;
 182.282-}
 182.283-
 182.284-.linewraptoggle {
 182.285-    float: right;
 182.286-}
 182.287-
 182.288-.diffblocks { counter-reset: lineno; }
 182.289-.diffblocks > div { counter-increment: lineno; }
 182.290-
 182.291-.sourcelines > span {
 182.292-  display: inline-block;
 182.293-  box-sizing: border-box;
 182.294-  width: 100%;
 182.295-  padding: 1px 0px 1px 5em;
 182.296-  counter-increment: lineno;
 182.297-}
 182.298-
 182.299-.sourcelines > span:before {
 182.300-  -moz-user-select: -moz-none;
 182.301-  -khtml-user-select: none;
 182.302-  -webkit-user-select: none;
 182.303-  -ms-user-select: none;
 182.304-  user-select: none;
 182.305-  display: inline-block;
 182.306-  margin-left: -6em;
 182.307-  width: 4em;
 182.308-  font-size: smaller;
 182.309-  color: #999;
 182.310-  text-align: right;
 182.311-  content: counters(lineno, ".");
 182.312-  float: left;
 182.313-}
 182.314-
 182.315-.sourcelines > span:after {
 182.316-  content: '';
 182.317-  display: inline-block;
 182.318-}
 182.319-
 182.320-.sourcelines > span:target, tr:target td {
 182.321-  background-color: #bfdfff;
 182.322-}
 182.323-
 182.324-/* Followlines */
 182.325-tbody.sourcelines > tr.followlines-selected,
 182.326-pre.sourcelines > span.followlines-selected {
 182.327-  background-color: #99C7E9;
 182.328-}
 182.329-
 182.330-div#followlines {
 182.331-  background-color: #FFF;
 182.332-  border: 1px solid #999;
 182.333-  padding: 5px;
 182.334-  position: fixed;
 182.335-}
 182.336-
 182.337-div.followlines-cancel {
 182.338-  text-align: right;
 182.339-}
 182.340-
 182.341-div.followlines-cancel > button {
 182.342-  line-height: 80%;
 182.343-  padding: 0;
 182.344-  border: 0;
 182.345-  border-radius: 2px;
 182.346-  background-color: inherit;
 182.347-  font-weight: bold;
 182.348-}
 182.349-
 182.350-div.followlines-cancel > button:hover {
 182.351-  color: #FFFFFF;
 182.352-  background-color: #CF1F1F;
 182.353-}
 182.354-
 182.355-div.followlines-link {
 182.356-  margin: 2px;
 182.357-  margin-top: 4px;
 182.358-  font-family: sans-serif;
 182.359-}
 182.360-
 182.361-.btn-followlines {
 182.362-  position: absolute;
 182.363-  display: none;
 182.364-  cursor: pointer;
 182.365-  box-sizing: content-box;
 182.366-  font-size: 12px;
 182.367-  width: 13px;
 182.368-  height: 13px;
 182.369-  border-radius: 3px;
 182.370-  margin: 0px;
 182.371-  margin-top: -2px;
 182.372-  padding: 0px;
 182.373-  background-color: #E5FDE5;
 182.374-  border: 1px solid #9BC19B;
 182.375-  font-family: monospace;
 182.376-  text-align: center;
 182.377-  line-height: 5px;
 182.378-}
 182.379-
 182.380-span.followlines-select .btn-followlines {
 182.381-  margin-left: -1.5em;
 182.382-}
 182.383-
 182.384-.btn-followlines:hover {
 182.385-  transform: scale(1.2, 1.2);
 182.386-}
 182.387-
 182.388-.btn-followlines .followlines-plus {
 182.389-  color: green;
 182.390-}
 182.391-
 182.392-.btn-followlines .followlines-minus {
 182.393-  color: red;
 182.394-}
 182.395-
 182.396-.btn-followlines-end {
 182.397-  background-color: #ffdcdc;
 182.398-}
 182.399-
 182.400-.sourcelines tr:hover .btn-followlines,
 182.401-.sourcelines span.followlines-select:hover > .btn-followlines {
 182.402-  display: inline;
 182.403-}
 182.404-
 182.405-.btn-followlines-hidden,
 182.406-.sourcelines tr:hover .btn-followlines-hidden {
 182.407-  display: none;
 182.408-}
 182.409-
 182.410-.sourcelines > a {
 182.411-    display: inline-block;
 182.412-    position: absolute;
 182.413-    left: 0px;
 182.414-    width: 4em;
 182.415-    height: 1em;
 182.416-}
 182.417-
 182.418-.fileline { font-family: monospace; }
 182.419-.fileline img { border: 0; }
 182.420-
 182.421-.tagEntry .closed { color: #99f; }
 182.422-
 182.423-/* Changeset entry */
 182.424-#changesetEntry {
 182.425-  border-collapse: collapse;
 182.426-  font-size: 90%;
 182.427-  width: 100%;
 182.428-  margin-bottom: 1em;
 182.429-}
 182.430-
 182.431-#changesetEntry th {
 182.432-  padding: 1px 4px;
 182.433-  width: 4em;
 182.434-  text-align: right;
 182.435-  font-weight: normal;
 182.436-  color: #999;
 182.437-  vertical-align: top;
 182.438-}
 182.439-
 182.440-div.description {
 182.441-  border-left: 2px solid #999;
 182.442-  margin: 1em 0 1em 0;
 182.443-  padding: .3em;
 182.444-  white-space: pre;
 182.445-  font-family: monospace;
 182.446-}
 182.447-
 182.448-/* Graph */
 182.449-div#wrapper {
 182.450-	position: relative;
 182.451-	border-top: 1px solid black;
 182.452-	border-bottom: 1px solid black;
 182.453-	margin: 0;
 182.454-	padding: 0;
 182.455-}
 182.456-
 182.457-canvas {
 182.458-	position: absolute;
 182.459-	z-index: 5;
 182.460-	top: -0.7em;
 182.461-	margin: 0;
 182.462-}
 182.463-
 182.464-ul#graphnodes {
 182.465-	list-style: none inside none;
 182.466-	padding: 0;
 182.467-	margin: 0;
 182.468-}
 182.469-
 182.470-ul#graphnodes li {
 182.471-	height: 39px;
 182.472-	overflow: visible;
 182.473-}
 182.474-
 182.475-ul#graphnodes li .fg {
 182.476-	position: absolute;
 182.477-	z-index: 10;
 182.478-}
 182.479-
 182.480-ul#graphnodes li .info {
 182.481-	font-size: 70%;
 182.482-}
 182.483-
 182.484-/* Comparison */
 182.485-.legend {
 182.486-    padding: 1.5% 0 1.5% 0;
 182.487-}
 182.488-
 182.489-.legendinfo {
 182.490-    border: 1px solid #999;
 182.491-    font-size: 80%;
 182.492-    text-align: center;
 182.493-    padding: 0.5%;
 182.494-}
 182.495-
 182.496-.equal {
 182.497-    background-color: #ffffff;
 182.498-}
 182.499-
 182.500-.delete {
 182.501-    background-color: #faa;
 182.502-    color: #333;
 182.503-}
 182.504-
 182.505-.insert {
 182.506-    background-color: #ffa;
 182.507-}
 182.508-
 182.509-.replace {
 182.510-    background-color: #e8e8e8;
 182.511-}
 182.512-
 182.513-.header {
 182.514-    text-align: center;
 182.515-}
 182.516-
 182.517-.block {
 182.518-    border-top: 1px solid #999;
 182.519-}
 182.520-
 182.521-.breadcrumb {
 182.522-    color: gray;
 182.523-}
 182.524-
 182.525-.breadcrumb a {
 182.526-    color: blue;
 182.527-}
 182.528-
 182.529-.scroll-loading {
 182.530-  -webkit-animation: change_color 1s linear 0s infinite alternate;
 182.531-  -moz-animation: change_color 1s linear 0s infinite alternate;
 182.532-  -o-animation: change_color 1s linear 0s infinite alternate;
 182.533-  animation: change_color 1s linear 0s infinite alternate;
 182.534-}
 182.535-
 182.536-@-webkit-keyframes change_color {
 182.537-  from { background-color: #A0CEFF; } to {  }
 182.538-}
 182.539-@-moz-keyframes change_color {
 182.540-  from { background-color: #A0CEFF; } to {  }
 182.541-}
 182.542-@-o-keyframes change_color {
 182.543-  from { background-color: #A0CEFF; } to {  }
 182.544-}
 182.545-@keyframes change_color {
 182.546-  from { background-color: #A0CEFF; } to {  }
 182.547-}
 182.548-
 182.549-.scroll-loading-error {
 182.550-    background-color: #FFCCCC !important;
 182.551-}
   183.1--- a/templates/static/style.css	Sun Jul 21 21:01:03 2024 -0400
   183.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.3@@ -1,117 +0,0 @@
   183.4-a { text-decoration:none; }
   183.5-.age { white-space:nowrap; }
   183.6-.date { white-space:nowrap; }
   183.7-.indexlinks { white-space:nowrap; }
   183.8-.parity0 { background-color: #ddd; color: #000; }
   183.9-.parity1 { background-color: #eee; color: #000; }
  183.10-.lineno { width: 60px; color: #aaa; font-size: smaller;
  183.11-          text-align: right; }
  183.12-.plusline { color: green; }
  183.13-.minusline { color: red; }
  183.14-.atline { color: purple; }
  183.15-.annotate { font-size: smaller; text-align: right; padding-right: 1em; }
  183.16-tr.thisrev a { color:#999999; text-decoration: none; }
  183.17-tr.thisrev pre { color:#009900; }
  183.18-td.annotate {
  183.19-  white-space: nowrap;
  183.20-}
  183.21-div.annotate-info {
  183.22-  display: none;
  183.23-  position: absolute;
  183.24-  background-color: #FFFFFF;
  183.25-  border: 1px solid #888;
  183.26-  text-align: left;
  183.27-  color: #000000;
  183.28-  padding: 5px;
  183.29-}
  183.30-div.annotate-info a { color: #0000FF; }
  183.31-td.annotate:hover div.annotate-info { display: inline; }
  183.32-.buttons a {
  183.33-  background-color: #666;
  183.34-  padding: 2pt;
  183.35-  color: white;
  183.36-  font-family: sans-serif;
  183.37-  font-weight: bold;
  183.38-}
  183.39-.navigate a {
  183.40-  background-color: #ccc;
  183.41-  padding: 2pt;
  183.42-  font-family: sans-serif;
  183.43-  color: black;
  183.44-}
  183.45-
  183.46-.metatag {
  183.47-  background-color: #888;
  183.48-  color: white;
  183.49-  text-align: right;
  183.50-}
  183.51-
  183.52-/* Common */
  183.53-pre { margin: 0; }
  183.54-
  183.55-.logo {
  183.56-  float: right;
  183.57-  clear: right;
  183.58-}
  183.59-
  183.60-/* Changelog/Filelog entries */
  183.61-.logEntry { width: 100%; }
  183.62-.logEntry .age { width: 15%; }
  183.63-.logEntry th.label { width: 16em; }
  183.64-.logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
  183.65-.logEntry th.age, .logEntry th.firstline { font-weight: bold; }
  183.66-.logEntry th.firstline { text-align: left; width: inherit; }
  183.67-
  183.68-/* Shortlog entries */
  183.69-.slogEntry { width: 100%; }
  183.70-.slogEntry .age { width: 8em; }
  183.71-.slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
  183.72-.slogEntry td.author { width: 15em; }
  183.73-
  183.74-/* Tag entries */
  183.75-#tagEntries { list-style: none; margin: 0; padding: 0; }
  183.76-#tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
  183.77-
  183.78-/* Changeset entry */
  183.79-#changesetEntry { }
  183.80-#changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
  183.81-#changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
  183.82-
  183.83-/* File diff view */
  183.84-#filediffEntry { }
  183.85-#filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
  183.86-
  183.87-/* Graph */
  183.88-div#wrapper {
  183.89-	position: relative;
  183.90-	margin: 0;
  183.91-	padding: 0;
  183.92-}
  183.93-
  183.94-canvas {
  183.95-	position: absolute;
  183.96-	z-index: 5;
  183.97-	top: -0.6em;
  183.98-	margin: 0;
  183.99-}
 183.100-
 183.101-ul#graphnodes {
 183.102-	list-style: none inside none;
 183.103-	padding: 0;
 183.104-	margin: 0;
 183.105-}
 183.106-
 183.107-ul#graphnodes li {
 183.108-	height: 37px;
 183.109-	overflow: visible;
 183.110-	padding-top: 2px;
 183.111-}
 183.112-
 183.113-ul#graphnodes li .fg {
 183.114-	position: absolute;
 183.115-	z-index: 10;
 183.116-}
 183.117-
 183.118-ul#graphnodes li .info {
 183.119-	font-size: 70%;
 183.120-}